pax_global_header00006660000000000000000000000064136003713260014513gustar00rootroot0000000000000052 comment=1d745535f7a95ff2265d6b6b47121200338fce83 desktop-2.6.2/000077500000000000000000000000001360037132600131735ustar00rootroot00000000000000desktop-2.6.2/.clang-format000066400000000000000000000040701360037132600155470ustar00rootroot00000000000000# Copyright (C) 2016 Olivier Goffart # # You may use this file under the terms of the 3-clause BSD license. # See the file LICENSE from this package for details. # This is the clang-format configuration style to be used by Qt, # based on the rules from https://wiki.qt.io/Qt_Coding_Style and # https://wiki.qt.io/Coding_Conventions --- # Webkit style was loosely based on the Qt style BasedOnStyle: WebKit Standard: Cpp11 ColumnLimit: 0 # Disable reflow of qdoc comments: indentation rules are different. # Translation comments are also excluded CommentPragmas: "^!|^:" # We want a space between the type and the star for pointer types PointerBindsToType: false # We want to break before the operators, but not before a '=' BreakBeforeBinaryOperators: NonAssignment # Braces are usually attached, but not after functions or classes declaration BreakBeforeBraces: Custom BraceWrapping: AfterClass: true AfterControlStatement: false AfterEnum: false AfterFunction: true AfterNamespace: false AfterObjCDeclaration: false AfterStruct: true AfterUnion: false BeforeCatch: false BeforeElse: false IndentBraces: false # The coding style does not specify the following, but this is what gives # results closest to the existing code. AlignAfterOpenBracket: DontAlign AlwaysBreakTemplateDeclarations: true # Ideally we should also allow less short function in a single line, but # clang-format does not handle that AllowShortFunctionsOnASingleLine: Inline # The coding style specifies some include order categories, but also tells to # separate categories with an empty line. It does not specify the order within # the categories. Since the SortInclude feature of clang-format does not # re-order includes separated by empty lines, the feature is not used. SortIncludes: false # macros for which the opening brace stays attached ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH, forever, Q_FOREVER, QBENCHMARK, QBENCHMARK_ONCE ] # Allow two empty lines for structuring MaxEmptyLinesToKeep: 2 KeepEmptyLinesAtTheStartOfBlocks: false desktop-2.6.2/.drone.yml000066400000000000000000000221111360037132600151000ustar00rootroot00000000000000kind: pipeline name: qt-5.7 steps: - name: build and test image: nextcloudci/client-5.7:client-5.7-4 commands: # Install QtKeyChain - /bin/bash -c " source /opt/qt57/bin/qt57-env.sh && cd /tmp && git clone https://github.com/frankosterfeld/qtkeychain.git && cd qtkeychain && git checkout v0.9.1 && mkdir build && cd build && cmake ../ && make && make install" # Build client - /bin/bash -c " source /opt/qt57/bin/qt57-env.sh && mkdir build && cd build && cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 ../ && make && useradd -m -s /bin/bash test && chown -R test:test . && su -c 'ctest --output-on-failure' test" trigger: branch: - master event: - pull_request - push --- kind: pipeline name: qt-5.8 steps: - name: build and test image: nextcloudci/client-5.8:client-5.8-4 commands: # Install QtKeyChain - /bin/bash -c " source /opt/qt58/bin/qt58-env.sh && cd /tmp && git clone https://github.com/frankosterfeld/qtkeychain.git && cd qtkeychain && git checkout v0.9.1 && mkdir build && cd build && cmake ../ && make && make install" # Build client - /bin/bash -c " source /opt/qt58/bin/qt58-env.sh && mkdir build && cd build && cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 ../ && make && useradd -m -s /bin/bash test && chown -R test:test . && su -c 'ctest --output-on-failure' test" trigger: branch: - master event: - pull_request - push --- kind: pipeline name: qt-5.9 steps: - name: build and test image: nextcloudci/client-5.9:client-5.9-5 commands: # Install QtKeyChain - /bin/bash -c " source /opt/qt59/bin/qt59-env.sh && cd /tmp && git clone https://github.com/frankosterfeld/qtkeychain.git && cd qtkeychain && git checkout v0.9.1 && mkdir build && cd build && cmake ../ && make && make install" # Build client - /bin/bash -c " source /opt/qt59/bin/qt59-env.sh && mkdir build && cd build && cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 ../ && make && useradd -m -s /bin/bash test && chown -R test:test . && su -c 'ctest --output-on-failure' test" trigger: branch: - master event: - pull_request - push --- kind: pipeline name: qt-5.10 steps: - name: build and test image: nextcloudci/client-5.10:client-5.10-3 commands: # Install QtKeyChain - /bin/bash -c " export CC=gcc-7 && export CXX=g++-7 && source /opt/qt510/bin/qt510-env.sh && cd /tmp && git clone https://github.com/frankosterfeld/qtkeychain.git && cd qtkeychain && git checkout v0.9.1 && mkdir build && cd build && cmake ../ && make && make install" # Build client - /bin/bash -c " export CC=gcc-7 && export CXX=g++-7 && source /opt/qt510/bin/qt510-env.sh && mkdir build && cd build && cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 ../ && make && useradd -m -s /bin/bash test && chown -R test:test . && su -c 'ctest --output-on-failure' test" trigger: branch: - master event: - pull_request - push --- kind: pipeline name: qt-5.11 steps: - name: build and test image: nextcloudci/client-5.11:client-5.11-3 commands: # Install QtKeyChain - /bin/bash -c " export CC=gcc-7 && export CXX=g++-7 && source /opt/qt511/bin/qt511-env.sh && cd /tmp && git clone https://github.com/frankosterfeld/qtkeychain.git && cd qtkeychain && git checkout v0.9.1 && mkdir build && cd build && cmake ../ && make && make install" # Build client - /bin/bash -c " export CC=gcc-7 && export CXX=g++-7 && source /opt/qt511/bin/qt511-env.sh && mkdir build && cd build && cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 ../ && make && useradd -m -s /bin/bash test && chown -R test:test . && su -c 'ctest --output-on-failure' test" trigger: branch: - master event: - pull_request - push --- kind: pipeline name: qt-5.11-clang steps: - name: build and test image: nextcloudci/client-5.11:client-5.11-3 commands: # Install QtKeyChain - /bin/bash -c " export CC=clang-6.0 && export CXX=clang++-6.0 && source /opt/qt511/bin/qt511-env.sh && cd /tmp && git clone https://github.com/frankosterfeld/qtkeychain.git && cd qtkeychain && git checkout v0.9.1 && mkdir build && cd build && cmake ../ && make && make install" # Build client - /bin/bash -c " export CC=clang-6.0 && export CXX=clang++-6.0 && source /opt/qt511/bin/qt511-env.sh && mkdir build && cd build && cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 ../ && make && useradd -m -s /bin/bash test && chown -R test:test . && su -c 'ctest --output-on-failure' test" trigger: branch: - master event: - pull_request - push --- kind: pipeline name: qt-5.12 steps: - name: build and test image: nextcloudci/client-5.12:client-5.12-5 commands: # Install QtKeyChain - /bin/bash -c " export CC=gcc-7 && export CXX=g++-7 && export QT_BASE_DIR=/opt/qt5.12.5 && export QTDIR=\$QT_BASE_DIR && export PATH=\$QT_BASE_DIR/bin:\$PATH && export LD_LIBRARY_PATH=\$QT_BASE_DIR/lib/x86_64-linux-gnu:\$QT_BASE_DIR/lib:/usr/local/lib:\$LD_LIBRARY_PATH && export PKG_CONFIG_PATH=\$QT_BASE_DIR/lib/pkgconfig:\$PKG_CONFIG_PATH && cd /tmp && git clone https://github.com/frankosterfeld/qtkeychain.git && cd qtkeychain && git checkout v0.9.1 && mkdir build && cd build && cmake ../ && make && make install" # Build client - /bin/bash -c " export CC=gcc-7 && export CXX=g++-7 && export QT_BASE_DIR=/opt/qt5.12.5 && export QTDIR=\$QT_BASE_DIR && export PATH=\$QT_BASE_DIR/bin:\$PATH && export LD_LIBRARY_PATH=\$QT_BASE_DIR/lib/x86_64-linux-gnu:\$QT_BASE_DIR/lib:/usr/local/lib:\$LD_LIBRARY_PATH && export PKG_CONFIG_PATH=\$QT_BASE_DIR/lib/pkgconfig:\$PKG_CONFIG_PATH && mkdir build && cd build && cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 ../ && make && useradd -m -s /bin/bash test && chown -R test:test . && su -c 'ctest --output-on-failure' test" trigger: branch: - master event: - pull_request - push --- kind: pipeline name: qt-5.12-clang steps: - name: build and test image: nextcloudci/client-5.12:client-5.12-5 commands: # Install QtKeyChain - /bin/bash -c " export CC=clang-6.0 && export CXX=clang++-6.0 && export QT_BASE_DIR=/opt/qt5.12.5 && export QTDIR=\$QT_BASE_DIR && export PATH=\$QT_BASE_DIR/bin:\$PATH && export LD_LIBRARY_PATH=\$QT_BASE_DIR/lib/x86_64-linux-gnu:\$QT_BASE_DIR/lib:/usr/local/lib:\$LD_LIBRARY_PATH && export PKG_CONFIG_PATH=\$QT_BASE_DIR/lib/pkgconfig:\$PKG_CONFIG_PATH && cd /tmp && git clone https://github.com/frankosterfeld/qtkeychain.git && cd qtkeychain && git checkout v0.9.1 && mkdir build && cd build && cmake ../ && make && make install" # Build client - /bin/bash -c " export CC=clang-6.0 && export CXX=clang++-6.0 && export QT_BASE_DIR=/opt/qt5.12.5 && export QTDIR=\$QT_BASE_DIR && export PATH=\$QT_BASE_DIR/bin:\$PATH && export LD_LIBRARY_PATH=\$QT_BASE_DIR/lib/x86_64-linux-gnu:\$QT_BASE_DIR/lib:/usr/local/lib:\$LD_LIBRARY_PATH && export PKG_CONFIG_PATH=\$QT_BASE_DIR/lib/pkgconfig:\$PKG_CONFIG_PATH && mkdir build && cd build && cmake -D NO_SHIBBOLETH=1 -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=1 ../ && make && useradd -m -s /bin/bash test && chown -R test:test . && su -c 'ctest --output-on-failure' test" trigger: branch: - master event: - pull_request - push --- kind: pipeline name: AppImage steps: - name: build image: nextcloudci/client-5.12:client-5.12-5 commands: - /bin/bash -c "./admin/linux/build-appimage.sh" - /bin/bash -c "./admin/linux/upload-appimage.sh" trigger: branch: - master event: - pull_request - push --- kind: pipeline name: Debian steps: - name: build image: nextcloudci/client-debian-ci:client-debian-ci-2 commands: - /bin/bash -c "./admin/linux/debian/drone-build.sh" environment: DEBIAN_SECRET_KEY: from_secret: DEBIAN_SECRET_KEY DEBIAN_SECRET_IV: from_secret: DEBIAN_SECRET_IV trigger: branch: - stable-2.6 event: - tag --- kind: pipeline name: Documentation steps: - name: build image: nextcloudci/documentation:documentation-5 commands: - cd doc - make html trigger: branch: - master event: - pull_request - push desktop-2.6.2/.git-blame-ignore-revs000066400000000000000000000001171360037132600172720ustar00rootroot00000000000000c8d0f788e00bdae125a26d9159ce9efdd6325cd2 # Initial application of clang-format desktop-2.6.2/.github/000077500000000000000000000000001360037132600145335ustar00rootroot00000000000000desktop-2.6.2/.github/issue_template.md000066400000000000000000000033021360037132600200760ustar00rootroot00000000000000 ### Expected behaviour Tell us what should happen ### Actual behaviour Tell us what happens instead ### Steps to reproduce 1. 2. 3. ### Client configuration Client version: Operating system: OS language: Qt version used by client package (Linux only, see also Settings dialog): Client package (From Nextcloud or distro) (Linux only): Installation path of client: ### Server configuration Nextcloud version: Storage backend (external storage): ### Logs Please use Gist (https://gist.github.com/) or a similar code paster for longer logs. 1. Client logfile: Output of `nextcloud --logwindow` or `nextcloud --logfile log.txt` (On Windows using `cmd.exe`, you might need to first `cd` into the Nextcloud directory) (See also https://docs.nextcloud.com/desktop/2.3/troubleshooting.html#log-files) 2. Web server error log: 3. Server logfile: nextcloud log (data/nextcloud.log): desktop-2.6.2/.gitmodules000066400000000000000000000003611360037132600153500ustar00rootroot00000000000000[submodule "binary"] path = binary url = git://github.com/owncloud/owncloud-client-binary.git [submodule "src/3rdparty/libcrashreporter-qt"] path = src/3rdparty/libcrashreporter-qt url = git://github.com/dschmidt/libcrashreporter-qt.git desktop-2.6.2/.tag000066400000000000000000000000511360037132600137430ustar00rootroot000000000000001d745535f7a95ff2265d6b6b47121200338fce83 desktop-2.6.2/.tx/000077500000000000000000000000001360037132600137045ustar00rootroot00000000000000desktop-2.6.2/.tx/config000066400000000000000000000007141360037132600150760ustar00rootroot00000000000000[main] host = https://www.transifex.com lang_map = bg_BG: bg, cs_CZ: cs, de_DE: de, fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja, pt_PT: pt, et_EE: et [nextcloud.client] host = https://www.transifex.com source_lang = en source_file = translations/client_en.ts file_filter = translations/client_.ts type = QT [nextcloud.client-desktop] host = https://www.transifex.com source_file = mirall.desktop.in source_lang = en type = DESKTOP desktop-2.6.2/.tx/nextcloud.client-desktop/000077500000000000000000000000001360037132600206355ustar00rootroot00000000000000desktop-2.6.2/.tx/nextcloud.client-desktop/ar_translation000066400000000000000000000026661360037132600236120ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations GenericName[ar]=مزامنة المجلد desktop-2.6.2/.tx/nextcloud.client-desktop/bg_translation000066400000000000000000000032671360037132600235760ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[bg_BG]=@APPLICATION_ICON_NAME@ Name[bg_BG]=@APPLICATION_NAME@ клиент за синхронизиране на десктоп Comment[bg_BG]=@APPLICATION_NAME@ клиент за синхронизиране на десктоп GenericName[bg_BG]=Синхронизиране на папка desktop-2.6.2/.tx/nextcloud.client-desktop/ca_translation000066400000000000000000000031431360037132600235620ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[ca]=@APPLICATION_ICON_NAME@ Name[ca]=@APPLICATION_NAME@ client de sincronització d'escriptori Comment[ca]=@APPLICATION_NAME@ client de sincronització d'escriptori GenericName[ca]=Directori de sincronització desktop-2.6.2/.tx/nextcloud.client-desktop/cs_translation000066400000000000000000000031411360037132600236020ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[cs_CZ]=@NAZEV_IKONY_APLIKACE@ Name[cs_CZ]=@APPLICATION_NAME@ synchronizační klient pro desktop Comment[cs_CZ]=@APPLICATION_NAME@ synchronizační klient pro desktop GenericName[cs_CZ]=Synchronizace složek desktop-2.6.2/.tx/nextcloud.client-desktop/cy_GB_translation000066400000000000000000000031211360037132600241560ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[cy_GB]=@APPLICATION_ICON_NAME@ Name[cy_GB]=@APPLICATION_NAME@ cleient cydweddu bwrdd gwaith Comment[cy_GB]=@APPLICATION_NAME@ cleient cydweddu bwrdd gwaith GenericName[cy_GB]=Cydweddu Ffolder desktop-2.6.2/.tx/nextcloud.client-desktop/da_translation000066400000000000000000000031301360037132600235570ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[da]=@APPLICATION_ICON_NAME@ Name[da]=@APPLICATION_NAME@ Arbejdsstationsssynkroniseringsklient Comment[da]=@APPLICATION_NAME@ Arbejdsstationsssynkroniseringsklient GenericName[da]=Mappesynkronisering desktop-2.6.2/.tx/nextcloud.client-desktop/de_translation000066400000000000000000000031251360037132600235670ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[de]=@APPLICATION_ICON_NAME@ Name[de]=@APPLICATION_NAME@ Client zur Desktop-Synchronisation Comment[de]=@APPLICATION_NAME@ Client zur Desktop-Synchronisation GenericName[de]=Synchronisationsordner desktop-2.6.2/.tx/nextcloud.client-desktop/el_translation000066400000000000000000000031701360037132600235770ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[el]=@APPLICATION_ICON_NAME@ Name[el]=@APPLICATION_NAME@ πρόγραμμα συγχρονισμού Comment[el]=@APPLICATION_NAME@ πρόγραμμα συγχρονισμού GenericName[el]=Συγχρονισμός φακέλου desktop-2.6.2/.tx/nextcloud.client-desktop/en_GB_translation000066400000000000000000000031041360037132600241460ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[en_GB]=@APPLICATION_ICON_NAME@ Name[en_GB]=@APPLICATION_NAME@ desktop sync client Comment[en_GB]=@APPLICATION_NAME@ desktop synchronisation client GenericName[en_GB]=Folder Sync desktop-2.6.2/.tx/nextcloud.client-desktop/eo_translation000066400000000000000000000030631360037132600236030ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[eo]=@APPLICATION_ICON_NAME@ Name[eo]=@APPLICATION_NAME@ sinkroniga kliento Comment[eo]=@APPLICATION_NAME@ sinkroniga kliento GenericName[eo]=Dosieruja sinkronigo desktop-2.6.2/.tx/nextcloud.client-desktop/es_CL_translation000066400000000000000000000031151360037132600241630ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Name[es_CL]=@APPLICATION_NAME@ Cliente de sincronización de escritorio Comment[es_CL]=@APPLICATION_NAME@ Cliente de sincronización de escritorio GenericName[es_CL]=Sincronización de carpeta desktop-2.6.2/.tx/nextcloud.client-desktop/es_CO_translation000066400000000000000000000031151360037132600241660ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Name[es_CO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio Comment[es_CO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio GenericName[es_CO]=Sincronización de carpeta desktop-2.6.2/.tx/nextcloud.client-desktop/es_CR_translation000066400000000000000000000031151360037132600241710ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Name[es_CR]=@APPLICATION_NAME@ Cliente de sincronización de escritorio Comment[es_CR]=@APPLICATION_NAME@ Cliente de sincronización de escritorio GenericName[es_CR]=Sincronización de carpeta desktop-2.6.2/.tx/nextcloud.client-desktop/es_DO_translation000066400000000000000000000031151360037132600241670ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Name[es_DO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio Comment[es_DO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio GenericName[es_DO]=Sincronización de carpeta desktop-2.6.2/.tx/nextcloud.client-desktop/es_EC_translation000066400000000000000000000031151360037132600241540ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Name[es_EC]=@APPLICATION_NAME@ Cliente de sincronización de escritorio Comment[es_EC]=@APPLICATION_NAME@ Cliente de sincronización de escritorio GenericName[es_EC]=Sincronización de carpeta desktop-2.6.2/.tx/nextcloud.client-desktop/es_GT_translation000066400000000000000000000031151360037132600241770ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Name[es_GT]=@APPLICATION_NAME@ Cliente de sincronización de escritorio Comment[es_GT]=@APPLICATION_NAME@ Cliente de sincronización de escritorio GenericName[es_GT]=Sincronización de carpeta desktop-2.6.2/.tx/nextcloud.client-desktop/es_MX_translation000066400000000000000000000031151360037132600242110ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Name[es_MX]=@APPLICATION_NAME@ Cliente de sincronización de escritorio Comment[es_MX]=@APPLICATION_NAME@ Cliente de sincronización de escritorio GenericName[es_MX]=Sincronización de carpeta desktop-2.6.2/.tx/nextcloud.client-desktop/es_SV_translation000066400000000000000000000031151360037132600242150ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Name[es_SV]=@APPLICATION_NAME@ Cliente de sincronización de escritorio Comment[es_SV]=@APPLICATION_NAME@ Cliente de sincronización de escritorio GenericName[es_SV]=Sincronización de carpeta desktop-2.6.2/.tx/nextcloud.client-desktop/es_translation000066400000000000000000000031461360037132600236110ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[es]=@APPLICATION_ICON_NAME@ Name[es]=Cliente de sincronización de escritorio @APPLICATION_NAME@ Comment[es]=Cliente de sincronización de escritorio @APPLICATION_NAME@ GenericName[es]=Sincronización de carpetas desktop-2.6.2/.tx/nextcloud.client-desktop/eu_translation000066400000000000000000000031311360037132600236050ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[eu]=@APPLICATION_ICON_NAME@ Name[eu]=@APPLICATION_NAME@ mahaigainerako sinkronizazio bezeroa Comment[eu]=@APPLICATION_NAME@ mahaigainerako sinkronizazio bezeroa GenericName[eu]=Karpeta-sinkronizazioa desktop-2.6.2/.tx/nextcloud.client-desktop/fr_translation000066400000000000000000000031001360037132600235770ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[fr]=@APPLICATION_ICON_NAME@ Name[fr]=Client de synchro @APPLICATION_NAME@ Comment[fr]=Client de synchronisation @APPLICATION_NAME@ GenericName[fr]=Synchronisation du dossier desktop-2.6.2/.tx/nextcloud.client-desktop/gl_translation000066400000000000000000000031521360037132600236010ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[gl]=@APPLICATION_ICON_NAME@ Name[gl]=@APPLICATION_NAME@ cliente de sincronización para escritorio Comment[gl]=@APPLICATION_NAME@ cliente de sincronización para escritorio GenericName[gl]=Sincronización de cartafol desktop-2.6.2/.tx/nextcloud.client-desktop/he_translation000066400000000000000000000031631360037132600235750ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[he]=@APPLICATION_ICON_NAME@ Name[he]=@APPLICATION_NAME@ לקוח סנכרון לשולחן העבודה Comment[he]=@APPLICATION_NAME@ לקוח סנכרון לשולחן העבודה GenericName[he]=סנכרון תיקיות desktop-2.6.2/.tx/nextcloud.client-desktop/hr_translation000066400000000000000000000031131360037132600236050ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[hr]=@APPLICATION_ICON_NAME@ Name[hr]=@APPLICATION_NAME@ klijent za sink. računala Comment[hr]=@APPLICATION_NAME@ klijent za sinkronizaciju računala GenericName[hr]=Sinkronizacija mapa desktop-2.6.2/.tx/nextcloud.client-desktop/hu_translation000066400000000000000000000031341360037132600236130ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[hu_HU]=@APPLICATION_ICON_NAME@ Name[hu_HU]=@APPLICATION_NAME@ asztali szinkronizálási kliens Comment[hu_HU]=@APPLICATION_NAME@ asztali szinkronizálási kliens GenericName[hu_HU]=Mappaszinkronizálás desktop-2.6.2/.tx/nextcloud.client-desktop/is_translation000066400000000000000000000031311360037132600236070ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[is]=@APPLICATION_ICON_NAME@ Name[is]=@APPLICATION_NAME@ forrit til samstillingar við tölvu Comment[is]=@APPLICATION_NAME@ forrit til samstillingar við tölvu GenericName[is]=Samstilling á möppum desktop-2.6.2/.tx/nextcloud.client-desktop/it_translation000066400000000000000000000031401360037132600236100ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[it]=@APPLICATION_ICON_NAME@ Name[it]=Client di sincronizzazione desktop di @APPLICATION_NAME@ Comment[it]=Client di sincronizzazione desktop di @APPLICATION_NAME@ GenericName[it]=Sincronizzazione cartelle desktop-2.6.2/.tx/nextcloud.client-desktop/ja_translation000066400000000000000000000031711360037132600235720ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[ja_JP]=@APPLICATION_ICON_NAME@ Name[ja_JP]=@APPLICATION_NAME@ デスクトップ同期クライアント Comment[ja_JP]=@APPLICATION_NAME@ デスクトップ同期クライアント GenericName[ja_JP]=フォルダーを同期する desktop-2.6.2/.tx/nextcloud.client-desktop/ko_translation000066400000000000000000000030241360037132600236060ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[ko]=@APPLICATION_ICON_NAME@ Comment[ko]=@APPLICATION_NAME@ 데스크톱 동기화 클라이언트 GenericName[ko]=폴더 동기화 desktop-2.6.2/.tx/nextcloud.client-desktop/lt_LT_translation000066400000000000000000000031701360037132600242150ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[lt_LT]=@APPLICATION_ICON_NAME@ Name[lt_LT]=@APPLICATION_NAME@ darbalaukio sinchronizavimo kliento programa Comment[lt_LT]=@APPLICATION_NAME@ darbalaukio sinchronizavimo kliento programa GenericName[lt_LT]=Aplankų sinchronizavimas desktop-2.6.2/.tx/nextcloud.client-desktop/lv_translation000066400000000000000000000031331360037132600236170ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[lv]=@APPLICATION_ICON_NAME@ Name[lv]=@APPLICATION_NAME@ darbavirsmas sinhronizešanas klients Comment[lv]=@APPLICATION_NAME@ darbavirsmas sinhronizešanas klients GenericName[lv]=Mapju Sinhronizēšana desktop-2.6.2/.tx/nextcloud.client-desktop/mk_translation000066400000000000000000000032631360037132600236110ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[mk]=@APPLICATION_ICON_NAME@ Name[mk]=@APPLICATION_NAME@ клиент за синхронизација на компјутер Comment[mk]=@APPLICATION_NAME@ клиент за синхронизација на компјутер GenericName[mk]=Папка за синхронизација desktop-2.6.2/.tx/nextcloud.client-desktop/nb_translation000066400000000000000000000031201360037132600235710ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[nb_NO]=@APPLICATION_ICON_NAME@ Name[nb_NO]=@APPLICATION_NAME@ klient for synkroinisering Comment[nb_NO]=@APPLICATION_NAME@ klient for synkroinisering GenericName[nb_NO]=Mappe synkroinisering desktop-2.6.2/.tx/nextcloud.client-desktop/nl_translation000066400000000000000000000030741360037132600236130ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[nl]=@APPLICATION_ICON_NAME@ Name[nl]=@APPLICATION_NAME@ desktop sync client Comment[nl]=@APPLICATION_NAME@ desktopsynchronisatieclient GenericName[nl]=Map synchronisatie desktop-2.6.2/.tx/nextcloud.client-desktop/pl_translation000066400000000000000000000031211360037132600236060ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[pl]=@APPLICATION_ICON_NAME@ Name[pl]=@APPLICATION_NAME@ desktopowy klient synchronizacji Comment[pl]=@APPLICATION_NAME@ desktopowy klient synchronizacji GenericName[pl]=Katalog synchronizacji desktop-2.6.2/.tx/nextcloud.client-desktop/pt_BR_translation000066400000000000000000000031341360037132600242050ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[pt_BR]=@APPLICATION_ICON_NAME@ Name[pt_BR]=@APPLICATION_NAME@ cliente de sincronização desktop Comment[pt_BR]=@APPLICATION_NAME@ cliente de sincronização desktop GenericName[pt_BR]=Sincronizar pasta desktop-2.6.2/.tx/nextcloud.client-desktop/pt_translation000066400000000000000000000032011360037132600236150ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[pt_PT]=@APPLICATION_ICON_NAME@ Name[pt_PT]=@APPLICATION_NAME@ - Cliente de Sincronização da Área de Trabalho Comment[pt_PT]=@APPLICATION_NAME@ - Cliente de Sincronização da Área de Trabalho GenericName[pt_PT]=Sincronização de Pasta desktop-2.6.2/.tx/nextcloud.client-desktop/ro_translation000066400000000000000000000031321360037132600236150ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[ro]=@APPLICATION_ICON_NAME@ Name[ro]=@APPLICATION_NAME@ client de sincronizare pentru desktop Comment[ro]=@APPLICATION_NAME@ client de sincronizare pentru desktop GenericName[ro]=Sincronizare director desktop-2.6.2/.tx/nextcloud.client-desktop/ru_translation000066400000000000000000000031361360037132600236270ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[ru]=@APPLICATION_ICON_NAME@ Name[ru]=@APPLICATION_NAME@ для ПК Comment[ru]=Клиент синхронизации @APPLICATION_NAME@ для ПК GenericName[ru]=Синхронизация папок desktop-2.6.2/.tx/nextcloud.client-desktop/sk_translation000066400000000000000000000031361360037132600236160ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[sk_SK]=@APPLICATION_ICON_NAME@ Name[sk_SK]=@APPLICATION_NAME@ synchronizačný klient pre PC Comment[sk_SK]=@APPLICATION_NAME@ synchronizačný klient pre PC GenericName[sk_SK]=Synchronizácia priečinkov desktop-2.6.2/.tx/nextcloud.client-desktop/sl_translation000066400000000000000000000030711360037132600236150ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[sl]=@APPLICATION_ICON_NAME@ Name[sl]=@APPLICATION_NAME@ program za usklajevanje Comment[sl]=@APPLICATION_NAME@ program za usklajevanje GenericName[sl]=Usklajevanje map desktop-2.6.2/.tx/nextcloud.client-desktop/sr_translation000066400000000000000000000032461360037132600236270ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[sr]=@APPLICATION_ICON_NAME@ Name[sr]=@APPLICATION_NAME@ десктоп клијент за синхронизацију Comment[sr]=@APPLICATION_NAME@ десктоп клијент за синхронизацију GenericName[sr]=Синхронизација фасцикли desktop-2.6.2/.tx/nextcloud.client-desktop/sv_translation000066400000000000000000000027201360037132600236270ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[sv]=@APPLICATION_ICON_NAME@ GenericName[sv]=Mappsynkronisering desktop-2.6.2/.tx/nextcloud.client-desktop/sw_translation000066400000000000000000000031651360037132600236340ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[sw]=@APPLICATION_ICON_NAME@ Name[sw]=Teja ya @APPLICATION_NAME@ ya kufanana faili kwa seva na faili ziko hapa Comment[sw]=Teja ya @APPLICATION_NAME@ ya kufanana faili kwa seva na faili ziko hapa GenericName[sw]=Fanana Kabrasha desktop-2.6.2/.tx/nextcloud.client-desktop/tr_translation000066400000000000000000000031071360037132600236240ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[tr]=@APPLICATION_ICON_NAME@ Name[tr]=@APPLICATION_NAME@ masaüstü eşiteme istemcisi Comment[tr]=@APPLICATION_NAME@ masaüstü eşitleme istemcisi GenericName[tr]=Klasör Eşitleme desktop-2.6.2/.tx/nextcloud.client-desktop/uk_translation000066400000000000000000000031631360037132600236200ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[uk]=@APPLICATION_ICON_NAME@ Name[uk]=@APPLICATION_NAME@ клієнт для ПК Comment[uk]=Клієнт синхронізації @APPLICATION_NAME@ для ПК GenericName[uk]=Синхронізація каталогів desktop-2.6.2/.tx/nextcloud.client-desktop/zh_CN_translation000066400000000000000000000031001360037132600241710ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Icon[zh_CN]=@APPLICATION_ICON_NAME@ Name[zh_CN]=@APPLICATION_NAME@ 桌面同步客户端 Comment[zh_CN]=@APPLICATION_NAME@ 桌面同步客户端 GenericName[zh_CN]=文件夹同步 desktop-2.6.2/.tx/nextcloud.client-desktop/zh_TW_translation000066400000000000000000000030341360037132600242310ustar00rootroot00000000000000[Desktop Entry] Categories=Utility;X-SuSE-SyncUtility; Type=Application Exec=@APPLICATION_EXECUTABLE@ Name=@APPLICATION_NAME@ desktop sync client Comment=@APPLICATION_NAME@ desktop synchronization client GenericName=Folder Sync Icon=@APPLICATION_ICON_NAME@ Keywords=@APPLICATION_NAME@;syncing;file;sharing; X-GNOME-Autostart-Delay=3 # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations # Translations Name[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端 Comment[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端 GenericName[zh_TW]=資料夾同步 desktop-2.6.2/CMakeLists.txt000066400000000000000000000213431360037132600157360ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.2) set(CMAKE_CXX_STANDARD 14) project(client) set(BIN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") set(OEM_THEME_DIR "" CACHE STRING "Define directory containing a custom theme") if ( EXISTS ${OEM_THEME_DIR}/OEM.cmake ) include ( ${OEM_THEME_DIR}/OEM.cmake ) else () include ( ${CMAKE_SOURCE_DIR}/NEXTCLOUD.cmake ) endif() # need this logic to not mess with re/uninstallations via macosx.pkgproj if(${APPLICATION_REV_DOMAIN} STREQUAL "com.owncloud.desktopclient") set(APPLICATION_REV_DOMAIN_INSTALLER "com.ownCloud.client") else() set(APPLICATION_REV_DOMAIN_INSTALLER ${APPLICATION_REV_DOMAIN}) endif() # For usage in XML files we preprocess string(REPLACE "&" "&" APPLICATION_NAME_XML_ESCAPED "${APPLICATION_NAME}") string(REPLACE "<" "<" APPLICATION_NAME_XML_ESCAPED "${APPLICATION_NAME_XML_ESCAPED}") string(REPLACE ">" ">" APPLICATION_NAME_XML_ESCAPED "${APPLICATION_NAME_XML_ESCAPED}") if (NOT DEFINED LINUX_PACKAGE_SHORTNAME) set(LINUX_PACKAGE_SHORTNAME "${APPLICATION_SHORTNAME}") endif() if (NOT DEFINED PACKAGE) set(PACKAGE "${LINUX_PACKAGE_SHORTNAME}-client") endif() set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ) if(NOT CRASHREPORTER_EXECUTABLE) set(CRASHREPORTER_EXECUTABLE "${APPLICATION_EXECUTABLE}_crash_reporter") endif() include(Warnings) include(${CMAKE_SOURCE_DIR}/VERSION.cmake) # For config.h include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) # Allows includes based on src/ like #include "common/utility.h" or #include "csync/csync.h" include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src ) # disable the crashreporter if libcrashreporter-qt is not available or we're building for ARM if( CMAKE_SYSTEM_PROCESSOR MATCHES "arm" OR NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/3rdparty/libcrashreporter-qt/CMakeLists.txt") set( WITH_CRASHREPORTER OFF ) endif() if(NOT WITH_CRASHREPORTER) message(STATUS "Build of crashreporter disabled.") endif() include(GNUInstallDirs) include(DefineInstallationPaths) include(GenerateExportHeader) include(GetGitRevisionDescription) get_git_head_revision(GIT_REFSPEC GIT_SHA1) add_definitions( -DQT_USE_QSTRINGBUILDER -DQT_MESSAGELOGCONTEXT #enable function name and line number in debug output -DQT_DEPRECATED_WARNINGS ) # if we cannot get it from git, directly try .tag (packages) # this will work if the tar balls have been properly created # via git-archive. if ("${GIT_SHA1}" STREQUAL "GITDIR-NOTFOUND") file(READ ${CMAKE_SOURCE_DIR}/.tag sha1_candidate) string(REPLACE "\n" "" sha1_candidate ${sha1_candidate}) if (NOT ${sha1_candidate} STREQUAL "$Format:%H$") message("${sha1_candidate}") set (GIT_SHA1 "${sha1_candidate}") endif() endif() message(STATUS "GIT_SHA1 ${GIT_SHA1}") set(SYSCONFDIR ${SYSCONF_INSTALL_DIR}) set(DATADIR ${DATA_INSTALL_DIR}) if(WIN32) set(DATADIR "share") endif(WIN32) set(SHAREDIR ${DATADIR}) ##### ## handle BUILD_OWNCLOUD_OSX_BUNDLE # BUILD_OWNCLOUD_OSX_BUNDLE was not initialized OR set to true on OSX if(APPLE AND (NOT DEFINED BUILD_OWNCLOUD_OSX_BUNDLE OR BUILD_OWNCLOUD_OSX_BUNDLE)) set(BUILD_OWNCLOUD_OSX_BUNDLE ON) set(OWNCLOUD_OSX_BUNDLE "${APPLICATION_EXECUTABLE}.app") set(LIB_INSTALL_DIR "${APPLICATION_EXECUTABLE}.app/Contents/MacOS") set(BIN_INSTALL_DIR "${APPLICATION_EXECUTABLE}.app/Contents/MacOS") # BUILD_OWNCLOUD_OSX_BUNDLE was disabled on OSX elseif(APPLE AND NOT BUILD_OWNCLOUD_OSX_BUNDLE) message(FATAL_ERROR "Building in non-bundle mode on OSX is currently not supported. Comment this error out if you want to work on/test it.") # any other platform else() set(BUILD_OWNCLOUD_OSX_BUNDLE OFF) endif() ##### # this option removes Http authentication, keychain, shibboleth etc and is intended for # external authentication mechanisms option(TOKEN_AUTH_ONLY "TOKEN_AUTH_ONLY" OFF) if(TOKEN_AUTH_ONLY) message("Compiling with token authentication") add_definitions(-DTOKEN_AUTH_ONLY=1) endif() option(NO_MSG_HANDLER "Don't redirect QDebug outputs to the log window/file" OFF) if(NO_MSG_HANDLER) add_definitions(-DNO_MSG_HANDLER=1) endif() # this option builds the shell integration option(BUILD_SHELL_INTEGRATION "BUILD_SHELL_INTEGRATION" ON) # this option builds/installs the generic shell integration icons option(BUILD_SHELL_INTEGRATION_ICONS "BUILD_SHELL_INTEGRATION_ICONS" ON) # this options builds the dolphin integration plugin option(BUILD_SHELL_INTEGRATION_DOLPHIN "BUILD_SHELL_INTEGRATION_DOLPHIN" ON) # this options builds the nautilus (like) integration plugins option(BUILD_SHELL_INTEGRATION_NAUTILUS "BUILD_SHELL_INTEGRATION_NAUTILUS" ON) # this option builds the client option(BUILD_CLIENT "BUILD_CLIENT" ON) # this option creates only libocsync and libowncloudsync (NOTE: BUILD_CLIENT needs to be on) option(BUILD_LIBRARIES_ONLY "BUILD_LIBRARIES_ONLY" OFF) # When this option is enabled, 5xx errors are not added to the blacklist # Normally you don't want to enable this option because if a particular file # triggers a bug on the server, you want the file to be blacklisted. option(OWNCLOUD_5XX_NO_BLACKLIST "OWNCLOUD_5XX_NO_BLACKLIST" OFF) if(OWNCLOUD_5XX_NO_BLACKLIST) add_definitions(-DOWNCLOUD_5XX_NO_BLACKLIST=1) endif() # When this option is enabled, a rename that is not allowed will be renamed back # do the original as a restoration step. Withut this option, the restoration will # re-download the file instead. # The default is off because we don't want to rename the files back behind the user's back # Added for IL issue #550 option(OWNCLOUD_RESTORE_RENAME "OWNCLOUD_RESTORE_RENAME" OFF) if(OWNCLOUD_RESTORE_RENAME) add_definitions(-DOWNCLOUD_RESTORE_RENAME=1) endif() # Disable shibboleth. # So the client can be built without QtWebKit option(NO_SHIBBOLETH "Build without Shibboleth support. Allow to build the client without QtWebKit" OFF) if(NO_SHIBBOLETH) message("Compiling without shibboleth") add_definitions(-DNO_SHIBBOLETH=1) endif() if(APPLE) set( SOCKETAPI_TEAM_IDENTIFIER_PREFIX "" CACHE STRING "SocketApi prefix (including a following dot) that must match the codesign key's TeamIdentifier/Organizational Unit" ) endif() if(BUILD_CLIENT) if(APPLE) find_package(Sparkle) endif(APPLE) if(UNIX) find_package(INotify REQUIRED) else() find_package(INotify) endif() find_package(Sphinx) find_package(PdfLatex) find_package(OpenSSL 1.1 REQUIRED ) find_package(ZLIB REQUIRED) find_package(GLib2) find_package(Gio) find_package(Libcloudproviders) endif() if (NOT DEFINED APPLICATION_ICON_NAME) set(APPLICATION_ICON_NAME ${APPLICATION_SHORTNAME}) endif() include(NextcloudCPack.cmake) add_definitions(-DUNICODE) add_definitions(-D_UNICODE) if( WIN32 ) add_definitions( -D__USE_MINGW_ANSI_STDIO=1 ) add_definitions( -DNOMINMAX ) # Get APIs from from Vista onwards. add_definitions( -D_WIN32_WINNT=0x0601 ) add_definitions( -DWINVER=0x0601 ) if( MSVC ) # Use automatic overload for suitable CRT safe-functions # See https://docs.microsoft.com/de-de/cpp/c-runtime-library/security-features-in-the-crt?view=vs-2019 add_definitions( -D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1 ) # Also: Disable compiler warnings because we don't use Windows CRT safe-functions explicitly and don't intend to # as this is a pure cross-platform source the only alternative would be a ton of ifdefs with calls to the _s version add_definitions( -D_CRT_SECURE_NO_WARNINGS ) endif( MSVC ) endif( WIN32 ) if (APPLE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") endif() # Handle Translations, pick all client_* files from trans directory. file( GLOB TRANS_FILES ${CMAKE_SOURCE_DIR}/translations/client_*.ts) set(TRANSLATIONS ${TRANS_FILES}) if(BUILD_CLIENT) add_subdirectory(src) if(NOT BUILD_LIBRARIES_ONLY) add_subdirectory(man) add_subdirectory(doc) add_subdirectory(doc/dev) if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/admin) add_subdirectory(admin) endif(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/admin) endif(NOT BUILD_LIBRARIES_ONLY) endif() if(BUILD_SHELL_INTEGRATION) add_subdirectory(shell_integration) endif() if(UNIT_TESTING) include(CTest) enable_testing() add_subdirectory(test) endif(UNIT_TESTING) configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) configure_file(version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h) if(BUILD_OWNCLOUD_OSX_BUNDLE) install(FILES sync-exclude.lst DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/) configure_file(sync-exclude.lst bin/${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/sync-exclude.lst COPYONLY) elseif(BUILD_CLIENT) install( FILES sync-exclude.lst DESTINATION ${SYSCONFDIR}/${APPLICATION_SHORTNAME} ) configure_file(sync-exclude.lst bin/sync-exclude.lst COPYONLY) endif() desktop-2.6.2/CONTRIBUTING.md000066400000000000000000000034771360037132600154370ustar00rootroot00000000000000## Submitting Desktop Client issues If you have questions about how to use the Nextcloud Desktop Client, please visit our [support site][support] or our [forum][forum]. We are also available on [IRC][irc]. ### Bug Reporting Guidelines * __Important__: Report the issue using our [template][template], it includes all the information we need to track down the issue. * __SECURITY__: Report any potential security bug by following our [security policy](https://nextcloud.com/security/) instead of filing an issue in our bug tracker * This repository is *only* for issues within the Nextcloud desktop client. Issues in other components should be reported in their own repositores: - [Nextcloud server](https://github.com/nextcloud/server/issues) - [Android client](https://github.com/nextcloud/android/issues) - [iOS client](https://github.com/nextcloud/ios/issues) * Search the existing issues first, it's likely that your issue was already reported. If your issue appears to be a bug, and hasn't been reported, open a new issue. Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues. [template]: https://raw.githubusercontent.com/nextcloud/desktop/master/.github/issue_template.md [support]: https://nextcloud.com/support/ [forum]: https://help.nextcloud.com/categories [irc]: https://webchat.freenode.net/?channels=nextcloud ## Contributing to Source Code Thanks for wanting to contribute source code to Nextcloud. That's great! You do not need to sign a Contributor Agreement, but we ask that you follow our [Code of Conduct](https://nextcloud.com/code-of-conduct/). Please read the [Contribution Guide](https://nextcloud.com/contribute/) to get started. ## Translations Please submit translations via [Transifex](https://www.transifex.com/nextcloud/nextcloud/). desktop-2.6.2/COPYING000066400000000000000000000432541360037132600142360ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. desktop-2.6.2/COPYING.documentation000066400000000000000000000460121360037132600171010ustar00rootroot00000000000000Creative Commons Legal Code Attribution 3.0 Unported CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. License THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. 1. Definitions a. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. b. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. c. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. d. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. e. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. f. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. g. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. h. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. i. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: a. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; b. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; c. to Distribute and Publicly Perform the Work including as incorporated in Collections; and, d. to Distribute and Publicly Perform Adaptations. e. For the avoidance of doubt: i. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; ii. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, iii. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: a. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested. b. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. c. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. 5. Representations, Warranties and Disclaimer UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 7. Termination a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. 8. Miscellaneous a. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. e. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. f. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. Creative Commons Notice Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of this License. Creative Commons may be contacted at http://creativecommons.org/. desktop-2.6.2/CPackOptions.cmake.in000066400000000000000000000022211360037132600171340ustar00rootroot00000000000000# This file is configured at cmake time, and loaded at cpack time. # To pass variables to cpack from cmake, they must be configured # in this file. if(CPACK_GENERATOR MATCHES "NSIS") SET( CPACK_PACKAGE_ICON @CMAKE_SOURCE_DIR@/admin/win/nsi/installer.ico ) # A branding image that will be displayed on the top bar inside the installer. installer.bmp SET( CPACK_NSIS_COMPRESSOR "/SOLID lzma" ) # The arguments that will be passed to the NSIS SetCompressor command. /SOLID lzma endif(CPACK_GENERATOR MATCHES "NSIS") set( CMAKE_SOURCE_DIR @CMAKE_SOURCE_DIR@ ) set( CMAKE_BINARY_DIR @CMAKE_BINARY_DIR@ ) set( OEM_THEME_DIR @OEM_THEME_DIR@ ) if ( DEFINED OEM_THEME_DIR AND EXISTS ${OEM_THEME_DIR}/OEM.cmake ) include ( ${OEM_THEME_DIR}/OEM.cmake ) else () include ( "${CMAKE_SOURCE_DIR}/NEXTCLOUD.cmake" ) endif() set( CRASHREPORTER_EXECUTABLE @CRASHREPORTER_EXECUTABLE@) set( BUILD_OWNCLOUD_OSX_BUNDLE @BUILD_OWNCLOUD_OSX_BUNDLE@) if(APPLE AND NOT BUILD_OWNCLOUD_OSX_BUNDLE) message( FATAL_ERROR "You're trying to build a bundle although you haven't built the client in bundle mode.\n Add -DBUILD_OWNCLOUD_OSX_BUNDLE=ON") endif() desktop-2.6.2/ChangeLog000066400000000000000000001700761360037132600147600ustar00rootroot000000000000002.5 Series ChangeLog ==================== version 2.5.3 (release 2019-07-22) * Fix empty file wording in error log (small) * Add Qt-5.12 to CI * Fix a minor typo * Libcloudproviders: Add missing check for Qt5DBus * Fix several memory leaks in cloudproviders and add translation support * Share link fixing * New drone config * Uses configuraion to determine if it should show empty folder popup. * Simplify cmake command to make copy-pastable * Updated default remote poll to 5 seconds #1115 * Fix memory leak with device pointer * Added a nice UI for the E2E-enabled account first connect * This should fix issue #1000 * Adds parameter to retrieve shares with its reshares. * Fixed typo * Fixed typo in "certificate" * WebView: Properly handle usernames with spaces and plus signs in it * Add error category for http file lock error status 423. * Displays the uid_owner of a shared file. * Minor text change in the link to help in the tab 'General'. version 2.5.2 (release 2019-04-11) * Handle spaces in username properly in login flow * Wizard: show an error message if there is no enough free space in the local folder * Removed whitespace from string * Do not add double slash to login flow url * Fix login flow with system proxy * Start with easier theming * Do not display dismissed notifications * Fixed l18n issue. Added space for separating string * Add invalid certiticate messagebox * Correct app passwords link * Be less verbose with logging * Fix typo in translation string * Add a command line option to launch the client in the background * Support Ubuntu Disco Dingo * Added missing Include * Make sure _profile and _page are deleted in the correct order * Fix KDEInstallDirs deprecation warnings * Removed Stylesheet version 2.5.1 (release 2019-01-06) * Fixup the port in server notification URLs * GUI: let Clang-Tidy modernize nullptr & override usage * Improve the slide show * Libsync: let Clang-Tidy modernize nullptr & override usage * SettingsDialog: fix a little glitch in the account tool button size * SettingsDialog: tweak color aware icons * More verbose error and proper app name on configuration read error * Fix cmake build using WITH_PROVIDERS=OFF * Debian/Ubuntu target repository update * Change man page names and contents for nextcloud * Share dialog alignment * Fixed typo * Change link to docs for NC 15 * Do not fetch activities if they are not enabled * Do not read system exclude list if user exclude is present * Fix the activity loop * Write the actual folder to the log * Fix appname for Nautilus integration script version 2.5.0 (release 2018-11-14) * End to end encryption * New Web login flow * UI improvements: Notifications * UI improvements: refactoring of Activities * SyncJournal: Clear etag filter before sync * Partial local discovery: Fix scheduling logic * Sync hidden files by default * Larger Windows App Icon * Show a tray message when a folder watcher becomes unreliable #6119 * Create symlinks for the small-letter application icon file names * In setup wizard put link to nextcloud installation * Web view scales vertically * Add a WebFlowCredentialsAccessManager * Mac Application Icon * Ensure GETFileJob notices finishing #6581 * OAuth2: Try to refresh the token even if the credentials weren't ready. * Tray workarounds #6545 * UpdateInfo: Remove unused code * OAuth: Remove the timeout * TestOAuth: Don't have global static QObject * Log: Adjust update/reconcile log verbosity * Reconcile: When detecting a local move, keep the local mtime * Wizard enhancement * FolderMan::checkPathValidityForNewFolder: make sure to work when fold… * Update: Report on readdir() errors #6610 * Use encode()/decode() with Python 3 only * Sqlite: Update bundled version to 3.24.0 * Do not require server replies to contain an mtime * Settings: Attempt to fix rename issue on old macOS * Support higher resolution theme icons * OAuth: Fix infinite loop when the refresh token is expired * Windows: Don't ignore files with FILE_ATTRIBUTE_TEMPORARY * Data-Fingerprint: Fix backup detection when fingerprint is empty * Nautilus: Fix GET_MENU_ITEMS with utf8 filenames #6643 * Windows: Release handle/fd when file open fails #6699 * SettingsDialog: Show the page for the newly created account * Updates submodule qtmacgoodies. * Fixes #665 Adds slot for confirmShare button. * Rename INSTALL to INSTALL.md for Preview :) * Add cmake temporary stuff * Inform user that configuration is not writable * Uses QByteArray to store private key. * Fix cmake command for linux in README too * Build fix: remove an unused QtSvg/QSvgRenderer include * Qtkeychain: 0.8.0 -> 0.9.1 * Setup wizard: implement an animated and interactive slide show * Theming for general settings ui * Make the "Add Folder Sync Connection" button act like a button * Allow to use the login flow with a self signed certificate * Fix warning in ShareUserGroupWidget * Copy over config file to new location on windows * Update to translate strings * Migrate http auth to webflow * Margins * Qt 5.5 compatibility patch for Xenial * Fix cmake build of documentation * Use Nextcloud * Update isntaller background for OSX * Fix ActivityWidget palette * SettingsDialog: disable unnecessary wrapping for the about label * Added default scheme when server returns just a host * Removed explicit initialization; Fixed RAND_bytes not found * Actually open the activity view on a click for more info * Use a format that supports alpha channels for avatars * L10n. Added space for correct grammar. 2.4 Series ChangeLog ==================== version 2.4.1 (2017-02-xx) * Ignore files with file names that can't be encoded for the filesystem (#6287, #5676, #5719) * Issues: Speed up insertion and add hard upper limit (#6272) * Notifications: Fix "Dismiss" action * Notifications: Fix timer invocation on macOS * Notifications: Immediately poll when account online * Protocol: Remove entries for auto resolved conflicts (#6316) * owncloudcmd: Set proxy before capabilities call (#6281) * owncloudcmd: Do not do the capability call when --nonshib is passed * Avatars: Use old location for servers <10 (#6279) * Link shares: Change default share name (#6298) * Nautilus integration: Work with python2 and python3 * HTTP2: Only allow with Qt 5.9.4 (#6285) * Crash fixes version 2.4.0 (2017-12-21) * If you're using 2.4.0 alpha1, please upgrade as previous alphas/rcs had an issue with hidden files and renames! * OAuth2 authentication support by opening external browser (#5668) * Shibboleth: Change to use OAuth2 if supported (#6198) * Sharing: Add support for multiple public link shares (#5655) * Sharing: Add option to copy/email private links (#5023, #5627) * Sharing: Add option "show file listing" (#5837) * Sharing: Show warning that links are public (#5747) * Sharing: Sharing dialog redesign: multiple share links support (#5695) * Sharing: Make "can edit" partially checked sometimes (#5642) * Sharing: Trigger a sync for folder affected by a change of sharing (#6098) * Wizard: Never propose an existing folder for syncing (#5597) * Wizard: Don't show last page anymore, go to settings directly (#5726) * Wizard: Handle url-shortener redirects (#5954) * Wizard: Resolve url/ redirects only if url/status.php not found (#5954) * Wizard: Add explanation text when server error is shown (#6157) * Wizard: Update the window size on high dpi screen (#6156) * Wizard: Don't report confusing error message (#6116) * Gui: Display the user server avatar (#5482) * Gui: Use display name of user, not internal name * Server URL: Update configuration in case of permanent redirection (#5972) * Gui: Allow to add multiple sync folder connection of the same folder (#6032) * Tray Menu: More detailed status messages * Tray Menu: Shibboleth: raise the browser when clicking on the tray (#6105) * Activity: Link errors from the account tab, allow filtering by account/folder (#5861) * Activity: Present conflicts more prominently (#5894) * Activity: Allow sorting the columns in issues and protocol tabs (#6093, #6086) * Selective Sync: Open sub folder context menu (#5596) * Selective Sync: Skip excluded folders when reading db (#5772) * Selective Sync: Remove local files of unselected folder despite other modified files (#5783) * Excludes: Remove .htaccess form list of excluded files (#5701) * Excludes: Hardcode desktop.ini * Excludes: Allow escaping "#" (#6012) * Excludes: Use faster matching via QRegularExpression (#6063) * Discovery: Increase the MAX_DEPTH and show deep folders as ignored (#1067) * Discovery: General speed improvements * Downloads: Remove empty temporary if disk space full (#5746) * Downloads: Read Content-MD5 header for object store setups * Checksums: Add global disable environment variable (#5017) * Quota: PropagateUpload: Model of remote quota, avoid some uploads (#5537) * Create favorite also in folder wizard (#455) * Windows: Use the application icon for the Windows 8 sidebar favorite (#2446, #5690) * macOS: Finder sidebar icon (#296) * Overlay Icons: Consider also the "shared by me" as shared (#4788) * Overlay Icons: Update right after sharing (#6115) * Overlay Icons: Fix different case paths not matching (#5257) * Overlay Icons: Detect changes in the shared flag (#6098) * Windows Overlay Icons: Potential hang fixes * Linux Overlay Icons: fix branded nemo and caja shell integration (#5966) * Credentials: Fix behavior for bad password (#5989) * Credentials: Don't create empty client cert keychain entries (#5752) * Credentials: Namespace windows cred keys (#6125) * Credentials: Use per-account keychain entries (#5830, #6126) * AccountSettings: Triggering log in re-ask about previously rejected certificates (#5819) * owncloudcmd: Added bandwidth limit parameter (#5707) * owncloudcmd: Fix timestamps, Fix --logdebug * AccountSettings: Sync with clean discovery on Ctrl-F6 (#5666) * Sync: Dynamic sizing of chunks in chunked uploads for improved big file upload performance (#5852) * Sync: Introduce overall errors that are not tied to a file (#5746) * Sync: Better messaging for 507 Insufficient Storage (#5537) * Sync: Create conflicts by comparing the hash of files with identical mtime/size (#5589) * Sync: Avoid downloads by comparing the hash of files with identical mtime/size (#6153) * Sync: Upload conflict files if OWNCLOUD_UPLOAD_CONFLICT_FILES environment variable is set (#6038) * Sync: Blacklist: Don't let errors become warnings (#5516) * Sync: Check etag again after active sync (#4116) * Sync: Rename handling fixes: duplicate file ids (#6096, #6212) * Sync: Rename handling fixes: File size must be equal * Sync: Rename handling: Fix duplicate files on abort/resume sync (#5949) * Sync: Add capability for invalid filename regexes (#6092) * SyncJournalDB: Fall back to DELETE journal mode if WAL mode does not seem to work (#5723) * SyncJournalDB: Don't crash if the db file is readonly (#6050) * SyncJournalDB: DB close error is not fatal * Fix at least one memory leak * Documentation improvements * Logging improvements (With Qt logging categories) (#5671) * Logging filtering per account (#5672) * Crash fixes * Test improvements * Small UI layout fixes * Performance improvements * Maintenance Mode: Detect maintenance mode (#4485) * Maintenance Mode: Add a 1 to 5 min reconnection delay (#5872) * HTTP: Send a unique X-Request-ID with each request (#5853) * HTTP: Support HTTP2 when built and running with Qt 5.9.x (Official packages still on Qt 5.6.x) (#5659) * owncloudcmd: Don't start if connection or auth fails (#5692) * csync: Switch build from C to C++ (#6033) * csync: Refactor a lot to use common data structures to save memory and memory copying * csync: Switch some data structures to Qt data structures * csync: Switch to using upper layer SyncJournalDB (#6087) * Switch 3rdparty/json usage to Qt5's QJson (#5710) * OpenSSL: Don't require directly, only via Qt (#5833) * Remove iconv dependency, use Qt for file system locale encoding/decoding (emoji filename support on macOS) (#5875) * Compilation: Remove Qt 4 code (#6025, #5702, #5505) * Harmonize source code style with clang-format (#5732) * Switch over to Qt 5 function pointer signal/slot syntax (#6041) * Compile with stack-smashing protection * Updater: Rudimentary support for beta channel (#6048) 2.3 Series ChangeLog ==================== version 2.3.4 (2017-11-02) * Checksums: Use addData function to avoid endless loop CPU load issues with Office files * Packaging: Require ZLIB version 2.3.3 (2017-08-29) * Chunking NG: Don't use old chunking on new DAV endpoint (#5855) * Selective Sync: Skip excluded folders when reading DB, don't let them show errors (#5772) * Settings: Make window bigger so Qt version is always visible (#5760) * Share links: Show warning that public link shares are public (#5786) * Downloads: Re-trigger folder discovery on HTTP 404 (#5799) * Overlay Icons: Fix potential hangs on Windows * SyncJournalDB: Don't use ._ as filename pattern if that does not work because of SMB storage settings (#5844) * SyncJournalDB: Log reason for sqlite3 opening errors * Notifications: Proapgate "Dismiss" button action to server (#5922) * Switch Linux build also to Qt 5.6.2 (#5470) * Stopped maintaining Qt 4 buildability version 2.3.2 (2017-05-08) * Fix more crashes (thanks to everyone submitting to our crash reporter!) * Improve compatibility with server 10.0 (#5691, X-OC-Total-Size) * Share dialog: UI improvements, Bring to front on tray click * owncloudcmd: Align process return value with sync return value (#3936) * Fix disk free check on Windows when opening the local DB version 2.3.1 (2017-03-21) * Fix several crashes (thanks to everyone submitting to our crash reporter!) * Improve HTTP redirect handling (#5555) * Blacklist: Escalate repeated soft error to normal error (#5500) * NTFS: Do not attempt to upload two existing files with similar casing (#5544) * Fix URL for linking to application password generation for ownCloud 10.0 (#5605) version 2.3.0 (2017-03-03) * Decreased memory usage during sync * Overlay icons: Lower CPU usage * Allow to not sync the server's external storages by default * Switch Windows and OS X build to Qt 5.6.2 * Switch to new ownCloud server WebDAV endpoint * Chunking NG: New file upload chunking algorithmn for ownCloud server 9.2 * Allow to sync a folder to multiple different servers (Filename change from .csync_journal.db to _sync_$HASH.db) * Conflicts: Use the local mtime for the conflict file name (#5273) * "Sync now" menu item * SSL Client certificate support improved (Show UI, Store keys in keychain) * Propagator: Upload more small files in parallel * Sync Engine: Read data-fingerprint property to detect backups (#2325) * GUI: Show link to ceate an app password/token for syncing * Share dialog: Add 'Mail link' button * Caja file manager plugin * Make "backup detected" message to not trigger in wrong cases * SyncEngine: Fix renaming of folder when file are changed (#5192) * Fix reconnect bug if status.php intermittently returns wrong data (#5188) * Improve sync scheduling (#5317) * Overlay icons: Improvements in correctnes * Tray menu: Only update on demand to fix Linux desktop integration glitches * Progress: Better time/bandwidth estimations * Network: Follow certain HTTP redirects (#2791) * Network: Remove all cookies (including load balancers etc) when logging out * Discovery thread: Low priority * owncloudsync.log: Write during propagation * Better error message for files with trailing spaces on Windows * Excludes: Consider files in hidden folders excluded (#5163) * Allow sync directory to be a symlinked directory * Add manifest file on Windows to make the application UAC aware * macOS: Improve monochrome tray icons * Shibboleth bugfixes * Fixes with regards to low disk space * A ton of other bugfixes * Refactorings * Improved documentation * Crash fixes 2.2 Series ChangeLog ==================== version 2.2.4 (release 2016-09-27) * Dolphin Plugin: Use the Application name for the socket path (#5172) * SyncEngine: Fix renaming of folder when file are changed (#5195) * Selective Sync: Fix HTTP request loop and show error in view (#5154) * ConnectionValidator: properly handle error in status.php request (#5188) * Discovery: Set thread priority to low (#5017) * ExcludeFiles: Fix when the folder casing is not the same in the settings and in the FS * ShareLink: Ensure the password line edit is enabled (#5117) version 2.2.3 (release 2016-08-08) * SyncEngine: Fix detection of backup (#5104) * Fix bug with overriding URL in config (#5016) * Sharing: Fix bug with file names containing percent encodes (#5042, #5043) * Sharing: Permissions for federated shares on servers >=9.1 (#4996, #5001) * Overlays: Fix issues with file name casing on OS X and Windows * Windows: Skip symlinks and junctions again (#5019) * Only accept notification API Capability if endpoint is OCS-enabled (#5034) * Fix windows HiDPI (#4994) * SocketAPI: Use different pipe name to avoid unusual delay (#4977) * Tray: Add minimal mode as workaround and testing tool for Linux issues (#4985, #4990) * owncloudcmd: Fix --exclude regression #4979 * Small memleak: Use the full file stat destructors (#4992) * Fix small QAction memleak (#5008) * Fix crash on shutting down during propagation (#4979) * Decrease memory usage during sync #4979 * Setup csync logging earlier to get all log output (#4991) * Enable Shibboleth debug view with OWNCLOUD_SHIBBOLETH_DEBUG env version 2.2.2 (release 2016-06-21) * Excludes: Don't redundantly add the same exclude files (memleak) (#4967, #4988) * Excludes: Only log if the pattern was really logged. (#4989) version 2.2.1 (release 2016-06-06) * Fix out of memory error when too many uploads happen (#4611) * Fix display errors in progress display (#4803 #4856) * LockWatcher: Remember to upload files after they become unlocked (#4865) * Fix overlay icons for files with umlauts (#4884) * Certs: Re-ask for different cert after rejection (#4898, #4911) * Progress: Don't count items without propagation jobs (#4856, #4910) * Utility: Fix for the translation of minutes, second (#4855) * SyncEngine: invalid the blacklist entry when the rename destination change version 2.2.0 (release 2016-05-12) * Overlay icons: Refactoring - mainly for performance improvements * Improved error handling with Sync Journal on USB storages (#4632) * Sharing Completion: Improved UI of completion in sharing from desktop. (#3737) * Show server notifications on the client (#3733) * Improved Speed with small files by dynamic parallel request count (#4529) * LockWatcher: Make sure to sync files after apps released exclusive locks on Windows. * Improved handling of Win32 file locks and network files * Workaround Ubuntu 16.04 tray icon bug (#4693) * Removed the Alias field from the folder definition (#4695) * Improved netrc parser (#4691) * Improved user notifications about ignored files and conflicts (#4761, #3222) * Add warnings for old server versions (#4523) * Enable tranportation checksums if the server supports based on server capabilities (#3735) * Default Chunk-size changed to 10MB (#4354) * Documentation Improvements, ie. about overlay icons * Translation fixes * Countless other bugfixes * Update of QtKeyChain to support Windows credential store * Packaging of dolphin overlay icon module for bleeding edge distros 2.1 Series ChangeLog ==================== version 2.1.1 (release 2016-02-10) * UI improvements for HiDPI screens, error messages, RTL languages * Fix occurences of "Connection Closed" when a new unauthenticated TCP socket is used * Fix undeliberate WiFi scanning done by Qt Network classes * Several fixes/improvements to the sharing dialog * Several fixes/improvements to the server activity tab * Create the directory when using --confdir and it does not exist * Windows Overlay icons: Fix DLL and icon oddities * Mac Overlay icons: Don't install legacy Finder plugin on >= 10.10 * Linux Overlay icons: Nemo plugin * Overlay icons: Fix several wrong icon state computations * Allow changeable upload chunk size in owncloud.cfg * Crash fixes on account deletion * Forget password on explicit sign-out * OS X: Fix the file system watcher ignoring unicode paths (#4424) * Windows Installer: Update to NSIS 2.50, fixes possible DLL injection * Sync Engine: .lnk files * Sync Engine: symlinked syn directories * Sync Engine: Windows: Fix deleting and replacing of read-only files (#4308, #4277) * Sync Engine: Fixes for files becoming directories and vice versa (#4302) * Misc other fixes/improvements version 2.1 (release 2015-12-03) * GUI: Added a display of server activities * GUI: Added a separate view for not synced items, ignores, errors * GUI: Improved upload/download progress UI (#3403, #3569) * Allowed sharing with ownCloud internal users and groups from Desktop * Changed files starting in .* to be considered hidden on all platforms (#4023) * Reflect read-only permissions in filesystem (#3244) * Blacklist: Clear on successful chunk upload (#3934) * Improved reconnecting after network change/disconnect (#4167 #3969 ...) * Improved performance in Windows file system discovery * Removed libneon-based propagator. As a consequence, The client can no * longer provide bandwith limiting on Linux-distributions where it is * using Qt < 5.4 * Performance improvements in the logging functions * Ensured that local disk space problems are handled gracefully (#2939) * Improved handling of checksums: transport validation, db (#3735) * For *eml-files don't reupload if size and checksum are unchanged (#3235) * Ensured 403 reply code is handled properly (File Firewall) (#3490) * Reduced number of PROPFIND requests to server(#3964) * GUI: Added Account toolbox widget to keep account actions (#4139) * Tray Menu: Added fixes for Recent Activity menu (#4093, #3969) * FolderMan: Fixed infinite wait on pause (#4093) * Renamed env variables to include unit (#2939) * FolderStatusModel: Attempt to detect removed undecided files (#3612) * SyncEngine: Don't whipe the white list if the sync was aborted (#4018) * Quota: Handle special negative value for the quota (#3940) * State app name in update notification (#4020) * PropagateUpload: Fixed double-emission of finished (#3844) * GUI: Ensured folder names which are excluded from sync can be clicked * Shell Integration: Dolphin support, requires KF 5.16 and KDE Application 15.12 * FolderStatusModel: Ensured reset also if a folder was renamed (#4011) * GUI: Fixed accessiblity of remaing items in full settings toolbar (#3795) * Introduced the term "folder sync connection" in more places (#3757) * AccountSettings: Don't disable pause when offline (#4010) * Fixed handling of hidden files (#3980) * Handle download errors while resuming as soft errors (#4000) * SocketAPI: Ensured that the command isn't trimmed (#3297) * Shutdown socket API before removing the db (#3824) * GUI: Made "Keep" default in the delete-all dialog (#3824) * owncloudcmd: Introduced return code 0 for --version and --help * owncloudcmd: Added --max-sync-retries (#4037) * owncloudcmd: Don't do a check that file are older than 2s (#4160) * Fixed getting size for selective sync (#3986) * Re-added close button in the settings window (#3713) * Added abililty to handle storage limitations gracefully (#3736) * Organized patches to our base Qt version into admin/qt/patches * Plus: A lot of unmentioned improvements and fixes 2.0 Series ChangeLog ==================== version 2.0.2 (release 2015-10-21) * csync_file_stat_s: Save a bit of memory * Shibboleth: Add our base user agent to WebKit * SelectiveSync: Increase folder list timeout to 60 * Propagation: Try another sync on 423 Locked (#3387) * Propagation: Make 423 Locked a soft error (#3387) * Propagation: Reset upload blacklist if a chunk succeeds * Application: Fix crash on early shutdown (#3898) * Linux: Don't show settings dialog always when launched twice (#3273, #3771, #3485) * win32 vio: Add the OPEN_REPARSE_POINTS flag to the CreateFileW call. (#3813) * AccountSettings: only expand root elements on single click. * AccountSettings: Do not allow to expand the folder list when disconnected. * Use application SHORT name for the name of the MacOSX pkg file (ownBrander). * FolderMan: Fix for removing a syncing folder (#3843) * ConnectionMethodDialog: Don't be insecure on close (#3863) * Updater: Ensure folders are not removed (#3747) * Folder settings: Ensure path is cleaned (#3811) * Propagator: Simplify sub job finished counting (#3844) * Share dialog: Hide settings dialog before showing (#3783) * UI: Only expand 1 level in folder list (#3585) * UI: Allow folder expanding from button click (#3585) * UI: Expand folder treeview on single click (#3585) * GUI: Change tray menu order (#3657) * GUI: Replace term "sign in" with "Log in" and friends. * SetupPage: Fix crash caused by uninitialized Account object. * Use a themable WebDAV path all over. * Units: Back to the "usual" mix units (JEDEC standard). * csync io: Full UNC path support on Win (#3748) * Tray: Don't use the tray workaround with the KDE theme (#3706, #3765) * ShareDialog: Fix folder display (#3659) * AccountSettings: Restore from legacy only once (#3565) * SSL Certificate Error Dialog: show account name (#3729) * Tray notification: Don't show a message about modified folder (#3613) * PropagateLocalRemove: remove entries from the DB even if there was an error. * Settings UI improvements (eg. #3713, #3721, #3619 and others) * Folder: Do not create the sync folder if it does not exist (#3692) * Shell integration: don't show share menu item for top level folders * Tray: Hide while modifying menus (#3656, #3672) * AddFolder: Improve remote path selection error handling (#3573) * csync_update: Use excluded_traversal() to improve performance (#3638) * csync_excluded: Add fast _traversal() function (#3638) * csync_exclude: Speed up significantly (#3638) * AccountSettings: Adjust quota info design (#3644, #3651) * Adjust buttons on remove folder/account questions (#3654) version 2.0.1 (release 2015-09-01) * AccountWizard: fix when the theme specify a override URL (#3699) version 2.0.0 (release 2015-08-25) * Add support for multiple accounts (#3084) * Do not sync down new big folders from server without users consent (#3148) * Integrate Selective Sync into the default UI * OS X: Support native finder integration for 10.10 Yosemite (#2340) * Fix situation where client would not reconnect after timeout (#2321) * Use SI units for the file sizes * Improve progress reporting during sync (better estimations, show all files, show all bandwidth) * Windows: Support paths >255 characters (#57) by using Windows API instead of POSIX API * Windows, OS X: Allow to not sync hidden files (#2086) * OS X: Show file name in UI if file has invalid UTF-8 in file name * Sharing: Make use of Capability API (#3439) * Sharing: Do not allow sharing the root folder (#3495) * Sharing: Show thumbnail * Client Updater: Check for updates periodically, not only once per run (#3044) * Windows: Remove misleading option to remove sync data (#3461) * Windows: Do not provoke AD account locking if password changes (#2186) * Windows: Fix installer when installing unprivileged (#2616, #2568) * Quota: Only refresh from server when UI is shown * SSL Button: Show more information * owncloudcmd: Fix --httpproxy (#3465) * System proxy: Ask user for credentials if needed * Several fixes and performance improvements in the sync engine * Network: Try to use SSL session tickets/identifiers. Check the SSL button to see if they are used. * Bandwidth Throttling: Provide automatic limit setting for downloads (#3084) * Systray: Workaround for issue with Qt 5.5.0 #3656 1.8 Series ChangeLog ==================== version 1.8.4 (release 2015-07-13) * Release to ship a security release of openSSL. No source changes of the ownCloud Client code. version 1.8.3 (release 2015-06-23) * Fix a bug in the Windows Installer that could crash explorer (#3320) * Reduce 'Connection closed' errors (#3318, #3313, #3298) * Ignores: Force a remote discovery after ignore list change (#3172) * Shibboleth: Avoid crash by letting the webview use its own QNAM (#3359) * System Ignores: Removed *.tmp from system ignore again. If a user * wants to ignore *.tmp, it needs to be added to the user ignore list. version 1.8.2 (release 2015-06-08) * Improve reporting of server error messages (#3220) * Discovery: Ignore folders with any 503 (#3113) * Wizard: Show server error message if possible (#3220) * QNAM: Fix handling of mitm cert changes (#3283) * Win32: Installer translations added (#3277) * Win32: Allow concurrent OEM (un-)installers (#3272) * Win32: Make Setup/Update Mutex theme-unique (#3272) * HTTP: Add the branding name to the UserAgent string * ConnectonValidator: Always run with new credentials (#3266) * Recall Feature: Admins can trigger an upload of a file from * client to server again (#3246) * Propagator: Add 'Content-Length: 0' header to MKCOL request (#3256) * Switch on checksum verification through branding or config * Add ability for checksum verification of up and download * Fix opening external links for some labels (#3135) * AccountState: Run only a single validator, allow error message * overriding (#3236, #3153) * SyncJournalDB: Minor fixes and simplificatons * SyncEngine: Force re-read of folder Etags for upgrades from * 1.8.0 and 1.8.1 * Propagator: Limit length of temporary file name (#2789) * ShareDialog: Password ui fixes (#3189) * Fix startup hang by removing QSettings lock file (#3175) * Wizard: Allow SSL cert dialog to show twice (#3168) * ProtocolWidget: Fix rename message (#3210) * Discovery: Test better, treat invalid hrefs as error (#3176) * Propagator: Overwrite local data only if unchanged (#3156) * ShareDialog: Improve error reporting for share API fails * OSX Updater: Only allow updates only if in /Applications (#2931) * Wizard: Fix lock icon (#1447) * Fix compilation with GCC 5 * Treat any 503 error as temporary (#3113) * Work around for the Qt PUT corruption bug (#2425) * OSX Shell integration: Optimizations * Windows Shell integration: Optimizations .. more than 250 commits since 1.8.1 version 1.8.1 (release 2015-05-07) * Make "operation canceled" error a soft error * Do not throw an error for files that are scheduled to be removed, * but can not be found on the server. #2919 * Windows: Reset QNAM to proper function after hibernation. #2899 #2895 #2973 * Fix argument verification of --confdir #2453 * Fix a crash when accessing a dangling UploadDevice pointer #2984 * Add-folder wizard: Make sure there is a scrollbar if folder names * are too long #2962 * Add-folder Wizard: Select the newly created folder * Activity: Correctly restore column sizes #3005 * SSL Button: do not crash on empty certificate chain * SSL Button: Make menu creation lazy #3007 #2990 * Lookup system proxy async to avoid hangs #2993 #2802 * ShareDialog: Some GUI refinements * ShareDialog: On creation of a share always retrieve the share * This makes sure that if a default expiration date is set this is reflected * in the dialog. #2889 * ShareDialog: Only show share dialog if we are connected. * HttpCreds: Fill pw dialog with previous password. #2848 #2879 * HttpCreds: Delete password from old location. #2186 * Do not store Session Cookies in the client cookie storage * CookieJar: Don't accidentally overwrite cookies. #2808 * ProtocolWidget: Always add seconds to the DateTime locale. #2535 * Updater: Give context as to which app is about to be updated #3040 * Windows: Add version information for owncloud.exe. This should help us know * what version or build number a crash report was generated with. * Fix a crash on shutdown in ~SocketApi #3057 * SyncEngine: Show more timing measurements #3064 * Discovery: Add warning if returned etag is 0 * Fix a crash caused by an invalid DiscoveryDirectoryResult::iterator #3051 * Sync: Fix sync of deletions during 503. #2894 * Handle redirect of auth request. #3082 * Discovery: Fix parsing of broken XML replies, which fixes local file disappearing #3102 * Migration: Silently restore files that were deleted locally by bug #3102 * Sort folder sizes SelectiveSyncTreeView numerically #3112 * Sync: PropagateDownload: Read the mtime from the file system after writing it #3103 * Sync: Propagate download: Fix restoring files for which the conflict file exists #3106 * Use identical User Agents and version for csync and the Qt parts * Prevent another crash in ~SocketApi #3118 * Windows: Fix rename of finished file. #3073 * AccountWizard: Fix auth error handling. #3155 * Documentation fixes * Infrastructure/build fixes * Win32/OS X: Apply patch from OpenSSL to handle oudated intermediates gracefully #3087 version 1.8.0 (release 2015-03-17) * Mac OS: HIDPI support * Support Sharing from desktop: Added a share dialog that can be * opened by context menu in the file managers (Win, Mac, Nautilus) * Supports public links with password enforcement * Enhanced usage of parallel HTTP requests for ownCloud 8 servers * Renamed github repository from mirall to client. * Mac OS: Use native notification support * Selective Sync: allow to enforce selective sync in brandings. * Added ability to build on Windows utilizing MingGW * SQLite database fixes if running on FAT filesystems * Improved detection of changing files to upload from local * Preparations for the multi-account feature * Fixed experience for Window manager without system tray * Build with Qt 5.4 * Dropped libneon dependency if Qt 5.4 is available * Keep files open very short, that avoid lock problems on Windows * especially with office software but also others. * Merged some NetBSD patches * Selective sync support for owncloudcmd * Reorganize the source repository * Prepared direct download * Added Crashreporter feature to be switched on on demand * A huge amount of bug fixes in all areas of the client. * almost 700 commits since 1.7.1 1.7 Series ChangeLog ==================== version 1.7.1 (release 2014-12-18) * Documentation fixes and updates * Nautilus Python plugin fixed for Python 3 * GUI wording fixes plus improved log messages * Fix hidning of the database files in the sync directories * Compare http download size with the header value to avoid broken * downloads, bug #2528 * Avoid initial ETag fetch job at startup, which is not needed. * Add chunk size http header to PUT requests * Fixed deteteCookie method of our CookieJar, fix for Shibboleth * Added fallback for distros where XDG_RUNTIME_DIR is undefined * Fix the setup wizard, bug #1989, #2264 * Fix scheduling of ETag check jobs, bug #2553 * Fix to avoid syncing more than one folder at a time, bug #2407 * Use fife minutes timeout for all network jobs * Cleanup for Folderwizard wording * Improve journal check: Remove corrupted journal files, bug #2547 * Fix item count in progress dialog for deletes, bug #1132 * Display correct file count on deletion (#1132) * Fix reinitializing the folder using the wizard in certain cases (#2606) * Mac OS: Fixed branding of the pkg file * Mac OS: Fix display of overlay icons in certain situations (#1132) * Mac OS: Use a bundled version of OpenSSL (#764, #2600, #2510) * Win32: improved filesystem watcher * Win32: Improve threading with shell integration * Win32: Upgraded to OpenSSL 1.0.1j * Win32: Improve reliability of Installer, fix removal of Shell Extensions version 1.7.0 (release 2014-11-07) * oC7 Sharing: Handle new sharing options of ownCloud 7 correctly. * Added Selective sync: Ability to unselect server folders which are * excluded from syncing, plus GUI and setup GUI * Added overlay icons for Windows Explorer, Mac OS Finder and GNOME Nautilus. * Information is provided by the client via a local socket / named pipe API * which provides information about the sync status of files. * Improved local change detection: consider file size, detect files * with ongoing changes and do not upload immediately * Improved HTTP request timeout handler: all successful requests reset * the timeout counter * Improvements for syncing command line tool: netrc support, improved * SSL support, non interactive mode * Permission system: ownCloud 7 delivers file and folder permissions, * added ability to deal with it for shared folders and more. * Ignore handling: Do not recurse into ignored or excluded directories * Major sync journal database improvements for more stability and performance * New library interface to sqlite3 * Improve "resync handling" if errors occur * Blacklist improvements * Improved logging: more useful meta info, removed noise * Updated to latest Qt5 versions on Windows and OS X * Fixed data loss when renaming a download temporary fails and there was * a conflict at the same time. * Fixed missing warnings about reusing a sync folder when the back button * was used in the advanced folder setup wizard. * The 'Retry Sync' button now also restarts all downloads. * Clean up temporary downloads and some extra database files when wiping a * folder. * OS X: Sparkle update to provide pkg format properly * OS X: Change distribution format from dmg to pkg with new installer. * Windows: Fix handling of filenames with trailing dot or space * Windows: Don't use the wrong way to get file mtimes in the legacy propagator. 1.6 Series ChangeLog ==================== version 1.6.4 (release 2014-10-22) * Fix startup logic, fixes bug #1989 * Fix raise dialog on X11 * Win32: fix overflow when computing the size of file > 4GiB * Use a fixed function to get files modification time, the * original one was broken for certain timezone issues, see * core bug #9781 for details * Added some missing copyright headers * Avoid data corruption due to wrong error handling, bug #2280 * Do improved request timeout handling to reduce the number of * timed out jobs, bug #2155 * version 1.6.3 (release 2014-09-03) * Fixed updater on OS X * Fixed memory leak in SSL button that could lead to quick memory draining * Fixed upload problem with files >4 GB * MacOSX, Linux: Bring Settings window to front properly * Branded clients: If no configuration is detected, try to import the data * from a previously configured community edition. version 1.6.2 (release 2014-07-28 ) * Limit the HTTP buffer size when downloading to limit memory consumption. * Another small mem leak fixed in HTTP Credentials. * Fix local file name clash detection for MacOSX. * Limit maximum wait time to ten seconds in network limiting. * Fix data corruption while trying to resume and the server does * not support it. * HTTP Credentials: Read password from legacy place if not found. * Shibboleth: Fix the waiting curser that would not disapear (#1915) * Limit memory usage to avoid mem wasting and crashes * Propagator: Fix crash when logging out during upload (#1957) * Propagator_qnam: Fix signal slot connection (#1963) * Use more elaborated way to detect that the server was reconfigured (#1948) * Setup Wizard: Reconfigure Server also if local path was changed (#1948) version 1.6.1 (release 2014-06-26 ) * Fix 'precondition failed' bug with broken upload * Fix openSSL problems for windows deployment * Fix syncing a folder with '#' in the name * Fix #1845: do not update parent directory etag before sub * directories are removed * Fix reappearing directories if dirs are removed during its * upload * Fix app version in settings dialog, General tab * Fix crash in FolderWizard when going offline * Shibboleth fixes * More specific error messages (file remove during upload, open * local sync file) * Use QSet rather than QHash in SyncEngine (save memory) * Fix some memory leaks * Fix some thread race problems, ie. wait for neon thread to finish * before the propagator is shut down * Fix a lot of issues and warnings found by Coverity * Fix Mac some settings dialog problems version 1.6.0 (release 2014-05-30 ) * Minor GUI improvements * Qt5 compile issues fixed * Ignore sync log file in filewatcher * Install libocsync to private library dir and use rpath to localize * Fix reconnect after server disconnect * Fix "unknown action" display in Activity window * Fix memory leaks * Respect XDG_CONFIG_HOME environment var * Handle empty fileids in the journal correctly * Add abilility to compile libowncloudsync without GUI dependendy * Fix SSL error with previously-expired CAs on Windows * Fix incorrect folder pause state after start * Fix a couple of actual potential crashes * Improve Cookie support (e.g. for cookie-based load-balancers) * Introduce a general timeout of 300s for network operations * Improve error handling, blacklisting * Job-based change propagation, enables faster parallel up/downloads * (right now only if no bandwidth limit is set and no proxy is used) * Significantly reduced CPU load when checking for local and remote changes * Speed up file stat code on Windows * Enforce Qt5 for Windows and Mac OS X builds * Improved owncloudcmd: SSL support, documentation * Added advanced logging of operations (file .???.log in sync * directory) * Avoid creating a temporary copy of the sync database (.ctmp) * Enable support for TLS 1.2 negotiation on platforms that use * Qt 5.2 or later * Forward server exception messages to client error messages * Mac OS X: Support Notification Center in OS X 10.8+ * Mac OS X: Use native settings dialog * Mac OS X: Fix UI inconsistencies on Mavericks * Shibboleth: Warn if authenticating with a different user * Remove vio abstraction in csync * Avoid data loss when a client file system is not case sensitive 1.5 Series ChangeLog ==================== version 1.5.3 (release 2014-03-10 ) * Fix usage of proxies after first sync run (#1502, #1524, #1459, #1521) * Do not wipe the credentials from config for reconnect (#1499, #1503) * Do not erase the full account config if an old version of the client stored * the password (related to above) * Fix layout of the network tab (fixes #1491) * Handle authentication requests by a Shibboleth IdP * Shibboleth: If no connection is available, don't open the login window * [Packaging] Debian/Ubuntu: ship sync-exclude.lst * [Packaging] Fix issues with access to gnome keychain in Fedora and RHEL6 * [Packaging] Ensure all sub packages get updated * [Packaging] Fix incorrect path in desktop file (RHEL6/CentOS6) version 1.5.2 (release 2014-02-26 ) * Fix behavior when attempting to rename Shared folder * Fix potential endless sync loops on Mac OS (#1463) * Fix potential crash when pausing during update phase (#1442) * Fix handing of shared directories * Fix online state handling (#1441, #1459) * Fix potential crash in c_iconv on Mac OS * Fix certificate chain display in SSLButton * Fix sporadicly appearing multiple auth prompts on sign-in * Show correct state icon in Account Settings right away * Re-fetch content that gets deleted from read only shared directories * Do not store the password in the config file, erase existing ones (#1469) * Shibboleth: Close browser window after login * Shibboleth: Proper invalidation if timeout during sync * Shibboleth: Do not pop up IdP login immediately when modifying account * Shibboleth: Avoid auth on restart by storing cookies in the wallet * Fix license headers version 1.5.1 (release 2014-02-13 ) * Added an auto updater that updates the client if a * more recent version was found automatically (Windows, Mac OS X) * Added a button to the account dialog that gives information * about the encryption layer used for communication, plus a * certificate information widget * Preserve the permission settings of local files rather than * setting them to a default (Bug #820) * Handle windows lnk files correctly (Bug #1307) * Detect removes and renames in read only shares and * restore the gone away files. (Bug #1386) * Fixes sign in/sign out and password dialog. (Bug #1353) * Fixed error messages (Bug #1394) * Lots of fixes for building with Qt5 * Changes to network limits are now also applied during a * sync run * Fixed mem leak after via valgrind on Mac * Imported the ocsync library into miralls repository. * Adopted all build systems and packaging to that. * Introduce a new linux packaging scheme following the * debian upstream scheme * Use a refactored Linux file system watcher based on * inotify, incl. unit tests * Wizard: Gracefully fall back to HTTP if HTTPS connection * fails, issuing a warning * Fixed translation misses in the propagator * Fixes in proxy configuration * Fixes in sync journal handling * Fix the upload progress if the local source is still * changing when the upload begins. * Add proxy support to owncloud commandline client * NSIS fixes * A lot of other fixes and minor improvements * Improve Qt5 compatability version 1.5.0 (release 2013-12-12 ), csync 0.91.4 required * New owncloud propagator that skips the vio abstraction layer * Add owncloudcmd to replace the ocsync command line tool * Localize Windows installer * Allow to sign in and out * Ask for password if missing * Introduce activity view * Introduce black list for files which could not be synced * Enabling accessbility by shipping accessibility enables on OS X (#736) * Toggle Settings window when clicking on systray icon on Win and KDE (#896) * FolderWizard: Sanitize error detection (#1201) * Set proper enable state of blacklist button after the dialog was opened * Set proper tooltips in blacklist * Translatable error messages for file errors * Add man page for owncloudcmd (#1234) * Don't close setup wizard when the initial sync run is started * Close the sync journal if a folder gets removed (#1252) * Activity: Avoid horizontal scrollbar (#1213) * Fix crash (#1229) * Resize wizard appropriately (#1130) * Fix account identity test (#1231) * Maintain the file type correctly * Display rename-target in sync protocol action column * Let recursive removal also remove the top dir * If item is a directory, remove its contents from the database as well (#1257) * Install headers for owncloudsync library * Fix opening the explorer with a selected file in Windows (#1249) * Add build number into versioning scheme * Windows: Fix rename of temporary files * Windows: Fix move file operation 1.4 Series ChangeLog ==================== version 1.4.2 (release 2013-10-18 ), csync 0.90.4 required * Do not show the warning icon in the tray (#944) * Fix manual proxy support when switching (#1016) * Add folder column to detailed sync protocol (#1037) * Fix possible endless loop in inotify (#1041) * Do not elide the progress text (#1049) * Fix high CPU load (#1073) * Reconnect if network is unavailable after startup (#1080) * Ensure paused folder stays paused when syncing with more than one folder (#1083) * Don't show desktop notification when the user doesn't want to (#1093) * System tray: Avoid quick flickering up of the ok-icon for the sync prepare state * Progress: Do not show progress if nothing is transmitted * Progress: Show number of deletes. version 1.4.1 (release 2013-09-24 ), csync 0.90.1 required * Translation and documentation fixes. * Fixed error display in settings/status dialog, displays multi * line error messages now correctly. * Wait up to 30 secs before complaining about missing systray * Fixes bug #949 * Fixed utf8 issues with basic auth authentication, fixes bug #941 * Fixed remote folder selector, avoid recursive syncing, fixes bug #962 * Handle and display network problems at startup correctly. * Enable and disable the folder watcher during syncs correctly. * Fix setting of thread priority. * Fixed file size display. * Fixed various folder wizard issues, bug #992 * Made "Sync started" message optional, fixes bug #934 * Fixed shutdown, avoid crashed config on win32, fixes bug #945 * Pop up config wizard if no server url is configured, fixes bug #1018 * Settings: calculate sidebar width dynamically, fixes bug #1020 * Fixed a crash if sync folders were removed, fixes bug #713 * Do proper resync after network disconnect, fixes bug #1007 * Various minor code fixes version 1.4.0 (release 2013-09-04 ), csync 0.90.0 required * New Scheduler: Only sync when there are actual changes in the server * Add a Settings Dialog, move Proxy Settings there * Transform folder Status Dialog into Account Settings, provide feedback via context menu * Add Bandwidth Control * Add a visual storage/quota indicator (context menu and account settings) * Add progress indication (context menu and account settings) * Introduce a sync history, persisting results across syncs * Move ability to switch to mono icons from a switch to a Settings option * Add "Launch on System Startup" GUI option * Add "Show Desktop Nofications"GUI option (enabled by default) * top optionally disable sync notifications * Add Help item, pointing to online reference * Implement graphical selection of remote folders in FolderWizard * Allow custom ignore patterns * Add an editor for ingore patterns * ALlow to flag certain ignore patterns as discardable * Ensure to ship with all valid translations * Progress Dialog now preserves the last syncned items across sync runs * Split Setup Wizard into multiple pages again * Implement "--logfile -" to log to stdout * Add preliminary support for Shibboleth authentication * Linux: Provide more icon sizes * Linux: Do not trigger notifier on ignored files * Windows: Reduce priority of CSync thread * Documentation: Prem. updates to reflect UI changes * Significant code refactorings * Require Qt 4.7 * Known issue: Under certain conditions, a file will only get uploaded after up to five minutes 1.3 Series ChangeLog ==================== version 1.3.0 (release 2013-06-25 ), csync 0.80.0 required * Default proxy port to 8080 * Don't lose proxy settings when changing passwords * Support SOCKS5 proxy (useful in combination with ssh* *D) * Propagate proxy changes to csync at runtime * Improve proxy wizard * Display proxy errors * Solved problems with lock files * Warn if for some reason all files are scheduled for removal on either side * Avoid infinite loop if authentication fails in certain cases * Fix reading the password from the config in certain cases * Do not crash when configured sync target disappears * Make --help work on windows * Make sync feedback less ambiguous. * Fix icon tray tooltip sometimes showing repeated content * More use of native directory separators on Windows * Remove journal when reusing a directory that used to have a journal before * Visual clean up of status dialog items * Wizard: When changing the URL or user name, allow the user to push his data * to the new location or wipe the folder and start from scratch * Wizard: Make setting a custom folder as a sync target work again * Fix application icon * User-Agent now contains "Mozilla/5.0" and the Platform name (for firewall/proxy compat) * Server side directory moves will be detected * New setup wizard, defaulting to root syncing (only for new setups) * Improved thread stop/termination 1.2 Series ChangeLog ==================== version 1.2.5 (release 2013-04-23 ), csync 0.70.7 required * [Fixes] NSIS installer fixes * [Fixes] Fix crash race by making certificateChain() thread safe * [Fixes] Build with older CMake versions (CentOS/RHEL 6) * [Fixes] Wording in GUI * [Fixes] Silently ignore "installed = true" status.php * Set log verbosity before calling csync_init. * GUI feedback for the statistics copy action * Safer approach for detecting duplicate sync runs version 1.2.4 (release 2013-04-11 ), csync 0.70.6 required * [Fixes] Clarify string in folder wizard * [Fixes] Fixed some valgrind warnings * [Fixes] Ensure that only one sync thread can ever run * [Fixes] Fix default config storage path * [Fixes] Skip folders with no absolute path * [Fixes] Allow setting the configuration directory on command line version 1.2.3 (release 2013-04-02 ), csync 0.70.5 required * [Fixes] Unbreak self-signed certificate handling version 1.2.2 (release 2013-04-02 ), csync 0.70.5 required * [Fixes] Do not crash when local file tree contains symlinks * [Fixes] Correctly handle locked files on Windows * [Fixes] Display errors in all members of the SSL chain * [Fixes] Enable Accessibility features on Windows * [Fixes] Make setupFavLink work properly on Mac OS * [Fixes] Ignore temporary files created by MS Office * [Gui] Support Nautilus in setupFavLink version 1.2.1 (release 2013-02-26 ), csync 0.70.4 required * [Fixes] Leave configured folders on configuration changes. * [Fixes] Do not allow to finish the setup dialog if connection can't be established. * [Fixes] Better handling of credentials in setup dialog. * [Fixes] Do not leak fd's to /dev/null when using gnutls * [Fixes] Stop sync scheduling when configuration wizard starts. * [Fixes] Clear pending network requests when stepping back in config wizard. * [Fixes] User password dialog asynchronous issues. * [Fixes] Make folderman starting and stoping the scheduling. * [Fixes] Various minor fixes and cleanups. * [Fixes] Crash on pausing sync * [Fixes] Stale lock file after pausing sync * [App] Load translations from app dir or bundle as well. * [Platform] Build fixes and simplifications, ie. build only one lib. * [Platform] Added some getter/setters for configuration values. * [Platform] Added man pages. * [Platform] Simplified/fixed credential store usage and custom configs. * [Platform] Added soname version to libowncloudsync. * [Platform] Pull in Qt translations * [Gui] Make sync result popups less annoyingq * [Gui] Fix for result popup version 1.2.0 (release 2013-01-24 ), csync 0.70.2 required * [GUI] New status dialog to show a detailed list of synced files. * [GUI] New tray notifications about synced files. * [GUI] New platform specific icon set. * [App] Using cross platform QtKeychain library to store credentials crypted. * [App] Use cross platform notification for changes in the local file system rather than regular poll. * [Fixes] Improved SSL Certificate handling and SSL fixes troughout syncing. * [Fixes] Fixed proxy authentication. * [Fixes] Allow brackets in folder name alias. * [Fixes] Lots of other minor fixes. * [Platform] cmake fixes. * [Platform] Improved, more detailed error reporting. 1.1 Series ChangeLog ==================== version 1.1.4 (release 2012-12-19 ), csync 0.60.4 required * No changes to mirall, only csync fixes. version 1.1.3 (release 2012-11-30 ), csync 0.60.3 required * No changes to mirall, only csync fixes. version 1.1.2 (release 2012-11-26 ), csync 0.60.2 required * [Fixes] Allow to properly cancel the password dialog. * [Fixes] Share folder name correctly percent encoded with old Qt * * * * 4.6 builds ie. Debian. * [Fixes] If local sync dir is not existing, create it. * [Fixes] lots of other minor fixes. * [GUI] Display error messages in status dialog. * [GUI] GUI fixes for the connection wizard. * [GUI] Show username for connection in statusdialog. * [GUI] Show intro wizard on new connection setup. * [APP] Use CredentialStore to better support various credential * * * backends. * [APP] Handle missing local folder more robust: Create it if * * * missing instead of ignoring. * [APP] Simplify treewalk code. * [Platform] Fix Mac building version 1.1.1 (release 2012-10-18), csync 0.60.1 required * [GUI]* Allow changing folder name in single folder mode * [GUI]* Windows: Add license to installer * [GUI]* owncloud --logwindow will bring up the log window * * * * in an already running instance * [Fixes] Make sure SSL errors are always handled * [Fixes] Allow special characters in folder alias * [Fixes] Proper workaround for Menu bug in Ubuntu * [Fixes] csync: Fix improper memory cleanup which could * * * * cause memory leaks and crashes * [Fixes] csync: Fix memory leak * [Fixes] csync: Allow single quote (') in file names * [Fixes] csync: Remove stray temporary files * [GUI]* Reworked tray context menu. * [GUI]* Users can now sync the server root folder. * [Fixes] Proxy support: now supports Proxy Auto-Configuration (PAC) * * * * on Windows, reliability fixes across all OSes. * [Fixes] Url entry field in setup assistant handles http/https correctly. * [Fixes] Button enable state in status dialog. * [Fixes] Crash fixed on ending the client, tray icon related. * [Fixes] Crash through wrong delete operator. * [MacOS] behave correctly on retina displays. * [MacOS] fix focus policy. * [MacOS] Packaging improvements. * [MacOS] Packaging improvements. * [Platform] Windows: Setup closes client prior to uninstall. * [Platform] Windows: ownCloud gets added to autorun by default. * [Platform] insert correct version info from cmake. * [Platform] csync conf file and database were moved to the users app data * * * * * directory, away from the .csync dir. ** * * Renamed exclude.lst to sync-exclude.lst and moved it to * * * * /etc/appName()/ for more clean packaging. From the user path, * * * * still exclude.lst is read if sync-exclude.lst is not existing. ** * * Placed custom.ini with customization options to /etc/appName() 1.0 Series ChangeLog ==================== version 1.0.5 (release 2012-08-14), csync 0.50.8 required * [Fixes] Fixed setup dialog: Really use https if checkbox is activated. version 1.0.4 (release 2012-08-10), csync 0.50.8 required * [APP] ownCloud is now a single instance app, can not start twice any more. * [APP] Proxy support * [APP] Handle HTTP redirection correctly, note new url. * [APP] More relaxed handling of read only directories in the sync paths. * [APP] Started to split off a library with sync functionality, eg for KDE * [APP] Make ownCloud Info class a singleton, more robust. * [GUI] New, simplified connection wizard. * [GUI] Added ability for customized theming. * [GUI] Improved icon size handling. * [GUI] Removed Log Window Button, log available through command line. * [GUI] Proxy configuration dialog added. * [GUI] Added Translations to languages Slovenian, Polish, Catalan, * * * Portuguese (Brazil), German, Greek, Spanish, Czech, Italian, Slovak, * * * French, Russian, Japanese, Swedish, Portuguese (Portugal) * * * all with translation rate >90%. * [Fixes] Loading of self signed certs into Networkmanager (#oc-843) * [Fixes] Win32: Handle SSL dll loading correctly. * [Fixes] Many other small fixes and improvements. version 1.0.3 (release 2012-06-19), csync 0.50.7 required * [GUI] Added a log window which catches the logging if required and * * * allows to save for information. * [CMI] Added options --help, --logfile and --logflush * [APP] Allow to specify sync frequency in the config file. * [Fixes] Do not use csync database files from a sync before. * [Fixes] In Connection wizard, write the final config onyl if * * * * the user really accepted. Also remove the former database. * [Fixes] More user expected behaviour deletion of sync folder local * * * * and remote. * [Fixes] Allow special characters in the sync directory names * [Fixes] Win32: Fixed directory removal with special character dirs. * [Fixes] MacOS: Do not flood the system log any more * [Fixes] MacOS: Put app translations to correct places * [Fixes] Win32: Fix loading of csync state db. * [Fixes] Improved some english grammar. * [Platform] Added krazy2 static code checks. version 1.0.2 (release 2012-05-18), csync 0.50.6 required * [GUI] New icon set for ownCloud client * [GUI] No splashscreen any more (oC Bug #498) * [GUI] Russian translation added * [GUI] Added 'open ownCloud' to traymenu * [GUI] "Pause" and "Resume" instead of Enable/Disable * [Fixes] Long running syncs can be interrupted now. * [Fixes] Dialogs comes to front on click * [Fixes] Open local sync folder from tray and status for win32 * [Fixes] Load exclude.lst correctly on MacOSX * + csync fixes. version 1.0.1 (release 2012-04-18), csync 0.50.5 required * [Security] Support SSL Connections * [Security] SSL Warning dialog * [Security] Do not store password in clear text anymore * [Security] Restrict credentials to the configured host * [Security] Added ability to forbid local password storage. * [Fixes] Various fixes of the startup behaviour. * [Fixes] Various fixes in sync status display * [GUI] Various error messages for user display improved. * [GUI] fixed terms and Translations * [GUI] fixed translation loading * [Intern] Migrate old credentials to new format * [Intern] Some code refactorings, got rid of rotten QWebDav lib * [Intern] lots of cmake cleanups * [Intern] Backport to Qt Version 4.6 for compat. with older distros. * [Platform] MacOSX porting efforts * [Platform] MacOSX Bundle creation added * [Platform] Enabled ranslations on Windows. desktop-2.6.2/NEXTCLOUD.cmake000066400000000000000000000033021360037132600155400ustar00rootroot00000000000000set( APPLICATION_NAME "Nextcloud" ) set( APPLICATION_SHORTNAME "Nextcloud" ) set( APPLICATION_EXECUTABLE "nextcloud" ) set( APPLICATION_DOMAIN "nextcloud.com" ) set( APPLICATION_VENDOR "Nextcloud GmbH" ) set( APPLICATION_UPDATE_URL "https://updates.nextcloud.org/client/" CACHE STRING "URL for updater" ) set( APPLICATION_HELP_URL "" CACHE STRING "URL for the help menu" ) set( APPLICATION_ICON_NAME "Nextcloud" ) set( APPLICATION_SERVER_URL "" CACHE STRING "URL for the server to use. If entered the server can only connect to this instance" ) set( LINUX_PACKAGE_SHORTNAME "nextcloud" ) set( THEME_CLASS "NextcloudTheme" ) set( APPLICATION_REV_DOMAIN "com.nextcloud.desktopclient" ) set( WIN_SETUP_BITMAP_PATH "${CMAKE_SOURCE_DIR}/admin/win/nsi" ) set( MAC_INSTALLER_BACKGROUND_FILE "${CMAKE_SOURCE_DIR}/admin/osx/installer-background.png" CACHE STRING "The MacOSX installer background image") # set( THEME_INCLUDE "${OEM_THEME_DIR}/mytheme.h" ) # set( APPLICATION_LICENSE "${OEM_THEME_DIR}/license.txt ) option( WITH_CRASHREPORTER "Build crashreporter" OFF ) #set( CRASHREPORTER_SUBMIT_URL "https://crash-reports.owncloud.com/submit" CACHE STRING "URL for crash reporter" ) #set( CRASHREPORTER_ICON ":/owncloud-icon.png" ) option( WITH_PROVIDERS "Build with providers list" ON ) ## Theming options set( APPLICATION_WIZARD_HEADER_BACKGROUND_COLOR "#0082c9" CACHE STRING "Hex color of the wizard header background") set( APPLICATION_WIZARD_HEADER_TITLE_COLOR "#ffffff" CACHE STRING "Hex color of the text in the wizard header") option( APPLICATION_WIZARD_USE_CUSTOM_LOGO "Use the logo from ':/client/theme/colored/wizard_logo.png' else the default application icon is used" ON ) desktop-2.6.2/NextcloudCPack.cmake000066400000000000000000000074501360037132600170520ustar00rootroot00000000000000include( InstallRequiredSystemLibraries ) set( CPACK_PACKAGE_CONTACT "Dominik Schmidt " ) if ( DEFINED OEM_THEME_DIR AND EXISTS ${OEM_THEME_DIR}/OEM.cmake ) include ( "${OEM_THEME_DIR}/OEM.cmake" ) else () include ( "${CMAKE_SOURCE_DIR}/NEXTCLOUD.cmake" ) endif() include( VERSION.cmake ) set( CPACK_PACKAGE_VERSION_MAJOR ${MIRALL_VERSION_MAJOR} ) set( CPACK_PACKAGE_VERSION_MINOR ${MIRALL_VERSION_MINOR} ) set( CPACK_PACKAGE_VERSION_PATCH ${MIRALL_VERSION_PATCH} ) set( CPACK_PACKAGE_VERSION_BUILD ${MIRALL_VERSION_BUILD} ) set( CPACK_PACKAGE_VERSION ${MIRALL_VERSION_FULL}${MIRALL_VERSION_SUFFIX} ) if(APPLE) set( CPACK_GENERATOR "DragNDrop" ) set( CPACK_SOURCE_GENERATOR "") set( CPACK_PACKAGE_FILE_NAME ${APPLICATION_SHORTNAME}-${CPACK_PACKAGE_VERSION} ) set( CPACK_PACKAGE_ICON ${CMAKE_BINARY_DIR}/src/gui/${APPLICATION_ICON_NAME}.icns) set( CPACK_DMG_DS_STORE "${CMAKE_SOURCE_DIR}/admin/osx/DS_Store.in") # set( CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_SOURCE_DIR}/admin/osx/DMGBackground.png" ) set( CPACK_DMG_FORMAT "UDBZ" ) set( CPACK_DMG_VOLUME_NAME "${APPLICATION_SHORTNAME}") # did not work with cmake 2.8.7, so we override MacOSXBundleInfo.plist.in #set( CPACK_BUNDLE_PLIST ${CMAKE_SOURCE_DIR}/admin/osx/Info.plist ) # do we need these? #set( CPACK_SYSTEM_NAME "OSX" ) #set( CPACK_PACKAGE_NAME "FOO" ) #set( CPACK_BUNDLE_NAME "BAR" ) endif() if(WIN32) set( CPACK_PACKAGE_FILE_NAME ${APPLICATION_SHORTNAME}-${CPACK_PACKAGE_VERSION}-setup ) # Package file name without extension. Also a directory of installer cmake-2.5.0-Linux-i686 # CPACK_GENERATOR CPack generator to be used STGZ;TGZ;TZ # CPACK_INCLUDE_TOPLEVEL_DIRECTORY Controls whether CPack adds a top-level directory, usually of the form ProjectName-Version-OS, to the top of package tree. 0 to disable, 1 to enable # CPACK_INSTALL_CMAKE_PROJECTS List of four values: Build directory, Project Name, Project Component, Directory in the package /home/andy/vtk/CMake-bin;CMake;ALL;/ set( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md" ) # File used as a description of a project /path/to/project/ReadMe.txt set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "${APPLICATION_NAME} Syncing Client" ) # Description summary of a project # CPACK_PACKAGE_EXECUTABLES List of pairs of executables and labels. Used by the NSIS generator to create Start Menu shortcuts. ccmake;CMake set( CPACK_PACKAGE_INSTALL_DIRECTORY ${APPLICATION_SHORTNAME} ) # Installation directory on the target system -> C:\Program Files\${APPLICATION_SHORTNAME} set( CPACK_PACKAGE_INSTALL_REGISTRY_KEY ${APPLICATION_SHORTNAME} ) # Registry key used when installing this project CMake 2.5.0 set( CPACK_PACKAGE_NAME ${APPLICATION_NAME} ) # Package name, defaults to the project name set( CPACK_PACKAGE_VENDOR "http://${APPLICATION_DOMAIN}" ) # Package vendor name endif() # set( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt" ) # License file for the project, used by the STGZ, NSIS, and PackageMaker generators. /home/andy/vtk/CMake/Copyright.txt set( CPACK_TOPLEVEL_TAG "unused" ) # Directory for the installed files. - needed to provide anything to avoid an error# CPACK_INSTALL_COMMANDS Extra commands to install components. # Set the options file that needs to be included inside CMakeCPackOptions.cmake configure_file("${CMAKE_SOURCE_DIR}/CPackOptions.cmake.in" "${CMAKE_BINARY_DIR}/CPackOptions.cmake" @ONLY) set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/CPackOptions.cmake") # File included at cpack time, once per generator after setting CPACK_GENERATOR to the actual generator being used; allows per-generator setting of CPACK_* variables at cpack time. ${PROJECT_BINARY_DIR}/CPackOptions.cmake include(CPack) desktop-2.6.2/README.md000066400000000000000000000110001360037132600144420ustar00rootroot00000000000000# Nextcloud Desktop Client The :computer: Nextcloud Desktop Client is a tool to synchronize files from Nextcloud Server with your computer.

Desktop Client on Mac OS]

## :blue_heart: :tada: Contributing ### :hammer_and_wrench: How to compile the desktop client :building_construction: [System requirements](https://github.com/nextcloud/desktop/wiki/System-requirements-for-compiling-the-desktop-client) includes OpenSSL 1.1.x, QtKeychain, Qt 5.x.x and zlib. #### :memo: Step by step instructions ##### Clone the repo and create build directory ``` $ git clone https://github.com/nextcloud/desktop.git $ cd desktop $ mkdir build $ cd build ``` ##### Compile and install :warning: For development reasons it is better to **install the client on user space** instead on the global system. Mixing up libs/dll's of different version can lead to undefined behavior and crashes: * You could use the **cmake flag** ```CMAKE_INSTALL_PREFIX``` as ```~/.local/``` in a **Linux** system. If you want to install system wide you could use ```/usr/local``` or ```/opt/nextcloud/```. * On **Windows 10** [```$USERPROFILE```](https://docs.microsoft.com/en-us/windows/deployment/usmt/usmt-recognized-environment-variables#a-href-idbkmk-2avariables-that-are-recognized-only-in-the-user-context) refers to ```C:\Users\```. ##### Linux & Mac OS ``` $ cmake .. -DCMAKE_INSTALL_PREFIX=~/nextcloud-desktop-client -DCMAKE_BUILD_TYPE=Debug -DNO_SHIBBOLETH=1 $ make install ``` ##### Windows ``` $ cmake -G "Visual Studio 15 2017 Win64" .. -DCMAKE_INSTALL_PREFIX=$USERPROFILE\nextcloud-desktop-client -DCMAKE_BUILD_TYPE=Debug -DNO_SHIBBOLETH=1 $ cmake --build . --config Debug --target install ``` :information_source: More detailed instructions can be found at the [Desktop Client Wiki](https://github.com/nextcloud/desktop/wiki). ### :inbox_tray: Where to find binaries to download #### :high_brightness: Daily builds - Daily builds based on the latest master are available for Linux :penguin:, Mac, and Windows [in the desktop/daily folder of our download server](https://download.nextcloud.com/desktop/daily). For more info: [Wiki/Daily Builds](https://github.com/nextcloud/desktop/wiki/Daily-Builds). #### :rocket: Releases - Refer to the [download page https://nextcloud.com/install/#install-clients](https://nextcloud.com/install/#install-clients) ### :bomb: Reporting issues - If you find any bugs or have any suggestion for improvement, please file an issue at https://github.com/nextcloud/client/issues. Do not contact the authors directly by mail, as this increases the chance of your report being lost. :boom: ### :smiley: :trophy: Pull requests - If you created a patch :heart_eyes:, please submit a [Pull Request](https://github.com/nextcloud/client/pulls). - How to create a pull request? This guide will help you get started: [Opening a pull request](https://opensource.guide/how-to-contribute/#opening-a-pull-request) :heart: ## :satellite: Contact us If you want to contact us, e.g. before starting a more complex feature, for questions :question: you can join us at [#nextcloud-client](https://webchat.freenode.net/?channels=nextcloud-client). ## :v: Code of conduct The Nextcloud community has core values that are shared between all members during conferences, hackweeks and on all interactions in online platforms including [Github](https://github.com/nextcloud) and [Forums](https://help.nextcloud.com). If you contribute, participate or interact with this community, please respect [our shared values](https://nextcloud.com/code-of-conduct/). :relieved: ## :memo: Source code The Nextcloud Desktop Client is developed in Git. Since Git makes it easy to fork and improve the source code and to adapt it to your need, many copies can be found on the Internet, in particular on GitHub. However, the authoritative repository maintained by the developers is located at https://github.com/nextcloud/desktop. ## :scroll: License This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. 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. desktop-2.6.2/VERSION.cmake000066400000000000000000000020361360037132600153230ustar00rootroot00000000000000set( MIRALL_VERSION_MAJOR 2 ) set( MIRALL_VERSION_MINOR 6 ) set( MIRALL_VERSION_PATCH 2 ) set( MIRALL_VERSION_YEAR 2019 ) set( MIRALL_SOVERSION 0 ) if ( NOT DEFINED MIRALL_VERSION_SUFFIX ) set( MIRALL_VERSION_SUFFIX "git") #e.g. beta1, beta2, rc1 endif( NOT DEFINED MIRALL_VERSION_SUFFIX ) if( NOT DEFINED MIRALL_VERSION_BUILD ) set( MIRALL_VERSION_BUILD "0" ) # Integer ID. Generated by the build system endif( NOT DEFINED MIRALL_VERSION_BUILD ) # Composite defines # Used e.g. for libraries Keep at x.y.z. set( MIRALL_VERSION "${MIRALL_VERSION_MAJOR}.${MIRALL_VERSION_MINOR}.${MIRALL_VERSION_PATCH}" ) # Version with Build ID. Used in the installer set( MIRALL_VERSION_FULL ${MIRALL_VERSION} ) set( MIRALL_VERSION_STRING ${MIRALL_VERSION} ) set( MIRALL_VERSION_FULL "${MIRALL_VERSION_FULL}.${MIRALL_VERSION_BUILD}" ) set( MIRALL_VERSION_STRING "${MIRALL_VERSION}${MIRALL_VERSION_SUFFIX}" ) if( MIRALL_VERSION_BUILD ) set( MIRALL_VERSION_STRING "${MIRALL_VERSION_STRING} (build ${MIRALL_VERSION_BUILD})" ) endif( MIRALL_VERSION_BUILD ) desktop-2.6.2/admin/000077500000000000000000000000001360037132600142635ustar00rootroot00000000000000desktop-2.6.2/admin/CMakeLists.txt000066400000000000000000000001431360037132600170210ustar00rootroot00000000000000# traverse into osx subdirectory to install and patch the create-pack script add_subdirectory(osx) desktop-2.6.2/admin/linux/000077500000000000000000000000001360037132600154225ustar00rootroot00000000000000desktop-2.6.2/admin/linux/Dockerfile000066400000000000000000000012511360037132600174130ustar00rootroot00000000000000# This DockerFile is used to create the image used for Jenkins, the CI system (see Jenkinsfile) # It is not meant to be used to create the production packages. # Distro with Qt 5.6 FROM ubuntu:yakkety RUN apt-get update -q && DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends \ locales \ build-essential \ clang \ ninja-build \ cmake \ extra-cmake-modules \ libsqlite3-dev \ libssl-dev \ libcmocka-dev \ libcloudproviders-dev \ qt5-default \ qttools5-dev-tools \ libqt5webkit5-dev \ qt5keychain-dev \ kio-dev \ && apt-get clean desktop-2.6.2/admin/linux/build-appimage.sh000077500000000000000000000056471360037132600206550ustar00rootroot00000000000000#! /bin/bash set -xe mkdir /app mkdir /build #Set Qt-5.12 export QT_BASE_DIR=/opt/qt5.12.5 export QTDIR=$QT_BASE_DIR export PATH=$QT_BASE_DIR/bin:$PATH export LD_LIBRARY_PATH=$QT_BASE_DIR/lib/x86_64-linux-gnu:$QT_BASE_DIR/lib:$LD_LIBRARY_PATH export PKG_CONFIG_PATH=$QT_BASE_DIR/lib/pkgconfig:$PKG_CONFIG_PATH #set defaults export SUFFIX=${DRONE_PULL_REQUEST:=master} if [ $SUFFIX != "master" ]; then SUFFIX="PR-$SUFFIX" fi #QtKeyChain 0.9.1 cd /build git clone https://github.com/frankosterfeld/qtkeychain.git cd qtkeychain git checkout v0.9.1 mkdir build cd build cmake -D CMAKE_INSTALL_PREFIX=/usr ../ make -j4 make DESTDIR=/app install #Build client cd /build mkdir build-client cd build-client cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D NO_SHIBBOLETH=1 \ -D QTKEYCHAIN_LIBRARY=/app/usr/lib/x86_64-linux-gnu/libqt5keychain.so \ -D QTKEYCHAIN_INCLUDE_DIR=/app/usr/include/qt5keychain/ \ -DMIRALL_VERSION_SUFFIX=PR-$DRONE_PULL_REQUEST \ -DMIRALL_VERSION_BUILD=$DRONE_BUILD_NUMBER \ $DRONE_WORKSPACE make -j4 make DESTDIR=/app install # Move stuff around cd /app mv ./usr/lib/x86_64-linux-gnu/nextcloud/* ./usr/lib/x86_64-linux-gnu/ mv ./usr/lib/x86_64-linux-gnu/* ./usr/lib/ rm -rf ./usr/lib/nextcloud rm -rf ./usr/lib/cmake rm -rf ./usr/include rm -rf ./usr/mkspecs rm -rf ./usr/lib/x86_64-linux-gnu/ # Don't bundle nextcloudcmd as we don't run it anyway rm -rf ./usr/bin/nextcloudcmd # Don't bundle the explorer extentions as we can't do anything with them in the AppImage rm -rf ./usr/share/caja-python/ rm -rf ./usr/share/nautilus-python/ rm -rf ./usr/share/nemo-python/ # Move sync exlucde to right location mv ./etc/Nextcloud/sync-exclude.lst ./usr/bin/ rm -rf ./etc DESKTOP_FILE=/app/usr/share/applications/${LINUX_APPLICATION_ID}.desktop sed -i -e 's|Icon=nextcloud|Icon=Nextcloud|g' ${DESKTOP_FILE} # Bug in desktop file? cp ./usr/share/icons/hicolor/512x512/apps/Nextcloud.png . # Workaround for linuxeployqt bug, FIXME # Because distros need to get their shit together cp -R /lib/x86_64-linux-gnu/libssl.so* ./usr/lib/ cp -R /lib/x86_64-linux-gnu/libcrypto.so* ./usr/lib/ cp -P /usr/local/lib/libssl.so* ./usr/lib/ cp -P /usr/local/lib/libcrypto.so* ./usr/lib/ # NSS fun cp -P -r /usr/lib/x86_64-linux-gnu/nss ./usr/lib/ # Use linuxdeployqt to deploy cd /build wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" chmod a+x linuxdeployqt*.AppImage ./linuxdeployqt-continuous-x86_64.AppImage --appimage-extract rm ./linuxdeployqt-continuous-x86_64.AppImage unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH export LD_LIBRARY_PATH=/app/usr/lib/ ./squashfs-root/AppRun ${DESKTOP_FILE} -bundle-non-qt-libs # Set origin ./squashfs-root/usr/bin/patchelf --set-rpath '$ORIGIN/' /app/usr/lib/libnextcloudsync.so.0 # Build AppImage ./squashfs-root/AppRun ${DESKTOP_FILE} -appimage mv Nextcloud*.AppImage Nextcloud-${SUFFIX}-${DRONE_COMMIT}-x86_64.AppImage desktop-2.6.2/admin/linux/clean_tarball.sh000077500000000000000000000003541360037132600205460ustar00rootroot00000000000000#!/bin/sh rm -vrf admin/ rm -vrf src/3rdparty/sqlite3 # FIXME: For CentOS6 we have to use our bundled sqlite rm -vrf binary/ rm -vrf src/3rdparty/libcrashreporter-qt rm -vrf shell_integration/windows rm -vrf shell_integration/MacOSX desktop-2.6.2/admin/linux/debian/000077500000000000000000000000001360037132600166445ustar00rootroot00000000000000desktop-2.6.2/admin/linux/debian/README000066400000000000000000000020041360037132600175200ustar00rootroot00000000000000- .pbuilderrc: COMPONENTS="main restricted universe multiverse" OTHERMIRROR="deb [trusted=yes] file:///${HOME}/pbuilder/deps ./" HOOKDIR="${HOME}/pbuilder/hook.d" BINDMOUNTS="${HOME}/pbuilder/deps" EXTRAPACKAGES="apt-utils" - pbuilder/hook.d/D70setupdeps: hook to create a Packages file for the packages in pbuilder/deps - pbuilder-dist trusty create --override-config --othermirror "deb [trusted=yes] file:///${HOME}/pbuilder/deps ./" The OTHERMIRROR setting in .pbuilderrc is overridden by pbuilder-dist! - scripts: config.sh: basic configuration variables create_debdir.sh : create the Debian-conformant source directory and .orig.tar.bz2 in the build area build.sh : call create_debdir.sh and then debuild pbuilder.sh : build the existing source package with pbuilder-dist. pbuild.sh : build the source packages with build.sh and then call pbuilder.sh desktop-2.6.2/admin/linux/debian/debian.bionic/000077500000000000000000000000001360037132600213305ustar00rootroot00000000000000desktop-2.6.2/admin/linux/debian/debian.bionic/changelog000066400000000000000000000013121360037132600231770ustar00rootroot00000000000000nextcloud-client (2.3.3-1.0~bionic1) bionic; urgency=medium * Debian build support for the forked client. -- István Váradi Mon, 6 Nov 2017 20:20:04 +0100 nextcloud-client (2.3.1-1.0~bionic1) bionic; urgency=medium * New upstream version -- István Váradi Thu, 23 Mar 2017 19:07:36 +0100 nextcloud-client (2.3.0-1.0~bionic1) bionic; urgency=medium * New upstream version -- István Váradi Tue, 21 Mar 2017 19:34:13 +0100 nextcloud-client (2.2.4-1.4~bionic1) bionic; urgency=medium * The locale-specific icon names are correct too -- István Váradi Tue, 7 Feb 2017 19:55:40 +0100 desktop-2.6.2/admin/linux/debian/debian.disco/000077500000000000000000000000001360037132600211665ustar00rootroot00000000000000desktop-2.6.2/admin/linux/debian/debian.disco/changelog000066400000000000000000000013021360037132600230340ustar00rootroot00000000000000nextcloud-client (2.3.3-1.0~disco1) disco; urgency=medium * Debian build support for the forked client. -- István Váradi Mon, 6 Nov 2017 20:20:04 +0100 nextcloud-client (2.3.1-1.0~disco1) disco; urgency=medium * New upstream version -- István Váradi Thu, 23 Mar 2017 19:07:36 +0100 nextcloud-client (2.3.0-1.0~disco1) disco; urgency=medium * New upstream version -- István Váradi Tue, 21 Mar 2017 19:34:13 +0100 nextcloud-client (2.2.4-1.4~disco1) disco; urgency=medium * The locale-specific icon names are correct too -- István Váradi Tue, 7 Feb 2017 19:55:40 +0100 desktop-2.6.2/admin/linux/debian/debian.eoan/000077500000000000000000000000001360037132600210075ustar00rootroot00000000000000desktop-2.6.2/admin/linux/debian/debian.eoan/changelog000066400000000000000000000012721360037132600226630ustar00rootroot00000000000000nextcloud-client (2.3.3-1.0~eoan1) eoan; urgency=medium * Debian build support for the forked client. -- István Váradi Mon, 6 Nov 2017 20:20:04 +0100 nextcloud-client (2.3.1-1.0~eoan1) eoan; urgency=medium * New upstream version -- István Váradi Thu, 23 Mar 2017 19:07:36 +0100 nextcloud-client (2.3.0-1.0~eoan1) eoan; urgency=medium * New upstream version -- István Váradi Tue, 21 Mar 2017 19:34:13 +0100 nextcloud-client (2.2.4-1.4~eoan1) eoan; urgency=medium * The locale-specific icon names are correct too -- István Váradi Tue, 7 Feb 2017 19:55:40 +0100 desktop-2.6.2/admin/linux/debian/debian.eoan/control000066400000000000000000000065471360037132600224260ustar00rootroot00000000000000Source: nextcloud-client Section: contrib/devel Priority: optional Maintainer: István Váradi Build-Depends: cmake, debhelper, cdbs, dh-python, extra-cmake-modules (>= 5.16), libkf5kio-dev, libcmocka-dev, libcloudproviders-dev, libdbus-1-dev, libhttp-dav-perl, libinotify-dev [kfreebsd-any], libqt5svg5-dev, libqt5webkit5-dev, libsqlite3-dev, libssl-dev (>= 1.1.0), zlib1g-dev, optipng, pkg-kde-tools, python-sphinx | python3-sphinx, python3-all, qt5keychain-dev, qtwebengine5-dev, qtdeclarative5-dev, qttools5-dev, qttools5-dev-tools, xvfb Standards-Version: 3.9.8 Homepage: https://github.com/nextcloud/client_theming #Vcs-Git: git://anonscm.debian.org/collab-maint/nextcloud-client.git #Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/nextcloud-client.git Package: nextcloud-client Architecture: any Depends: libnextcloudsync0 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, nextcloud-client-l10n Description: Nextcloud desktop sync client Use the desktop client to keep your files synchronized between your Nextcloud server and your desktop. Select one or more directories on your local machine and always have access to your latest files wherever you are. Package: libnextcloudsync0 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Nextcloud sync library Used by the Nextcloud desktop client as the synchronization engine. Package: libnextcloudsync-dev Architecture: any Section: contrib/libdevel Depends: libnextcloudsync0 (=${binary:Version}), ${misc:Depends} Description: Nextcloud sync library development files The headers and development library for the Nextcloud sync library. Package: nextcloud-client-l10n Architecture: all Depends: ${misc:Depends} Description: Nextcloud client internatialization files The translation files. Package: nextcloud-client-nautilus Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nautilus, nautilus, ${misc:Depends} Description: Nautilus plugin for Nextcloud This package contains a Nautilus plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-nemo Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nemo | nemo-python, nemo, ${misc:Depends} Description: Nemo plugin for Nextcloud This package contains a Nemo plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-caja Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-caja, caja, ${misc:Depends} Description: Caja plugin for Nextcloud This package contains a Caja plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-dolphin Architecture: any Depends: dolphin (>= 4:15.12.1), libnextcloudsync0 (= ${binary:Version}), nextcloud-client, ${misc:Depends}, ${shlibs:Depends} Description: Dolphin plugin for Nextcloud This package contains a Dolphin plugin to display synchronization status icons for Nextcloud files. desktop-2.6.2/admin/linux/debian/debian.oldstable/000077500000000000000000000000001360037132600220365ustar00rootroot00000000000000desktop-2.6.2/admin/linux/debian/debian.oldstable/changelog000066400000000000000000000026721360037132600237170ustar00rootroot00000000000000nextcloud-client (2.3.3-1.0~oldstable1) oldstable; urgency=medium * Debian build support for the forked client. -- István Váradi Mon, 6 Nov 2017 20:20:04 +0100 nextcloud-client (2.3.1-1.0) oldstable; urgency=medium * New upstream version -- István Váradi Thu, 23 Mar 2017 19:07:36 +0100 nextcloud-client (2.3.0-1.0) oldstable; urgency=medium * New upstream version -- István Váradi Tue, 21 Mar 2017 19:34:13 +0100 nextcloud-client (2.2.4-1.4) oldstable; urgency=medium * The locale-specific icon names are correct too -- István Váradi Tue, 7 Feb 2017 19:55:40 +0100 nextcloud-client (2.2.4-1.3) oldstable; urgency=medium * Caja syncstate plugin is built. * The syncstate plugin has application-specific name -- István Váradi Fri, 27 Jan 2017 19:34:18 +0100 nextcloud-client (2.2.4-1.2) oldstable; urgency=medium * Fixed appname in the Nemo syncstate extension. -- István Váradi Thu, 19 Jan 2017 16:46:50 +0100 nextcloud-client (2.2.4-1.1) oldstable; urgency=medium * Added Nautilus and Nemo syncstate extensions. -- István Váradi Tue, 17 Jan 2017 19:55:32 +0100 nextcloud-client (2.2.4-1.0) oldstable; urgency=medium * Initial release. -- István Váradi Wed, 14 Dec 2016 20:07:46 +0100 desktop-2.6.2/admin/linux/debian/debian.oldstable/control000066400000000000000000000060441360037132600234450ustar00rootroot00000000000000Source: nextcloud-client Section: contrib/devel Priority: optional Maintainer: István Váradi Build-Depends: cmake, debhelper, cdbs, dh-python, extra-cmake-modules (>= 5.16), kdelibs5-dev, kio-dev, libcmocka-dev, libdbus-1-dev, libhttp-dav-perl, libinotify-dev [kfreebsd-any], libqt5webkit5-dev, libqt5svg5-dev, libsqlite3-dev, libssl-dev (>= 1.1.0), zlib1g-dev, optipng, pkg-kde-tools, python-sphinx | python3-sphinx, python3-all, qt5keychain-dev, qtwebengine5-dev, qtdeclarative5-dev, qttools5-dev, qttools5-dev-tools, xvfb Standards-Version: 3.9.8 Homepage: https://github.com/nextcloud/client_theming #Vcs-Git: git://anonscm.debian.org/collab-maint/nextcloud-client.git #Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/nextcloud-client.git Package: nextcloud-client Architecture: any Depends: libnextcloudsync0 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, nextcloud-client-l10n Recommends: libgnome-keyring0 Description: Nextcloud desktop sync client Use the desktop client to keep your files synchronized between your Nextcloud server and your desktop. Select one or more directories on your local machine and always have access to your latest files wherever you are. Package: libnextcloudsync0 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Nextcloud sync library Used by the Nextcloud desktop client as the synchronization engine. Package: libnextcloudsync-dev Architecture: any Section: contrib/libdevel Depends: libnextcloudsync0 (=${binary:Version}), ${misc:Depends} Description: Nextcloud sync library development files The headers and development library for the Nextcloud sync library. Package: nextcloud-client-l10n Architecture: all Depends: ${misc:Depends} Description: Nextcloud client internatialization files The translation files. Package: nextcloud-client-nautilus Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nautilus, nautilus, ${misc:Depends} Description: Nautilus plugin for Nextcloud This package contains a Nautilus plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-nemo Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nemo, nemo, ${misc:Depends} Description: Nemo plugin for Nextcloud This package contains a Nemo plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-caja Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-caja, caja, ${misc:Depends} Description: Caja plugin for Nextcloud This package contains a Caja plugin to display synchronization status icons for Nextcloud files. desktop-2.6.2/admin/linux/debian/debian.stable/000077500000000000000000000000001360037132600213375ustar00rootroot00000000000000desktop-2.6.2/admin/linux/debian/debian.stable/changelog000066400000000000000000000026371360037132600232210ustar00rootroot00000000000000nextcloud-client (2.3.3-1.0~stable1) stable; urgency=medium * Debian build support for the forked client. -- István Váradi Mon, 6 Nov 2017 20:20:04 +0100 nextcloud-client (2.3.1-1.0) stable; urgency=medium * New upstream version -- István Váradi Thu, 23 Mar 2017 19:07:36 +0100 nextcloud-client (2.3.0-1.0) stable; urgency=medium * New upstream version -- István Váradi Tue, 21 Mar 2017 19:34:13 +0100 nextcloud-client (2.2.4-1.4) stable; urgency=medium * The locale-specific icon names are correct too -- István Váradi Tue, 7 Feb 2017 19:55:40 +0100 nextcloud-client (2.2.4-1.3) stable; urgency=medium * Caja syncstate plugin is built. * The syncstate plugin has application-specific name -- István Váradi Fri, 27 Jan 2017 19:34:18 +0100 nextcloud-client (2.2.4-1.2) stable; urgency=medium * Fixed appname in the Nemo syncstate extension. -- István Váradi Thu, 19 Jan 2017 16:46:50 +0100 nextcloud-client (2.2.4-1.1) stable; urgency=medium * Added Nautilus and Nemo syncstate extensions. -- István Váradi Tue, 17 Jan 2017 19:55:32 +0100 nextcloud-client (2.2.4-1.0) stable; urgency=medium * Initial release. -- István Váradi Wed, 14 Dec 2016 20:07:46 +0100 desktop-2.6.2/admin/linux/debian/debian.stable/control000066400000000000000000000061471360037132600227520ustar00rootroot00000000000000Source: nextcloud-client Section: contrib/devel Priority: optional Maintainer: István Váradi Build-Depends: cmake, debhelper, cdbs, dh-python, extra-cmake-modules (>= 5.16), kdelibs5-dev, kio-dev, libavcodec58, libcmocka-dev, libcloudproviders-dev, libdbus-1-dev, libhttp-dav-perl, libinotify-dev [kfreebsd-any], libqt5webkit5-dev, libqt5svg5-dev, libsqlite3-dev, libssl-dev (>= 1.1.0), zlib1g-dev, optipng, pkg-kde-tools, python-sphinx | python3-sphinx, python3-all, qt5keychain-dev, qtwebengine5-dev, qtdeclarative5-dev, qttools5-dev, qttools5-dev-tools, xvfb Standards-Version: 3.9.8 Homepage: https://github.com/nextcloud/client_theming #Vcs-Git: git://anonscm.debian.org/collab-maint/nextcloud-client.git #Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/nextcloud-client.git Package: nextcloud-client Architecture: any Depends: libnextcloudsync0 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, nextcloud-client-l10n Recommends: libgnome-keyring0 Description: Nextcloud desktop sync client Use the desktop client to keep your files synchronized between your Nextcloud server and your desktop. Select one or more directories on your local machine and always have access to your latest files wherever you are. Package: libnextcloudsync0 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Nextcloud sync library Used by the Nextcloud desktop client as the synchronization engine. Package: libnextcloudsync-dev Architecture: any Section: contrib/libdevel Depends: libnextcloudsync0 (=${binary:Version}), ${misc:Depends} Description: Nextcloud sync library development files The headers and development library for the Nextcloud sync library. Package: nextcloud-client-l10n Architecture: all Depends: ${misc:Depends} Description: Nextcloud client internatialization files The translation files. Package: nextcloud-client-nautilus Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nautilus, nautilus, ${misc:Depends} Description: Nautilus plugin for Nextcloud This package contains a Nautilus plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-nemo Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nemo, nemo, ${misc:Depends} Description: Nemo plugin for Nextcloud This package contains a Nemo plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-caja Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-caja, caja, ${misc:Depends} Description: Caja plugin for Nextcloud This package contains a Caja plugin to display synchronization status icons for Nextcloud files. desktop-2.6.2/admin/linux/debian/debian.xenial/000077500000000000000000000000001360037132600213455ustar00rootroot00000000000000desktop-2.6.2/admin/linux/debian/debian.xenial/control000066400000000000000000000065301360037132600227540ustar00rootroot00000000000000Source: nextcloud-client Section: contrib/devel Priority: optional Maintainer: István Váradi Build-Depends: cmake, debhelper, cdbs, dh-python, extra-cmake-modules (>= 5.16), kdelibs5-dev, kio-dev, libcmocka-dev, libhttp-dav-perl, libinotify-dev [kfreebsd-any], libqt5webkit5-dev, libqt5svg5-dev, libsqlite3-dev, libssl-dev (>> 1.0.0), zlib1g-dev, optipng, pkg-kde-tools, python-sphinx | python3-sphinx, python3-all, qt5keychain-dev, qtwebengine5-dev, qtdeclarative5-dev, qttools5-dev, qttools5-dev-tools, xvfb Standards-Version: 3.9.8 Homepage: https://github.com/nextcloud/client_theming #Vcs-Git: git://anonscm.debian.org/collab-maint/nextcloud-client.git #Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/nextcloud-client.git Package: nextcloud-client Architecture: any Depends: libnextcloudsync0 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, nextcloud-client-l10n Recommends: libgnome-keyring0 Description: Nextcloud desktop sync client Use the desktop client to keep your files synchronized between your Nextcloud server and your desktop. Select one or more directories on your local machine and always have access to your latest files wherever you are. Package: libnextcloudsync0 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Nextcloud sync library Used by the Nextcloud desktop client as the synchronization engine. Package: libnextcloudsync-dev Architecture: any Section: contrib/libdevel Depends: libnextcloudsync0 (=${binary:Version}), ${misc:Depends} Description: Nextcloud sync library development files The headers and development library for the Nextcloud sync library. Package: nextcloud-client-l10n Architecture: all Depends: ${misc:Depends} Description: Nextcloud client internatialization files The translation files. Package: nextcloud-client-nautilus Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nautilus, nautilus, ${misc:Depends} Description: Nautilus plugin for Nextcloud This package contains a Nautilus plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-nemo Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nemo | nemo-python, nemo, ${misc:Depends} Description: Nemo plugin for Nextcloud This package contains a Nemo plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-caja Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-caja, caja, ${misc:Depends} Description: Caja plugin for Nextcloud This package contains a Caja plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-dolphin Architecture: any Depends: dolphin (>= 4:15.12.1), libnextcloudsync0 (= ${binary:Version}), nextcloud-client, ${misc:Depends}, ${shlibs:Depends} Description: Dolphin plugin for Nextcloud This package contains a Dolphin plugin to display synchronization status icons for Nextcloud files. desktop-2.6.2/admin/linux/debian/debian.xenial/post-patches/000077500000000000000000000000001360037132600237575ustar00rootroot00000000000000desktop-2.6.2/admin/linux/debian/debian.xenial/post-patches/libssl.patch000066400000000000000000000006041360037132600262700ustar00rootroot00000000000000--- nextcloud-client-2.5.0.orig/CMakeLists.txt 2018-08-13 16:19:57.191634632 +0200 +++ nextcloud-client-2.5.0/CMakeLists.txt 2018-08-13 16:20:05.167612238 +0200 @@ -183,7 +183,7 @@ endif() find_package(Sphinx) find_package(PdfLatex) - find_package(OpenSSL 1.1 REQUIRED ) + find_package(OpenSSL 1.0 REQUIRED ) find_package(ZLIB REQUIRED) find_package(GLib2) desktop-2.6.2/admin/linux/debian/debian.xenial/post-patches/qt5.5-compat.patch000066400000000000000000000007511360037132600271400ustar00rootroot00000000000000--- nextcloud-client-2.5.3.orig/src/3rdparty/kmessagewidget/kmessagewidget.cpp 2019-07-26 18:40:34.949349387 +0000 +++ nextcloud-client-2.5.3/src/3rdparty/kmessagewidget/kmessagewidget.cpp 2019-07-26 18:41:39.866478051 +0000 @@ -105,6 +105,9 @@ q->setMessageType(KMessageWidget::Information); } +template +constexpr typename std::add_const::type &qAsConst(T &t) noexcept { return t; } + void KMessageWidgetPrivate::createLayout() { delete content->layout(); desktop-2.6.2/admin/linux/debian/debian.xenial/post-patches/qt5.5.patch000066400000000000000000000025001360037132600256510ustar00rootroot00000000000000Binary files nextcloud-client-2.4.0.orig/.git/index and nextcloud-client-2.4.0/.git/index differ diff -ruN nextcloud-client-2.4.0.orig/src/CMakeLists.txt nextcloud-client-2.4.0/src/CMakeLists.txt --- nextcloud-client-2.4.0.orig/src/CMakeLists.txt 2018-02-01 19:16:38.461162563 +0100 +++ nextcloud-client-2.4.0/src/CMakeLists.txt 2018-02-01 19:20:20.253824030 +0100 @@ -4,7 +4,7 @@ set(synclib_NAME ${APPLICATION_EXECUTABLE}sync) -find_package(Qt5 5.6 COMPONENTS Core Network Xml Concurrent WebEngineWidgets WebEngine REQUIRED) +find_package(Qt5 5.5 COMPONENTS Core Network Xml Concurrent WebEngineWidgets WebEngine REQUIRED) if (Qt5Core_VERSION VERSION_LESS 5.9.0) message(STATUS "For HTTP/2 support, compile with Qt 5.9 or higher.") endif() --- nextcloud-client-2.4.0.orig/admin/osx/CMakeLists.txt 2018-05-22 07:01:48.248646951 +0200 +++ nextcloud-client-2.4.0/admin/osx/CMakeLists.txt 2018-05-22 07:01:51.012689711 +0200 @@ -11,7 +11,7 @@ set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "0") endif() -find_package(Qt5 5.6 COMPONENTS Core REQUIRED) +find_package(Qt5 5.5 COMPONENTS Core REQUIRED) configure_file(create_mac.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/create_mac.sh) configure_file(macosx.pkgproj.cmake ${CMAKE_CURRENT_BINARY_DIR}/macosx.pkgproj) configure_file(pre_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/pre_install.sh) desktop-2.6.2/admin/linux/debian/debian/000077500000000000000000000000001360037132600200665ustar00rootroot00000000000000desktop-2.6.2/admin/linux/debian/debian/101-sync-inotify.conf000066400000000000000000000000451360037132600236660ustar00rootroot00000000000000fs.inotify.max_user_watches = 524288 desktop-2.6.2/admin/linux/debian/debian/changelog000066400000000000000000000027271360037132600217500ustar00rootroot00000000000000nextcloud-client (2.3.3-1.0~xenial1) xenial; urgency=medium * Debian build support for the forked client. -- István Váradi Mon, 6 Nov 2017 20:20:04 +0100 nextcloud-client (2.3.1-1.0~xenial1) xenial; urgency=medium * New upstream version -- István Váradi Thu, 23 Mar 2017 19:07:36 +0100 nextcloud-client (2.3.0-1.0~xenial1) xenial; urgency=medium * New upstream version -- István Váradi Tue, 21 Mar 2017 19:34:13 +0100 nextcloud-client (2.2.4-1.4~xenial1) xenial; urgency=medium * The locale-specific icon names are correct too -- István Váradi Tue, 7 Feb 2017 19:55:40 +0100 nextcloud-client (2.2.4-1.3~xenial1) xenial; urgency=medium * Caja syncstate plugin is built. * The syncstate plugin has application-specific name -- István Váradi Fri, 27 Jan 2017 19:34:18 +0100 nextcloud-client (2.2.4-1.2~xenial1) xenial; urgency=medium * Fixed appname in the Nemo syncstate extension. -- István Váradi Thu, 19 Jan 2017 16:46:50 +0100 nextcloud-client (2.2.4-1.1~xenial1) xenial; urgency=medium * Added Nautilus and Nemo syncstate extensions. -- István Váradi Tue, 17 Jan 2017 19:55:32 +0100 nextcloud-client (2.2.4-1.0~xenial1) xenial; urgency=medium * Initial release. -- István Váradi Wed, 14 Dec 2016 20:07:46 +0100 desktop-2.6.2/admin/linux/debian/debian/compat000066400000000000000000000000021360037132600212640ustar00rootroot000000000000009 desktop-2.6.2/admin/linux/debian/debian/control000066400000000000000000000066271360037132600215040ustar00rootroot00000000000000Source: nextcloud-client Section: contrib/devel Priority: optional Maintainer: István Váradi Build-Depends: cmake, debhelper, cdbs, dh-python, extra-cmake-modules (>= 5.16), kdelibs5-dev, libkf5kio-dev, libcmocka-dev, libcloudproviders-dev, libdbus-1-dev, libhttp-dav-perl, libinotify-dev [kfreebsd-any], libqt5svg5-dev, libqt5webkit5-dev, libsqlite3-dev, libssl-dev (>= 1.1.0), zlib1g-dev, optipng, pkg-kde-tools, python-sphinx | python3-sphinx, python3-all, qt5keychain-dev, qtwebengine5-dev, qtdeclarative5-dev, qttools5-dev, qttools5-dev-tools, xvfb Standards-Version: 3.9.8 Homepage: https://github.com/nextcloud/client_theming #Vcs-Git: git://anonscm.debian.org/collab-maint/nextcloud-client.git #Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/nextcloud-client.git Package: nextcloud-client Architecture: any Depends: libnextcloudsync0 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, libgnome-keyring0, nextcloud-client-l10n Description: Nextcloud desktop sync client Use the desktop client to keep your files synchronized between your Nextcloud server and your desktop. Select one or more directories on your local machine and always have access to your latest files wherever you are. Package: libnextcloudsync0 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Nextcloud sync library Used by the Nextcloud desktop client as the synchronization engine. Package: libnextcloudsync-dev Architecture: any Section: contrib/libdevel Depends: libnextcloudsync0 (=${binary:Version}), ${misc:Depends} Description: Nextcloud sync library development files The headers and development library for the Nextcloud sync library. Package: nextcloud-client-l10n Architecture: all Depends: ${misc:Depends} Description: Nextcloud client internatialization files The translation files. Package: nextcloud-client-nautilus Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nautilus, nautilus, ${misc:Depends} Description: Nautilus plugin for Nextcloud This package contains a Nautilus plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-nemo Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-nemo | nemo-python, nemo, ${misc:Depends} Description: Nemo plugin for Nextcloud This package contains a Nemo plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-caja Architecture: all Depends: nextcloud-client (>=${binary:Version}), libnextcloudsync0, python-caja, caja, ${misc:Depends} Description: Caja plugin for Nextcloud This package contains a Caja plugin to display synchronization status icons for Nextcloud files. Package: nextcloud-client-dolphin Architecture: any Depends: dolphin (>= 4:15.12.1), libnextcloudsync0 (= ${binary:Version}), nextcloud-client, ${misc:Depends}, ${shlibs:Depends} Description: Dolphin plugin for Nextcloud This package contains a Dolphin plugin to display synchronization status icons for Nextcloud files. desktop-2.6.2/admin/linux/debian/debian/copyright000066400000000000000000000001471360037132600220230ustar00rootroot00000000000000Files: * Copyright: 2012-2015 ownCloud, inc.; Nuernberg, Germany., 2016 Nextcloud GmbH License: GPL-2+ desktop-2.6.2/admin/linux/debian/debian/libnextcloudsync-dev.install000066400000000000000000000001131360037132600256160ustar00rootroot00000000000000usr/include usr/lib/*/libnextcloudsync.so usr/lib/*/nextcloud/libocsync.so desktop-2.6.2/admin/linux/debian/debian/libnextcloudsync0.install000066400000000000000000000001111360037132600251200ustar00rootroot00000000000000etc usr/lib/*/libnextcloudsync.so.?* usr/lib/*/nextcloud/libocsync.so.?* desktop-2.6.2/admin/linux/debian/debian/nextcloud-client-caja.install000066400000000000000000000000261360037132600256310ustar00rootroot00000000000000usr/share/caja-python desktop-2.6.2/admin/linux/debian/debian/nextcloud-client-dolphin.install000066400000000000000000000003441360037132600263730ustar00rootroot00000000000000usr/lib/*/libnextclouddolphinpluginhelper.so usr/lib/*/qt5/plugins/kf5/overlayicon/nextclouddolphinoverlayplugin.so usr/lib/*/qt5/plugins/nextclouddolphinactionplugin.so usr/share/kservices5/nextclouddolphinactionplugin.desktop desktop-2.6.2/admin/linux/debian/debian/nextcloud-client-dolphin.lintian-overrides000066400000000000000000000001651360037132600303640ustar00rootroot00000000000000nextcloud-client-dolphin: package-name-doesnt-match-sonames nextcloud-client-dolphin: shlib-without-versioned-soname desktop-2.6.2/admin/linux/debian/debian/nextcloud-client-dolphin.triggers000066400000000000000000000000321360037132600265450ustar00rootroot00000000000000activate-noawait ldconfig desktop-2.6.2/admin/linux/debian/debian/nextcloud-client-l10n.install000066400000000000000000000000311360037132600255010ustar00rootroot00000000000000usr/share/nextcloud/i18n desktop-2.6.2/admin/linux/debian/debian/nextcloud-client-nautilus.install000066400000000000000000000000321360037132600265740ustar00rootroot00000000000000usr/share/nautilus-python desktop-2.6.2/admin/linux/debian/debian/nextcloud-client-nemo.install000066400000000000000000000000261360037132600256710ustar00rootroot00000000000000usr/share/nemo-python desktop-2.6.2/admin/linux/debian/debian/nextcloud-client.install000066400000000000000000000001311360037132600247320ustar00rootroot00000000000000usr/bin usr/share/applications usr/share/icons debian/101-sync-inotify.conf etc/sysctl.d desktop-2.6.2/admin/linux/debian/debian/nextcloud-client.lintian-overrides000066400000000000000000000002141360037132600267240ustar00rootroot00000000000000nextcloud-client: binary-or-shlib-defines-rpath nextcloud-client: binary-without-manpage nextcloud-client: license-problem-convert-utf-code desktop-2.6.2/admin/linux/debian/debian/rules000077500000000000000000000006421360037132600211500ustar00rootroot00000000000000#!/usr/bin/make -f # See debhelper(7) (uncomment to enable) # output every command that modifies files on the build system. #export DH_VERBOSE = 1 include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/cmake.mk DEB_SHLIBDEPS_INCLUDE=$(CURDIR)/$(DEB_BUILDDIR)/csync/src DEB_SRCDIR=. DEB_CMAKE_EXTRA_FLAGS = -DCMAKE_SKIP_RPATH=OFF -DCMAKE_SKIP_BUILD_RPATH=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON desktop-2.6.2/admin/linux/debian/debian/source/000077500000000000000000000000001360037132600213665ustar00rootroot00000000000000desktop-2.6.2/admin/linux/debian/debian/source/format000066400000000000000000000000141360037132600225740ustar00rootroot000000000000003.0 (quilt) desktop-2.6.2/admin/linux/debian/debian/source/lintian-overrides000066400000000000000000000022721360037132600247520ustar00rootroot00000000000000nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/bootstrap/static/bootstrap.js line length is 22206 characters (>512) nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/bootstrap/static/jquery.js nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/bootstrap/static/jquery.js line length is 32412 characters (>512) nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/owncloud_com/static/bootstrap.js line length is 22206 characters (>512) nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/owncloud_com/static/jquery.js line length is 32412 characters (>512) nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/owncloud_release/static/bootstrap.js line length is 22206 characters (>512) nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/owncloud_release/static/jquery.js line length is 32412 characters (>512) nextcloud-client source: source-is-missing client/doc/ocdoc/_shared_assets/themes/owncloud_org/static/js/jquery-1.11.0.min.js nextcloud-client source: license-problem-convert-utf-code desktop-2.6.2/admin/linux/debian/drone-build.sh000077500000000000000000000100541360037132600214070ustar00rootroot00000000000000#!/bin/bash set -xe shopt -s extglob PPA=ppa:nextcloud-devs/client PPA_BETA=ppa:nextcloud-devs/client-beta OBS_PROJECT=home:ivaradi OBS_PROJECT_BETA=home:ivaradi:beta OBS_PACKAGE=nextcloud-client pull_request=${DRONE_PULL_REQUEST:=master} if test -z "${DRONE_WORKSPACE}"; then DRONE_WORKSPACE=`pwd` fi if test -z "${DRONE_DIR}"; then DRONE_DIR=`dirname ${DRONE_WORKSPACE}` fi set +x if test "$DEBIAN_SECRET_KEY" -a "$DEBIAN_SECRET_IV"; then openssl aes-256-cbc -K $DEBIAN_SECRET_KEY -iv $DEBIAN_SECRET_IV -in admin/linux/debian/signing-key.txt.enc -d | gpg --import openssl aes-256-cbc -K $DEBIAN_SECRET_KEY -iv $DEBIAN_SECRET_IV -in admin/linux/debian/oscrc.enc -out ~/.oscrc -d touch ~/.has_ppa_keys fi set -x cd "${DRONE_WORKSPACE}" read basever kind <<<$(admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog stable) cd "${DRONE_DIR}" echo "$kind" > kind if test "$kind" = "beta"; then repo=nextcloud-devs/client-beta else repo=nextcloud-devs/client fi origsourceopt="" if ! wget http://ppa.launchpad.net/${repo}/ubuntu/pool/main/n/nextcloud-client/nextcloud-client_${basever}.orig.tar.bz2; then cp -a ${DRONE_WORKSPACE} nextcloud-client_${basever} tar cjf nextcloud-client_${basever}.orig.tar.bz2 --exclude .git nextcloud-client_${basever} origsourceopt="-sa" fi for distribution in xenial bionic disco eoan stable oldstable; do rm -rf nextcloud-client_${basever} cp -a ${DRONE_WORKSPACE} nextcloud-client_${basever} cd nextcloud-client_${basever} cp -a admin/linux/debian/debian . if test -d admin/linux/debian/debian.${distribution}; then tar cf - -C admin/linux/debian/debian.${distribution} . | tar xf - -C debian fi admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog ${distribution} cp /tmp/tmpchangelog debian/changelog if test -f admin/linux/debian/debian.${distribution}/changelog; then cat admin/linux/debian/debian.${distribution}/changelog >> debian/changelog else cat admin/linux/debian/debian/changelog >> debian/changelog fi for p in debian/post-patches/*.patch; do if test -f "${p}"; then echo "Applying ${p}" patch -p1 < "${p}" fi done fullver=`head -1 debian/changelog | sed "s:nextcloud-client (\([^)]*\)).*:\1:"` EDITOR=true dpkg-source --commit . local-changes dpkg-source --build . dpkg-genchanges -S ${origsourceopt} > "../nextcloud-client_${fullver}_source.changes" if test -f ~/.has_ppa_keys; then debsign -k7D14AA7B -S fi cd .. done if test "${pull_request}" = "master"; then kind=`cat kind` if test "$kind" = "beta"; then PPA=$PPA_BETA OBS_PROJECT=$OBS_PROJECT_BETA fi if test -f ~/.has_ppa_keys; then for changes in nextcloud-client_*~+([a-z])1_source.changes; do case "${changes}" in *oldstable1*) ;; *) dput $PPA $changes > /dev/null ;; esac done for distribution in stable oldstable; do if test "${distribution}" = "oldstable"; then pkgsuffix=".${distribution}" pkgvertag="~${distribution}1" else pkgsuffix="" pkgvertag="" fi package="${OBS_PACKAGE}${pkgsuffix}" OBS_SUBDIR="${OBS_PROJECT}/${package}" mkdir -p osc pushd osc osc co ${OBS_PROJECT} ${package} if test "$(ls ${OBS_SUBDIR})"; then osc delete ${OBS_SUBDIR}/* fi cp ../nextcloud-client*.orig.tar.* ${OBS_SUBDIR}/ cp ../nextcloud-client_*[0-9.][0-9]${pkgvertag}.dsc ${OBS_SUBDIR}/ cp ../nextcloud-client_*[0-9.][0-9]${pkgvertag}.debian.tar* ${OBS_SUBDIR}/ cp ../nextcloud-client_*[0-9.][0-9]${pkgvertag}_source.changes ${OBS_SUBDIR}/ osc add ${OBS_SUBDIR}/* cd ${OBS_SUBDIR} osc commit -m "Travis update" popd done fi fi desktop-2.6.2/admin/linux/debian/oscrc.enc000066400000000000000000000125401360037132600204460ustar00rootroot00000000000000k|6(?]IY2a) ^iD* }l Uf_-[=mX6u&-l7Zm n,&&ߺ4RBZP%lLRMُo>\Dg{g枛v59J=H@C ƹO>!)wa"ULCT6}DB&(-FaE فd NE TԺNeW#j%zmBvvlQ:6Ӏ4p&q|UDo)%-3L/"ep0x*LGk"IRRYt\0N Axɗn2:ys4=#iBiPE/=I~Wy G2ad8VڞeO/%5r{o)-vEtzȵX4S+}Ou^ n3p{q (V- >9ЂRe `2Xp(krR23Vn:G*p \6Ei8uٗ ơ@-;*+5P<~#媲6Oind5J~@FWa7lޔF]9O:qwZ!P?A]VH.:.*FR+c{KnNj[(Q't#꫘+^t#vaO܍<纭KUSy(/2VC_.Zvy*F4=h]|'E1A{r9,L&ӛd9}_8G! )^EaM @7|~LUѲ)[䗛%rʔhU/Õ,lx4pI``0f;ty`2 !ḿ4 Q(ceNvWN -e-"#sk0gBsh3S L C\re eq򑸅yiuBloh-.©ENg-;]-~li+yF= LF_rc6>a4݋&(!+}2|W'h I%0_#A2-'˞U{u;s鎆[E}h0Gpͣ:=JsM-8t뾁o@JF6uHv@v [Q5*i809A5k8f?x H%:2c!Й !2=`N%KxDU"Ӡ-߭Qq s+ c0XoϷ:,pl&.N!2P' k+c:}Ar;Zwe%g@?3[O`U>êR Dl\†l'y8e(+89V'.L@=9ż\P}2( :|XjS ^oX4/jHhף=ґ"0~H׈WUOhzI,<PAzKH#V;9nӋ~ ֨4x8!nÈDD˃0-[|$/hwR)-J'I"j8`W?=&RJO{ﺶ)ݕAt6&q>L9`580z ;QWܱo/*&  ¥E0!0IczЕ&ni ާնu4_ b CcIpy)(֐qx3Rg+zO}`ݒ} FVg{:ʕ߫8?>%k΅jn(m 1!yJМ@yi 7cg7G1|1Y;rbi3l^mG^ſsmA=oa*tNS99WNJ0]HY[S~QB<꽛[8)rkf_%380JW0^xq}kB&DC$0!M#2k򾓐/wJ_ԯJsB2 tW>.ag@5$aCҦ[z̳[!+Lpܘm}D v{w&AA"r;qgFfZ[o#mgq3cHDBBkVH 6 MV_m-|p*E 4{g2$f ^K w|g>&A) V顆z`~gڸ 7҈3m"˸d~{\JH(d#Yr8Y炢i|8MEߏ( ̱Ƒw7؋wD ; #^#uRʵ}J8 RU%&1 tdlNGs*Գ*0pk]hSÙ1d7;z g/<$HI ʭ-HSŭlf!YqkݽTE<ڍZPgf{CXV="S|` h L`;Fn#ݫ1Vƥ&fhwGG꜑yBEYwBU&R0%VD$ ;$v1 iYCvN@OqTōY>rm ~=Mv'`k"؞f#DJCwIjF**Kl91!ceL!@ZLv-!% ?N‰csEvȗ["bBVSs0E۵5Op#c;{Q׵L<޾m,!94]_@ 8ZD]qZ*peZcxg3L%pMKj7ԣw5'Λ>KϊQ06*}L@ۃͩYծ4xhA*%D9j^9Lp G.q; g3YӐdxʜXyT9MZ twKrez*e\pľl(A9{h;kL t.uYCXonL EAE -v'/v+yL5fE<&+  Gs.-oS#8kM 5PWLӒoJʳkKuG]Q$+Jc[l[,=IE h%Z14>ζ~Yş.1 ߎ:G "${tmpfile}" < ${now} EOF cat "${subdir}/changelog" >> "${tmpfile}" mv "${tmpfile}" "${subdir}/changelog" fi done rm -f "${tmpfile}" desktop-2.6.2/admin/linux/debian/scripts/config.sh000066400000000000000000000014101360037132600221300ustar00rootroot00000000000000# The directory where the sources are found SOURCES="${HOME}/sources/nextcloud/client" # The directory into which the packages should be genereated BUILDAREA="${SOURCES}/build-area" # The directory containing the Git repositories GITROOTS="${SOURCES}/git" # The pbuilder root directory PBUILDER_ROOT="${HOME}/pbuilder" # The dependencies directory for pbuilder PBUILDER_DEPS="${PBUILDER_ROOT}/deps" # The version of the nextcloud-client package NEXTCLOUD_CLIENT_VERSION=2.4.0 # The FULL version of the nextcloud-client package NEXTCLOUD_CLIENT_FULL_VERSION="${NEXTCLOUD_CLIENT_VERSION}-1.0~@DISTRIBUTION@1" # The tag of the nextcloud-client package NEXTCLOUD_CLIENT_TAG="v${NEXTCLOUD_CLIENT_VERSION}" # The number of CPUs that can be used for paralel builds NUMCPUS=4 desktop-2.6.2/admin/linux/debian/scripts/create_debdir.sh000077500000000000000000000044741360037132600234570ustar00rootroot00000000000000#!/bin/bash set -e -u scriptdir=`dirname $0` scriptdir=`cd "${scriptdir}" && pwd` . "${scriptdir}/config.sh" package="nextcloud-client" tag="${1}" version="${2}" distribution="${3}" gitdir="${GITROOTS}/client" packagedir="${BUILDAREA}/${package}_${version}" origtarname="${package}_${version}.orig.tar.bz2" origtar="${BUILDAREA}/${origtarname}" archive_submodules() { local subdir="${1}" local treeish="${2}" local dir="${gitdir}" local destdir="${packagedir}" if test "${subdir}"; then echo " copying submodule ${subdir}" dir="${dir}/${subdir}" destdir="${destdir}/${subdir}" fi mkdir -p "${destdir}" (cd "${dir}"; git archive "${treeish}" | tar xf - -C "${destdir}") (cd "${dir}"; git ls-tree "${treeish}" -r) | while read mode type object file; do if test "${type}" = "commit"; then sdir="${file}" if test "${subdir}"; then sdir="${subdir}/${sdir}" fi archive_submodules "${sdir}" "${object}" fi done } rm -rf "${packagedir}" mkdir -p "${packagedir}" echo "Updating submodules" commit=`cd "${gitdir}"; git rev-parse HEAD` (cd "${gitdir}"; git checkout "${tag}"; git submodule update --recursive --init) echo "Copying sources" archive_submodules "" "${tag}" if test -f "${GITROOTS}/${origtarname}"; then echo "Copying orig archive from ${GITROOTS}" cp -a "${GITROOTS}/${origtarname}" "${BUILDAREA}" else echo "Creating orig archive" tar cjf "${origtar}" -C "${BUILDAREA}" "${package}_${version}" fi echo "Restoring Git state" (cd "${gitdir}"; git checkout "${commit}") cd "${scriptdir}" echo "Copying Debian files" mkdir -p "${packagedir}/debian" tar cf - -C "${scriptdir}/../debian" . | tar xf - -C "${packagedir}/debian" if test -d "${scriptdir}/../debian.${distribution}"; then tar cf - -C "${scriptdir}/../debian.${distribution}" . | tar xf - -C "${packagedir}/debian" fi pushd "${packagedir}" for p in debian/post-patches/*.patch; do if test -f "${p}"; then echo "Applying ${p}" patch -p1 < "${p}" fi done popd "${scriptdir}/git2changelog.py" /tmp/git2changelog "${distribution}" mv "${packagedir}/debian/changelog" "${packagedir}/debian/changelog.old" cat /tmp/git2changelog "${packagedir}/debian/changelog.old" > "${packagedir}/debian/changelog" desktop-2.6.2/admin/linux/debian/scripts/git2changelog.cfg000066400000000000000000000004761360037132600235400ustar00rootroot00000000000000# Use the configuration below with appropriate changes, # if you want to support a new client version using # your own fork. In such a case the tags do not come # accross to the main repo for a pull request, so # some hacking is needed [versionhack] commit = bc7e65b39552ac458b2adacf76cbf98735ec29a0 tag = v2.4.0-beta desktop-2.6.2/admin/linux/debian/scripts/git2changelog.py000077500000000000000000000110761360037132600234320ustar00rootroot00000000000000#!//usr/bin/env python2.7 import subprocess import re import sys import datetime import os import ConfigParser distribution="yakkety" versionTagRE = re.compile("^v([0-9]+((\.[0-9]+)+))(-(.+))?$") def processVersionTag(tag): m = versionTagRE.match(tag) if m: return (m.group(1), "release" if m.group(4) is None else "beta") else: return None def getCommitVersion(commit): major=None minor=None patch=None for line in subprocess.check_output(["git", "show", commit + ":VERSION.cmake"]).splitlines(): m = re.match("set\( MIRALL_VERSION_([A-Z]+) +([0-9])+ *\)", line) if m is not None: kind=m.group(1) version=m.group(2) if kind=="MAJOR": major=version elif kind=="MINOR": minor=version elif kind=="PATCH": patch=version if major and minor and patch: return major + "." + minor + "." + patch else: return None def collectEntries(baseCommit, baseVersion, kind): scriptdir = os.path.dirname(__file__) configPath = os.path.join(scriptdir, "git2changelog.cfg") newVersionCommit = None newVersionTag = None newVersionOrigTag = None if os.path.exists(configPath): config = ConfigParser.SafeConfigParser() config.read(configPath) if config.has_section("versionhack"): if config.has_option("versionhack", "commit") and \ config.has_option("versionhack", "tag"): newVersionCommit = config.get("versionhack", "commit") newVersionTag = config.get("versionhack", "tag") entries = [] args = ["git", "log", "--format=%h%x09%an%x09%ae%x09%aD%x09%ad%x09%s", "--date=unix", "--author-date-order", "--reverse"] try: output = subprocess.check_output(args + [baseCommit + ".."]) except: output = subprocess.check_output(args) lastVersionTag = None lastCMAKEVersion = None for line in output.splitlines(): words = line.split("\t") (commit, name, email, date, revdate) = words[0:5] subject = "\t".join(words[5:]) revdate = datetime.datetime.utcfromtimestamp(long(revdate)).strftime("%Y%m%d.%H%M%S") kind = "beta" if commit==newVersionCommit: result = processVersionTag(newVersionTag) if result: newVersionOrigTag = lastVersionTag (baseVersion, _kind) = result version=getCommitVersion(commit) if version and version!=lastCMAKEVersion: tag = "v" + version if tag!=newVersionOrigTag: result = processVersionTag(tag) if result: lastVersionTag = tag lastCMAKEVersion = version (baseVersion, _kind) = result for tag in subprocess.check_output(["git", "tag", "--points-at", commit]).splitlines(): if tag!=newVersionOrigTag: result = processVersionTag(tag) if result: lastVersionTag = tag (baseVersion, kind) = result entries.append((commit, name, email, date, revdate, subject, baseVersion, kind)) entries.reverse() return entries def genChangeLogEntries(f, entries, distribution): latestBaseVersion = None latestKind = None for (commit, name, email, date, revdate, subject, baseVersion, kind) in entries: if latestBaseVersion is None: latestBaseVersion = baseVersion latestKind = kind upstreamVersion = baseVersion + "-" + revdate if distribution=="stable": version = upstreamVersion else: version = upstreamVersion + "~" + distribution + "1" print >> f, "nextcloud-client (%s) %s; urgency=medium" % (version, distribution) print >> f print >> f, " * " + subject print >> f print >> f, " -- %s <%s> %s" % (name, email, date) print >> f return (latestBaseVersion, latestKind) if __name__ == "__main__": distribution = sys.argv[2] #entries = collectEntries("8aade24147b5313f8241a8b42331442b7f40eef9", "2.2.4", "release") entries = collectEntries("f9b1c724d6ab5431e0cd56b7cd834f2dd48cebb1", "2.4.0", "beta") with open(sys.argv[1], "wt") as f: (baseVersion, kind) = genChangeLogEntries(f, entries, distribution) print baseVersion, kind desktop-2.6.2/admin/linux/debian/scripts/pbuild.sh000077500000000000000000000003761360037132600221570ustar00rootroot00000000000000#!/bin/bash set -e -u scriptdir=`dirname $0` scriptdir=`cd "${scriptdir}" && pwd` . "${scriptdir}/config.sh" distribution="${1}" shift pushd / "${scriptdir}/build.sh" "${distribution}" -S "$@" "${scriptdir}/pbuilder.sh" "${distribution}" "$@" popd desktop-2.6.2/admin/linux/debian/scripts/pbuilder.sh000077500000000000000000000010171360037132600224770ustar00rootroot00000000000000#!/bin/bash set -e -u scriptdir=`dirname $0` . "${scriptdir}/config.sh" distribution="${1}" shift resultdir="${PBUILDER_ROOT}/${distribution}_result" rm -f "${PBUILDER_DEPS}/"*.deb echo -n > "${PBUILDER_DEPS}/Packages" rm -f "${resultdir}/"* source "${HOME}/.pbuilderrc" dscversion=`echo ${NEXTCLOUD_CLIENT_FULL_VERSION} | sed "s:@DISTRIBUTION@:${distribution}:g"` pbuilder-dist "${distribution}" build --othermirror "${OTHERMIRROR}" --debbuildopts "-j${NUMCPUS}" "$@" "${BUILDAREA}/nextcloud-client_${dscversion}.dsc" desktop-2.6.2/admin/linux/debian/signing-key.txt.enc000066400000000000000000000150201360037132600223730ustar00rootroot00000000000000U(֭PÀFH(,Ć{?0ifJIXb#fóT,;IID %YJg2dzA\[N&$91y\qfw0USEH 5" |ggKm!Gj}iX=~6 ׼'dk{!'b}kNPIsڴ2|$t qxJ^m'-ך6c&6[O< " gRM. }IgJ Q{̈́,⺑=?>yH9:`4cչO̸@#A[7*+7dLB'YBx_Z i{L@x&嚅w. SQVu Y*ZP\_>ha #teuÞq#$7f͍:P+K^l:X3 2AA߲Ƨ 5~gfF͏V2:o*?ټ6꭪*<eȡߊًh^T=Nn- la,'Z)㭉icHE0:H-'@Pj,H6uOtk6eL~t ~Ȇn) ^-@3 W$šhzZ]TՕX A^ 졽%l [ |?2qEiw'^f,scwЍ]Sx?_AA§HWxkI7eg 'hs#g$例 9|d~sҬy+o{@8T $6xLw;BKwyqŕ.SK’-Q89bOݳ1+`,ټ`^өԏ.yCEK6hэo%X\vf&X*ꅛ0c*vSM*~a3q!mPLRqM8 >@_Ӷ6Js` 6*yX i"k<#AX6h.w MIrn\A~zH>wmd:s 4"Gܴxs r,^*ӥZ5Gm#b.'Z ։+0V<`μIiſNAK>f؆`R3nwrru!N ؐb豔zH܏ATib+b&,sSiBm>xT2^‚3!&@U=dՖ,E]xZyѾ_Me%͵lHbcSk]HZGɜ5tb눢m*I!)0s`$l J @f:"W#7@c.E,@ ,b<Ҷ\JWv4}(|[_+gFca%Q DVvCOX4^U)IVM> KK1 l5@V4 , > )qb\Õ#fFÖEYskNN?" ,|WÑsqˠ.}[%;Icݓپo'E8B{HMka=~sJZk(wlJDG\jfI_zYC%iȊٜPCe\7`c`8>fL*5v1756awkT+ 郒 dT(ʉb6"C-(:ycL-.g?dasy!ʻiNt(Ia/q<VJfcťSwȰYE32^^ 1rsC#0\g)ƽxa-a# _|T .y+h6iSƬAŒvP.®5ߍ,?\rwl呴V2-wrI "l$$M^#Ag5c@y^9F[aDx=YUpâK=\pi4umD%,Vl]tv%hȴT4#F.QM+ {mFeG8d5{^y7Fc$oZ BX1sܴ)W"ܭ.gkˏ7 ˈAN56lU,rJuSgĜG<6@EJlf\j6e'ʨfP2.`w9S^,rl8Gg{7SnE 0twxB] ~ֽE~iLC$14a l=$m |qwpJjkMkvh}A*֧W&> SJ{@TEj[fyנdhw!F: Rӹ€RZ{OV A7e쑥yL)$-cX%MB)zLˁҦkw7 :nuRѯحUN57\%UK$ {L)q+D`w6=]+A#c~dZ+XVoX]zn=F{;nv́a{j4;7nc!1{?Z>D xX9EJθ]q>r0]r-a^\.vl寅u®LTôŝ &EΚee[{ >ZH!wjlc,Z EV -[i+'v;I# рOz>tԂk2ևhxzI^2~U36-g*ߝ`a7>D3wvb᧳nTڒRuJ jK{ F5}rXm[d3Y ^&>hV,ãm)'(!d{6>!4hzBzcPbCK/DnR"n1g^:$w#u\OO=m)W,(:)N^|y Ԗ˄w %TStܕUS 7@7.qJjUY%Or%!I'|H|⌁V%޻7`8B :gpP䰞u )~:q Mv~Fmm1u/Ϸj-Y@lf=%U~\u'[dHL#M3o { ZwiLH?Ź&OqݹI.S3;v_8g??SeR^9Ygq¦+ [[$$̷gLK #dI!808T0AWdD`[cm 8mvZ|-E aGV|NmyY͜^D1xҊ;994:C"Mwȗlu q Mvb u"Dg'361̤n[|'(oާW7/+]X@{CgBI25}½`vf[PV9iDwhZwSGP6hFP QQy2CW 3d.:%vrKD <"sQC̟VCx-j+%[y- Pڥr'<\{<^ }&5 UEOF}F=^)Z\$K_"g#OF<yWodesktop-2.6.2/admin/linux/upload-appimage.sh000077500000000000000000000006071360037132600210310ustar00rootroot00000000000000#! /bin/bash set -xe cd /build # Upload AppImage APPIMAGE=$(readlink -f ./Nextcloud*.AppImage) BASENAME=$(basename ${APPIMAGE}) if curl --max-time 900 --upload-file ${APPIMAGE} https://transfer.sh/${BASENAME} then echo echo "Get the AppImage at the link above!" else echo echo "Upload failed, however this is an optional step." fi # Don't let the Drone build fail exit 0desktop-2.6.2/admin/osx/000077500000000000000000000000001360037132600150745ustar00rootroot00000000000000desktop-2.6.2/admin/osx/CMakeLists.txt000066400000000000000000000014501360037132600176340ustar00rootroot00000000000000 # Check if varialbe MAC_INSTALLER_BACKGROUND_FILE is defined. That might come # from the OEM.cmake for branded clients or from NEXTCLOUD.cmake for the non # branded client. # Make sure that the MAC_INSTALLER_BACKGROUND_FILE contains the full path, ie. # includes CMAKE_SOURCE_DIR or so. if (DEFINED MAC_INSTALLER_BACKGROUND_FILE ) set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "1") else() set(MAC_INSTALLER_DO_CUSTOM_BACKGROUND "0") endif() find_package(Qt5 5.6 COMPONENTS Core REQUIRED) configure_file(create_mac.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/create_mac.sh) configure_file(macosx.pkgproj.cmake ${CMAKE_CURRENT_BINARY_DIR}/macosx.pkgproj) configure_file(pre_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/pre_install.sh) configure_file(post_install.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/post_install.sh) desktop-2.6.2/admin/osx/DMGBackground.png000066400000000000000000000440371360037132600202210ustar00rootroot00000000000000PNG  IHDR_WUbKGD pHYs  tIME 7  IDATxwx.-E eod(8nŁ! C@T'.EE{ 2Jr\FH yxHri~ wK ""RO) ""bCDDDP'""bCDDDP'""bCDDDP'""":CDDDP'""":CDDDP'""":CDDDP'""":1ԉDDDP'""":1ԉDDDP'""":1ԉDDDP'""":1ԉNDDP'""":1ԉNDDP'""":1ԉNDDD u""":1ԉNDDD u""":1ԉNDDD u""":1ԉNDDD u"""b1ԉNDDD u"""b1ԉNDDD u"""b1ԉNDDD u"""bCNDDD u"""bCNDDD u"""bCDDD u"""bCDDD u"""bCDDD u"""bCDDDP'""bCDDDP'""bCDDDP'""bCDDDP'"FltUFW :Qi/?!<P'"* !?>7Iq&'DD%}⢱h[ƓH u"ZS LBp`O$1ԉJkM&",~2}P'"*m5u[!@Y ߛjNDT *:~8!: 9)Sƽx2NDt;eS<1ԉ ?+U(qP \OU(W!A%j`Pٿ"AP31S]PF<;_~)A@nPV߸?nƆ;q;$jp ~58|_PeY=гKincܷ]iQ/zuĐG#'7>|/2.\C}=pJ& ])٥ FzNھ%&"y tya/cGcC4~OcЩ]s<2X߇{#t:xڴh[w[ݺ6yHPe<Z{\e:OP\|FW)xzROʖÇ3ǡY:8Y{cwȋ~ `̜8ώCGRAɭo/ y| xm cehqޙ ׯ'-ti.^FbC^-o#`-ۺ/>y@/z.1Ц#Yq<눫mPIc^ѹS99:6@%̒OR}ss}кC8v:m^\vhA yz4? DQCyhҠy:|jLMaᨓ\_P!0:%+PXhFn^>fΦǠzy:s,kiӱsAY jxg\.=_vCόV5j`w5,MMg\o\Xg^yk6lCa㭙ukb5r=+;">&Ҵa=~N/HIʿ~Nӽ=LFC]\]3o8~YTdբoغM;po(WYٹ^3iy&7/_ܼ|:ߧ3_ºM;'}ݸ(D}f7DGZ[Tx<ӝ*9XEoީ#)9~ҩ<'7__sT(`0#近xaxi:z_PRHu>h_Hqm^3{R{Vxe^L~clڶ:k_А >{Ͽ)5ʨ΃ҁ#h֨+Wu $I<]?mSc4/G}W @l5 xr8sPly@ú5jքls-v}E~hת ^|jfMljP,ޝ4gΞG~Ob߁c{?7,iX0QoIr3?LF$Fݴ9cZ >Xm;-IM'' }TdGSO!//-SݯӉhڨ8kk&FᗯVMYٹaw hEdg_ ޔschռy|ǛrXF U&}ΜåWѲYfN)QPMAHpe~yCJ@-p f\,j)jՈܩ!!6 ⏦l?L_?GRc2ᥧi0\uGvN.8yAtth AcB-0aԳraۯ~=;b/>5ЫKL{c8g/(SXr wl EhH to6 y;o?Ӣhg-E`@%šлk;|͏U5 KD|lO1lEcw,·VkrdMN_)1(M-ç3q SoUFrR2y[2}̓:ձY%v=MxSD2&Lfc1Xllܶc&گvWbd 9 K-?^ F>&||001cs/qa߁#5]ؽXP'֭QԩIG<;Df жE#9v=<8DQ :QgY'BQoa2 o ^>`o4!@N``d`hrhdu%ѮҘ\RDd N횣uh\?/^ƞØ6d京zz!i0a4a4Z`[t00 z zct"DAaCYg {ANQa4렷n'` `y a^~:8}fMgC0l$^Dw ehSR51*kF,5]-EQZ^g H:kDh ``u>>ma ]k DkHúvnBa[iq/#t:ىNg(%XEDuz\3om[`6Ӊ ) YCem[ڎO- Dcj`AԡmeM]Yh:(P,$;EVV$r+m䚢-GIʵPZs5SNgFiWӉ_KY{5j -yI,ϫѮ=qq[nCX-ǃ:'I@)qGQUðә<8r$xNwv Z'Zmkˢ_{*j|E-@fSu)2`%HpK28%IpZw }P5%n}f@z[y$A^E` h; 4/jhM4BpTq,=ٶ:΢;kOo.kũUë`W?nby g9y=uM8V@z85} qǚzqc_ p.\=. ղQBP mj%cWPV"NwJhٴ>IDZ喚vJ qׯ|Pim4W~˕ P*Mk˖ )5{;ux;8$ ٻZuIC\ݮ(j&bȧ_T$SRU4yU Vߛ1eH;##Pzmځa#'ɵNIrџ-}[`/Ԯg1qGQzjf6>]\ (ߋIcj/^rTಯ^p7MpGn50eKTc'̣o::m_Ο v TuSC$U˵Ic6α֮^n9nuA];W7n(j׃7wӻZI7uT >1Qqj<ꃎ<,TPo~^4k &dw]ʒžRб_VbŪuAfMuViW}v>&<9/&'"4$igq.,b|#FTDa k㩇;slݹr{HT,_wAdx(a.Zap}z>k`!´ٟNru4iPukUG~̓V%QшF8 w?,CGLn݅_X/?䁞 Fj,^Bn @mU5.\nvssMN7pp\1^$T ¹ 8p2FIq ȸpI lƹdftyRv7ڴm"w3NۂE30%":YhH p %Ecݵ{e桰Ќw5Dz5`6ѶEc!`غs*WD.m݌U5 Ax򡾨T2VR<>r?Ztԯ~ް)(GZIqִcш M}>f ]ԫU8}6C('DBl4tzQa1^{2~P kAvln={V Yp52ŧ!",XzȭAvv.j&ƩUEI97n@d(_SACgRvľ|X풵j9q\`#bה5mU=f6fkױzuj 1>>غsF U5T;or<=nibθpY~,>&e\pEEػ6mݭzΖ+jrQSbqZ8gY[ Gc&z23b 7 5kwE[^V]wip %'=":yv1e[m$n%܇{XZ5XӋ|53 Wfի ܗm'G!"4$ȩ.ʗ+#wyU Lz||.BIX˔o_xY HpX3^9^re-ȸ2(}M&+WUP\|#??7?Jnްtm΅Ac}oǚcW璲P'o)y㺪Z4굖whHvh ض3;ޯW'+[׮aE>˭e4m?͚3שݠv=Fe2/Y=.Z*шUpJ'^ʹԨ#B BeiV%)BC!IrF+k5l cLsE:A?WZYjY9խSx1P'tx.]ulP˂/ Q!7/߲}jN˅|;x;ZBi"^S[ 7O,>h2:~߁q;N3r%жeT GW Gzci+Af-ԩUk@ú5K=kׯZ5kBoTE.lfTP=^ qU\~UևY. JI4\2r͹.Vs/8TsյPv@{1Uć3^GpPSȽk1eL5GSOiXf\3g `4P'9Q^nc7aO!f)*Af8zؾv9nҗ=)kwKNW}S忭c'а^M <`/H~[Amݸ)">6 uGnw#$2o)6j TSת9j-Cn%:>uWK*w* 9oZhoWբç3вCw!"nQ\$WChHNC)lD*H.ԓqlDkӫeQ,D#zre[*Lz8kׯCPl/XUGB\4;KZxEANA8NNGE D}ǪYEy @󸚕#QۈT`6qeX'Z^ Xm 1:^u{r.DzLq{:g#(^WO1ضUFyEö3\ºAx1HU̚ :Q(wnb0YK+EQ6`qu[p8}Xhěp{SfbxL~Ey(1ԉJŗwz9ϵ>^MB;$)My WeUE+-\b8m,*#/B0]F}mtx7o^.?k !.i~w7߾\.//jo]ٌ_C: )Ws}=P8p{ BUp7څ r-Sqkt.)3Wfqҕ`YU %+%% 4w$/;Mڅ5v,ؽM+\Gܕۛ{^,L6`}2ML?hFÿw Msޝ4K߱j-pTB]հ} ڭcZ8m\6*,)s;O5%5ɋywL5t:}"?!pd/ZޟZjEPJckWwsG,48i<Иrj[ ,Tu\M@SH-;'c'g_1w ^z<>fZ?F;ai[gѾ" W+DAt3`LPh?A\2f*/gԊ`pj-z7mP@r3mO0ꍙ?x"Dztjܼ|F@Ƕ͑[wWvhX&D@B5aӶ_ Iq+}*yqр~:VRb=v7Ǘpntu ԸlP̧wB䶠r'Mg{ad:1ԩt:.X,׬NcރtJ|w lܺ@ayg8~Qpi[5r 8#&*$ t׻؋ /ߛ}W :m. =WFڙsWn&Vp5f=N/Ksa/xu4zn]/8PN+D.W-}~l]^c|%7K1ɸpϩT%SӜ;h2_Pj.\S*W*">u9ԕ#=n8 "k(ێCkW2 8׸3UT!zRzrm>uQFee` tbӭs6<aݚXvFukl6 ڷ/wAΝ?7AYh'Lk F[ko~-"uM=|hROuN'i:8v kΤ+hҰ6pu^~o|mKsk+z0u&: mjmnn]Ώxj=Q+Bן|kTw3=|/0; bMeҭX잝_-E;5$FyXT-si>M³=P94rY3gv{rEVpVrs4<5&8_UMr~+OBYhXp~fѓd*~Kl~f6<^O\;s!R ];`z4&P"X$IW߯@ԯ<mG D݌Ԗk.׮?Ys:}ZKk^w-ʮApUwC__~_/rKHMqwI 1((=)q"@DK߸(B+f?80 ՐsEQѷnۗ  )}m}yFO`\nCOO+y=tb+=ԕAT%XY r*%@,B]NLir%6ʂ<E)mC1,c87s:DBs*mWP/ ]7g5k/kIUnyJ(sl˴՞<2Ϋyזw}P_H]ڿҺ 藯db3P;m0)S_yzfiAn~Iz/ߏ}!y.BV9^HB4as)/x~]4w?ЉNwW_܎I5~2#FiU HHrRsZ0j}tǑ.9\M@$"ծkšدϗ- dfatgc]!I5nMk"F+'_kT ŭJ:gƧ=qz7Aj o[NJk09웟8SڨԲ}֩amXfhEt:Ng8`/ x;N5r@3rnv\\ 15ϕ6Rsj=uw5-؃Zxmi2ꍙM u"b )o\N^(׉Љ::z(ʷz=zt: zpt2oCL?-9rsnPf炈2NJvz. HZ/JSWVC€ 5Tά#Ѿ8fu:  zmghm4ddT6d4! f5 @,W\κ`BKY(pȎ:^p([C(5eNT d [d2dCd >&cm2~>5[[['l t:Kk([$D^CxJfCljQȨ^׶^h`$BK+DTD(:if!df`´kt+Vtѹ&#Ct,UӍׯm)+|rNkՈC{z٘BG uzui] Qsro1=krJ|l%\ͺ~_˖+QǓSǷVN$',_]dBvTΛ>>&V'b` 0s8qXjyP-2Sa{ +U,5PbyMMǟ-֝Եxj5@n^>6lمuv`w!@^ѼqyǮ] O鋺ɉ Djlܺ X*H{ ذeVوߋհvv|o8|8UݭmFr5 nk7Ly]дAmݰ{!ٰ c};!9)yyص ]ǰ A[*=eڧ[;ԫ7nϵaN\~CަK]QB9L;iY+LN^nXsТI=T8z&P*/Ąj1IqUS}E8ujiP' j$Fp`|_b|5t [t|թl6Up" גqE{PCCՇSU5LQ[FǶѻk;CɈ@nDM?GOϿ  W{mEp`sr10ض+~vO KM?Q{Ϗz A~N^`O}a(,,Ē0h(Z50bm~ 9 }|έ'Z<~$$]ˤ_x3gO ,$/ixg'h\WB1i v::} =<]`ݦhT?YsG0t48;Pfj.[,I<+/cCJz Xk:|7йSvoxXr\kP\u'",w5X6Y c'ƥWTX~]ɳ>koƭn|K`5 kTB[`Xd nj?t_ո.b#?p45M>ߞn0Xy'~Z#80!AoW+1爵th* S>6JY#` (՘nqD,L∡N%LfQ9FG@ѱ5>T ^i.C(ۺs9vZd4s [vhru,[K.Rwue}} kv8qߚoBZѱMsӣ=гK[3Yhuk:պխ ٌ.8?yMRՔoF|;%3++ѭ'ڛ_=ύwe ցtJa!Rˏ "3.Èlc'o7޵CKG NqEff65OS۴m7uHw-FEѭckbZcnO:m߾~H}f~W_G&J;z yyBt"6c'NjPultBCTKeN9qޟ6[7ߙO^yĚ:<>>&mIDATthm~kЬaߧ3$WGհTԪ 1wkb"@5sAQESMϾӏ>T6/k7l6CE|12: `YZdP~{ Xر۹uLEp&<-^kVb-xo,}sWZ-I._ocˇh@!".]'`ݦEz/'Qo#:([Vѹ +D<"4{g"|l%vh߾/OFDLkz3voώX'5i$Νs?Um`1[W-ƀ0㯰vot.tS߰eϾǛCZ{#bo[TAHA~8t>Mмq=GR]KѤAmTP[EƅKn_|2HА H;jVP7:B$?y Gdx$UAA5I9/{$G#Z$!1붇UFrR2yIY:)77n%6MwF!lߋ-ns=.3{53˫/BsjٙY9شmϿ{wW?κ]U< " && exit # the path of installation must be given as parameter if [ -z "$1" ]; then echo "ERROR: Provide the path to CMAKE_INSTALL_DIR to this script as first parameter." exit 1 fi if [ -z "$2" ]; then echo "ERROR: Provide the path to build directory as second parameter." exit 1 fi install_path="$1" build_path="$2" identity="$3" prjfile=$build_path/admin/osx/macosx.pkgproj # The name of the installer package installer="@APPLICATION_SHORTNAME@-qt@Qt5Core_VERSION@-@MIRALL_VERSION_FULL@@MIRALL_VERSION_SUFFIX@" installer_file="$installer.pkg" installer_file_tar="$installer.pkg.tar" installer_file_tar_bz2="$installer.pkg.tar.bz2" installer_file_tbz="$installer.pkg.tbz" # set the installer name to the copied prj config file /usr/local/bin/packagesutil --file $prjfile set project name "$installer" # The command line tool of the "Packages" tool, see link above. pkgbuild=/usr/local/bin/packagesbuild $pkgbuild -F $install_path $prjfile rc=$? if [ $rc == 0 ]; then echo "Successfully created $installer_file" else echo "Failed to create $installer_file" exit 3 fi # Sign the finished package if desired. if [ ! -z "$identity" ]; then echo "Will try to sign the installer" pushd $install_path productsign --timestamp --sign "$identity" "$installer_file" "$installer_file.new" mv "$installer_file".new "$installer_file" popd else echo "No certificate given, will not sign the pkg" fi # FIXME: OEMs? # they will need to do their own signing.. # Sparkle wants a tbz, it cannot install raw pkg cd $install_path tar cf "$installer_file_tar" "$installer_file" bzip2 -9 "$installer_file_tar" mv "$installer_file_tar_bz2" "$installer_file_tbz" rc=$? if [ $rc == 0 ]; then echo "Successfully created $installer_file" else echo "Failed to create $installer_file" exit 3 fi desktop-2.6.2/admin/osx/deny_autoupdate_com.owncloud.desktopclient.plist000066400000000000000000000001011360037132600266710ustar00rootroot00000000000000bplist00_skipUpdateCheck  desktop-2.6.2/admin/osx/gen_sym_files.py000077500000000000000000000046711360037132600203040ustar00rootroot00000000000000#!/usr/bin/env python import logging, os, re, subprocess, sys import os.path import pdb, pprint if len(sys.argv) < 4: print("Usage:") print("\tgen_sym_files.py ") print("") print("Symbols will be created in './symbols'") sys.exit(1) dump_symsPath = sys.argv[1] bundlePath = sys.argv[2] outPath = sys.argv[3] macOsDir = os.path.join(bundlePath, 'Contents', 'MacOS') pluginsDir = os.path.join(bundlePath, 'Contents', 'PlugIns') def resolvePath(input): resolved = re.sub(r'@\w+', macOsDir, input) return os.path.normpath(resolved) def extractDeps(macho): deps = [macho] otool = subprocess.Popen(['otool', '-L', macho], stdout=subprocess.PIPE) for l in otool.communicate()[0].splitlines(): if 'is not an object file' in l: return [] m = re.search(r'@[^\s]+', l) if m: path = resolvePath(m.group(0)) if not os.path.exists(path): logging.warning("Non-existant file found in dependencies, ignoring: [%s]", path) continue deps.append(path) return deps def findDeps(): deps = [] for f in os.listdir(macOsDir): path = os.path.join(macOsDir, f) if not os.path.islink(path): deps += extractDeps(path) for root, dirs, files in os.walk(pluginsDir): for f in files: path = os.path.join(root, f) deps += extractDeps(path) return sorted(set(deps)) def dumpSyms(deps): for dep in deps: print("Generating symbols for [%s]" % dep) with open('temp.sym', 'w') as temp: subprocess.check_call([dump_symsPath, dep], stdout=temp) with open('temp.sym', 'r') as temp: header = temp.readline() fields = header.split() key, name = fields[3:5] destDir = '%s/%s/%s/' % (outPath, name, key) destPath = destDir + name + '.sym' if os.path.exists(destPath): logging.warning("Symbols already exist: [%s]", destPath) continue if not os.path.exists(destDir): os.makedirs(destDir) os.rename('temp.sym', destPath) def strip(deps): for dep in deps: print("Stripping symbols off [%s]" % dep) subprocess.check_call(['strip', '-S', dep]) print('=== Generating symbols for [%s] in [%s]' % (bundlePath, outPath)) deps = findDeps() dumpSyms(deps) strip(deps) desktop-2.6.2/admin/osx/installer-background.png000066400000000000000000000076741360037132600217320ustar00rootroot00000000000000PNG  IHDR@șPLTE:tRNS  !"#$%&'()*+,-./023456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$ tIDATx١g@9 ضmN]l۶m۶m|75|3̂ o&/ӨuGN\<]1`%;?hFك$u'ywi` ,5,MҸ-[P/Ndgrl縰?=aQi&<5 *StOXHETNNXDjղ3#m/U$ƆT׍X T,$p p'5"@>S;;@2!HC/"Uai(P)q dPr*̯~Ndžә80Z:fHPob `*#Sk4qn_c'O+gԱQE{hZM\?yrb&]PZG܃]9g&N:Acicm|{mlԍm;7VɍdpGY{:'|W40E!Ԕ뷕2uʭjUv3gՂW{&|dR@B^?/%_ NН?fvaRy1*K [¢k`qRMz4IKE<j*~FEI!q= M5; @]ɯ#TnZMT0iJ"#mD~ 9uуT j XY ^'h*8Vy*L#MNRnS=z!H4S@-kIM1JE&Pl6Pl9Z2ՐJ\CS2)-+=5Q871)ƭ/  &ShOBBbEVK B s~U`ֳZÅͥ''ra>\he5i(t+.I r.И2ima^?Bt8;DoP!ι)FĮ YeCyȿ"pV2Vg$Q%RpZ2zjN@qZ`%vW+8+=]7⿮D 3"X2Y}IєB[|U ҂'d# 8$d3Anꈋ%N&$@`c)dT;J`LpJ@Fи!QTRp ͐I4lbV=Lx?L(\sX 4jh4܌w! t}샎)#4%~\d MSA{"tT]L{OЈ7*6wkQ^Ϳр%fJ&V;~iIB(5E'. uRMjUc2, fH#]AMqq*zNҵÏO6N~RrgPD89̈-z$*Vs.6rA7N rVqq]D5a`Zt'{|Z{lK ~]:FVI8_3_LN{kAIWWP"8DxCj; Wo=J]'kBY.ˣѱOgckDo+Eo6,Li*p/O?y(8úY3shŪU en0!_ `2IENDB`desktop-2.6.2/admin/osx/installer-background.svg000066400000000000000000000031001360037132600217210ustar00rootroot00000000000000 desktop-2.6.2/admin/osx/installer-background_2x.png000066400000000000000000000160261360037132600223320ustar00rootroot00000000000000PNG  IHDR -!PLTE= tRNS  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~5IDATx  ey`c(ٶm۶mڶm۶m۶ѬmϘK.o>c rwB'.ΖM֭iբx3 r.~B͆Z>C?_(_LWk2գ|8D¥ofo1nqŸJy8-nc!O[j1/hQ YO9⑛*YOBNh? wiI_%&m0#6-"moC$Bem yq 3-41XORj Ƀhy_`/9d@uf~JFrrIU<9XwvcsCZ]]yJ:ұT.w%l ItVɣa69"]"L.EMgu+h_T(H%6'gec|INDA_ɍ7OXM$agp Y4%g6INK7d뺻(-$%8 Gzp{KI!5*X)uW U+ZC[ܥ'9w?ՙ9ݮYO; x^6u`'iBO\k{]<ɣآ?Yix/" |KZpN%gk^T ypgnpNh嬢޾.*r%$ Q٬7Wzoj;|Р.4ƻxk20W}ԱpkϾ/'vɉp(νi;3Pwǥ6p"j;luȋ!x TJxf/_׈Lӷ*+مt\n(7-3ڥuPUg<[ %"_Muz nˡ!p@\RH25^сDBaW)Vhg%SʹAb '͌SL25^`;, (_:/IȋЁR΀ )楴NY+Wy`(d˴$y [ϧ2Zd-1.Qk u;]+Z2*%i%)E@!}I2 pG(,2+xpZHIPB.RFE֙`N,p *"ո'.WPe/Fōʧ oqK^iaGTN÷WT۰6iTZϵwamicQҬ baha^{(QBk=dT>~dn TG"`4Ȼa(AHsچ)16!a@V`A<}4ôPyn0&`io"!|lL`' 9D MM@I=aId D x5@MBφjRSV#J=S`7Oh (`rԢVPfR.&i H`Xn3NY˭ (`,Z|abTKrֆRPm"h0B-A7) S{Ma]bTh5,J-fQN岨EY+^n`gj|ح.59j&á֙oKMw:q|v;,w26kaP΂ݒP?q7nSg 8Z{^Xm>u*O1d#Xm'>"5 SGP(3">0 aKQWҠ"4 YY25z`*l15Q锑`@mNAa1!ްW:Cߏ5LثS F8 z'B^߈< jq/RJ-lɤnWB -PkanO=򭠔)&l5M@MPT, p$] N<4٧끇 ;v5e:L p!B3a$c, +@C,;ou46jCc|o%-9΀9EuDQ# ,Y> >miͭP0)/`i)f7m<[hP5aehdTMJDU4Mqs`V۽{4Paywa4إN1߃J鵎 7-ɰ˭4KS25M<hm"P1g;U \@; Gr#ۨ"`v ,!8v×RK `ٟ8!u~*"k|@3i Igu;I*/ܢf A+e\PFSp(sEtY mRrZWnBaq(ЅA.Q8(0E [C{3rnh0G'ͤ|"O-pX)mv8 00"UGC,qxQv']ê.92HuÑ|Bq#a(ns&B/5`*Sw%$a]"-000ׄ(ocl¾!*TDbDwUN(0郊y hԞOVyQǥxiРy ; i*iZ `SҩlTT˭4У^ \[Lǡ~h] aۨziY&j'3;Q1 J4KEJoePP9G4P^5kݢ&Ȯ(T֥4N~_h־\ A|4Cuެ}-2P_(BiT'rrT(TI Q~&G71cTh4b{' w뻓*mF͠ފ)Q]RϠBj{5 2Ks_ PWP=Gf7IKXã:ɹTlOmTSذji[L ո+]KAm><@^i 'gS!0Pt@`Z/sԋEt@j}ȨL918FjOG**xzgAL,:ll-z:$c!--t8H:mH S:jCN)# {:#A[~*S:c@-HfSҼWz)0Y:dMQ=Ȧn޾RIik>=U=遯tgHWΦʗOjʉz״L:og](Tb(Ei}&xPq|me9(>*'MSSն&Eρo.̠FA&wܷe~k~/IIIo~8wՏU8(prg*'EV;,clV$)z-$ g $[Ś:Ji>G:6CO#^N5`Q)&.RnvƤ;P6yVFK8i]tipBaw2-"`E Lb?lZCx~h m`?Q?!rwAIENDB`desktop-2.6.2/admin/osx/macdeployqt.py000077500000000000000000000276651360037132600200130ustar00rootroot00000000000000#!/usr/bin/python # This file is part of ownCloud. # It was inspired in large part by the macdeploy script in Clementine # and Tomahawk # # ownCloud is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # ownCLoud 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 ownCloud. If not, see . import os import re import subprocess import commands import sys from glob import glob from distutils.version import LooseVersion def QueryQMake(attrib): return subprocess.check_output([qmake_path, '-query', attrib]).rstrip('\n') FRAMEWORK_SEARCH_PATH=[ '/Library/Frameworks', os.path.join(os.environ['HOME'], 'Library/Frameworks') ] LIBRARY_SEARCH_PATH=['/usr/local/lib', '/usr/local/Qt-5.12.5/lib', '.'] QT_PLUGINS = [ 'sqldrivers/libqsqlite.dylib', 'platforms/libqcocoa.dylib', 'styles/libqmacstyle.dylib', 'imageformats/libqgif.dylib', 'imageformats/libqico.dylib', 'imageformats/libqjpeg.dylib', 'imageformats/libqsvg.dylib', ] QT_PLUGINS_SEARCH_PATH=[ # os.path.join(os.environ['QTDIR'], 'plugins'), # '/usr/local/Cellar/qt/5.2.1/plugins', '/usr/local/Qt-5.12.5/plugins', ] class Error(Exception): pass class CouldNotFindQtPluginErrorFindFrameworkError(Error): pass class InstallNameToolError(Error): pass class CouldNotFindQtPluginError(Error): pass class CouldNotFindScriptPluginError(Error): pass class CouldNotFindFrameworkError(Error): pass if len(sys.argv) < 3: print 'Usage: %s ' % sys.argv[0] exit() def is_exe(fpath): return os.path.isfile(fpath) and os.access(fpath, os.X_OK) bundle_dir = sys.argv[1] qmake_path = sys.argv[2] bundle_name = os.path.basename(bundle_dir).split('.')[0] commands = [] binary_dir = os.path.join(bundle_dir, 'Contents', 'MacOS') frameworks_dir = os.path.join(bundle_dir, 'Contents', 'Frameworks') commands.append(['mkdir', '-p', frameworks_dir]) resources_dir = os.path.join(bundle_dir, 'Contents', 'Resources') commands.append(['mkdir', '-p', resources_dir]) plugins_dir = os.path.join(bundle_dir, 'Contents', 'PlugIns') binaries = [i for i in glob(os.path.join(bundle_dir, 'Contents', 'MacOS', "*")) if is_exe(i)]; qt_version = QueryQMake('QT_VERSION') print "Using Qt", qt_version fixed_libraries = [] fixed_frameworks = [] def WriteQtConf(): print "Writing qt.conf..." with open(os.path.join(resources_dir, 'qt.conf'), 'w') as f: f.write("[Paths]\nPlugins = PlugIns\n"); f.close() def GetBrokenLibraries(binary): #print "Checking libs for binary: %s" % binary output = subprocess.Popen(['otool', '-L', binary], stdout=subprocess.PIPE).communicate()[0] broken_libs = { 'frameworks': [], 'libs': []} for line in [x.split(' ')[0].lstrip() for x in output.split('\n')[1:]]: #print "Checking line: %s" % line if not line: # skip empty lines continue if os.path.basename(binary) == os.path.basename(line): #print "mnope %s-%s" % (os.path.basename(binary), os.path.basename(line)) continue if re.match(r'^\s*/System/', line): continue # System framework elif re.match(r'^\s*/usr/lib/', line): #print "unix style system lib" continue # unix style system library elif re.match(r'Breakpad', line): continue # Manually added by cmake. elif re.match(r'^\s*@executable_path', line) or re.match(r'^\s*@loader_path', line): # Potentially already fixed library if '.framework' in line: relative_path = os.path.join(*line.split('/')[3:]) if not os.path.exists(os.path.join(frameworks_dir, relative_path)): broken_libs['frameworks'].append(relative_path) else: relative_path = os.path.join(*line.split('/')[1:]) #print "RELPATH %s %s" % (relative_path, os.path.join(binary_dir, relative_path)) if not os.path.exists(os.path.join(binary_dir, relative_path)): broken_libs['libs'].append(relative_path) elif re.search(r'\w+\.framework', line): broken_libs['frameworks'].append(line) else: broken_libs['libs'].append(line) return broken_libs def FindFramework(path): search_pathes = FRAMEWORK_SEARCH_PATH search_pathes.insert(0, QueryQMake('QT_INSTALL_LIBS')) for search_path in search_pathes: # The following two lines are needed for a custom built Qt from version 5.5 on, possibly not for the one from the Qt SDK. # Looks like the upstream macdeployqt also had an issue there https://bugreports.qt.io/browse/QTBUG-47868 if path.find( "\@rpath/"): path = path.replace("@rpath/", "") abs_path = os.path.join(search_path, path) if os.path.exists(abs_path): return abs_path raise CouldNotFindFrameworkError(path) def FindLibrary(path): if os.path.exists(path): return path search_pathes = LIBRARY_SEARCH_PATH search_pathes.insert(0, QueryQMake('QT_INSTALL_LIBS')) for search_path in search_pathes: abs_path = os.path.join(search_path, path) if os.path.exists(abs_path): return abs_path else: # try harder---look for lib name in library folders newpath = os.path.join(search_path,os.path.basename(path)) if os.path.exists(newpath): return newpath return "" #raise CouldNotFindFrameworkError(path) def FixAllLibraries(broken_libs): for framework in broken_libs['frameworks']: FixFramework(framework) for lib in broken_libs['libs']: FixLibrary(lib) def FixFramework(path): if path in fixed_libraries: return else: fixed_libraries.append(path) abs_path = FindFramework(path) broken_libs = GetBrokenLibraries(abs_path) FixAllLibraries(broken_libs) new_path = CopyFramework(abs_path) id = os.sep.join(new_path.split(os.sep)[3:]) FixFrameworkId(new_path, id) for framework in broken_libs['frameworks']: FixFrameworkInstallPath(framework, new_path) for library in broken_libs['libs']: FixLibraryInstallPath(library, new_path) def FixLibrary(path): if path in fixed_libraries or FindSystemLibrary(os.path.basename(path)) is not None: return else: fixed_libraries.append(path) abs_path = FindLibrary(path) if abs_path == "": print "Could not resolve %s, not fixing!" % path return broken_libs = GetBrokenLibraries(abs_path) FixAllLibraries(broken_libs) new_path = CopyLibrary(abs_path) FixLibraryId(new_path) for framework in broken_libs['frameworks']: FixFrameworkInstallPath(framework, new_path) for library in broken_libs['libs']: FixLibraryInstallPath(library, new_path) def FixPlugin(abs_path, subdir): broken_libs = GetBrokenLibraries(abs_path) FixAllLibraries(broken_libs) new_path = CopyPlugin(abs_path, subdir) for framework in broken_libs['frameworks']: FixFrameworkInstallPath(framework, new_path) for library in broken_libs['libs']: FixLibraryInstallPath(library, new_path) def FixBinary(path): broken_libs = GetBrokenLibraries(path) FixAllLibraries(broken_libs) for framework in broken_libs['frameworks']: FixFrameworkInstallPath(framework, path) for library in broken_libs['libs']: FixLibraryInstallPath(library, path) def CopyLibrary(path): new_path = os.path.join(binary_dir, os.path.basename(path)) args = ['ditto', '--arch=x86_64', path, new_path] commands.append(args) args = ['chmod', 'u+w', new_path] commands.append(args) return new_path def CopyPlugin(path, subdir): new_path = os.path.join(plugins_dir, subdir, os.path.basename(path)) args = ['mkdir', '-p', os.path.dirname(new_path)] commands.append(args) args = ['ditto', '--arch=x86_64', path, new_path] commands.append(args) args = ['chmod', 'u+w', new_path] commands.append(args) return new_path def CopyFramework(source_dylib): parts = source_dylib.split(os.sep) print "CopyFramework:", source_dylib for i, part in enumerate(parts): matchObj = re.match(r'(\w+\.framework)', part) if matchObj: framework = matchObj.group(1) dylib_name = parts[-1] source_path = os.path.join('/', *parts[:i+1]) dest_path = os.path.join(frameworks_dir, framework) dest_dylib_path = os.path.join(frameworks_dir, *parts[i:-1]) break # if os.path.exists(dest_path): # print dest_path, "already exists, skipping copy..." # return os.path.join(dest_dylib_path, dylib_name) args = ['mkdir', '-p', dest_dylib_path] commands.append(args) args = ['ditto', '--arch=x86_64', source_dylib, dest_dylib_path] commands.append(args) args = ['chmod', 'u+w', os.path.join(dest_dylib_path, parts[-1])] commands.append(args) args = ['ln', '-s', '5', os.path.join(dest_path, 'Versions', 'Current')] commands.append(args) args = ['ln', '-s', os.path.join('Versions', 'Current', dylib_name), os.path.join(dest_path, dylib_name)] commands.append(args) args = ['ln', '-s', os.path.join('Versions', 'Current', 'Resources'), os.path.join(dest_path, 'Resources')] commands.append(args) args = ['cp', '-r', os.path.join(source_path, 'Versions', '5', 'Resources'), os.path.join(dest_path, 'Versions', '5')] commands.append(args) args = ['ln', '-s', os.path.join('Versions', 'Current', 'Helpers'), os.path.join(dest_path, 'Helpers')] commands.append(args) args = ['cp', '-r', os.path.join(source_path, 'Versions', '5', 'Helpers'), os.path.join(dest_path, 'Versions', '5')] commands.append(args) return os.path.join(dest_dylib_path, dylib_name) def FixId(path, library_name): id = '@executable_path/../Frameworks/%s' % library_name args = ['install_name_tool', '-id', id, path] commands.append(args) def FixLibraryId(path): library_name = os.path.basename(path) FixId(path, library_name) def FixFrameworkId(path, id): FixId(path, id) def FixInstallPath(library_path, library, new_path): args = ['install_name_tool', '-change', library_path, new_path, library] commands.append(args) def FindSystemLibrary(library_name): for path in ['/lib', '/usr/lib']: full_path = os.path.join(path, library_name) if os.path.exists(full_path): return full_path return None def FixLibraryInstallPath(library_path, library): system_library = FindSystemLibrary(os.path.basename(library_path)) if system_library is None: new_path = '@executable_path/../MacOS/%s' % os.path.basename(library_path) FixInstallPath(library_path, library, new_path) else: FixInstallPath(library_path, library, system_library) def FixFrameworkInstallPath(library_path, library): parts = library_path.split(os.sep) for i, part in enumerate(parts): if re.match(r'\w+\.framework', part): full_path = os.path.join(*parts[i:]) break new_path = '@executable_path/../Frameworks/%s' % full_path FixInstallPath(library_path, library, new_path) def FindQtPlugin(name): search_path = QT_PLUGINS_SEARCH_PATH search_path.insert(0, QueryQMake('QT_INSTALL_PLUGINS')) for path in search_path: if os.path.exists(path): if os.path.exists(os.path.join(path, name)): return os.path.join(path, name) raise CouldNotFindQtPluginError(name) for binary in binaries: FixBinary(binary) for plugin in QT_PLUGINS: FixPlugin(FindQtPlugin(plugin), os.path.dirname(plugin)) if LooseVersion(qt_version) >= LooseVersion("5.10.0"): args = ['plutil', '-insert', 'LSMinimumSystemVersion', '-string', '10.10.0', os.path.join(bundle_dir, 'Contents', 'Info.plist')] commands.append(args) else: args = ['plutil', '-insert', 'LSMinimumSystemVersion', '-string', '10.7.0', os.path.join(bundle_dir, 'Contents', 'Info.plist')] commands.append(args) if len(sys.argv) <= 2: print 'Will run %d commands:' % len(commands) for command in commands: print ' '.join(command) for command in commands: p = subprocess.Popen(command) os.waitpid(p.pid, 0) WriteQtConf() desktop-2.6.2/admin/osx/macosx.pkgproj.cmake000066400000000000000000000557251360037132600210610ustar00rootroot00000000000000 PACKAGES PACKAGE_FILES DEFAULT_INSTALL_LOCATION / HIERARCHY CHILDREN CHILDREN CHILDREN GID 80 PATH @APPLICATION_EXECUTABLE@.app PATH_TYPE 3 PERMISSIONS 493 TYPE 3 UID 0 CHILDREN GID 80 PATH Utilities PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 GID 80 PATH Applications PATH_TYPE 0 PERMISSIONS 509 TYPE 1 UID 0 CHILDREN CHILDREN GID 80 PATH Application Support PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH Documentation PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH Filesystems PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH Frameworks PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH Input Methods PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH Internet Plug-Ins PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH LaunchAgents PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH LaunchDaemons PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH PreferencePanes PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH Preferences PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 80 PATH Printers PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH PrivilegedHelperTools PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH QuickLook PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH QuickTime PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH Screen Savers PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH Scripts PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH Services PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN GID 0 PATH Widgets PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 GID 0 PATH Library PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN CHILDREN CHILDREN GID 0 PATH Extensions PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 GID 0 PATH Library PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 GID 0 PATH System PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 CHILDREN CHILDREN GID 0 PATH Shared PATH_TYPE 0 PERMISSIONS 1023 TYPE 1 UID 0 GID 80 PATH Users PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 GID 0 PATH / PATH_TYPE 0 PERMISSIONS 493 TYPE 1 UID 0 PAYLOAD_TYPE 0 VERSION 2 PACKAGE_SCRIPTS POSTINSTALL_PATH PATH @CMAKE_CURRENT_BINARY_DIR@/post_install.sh PATH_TYPE 0 PREINSTALL_PATH PATH @CMAKE_CURRENT_BINARY_DIR@/pre_install.sh PATH_TYPE 0 RESOURCES PACKAGE_SETTINGS AUTHENTICATION 1 CONCLUSION_ACTION 0 IDENTIFIER @APPLICATION_REV_DOMAIN_INSTALLER@ NAME @APPLICATION_NAME_XML_ESCAPED@ OVERWRITE_PERMISSIONS VERSION @MIRALL_VERSION_FULL@ UUID 7D7219B7-1897-48C3-8533-842BDEC46F71 PROJECT PROJECT_COMMENTS NOTES PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M IDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv c3RyaWN0LmR0ZCI+CjxodG1sPgo8aGVhZD4KPG1ldGEgaHR0cC1l cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7 IGNoYXJzZXQ9VVRGLTgiPgo8bWV0YSBodHRwLWVxdWl2PSJDb250 ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPHRp dGxlPjwvdGl0bGU+CjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29u dGVudD0iQ29jb2EgSFRNTCBXcml0ZXIiPgo8bWV0YSBuYW1lPSJD b2NvYVZlcnNpb24iIGNvbnRlbnQ9IjEzNDMuMTQiPgo8c3R5bGUg dHlwZT0idGV4dC9jc3MiPgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5 Pgo8L2JvZHk+CjwvaHRtbD4K PROJECT_PRESENTATION BACKGROUND ALIGNMENT 6 BACKGROUND_PATH PATH @MAC_INSTALLER_BACKGROUND_FILE@ PATH_TYPE 0 CUSTOM @MAC_INSTALLER_DO_CUSTOM_BACKGROUND@ SCALING 0 INSTALLATION TYPE HIERARCHIES INSTALLER LIST DESCRIPTION OPTIONS HIDDEN STATE 1 PACKAGE_UUID 7D7219B7-1897-48C3-8533-842BDEC46F71 TITLE TOOLTIP TYPE 0 UUID 9647ADC0-BD53-4D7D-A561-73D383AACDE1 REMOVED INSTALLATION TYPE 1 MODE 1 INSTALLATION_STEPS ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS ICPresentationViewIntroductionController INSTALLER_PLUGIN Introduction LIST_TITLE_KEY InstallerSectionTitle ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS ICPresentationViewReadMeController INSTALLER_PLUGIN ReadMe LIST_TITLE_KEY InstallerSectionTitle ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS ICPresentationViewLicenseController INSTALLER_PLUGIN License LIST_TITLE_KEY InstallerSectionTitle ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS ICPresentationViewDestinationSelectController INSTALLER_PLUGIN TargetSelect LIST_TITLE_KEY InstallerSectionTitle ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS ICPresentationViewInstallationTypeController INSTALLER_PLUGIN PackageSelection LIST_TITLE_KEY InstallerSectionTitle ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS ICPresentationViewInstallationController INSTALLER_PLUGIN Install LIST_TITLE_KEY InstallerSectionTitle ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS ICPresentationViewSummaryController INSTALLER_PLUGIN Summary LIST_TITLE_KEY InstallerSectionTitle INTRODUCTION LOCALIZATIONS LICENSE KEYWORDS LOCALIZATIONS MODE 0 README LOCALIZATIONS SUMMARY LOCALIZATIONS TITLE LOCALIZATIONS LANGUAGE English VALUE @APPLICATION_NAME_XML_ESCAPED@ Client PROJECT_REQUIREMENTS LIST POSTINSTALL_PATH PREINSTALL_PATH RESOURCES ROOT_VOLUME_ONLY PROJECT_SETTINGS ADVANCED_OPTIONS BUILD_FORMAT 0 BUILD_PATH PATH @CMAKE_INSTALL_PREFIX@/. PATH_TYPE 3 EXCLUDED_FILES PATTERNS_ARRAY REGULAR_EXPRESSION STRING .DS_Store TYPE 0 PROTECTED PROXY_NAME Remove .DS_Store files PROXY_TOOLTIP Remove ".DS_Store" files created by the Finder. STATE PATTERNS_ARRAY REGULAR_EXPRESSION STRING .pbdevelopment TYPE 0 PROTECTED PROXY_NAME Remove .pbdevelopment files PROXY_TOOLTIP Remove ".pbdevelopment" files created by ProjectBuilder or Xcode. STATE PATTERNS_ARRAY REGULAR_EXPRESSION STRING CVS TYPE 1 REGULAR_EXPRESSION STRING .cvsignore TYPE 0 REGULAR_EXPRESSION STRING .cvspass TYPE 0 REGULAR_EXPRESSION STRING .svn TYPE 1 REGULAR_EXPRESSION STRING .git TYPE 1 REGULAR_EXPRESSION STRING .gitignore TYPE 0 PROTECTED PROXY_NAME Remove SCM metadata PROXY_TOOLTIP Remove helper files and folders used by the CVS, SVN or Git Source Code Management systems. STATE PATTERNS_ARRAY REGULAR_EXPRESSION STRING classes.nib TYPE 0 REGULAR_EXPRESSION STRING designable.db TYPE 0 REGULAR_EXPRESSION STRING info.nib TYPE 0 PROTECTED PROXY_NAME Optimize nib files PROXY_TOOLTIP Remove "classes.nib", "info.nib" and "designable.nib" files within .nib bundles. STATE PATTERNS_ARRAY REGULAR_EXPRESSION STRING Resources Disabled TYPE 1 PROTECTED PROXY_NAME Remove Resources Disabled folders PROXY_TOOLTIP Remove "Resources Disabled" folders. STATE SEPARATOR NAME @APPLICATION_NAME_XML_ESCAPED@ Installer REFERENCE_FOLDER_PATH @CMAKE_INSTALL_DIR@ TYPE 0 VERSION 2 desktop-2.6.2/admin/osx/post_install.sh.cmake000066400000000000000000000015451360037132600212270ustar00rootroot00000000000000#!/bin/sh # Check if Finder is running (for systems with Finder disabled) finder_status=`ps aux | grep "/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder" | grep -v "grep"` if ! [ "$finder_status" == "" ] ; then # Finder is running osascript << EOF tell application "Finder" activate select the last Finder window reveal POSIX file "/Applications/@APPLICATION_EXECUTABLE@.app" end tell EOF fi # Always enable the new 10.10 finder plugin if available if [ -x "$(command -v pluginkit)" ]; then # add it to DB. This happens automatically too but we try to push it a bit harder for issue #3463 pluginkit -a "/Applications/@APPLICATION_EXECUTABLE@.app/Contents/PlugIns/FinderSyncExt.appex/" # Since El Capitan we need to sleep #4650 sleep 10s # enable it pluginkit -e use -i @APPLICATION_REV_DOMAIN@.FinderSyncExt fi exit 0 desktop-2.6.2/admin/osx/pre_install.sh.cmake000066400000000000000000000001341360037132600210210ustar00rootroot00000000000000#!/bin/sh # kill the old version. see issue #2044 killall @APPLICATION_EXECUTABLE@ exit 0 desktop-2.6.2/admin/osx/sign_app.sh000077500000000000000000000010701360037132600172310ustar00rootroot00000000000000#!/bin/sh -xe [ "$#" -lt 2 ] && echo "Usage: sign_app.sh " && exit src_app="$1" identity="$2" team_identifier="$3" codesign -s "$identity" --force --preserve-metadata=entitlements --verbose=4 --deep "$src_app" # Verify the signature codesign -dv $src_app codesign --verify -v $src_app spctl -a -t exec -vv $src_app # Validate that the key used for signing the binary matches the expected TeamIdentifier # needed to pass the SocketApi through the sandbox codesign -dv $src_app 2>&1 | grep "TeamIdentifier=$team_identifier" exit $?desktop-2.6.2/admin/osx/sign_dmg.sh000077500000000000000000000025441360037132600172270ustar00rootroot00000000000000#!/bin/sh -x [ "$#" -lt 2 ] && echo "Usage: sign_dmg.sh " && exit src_dmg="$1" tmp_dmg="writable_$1" signed_dmg="signed_$1" identity="$2" QT_FMWKS=`basename ${TMP_APP}/Contents/Frameworks`/Qt* QT_FMWK_VERSION="5" fix_frameworks() { TMP_APP=$1 QT_FMWK_PATH=$2 QT_FMWKS=$3/Qt*.framework echo "Patching Qt frameworks..." for FMWK in $QT_FMWKS; do FMWK_NAME=`basename -s .framework $FMWK` FMWK=`basename $FMWK` FMWK_PATH="${TMP_APP}/Contents/Frameworks/${FMWK}" mkdir -p "${FMWK_PATH}/Versions/${QT_FMWK_VERSION}/Resources/" cp -avf "${QT_FMWK_PATH}/${FMWK}/Contents/Info.plist" "${FMWK_PATH}/Versions/${QT_FMWK_VERSION}/Resources" (cd "${FMWK_PATH}" && ln -sf "Versions/${QT_FMWK_VERSION}/Resources" "Resources") perl -pi -e "s/${FMWK_NAME}_debug/${FMWK_NAME}/" "${FMWK_PATH}/Resources/Info.plist" done } mount="/Volumes/$(basename "$src_dmg"|sed 's,-\([0-9]\)\(.*\),,')" test -e "$tmp_dmg" && rm -rf "$tmp_dmg" hdiutil convert "$src_dmg" -format UDRW -o "$tmp_dmg" hdiutil attach "$tmp_dmg" pushd "$mount" fix_frameworks "$mount"/*.app `qmake -query QT_INSTALL_LIBS` "$mount"/*.app/Contents/Frameworks codesign -s "$identity" --deep "$mount"/*.app popd diskutil eject "$mount" test -e "$signed_dmg" && rm -rf "$signed_dmg" hdiutil convert "$tmp_dmg" -format UDBZ -o "$signed_dmg" desktop-2.6.2/admin/osx/sparkle/000077500000000000000000000000001360037132600165355ustar00rootroot00000000000000desktop-2.6.2/admin/osx/sparkle/dsa_pub.pem000066400000000000000000000042521360037132600206600ustar00rootroot00000000000000-----BEGIN PUBLIC KEY----- MIIGOzCCBC0GByqGSM44BAEwggQgAoICAQCwGHwZVKUPwJafICkknBmoIS7TGjfw TnHpZdWJ/kVvMIhFiui3cJaB85e8R2yGRq7wr6ljYCR5EyjRXEJGEFW05PCUxLhh LnUg7yWIL1EnRM61zSlnWer4f7IBO7Qf8hd35jL5VuQtqE+Shq1vtC21SFO6GMog sfQdeyhTMIH67nw19fDxbyqPh+fPsBgitWmO07eF132Qxju0MwXvaju3YrXepuoR ClonI8pfPCJAAyJd5sEAfJPiqObgW/ehNgU5mVXv2D6VNtvvyu0flnvj05TOtkz+ 6392xh0u/xtz1F1clPe31JW3C2zxkvS14M7eSn96hMlojLev75/V84pQNZ7qXQ/X TxWaucnipJ94EqRLTg1hD3qwyC+5JKqOA6ELFmMARsP2MV4wmBIE+bz/bP2g7UCT UIJVTZrZAemozMFR6zsQQMrdz9fEPXQhibcg3LppMnnTkAJUdMkKlGIpehGe1tVC LaOgYh03zf/N7yFwH9eMIiAoXTlqR7iRO1HHsXn60OF8XYEt8Xga8cK7zMiPYOqm o4rheeXw33pckX63glOjJ+ADH1jhU7vOjRsAySXMFjanD8A31Mh8NbhuvPJowJAx ez8Hu4M6+fg644z7WHmsrbp0R3/Ow9FI/zmvYT6najOlEwnar8ix210ezjWmAOxN BTuHN6Bj7ckgdQIVAKwAcb77T0Fyjus9ZImfCqlKdihZAoICABiPO4bywe636AlU FRhMS/XFeGqRD7GbJSbGzIahooUPyVAeyRIU1HzmeVPx7jTqcoqcau0vXfv10EB+ nJ3q6EzfCbitGIDJ1TjT2BhMtsnhzplhvVOAThuLnLpYwa3h8DIfgTqxh+DaCJHc ccdl/sAgj/6m54FCRc5ukyQZZeOFgSO2L+JfGDYJpn1CFuRVrXr4DbvtUDItRTbQ Gxlg5OEx2D1eO5DHtmuRPBZbumgACnFeD97tRQVjVKqQiMU3ZfNDp+mub0/MS/PY djDZIZM4E3/Nx+IuSuRELGKgifM/ED0tyiq6FYy9kx1nVVoRhWt29ipkQSskvRL3 Ba593/u7dMt2Pa/RVNha+9J1VIadblNu0OkieI8OrPJ8PEdrr3Igit1GuURxz/oR c4T5nWCM+7e9yxs1resVDsU4D0aJVBMnE7IZwnN9/f4wduR0rxuBTLbMgtgBoIak JhgplAQu7SdSxKSpY6keGZUpt8ATkixkScZmVhFKmuVYc1c0tLfUqQnlC4Ty44Wk MEyub6749iRgNQp9vzvntS3EoLDho4CdEWlrp7YBtvTPiey46gcoLeLNZVyGuQ42 CdFw09MIDPEhXBe6oWsOqW4OUla/UoVJyEjuPeiNIMruUJKIGkB1RL6OaiWxJkGM 2HXSebMEweWuScaJmNR5VX87n6KTA4ICBgACggIBAKIAUUc/MJYZYkZectbSabZy TmlrPmi00q7wpsInTieeKVqOSypS+fuoiG2uuUX4+duqK8mLiA9WC0/y/cBJiWth Bp28s1ADdC98wamERYpZOxWuHDS9MEsovQzm5RIxgVtZbK7vKk/f0WbGE6xwgERH dt1zSZRh1ZWi/UWDVGHjlVMEhtNxoRD/Q5T4KUpLez0DNf2VpKk17KsqD2sS1zit IwIMR++PEY9Rfw1FWIkE5GzJnjxR8sUr6hg5A4z779W7qW/KK5DGlOVYrHhdxUDA b5q4wGBP3sDCPhhZ/g1V62tb1LAXnTMgAkdXGpRCxoe21TcB21PSQAbW1sOpFbSu 07kMLAZIh+L1eR5sY6z7S/pqE4W4ukYUEFJPUSCVUCXkN2ZbSfbQLLi2mVNNIp7u /MJVxNQOtRqHM+2/nN+98Grivr1ct1G1NUHYgP/lr7Y2QNBiST0Lcnos8pjmI42v 0NxCt+BOx+cc0SNXxRJD2j73IgzD8YW3gvWfzSwUcIqgC27JEEMhscEVNI4vD/CR mdDmYm0QJdBmEczPf5cA5gyAa1ATYS8ejrh6HpbC++FpSf4FN++5uu9cXtYJgI9B G0ZEvlGwqzStV35LeqwF2KBSZIspquILBDJDaKHG7wPE5/MdSsFky1awX7jgyGZV H5CvBpIDHOrQ0r1b40oB -----END PUBLIC KEY----- desktop-2.6.2/admin/osx/sparkle/example_update_rss.rss000066400000000000000000000014651360037132600231600ustar00rootroot00000000000000 oC 127.0.0.1/test.rss Most recent changes with links to updates. en Version 1.5.1.2180-nightly20140202 Wed, 09 Feb 2013 19:20:11 +0000 desktop-2.6.2/admin/qt/000077500000000000000000000000001360037132600147075ustar00rootroot00000000000000desktop-2.6.2/admin/qt/patches/000077500000000000000000000000001360037132600163365ustar00rootroot00000000000000desktop-2.6.2/admin/qt/patches/README.md000066400000000000000000000010521360037132600176130ustar00rootroot00000000000000## Patches used There are our patches on top of Qt 5.6.2, which we are currently using for our binary packages on Windows and macOS. Most of them have been sent upstream and are part of newer Qt releases. All changes are designed to be upstream, and all those that are special hacks to Qt will bear a NOUPSTREAM in their name You can apply those patches on a git clone using: ``` git am /admin/qt/patches/qtbase/*.patch ``` You can update them using: ``` git format-patch -N --no-signature -o /admin/qt/patches/qtbase/ ``` desktop-2.6.2/admin/qt/patches/qtbase/000077500000000000000000000000001360037132600176155ustar00rootroot00000000000000desktop-2.6.2/admin/qt/patches/qtbase/0001-NOUPSTREAM-Fix-force-debug-info-with-macx-clang.patch000066400000000000000000000024211360037132600315260ustar00rootroot00000000000000From 96c34ce85136cbdc16ef83effa8a13137f7ae4c5 Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Fri, 6 Mar 2015 16:12:37 +0100 Subject: [PATCH] [NOUPSTREAM] Fix -force-debug-info with macx-clang --- mkspecs/common/clang.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf index e003b94..e9b3291 100644 --- a/mkspecs/common/clang.conf +++ b/mkspecs/common/clang.conf @@ -21,11 +21,13 @@ QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_ QMAKE_CFLAGS_USE_PRECOMPILE = -Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT} QMAKE_CFLAGS_LTCG = -flto QMAKE_CFLAGS_DISABLE_LTCG = -fno-lto +QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO = $$QMAKE_CFLAGS_OPTIMIZE -g QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG +QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_CXXFLAGS_CXX11 = -std=c++11 QMAKE_CXXFLAGS_CXX14 = -std=c++1y QMAKE_CXXFLAGS_CXX1Z = -std=c++1z 0002-Remove-legacy-platform-code-in-QSslSocket-for-OS-X-1.patch000066400000000000000000000147561360037132600325070ustar00rootroot00000000000000desktop-2.6.2/admin/qt/patches/qtbaseFrom e6bccb1f0d8ca59acb1ffdac74a823c06346e7f3 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Mon, 16 Nov 2015 15:02:37 +0100 Subject: [PATCH] Remove legacy platform code in QSslSocket for OS X < 10.5 This avoids manual symbol lookups and makes the code more readable. Mark identical code. Also use smart pointers instead of manual memory management. (Backport of d42d7781f1cd62c3c7c008859507f24a1ff5bb2a to Qt 5.4) Change-Id: I62820313dce87de6623cdc87b6e1361200ed7822 Reviewed-by: Markus Goetz (Woboq GmbH) Conflicts: src/network/ssl/qsslsocket_openssl.cpp --- src/network/ssl/qsslsocket_openssl.cpp | 81 +++++++++++----------------------- src/network/ssl/qsslsocket_p.h | 6 +-- 2 files changed, 26 insertions(+), 61 deletions(-) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 82644c1..415f147 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -76,14 +76,17 @@ #include +#ifdef Q_OS_DARWIN +# include +#endif + +#ifdef Q_OS_OSX +# include +#endif + QT_BEGIN_NAMESPACE -#if defined(Q_OS_MACX) -#define kSecTrustSettingsDomainSystem 2 // so we do not need to include the header file - PtrSecCertificateCopyData QSslSocketPrivate::ptrSecCertificateCopyData = 0; - PtrSecTrustSettingsCopyCertificates QSslSocketPrivate::ptrSecTrustSettingsCopyCertificates = 0; - PtrSecTrustCopyAnchorCertificates QSslSocketPrivate::ptrSecTrustCopyAnchorCertificates = 0; -#elif defined(Q_OS_WIN) +#if defined(Q_OS_WIN) PtrCertOpenSystemStoreW QSslSocketPrivate::ptrCertOpenSystemStoreW = 0; PtrCertFindCertificateInStore QSslSocketPrivate::ptrCertFindCertificateInStore = 0; PtrCertCloseStore QSslSocketPrivate::ptrCertCloseStore = 0; @@ -509,23 +512,7 @@ void QSslSocketPrivate::ensureCiphersAndCertsLoaded() #ifndef QT_NO_LIBRARY //load symbols needed to receive certificates from system store -#if defined(Q_OS_MACX) - QLibrary securityLib("/System/Library/Frameworks/Security.framework/Versions/Current/Security"); - if (securityLib.load()) { - ptrSecCertificateCopyData = (PtrSecCertificateCopyData) securityLib.resolve("SecCertificateCopyData"); - if (!ptrSecCertificateCopyData) - qCWarning(lcSsl, "could not resolve symbols in security library"); // should never happen - - ptrSecTrustSettingsCopyCertificates = (PtrSecTrustSettingsCopyCertificates) securityLib.resolve("SecTrustSettingsCopyCertificates"); - if (!ptrSecTrustSettingsCopyCertificates) { // method was introduced in Leopard, use legacy method if it's not there - ptrSecTrustCopyAnchorCertificates = (PtrSecTrustCopyAnchorCertificates) securityLib.resolve("SecTrustCopyAnchorCertificates"); - if (!ptrSecTrustCopyAnchorCertificates) - qCWarning(lcSsl, "could not resolve symbols in security library"); // should never happen - } - } else { - qCWarning(lcSsl, "could not load security library"); - } -#elif defined(Q_OS_WIN) +#if defined(Q_OS_WIN) HINSTANCE hLib = LoadLibraryW(L"Crypt32"); if (hLib) { #if defined(Q_OS_WINCE) @@ -693,40 +680,22 @@ QList QSslSocketPrivate::systemCaCertificates() timer.start(); #endif QList systemCerts; -#if defined(Q_OS_MACX) - CFArrayRef cfCerts; - OSStatus status = 1; - - CFDataRef SecCertificateCopyData ( - SecCertificateRef certificate - ); - - if (ptrSecCertificateCopyData) { - if (ptrSecTrustSettingsCopyCertificates) - status = ptrSecTrustSettingsCopyCertificates(kSecTrustSettingsDomainSystem, &cfCerts); - else if (ptrSecTrustCopyAnchorCertificates) - status = ptrSecTrustCopyAnchorCertificates(&cfCerts); - if (!status) { - CFIndex size = CFArrayGetCount(cfCerts); - for (CFIndex i = 0; i < size; ++i) { - SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i); - CFDataRef data; - - data = ptrSecCertificateCopyData(cfCert); - - if (data == NULL) { - qCWarning(lcSsl, "error retrieving a CA certificate from the system store"); - } else { - QByteArray rawCert = QByteArray::fromRawData((const char *)CFDataGetBytePtr(data), CFDataGetLength(data)); - systemCerts.append(QSslCertificate::fromData(rawCert, QSsl::Der)); - CFRelease(data); - } + // note: also check implementation in openssl_mac.cpp +#if defined(Q_OS_OSX) + // SecTrustSettingsCopyCertificates is not defined on iOS. + QCFType cfCerts; + + OSStatus status = SecTrustSettingsCopyCertificates(kSecTrustSettingsDomainSystem, &cfCerts); + if (status == noErr ) { + const CFIndex size = CFArrayGetCount(cfCerts); + for (CFIndex i = 0; i < size; ++i) { + SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i); + QCFType derData = SecCertificateCopyData(cfCert); + if (derData == NULL) { + qWarning("error retrieving a CA certificate from the system store"); + } else { + systemCerts << QSslCertificate(QByteArray::fromCFData(derData), QSsl::Der); } - CFRelease(cfCerts); - } - else { - // no detailed error handling here - qCWarning(lcSsl, "could not retrieve system CA certificates"); } } #elif defined(Q_OS_WIN) diff --git a/src/network/ssl/qsslsocket_p.h b/src/network/ssl/qsslsocket_p.h index d651971..17cc7b4 100644 --- a/src/network/ssl/qsslsocket_p.h +++ b/src/network/ssl/qsslsocket_p.h @@ -151,11 +151,7 @@ public: static bool isMatchingHostname(const QSslCertificate &cert, const QString &peerName); Q_AUTOTEST_EXPORT static bool isMatchingHostname(const QString &cn, const QString &hostname); -#if defined(Q_OS_MACX) - static PtrSecCertificateCopyData ptrSecCertificateCopyData; - static PtrSecTrustSettingsCopyCertificates ptrSecTrustSettingsCopyCertificates; - static PtrSecTrustCopyAnchorCertificates ptrSecTrustCopyAnchorCertificates; -#elif defined(Q_OS_WIN) && !defined(Q_OS_WINRT) +#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) static PtrCertOpenSystemStoreW ptrCertOpenSystemStoreW; static PtrCertFindCertificateInStore ptrCertFindCertificateInStore; static PtrCertCloseStore ptrCertCloseStore; desktop-2.6.2/admin/qt/patches/qtbase/0003-QSslSocket-evaluate-CAs-in-all-keychain-categories.patch000066400000000000000000000246671360037132600326260ustar00rootroot00000000000000From 9d1120db0973ea7741b13a6555b20ae61f6d037e Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Wed, 25 Nov 2015 12:37:27 +0100 Subject: [PATCH] QSslSocket: evaluate CAs in all keychain categories This will make sure that certs in the domainUser (login), and domainAdmin (per machine) keychain are being picked up in systemCaCertificates() in addition to the (usually immutable) DomainSystem keychain. Also consider the trust settings on OS X: If a certificate is either fully trusted or trusted for the purpose of SSL, it will be accepted. [ChangeLog][Platform Specific Changes] OS X now accepts trusted certificates from the login and system keychains. (Backport of fe3a84138e266c425f11353f7d8dc28a588af89e) Task-number: QTBUG-32898 Change-Id: Ia23083d5af74388eeee31ba07239735cbbe64368 Reviewed-by: Markus Goetz (Woboq GmbH) --- src/network/ssl/qsslsocket.cpp | 4 + src/network/ssl/qsslsocket_mac_shared.cpp | 148 ++++++++++++++++++++++++++++++ src/network/ssl/qsslsocket_openssl.cpp | 30 +----- src/network/ssl/ssl.pri | 4 +- 4 files changed, 158 insertions(+), 28 deletions(-) create mode 100644 src/network/ssl/qsslsocket_mac_shared.cpp diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp index 549906a..7b202b0 100644 --- a/src/network/ssl/qsslsocket.cpp +++ b/src/network/ssl/qsslsocket.cpp @@ -1508,6 +1508,10 @@ QList QSslSocket::defaultCaCertificates() returned by defaultCaCertificates(). You can replace that database with your own with setDefaultCaCertificates(). + \note: On OS X, only certificates that are either trusted for all + purposes or trusted for the purpose of SSL in the keychain will be + returned. + \sa caCertificates(), defaultCaCertificates(), setDefaultCaCertificates() */ QList QSslSocket::systemCaCertificates() diff --git a/src/network/ssl/qsslsocket_mac_shared.cpp b/src/network/ssl/qsslsocket_mac_shared.cpp new file mode 100644 index 0000000..60fea4c --- /dev/null +++ b/src/network/ssl/qsslsocket_mac_shared.cpp @@ -0,0 +1,148 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Copyright (C) 2015 ownCloud Inc +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtNetwork module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL21$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//#define QSSLSOCKET_DEBUG +//#define QT_DECRYPT_SSL_TRAFFIC + +#include "qsslsocket.h" + +#ifndef QT_NO_OPENSSL +# include "qsslsocket_openssl_p.h" +# include "qsslsocket_openssl_symbols_p.h" +#endif + +#include "qsslcertificate_p.h" + +#ifdef Q_OS_DARWIN +# include +#endif + +#include + +#ifdef Q_OS_OSX +# include +#endif + + +QT_BEGIN_NAMESPACE + +#ifdef Q_OS_OSX +namespace { + +bool hasTrustedSslServerPolicy(SecPolicyRef policy, CFDictionaryRef props) { + QCFType policyProps = SecPolicyCopyProperties(policy); + // only accept certificates with policies for SSL server validation for now + if (CFEqual(CFDictionaryGetValue(policyProps, kSecPolicyOid), kSecPolicyAppleSSL)) { + CFBooleanRef policyClient; + if (CFDictionaryGetValueIfPresent(policyProps, kSecPolicyClient, reinterpret_cast(&policyClient)) && + CFEqual(policyClient, kCFBooleanTrue)) { + return false; // no client certs + } + if (!CFDictionaryContainsKey(props, kSecTrustSettingsResult)) { + // as per the docs, no trust settings result implies full trust + return true; + } + CFNumberRef number = static_cast(CFDictionaryGetValue(props, kSecTrustSettingsResult)); + SecTrustSettingsResult settingsResult; + CFNumberGetValue(number, kCFNumberSInt32Type, &settingsResult); + switch (settingsResult) { + case kSecTrustSettingsResultTrustRoot: + case kSecTrustSettingsResultTrustAsRoot: + return true; + default: + return false; + } + } + return false; +} + +bool isCaCertificateTrusted(SecCertificateRef cfCert, int domain) +{ + QCFType cfTrustSettings; + OSStatus status = SecTrustSettingsCopyTrustSettings(cfCert, domain, &cfTrustSettings); + if (status == noErr) { + CFIndex size = CFArrayGetCount(cfTrustSettings); + // if empty, trust for everything (as per the Security Framework documentation) + if (size == 0) { + return true; + } else { + for (CFIndex i = 0; i < size; ++i) { + CFDictionaryRef props = static_cast(CFArrayGetValueAtIndex(cfTrustSettings, i)); + if (CFDictionaryContainsKey(props, kSecTrustSettingsPolicy)) { + if (hasTrustedSslServerPolicy((SecPolicyRef)CFDictionaryGetValue(props, kSecTrustSettingsPolicy), props)) + return true; + } + } + } + } else { + qWarning("Error receiving trust for a CA certificate"); + } + return false; +} + +} // anon namespace +#endif // Q_OS_OSX + +QList QSslSocketPrivate::systemCaCertificates() +{ + ensureInitialized(); + + QList systemCerts; + // SecTrustSettingsCopyCertificates is not defined on iOS. +#ifdef Q_OS_OSX + QCFType cfCerts; + // iterate through all enum members, order: + // kSecTrustSettingsDomainUser, kSecTrustSettingsDomainAdmin, kSecTrustSettingsDomainSystem + for (int dom = kSecTrustSettingsDomainUser; dom <= kSecTrustSettingsDomainSystem; dom++) { + OSStatus status = SecTrustSettingsCopyCertificates(dom, &cfCerts); + if (status == noErr) { + const CFIndex size = CFArrayGetCount(cfCerts); + for (CFIndex i = 0; i < size; ++i) { + SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i); + QCFType derData = SecCertificateCopyData(cfCert); + if (::isCaCertificateTrusted(cfCert, dom)) { + if (derData == NULL) { + qWarning("Error retrieving a CA certificate from the system store"); + } else { + systemCerts << QSslCertificate(QByteArray::fromCFData(derData), QSsl::Der); + } + } + } + } + } +#endif + return systemCerts; +} + +QT_END_NAMESPACE diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 415f147..7a3cb42 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -76,14 +76,6 @@ #include -#ifdef Q_OS_DARWIN -# include -#endif - -#ifdef Q_OS_OSX -# include -#endif - QT_BEGIN_NAMESPACE #if defined(Q_OS_WIN) @@ -672,6 +664,7 @@ void QSslSocketPrivate::resetDefaultEllipticCurves() setDefaultSupportedEllipticCurves(curves); } +#ifndef Q_OS_DARWIN // Apple implementation in qsslsocket_mac_shared.cpp QList QSslSocketPrivate::systemCaCertificates() { ensureInitialized(); @@ -680,25 +673,7 @@ QList QSslSocketPrivate::systemCaCertificates() timer.start(); #endif QList systemCerts; - // note: also check implementation in openssl_mac.cpp -#if defined(Q_OS_OSX) - // SecTrustSettingsCopyCertificates is not defined on iOS. - QCFType cfCerts; - - OSStatus status = SecTrustSettingsCopyCertificates(kSecTrustSettingsDomainSystem, &cfCerts); - if (status == noErr ) { - const CFIndex size = CFArrayGetCount(cfCerts); - for (CFIndex i = 0; i < size; ++i) { - SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i); - QCFType derData = SecCertificateCopyData(cfCert); - if (derData == NULL) { - qWarning("error retrieving a CA certificate from the system store"); - } else { - systemCerts << QSslCertificate(QByteArray::fromCFData(derData), QSsl::Der); - } - } - } -#elif defined(Q_OS_WIN) +#if defined(Q_OS_WIN) if (ptrCertOpenSystemStoreW && ptrCertFindCertificateInStore && ptrCertCloseStore) { HCERTSTORE hSystemStore; #if defined(Q_OS_WINCE) @@ -775,6 +750,7 @@ QList QSslSocketPrivate::systemCaCertificates() return systemCerts; } +#endif // Q_OS_DARWIN void QSslSocketBackendPrivate::startClientEncryption() { diff --git a/src/network/ssl/ssl.pri b/src/network/ssl/ssl.pri index 29c47cd..8eb605b 100644 --- a/src/network/ssl/ssl.pri +++ b/src/network/ssl/ssl.pri @@ -62,7 +62,9 @@ contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) { ssl/qsslsocket_openssl.cpp \ ssl/qsslsocket_openssl_symbols.cpp -android:!android-no-sdk: SOURCES += ssl/qsslsocket_openssl_android.cpp + darwin:SOURCES += ssl/qsslsocket_mac_shared.cpp + + android:!android-no-sdk: SOURCES += ssl/qsslsocket_openssl_android.cpp # Add optional SSL libs # Static linking of OpenSSL with msvc: desktop-2.6.2/admin/win/000077500000000000000000000000001360037132600150605ustar00rootroot00000000000000desktop-2.6.2/admin/win/Toolchain-mingw32-openSUSE.cmake000066400000000000000000000022131360037132600227230ustar00rootroot00000000000000SET(MINGW_PREFIX "i686-w64-mingw32") # this one is important SET(CMAKE_SYSTEM_NAME Windows) # specify the cross compiler SET(CMAKE_C_COMPILER ${MINGW_PREFIX}-gcc) SET(CMAKE_CXX_COMPILER ${MINGW_PREFIX}-g++) SET(CMAKE_RC_COMPILER ${MINGW_PREFIX}-windres) # where is the target environment containing libraries SET(CMAKE_FIND_ROOT_PATH /usr/${MINGW_PREFIX}/sys-root/mingw) SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) ## configure qt variables # generic SET(QMAKESPEC win32-g++-cross) # dirs SET(QT_LIBRARY_DIR /usr/${MINGW_PREFIX}/bin) SET(QT_PLUGINS_DIR ${CMAKE_FIND_ROOT_PATH}/lib/qt5/plugins) SET(QT_MKSPECS_DIR ${CMAKE_FIND_ROOT_PATH}/share/qt5/mkspecs) SET(QT_QT_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/include) # qt tools SET(QT_QMAKE_EXECUTABLE ${MINGW_PREFIX}-qmake-qt5) SET(QT_MOC_EXECUTABLE ${MINGW_PREFIX}-moc-qt5) SET(QT_RCC_EXECUTABLE ${MINGW_PREFIX}-rcc-qt5) SET(Qt5Widgets_UIC_EXECUTABLE ${MINGW_PREFIX}-uic-qt5) SET(QT_LRELEASE_EXECUTABLE ${MINGW_PREFIX}-lrelease-qt5) desktop-2.6.2/admin/win/create_stable_toolchain.sh000077500000000000000000000013651360037132600222610ustar00rootroot00000000000000#!/bin/bash # # This script creates a new windows toolchain repository in OBS. # It only works for versions that do not yet exist. # # Make sure to adopt the variable stableversion. # Set the new stable version accordingly: stableversion=2.1 targetproject="isv:ownCloud:toolchains:mingw:win32:${stableversion}" # Create the new repo # get the xml build description of the stable repo xml=`osc meta prj isv:ownCloud:toolchains:mingw:win32:stable` stable_xml="${xml/stable/$stableversion}" echo $stable_xml echo $stable_xml | osc meta prj -F - ${targetproject} # now copy all packages packs=`osc ls isv:ownCloud:toolchains:mingw:win32:stable` for pack in $packs do osc copypac isv:ownCloud:toolchains:mingw:win32:stable $pack $targetproject done desktop-2.6.2/admin/win/docker/000077500000000000000000000000001360037132600163275ustar00rootroot00000000000000desktop-2.6.2/admin/win/docker/Dockerfile000066400000000000000000000033001360037132600203150ustar00rootroot00000000000000FROM opensuse:42.1 ENV TERM ansi ENV HOME /root ENV REFRESHED_AT 20170113 RUN zypper --non-interactive --gpg-auto-import-keys refresh RUN zypper --non-interactive --gpg-auto-import-keys ar http://download.opensuse.org/repositories/windows:/mingw/openSUSE_Leap_42.1/windows:mingw.repo RUN zypper --non-interactive --gpg-auto-import-keys ar http://download.opensuse.org/repositories/isv:ownCloud:toolchains:mingw:win32:2.3/openSUSE_Leap_42.1/isv:ownCloud:toolchains:mingw:win32:2.3.repo RUN zypper --non-interactive --gpg-auto-import-keys install cmake make mingw32-cross-binutils mingw32-cross-cpp mingw32-cross-gcc \ mingw32-cross-gcc-c++ mingw32-cross-pkg-config mingw32-filesystem \ mingw32-headers mingw32-runtime site-config mingw32-libwebp mingw32-libssp0 \ mingw32-cross-libqt5-qmake mingw32-cross-libqt5-qttools mingw32-libqt5* \ mingw32-qt5keychain* mingw32-angleproject* \ mingw32-cross-nsis mingw32-libopenssl* \ mingw32-sqlite* png2ico \ osslsigncode wget # RPM depends on curl for installs from HTTP RUN zypper --non-interactive --gpg-auto-import-keys install curl # sudo needed for building as user RUN zypper --non-interactive --gpg-auto-import-keys install sudo # Use packaged UAC dependencies RUN zypper --non-interactive --gpg-auto-import-keys install mingw32-cross-nsis-plugin-uac mingw32-cross-nsis-plugin-nsprocess # Required for checksumming RUN zypper --non-interactive --gpg-auto-import-keys install mingw32-zlib-devel # Required for windres not to crash RUN zypper --non-interactive --gpg-auto-import-keys install glibc-locale CMD /bin/bash desktop-2.6.2/admin/win/docker/build.sh000077500000000000000000000006331360037132600177670ustar00rootroot00000000000000#!/bin/bash if [ $# -lt 1 ]; then echo "Usage: $(basename $0) directory_relative_to_home [uid]" exit fi useradd user -u ${2:-1000} su - user << EOF cd /home/user/$1 rm -rf build-win32 mkdir build-win32 cd build-win32 ../admin/win/download_runtimes.sh cmake .. -DCMAKE_TOOLCHAIN_FILE=../admin/win/Toolchain-mingw32-openSUSE.cmake -DWITH_CRASHREPORTER=ON make -j4 make package ctest . EOF desktop-2.6.2/admin/win/download_runtimes.sh000077500000000000000000000006011360037132600211510ustar00rootroot00000000000000#!/bin/sh -x #VS2013 base_url=http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3 tmp_path=${1:-/tmp/.vcredist} mkdir -p $tmp_path copy_cached_file() { file=$1 if [ ! -e $tmp_path/$file ]; then wget -O $tmp_path/$file $base_url/$file fi cp -a $tmp_path/$file $PWD } copy_cached_file "vcredist_x64.exe" copy_cached_file "vcredist_x86.exe" desktop-2.6.2/admin/win/nsi/000077500000000000000000000000001360037132600156515ustar00rootroot00000000000000desktop-2.6.2/admin/win/nsi/.directory000066400000000000000000000000711360037132600176540ustar00rootroot00000000000000[Dolphin] PreviewsShown=true Timestamp=2012,4,1,13,48,38 desktop-2.6.2/admin/win/nsi/README.md000066400000000000000000000016131360037132600171310ustar00rootroot00000000000000# Windows Installer Translations ## Introduction Translations on transifex: http://www.transifex.com/projects/p/owncloud/resource/client-nsis/ Daily sync job: https://ci.owncloud.org/view/translation-sync/job/translation-sync-client-nsis/ ## How to add a new translation string? 0. Add the string to the pofiles/messages.pot manually. This step is necessary for the upload of strings to be translated to transifex 1. Run bin/l10n.sh to properly generate declarations.nsh and English.nsh 2. If you want to test your installer right away you need to add the new string at least to l10n/English.nsh ## How to add a new language? 0. Add the new language to l10n/.tx/config which holds the explicit list of languages to be downloaded from transifex on each translation sync run. 1. Add the new language to l10n/languages.nsh 2. In NSIS.template.in the language has to be added in the macro SETLANG. desktop-2.6.2/admin/win/nsi/RELEASE_NOTES.txt000066400000000000000000000000001360037132600204300ustar00rootroot00000000000000desktop-2.6.2/admin/win/nsi/installer.ico000066400000000000000000007736301360037132600203620ustar00rootroot00000000000000  h   00 %.@@ (BD ( HP& n l|(    ʆɃsɂˈ ˈ ˇ ͋ẘɂɂbɂɂˇ ̈ ˇ ̉͌ˈ ˇ cɂɂɂɂɂɂˇ ˇ ˇ ˇ ɂˇ ˇ ̊ɂɂbɂɂɂˇ ˇ ˇ ̈ ɂɂˇ ͌ˇ ͌gɂɂɂɂɂɂɂɂɂɂˆʄˇ ̉ˇ ̊ɂsɂɂɂɂɃƒć̈ ΍ɂʄ̊ʅtɂ͌ԧpu۫SکP{wթϐˈ ɂ}z۫TɂɂکOyƒ͋ɂ}y۫TɂɂکOyƒˈ ɂ͌ԨrzڪRکPyqԨ͌ɄɃtɂɂɂʄ̊ÄĆʃɂɂɂɂɂrɂˇ ɂɂˇ ɂɂɂɂɂɂɂɂɂɂ̊ˈ eˇ ɂˇ ɂˇ ɂɂɂɂɂɂɂɂaɂ͌̈ ̉ʅˇ ɂɂɂɂɂɂɂɂɂ̉gˈ ͊̉̈ ̈ ˇ ɂˇ ɂbɂɂɂsʅʅʅɂɂsɂ(0   ͍ ɂ9ɂlɂˈ ˈ ˇ ʅnˈ ;͍ ɂɂjɂɂɂɂ΍΍ɂʄ͍͍͊oɂɂɂɂɂɂˇ ̉Ϗ΍͋̉ϏΎ΍̉̉!ɂQɂɂɂɂɂʅˇ ͊͊̉ʄɂɂ͊ˇ ˇ ΍Vɂɂɂɂɂɂʄʄʅˇ ˇ ʅɂɂɂˇ ˇ ʅˈ ͍!ɂɂɂɂɂɂɂ͋ˇ ˇ ͋Ύɂɂɂɂ͌͌̉͋В"ɂɂjɂɂɂɂɂɂɂɂɂɂɂɂɂɂΎɂ̊̈ ϐΎ͍oɂ ɂɂɂɂɂɂɂɂɂףC|}ؤFɂɂ͌В Ƀɂɂ΍ɂ͍ ɂ:ɂɂɂɂɂɂɂʄ޻ʅˇ ͋ɂɂˆ ̊ɂɄ:ɂmɂʅݱ`ߵhɂƒ޲bݱ_Ɗ̉tߵhΏɂʅnɂɂlƋɂɂɂɂɑk΍ˇ ɂɂʅΎ޳dɂɂɂɂݰ]Ύʆ Б̉ɂɂʅΎ޳dɂɂɂɂݰ]Ύʆ ̊ˆ ɂɂlΛɂɂɂɂʒoʅʄɂmɂʅ޲aߵhɂƒ޲aݰ^Ɗɂߴg޲bʅɂʆ nɂ:ɂɂɂɂɂɂʄˆ ޻ʅɂɂɂɂɂɂɂɂ9ɂ ɂɂɂɂɂɂ͋̉ʃףC}~إGɂɂɂɂɂɂɂɂ͍͋ ɂj΍ɂɂɂ΍ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃjɂ͍͌ɂɂ͌ɂɂʅ̉ɂɂɂɂɂɂɂɂɂɂɂɂ̉!͋ˆʅ̈ ˇ ɂʃˆ ɂɂɂɂɂɂɂɂɂɂɂ΍Vˇ ˆ̈ ̈ ʃʄˆ ɂɂɂɂɂɂɂɂɂɂQ͌#̉Ύ΍Ϗ̉̊΍΍̊ʅɂɂ΍ɂɂɂɂkɂɂʅ̊΍΍ɂɂɂɂɂjɂɂ ɂ:ɂmɂɂɂɂɂmɂ:ɂ ( @   ɂɂ/ɂ~ɂʆ ̉͋ɃΎʅΎ2ɂɂ ɂ|ɂɂɂɂ̉΍ϑʅɂˆ ϏΏˆ ѕ' ɂɂgɂɂɂɂɂɂɂʄʅɂɂɂˆʄɂʅɂgɂɂ ɂɂɂɂɂɂɃі(͋ϑГ#ʅҖ)͋Ҙ,В ̈ Җ)ʅГ$Г$ɂɂɂɂɂɂɂɂɂˆɃʅˆɂˆɂɂɂɂˆɂˆˇ ʆɂ ɂɂɂɂɂɂɂɂɃВ ̈ ͌ϏʅВ!ɂɂɂɂВ!ʅϏϐ͍ӛ3ɂɂɂɂɂɂɂɂɂΎʄϏˇ ͊ϏʅɂɂɂɂɂϏ̈ є%̊̈ җ*ɂɂgɂɂɂɂɂɂɂɂ̈ ɂ̉ʄˆ ̉Ƀɂɂɂɂɂ̉ʅΎˆ ʄϏʄhɂ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂϐˇ ɂʅГ"В Ύѕ&ʄѕ' ɂ}ɂɂɂɂɂɂɂɂɂɂɂɂɂʅʅɂɂɂɂʄɂˆ ɂɃʃɂʄɂɃ}ɂɂɂɂɂɂɂɂɂɂɂɂˆx~ˇ ɂϐ̈ ՝7ʃɂɂɂѕ&Ƀɂɂɂ/ɂɂɂɂɂɂɂɂɂɂϏВ ̈ ʄϐɂɂˇ ʅΎɃɂˇ 0ɂ~ɂɂɂ٧K׮ܮYɂˇ ͚۬U۫S˕БˆpدڪRВ!ʄɂˇ ɂɂɂk߶jmإHɂɂɂɂס@wk߶jʃБ̉ɂɂ͌wΜɂɂɂɂɂɂʓw͌ˆ Ƀɂɂ٧LГ#ɂ̈ ܮYɂɂɂɂɂɂکÖ ɂ՞9ڪRԜ5͌ɂɂ٧LГ#ɂ̈ ܮYɂɂɂɂɂɂکÖ ɂѕ(٧Kˆ Ƀɂɂ͌wΜɂɂɂɂɂɂʓwΎБ̊ɂɂɂkszإHɂɂɂɂס@vkkɂɂˇ ɂ~ɂɂɂ٧KدܮYɂˇ ͙۫T۫S˕̉ɂܮYد٧Kɂɂɂʅɂ/ɂɂɂɂɂɂɂɂɂɂϐВ ɂɂɂɂɂɂɂɂɂɂɂ.ɂɂɂɂɂɂɂɂɂ͊ΎГ#̉y~ˇ ɂɂɂɂɂɂɂɂɂɂɃɂɂ}ɂʅɂɂɂɂʅɂɂɂɂɂɂʅʅɂɂɂɂɂɂɂɂɂɂɂɂʃє&ɂ ɄБɂɂɂɃГ"ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ ʅi͌̈ ˇ ɂɂ΍ɂɂɂɂΎɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂgɂ̊ˇ ˆɂɂ͊ɂɂɂɂ͋ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂВ"Д$Бѕ'ʅє%̊΍ɂɂѕ&ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ ̊ʆʅɂʄɂʃʄɂʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂВ"Ҙ.ˆҗ+̊ΎӚ0̉і(ˇ ϑϑˇ і(ɂɂɂɂѕ'Ƀɂɂ ɂɂhɂɂɂɂɂ̈ ʃˇ ˇ Ƀɂɂɂɂɂɂɂgɂɂ ɂ}ɂɂɂϐˆ͌͌ˆɂɂɂɂɂ}ɂ ɂɂ0ɂ~ɂɂɂɂɂɂɂ~ɂ/ɂ??(0` $  ɂɂ*ɂhɂɂҘ-ʅ̊Г$ɂҘ.ˇ kϑ /ɂɂɂ;ɂɂɂɂɂɂɃɂɂɃɂɂɂɂɃɂɄ<ɂɂɂTɂɂɂɂɂɂɂɃעÄ ϐԛ3ɂɂɂ͌՞:ɂ՝8΍̊Xɂ>ɂɂɂɂɂɂɂɂɂɂ̈ ɂʃˇ ɂɂɂɂ̈ ɂ̈ ɂɂˈ ɂ>ɂ ɂɂɂɂɂɂɂɂɂˇ ̉Ƀҗ*ˇ ʅ͋ɂ΍ɃϏԛ4Ƀ΍ʄɃ΍ɂ͋ɂ ɂɂɂɂɂɂɂɂɂɂɂБѕ&ˆ ئIΎΎӘ-ɂ՝7̉ә.٧Kˆԛ4͌̉՝7ɂӘ-Ύі)ɂ7ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅɂɂɂɂɂɂɂɂɂ̊9ɂ7ɂɂɂɂɂɂɂɂɂɂɂɂБѕ&Ƀ՝8ˇ ΎӘ-ɂԜ6̉ɂɂɂɂɂ̉Ԝ6ɂӘ-ΎГ"٧LΎ;ɂɂɂɂɂɂɂɂɂɂɂɂɂɂˇ ̉ɂΎɂʅ͋ɂ΍ɃɂɂɂɂɂɃ΍ɂ͋ʅ̊Ԝ5ʆ՟<"ɂ ɂɂɂɂɂɂɂɂɂɂɂɂ̉ɂʄˆ ɂ̉ɂ̉Ύɂɂɂɂɂɂɂɂɂ̉ɂҗ+ϐɂ̉ɂѕ(Ҙ. ɂɂɂɂɂɂɂɂɂɂɂɂʄעBʅГ#җ+Ƀס@̈ ә.ؤEɂɂɂɂɂɂɂɂ̊֠=ˇ ٧L֠>ˇ עAʅ٧KפFɂ?ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃʅɂɂɂɂɂɂɂɂɂɂɂ͌̈ ɂɂɂ͋̉ɂ>ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂѕ'̉ɂɂɂГ#͋ΎؤF̈ ϑ΍ɃɂUɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂБˇ ɂɂɂϐ̈ ͋՟;ˆ Ύ͋Ƀѕ(^ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉͊ɂɂɂɂɂɂɂʄɂˇ ϑɂɂɂɂɂɂʄɃɂɂɂɂ<ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂۭWܷݺݱ_Ƀɂɂɂ՞9ΎҘ,٧L̊ɂɂɂɂɂҘ,є%ɂɂɂ;ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ՞9עBɂɂʅɂˆ ϐɂɂɂɂɂɂʄɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ֡?ئIɂϐˆ Ϗ֠=ʅɂɂʃГ"ɂӚ1җ*ɂɂɂɂɂ+ɂɂɂɂɂɃߴf֬֫֡?ɂɂɂԛ2Ӧspң֟<Җ)̉Г#uׯ׮Ʉ֠=Ԝ5ɂɂɂϑ /ɂiɂɂɂɂБ}ɂɂ֬͌ɂɂɂɂ̊ѢɂɂyБ ɂɂɂɂɂhɂɂɂɂʄ۬VעA׭ɂɂɂɂɂɂɂɂПکPۭWʄʅס@ʄГ$ɂɂɂɂyٲ΍ɂɂɂɂɂɂɂɂ̉ٲxɂ͊ɂʅɂɂɂɂБɂɂݰ^֬ɂɂɂɂɂɂɂɂɂɂϝݰ]ɂɂБ ˇ Ӛ0ˆ ˇ ɂɂɂʄ͙ɂɂɂʃyɂɂɂɂɂɂɂɂɂɂ߶jɃɂɂˇ ٱБ٧LΎГ#ɂɂɂʄ͙ɂɂɂʃyɂɂɂɂɂɂɂɂɂɂ߶jɃɂɂɂ͚ʄˇ ɂɂɂɂɂɂϑɂɂݰ^֬ɂɂɂɂɂɂɂɂɂɂϝݰ]ɂɂѕ'ʅ՝7ʄВ!ɂɂɂɂyٱ΍ɂɂɂɂɂɂɂɂ̉ٲ~ɂϏɂ̉ɂɂɂɂʄyq׭ɂɂɂɂɂɂɂɂПکPܭXʄɂɂɂɃɂiɂɂɂɂБ}ɂɂ֬͌ɂɂɂɂ̊ѡɂɂzБɂɂɂɂє&rɂ+ɂɂɂɂɂɃߴf׭֫ס@ɂɂɂԛ2ӥroѢ֟<ɂɂɂס@֬׭ߴfɃɂɂɂɂɂɂ*ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ֡?ئIɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅ̈ ɂ͋՞:עAɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ<ɂɂɂɂɂɂɂɂɂɂɂɂБҘ,ɂ֟<̈ ɂܭXܷ޻ݱ_Ƀɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄɂ;ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉͊ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅפFɂɂUɂє$Ύɂɂɂɂɂʄԛ2ʅɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʆVɂɂ͌̈ ɂɂɂɂɂɂБɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃ@ʅɃɂˆ ɂɂɂɂˆ ɂɂɂɂɂɂɂˆɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ>Ӛ1Г"ˆףDʄɂɂʄؤEˆɂɂɂɂɂϏԜ6ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ ɂɂʄɂɂɂɂʄɂɂɂɂɂɂɂʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ ΎΏإH͌ΎϏɃі(ʄ͋Ϗɂɂɂ̈ В ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂД%>٧KΎϏϐɃҗ*ʄ͋ϐɂɂɂ̉Г"ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ7В!=Ƀˆ ˇ ɂʄɂɂɃɂ΍ʄɂɃɂɃɂɂɃɂɃɂɂɂɂɂɂɂɃɂɂɂɂɂ6ϒ ՟;֠>ʅإG̉Г"ә.͋٧LҖ)ϏԜ6ɂ֠=͋͋֠=ɂԜ6Ϗɂɂɂɂɂˆ ףCʄɂɂɂ͍ ͌ɂ͋ʃʄˆʃѕ&̈ Ƀˇ ɂˇ ɂɂˇ ɂˇ ɂɂɂɂɂɂɂ̈ ɂɂɂ ɂ?ɂɂɂɂɂɂɂʅ΍ɂΎʄʄΎɂɂɂɂɂɂɂɂɂɂɂ>ɂɂUɂɂɂɂɂ͌Ә-ɂԛ2̉̉ԛ2ɂɂɂɂɂɂɂɂɂUɂɂɂ<ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ<ɂɂɂ+ɂiɂɂɂɂɂɂɂɂɂiɂ+ɂ????(@ @  ɂ!ɂCɂ]ɂwԜ6إIɃΎ٧KϑɄxإHq֢ARɂ!ɂɂ6ɂɂɂɂɂɂɂʃɂɂɂɂɂʄɂɂɂʅɂ6ɂɂ=ɂɂɂɂɂɂɂɂɂ͊ϑɂʄГ"ʅɂɂɂɂˇ В!ɃɂГ$̉?ɂ-ɂɂɂɂɂɂɂɂɂɂɂ֟<٧LʅБ٧Lє$ɂɂɂɂә/٧L͌͋٧LӚ1ɂئI;ɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͊ϐɂʄГ"ʅɂɂɂɂˇ В!ɃɂВ!̈ ɂ͋ϐɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃɂɂɃʅɂɂɃɂɂɂɂɂʅ΍ɂɂʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˇ إHҖ)ɂ֠=٦Jˆ ΍٦JϏɃףC՝7ɂס@٧Lє$̈ ٦Jҗ+ɂ՝7עBɃϏ٧Lϑɂ0ɂɂɂɂɂɂɂɂɂɂɂɂɂˆףDє%ɂ՝8إGʅ͌ؤE΍ɂ֠>Ӛ1ɂ՞:٧LБˇ ؤFѕ&ɂӚ1֠>ɂ΍ؤE͋͌2ɂRɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃɂɂɂɂɂɂɂɂɂ̈ ɂɂɂɂɂɂɂɂɂɂɂɂˇ TɂrɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃҖ)͋ɂΎѕ&ɂˆҗ+ˇ ɂГ#ϏɂɂɂɂɂɂɂɂϏГ#ɂˇ җ+ˆˆ֠=՞9ɂRɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉٧Lԛ3ɂ֟<٧LʅБ٧LГ#ʃ٧Kס@ɂɂɂɂɂɂɂɂס@٧KʃГ#٧LБϏ٧L٧L̊Uɂ0ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂΎˆɂˇ ͌ɂʃΎʄɂ͋̈ ɂɂɂɂɂɂɂɂ̈ ͋ɂʄΎʃʃҗ+Г"ɂҘ.7ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˇ ɂɂˇ ɂɂʃˆɂɃ͋Ƀɂɂɂɂɂɂɂɂɂɂɂʄʅɂ̉Җ)̈ ɂʅʄɂ͍՝8ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂҖ)٧L͋̈ ٧LӚ0ɂ՞9٦Jʅє%٧LҖ)ɂɂɂɂɂɂɂɂɂɂɂ֠>إHʃ֡?٧L՞:ʄئI֟<ʄ٦J٧M٧L ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ΍՞9ˆ ʄ՝8ϐɂГ#Ԝ5ɂ͌עBΎɂɂɂɂɂɂɂɂɂɂɂѕ'ԛ2ɂԛ2٧LӘ-ɂԛ3є%ɂעA٧LВ!ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̈ ɂɂɂɂɂɃˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄԛ3΍ɂɂɂɂ̉ԛ4̈ ʅעB՝7ɂΎԛ2ʄʅɂ.ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̊٧LӚ0ɂɂɂɂГ"٧Lϑ͋٧LئIʄԛ2٧L̉͌۬V>ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉ʄɂɂɂɂɂ̊ɂɂϏ͊ɂʄ̉ɂɂ̊ɂ=ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂϏϑɂɂɂɂɂɂɂɂɂɂ͋ʄɂВ ѕ'Ƀɂɂɂɂɂɂɂʅ͋ɂɂɂɂ<ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ՝7͘ΜעAɂɂɂɂɂ͊٧LӚ0ˇ ٧L٧L΍ɂɂɂɂɂɂɂԛ2٧L̉ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂГ#ժ۶Ә-ɂɂɂʄә/͌ɂ՝7֡?ʅɂɂɂɂɂɂɂ΍ә/ʃɂɂɂɂɂ7ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂwňɂɂɂɂɂɂʃʅɂɂɂɂɂɂɂɂɂʅɂɂɂɂɂ6ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂoƒɂʅ֠>БʃؤF٦J̈ ɂɂɂɂ՞:җ+ɂ՞9٧K΍ɂɂɂɂɂɂɂɂɂɂɂɂ̈ ޳d͙ݹÅϏɂɂɂɂɂݱ_ɑǍs̈ ٧Kҗ+ʅ٧Kݰ^Ǎݹ͚ȏףBɂעB٧Lϑɂɂɂɂɂ!ɂɂɂɂɂɂɂעAʼnɃɂɂҖ)rʃɂɂɂɂɂ޴e՝8ʄɂɃǎס@ˆ ΍ɂɂɂɂɂɂ!ɂDɂɂɂɂɂɂw׭ʅɂϞѕ'ɂɂɂɂɂɂɂɂϑٱɂʅ֬wɂɂɂϐˆɂ͌Gɂ^ɂɂɂɂɂ՝7ćϏҖ)ɂɂɂɂɂɂɂɂɂɂϐҗ*ÄԜ6ɂ΍٧LҘ,ɂףDpɂxɂɂɂɂˆٱvɂɂɂɂɂɂɂɂɂɂɂɂݱ`ˆʄѕ'̈ ɂϏ~ɂɂɂɂɂئI՞9ɂɂΎ߽ʅɂɂɂɂɂɂɂɂɂɂɂɂɂ߽Ύɂɂ՞9إHɂ̉Ƀɂɂɂɂɂɂɂ}ؤFɂɂɂɂ͋ɂɂɂɂɂɂɂɂɂɂɂɂɂɂܷ͋ɂɂɂɃwВ ٧L՝8ɂ՟<ɂɂɂɂɂٱɃɂɂɂɂɂد͙ɂɂɂɂɂɂɂɂɂɂɂɂɂɂÄدɂɂɂɂɃףBڳВ!٧L՝7ɂՠ=ɂɂɂɂɂٱɂɂɂɂɂɂد͙ɂɂɂɂɂɂɂɂɂɂɂɂɂɂÄدɂɂɂɂɂɃٱɂ̉Ƀɂɂɂɂɂɂɂ~ؤEɂɂɂɂ͋ɂɂɂɂɂɂɂɂɂɂɂɂɂɂܷ͋ɂɂɂɂݱ`~ʃѕ'̈ ɂϐɂɂɂɂɂ٦J՝8ɂɂΎ߽ʅɂɂɂɂɂɂɂɂɂɂɂɂɂ߽Ύɂɂ֟<۫T΍٧LҘ,ɂפEɂxɂɂɂɂˆuɂɂɂɂɂɂɂɂɂɂɂɂݱ`ˆɂϏʅɂ͌|ɂ^ɂɂɂɂɂ՝8թݰ_Җ)ɂɂɂɂɂɂɂɂɂɂϐҗ*Ä՝7ɂɂɂɂɂɃ^ɂDɂɂɂɂɂɂxد͌΍Ϟѕ&ɂɂɂɂɂɂɂɂϑٱɂʅ׭xɂɂɂɂɂɂףCSɂ!ɂɂɂɂɂɂɂעAƊɃɂɂҖ)qʃɂɂɂɂɂ޳d՝8ɂɂɃňעAɂɂɂɂɂɂɂ՟<*ɂɂɂɂɂɂɂɂ̈ ޴e͚ݺĆϏɂɂɂɂɂݱ_ɐnjsɂɂɂɂɂϏÅݺ͚޴ë ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂoƒɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ7ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂwʼnɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ6ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂӚ0֡?ɂ͌ؤE΍є$ܷ֫Ә-ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂԜ5ףDʃ΍٦JϏɂɂ՝7͘ϝעAɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̊Ƀɂ=ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂϐБɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͌٧LԜ5GɂɂʄГ"ˆɂɂɂɂɂɂɂɂВ ̈ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅԜ6ɂ.ɂϑ٧Lѕ&ɂɂɂɂɂɂɂ̊٧Lԛ3ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ-ɂʄГ"ˆɂɂɂɂɂɂɂɂВ ̈ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʃɂɂɃɂɂɂɂɂɂʃɂɂɂɂɂɂɂɂɂɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂΎ٧KϑɂףC՟;ɂɂɂɂˇ ئIҗ+ɂɂɂɂɂɂɂɃףD՞9ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂϑףE΍ɂ՞:Ӛ1ɂɂɂɂʅעAГ"ɂɂɂɂɂɂɂɂ՟;ә.ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͋3ˇ ףC֡?ʄ͌ԛ3ˆʃҘ,͌ɂϐѕ'ɂɂɂɂɂѕ&ϐɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ/Г$\٧L٧L͌ԛ2٧LϏ̉٧Lԛ2ɂ֠>٧Kʄɂɂɂʃ٧Kס@ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂR՝8ә.ɂˆϐɃɂ͌ʅɂˇ ͊ɂɂɂɂɂ͊ˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂrϑYɂʅΎɃɂ͊ʄɂʄʅɂʅВ!ˆ ɂʅʄɂɂˇ ɂɂˇ ɂɂʄʅɂɂɂɂɂɂɂɂɂˇ ɂɂɂɂɂɂQ̉2Ԝ6٧LВ!͋٧LԜ6ɂ֟<ئIʄԛ2٧L՝7ʃإH֠=ɂә.٧L̉̉٧Lә.ɂ֠>إHʃɂɂɂɂɂɂɂӚ0٧L̈ ɂɂɂɂ/Ҙ-פF͊ʅ՟;В ɂѕ&ԛ3ɂГ#٧Kѕ&ɂԛ2ѕ'ɂϏ՝8ʅʅ՝8Ϗɂѕ'ԛ2ɂɂɂɂɂɂɂɂϐ՝8ʄɂɂɂɂɂɂɂɂɂɂɂɂɂʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂә/є$ɂΎԜ5ʄʄԜ6Ύɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ.ɂɂɂɂɂɂɂʃئI֠>ɂә/٧L̉̉٧Lә.ɂɂɂɂɂɂɂɂɂɂɂɂ-ɂ=ɂɂɂɂɂɂˆ ʄɂɃ̈ ɂɂ̈ Ƀɂɂɂɂɂɂɂɂɂɂ=ɂɂ7ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ7ɂɂ!ɂDɂ^ɂxɂɂɂɂɂɂɂxɂ^ɂDɂ!??(   ɂɂ'ɂK֠=l۬W۬V۬V͌ɂɂ٧K۬V۬V۬Vʆ]ɂKϐ+޻ɂɂ*ɂcɂɂɂɂɂɂ̉ؤE٧LԜ6ɂɂɂϏؤFئIє%ɂɂɂԜ6۫U۫UГ$ɂcɂ*ɂɂ#ɂeɂɂɂɂɂɂɂɂɂɂɂɂˇ ɂɂɂɂɂɃʄɂɂɂɂɂ̉ʅɂɂɂɂɂϑlˈ %ɂɂɂ1ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ1ɂɂɂvɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃɂɂɂɂɂɂuʆ ɂɂFɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˇ ՟;ئIҗ*ɂɂɂ΍עBؤEϐɂɂɂɂɂɂɂɂɂɂә.٦J՞:ˆ ɂɂʅ՝7ئJ՞:ɂFɂɂɂOɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂҘ,٧L٧L٧L̉ɂɂ֠>٧L٧LؤFɃɂɂɂɂɂɂɂɂ͋٧L٧L٧LҖ)ɂɂГ#٧L٧L٧L΍ɂɂOժɂɂXɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂҘ,٧L٧L٧L̉ɂɂ֠>٧L٧LؤFɃɂɂɂɂɂɂɂɂ͊٧L٧L٧LҖ)ɂɂГ#٧L٧L٧L΍ɂɂ՟<ܯ\tٲ ɂ=ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˇ ՟;ئIҗ*ɂɂɂ΍עBؤEϐɂɂɂɂɂɂɂɂɂɂӘ-٦J՞:ˆ ɂɂʅ՝7٦JӚ1ɂɂɂ̊֡?٨Mԝ7IɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃɂɂɂɂɂɂɃɂɂɂɂɂɂɃɂɂɂɂɂiɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂiɂɂ"ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅɂɂɂɂɂˆ΍ɂɂɂɂɂʃʄɂɂɂɂɂʅɂɂɂɂɃϐ՝8є%ʅɂɂɂɂ̈ ɂɂɂɂɂɂʅɂɂɂɂɂʅ"ɂRɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅ֠=٧L՞:ʃɂɂϐ٧K٧LףCʄɂɂϏإGئIВ!ɂɂɂҗ*٧KףD͋ɂɂє%٧L٧L٧L՞:ɂɂˇ עB٧L֠>ʃɂɂ͌ؤE٦Jі(ɂɂɂВ ٧LܭYlɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂГ"٧L٧L٧Lϐɂɂ֡?٧L٧L٧LВ ɂɂעA٧L٧LإGʃɂˆ٧K٧L٧L՝8ɂɂעB٧L٧L٧L٧L̈ ɂҗ+٧L٧L٧Lϑɂɂ՝8٧L٧L٧KˆɂʃإG٧L٧L٧Mɂɂ#ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂϐ٧L٧L٧LΎɂɂ՞:٧L٧L٧LϏɂɂ֟<٧L٧LףDɂɂʄئI٧L٧Lԛ3ɂɂ՝8٧L٧L٧L٦Jʅɂѕ&٧L٧L٧LϏɂɂԛ3٧L٧LئIʄɂɂףD٧L٧L֟<ɂɂ"ɂ6ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʃӚ0ؤFӘ-ɂɂɂ͌ؤE٧L՝8Ƀɂɂ͋֠=ס@ΎɂɂɂϑףC՞9̈ ɂɂ΍٦J٧L٧LҘ,ɂɂʅ՝7٦JӚ1ɂɂɂ̈ ՞9ףCϑɂɂɂΎס@֠=͋ɂɂΎ;ɂGɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅВ ̉ɂɂɂɂɂɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅGɂZɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂYɂoɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃ͋ɂɂɂɂɂʄ͊ɂɂɂɂɂˆ ̈ ɂɂɂɂɂ̉ʅɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅ̉ɂɂɂɂɂ̈ ˆ ɂɂɂɃБ֠=֡?ɂoɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˆؤE٧LףDʄɂɂ͋إH٧L֟<ɂɂɂГ"٧K٧Lҗ+ɂɂɂԛ3٧L٦JϏɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂϏ٦J٧Lԛ3ɂɂɂѕ'٧L٧KГ"ɂɂϑ٧L٧L٧LګTɂZɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂє%٧L٧L٧LВ ɂɂԛ2٧L٧L٧L͋ɂɂףD٧L٧L٦Jʄɂˇ ٧L٧L٧L՟;ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ՟;٧L٧L٧Lˇ ɂʄئI٧L٧LףDɂɂ՞:٧L٧L٧L٧LГ$bɂFɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂΎ٧L٧L٧L͋ɂɂє%٧L٧L٧Kˆɂɂ՝7٧L٧Lס@ɂɂɃإG٧L٧Lә.ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂә.٧L٧LإGɃɂɂס@٧L٧L՝7ɂɂӘ-٧L٧L٧L٧Lˇ ˇ Hɂ6ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂє$՟;Г"ɂɂɂʄҖ)՞:Ϗɂɂɂ̈ Ӛ1Ԝ5̊ɂɂɂ͌՝8ә.ˆɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˆӘ-՝8͌ɂɂɂ̊Ԝ5Ӛ1̈ ɂɂ̈ ؤE٧L٧Lә/ɂɂؤGDɂ#ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂΎ̈ ɂɂɂɂѕ''ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˇ ʅɂɂɂɂɂɂɂɂɂɂɂɂ՝8 ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϐ̈ ɂɂɂɂˆϑʅɂɂɂɂ̈ ϐʄɂɂɂʅє%Җ)ˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̊ϏɃɂɂʄԛ4٧K٦JӚ1Ƀɂɂʃϐ̉ɂɂɂΎעBۭXɂSɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂףD٧L٧LΎɂɂ̈ ٧K٧L٦Jˆ ɂɂΎ٧L٧LףDɂɂɂ֠=٧L٧LؤEɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂВ!٧L٧L֠=ɂɂє$٧L٧L٧L٧LϏɂɂס@٧L٧LϑɂɂףC٧L٧Lݱanɂ"ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͌٧L٧L٧Lԛ4ɂɂѕ'٧L٧L٧LГ"ɂɂԛ4٧L٧L٧L͌ɂˇ ٧L٧L٧L٧L͋ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ֠=٧L٧L٧L̈ ɂ֡?٧L٧L٧L٧LԜ6ɂ̉٧L٧L٧L՞9ɂ͋٧L٧L٧L٨On5ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄئI٧L٧LВ!ɂɂ͋٧L٧L٧L̉ɂɂВ ٧L٧LئIʄɂɂףC٧L٧LإHʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂҗ*٧L٧LףDɂɂҘ,٧L٧L٧L٧LГ"ɂɃؤF٧L٧Lѕ&ɂʃإH٧L٧L٧LڪQ֡?ɂjɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̊ә.ϑɃɂɂɂΎә/΍ɂɂɂɃϑә.̊ɂɂɂ͋Ԝ6՞:΍ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄВ!Ҙ,̈ ɂɂ̈ ؤE٧L٧LעAʄɂɂ̉Ә-В ʃɂɂє$٧K٧L٧KҖ)ɂiɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂϏ΍ɂɂɂɂɂɂɂɂɂɂɂˆВ ˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ=ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉є$ˇ ɂɂɂɂɂɂɂɂɂɂɃϑϏɂɂɂɃҗ*إG՟;͌ɂɂɂˇ є$̈ ɂɂɂɂ<ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͋٧L٧L٧Kʅɂɂɂɂɂɂɂɂɂԛ4٧L٧Lә.ɂɂϐ٧L٧L٧LףCɂɂˆ ٧K٧L٧L̉ɂɂϏٲ ɂYɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂҗ+٧L٧L٧Lϑɂɂɂɂɂɂɂɂʄ٧K٧L٧LؤFɂɂӚ1٧L٧L٧L٧L̉ɂГ"٧L٧L٧Lѕ'ɂɂԛ4ܯ\tɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͌٧L٧L٧Kˆ ɂɂɂɂɂɂɂɂɂ՞9٧L٧LӚ0ɂɂΎ٧L٧L٧LעAɂɂ̈ ٧L٧L٧L͊ɂɂϑڪS߿ɂPɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͌Җ)̉ɂɂɂɂɂɂɂɂɂɂʄГ#Бʃɂɂɂє$עBԜ5̊ɂɂɂ̊Җ)͋ɂɂɂɂΎ՞9]ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂGɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˆ ͋ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂFɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ΍Ә-ףCܮYܯ\إGӚ1ϏʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂϏӚ0͌ɂɂɂҘ,٧K٧L֡?ˆ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ΍Ӛ0ΎɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂГ#ߴfթڴrӚ0ɂɂɂɂɂɂɂɂɂɂɂɂɂΎ٧L٧L٧Lˇ ɂ̈ ٧L٧L٧L٧Lѕ'ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉٧L٧L٧L͌ɂɂɂɂɂɂɂɂvɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃڪQ޳dˆɂɂɂɂɂɂɂɂɂɂҗ+٧L٧L٧Lϑɂϐ٧L٧L٧L٧L՝7ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂГ"٧L٧L٧Lѕ'ɂɂɂɂɂɂɂuɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ޳d|ʅɂɂɂɂɂɂɂɂ̊٧K٧LإHʅɂʃإH٧L٧L٧LϏɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˆ٦J٧L٧K̈ ɂɂɂɂɂɂɂɂɂ2ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂє$՝8ɂɂɂɂɂɂɂɂˆ ϐʄɂɂɂ͋Ԝ6עAГ#ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅϐˆɂɂɂɂɂɂɂɂɂ1ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂnnjʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃ̖۵ˇ ɂɂɂɂɂɂɂɂɂɂɂɂ̉Ύɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʃ΍ʄɂɂɂɂɂɂɂɂɂɂɂ$ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅժ͋ɂɂɂɃѕ&՟;В ɂɂɂԛ2٧L٧LףDˇ ɂɂɂɂɂɂɂɂɂ΍՞9Ҙ,ʅɂɂ΍إG٧LإHϏɂɂɂɂɂɂɂɂɂ#ɂeɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃڴ̈ ɂɂϐ٧L٧L٧L̉ɂ̉٧L٧L٧L٧LҖ)ɂɂɂɂɂɂɂɂʄئI٧L٧Lҗ+ɂɂ՞:٧L٧L٧L֡?ɂɂɂɂɂɂɂɂɂdɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̊ܯ[˕د׮ćݱ`՞9ʃɂɂɂɂɂɂɂɂɂɂɂɂɂć׭ɂɂҖ)٧L٧L٧LϐɂϏ٧L٧L٧L٧Lԝ8՞9޲aň׮د˔޳dۭW٧L٧L՝7ɂɂؤF٧L٧L٧LئIɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂףDݹ޳cʅɂɂɂɂɂɂɂɂɂɂ۫Sذ޲bҘ,͋ɂɂ̉і(۬UҤ|ɂˇ ؤF٧LעBʃɂɃؤF٧LکPɑz΍ɂɂҖ)٧L٧L٧Lә.ɂɂɂɂɂɂɂɂɂ߿ɂ+ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂә.ݹnʃɂɂɂɂɂɂɂБwˇ ɂɂɂɂɂɂɂɂɂɂʄ޲a֟<ɂɃ͊ɂɂɂɂ̊ňݹә.ɂʃВ ՞9Г"ʄɂɂɂɂɂɂɂɂɂɂ*ɂcɂɂɂɂɂɂɂɂɂɂɂɂɂɂݱ_ڴˇ ɂɂɂɂɂɂԨ͙͋ɂɂɂɂɂɂɂɂɂɂɂɂɂɂˆ|ɂɂɂɂɂɂˆ׭ݰ^ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂcɂɂɂɂɂɂɂɂɂɂɂɂɂɂƊ͌ɂɂɂɂ՝8ߴgɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂإH޲aɂɂɂɂ͋ƋɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂϑɂɂɂؤFɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂҗ*ˆ ɂɂϏɂɂɂɂɂʅӚ1עAВ ɂɂɂ̊ɂɂɂɂɂɂɂɂɂɂɂɂ۫S߽ɂɂԜ6߶jɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂؤEܯ\ɂɂڳ۫Sɂɂɂɂѕ'٧L٧L٧Kˆ ɂɂՠ=ɂɂɂɂɂɂɂɂɂɂɂɂΎݱ`ɂ˔Пɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂu߽ɂܮZΎɂɂɂӚ1٧L٧L٧L͊ɂɂ֠=߿ɂ(ɂɂɂɂɂɂɂɂɂɂɂ͙Ϗ΍ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄԛ3͘ɂɂɂ̉ؤE٧LԜ5ɂɂɂΎ߶j<ɂLɂɂɂɂɂɂɂɂɂɂѕ'͙ذɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂۭWذ͚ѕ'ɂɂɂɂˇ ɂɂɂɂɂʅLɂ\ɂɂɂɂɂɂɂɂɂɂƊВ!ɂɂɂɂɂ޴e͋ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ޳cɂɂɂɂɂГ"ʼnɂɂɂɂɂɂɂɂɂɂɂ[ɂiɂɂɂɂɂɂɂɂɂɂȏɂɂɂɂɂɂɂɂϑɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ˕ϐɂɂɂɂɂɂɂɂɐɂɂɂ΍ѕ'ˇ ɂɂɂɂɃiɂvɂɂɂɂɂɂɂɂɂі(ʅɂɂɂɂɂɂɂɂɂڨNpɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂؤF٧Kɂɂɂɂɂɂɂɂɂҗ,і(ɂӚ0٧L٧L٧K͌ɂɂΎکQɂɂɂɂɂɂɂɂɂɂ۬UעBɂɂɂɂɂɂɂɂɂɂɂ۶֡?ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͌ڴɂɂɂɂɂɂɂɂɂˆ ٧Kz۫Tˆ٧K٧L٧L٧Lԛ4ɂɂ֡?۬Vɂɂɂɂɂɂɂɂɂɂoˆɂɂɂɂɂɂɂɂɂɂɂyѕ&ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂwɂɂɂɂɂɂɂɂɂˆ ٧KڪRnˆ٧K٧L٧L٧Lԛ3ɂɂ֠>۬VɂɂɂɂɂɂɂɂɂɂʼnɂɂɂɂɂɂɂɂɂɂɂɂؤF̈ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂؤEɂɂɂɂɂɂɂɂɂɂѕ&إHňɂԛ2٧L٧L٧K͋ɂɂ΍٨MɂɂɂɂɂɂɂɂɂɂʼnɂɂɂɂɂɂɂɂɂɂɂɂؤF̈ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂؤEɂɂɂɂɂɂɂɂɂɂɂɃňɂɂ͌є%ˆ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂoˆɂɂɂɂɂɂɂɂɂɂɂyѕ&ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂwɂɂɂɂɂɂɂɂɂɂɂˆ nɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ۬UעBɂɂɂɂɂɂɂɂɂɂɂ۶֡?ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͌ڴɂɂɂɂɂɂɂɂɂɂɂئJ۫TɂɂɃ̈ ɂɂɂɂɂˆ ɂvɂɂɂɂɂɂɂɂɂі(ʅɂɂɂɂɂɂɂɂɂ٨MpɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂؤF٦Jɂɂɂɂɂɂɂɂɂ՝7і(ɂ̉ؤE٧LԜ6ɂɂɂϑ۬VɂiɂɂɂɂɂɂɂɂɂɂȎɂɂɂɂɂɂɂɂϑɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ˕ϐɂɂɂɂɂɂɂ̈ٱɂɂӚ0٧L٧L٧L͊ɂɂףC۬Wɂ\ɂɂɂɂɂɂɂɂɂɂƊВ!ɂɂɂɂɂ޳c͋ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ޲bɂɂɂɂɂГ"˕ɂɂі(٧L٧L٧Kˆ ɂɂ՞:ۭYuɂLɂɂɂɂɂɂɂɂɂɂі(͙ذɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂۭWذ͙і)ɂɂʅә/֡?ϑɂɂɂ̊ئK_ɂ(ɂɂɂɂɂɂɂɂɂɂɂ͙ݱ`΍ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄԛ4͘ɂɂɂɂɂɂɂɂɂɂɂɂ'ɂɂɂɂɂɂɂɂɂɂɂɂΎȐ٧LڴРɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂu޼ɂܯ[Ύɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ۫T٧L٧LrkɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂؤEܯ\ɂɂ۵۫SɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂҖ*Ӛ0֠=БإGɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂҗ*ˆ ɂɂϏ~ɂɂɂɂɂɂɂɂɂɂɂɂД%ɂɂɂɂɂɂɂɂɂɂɂɂɂɂƋ͌ɂɂɂɂ՞9ߴfɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂإH޲aɂɂɂɂ͋ƋɂɂɂɂɂɂɂɂɂɂɂɂɂئIɂcɂɂɂɂɂɂɂɂɂɂɂɂɂɂݱ`ڴˇ ɂɂɂɂɂɂԨ͙͊ɂɂɂɂɂɂɂɂɂɂɂɂɂɂˆ|Ƀɂɂɂɂɂˆ دݱ_ɂɂɂɂɂɂɂɂɂɂɂɂɂɂ֠?uɂ+ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂә.ݺoʄɂɂɂɂɂɂɂБvˇ ɂɂɂɂɂɂɂɂɂɂʄݱ`֟<ɂɂɂɂɂɂɂɃnݺә.ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͍-ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂؤEݺ޳dʅɂɂɂɂɂɂɂɂɂɂ۫Sد޲aҗ+͋ɂɂ̉ѕ'۬Uң|ɂɂɂɂɂɂɂɂɂɂʄ޳cݺؤEɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̊ܯ[˔د׮ćݱ`՝8ʃɂɂɂɂɂɂɂɂɂɂɂɂɂć׮ɂɂɂɂɂɂɂɂɂɂɂɂɂɃ՞:޲bʼnدذ˕ܯ\̊ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂeɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃڴ̈ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂdɂ$ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅթ͋ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ#ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃ̖۵ˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂoǍʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ2ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˇ ՝7ףDВ ɂɂɂ͋֠=ס@Ύɂє$՝8ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ1ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂӚ0٧L٧L٧Kʅɂɂ֠=٧L٧LףCɂɂɂ޴e|ʅɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂvɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂԛ4٧L٧L٧Lˇ ɂɂעA٧L٧LؤFɃɂɂɂɃڪR޴eˆɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂuɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͊ףC٧KҘ,ɂɂɂϏإGإHБɂɂɂɂɂɂɂГ#ߴfթ۵sӚ1ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂΎҖ)ˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅɂɂɂɂɂʃʄɂɂɂɂɂɂɂɂɂɂɂɂΎә.ףDܮZݰ]إHԛ2ϐʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂϐ٧L٧LڪRɂGɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂԛ4٧L٧LݱaaɂɂɂɂɂɂɂɂɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂϏ٧LګTɂPɂɂɂɂ͌עAؤFБɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄԜ6٦Jԛ3ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͋ә/[ɂɂɂɂɂ՟;٧L٧LإHʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂВ ٧L٧L٧LϏɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂYɂɂɂ՟;٧L٧LإHʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂВ ٧L٧L٧LϏɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂXɂɂɂɂ͌עAؤFБɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄԜ6٧Kԛ3ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ>ɂɂɂɂɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ=ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄˆɂɂɂɂɂˆ ʄɂɂɂɂɂɂɂɂɂɂɂɂ̈ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˇ ʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂjϏإH٧Kі(ɂɂɂҗ*٧KإHΎɂɂɂɂɂɂɂɂɂʅעA٧L֡?ʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂә.٧LإG΍ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂiɂפF٧L٧L٦Jʄɂʅ٧K٧L٧L֠=ɂɂɂɂɂɂɂɂɂє$٧L٧L٧Lϑɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˆ ٧L٧L٧L՞9ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂۭX1٨O٧LؤEɂɂɃؤF٧L٧Lԛ4ɂɂɂɂɂɂɂɂɂϏ٧L٧L٧L͌ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄإH٧L٧LӚ0ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ"ئJg֠=΍ɂɂɂ΍֠=Ԝ5̈ ɂɂɂɂɂɂɂɂɂɃҗ+עAі(ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂϏ֠>ԛ4ˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂRɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ#ɂɂʄҗ+إHעBГ"ɂɂɂʅВ!͊ɂɂɂɂʄΎʃɂɂɂɂˇ ͌ɂɂɂɂɂɂɂɂɂɂɂɂ͌ˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ"ɂ6ɂє%٧L٧L٧L٧L͊ɂʄئI٧L٧LВ ɂɂˇ ئI٧LإGʅɂɂϏ٧K٧L՟;ɂɂɂɂɂɂɂɂɂɂ՝8٧L٧Lϐɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ6ɂGףC٧L٧L٧L٧Lә/ɂБ٧L٧L٧L֠>ɂɂѕ'٧L٧L٧LВ ɂɂ՞9٧L٧L٧L̉ɂɂɂɂɂɂɂɂ̈ ٧L٧L٧L֟<ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂFإHp٧L٧L٧L٧LГ"ɂ̉٧L٧L٧LӘ-ɂɂ΍٧L٧L٧L̊ɂɂҖ)٧L٧LإHʃɂɂɂɂɂɂɂɂɃؤF٧L٧LҘ,ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂYܯ\٧L٧LإGʄɂɂВ!֡?Ӛ0ˆɂɂɂБԜ5ϐɂɂɂʄѕ&ԛ3͋ɂɂɂɂɂɂɂɂɂɂ͊ԛ2і(ʅɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂoԜ6В ʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂoɃ\ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂZԛ4SɂɂɂϏ՝8Җ)ˆɂɂɂΎә.͌ɂɂɂɂ̉ϏʃɂɂɂБעAףCГ#ɂɂɂɃϏ̊ɂɂɂɂʅϑˆ ɂɂɂɂˇ ϑʅɂɂɂɂ̊ϏɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅϑˆɂɂɂɂɂɂɂɂɂɂɂF͌:ɂ͋٧L٧L٧LԜ5ɂɂϏ٧L٧L٧L͌ɂɂϑ٧L٧L֡?ɂɂˇ ٧L٧L٧L٧L͋ɂɂ֠=٧L٧LВ!ɂɂʅئI٧L٧K̉ɂɂ̊٧K٧LإHʄɂɂГ"٧L٧L֟<ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˆ ٦J٧L٧K̈ ɂɂɂɂɂɂɂɂɂ6ɂ#ә/٧L٧L٧L٧Kʄɂԛ2٧L٧L٧LӘ-ɂɂ՞:٧L٧L٧L̉ɂѕ&٧L٧L٧L٧Lә.ɂ̈ ٧L٧L٧L֠=ɂɂϑ٧L٧L٧Lҗ*ɂɂҗ+٧L٧L٧Lϐɂɂ֠=٧L٧L٧Lˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂГ"٧L٧L٧Lѕ&ɂɂɂɂɂɂɂɂ#٧L ۭX٧L٧L՞9ɂɂϐ٧L٧L٧L΍ɂɂѕ&٧L٧LؤFɃɂ͋٧L٧L٧L٧LΎɂɂףD٧L٧LҖ)ɂɂ̈ ٧L٧L٧L΍ɂɂΎ٧L٧L٧Kˇ ɂɂҗ*٧L٧LףCɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉٧L٧L٧L͋ɂɂɂɂɂɂɂۭXmԜ6̈ ɂɂɂϑԜ5ϐɂɂɂʃВ Ә-̉ɂɂɂә.٧K٧Kԛ3ɂɂɂ̈ Ҙ,Г"ʄɂɂɂ͌ә/ϏɂɂɂɂϏә/͋ɂɂɂʄГ"Ҙ,̈ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ΍ә/ΎɂɂɂɂɂɂRɂ"ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ"ɂɂjɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂjɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˆѕ&ϐɃɂɂɂ̉Җ)͌ɂɂɂɂ͌Җ)̉ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ>ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂעB٧L٧Lѕ'ɂɂˇ ٧K٧L٧L͌ɂɂ͌٧L٧L٧Kˆ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ=ɂɂYɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̈ ٧L٧L٧L֠=ɂɂБ٧L٧L٧Lҗ+ɂɂҘ,٧L٧L٧LϑɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂYɂɂɂPɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂס@٧L٧Lє$ɂɂˆ٧K٧L٧L͋ɂɂ͋٧L٧L٦JʅɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂPɂɂɂGɂɂɂɂɂɂɂɂɂɂɂɂɂʄВ ΍ɂɂɂɂˇ Г#̉ɂɂɂɂ̉Г#ˆ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂGɂɂɂwɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂvɂɂɂ2ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ2ɂɂɂ$ɂfɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂeɂ$ɂɂɂ+ɂcɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂcɂ+ɂɂɂ(ɂLɂ\ɂiɂvɂɂɂɂɂɂɂvɂiɂ\ɂLɂ(ɂ???????????PNG  IHDR\rfPIDATxwx$W H=DrX09ـavɰZ% K\1yư`nl3(α?JHT4S虑꺧=09=h  Ud#&sD55@#|M߷H7 ?^`πi0&(u}6`'ԟb7oaN!ڼb7D> \X ,b7m#)Q`mdfbb3Pe@ygFG]ySni n_)P[f~1N?p ߴ,+P}sTG5/vNeL'Y;`>J?Q}`L`$m;Qx&Ʊ+ڼn̩iKu_yM󍂺D9;ڼb7h!cެsA_ ܄:8M%f3xjvg$H)c&x\"usBRUXVi& $@]}ጃe9ISFB{#2ceME$@(ξ0D= <`n+irA y#`}!Or[$Ov5Yd1}?r+'3ѤߎK.˨fQvLvx;&qQGa-.$#1rH4@XB_p KڼTevvaT9̯۵_9I(Ii/K&K[J}(vJvg@}#eI:Vü.g4h |vm͝3P{w WN ~H2 I)0M?h$qw!1 }7;tO{̋<:])vs2NԎ$RvC?@RS_@}D?T\CF# B MIIa%10DQݻg{{#G3:e.R5Ri R 㲈lnpQab(]*2H8b8h$JE$r=V D<0J$EJ"2M2)bE8j8ٙ <6ow`4PſuP{"lW@S4cjtdv .\a$ۺ5n*(pɒ2l:})kP,9Dl͵[9ց$J۴Yk\]"LcEm6`էb{`ȟƢI]D`TT5TsZJiq\ĘJYB=)iK6jx.GE!Ͱ|eu/3k}[MloHf]kKfL1$3\:vNgۯ$SJl}ס [w$ g!˦nK)Bn&̟7ͣ3Tz; :B D p,$af92F5R' |Qq",J=ᴿF? 9 iT^6DnP<^:l{šFGv4JJt^ SjѨn0x/9ȓKd9z=g} ۂd׆/?}/pԿDd1m]ґdqVA3 @xJ&h}\>]]VQwm>IG{;j8d,.X$@,;oܔbX$$pr[n(|0/!X$HRD ݡq]c1L’x $R bƯ4 A1 \zEQ[睽62be6Ү[ag]CSRfeYiQ3mFW*n>H*W< ά1&%v_I,=w"_JՊ*fWuTl^!M:6cl@Ǹ.YW"jMV>}ݐ JV}?SDLh)8Ρ5=YΕPs hy`} #dEZCYglNXR[E-H\sBɜJq * ,[ UsI &PqIM+ꝺ3%j4-XDhRc4B(ʦS` H4kQS̊"%V/e6%6ִ,Y|GnhR88Z&NM"Poj,>Yp0``n[!FM"Hqht6)UB!˻s{Dϝ覓np[8ѕְpg 5Y*OT$v8Α8ۺnI6 i^{u=<ÉjUݍ:{(Ωi2KuzsecSS紈uEjLj4-4yL1)̄? EQ,?wV.,RnKsT%ͺuPc/Wl<+5NYWyuL%@[>O7G;1{vY[d{}6ز" _!(0)Y>?7/j9 >1TlĒ x*kɱ|SaR8x!;ѕ:⚢hRW7Q(&qh8{9|$#NibtBݷ@(JPZm %L* ;Bm DQPA1Z|{)^xJŞC瓴V}Pc>+0fq"5N$d|lTS&MlI?C]!Llq FƩfSؤya_n71efkTJKD䘐L$1=Wo2}e^XCẅ717C0fl9MLNڼ;{v|?ӱ*V,XcPyaF|.d~v8F,rbOZ -} ?f+x_;&&6o`Ʈ9VV3~ O_ hb9 @|LJBEL+2: u>MLSW`>3wE/mdbrӀ: @ |2[2S\ SD3ӎDY7sh}y EJ"}Wv/حSĤiuZw僳_)+Ukp`$ 4yan,@`y6m≯^޲eyw6ǘ'0$OuJVI$% G18qiI)K ꝴy!# /h1fP#f Tf)6x& J<9'86k,:;\gLLL ʑ6O-s785quo$88bwZXjm) xS;]J%\V 4s1YTHH$1aXD62u. u. WI"8}x!cQ3p 2Ip"ɝp(:'mvxJlnpRf; '"\fe}cR#D M N._ZeKʸՍ:2)^ 1=2Ɠ~3i g:9G"I^ T}."\ å, \؃C#wh4S~\.rksWxα+\˖qɒ2XS ȑQ=:ӝ*z:blxjq~mޟglw;Rܪ9m+'IPWW WW9:{cQkVUsS[D Z\Etsx[R(DVwY @@8{O44]gFjEEFuiqc 6j%~-Hh{<ӛr sOӚ+M 3M>tv=?.SJ9 |z;7sSa2ԱloG-voJF]?TBQgNxHzg$ K"l#κ.ag*$-` Fw@@DZј zW`Goz.^xz>aӂ^Q|&RgN!:`s7d3svGlphjN[3^92xKyuuW;ז3ZLbt@v}EiVOݸ.Mj7tDz-z;bT!} ^M) b\}7ӯN`n `+v޾j#|Zkv`&hkg.+vOexZ^R0R!nʩ6 @YRaqf)iM+y㺪b7TFsLԼ=CqZD~:6ԛ_p"+~mb7Tڋ90ˬ4{4y,4MR R   ԤF;Yj 8d߿a%[oYKV0\kvFS)Sq[E Nb9s|,FÝkQSeJr/ pAZSu*Uvp(ӝ 0mgTe$(D nĹд[\}3Paxݚ*.jpAsPZra~w;t3 ~btqZQVrͪJjD ;ďѱ,lI}5P`Nt'W_0>&K4OΨVW۹feEf,G~#o͵~m%v `(w0>8RJ{pv enK-lɠ3CQn}?oZn@㕍?u4ZRaU\Z=%?w zLxjxT䓏tj=(PMw2Lp6bpc]U ~mA>POv 9UxuFwɮTeek|IdZr.Wf'StA}g}~7wYW-=VnT:#4;wnȿѣc鞃syuE)sd- .<&^mw\o_"-u,b&V=c?=k ݢ-.ʢ}9Ztx=u-MS7R'K!>H'-5ZRaKyyឃܳghNVb\wlw=|_#B  x]kKjYy]kus.isl}W?ё(ou@u׮h<޻ߴ? am5hـj|E8-5$W-ᇯY2'ܺZےPxJ?_rdqa0ݹ;o@Vȹ ׮hǯ]jwHUŋ4[EOZWg/:'dQׯv~K{ەy%{b_4^ s1c3+hȐy*_OXKECP+xJӁ5O o_7,wVߺP66x]`p ۡWr=vZx^]z|Syú*yUkA9/\\^zn?UǗ.^T͹dp<Œ nMX%2}\=re(ҟYS q5Y^inz5ȠNGmD)r"7=8/1%qZG~3KW.iʧ/hJ{ OH)ރ.?ARQxӽ8017m櫗;Zŋ/dLz Jpk|!9*v-1>#uJ٬$ {4JC.::_XD{߰yߵPS{S&dMc60>J0Nߏz9w [~wPaLʕ˦ڟ]/X퐹 +rPVlX˦SKɫWL]ev摑(˱bwsF)ˀVri678yG~#HhICi_Nle}>?~X4-Ov70P5T%W_91 ߼%gvW7Ff8{Bz`g_۰$Q֗\QYsyi`<KC4H* DA#^VWG;KICnxq:>waxJJᾙESVYCF,.&<QeɌ@yW45s,vI.)5*~uevY44#cEx/=fQ|'U=0}<=aB Tv™u< r@$.ZĿ= ZZaړnHKGѫSi.ZaYm(㏭<ѥYqW-A">U_zl.hrṆ/Jp1/ېCmKk"r2_W@SIkeNãkve n?5:g{{ H$cGޞ$R :0Rftg2^4T9'?hl1Z#j][ nYIݸM \]ůz`Wt7~/_ap'䢟s A~{.gmh.! ɇ;5RtsG */a$%(Z6Mg[y, d{?ϟ065+Cχ™U]?L3j:݆# #F6αK*੹J0*#Q>Wcf'q"y`8#>Y'R qAYR Ȭ1 B&ycc7_LGò%R wѶ>C:sL)ˎL,'X#QKy\`hU=?/ãx[?7){lw[}x`H$ߎ3aSK JaxOBM"Og]&G"R8O7R p|,l(+-."14sF/qJ@葎#0~n*5nYgԘ'/Sl= T,bOǎ;R9* K_ ]O^voU;e:EA͙8HD@#-U'|ІB̹\0D\V0.n+FO.W3T;dDA&y/p$x+5 I̅|Z Nk Q oH+26PT-ntgNNir5F>s?R}-|k%8* 'MՓ :&q"7vYi"`=Tt6ϖB%ECoJŽ\jg( [|5N nkfUE4w8&g.4ffh`)@|d-Ba, w^嘞bLS(Oj|cv'ZJ Tąm)eeF3zaXSnk]㩫Q☹5@?+ Yjϕi PFC3׮2N;uL Ğ)RP&~y v7"kWV-EUy@u.l7z\yYu.zq.[RM.Î=5Op8J"Хg HaEOO ]/߾)rMk V =+/.,K |2㚥]练D)޷ L_^ e&wa$A)%$b^ sY@]G5vvekIUJB^ .Kt`IҸGme5.䁡+(1U'?Sx c`#y1OXFڕ|p\%3uyHVj\K?q帬]ʫWTھiO'R:'wcD>vn߷ >J].(Un.y!ـUfuO7W&k?, bH)y( qcda}!' Ժ,sͪJ[U F xr͛kKBCUֺ {#s:Y]W; <?L |3T;d}hc^M%( T$X=ǧ/0տCXqE7`nξq{z8Z#pIYK-eVnX>}ķ}KPhzql82nھ[Ϭ.v )!E {Rs,Ʒ|3#& lmtTe6; HB_ſuOKY*|¦u>a0uG{y 4@YX\XViCάw`[TBxuIc{iQr/>Plb׵ nMB߰& , YPCӼD{vz>x ɚ;y C'7n%`8{ _QH""ujFf Gឃ hzo^ZRRiÛV˝iסp7{0jѥJʇ|sLWNݯ=ѫwp(B0'6?x`lݴB-__TO?Krd1l '=Cǣs StՂb99ha P퉔9H]E/ ?|h_; );֔q}{IOwc3W/_(⍅CDLSvlOE vƸh{˰Z|z^&YRa/744g&z3cPwn缟.hc1.~kqL ]zs+pE[sY8Ι-r׮!k?Q58O(pEa4-.ZawxZ|RelnpUTu`_`u559 p4$M+VVH8bvnz]lżH| ~:QG$oZYyX DAM}.v9A][_I8Ӽڢē 8p[%48)Is:ӁƒF#MWe678Rǒ ;B1'lڼO2ȨaEONwrvy -p[g/ n-{gUhށ}ғ/.q []E*-oiaYEu7`fEvfuAғr>~Ҡf>,rb8 j|Aa@5mɃw?pmޯLWV5\2|&~gGL|imuA<_W@@d *n+M M+\ EJWzӂ]5;*B\݆)$lj‰ j''clnpf-M7It!YW>Al|1 #p Z<ӚJ[U9j>"<N?;\0m#G#EX͵i[IE7'PhXpPοчT9-bYTk5du0]\\" Gy"jOIXTfe3I]C`S?#~Po2+UfC$>@S/|5"$V)q?gϦ ŧ!Ryi6o xlg3I'Oq]8t#Ry;z0Z. -P8'QK@\w]4w0X҈HGeulD9;̇P~TGf)S Re@~7cKm^ȴ{O[}:H)xaԉ|U)96˙ _PÂM|\,-嚑)>P|ONlM xPEHnOq̀=8]qX%s݈ŖEcGxG IkkQH$Q2>yCFf,?khlQH=E9pmmz/f3jb_$ d;8t԰ZMݡx':iF* \,c@(]y)3vYVOZ;3ky',p$:u~I3j8,#nsg ˊ$65 E%tGV"2I3TӇ(TFLonKҥ;糏rR\:939&eT,j+ Tb\ 2r`Huf$hvbx?ǚD1Chom#uMmhlYY$ YX9ڼY+j~\^cIJVVٹbi/-%eTiO)q?zy)ϖGeʿ\X\+Rڹ!j.uv\:_1hXC X2cRbF&YN4SHc׬oAlgڼS:I$+E"";tB(\#D]XPz}z`XHRe{O#2!xƀ㘘dc4ƶQ s b'5ITG@3@^ R)A|0⧁X _W^O?xhc/P*2rЏDl z'ΗV&R`Ph Sl i],ObO(/OBQT>`8=!Mcz^;kzCkTrv[%678`<Ŷf3_-zqJsF_|m ӱ6I&WZ F^QeO9DTۧeƝJwZDnriMN$AH< ,ѕj̖gڵ_T[ae=ژ>sp_{ 1*$X\n>Vۼ!=%X\a-Yf4JXUVw[tQм*rFA, ,,ݲJn*La(;-\r믾pѢ{^%Jl${?g7ӹק?xHѫU#c'6 Ԓb b݁PNzC[w.[ -k'R֯;Ipb+BhLWno0=>s,S 0ITG DLʦߵ> rj|`+1&Kyj@,ёXJ0.5`0`O8TceiU"W+fܻ^]cgyt8;zCCN2Y~@Ok uupNn,AK65 XL08eӮyKWws?vZ[𢂝de &ug':Yzgb)3͖*ഈ٤?}A]gaÜ}@MAkb2,@S.Hh$`85=\j4u}UKv9@j/?IiP!OZ6LLfP >mE:IX^i&-)û*{Ơ.,Q:_L.)ZmT:d]X=UED) ǽc֥$8:˪"t"w‰x^Ju͇jL.?H,kAIXRa.TB ;UwxD0ͩ걊O<5o=UR<+l,j;J$pnsz٫p_WPw`ֻ,litN{(A}=Ymfl5j2g5’ E7X,$QU(Rx;[i9w;MJ@[ b)Dkp㦺Cź6ŕxyGWڎ:fͻ*jU6I`S3m)*j{u [DM .MM*{š|R?M 69?ocZm_uPlݔRB <=9pˢ{S @Ox"-9pS֔OМe/$h)g:fUb,a\[VϹQynJഈg6I|U=zB?_+Y9^>dwMొ!>'(74Awp=0 &˜Q6T4c' YЈSϗ=ɜ5H% Z}&3^{&(@bY}y_,ut @QNsIE(Վ- ubw鋁9Jdgc;&DJS(H)ۮuY ;Yb_h`Q kƜ㺊xJŞ exzQ51X}5^ `@$$C{iF Tۮկ@\S9y˸ͺ[.m|KyMq3% :&Հ@]i.ⱪY*ֻ,8edQ`8{g}IeVl',46i2`,X,QYr$Sj@Z}8-"gTVUٿ}U!JQڃ@&&9 怬rxb|_ P|N{Kve}M11~qVRݷ5lM11Ɂ^Ucav A`Ybb,@^4E0pUgcv_L`SRhf7:Q cSS 9ef2j;v$ ?*>O*iE2k:?,OQ4 }&*rĺZv e<8ݍNS")se3j8O D[ʬ,JD)NȭV:ъX&>Z\ncu}2Uh4ɎP]IX]cm&bIGPiY[c֫kWVoY=0/H,<R_/vSICfwڗH)<,鴈\أ?u4pvYVOZ<xD0-یD[%u'ϥރo^Hr5,֙֩+Wܔ*jk2첨)RN9*GsU:dMÒ_xfJU8 k&Ps n(vSĒ1) Ɠ"e_|43'[bs[u|_!C6cC l*F?Y\ZP ĒzfWO)i62 뽞-WKǐMu8e+4w9HRO#[oå<h&h~5ȂECmnWLO\4񚖱 %t?c J)5 GI]Gd ~C ܅ p*(j{͞X :`6_Q)PC3y%}aݲV=8tyO 7gg_x`QCQJUSb8 5Ro(M;1X‰ϝzzq^ pC*U_(UH6`.$_IvU 8IRiTs+iKD9X cd>UbS3;?ӣڡV뉧Tud0#6<3Ⲉy/Ƃ9X\즘D*TY 1=y)vCɩo}Nğ,<ɩMeڼb7&ߜ`vj{;&&3y m}nH8P+7nIЍzO\u: ~8fSi_wD4DJw+L9:, 8: pYD)%g'ι_;Ζ ݷp~b r5^AM$7qTe6;&Œ {YUssaDRQ8<e`6'#ƢI^ʢ"띓R cv9/(iLw:jݜrVFB&X%.Q 1j/hN6MTRQx☶:R.jLEalE{6\n;ezУ͛{'8S&͕*9!64:tUzj>)Wt6Kռ3h! kkՀK+l8-"Q^Zal;W~*ůXJymZf͆J{fwF]0Y}Nla(+RZ)ى6U3`\PUdt\PXrP 舶PhwX7~Fipp(hT38(%%}QMyZI: 0}p)p#j^B缎g0 amX~rkpdVۀ@" _hSYbs \F ]Ӆd RG]oˬpyo)Lܬfm`]s9+ڼNjݘSuxVMZF/S|1 @iYPӔ݀Bl.vJ#ohfn2gLPHԙrT_>;s| Icp PnġEAnJ)Cjʢ@xh4WkvYccUxQ|^߼n ܶ+(%ެ ¥Pcܥ!Ke轂f{`7AM>َ Xoubg݀N¥X&u4[Ow0D0tD h O=V7jf;eGb*Hl^6VANnMo0`lˀ%PɏrxdxyrlA/x &FCg K_tɨ07f@t7~4y]Ӳ#uнC3~NN -Y8ֵn@?8/!..&4-V7H1 , :ODFH2HR.3cъXm|fov }`!&넱_ET%0z''Q\FsS>:B׈+\ll>h{9f810CO@tm.sp d~x(82cXb /uEuK(&Ž &Ff`hMV7U{llsNO;FZ56w+ll*55\)Ki2[Cbx:" gi ZD0CegFӗ^XEyFS8f"*NJUvF4?*{cS %f`JR߭(xp,kV$dzcJ3pSW Xxh`;  C3A0 ܈X/B6h!B~es_GP4dK{"J.`h)ppMh=^"JM0>b OCK@dy*!"(%Щ"ByV7D `|쓿H$Bd_% R>9SeV7Ec1PDP!*ݯ :jV$\p"X,%- '`h.pb<*jבI*X6iѡ0=a"#" ,ogo#>e:dRdv:;OF`\?킷[A;UU+<2`[l7Qe,*7^UDZTX$9;S̉ߝM-@8"K54U~,O*ci^1W$_>/"3ȦH,Ac*c\*r=QqPU8t+D±}TNʣ.VbMΑ9Kh(sRQr;Pw| !5_%0d5'SUu᎝}Mex##)vF8$`Q^Iyf ٬o1ru2<|hP@UQ8u<x%1nM>*\ʤ94 1Zp{")nkUyS٪ JMh&2/YFQ5@k!LM63̜G|x{wL/Qy17~7kGG YYexWlLS.2'g*ݶ &آ󸋫ݬv>:l lAڎIfx@~iʦFw[KYeJ*KQㆎU5 M#HM5Z"Z)g܆TU|}uMۻdSXu #%64P$qz`^~NYb]Wwƛ[颡̩^+5v. >CwGdXunl԰b"ɧ{z/UEgUn͝?@z3P/ [}mfTUmcGi}_١r@sʬחaihX~eGsփ@3 ExAƻZY e;s[aIkN %68zt|K)Vynz_^wʺl"El@UUc8yGkGF>LSRh DxQ8Ĕ r=Ư"Il&`%t=a=S|nԱ JG[14 `f!Q&D`yM,-O~íf> 5ͩҭ|(XK'f:uܴwyc 6L^|" %thBP ]1,M,eOFoo4a7:Yv=BBG\*U.v.:Fv]?I0EV $ &\}tT07М%lUg#t 2*iHܱFtlZm5IffW /j>G0$rZDVʁہr. Ħ,-g=H"3>Xc:0{nZqXqsd4EPױt\|2 (>zO L 8W!<-Z?#i椥Kd7f/l:+]wDEw̱@_6w &INdGM )Z <l< 9덤4I7mLlFV{cQaOlof;yqi60

9iz"JfT!GM7Qu(l'}ۻwCoG'fhhkW'WJݧ#oNrt6AS"ʣ̨cib&>̢j7ѧDpZ7[ݐb"TU]MG>:2a-g&}Ǒ75/@,E,{] tty-ʜ2i !30W^]nAv"@Uy~#$:YFG[tex&=X4akg$'%`a2'~r,}nl4xK*7MeNlbȦ7R$63_GaQ*ϙJ*4ݑ9+Y,„Tj1<~&±4 i~ ,w)llX@m]ˎoC*kL\|SfCiJrR6`[\j8asH1bb%wbw"M7=u?v[T0VceY*==j/^uT{9 rluSl[哖(/hl 邚1*\9(„h ؙ0 UUo3?d;u^ݝ?G oi]2+='};Ȏ>V-vkǮ  :`~[?Ty$jJ"ۙ뱼KKM`i`n2kR."AKݼ"mD0޿~9G؛ut~ǡi4nǪ4J*w[)BTk8n=_KgrwE}ZMڣ3ʜE!61=]d%?3MJH5p?2b7"8^0}?IeT?zB"7Aơ#S@$dgOMZ`uCDcXJO]%] &u U"\,vs)FQz^P- TcuCB܁!77`@@L[ĄD4Ҫ;R!dTLA_G3! 8` wㅧsxh: %Ҙod6OMAJM1m}\ࡢcNeT]x:ښQĹ9Vi[,Ȇ W_V@0t-U4|Ɍ:m`:05 /FRǣ'2חup[w(@$ao}K+LvEn t_ zՍ xZegSђC?l4)љ x foΈ|8fc1z,0JUD0tՍ 5L@8njx]#I^MGgGHl68q ;Q_BT& yL$٣#-t$-8 3[ N2SU+LmKfT94}Fߴ:!6\7z<$뎤}:蛴Ao4{, )Ki2b̅ʋ]E AVڭnH!ͬ *N:_ғbwL$asgHSXRƫw;U±G6T<2 9ǎw+Typ,Utx@0!;/:AA:=V7$J7.pMAiV7"J7kn P#FKi6 !Vz@0@v" 6nH.@0@t B0ǔ9UU+wG[sɨΓ?^AsUnx::d<<2'.zh.wRRp*rh 0Ţ*7==<dFUYY$xMV7$WJb @UՊowzøQ\u)|4;'}Xb/r3iᣑdT%¥ɇ=qL{b鍉`JW8T}/v>vK,6Oh*[u 6t:Me/W,,ieӾvݫ\L0fuX <| P EJa o?:C2C}]);á7zϔ# 3QGaMV賺ق ? EZ:}d(yt9eVO괶Kc?YULJ$\R%KL0Z| `ܵCofmkSЅ,rsj?F̫tQUu"cj6eWheaf`wmIf6|Uڣmk7|qʒ c*xY- j6G᪪ʦ# kׯA;|2ف=xz%B;Ս0UU}m]wyayC&y)WTJ)%(3y  %:FQtw=UY =^Gڷ_EMn2|1.f6\$. `[NwCEsESF?׾??37 Wϗ)\Gy6At[ՍЫ`==AzDSSOaWPJ>YlSCNΑ<0vIiw|z)XF V7$ RqҪF"B `CFS]Q]QKpwZUZM@8n(@e`Vji} [[aWH,%hqUqR_٣ƛQakWµD=Q յ*[:#Iw$%92m0Ɍ #_JחX-쿝;SFߔi6wD0:m0`Coʭ_C:?,U=1E?.4xqNQk$i8<#b~>?;dy~UUnSf$!OM:YUEV9e" XXXź:砱IA[!Q RL0R#V8dV(TyxxHCG A(zՍ`PBJ M\GA*ZV7d2v_CttPnK M\GAѪX݈w f  WՍ=` uEAa; %0buCƳg P@04xn  @XNKώ#@t Bl^#9&! yp-ǭn < juSA!Π%`jvxAJשn{CnG8e G̩0H3K+:I@[? 8KyArXFK`8nco*wK y;jLqȬR_@N iց8{c" yMd!֏CK۴Tl ?ήh'-U wUAJZl|1l쵋ݬoY}3&ߴ?߭pr;|eA Սn QV蛽]ᢩiډ[X],NR FӭlՏsAo9eCLAۓx>s*u  u@0t6p޷'-TʭHT{N.$hH \B0tUrFTe:(En3!f 1\&^ o~Kdqȸ1"&2U 0AhXPV\ C0R03w b H #g ro񴩤Ha?A$(|@w$i8c8Ip,w+diËgxZ$ܥ(2*XxA)E8gn安g94k g;C+ȮϫTF7BC4C SB!_Vy&z"={gW ab' p AAUi_w𛀹lK~`xw^! Eb_[9C<>QUռ%CAASUf)_m_ A"H.X.oW{96/ E!T[\jM>ړ RAxZe$ok֮"|'_#WKق PzuY7uenKsAhu IёˁnKCWsAYP妱IS%STN.,Me$3$2$ӌH2Qm0Ȭ)95pYN鏥k\%g %!KxTyn Xp,M8"%Q(dxp,M,E"]ZS^V_:gcJ`8s g__-H 豭+B}I7h? 5m` 9\d4;Y5(:87)Gg87Qy+ʑ՗eZ^)>^1Zu|0## ;*G nMeSs gGO#2@:#WJ(z}̮R]1 oz/4Wp#9y0)sb?,ekTi9:mCܽ'3GGD@ (z ˋ2lpJZs4?J(f+,֗C f=Κ[˽?Ύk+I5;yݲjXVkVqTGa'0wEIA8KdE]L8b f(8:n`hp0)*s+t1iG ꚧ%xJMjSۆ [ qU+W՜6lFD}`;wcG?;RhŇrൈ_z/[XZnO ܺ;~qxm(yZwJ=y?2W,ex|_{A(r2پKtsB\m f2tl9 ܷoTkSzm 3Ξ7ŭ[{艈QAD\\ TSQfKAм@cc"[܊kx 1+牼Jʊ:߾p_}\,Ȉ E=f?(W ^*M>9NY2pʣ$8dnXgnִAxKx޺ GA%vr9OC@i 'i(s~oI Cpbr[" qȼ>{v3"=:D#ZYe,X?>(v l-zdt[>[A Y5^ʙÉ4{cꍱ7Ʈ(ۻcAY9i`\6 fkVZ֘8!o!ǭs<"s_|GX݌XR9=7鯪(__4Çx dGOKQZsMVMP$Wյfamt 'yͿlǫU5V7viPp"Mhޗ9BI-=|:GV7GCW UFS?mCX칸ŋ\fH.G#ŵVԙ\fRjIP7>`i LN[}vQu33 D>v=A<]O8?|;fMF{ˎ~[o\\kx׺:)Q䡃V7eZ$SҫPW",ci~L'uMY;YIK`d8]p=sj.E⓯h?i6]̿۸}GMқW𧫖X݌荦ӝbs7pYs3xJ1Cp?{};KX5F k'IL]OKt/k>+zA%?t+?N N[o6 ܓY4u`Z˫[J#62||[Pu˪nJN &Xxmƹ*UKJf_ |Vn~X'?U~խ.ro\ͯ](: Tn}>hMK6)2<|3}1hE aCnX뗗:|[V!t*_ۆWs2O/&Q@'-g/SB ɃZl.$ৗ/('X*>gVx}S~xvZs: Ǻnc=OwUIZC槗/'-(ǫ( % 5 n|>?]:3"|qߺ`.~y.sڢ47F|MD߱}X8?~U+.-&}tU[Vb)@|ŽnoOn{^U+E\yy %Us>MCn~I0x-ۋ2Q_)^2^Qક5{r*Kth #ëUU=¾"49tJ6XZwxj~{&!q)_8mVF|eQwgj;O)T>sVn|y|^jg|lf% %#Lp.{޾5beU ~Ѥ lDj76*7DŽj_F{/<|hz')|ƜmsD5yĮ&^x6>Kۗbؿ~k"I24 돱'JvcVEq*;sRRğߴ7і>{g|sمe#d=p`~sS]Y?_5.6J%׬g/D=^9StHT{8g^.P4?o2*ocZnf?ƿ_|l[5 +#C %˟:2|ξy**7Rϗ^5SԾmV8AeQd;yfX*͋]ű¥H|ࢽ˗VWߺRU5_x}mVUy޽NlϭtqQ"Eç7uuV7#'2*.?p¼DUV76Vye n@vg5liM_ƌ'w쿵UR!K%aߏ/[:ȕՒ$ nY>̟ߴDw#Oc}4fzJp_ʈvƸV7C=W_=h]ѾW}ɂQ/c9{n,kzeKJiUw'2an鴺:35t/*X] A^n$ԷCn`խ4굵wC&qTM9wm#GxVOs#V7cZe \K?PaN/*S(y.E3g5OYxm^cGnƌH/{{=WLHEKy[h_=:_Qf.5K{0=ߏ}q>V1%,?Ag}/u>_\aւh_1OCUݞSvj_|GR])n8l#9er_,?NKb@$~r1VDĻ֝Dd'~4*yօΜSΜq?ufsQe$'-i[p) *WͯdѸgϭ0i{w23ٖ?zfLJZ(@S3UCki35sEY*VYMcNnmfa:V7cRoZr1/7G*)R}b S#8A,+b|lh̎ޜ5׾T?(R`<xYj|mhɱܿ-(u˙6\^biNL4W8Kvj7oXQ: !QV7C(VS|y?,>άIsh$NEbV buuםT66txGGS=QZu>}F{2:edD??}8ApH2s\DSr\eKJ"0xz틽ES}Ns]|Y(ο'=a7pIɖ9e+\4;YYK`}ifIH :#AYb]2'wD Y^aiM+jPUU$)soGQ9|`l:w Tf$* Z m(syݲ*޴{'c]5WlF/A9V7ǹ}Gw !MɰFcS7=߅!s"?W,+/Pb[W{uUz/[:#Xsb ďEUX$3|d{NҗUG[xu?x7%av'fu3~L'yάxҴѡ_z(lIh*Ý@ϜME}4 ĺFV8:[G1,~ܱJďE30*b1KfT~lKn>ɌO1f_m鱺 AX귺E-Kƭ|W^^CYr~cs+[=jtMa~ϸc$2c fkl;_<=1l`A($3|eQܸV_4?n`¯^vܸ?NTYI>pAߴݽ3&KڻO3eNY΀j 0#xUg%vD ~HK(jI(.?@׈ؾwൿMoTpslr/|y}cnW߭6TP#,vd;.,OeTC3[KeT~*V|VKS^2*_zHL,h*q8M&8exZ$F2AE-;=lS2w @}qyu9A1 M,V{2d}[xo7Sk)mOf Hk=a*9DR/vlȹcOؖV m=H \:vα]H(mC TJUG \gPyMR9H3HSn/n^hvBl$8d< Yb0f(VM7}>$Kky e(.KLJeGZ< KkE{ci,%m[oPgxQfzp-]Dǁ,@,P"m d)[7`qg$QqPq\dKgH|V$ջTL[Ȍ 7%9 ~B)+֯,0҅qbꐋ물gڮ:x vE *W$uVYV lq߭u%5 \ +w)EVRe'Bk.`*\ |'0=*gh]CX%K (lh,|tdBI+g w+J,1bwn|w)sμ ;='{h]PDIbCO{܊ʏu֛:oWJOeNy~IcDTuRg|}o$p5{<'|N9iSuJƽ ~Y*76Tι!&f$>s8]!-Ad9.@ZU9_rrJV7ӑ`̲(՚W+)OQlYz@V"|t,MYL#;{WS'ʆ&4):;PP$绤:͘axY۱@%ŧ;uiW8"˦uگXVOΥp"ҵ]T+ O ' .JUsf`iU4K)/4,WZ CĥKL굵 M;GaC=FbM06!?dAS);N@vϝeu3 {zV`oj(w)["Kyo_csdB?o[]{Ra5FGRD&>KZ4#W1⃧6J`̗^5fF{Ϗ ƬәA}98mG|'ئr',[ݼIas8I,GuهNYJJt,J5do=",ŽC50Ru'3*[̏dn錜4Zs#c@EKZ݄I] MQqsw"^Pfa˷/;PaBy7ݼr}飺Fj|z l89(J4Frk d tlx$۶6NRyL(^"XC^>PٹG KٳgzQC2*lJ^ãxz`,h )i| mi?]$g[EC"I~;_LLKZ݌)IϛcԿ}:H(u*avаȎ<6ġ>48\snGFz")^X݌)]w./{7@Ͱ}fa]߻hU`o_چ艤&y0̰/Ʀ!MNdz$I8~ omg4'O벺)'8A%?l( W,jB\&vj-u cmCV79hu3ex #M[Qp44IC[WT#gu4e sm3vzzȄj7gα_Awx2~ ޳٩]4\bRdoR 鉤q}@Qx0mx:m /_{~]q#sȒt[΅,]TQXLW:betcwතEp?O]ڒl{>cyQ [WՈ"w"5х}M˨`Ъz/kWsWL}<{l`u-?lMXZ¹Fl2%UV7C0A wb?><{>gnKNO/_)* {u #`"NY⃧6s|)KӲc4d>TЯʣҥ~W_=^OiK>[1顃Sı~.=E)_⃧6p~Ͽ5#Z$Ξ[˫jEuQ$-fE=űDxهOoL0tٳˎ>!:d.\u˪xNJV7Ac}ˡV0tp-)Kz{O$kw=1ڇ'R$ʝ4XX%~.[Ze<]eTlcb[p͝nCSG7]DRso{p }8ApDĨ)\ᢹɊ:[Z*K"8;4g[b?.%8pV̨|vn8L甹bY5W,;qr0}8I2\,'oͳeϫG%NiKp kxqeT{ۇ 'ҝq}!A[/6w>4A6UVX^aM׶7\9:buS&%>sV4r):ӾǾD;y!^k,t>/:dx8,~ΜS:/ue z׊c% _Z^KeΓV7C03n/; uC.n4Pd;񴹟J_ZMN,Qu+fїnW֘0,&I/ w0fS98djx* _zl1sx0(7QFO$OMz?LS>$ي99s+h,sv ăp6ME|AQslq"=ϛmۏ rC]}eѓi뱠,SCf8>/e.` Fn|-68ݶm]/;n֤$G.}j}Y/džt$b lp3sʬ4`m}Y.RH*8RZ>|yT\vΞ>2L cT+̌AS7U O jWy)r9Y)0{KQ^ 7[,k6sͫ7޾ѭh*=t V <n[/h,g= BL{grE5qdnhw߀`C/uG=syfG1x ;DH2Û>M!5~Kg'[lS+\EW´-pY M~-cakb$ͷ/5Du c/.m8jKUv>IO~i ڲQ)j.w򯫗َc)~c8/b=]vR5NzGcߥZ8j`kNBң+\B?GHq{z:qHo~½X QpOb==NnۚHiU兎?ᤡw[:#2* K'>ȽX]eUH?~k„?ZUPUh 'lrvUo]8Bn8d߿qqQnMGNJzSVQz >2y9XДSvxmG# p90?_8i%KDuK7m>NeTiKTY}JHWIQ|N;޲-)ESt^~<8)s |s#\DSY@O &TT#G]ljdr%`P"ͥ޾M)y˵wY}] +Y/ϗϛcuS^ZeE]&s'|.xƌljbkgցD.wLاϘշνu;D|}G{:FXϝM/u;[kV"3Hs}^S+Y/tD8W;*Ec8ɫn#^\sw?c \۝a/ʙdFK1Axj~5}V7(pJ=V1euSt닦S?vr/;wNȘWTॉa%0 췺O=ydFjmw5JU۶B׮}4X۪p)tBO˛3}\{ׁ-T+U?}eE`h~~Jv`LF}}ptĎ%8|@s*C!x2?|b*Ĕ 64xռ}MM1~tars7g޲],j6 V?/=+n^ˤÇ9/x[aȷvFAnյl}^X 7]1,([:#zKULej7F4F~ /XBe6%K7h_l9RT'͝o]Ɲo]V4imsKxk¹p+ŽSGtJwm`<OZ#cmzKlq6OC @q?jtzs<*bx4s-8\Qo^ju3r"ǎ'g|$ 󸢈L`U?y;gnj1*od> |Vn~A[)9d*"I :U@K`“:vqթw/WsQsa[mmx*3qD;]J>N/E~y"(8dΙ[GM\/OMJ[БNҭMAi<8<(i , ~ \cX5 +ѥ X^[fO2\6NxYͼk]"yßh~!SV&3 '9+63/N9{}Vnc=6Y},'Ƈ9ȃ:jHdj= N+O&S䂡끟[}Vs)>ϝW[W7.yM; QZBzr>hͫjJi}8ɆM=YU8aCZUD M>L2JSmgfL '|vd9*{<-훏O9r=-_L+V]x|,GNoE)C4_t u0ͯ]unFdl__v3l\TUy:޹%E:.i0TXS!O}=4`GOTBUnLS\U\d5$2egCCϜSNa؉#z\IK`d8] @ga'nM}ic8ɯP9e~uQ+]i{dWhw9ŕߨl:>٧V#,iʸhf́p}'=y$34ȯpM7-M+ŌxÉ4É C4C4C;PRp)Tv+TOΓn'+AV7C(2# n 4Y5n`i}q@ ] ɴVuZ"ɚrg%F|6TH2k fvS-kη &Ր.Ka(;V3)Q֥JlQ\C}^J|I1 Lm8:ΨH6c /iH^ś ՎŦ2j6A՜?`. Ӑ@4`g&F}m|SLJԚոۺ8yȈt}єwy舦=ս ogOT ;*yA/֛8]LEE h ùKVUuEyiUeWoۦO;=1 TOQ k$92fYVU6wD -T=Q;mG ]`g{>,!@8䙣qTyy>b X6-'GYuE6wFtUͳE{nER ҺiNƭHkiN+[&i*b &x;Z?in%5ʜ_xZ`]Qji h^ \f B.~y5rBz#mԭ9!WuP5K'xpř)gG<rvh ݴ^ F*J܃]e̶IF!wm_v]`a颔̨_/yg)BG3~o|vOw`l3z` B.2~W)B$*n鱺)k/8EN|\$3m9YU,G@WzReO6|POf/?^1' = nY Bnd>Y_guSi>r!/i .1BB Nܻo^[IF#\}]bR$j=cI)xp, ?V4m țbŒ07,*n0ңGf\9.{qL٪k$֮P:h3Fs9Ђ'3>{A( x:4hL*cmC|C,nSsPuPqPV&34GUKXࣹ\w2Qy[᜙­H4W%Sr4x y-dW@T-=mg?_9<Ey9n[7?YV< aIMCCNYyӦ}}iMLgv5 ^FR2MNzcwoM3;0h39P64 8sNMҪʍtŇ2߭prGol`QaS됝YJ T8OT`-F?\1^#ٿuwc8iusfG[xK|V[v$qJsOP+T{6;Ml +`A[t+mYMf:0d@Œlf@ oU.Y^]`J"kVR$)g߭@G)Rsʬ~_SY1"_.Me~E?k]9u ~s~9Sr) veN9w(^Eu>ے<+j9bC-N.+ M4G*k3>4䕷V7G[15Lo"9)fz*s'-,F^SrU>{AX*d[x4U"Ǘx;8<|8:1~UtAf}#8M,7/[w[SE 'eD%333H2٫9Rmr@Ifes7lfU+WsjNU6#~y" arE\O`v}V46l 晣#<6?yabHZVDFS~?q ֖ŘUDvD Ԝ.uh,Ifۮ~Cfbv9[O!tdБvDgL?]Q˜MOC4#IsPJgv=H2k꽺>,dΏ\~`)+ɪz/ /W3Rցqs_%~w|4!KiNWyX\}3$3:Έ}jo_Q0Ay|AaBnEҭOc)3 -iV7/ L VN7ơDBnׇ/h D# `ԏFҼw3;Ä  'O7h t AA(Q Qm8  Z;~AA( wؕ+x^Wc %Dʜ= Unǁ,e")±4]#RJiB0E! x8 ASVt+Jho!SɞW"y3.w)llw+Sn0fsgxn* 89?8+0 ]^ @F fToIaӪ=7&,yqvLZPfeEUeTc_9ViVk2K3zYbU/낅_hk$ >4 S"O_^v fsGn:|u^U@T:\XfuP8eJ8gTezlh:10,sob\g -; 6jn2rɌZQe%v2+<۸3xn34U`eUnC+w)f4*tN'SD6 Vi,s2B[?Y`쉷P< uzYbZK?3"4:TQ^nIVo2Y_؂ y2l%%@.wBH2M/AbTFx/Y ؓ%8 %c\?_z)Sךp G̴K2ο0vmj6SZ㹫+I9` X.;\Iz^J ڃc2*#IC@q%Ku6h < aiArh86IOaB*:0#+PXg >< $H* e'޶_$O'h#}AlhsgP1]QmxWopp~]#IbZ'էʨ9ciÑd=FGI}MMX4?%AȕD]Q]鏥o"|!dTxC_p3ȰGHeT^w&'FD W]C6߹`I-0 !+<4o~p SG"`<ͦ!Ms<6{4s$QS!=SiU!MIfxm$I]O0GCz"+C42NE:a[*K+p(:1J`vxݭȸ+=K=Q M@vAǁWgp,ƞ`$3xnEf, $2 &x=B4GF׿Y>傟N) V$* єj~ߣ=\3 _* TF7;*?Jo-V[V7CAr䛴ڬnx  `a}3h au3A(x_- f S$) ݂8i sL# /j< ~rL*M4O艤LU[9GKQ%xp<@,M_4&Blf[ق끟[ A!gMi_Ol9b XUš@8ΞiuzZb_WYAid nѧ!͈6OM/mXBoqh=v+*m0Kхg+IDAT\d "GcS{V992Q燀[> Z l 8MQY^Y2g=>OKܰbOxiV&ךz/neNV{u?I9%ʜn.EbMN`a)AEn]A/d M>M{UgRo9eV]nTs`Iozm9XyV\@]V7B#7 ސ{֧RZTigCqQ$ƾeNʜ2NYp&eDaYp{Q C>W48- )R <9*73|,OkU&(iXRJ6#U5zhNY7u)>+U5ߘw?)IRQ-)%HZIensg]*Ei87<6ZARV+b)b 5Ϗ$3tG &x;)B荦NMeHe`n_<$6u>IPi5[0hGw,'d zXw_)v/9S }'xKfTIPZVXV*?gOcm轝#I9:奩R].IzrpY k_X xi)h;"rW66pM3ѧ *\ &Hkw_TR䛲"d=}1SJ,Dc)6wD kj'iU@4"q M% |iTr̫6lSuRQ-u^M?!\m0ez48dfU8<@^$q,84^䤙 t?JT'3NՍ!^_iTY >Cneoyw3:fiJcoQ{тʣHP!AiJ5 >ͯ_V!CX7q̩7Jt􁊘Z*p-Mǚzsө(,w]vDd)8XTm< Xߨ&ّ+v9V)Xf(Sʎ`\Ijvdj}G]JWTDWn`P_f Tog`X5^@@?Vt=7jƔdMS)S2~ ܊4횐h޻IT$?2 @\Di n`o.E$R4 $'RV5nx=^%Z ~"S.rh U7]2y0W1^ hdt|&cRs+cvË& \ ̨P6f*=iU5Gk{U0'#-'K$2{ zMnO3׉d)Me%bN?D`2-gQ"p\jɀUqs7y=m5{7@@`dg-߭\L%U+kxޓ-1"JKQV7EޣCƏ5ԕız)]Iڇñ4Q(,.y!B-߭dFUV}n$Idx+ 7cwG5k$A}7Ѯo2bhCVUtFt'KJWQac-QCR㺧vt >4М)L;*sʯpJ-$uR&-ZލuKBHfT\gK]Aʎ(7=1lᄾe#1É4z}v.U]7H2k,7;qFM$5!3GC77)=$ïug;A_43GG ofA[v[`"3OR%(w)ӦNfTvFi91F'9iFG4(uS"u>Ǵ)ڇ<>ёX*CO$._HgL"*0O97~Y?$:jFC7!0!KX=8:U|:nT(w;V$%nDVXT>XɌJw$exa"+\,vS>X/uGż4^j}'fT9bbx$CsJvTbp`Òju3$IreKČ܆A8d< @,G/MR$iCCZ)ߣ.б* `euSAJH*:@gZA8d1j_g[| -;n '99TyDF͖鏥82hZ3SpFB$1S0$A࿭nP8Y"QyT}˙ci4#MHY2U^ϱLNYb]r累a(G$yMe] |Q??DPеMISAK>imPՉ,=/nO$ŖHN旻]hH2C8'm wO>̂*7UnJC2clⰹz >}xg>3*/fؕnUu^7f,gpC"OD#^L*2O9,9r+2i5 x @h> g&I(G"(`/@MrǭHm4 틱x'RR8r+Q尉b, ܬiM3bSw;eUp,ΈN oWo=}1]%5zv$1UĩܥGg%ʎ;3MZU@Xױ7xTMDPH\"W9{n.EۯQwq]ǿݽ}hW/K~ɏ!؉C6%'B<:Sh t:m) vٖR-L@`HӖڒҖLeq1vlؖ%ْV>nZؒu+3ٻ{~s~RNp:)m`O*;0oXlP3_nSyuCԨ&O3Vߖ6ʼnݯy6GrL;8N@fiWA@$E/wj³EoWE,0Ft1XI;G; jpv+v8s5툇t6%|l6tmc!7ͭ%qb@u ^sL]w 웻6$ҩn;oCneluphse8rtw7ߦ.t8atc{zlomv5FwnՕrLc]&&NdKžp@pOgbb!kE{I%A|y'a%$̶4^ߟ`ꢶƁb? ҩaׁ+le{Ll=J^6x. -9yijlO']|n;׶|nJ+7H3KEos5fn古($ie;+@b}n2U1YqXT~d^/ڞ"_Jm$:!M1={}y)_P[a81U6-M]6LӳEWS1wB:5ɒNL6ub$>nCT3Y1Y6eW|!]6|Sׯ9 ۋ*Ձ8"^8 $ *Y̬Q$EɁ>V iSr߆$hw^7!A@Sl5 H0΁s*/+1sx?锔6octL6|kF@vvaZm+5W:E3Sη"@'f+Bpw[$3'ɷ-h5F;tLv;vm=K:'3*z x3p0wwmep KfVLv-w}ҩ~wD,/ VLW6!D9 >Կ2$Xm2(q.#]ڷHZeᎡ+!]1U+/_@CW$ ]1]wvyMA74 :SjNj-VՖB[年Ë$5'S'#Ie7+bi c%i(m4/T9xؔb/[[{KRM* g m Cgך.%|щ?sQy!5sm]\/Pҹ* tv tui[jϕ9>UxCҩ' LV>0ww¢A=CE+5TyT"A݃.V494Vj *-OlQUL\Va -hтG[;.VPSŃ_~g߱=>4l$dqSGbߦnB?كcEWzbߦ%3 sx+[3ǎ noS71UH:'a_W%xξ/)M:C ѱҩ f2 HڜW3Ks05р ] bA@$]2'H? jg3Y+$3f$ o Cgh/mܢmWV {sh?~v_w'%/zLVXR h˻ɆD^yj[3p0z=kۿ,'b!;6w?tRJ[$ΤS&_d?~ %ZjUE/~ _wlQH׎(~wH(ILҩ KZ7zK3U<Ϲ3if,zEy*-9[on}F@V›tN: ݥN3Uxu1xb9XȤ.)ҩI겲_x!DsX# #3B33wTm` 嚉 R ggfk]o<35e[H^\&:\g>!]ܫ3IX.)d"W'+L_B:u֧S&:beـN;ZTovt.oXeA %]lM:NrRW,7 du]X3wݝvС"#S+S xU])v ٜXz`^b@J}/T$jiQ$d>RжƠ%i\r^7aPXi%zl]pmXx `GqC"X9r݆U:? |?| o~s"V 2 NۑmF2rTHT2tHu!BdFM9>4!> >֍c69#DVLv#X3Mt ;#H ZVXVU_~ E@Lvx7V;+Z < Ԩb1r1#]=<5tߝ D{d_ *ÏoJ:5wgpJ2-cўM:ߝ Dgdbm'|;f.V~< |tU;$DH :W&Z8K-1S &$G& +p^FthW<{:Ty[mq[4:Yk{= a2wtq(VF_`1"""k"""ޖH)%Kޏ{3=T8Vsz9 =`R2d:Ly JŀC~/^4 ""g&4{Y`. 0ZTRיSDD]*ԊDRc:$1fR!/鋏HDDH*M?rYh <[R1Z. "RT&d+prtH"Rq?T 9}QHy "RJ(tX"R5@R1.\*TDswIDj~9;`t@""2*x]"Π_9g}~i6pOp'}DD)"EdZWWmC9z[/gM$""ϤW$AJIf!,8JŀL$""*H )%/A#"R}FS*L_ rCO,#Ue?agֺUMWK]rly˶ I"GiE5 "(_%5+MT[\#;ׇx$_[\F"y`Dv "K$ϧ#/M#fE %w#/ˉ"3ڊ8lW$7Hg:~*s8!Rӡwx!s"B{]^Aa!9~7T'DS(P{O(MN?@ !WD\rp䏁>HD "R> E+ܲnx\(/gD\|$C,]"p =D(@O(3yJ;vw]"KH$ |vHeS@D/\ E<HCJ/$N!./gD WאH~HtP"R." HH~x}҅B䊎Oe /oK_#|s%,dD]D/H x3E$`C39cOLg(6Sμ2Oe B$M"1TDID%?Cʶo\`SמW|MD@=$/&<"rL*%'7֘GþTYkm੉c5qMP%un~p:gd3@KJDr`DTK$;H$? \h:.E]ɬ#O40Zm8y׮E=$!0x 3%!O)d:^pB~WWmn9!?Ylv>pFbAwEvNzB 4|F#""RRZ<(=3lwf]9n:[YWڔ+ܻoƕ{):Y%"U Dr31rӡHrZO{<9$eyCȱ@r4.п!)QGXm/9b7F_ӁY*ԲD;;EcmKvt{R?~m ']aS3'r%R />f:1CZH8C8G>)QVl^wQǚpٮ+5r}P !N+kmIFE6Bi7A""S@$>l1ȡ~vFi,mBlCg8Cln#_l͐Ma?[4_Ͳ//KӁ{TzJ]m:cm-Bt;6exr,fuYk %QlG /k=B]`a+<>fxs%RC ⏛DDHK$ʿY!Z>Hw}eh310c*کYtJmU18cHCO$` Y(j rLxhZ|gqZOhyF Ęwf戟XhG#(aL}|e}tł4Dk6_d*S`p:l%#8bMdi8oYt ,>Bty82gL *>OE_|t "J2mlVx<0ޙ\qt{g(f-`usZ# xm˰c,c-Y)̊MhC},eĂ>k"˃C3fw,Xfk&7_ciM"Zן'<5lUX:FLdJ5v|k S"<ıtݓي%.ږ0~Âm3Xtt 0H5R@LlnN-{wp6{v"SQX-ueI23?5ҖC6!ȶ O(llnb9=9,kq Q0kz?lm#ZaKh*Wd,jWgq\k5a||R6ffxIh3\5sl|x/e*mkM ?|l\'S}4SYw2o<1aQ0eqrw?<l:[i,9;h7ÞIw 9)Q{l;S~m97ơNeoߌ)ũ%%'qfB5KU, /,œYW aG 3 L"R-TYN:}_xWHR9+r)W0[IQ78}iq=TцN;TvƂs 1-rIfr8̡hoL1vwfMG4mok{,EЃuƂs&32=A'2<2\}s3d-݋۶޴sr~3y K0l熆\3zi8fYda`ʙS,a'lGfX@|Y}Gq C;_ //H~ a?S1Y*~ֺ{D>',l|4{h7[rEח _rFM#Rt)R!l۶} ?Drc3*')Cvsϖ:'_gqe-:Ǐʃ(.o 9`-ƆH٧Q"8'ʴ7U*x V%|DuM~ޘ#CuYRRZ"׾Oz;fN |$RT'۶|q_l{B-Xh6;D>ֺpk}VX5aU׶>gu{ ~8Y;aǦ!g{Rl LV7\=bȼ*_+XCHVl%CDN#eoο{t$}m(hvw}Еi.ӎƆȢ ;χwۊ2Kq6u87- .6_N}]8Ĝ+ŮuDr@Tu_RB~#m},wpUM!BFwW4-5e;q!Z"3x8î,8ԪflpVG! NɓM"R)T9۶m lm)]n mmjCo|_sH#.Sb$k!5\;{{8ypxd0{P,>qO4stԣi )X:` ;יD rm7Oe ӝou{l#O~*÷WFHrb2EeEl:6tD;M8M$*?mo>ÿdt0`yMvD43 -.^PK1׏u9Ka@L˩LgUϼ8(ρC&t "^T?"HZi+sEt8cd8|!==쁇r<ȇHޜ'bBYB/?o3/1%n$|d6Rd1xE" X߸ơFg-K:N>k _꣣YꈑދNt " +H&Mo/>e K3җ|hS(G e97^hmϘ7Dl}DeރMH$?H"HjRVO^x(06+_t?3(;rlfoi7Jv H-#~Ky˰\1 zmR7oS,iO=?"X#3Frt`T-،,D99(d^K58JEsL"&v$ڎFf79X.*E@_n9cxur̍~:vi}4v{`\O9׮r.Th;9('S07m(!m$0[THZ$|{- Jor*[`zC8"&2g*[` ɑc)_i6_ LxDvK$ɱ 9grEvO_那OMd5c%^]mE"$:3Y*HuK$gZ?{|4㙵  l/s{hm鲾Wg ``:W$slYOmó^Cu`Ęů#igxCqmC3e 6wՙ ǒ+e_r8zf`s@Q\#PڽF78Ä3y2s?_nW| r/A{*rN2HM Rmo&BcK|4Q3G'2۶mxQJ!? o:[w{ݝ?f]a{r4ԗS_-K ˻Ԟ, R:+sMf ܾg|r R҅" |mgߌUx ]w7}qvf۶8>+̅-eqΊz\* vϔ+mY֮(+CѴэ7E85RTg\[{pue6GXRڗqu$!i=1ꖾMfljc]1WR^2#óO.i=1Be(EH9:Ӫ@DAXmSB#w KY[q;<`]KMuemoߌ+뻏!::rGE>[QO$=SYWs|{lt'@oCMmtm#i=swSǩlG y5n?{9GrI ,k9b& !Of֪G/jh*HEm;D&Æ;}OG˟~7;#`KGt]'CtŎ=ŷhL{&F6&<8dvb:^u4> 7 K nw_g?1LO}yW@MdK{r|j ;z2S`0cxG`/zDH8m}cGl8l plp,`Us EM;6.Z!'|X"3"3ySViGcS:jǸw,[@[4@}rk>>hhG8#Q(d EyLټg#9VɃ+(YXjSP%>%'2[d~"#yϝ"S~ @DC(m'퍻g/MYo 9iyP>fxs> :AtłG-ES9sIMYs}L}3-""1Wt " T ۶g~;S_ZM[t4wh,OU}>"77BYYk ܾ= u""" 6Bi&mY"ضHYE維_Ϣ!.PJZ;+2)h\ʦ=`}Kd^k'[hZP[/ln}]s5G\afhɆHYM!2*HeH$ 0D**-2sCe ~gBXToK$-@PDDDDD鋫.xW)WL"""""24@E$ěIEDDDDd>vQ@' t("""""9 -d:Rӡ,WϚD;:JWEDDDD ^F_|t "xE"t("""""etBSQ@K$[(UG2n/>n:m*Ydsdӡ8^2M"Kqma`>:ڰ*[I狤ytTG7&UmgvT%?Gt,3*HUxNӁHQ@\cvpvL;>[o"F̪ """"n"vӁHmQ@\avpڏ>_sLGg?7$\J_ӁHP@gv/pw"K枩,""""Rƀa: *FO[6uX:ϝ)2oV|*PȱLQ:"6ӁHS@3<< }9fE~7T`!?AD2sL rUMQ@3Q*#vx/;$قob6_t> V5Y>+ڰ&4c ,ꃴ ~6拌?F,裻>HCO#JM 63sŚY>!?]KDDp!}M"K);۶cbտ1n힦`Sds{;epűtY.0E'2zsFe9ĊlEh-5-a7_YͨDDR tq RVm7%?-mn{`:])G,NS,5sER8٠9:Ztm#i /87!X\`hf:T" XbCɱ ODD"Ti:>*Hضιk S&owCg1qڑ3zc4e=Nb6Er aTX{>StS*8'FGt+(xRt R]Tm8y?Mđ+ܸc\G~V6Pz@g֮(Beci ]m``*o&_{pTHU,1^a#""@ϡ/t R=f&ض~b4[&L%Pڴn}kyFYpFo?:ږ0~1N9o?Soq'P>7F{F*wτ3/iY!H6D $mNfHkMǴ9ÇsbgHñzbehku?YfC9:YScKRJ{}ϻqOI$;QKjdl|_߸SF1Ai-\#`E{+@oLk67pRWԑ9ciW_ uTK#JK -NWHe: !* b۶Oe mv<]8tL.Ӧo L_ҮN&D-> 6;_lY\|4lr~զW`k YrAODDL.K"/2Ydlg O3ӡAKܭ!Ȏa.0Ng,ƶ#"-+/Ʀvkc[KDD*UH$, m[?T1Igvqd T6y:ևgp8a(vh 3!""eH*EGm.?5_yîO.2,%-Z n$aڣ HpL%""HjN, 'v7^a:c-HXԗdĨ &Z\aZkhDDdTym;,wɱ̋L3A赾^9㽵;cf>˵: &&췖GRXxg\DDd 3Tdb/6~@bgG[VG%^#gZv?_߃̿gDDD$a:zy9 }o0B-@X2&*8|9چ=_^zx]ŒG|"""e/$o5T=ɱ%/Ga,bs݈9R[6p"B0^x)$t}/eEӑ,J`/<  *:Ѱ* 2书oS@,<? Wb i<KhO|x/y@U?#&xϸH{9,@+@Py6r'K'FLBK?"""e\O"n:&:J#_قZJLeNR9״Lh9{rELLg_""RS 1x Lpi<7݂?卶ɗ9ݗmӾ߿`ی̚34ȌEDD\p=3 !DžZJ&G9:W\l]Sy3*BL  [T%Ց#Noц!p5O狌LKƒSY37`νeKDDj_Ht*HI"y%G+\ Y7;:'≱6 N[mm}35)0PA1Hp`DDD\$WBADdۀXuO#tشrg}x1r2-Pm$mdɬ㻔?ֵk6_tt\v5α_-Z`Ȱ{QNeYԪz'sRTed#w`l5;5X̖-ixh#SpT݃38 ͝).D.L-wpƕ6U]rafD}_""RӖ?&l0@J$o]?=e:Yc|٧w'A)FR9G}fȸwCC ;82)џIG7LџI """pmɀ@Čc*HZ) (SCXrms Fhl;R'c"]gXS(Og h cn2S=z|)L%)MϏ:_My~针\tO cP.8q1/+tƂ[sn>#}oS&3FftƂ|K/rE{Sͭ)Pmڣ)n Nc @@[4Pqg!EDD*i 7}6Ӂ4+nH$_|\eectx|,66[:ʐ'H92sa>u-aֶ[ o`h}$ͮ[ǂ>6]d#ó%!?"rrHx}Bܣ@-I$~uIeՙ[F48㮁|llaŏ\m#iwb$ceSXSm`l6`*G[["7` L9 ֵX>H|fL,T p1}ߚDܡ@H$~>4`)b=9~V6畠@)Y?edSG h,!E&o){bB5G4D>"|tf&WZQ S+Z"C>Hgt <jA" $)mu-a6׹򦲁fxj;-mR, EHEEM<=B.""""51 N_|t ,]"~ \:cAN쬣.n\0a"""""5*\&^wC\vNlϲl?˯wN*)+)R4%/~h!źphfrELeyr,S< t U"h2 6\/ 0-08c`:d`:|Z1M ('p|;Yd E2taEDDDDy8xt R^*TDt("""""R檈6>Bɿ,ͫwBK3I"yp#7TDw}ho\f(cp˻^~ˢ>HO}Xu7__RFu A냴D^7Y8)]DDi? Gٶλg0*qKESE'2<9`{'e!6E ,|I*Wd,9M |"lm# d > mV5-[jp:#ó4+@DDMM"GGٶ}BhyӏltȽfɛnS{b4~DlgH@S4Ff="Y)MBYGp1Al45+EDD=?/vZm۝ܼ;Ƴ[ȿ ,5l`h h[*"""2]I$5 *fvÿjd&S}=|AB?ކ6Zߢ3f5_@OC>no*""RtRAmʻSot~N%]1sIxghBt쯐ߢEBsUqGI$7`I|7^!);cf:S*U &~ ~ˢ`.h%""uI m ض n&W\=A#SnMҮ aL_̋|ƏPDDu'6DS۶x˼{;[Gy&0xE _iDDDjԟH>tLmx';Y[ACydR|Wl / ""RL"f:Z' mveNxMԮ3]31=u4Hjm |D |ll 9$rb(AP"""x j ;Sי y'Tl'>/1["""'H$כ֨LX=Q1rEvf|lN a:͛O,/}(""b\KON4uټ#gTW53a")EPDD .`:Z[ɞF329u_ʙi ߿Ҩ fK.e1B\/[k8&F_~ӁT-/5QGGt^5mMc,chpM?~fzBlj,&3ulTb}k5%ENe6v );k _gEvuް-2 [@-rSk:[dDl>'tȶY7&aR*Ȑ+o5-pf]?RGц<{&s< 6?vNd]=mEDDDn0M_t D3)\<Dzߢ>DG4@]G$#(6M&_d"S`p:l3#]% |}M:_$;l:biMa?]AZ#"E18SF᳠=>Hga$ò 3J73IDDDnB_|@ HZ eN‚Iծ/PDDf @kp0}حvU+xއ"""5rզPd'j:*3l/t N3(qBKH3*|caTtLH$Cr) 0e:J%K~a>AT2XDr=04Ht H3_Q/"""""\LA3#|. aԨ * H{-CQϛh ½%""""""&\g:J Hہ6ӡԸ8c0/h6j2=I"yp7$Ma?]A:A>`ۤ69r䋶WLςh -?u2\f6Wdd6t@jO$eMV5/_22YK)`dcbnns{ZŽ]?[u#[箨_ғ?{5@DDDD6 l/>`: g.%B&PZ}Fo :QGhu*""""R'sT8 \ э[E>NꊺҬ-JV7/#YK DDDDDspTm\1DCH> Wﹹ=5G""""~Ax Fnܪ1gYCYvw=-aB~w񆐟eEDDDDבHn0PwZuxtłĂn)4y5t_i>J9_SFHΨu].ok 4t4_cOT(q+I$4=q8ĖӮ֭M6\PDDDDgQjZmSu:W<6aCRɓMaRm O}pֻ\"/""""5kjI<wa ,.CEDDDĨHi:Sj`CAB{!i5; 6ܾmhn9y xԴI$3 WH$-C&n)Mt| bNhO0V{x{!5Z2.$tnthE Z7EDDDD|h.GU+M|Lrn./e6PDDDD<rAv Gzd\58K`(T*/2nx&Ajj@ixj"cSق^ P*DOe{զpKmI9q`:gdtpبxϣ#'DDDDD"13Vh$2DAmdZa&Wd˳QK?PDDDD0/5H`3yvM3:_݂TmiR9wͳC""""]ZfA7gj5y|"wEDDDDl3ܱUnu@oqzB?quDo [}4DDDD;~bA~"~HG$`=ݗq˲L脀v%Mݶ{StƂengpFɼӜ#(ߤlM1wg|k[,o w-uFlgYV=V?7hrĞmYL<5,K;JEDDD8 XՍlh)S/rq;ZTD4Na,D4cS{ yt$͞ɬZ˒tDQ)y5rԥȡB~{bOn7gY֯M_nռ{ ݱ ͑#'a;TSy RY3yn5E[4@w}X, H N*Ϩ97vùxSmwYt;ʩ:g$'?!賨 |4ڟ5/ ̽!E`=)](""""RqEw^~eY3ݖr (2.FZ/""""oYC#W~m͖enST&d3p0DDDDDD}'t^x;31`SJ DDDDDD]Ma?+CKNѦ m;j]R]D2DiԘue#ó/**52A#~ڣ.[>} ۶~VUO DDDDDDdz>Pw^/A`C$AbOk|V`m?W||ԇIoo5b nRUG \n: q_4\j;2?WLsf:1#p6 mwnRT~ ^e: 1#~T9 Zۺ_wUq$,\`;z}_@mۍۻX]H$CDDDDDD̙c*x@e@ DDDDDDĜl{lbkR`mm^-$ݦrETY ;p&WkLy1*/VBDDDDDD:~L]Vٶ0慪{L """"""?s>w^eۼPYH$O2xTX:}&3M?6 Xi Ut""""""- ]Ohmt,H5)~ˢ#  K琏X( mJy.l|rpIDDdFg L:zݓFf 0'"ebMMT6aE#/+VOjEw}5gZ=ʦe:DrϰcDlA=qCgi ;]Y(R_?N_#׳1d:,&2O;=+PʝED-o qRWԑw&WSd FMu*/_CD*Go3JׁMd <84βaǵEXo-<+Y%]ed"z1vE=3evgH}(p i3 ""]蒞5sgLiۿK휯yI$Ct("R~)Tj ',NVWm\y|ԝ]sM[]/qz-v)W3GZ: ""szo,vOfy`hŽ9]Tx9maHep{c5ҮXǙ˿>,Qbu !?Woy5szַFLTsynߓ1g.1oYm uq'yN3:{٠//]mJ*t"}nl,Oe\mWgqGMfjEc7pf.\H]e7ÏwT# -V6m6CS9}_nmQO0IaE>_/PZpG{YX&q@i pjO74sN鎚G*ˏGI ""G h,>|E:_$/I6m:JYǦprWJ )Qn99k[®$Pz om]ěO[xx9sw[0Ssq]/pCӁM%3x_{4@c[C&,XTt XY] o8NdmKt8bY9kY=l%_{p==3v/x{#\ZD–:4I꦳E~kґkwƂ3Үt/w8.XsWk_ᮁ{?xplt8""Ry1ȑx}Q/" w}G,sd|wvE>ZG:Ӻ냼c!wwL%""@ĻC!+M""VqɚF1?4SeE.\H}\4Tfi> .[ěO]7Aӽ3|! c/ f<Ro-ú?5N" UMaNt N縳@4f667<1a4Cs{xJŬ<6o٫}DDPy`9}}9W{86\6#1 ەk{@oC:7e"; OLri!7k6ȡHZvNt+NĐ+ژοyކbOVyf+57^sכGDDsxq}+t"R92(dOD 7Y\YS; =),mⲵMj$e/yjtH""bFD~Ӂ̋kL "e&W$[ Lyg)-8lyc97ҡ_*%kdM#5o׻&M$""f\ z*MxXk:,'wGY2rt/w8󀿬!)Q#ySYw !w~/o:h1Gnyjn#@D<G_9^[Hy*JEdM;?P*o\ѕ?yiJ\߽x5G8RDD8tZ@EdQr֫?5qڹMTL&sV5pO_/]ICo"n7o孧uSKDVx*Oi`PD2l 9p hE]ln1IvfAw}}J^}bR,@DzefYYmóg&Wd gHڑoYn}V%RN7_e""Un5p RSS#DR]>26Hah p|GMTo(4S|l  _g2In9i:Yde^t_cD:Md 2)P>Eg<1恡sƦlSYm9&2vMdyh,;3d i+o'ȆD4vk;ѠwMyHDDipH$@?En"* |DeCR"AEP$˾`}ϧXOj7lp@W ;ѩ8fXF_غ.[>%"b s>ѥXe-d &3ζ_:ַj_-ĸxv{GDDTON""2> n{JE }|kˏX,D2 &_e !\t("}AHzL Q/"R1^%"!/^~ :zSDTHg84Xs|~Y2\L8 fS ck#t("29^H68E_u|9L"""Gf$'v @"""3e+[PL}Q^'I狦Cg MM8%""YU+TkrEDD 8훚(\i""rMa??yzZPD7m᤮PDD\ύUqk s&ӡCV4zCPDDiL$;(""pz tDCmwϿ0 tvn %""۸ud5z$1̢#.ODDYW_;UM-""s\͑{K$} fED>~Juf0D~W}c;YWO鋻r^eP/"b'X_D iM""R:Sݺ/"bx]C9gy=?F*Zf@ED j5o?]ɿYk6Q@DrewH$[)mN3"".O?o5rjPD=ү=lt(""tuFn%䗹x/ykȼWDqԭAED\d;U{œnCE73;t!(,=K}PDDj>ݘp2JED\^Vɿ,ٖ:~M""R Mqςz-מn:#umED8; "R,K/\k*ᗯHKD{8 d pӍuy ^sb0DJmnXO ""5lf'o p'v޳{L!"UU|kM!"Rrh8k._Ŀ_t"R#^sb CD9C;7+DD+ʭLCo:1oFrwrI(qDO}%"bgi4H5:uq' W8xmOio$qA,:KD,8t(R&9 \E-u~B~s|O91!,rE\\OTTYvOfyjSYEGfHYԞPD5\ʍĿ9ሇ}C)Ċ0AbAѠh?}|枭2E&3s2Ń\;c˥D:=WFUr߾t0u~&tNės7Wp6,;rVb_Z?Ǔ+"9Nޘpީ,_{`/?5"Kq)(+"գ.+Ohړ9G_Ln|>6Nk '9l:qɣ#in9M;'ITH9hu#ne1*lՄl~RCiBN|j'mu㦻R|0U.`y0hG6!ܽKl৏>~pjַ^Wj: qcnKo9ttH}Vj='RAZ=1?Ȥfn^E K||vOfM#%4/[%_HZoړ iz<O~_y`\t85O_c: )tȏƹis.[5[ZM$eF?n:Y\wŻ5҃rE/7?:Yb7b.HHeo'"]Ff|}Upu-DeU<5ŗjy[m[y,T7d{0ςW.X-mGڐY\+wr_ [^^UGHU,M?_g?9DV"wi 'tj7Jm8Wk%y^sb;nF9rln%eߡJSF[wpt8]7\+i"FF/xؙ1w2ف]'mOe{#ߑ|ռNa"͇Fѯ mYCWkqbgt8H rҲ2b]rNToI6xJ_,,l3㗯ͦC<84}tt(%Zˏ3,w qUsI]Qpr;|J'1-8u~èhl/ C.$J_r\i|y9=:n4oNM][M!} Dt4S(GxWwEsDUW 0*NoC_딘)ogqr +"p&ڀlO~}tV߲͗͜t(2WnQxECNS'TL͟~)1~gvp !jɓcq.|t(bW鋿*g`' "-o WM-CLfyvmZ0qvÐc=f/ x)V6L#GFywu4౜O_E-1]m;鋗eY'Mԫ*-s~}wܰK;Ŋm0{dnd(3Sg9=lhGO7'D%˹Nm,rEc4ڵxR/R+o~E]l?\cf澨>z6G;}qpfxL?vO~񴖴T*/ʇ/ZVhD?N8+Oh#a?ۮ-OME YE5tC\Wk7+#}%+gx7(oc烷U_6|QNzHsV5s3~u|mk7?W\۶4_w~EyֳY T;nŗ6qߺUk=4a7<1a:qȚ0b?t(r|/<}5~9ڋױZW;3\ǹ?e:qǝ<h,kG,HJPUgv/]IHG"}rN&3;]{1Im|~2-U/'/_DC{9W-_oJ.[_Aӡ w_Sc˲\EʱTW戟8>q*%$<{|g/cN=naȜ<6Ζ<@▽JkȏsWėӺL5anyfeJeB~]8- raop2i))G`CsFo;x?)5anv3?_ =XgZCQ;3[on1TQfE=Zprzꃦpm)ϩтߋ7pu'pfot("ȮrrN4b3uf7x ,.gDK66:z)Bz&mo8cxl4_{qgéia?b0JKu45Z+嵺9̭o8wka ,V6ٗʭmG{-g90k8kIx6VYd0jP*__jvg#2e[j}0k6hqTWZWhI@5Y0)= `iD҇fT{4_u\k߸K.i9sWZW3覝Iӡrї+W jXwo8 qɋ6jI@5["5-m h\쵖 лJ`C3~#~9vaԤ y/6sÑ PmM{k2{Ƅa>e(W77m:ӡHYk7ثtmsIEoLwaU'wWG]R>O]O_j6 ,>}jaԤ6>xޚ|r>q*T,CfhVSJu 5*ʋ]Qn~f5L(zFWE0*X:%_ƇohݍsInϴPj|ʛ[|x~z]|jfJ`3)X| M p^}bPDjS{TƔ !?=Gn3yw7qP$'f\E pQle[M"rT<r!X 2g_DJhIDAT|wgD$r$"|&z+tϥZqFӹ@ȶWoT?7j+lȡZ58ӛGGK>;+o=L,>k ryQ,ͦxXPDfUS^AӍs\,I *B]៾Z4GU=]lh+ʙ1.X9{y=tG^NJa¶9szw\OW%FI 娿h6 -86)9;6PX!qt#5m}=88U:Z&ե!^qA״Glr&^^φ+CtƂ4ԇ|Xb]Kcmh,㼕 ,w`Gۺzb8Q}.x߽ݴt"v)l-Vq]E_7nw6=;m: 9D`sgm3<_M)_f$*TW._i: W6>zY} pbO?5©=1ֶ5!o~0D4FUZ62uMezo'C1)p csׂ6|[r"6nol=ǵF~1)t!x<<{Lo񝗮AK -y4Ypuv/.ڣI]ƻo>4b:3`_~Z3\B~ȃhYֶ/_QaxBg,_Tͫ7nnU??tt("ecߓ ӡTk] /G M:NY(|0/r͖VG#r5-7v"ƣlIE|q1J-;ŹlhYf":l)G|1զ[)%[#|kL!I/9+t*ʂ5~^z`aDqz{,kM?:X\5xp߽t"{b,u?a:)z̀k/^GK{ɈTh?/Y3BgsZ/rl?;\N(F:/]jʷ3w-xf9r w2uJ<Xf% -6BѺǷzWhl^ǙjJԖ)ۧՍeۥey=$R^_^h@ ӺfK+Zʳaߙt8t^m&5(/=δ_eQYh#{ T+ J5_dQ>?;`_tsw?4h]G\^{bےUJdD~!`e =GEieShG9GkCɱ D#|mT!??i/uvnHE:;_3i@5Zk: -lYZѫkֱPK[DJy.5F{]|V,eusyZʢ^_ +VQXhw, &5P򗻹k e: Ϙ`&W4JE +M/R>>uN0ȡWn]-z\0DBw}WS[Ѡ7w{M!9 5F{ ۑ K^&"%?n\itR>ryY0X'PsVdޢA|0DYZп9e+ZyOwbDģ>A MQ^e޻|qF,E$Ԍe72YH6ݲZ󗱪IkjD)S,Kw?mӝèh _gtqb>EiUS}qUisGa%g{m&lr . ,&dsGpƒ(f49OPU.'[7aſCB$_n'1{ &WS tV-],!A*I8 l^]&/ZN(; ~;'OFSStHDEe4E#d}+7D"}:Us%3v |vz;0O** XuR`$I3p I|T{8O$$8 LIo_mk9KIԋOVkSp۸Y =WE1EDq`\A(!{GVX^ƲJ'W҅%NwVw ~ g{ Qy~l'7Z,Nk?Ig$'*aWWl 8^ttE ](*~̉KJ.YX2>$R6p8?l1:Q80ݻG5H=I<{x] ᄂT:ci4^]pѭ;% 7g`ɯ̓H^}OڅwXmikV6c.XQ8Z\uJug2M޲4H&G;w;=y/ۥ_TX8!2={F& /I ]Gc%DT=6\D>;vJطk~$X+T G7 nT}mcá"J(?"ÍFxd߸0ݹk tYbBQqA,v<{1&tS `sn) eVQˊwnzq\x^`cooK4u.*Q;3?D֝!$@7&%|^\r^Y w,/CKu PeӾmKa8TU3+u]#R^ vcs4ҏ+`'v2ԭ;GD@T7Ha9 xmkC1+=Ayn 9\Zyf 1VۖANI$TJq*VQJ^m;Gp{W9ލsmC7Ӈ&DATⲊ{ 0ξq7= 3tP c"M1dRUU?hUC*\8wOtEQo<ݍk8hˑGhnf;vZk6$==> n*~Rn1ͤy>MsP~)=dr̸lO[1︫?}Ot(1qEkPݲDt$ȭH?؋ه`K p= dִ.+LgX`k2Q=xtPLGVU]CŖ4} aa 4I*} G8};IOvs@ ]a Mܝ1J=ַUUn4?d1 q{wYfsa|%Nb1yfE}{7{K奇'bS 9ҥɱPr䨜1 |bAKʑQ4piSI!D }>n͒zDA޶1!QGϊ7cCD*D H&.[)WOzQyleẋWХ'~{SY Nڹe0eS 3#Q&IeUŘQؒ;c~0 E.Y@EG/],w̔ ,lD%╞ >!a`(13Uq9[TYy `\eh$xd rHFNmF^{c apB P8Hd>w _)}lX y49V_ .l^!U{4,A@#qNvEpw]q2"oCg@tDtɘ-}̰ROgo >gpD:eJ59NLV0^u|tM2sZ pF"ILٳ塎(zR%qe=394PzMх>_i,m8jxUTd\?їf.sZ -.\P\88ƦcZq~k(3sAdV\CK}쩔Alzq>Vf>-t&Cc$6II~UU] 47Rt5‡G0>0Ʈ$.@(1g0^RlVxFk0h2J(hO#I*S) he*M^aPyL+P4>׃Bs0<#lʙ%{Ct]9{ĒTX` ;ePDD V\چ˶aa䭩Alzq@!ސn\31yGg~du*9r,8':,O[\V2@J4ontbn|QCJ ͹|p۴]6=+y3cQl *^>qYQGh ;@9YUêMCb1醸}0vr( ymc(I%5o4ZoExc\tyaʥq#I/v50&)dULPep ҝA`(/:?^ 4L^4`؇R2o<-:hbC$L3w(1n :Jjྱ;Us@YUo4uH$hep/v_wMN5v:[CqU=owqPTnI'M=HR0F#I ^YQi<* 6vppgH0+7m^BLȢC YgFl.ch|ӦkMkH 1$M 6[fgq25g0ߴQT`?*R~@\eHQPbĝuwXr?HqcMOd $R̈`Qb@qps %c)+7mz ʼxoZb|]U;ܬXr Mc,7!v/zA. K\S'˪0hF.ٌcy,96=cܪƣIT{l+?k,{of1>CﱔUP屡ef*eKmUD IP %j3g{g@HP̍%Q~bg+sSJvy` `$D(@Tذhzi ˋ-.E-&&"?gh9*WJ\h* UVV,Cc1ȪX`4VYjsc/~-^L?Ѫzۆ55nf6.4:6őITU)IN@'L s/O-^b:YIpX%$ &֔[-镝 RʜX]f=j*j}viQxğcw/M4$"?6fr'|l:$kk=XP|vS>.l;=ڭ~vi9+XR|DyŋƱY$,paQN|MdU3ڳ٨p|^"ipi)df]4[T急i?QF(sYqf7rsUPJ+\VVސaqjg l̘  =07Ei`ZEA`b;ϗUGy&ғdj߁.a1zXQiUpFwƭ m),;3`$Q~gxJ_~Na5.t2mZ谱…*m:L4gY  =n4rO,"Q~ xUyRLΥ'l2uE+뤌VU闈p۰3ϱ@&ҳB\ͮe=IAQ~s]њ_jP![$y7~}z>d aE<;ؗ:im g{ae0=˙0- W\U,'X¥}3 T,ԕU.mʭyL˝psX-Y%XLVRGV TH jbBFDeōI|ml,*sjr.MO]k{V KڭR{@'\ fd>+7R!8H,RᓊZZ?}Nz?93Z~L-v@ p @.2B#kާM<-Z[=\6K0+wh}!&?t| F˚빬fueҙLH@׼K*v& Yݒ] @.YX":: ;A1.]#-ח}i,p,o&ZRdt۳k Ȫ_t\Ê\ęJa4qE Z(uZ+虌CV9.;gpY-m8*: x!fUtD rh18PZ-Г˖{$:Vў曗K6 5b#)-\ Z2\jsyQA$<6Vd{݅ \7Hǔ:KDo ;qzWtyOܥsJΛjt[E~k ie\z-*fmd (p Mfm^,(:J]ܝ#]VQu-̽1|L>GvI@WxN ˉGƺtN4}tf1::.HpzUԡ4v MRIc8ҬU9隈!0,ZYw)dW.+C3tVR|"Af9|/#o L7$/Т $!qWQV8,'O+NJ*6 9 [YtD3*A&E<`{z0ҏ//:2NظMQ^`HK;>2\Vj{rd"Ӿ`´Mr9^AKKX#6ܷ.luFz2\0 ʜ 40@y˒R\u`4dͽv fce:v&E̹ @XAI+Djc c5^;:a ę. 2;͂\@3eDb ޳~''2ՖE qYD\V,HTaڌ+tw(lsX2ekVa w4naDd~ͨч,F:8K{=wˆwk=i}L m8f88M*<-TF;E(xNu1@d~\~x|X%&TTl U5ngqZ0V .ckx֙o^R*:Լ˘i,DO@| `Mdl}*MӾ s%Ft|}ӇȆ*p^JV|aPd!EnY ^aPEpLB ڵ39vF]چ#/G ık(2c"iLUg`^9DX= чVR4GG,PX^Ld^,:) ~9 'bOLg#}tRQ7$ZO i6Ux &Y&qu0@BQB)dCpϿ,rkӧW gֈ D'e?έT#2=< ~z0 f3N(x/ `pmI-E`A {nzrJE .om.4 i0@pf=BQQ7ΫϪY˵x#$^>D̠J`/ ٜOWzh b2Z['1n~0j7nj19ZXĽ[2Qں&6Mӊ3=à l}ޔ@\Fx mQl㕞 ^:Ė Epp,P^ ` -ͳv>k Fm'WUhei |b5޶Lt(c$ w,i)#\ 9Ҏf]YɃisy9^j,*R8pl9$xW4tSTX<֦xC:ѡPd:v<p17/hW/ DSinα;+ 1+=AaZv˻Z.~$y1!}}hM%,q#qHOZQ9 ͂;߳U{HF͵^`ݲ9=\{rhɺbI)^IX^ F80Zmך7^Ix_t(B+q:.X`FwELίnчM: g6vNrXF#8o[Z \9cÓ׬Ψia'O:*=*:B 3&pXi5So^=xZZ½[_Vid,/Y1GF[$mM%XXZK|+Z.jij]"*5;0Mn\6 ~n| lr׎߾ {>YY.:*R>WGdr o_V&: *B\S/_y;~&ZJ8%p˧ g^` ?r 2"][0N6N/l7+${p2~r_o?!:B J(*܊QWp{OV%ExH8XI2_'%XR>w\[j#H*쇦VK_wVO_ ZΜ,𑓫Qv/]+: qV:?%*Zy4}ZPZq(6vpܳgQYtHǬrڵUКJ4d~1  1| W/ûVׁn9vj _]kNyDe`'a0 Y-ZgtvqWR>yZ5nx"a}}:8!d ̉w(5k+q:< G *hkjٵy1Jpa<1 e.+._\kV-K;>C!a2;Zgm4ާ`}8RWS t :DBGɪmalijx+I KXǺ\k$j Et(DCk*EAC1<9 9#'JV\Vz f\q4Y"n`?%P}Z EA3PTk"(:FRD1J +dDh~~~MeN,tay ˎ/0NL}.\cDzXRDOUh `(}1tD=c#[XQ:|҅%NM싏u̓f-tG ]`@77n\N&e2'ʜx adUE,m<3%xQ$MF~n<>־q^Y$m9njjvx6TD 6<Lƭ,YW:?7b)dѤ': ʑU?ݲcGx}Lt(yGOdDZg+;naP$f9rb& J+<6+q`~5^;JV򯜤3Jwz)tmu~‰J*FvŧNRy aȪ~嫯[eYm 2[u'SoHQ糣c1$L/@4i>G $it+Y(p,`C2_,)w'U`Tyl5K3/p"~o&VI² .[jYZ]"tpR-*i>;yA ʯ7 pA$PTaN8wlI$!3`/- b.Dd:(TqF-5(o?߇VIl )*X@d߽6HR;T_~dž5ïiiu%\Vˠ"а`pc/C aɘo>sd~^n6au[tDy*IMKmcDrQl ( Fq 8=6d~ J8]A4>o-|fI=oܔ%5!|Z\kR [T_~0Nx[Xss$Z诪r֬ϴ vT#9trUe0 ~ "~7qOj޺x^[): Q{7#oDxsrґ n6$:L|Wv2& e.S괢gH9&G;P&˿>~8wiJȌ(-?\<6xcQq뒉 YBQG;nBݿWβc$i[&LlPDxLBu:4>1>%ͬgK8I4KJ5Hֆ#i2WGu>;ZK8t;fA6_Lk @KL{{;0i)ToOv$=%9Y8kfdH[#Ex:_dC@"uMıymP"oȹvZ]%04 B _w`$O_Cx,sa5$9L:C:V^:cC@"-}%aJf%כnߡ2Y  IhhiV*!kã܋HmQžޝF0ͶP7χ/U+: "YY·/2\ݳ'~-=Aܸ Ⱦq&vd$vԥOtNefT9Yi{DˏF4).FTK"m pzWtDYp{kRx Odc7FoK-rI*+od  pXgNlx얩q/X ~WtDyG/aSok><ߥU=].DGX[Adӫu4'~Kr𣍽8J=8mti}[Q+K}>}%l 96ibCgz hfKʝHħOFދ$ܸ-Ro71Kma̗V&1حeHVy$&Ĺ(1YGՍuM@\GL6G MX`)El[;;#Q|Naoo8I`z^Txn HEij)^ݢo4XI*mD3wbhTtDŽ&HY)-(u X=?n,$Q:^ hWTTi Fku *2b!NcK /v_[Bsb0'2LEr(! ѡ AE* 0=б`@@󫢌}]@4=t0PA$9K.mM 2VW\hv/#AїEdj?DB~V tK42S&\}~hZ*ǴJLv{'Oc#4*|Kʝ 05L޽SVU\sE "ljݿY' ${<ԭ`xr,6B Lc$>): "SZ|7g3@M- qfWtD9,k?4;yQ!Ý1Ϻ–K> plw[%t2F}IѨ n~hUDB9E}[Ӹ_3 Et3ݢ/T̸DqYEfIEE~*BoLlS_T&vvea`?"(y!߽*-U{lx+PﳋH3ߵ/.JAw郞mpnm+NpjlجwH" T> B(િxԘ-;XS}hJY&MW,TUm?ȦT&_HRѥL/߰*w'2lҟM 4(w?;SQbנqe14w)\>:փ߿N$: u(8[Bu'}YH{ztF i橨k}a* E>ՠ$/\012O4> |I$_S/1񦃋q{OZ^:Ot7a7H4:O%c l !sezCH**vӚ .0[w ?̏9DZi0[Pc1ܼ}XKP޳׿ItD{2M(Hݓqܾg:'|"C}ɮt*^ tAw8k㿙2^ kW}& _^!7O?|Hh _ѽK5ō JKaXУ>skhy藀?{J0rԴ?TRQ78P8؀?5QuYZi?k]1驃h*sTn9D yWDLFρ.^XpzCC!՚7f6(>p'Dz+r4DDypAU$GqX-J6䒟 '/Qg+?ōIQ+ SEB]v{;n>[f6S#: ׮B&:zLskh3 +XW.+S׬DI_6xJ))]`1چWz2jMd#Q\|^8Qg$vjLx ܴI.y/چ͟$q]+p<^*c2"/\oW/:|WOƬƢI\~[;d/B=e-x. ݀izPI O)є}Q\x^{f^tYj7^jbҟfW/NJg;`\ƕwvp%O[0.<"5J 2x]k7!s=E7Ed~Ge>a%l*\F\O]o_V&: l#mѤ+2vwu %jZ^k%SqYŇ;_aԖ.y//lHYuTmx#+ &4>qOCyL7l Ѵ~i@AoWr3PTK&pmy=eEV*Iyx+Pas@ʝEsQ#f%}vZ,RT_ |kㇹ; M`^|CU~xzuWفX~!bg\@٫5+݋]@˳?9'G:P|EbɪO?|?+:FNcpVCG4TBQG:.dT\V:EQ<}J|(coZ*Dt(E7{(": Ma . lFD ,8 ? h7V dHo2(:=}hwbC(^Z/˷inVI/=#̑x-M|pg߸;E.y/h i'3>/e~%H;.Ex׊rѡP;;ȫm2U뵣 'eJ&p!Mk;pUKtDuo+aW-;`>!EY}R`^FKy u>_ N4ݣɸlQ gI[hG_vOW(`2&Jn&a5kYRwIɥ\|pVWERlwnⲊwnp!-%$__}K{ ӣpù %Zq_pIi.gq/2֞0EzZcypVW-2aaN?{chg48gʜx):e{7bKKECZAd\tQǝx+ :*?«lVr{k`7M2L(LqIx?@ˆsDBVT3j I@kO2s3EeexqS§,'b2n1~X|EY*]&STtd_rZ;7`pvww)g(#1w>|+~~-8DB7ŗ;'NtT/Xl&#*o܃{ֲч;Z|u{sֿxlFKYD>}fѯ';Qs:p(|$ooF9H5ꚌCTm*q#ALIobJp{bM5oo6 ۸?yO lFW[v 3l%ÊrU;=vVl,Tt+6xѪjw~EX-5$vMi2\~:ux˹+I ~b/~@4,D x `<,tqd2տۉ@}jp1%h'ybEPᶡgG}1 ~q5ZAJ48"!-vNZ.j7/*_?\T 2TĞϯύYMd\yxCa/l ^[:+87uoc)e.+VWQ#k֥e`kR#ce 2'Uf e G1*쭞 ֈ\WN  $~yB\k+YD_~0]:yà9 n:܇#Ljf'NW\Gmvu]w)8x೿-p g`iY1|OXYtRo$]'Ziq -Wee[b~|p"aV䃸񋽆V|9ufEX f ^.[&D BqEיlVZ+ړ*æqhžѨQnCKZH\/!p, ȡtËA|N%/-*sbg֠ԩMOVҟg(~b/v FDS*6ٵY\+g>Aܴ}Xl4Qp$J/@$)6a]:OQVmiոh_hܤ/{ul59'0LGK8 l,tW,[tc o={J޻zu~RaPT^'!xSӫs0qon9k8ɱV *\XXDccTP7E\@z{z_]NZ&?cDrÊsrZ럩WzҼSiP"E!jn[6x^Fzp[;z"|jaPC ܹ{)PCk*qU8[嫎(θa7t_IggTTk¸N+Λ5~ypUXs=h r>UB sd&TYrm=[pu xʊ3$ޑ8B/mY[xlIXU|w8[w]Æ* nU+qUlQI΃%+&hq7\LBj\^Cc3}@J`_`Ν5kԡs5U^:={F1!]%Rc124=ju0W˪*7yA>ty`(ď_^ЭO>ָ Óuw1v@E.[TkV⪕,/ _z0~y cHl֫OPu/k<N$`C$R4o`Z'HQ`ʞ6āo_OZ͙OT/[ԡI{߷ YY.: (Ć6tNRina]S .m*Y ޜqyupڟva5ߢPpISeE \Q,.x;>x+[+Y5Ֆ{#8ȭugPf imu3 |Q@TylI)Ugq7mƯ^&Pagp=g;ij3#*yE"x%ǦfKJ &:'pw2n\V,)E 5TÁ 7,wp|uM6l-G:_1uR9 ׬d9qae&>TΟs]>EHs A G>EH]1wLt۰҅.tF/ΝӴo<ݍԗqԸTjze\T"V /,[ryF"I<9g:'sn򑠦 3꽦*Y]iy@=pQ6iQ)>zJ޽\/B4;w]hl}|y $M%:&RDr.΄*aiu?(M VnJ =HsR-{sq?.i*N*&xHO0TQ"o^\j #$^>by}hi#ǨWaſGOE&i^/ ܽgwܣ<_X$kVb]SPIa2&#S蟏@<\6  |+N+ R'rY80A.4[>dYJWw}~ ˜IXhpE>KuCx;[h)*'L ei@KsTWC xAH59帴/sM4ц3:JG}vlݶ""Ғo :i${|?\b~OdЕE 2uy>J.A8``;xH4pmb5,4qoaC yիVE0@:~\$/.[(}|_Q&0MCx$88C\KU |XׂdUEkO=Apc/V KSѤW{Cx80}!Z6-c5֍[{5;^Ki)Ǘt']qܸu7n:._\7-* 3x7gMCxH+X OBSρ'ǜVs'F=g19} aE hnae?WxQB>OmQnRDh<Յ_@t(DDo |NM4v1W*p/*IXYiuVũuVA 6$hCW|Wۻ-`H9og@UnJu{9xd87~Y$`AhBU.JY( 蚌{"(,'W܅/Y#:"cv <)ms1,yYU{(Cܶsؿ_X<`uK_@!7zj}8Zi{Yȡf1}lV8=zX@K/x~ Q5Gs<L8XQ² ]vvZvĶsԿ;36"PI*'?@d ]qtO陌)_?EeNu)D$^O +dL(Ͱ|*CizOpx"^ ~:%:Pcmc϶S;LƎr;~guEe;:k}3s P1e4벵u:ρ C1zCؔvyVIb}ҕxVZp2G&V-cL9΄KdJU,+ oN[ zXw:Ȕ8'#L=ts"%o} 9bIS9IǠ̃/Vz'GґK#J 1{>&^3@'"*Z=8qW ua "&u7 _3> ^4sJ^;:~ f "0>p#DT\~ReHGBwUcdNLjj^|GRApns{u?:օ Zt+] ""}] "q݆KQ!P2Wd: !p8)4ވ,B|u w)L跛p]k0mcLk4h5!m-+quFb($fp}8`a\V1QCCF@Ku=ߟ]Gr?4:Fx o )]$jhu 04iM|4c^ eӖ1hiFieDD:ST]LF0*`NQj5=.^2s& OȪ5 0 uLYUqqN&H#Q\rK' z&㘌dL]ぜVIGL:چK XL153Mj̡@D`ACDTdUG<[w .e/z4*ϖ `s_HR$4/G3as&&(k(lȹIӡ%–3̤m ]hiV :[ ,`-m 00? `K_HxmSs &0a`eE!蚈sBt8蒄rPʂl msX ?:v֕JQ?t٦^DTXvk7NbkX2lEu݊,P!ttZJ(h Z"*LKG\Vc4dþ(zWULU:#٩v G㊎pl8N ]1G&x҈Y 7Do0ߐ1G߁3꽢C!"›no?Ѥ@gn=8^ #7~0Dͨykl,*c4DӚӽL**G5cQ^%P6v FoE&2Zkĉ>`a#"c7zI"֦. cy>&0JmBJHͶn s"nxWtL8FΉm U$k"pRa~&'x/$lPnqI條jDh†7D}o= ^Gpۚ3jDBD&JOo=9jvz:,p,YRIEE4"1J% &hfH8ދjMs Ep/]VYY`R\VM*1IlVҥ03; -͛8 ~Ն^G6 g2 @DAv ,7UJ=ʪIFYӐTFSSs$[ækX, IEto.^;NCUdLpA~hd@;F.pu>Ɇp$\/:"C׿I= &Qiն/TCIDDoItNeZ]JDݲcW߻]M"H% \c5I:Ǎq@K0I{2@f=1l"niɌ}[ZT6L~2T_JDL7~bPh Qﳣg=ddLF(`tFJ.v Vu mN( '1L0@ Z:6DD4%N<XQ (PppۘP(Mr ^{\XchRA4`"&#lD@"!&+yZ|'1 "2c1ۿ,eJDCD: :?,:ʀT9hDt$DTT.-cFPN#&H""xT[h 4/n?E`3%"Y$}DK _⢛/-LfkF@K QKDDiEk?}On FT, x?;#GƆQw :/ঽG"|U\|#`1i J< `\й( 8 i %7;ڒ<%b-q 97?7ş 氭?PhvNTeDDy!TG݇HRt8Dt_GwDLt8DD47aca g}mc8叻IѡQ}_ q+ N..ҜpQƎLq٭m G^DB=>߉'Nwѱ"+. "; pc/c1 {gF,(N<Ы!]eǰP0θaePt($efDBD{oEADDJmM(uZEBTTr EB׎Z^.t=*Ic$ GeaGKE` UQs^>W-y|!*(=8>A<} 8A߁y~; ""X% _</DiRܼ}x!aDzy^Gjh ɇ B P/\6}r)H*6(sIp,JE IÑT|4$:$,4UgokO m㋏u#Aѡ++]~U hbB`giuÖKMdl !T]3E '8ᰦ '{"^hi4Gַq?kԸEBd*Qpm3irZ%va'(8p%R sj*sby+q{" Q&sݧ|JtDD8uQiշT7m»-KSˊQjH(w,UpF˝Zr{:+q0&UlGt*$, g/_ [£xhfs ue~8sYBdBc sq,8z2}CNuXfS~I LC[ڰg(":"ÌEc8]gciuԎyPz g{`~~0$F} 3%RÓ8Ou#g`*\*aow̓<݂3꽺JNk@KC&VTtIP9Cߕ,.wTQL55[` ""$?{+߉߿6TTp^ ?>a6ʘzmdH$,Rjm& Kv@FG-*sg7\(sA*:+*0Uvbo̓1@yÓXwK.y/sX@Nәj Nxt,Ų l,(Z6e%$n'T-Q람㋏|j|j4ͺB2X8=իNQp`|k](sv4s_ It31sI]k 6G/͋Kkeڊ4} ?n;G0ESTDP IBaHJb?_N|ut)7,c}':""2?EM5c{|v|TU"VPqwş _ Uԑc 2f@qq}iϷnDKi'7g߁Y{)^hc/._\ϞQw*Z_2;w lhIE|lY-|𻱸et;ڙ;|[pP(HTUOIU,.=i1w rmɘa\c%c#NF,@Edo<#)DD`?z?~oZ\Ϟ^w(/-C{B}kfFs!4TqY#ϖߔ|H<@@(<8'NmÕebIi^lEQT jc;a"&sl/ |3Mkv\?[& QA $ַ7EBDDe4ĭ;qa8.m*;W0!: Jxrsy.^X2aT{c$*ZD:H5T` 5o6 7P-KJq2?ߏ%QpQq<11!N 'bh*5svx" uҘ6A*wMɧTdL={FqϞQ@dž|hny>V\aDkO#Q}#Q; ۫^VUpv2 %M_ b5L%*FH* >!Aˬoh&.3χF8c%'W􇹎0āS *1FD\c:t x7$: ip?\6$ʑ`!&pDid} m ""ʄf^47z9|]0jO!vTƢ2}tNİkP-"Oo]Bݎ2Py~虧'l .XA+9(e.+9O?Tۀ)*x b蜈L q&t"8ZJC lұn% Ktde'0$ZepU,dshiDtȧS&(ύGelO._ 8.I0ĸs%9~t`?;nGDPg{HVP 9 pBAHlvbpua Ψ®@\ƦސfM5M(oM1C&ַ( 6j ^^%ԟx'qgnALV+%d IPB9 u? CD!?ԑ-(u`u;DXRQg8ٜZMX$kGώ}֥OY]T~&`}*ce,TK%dSJN΀=U;uސeY`J%UdKŊhi>Ot&S~nA9eqY`n㲪⵾VV\ J<ᢙ%H5 04V>' It DDDDDR` *}TݓqG3QQ8~Ad+7niNNtDDDDD$;aMz xp;iﺣcѼg$"""<7Gv+.c$ Ÿ(HAV6GKtDDDDDZ+uZ=fARQM*GQ1Mr?BK7E|_wP%""""2DLDM @g^SZ{!: """"""*XOt@E@DDDDDD Ɯhi  """""8ZwB H_Q)f!%]tDDDDDDT0xFtZ)@KYADDDDDDc͂P8 ^RĉQX 8_uhiNBKH# (oItZ+@KDADDDDDDyOGǖ) ]Z.@7[AaQq--p,p,pZ%$ѤhRA8 ѤPFIr`/ X u """"RcU ~5cD چ E_3hiLtz) aY% |žѨV,(uN׎F^;l'H,<^Зk*: """"NۆUUn+3Ig\ *ay KY >c1 XYr ı} EХ:WԑJ(*Fqh<&Sbu/\<)OKT2!` """{ X[&;cVqZ 3'l a2f|S<=H _8V7$| j79g9}i$iРu4w-Gki|WtDDDDU9>0|zvkIDAT;qfW$by>^ ppJ<^u|jޯ,j9s}w8m86@'R` (;vQ־Uˆ`@3+\XUּfpF ȫ=6Կ:~=pª*7VpSz6@1K@x/]"CZ?8- 2'8 oȲ[pFuZ7JoU+ܺ$7DD׉Np6E8hhG A2Z-Rau['Z̲UK+\k?Ct|O:8FVI™^^ϥ|˾ϝQ*$ œhiV|[tDDDD>ÊEiJS~3dM{Y\|͂ƽfS괢A%kjܚoi8݂e,p,X^y.YXr"2x)xYtDDDDU.CK%Ĭw5^'ZPLkL-t60NJ?u>;]ޯR'6}+2w%NOVIbOJ (oAkhge{F-/vtjR`řHaIS&!_'K:TP+^6)~i{ִ߾v]B_[K*1եsB!!5*S;M~]ܯ"^sMVWtWl@1'RZD@DDDDo@'WZ * f1th54=:͐uN7y: Ҽ} """3Cv3ĐTUfZTZvA^z׊:$I2+ao]Zօ"=pBbsϾ*рUZ 'cqM*3?'U IRЋ hinp0(e"&#&dU )B?JhrYa6Z%BI1ӿg.[T]腛O3Ѡ.swh>ᤰC(GȪш6I`nb8ggD|ڪ;LH/M )-YtDDDD"rVYvQ1Kw!m"O'5NYUU 5!$߰tg~ LHu$""""IEGe tFt7xZ-'ZP۸D rQth{N~-=c$ |Z@tDDDDwX猈Us &0qb$bPj^@ .ȤU=8:7 1Mjݧz6BM 7!AQOC1xS65zRgXlYk0h7(s0 UpDqCN8QKsEADDDD)† *q¢/7)*7`x*aݶj$M $.80Ѥ-}!ݗaLdDJKfIӻ """Lސ3 Eސ5&P΃.TνIݯupʆL`$I* 4 *PRwPߩctM.F#$^ j>pUL7DL6C gxbPN 3P|-ͪ$IF8XE`ZnO78St(DDDD* Qmfk4+=AJI8?DUxIEŖ0 l\7Iea)Wm˼Ee2j}vX$mz4s{~g jR$KXQ3ˁeLV1EDЊ"ai\dqT:G$j ,ëQ) EƮ݂UnY}8G&,CK'Le}0l MeN49C $ph<s,XZBGX o)Uٍ>:'l L*6,.sk55n'i| -׉:y>``.[vX.:""""nA UfT"1Lp H*=6T{p$mحⲚ_IISUgX% yOh$}uxm(wYJ_p#W;hi6|A>a [0H.,-w–z(*9Cpİ5J4?*: O< qo4VT1đj_0]v("qVk}*p"""""aż;7 &82xTZDMt Lo%aEMBRQM$D K4UtK2]P):"""""2`\FPp"4{'mfYZc4J#] """""*bIt L4'|MtDDDDDDEGf&EADDDDDT@KӢGLd """""*"qb&Ҽu """""*"ס >nA.Ot \4|^tDDDDDDEsG`%&r;EADDDDDT@KcwLhFEADDDDo$It e\#~δZȬ\V;p,p,*XRA4"T0L E]]<:?~E&J(zr-Zoz&U87,*64e^+qd#Tmh;Pg"O%nLƵJ[Ҭ~m ZZߺ.ѡwXʅ]'h &s,5ÊnT{lO5GHN+ $4w~} Z[5': """""V +ܘ_e!*p`4Ye" WNUn~%:8Z& eg(v}jEBhRA8DeY J357HR5EeÙ ^CM~mp.ZCCLa})6Ц~Ȅ|T3Z e.۬1Y@(`f N߁SjݰJ 1bMAG9FT߁Sj=8"&l a"6J8-;D oo nA]JuSHH86:1ImC]mWR3ʑnu5~庮7T>őɸ 4C WcSs+: "00Ev=}Y_m ]L/w{^HVU' ~U{l8ޛn:'9fo*Z^g5Ҫ `P&\6 .\7\&b2^ 2)uxB>z&_c$^>; #a1UUnrC~Qvy%urX_IB6~8{N+v\kB R'5+EH}xp, :ޛVɻ\6 ,wedžs}pi;kݪog5xZ6hѥ`†X#s цbX> :"O>;hUmn39փ2ǵH2q~Ψ¢r,4~9Νݠ٢bݼT{lhn_codIJjv*wuڅ5Kˊ8dעyx hz-WtDJVZu0͢2'd?SCWP嶝i;Pj+qhZnH8A^(SVT4M6jZh*!+ޢyJ 40(,pi/A[AQ[4Iɲ fw"8I$--XhpU ;5iݚu_T_V$@ef˝2[Z&BٍO!տt ` \6 ~;hԱ,3 TнcV?iEC&e~ðL簭-[@)UB+?zpZ%,6x~mSWk;$)*:bZU  !'ZlǟUB.!{`5K?OB&VIӒe"3YRZwUϞ7KtRɊK%$Wr~k5J"!ӪcHA)Ly?KP3-<,Me6\s_bvgvV OG;"iJ9{˳Ĝ#V)^,fN% Kz$ۿ 1n Ȝ\68 vm:z j}zVm5ֳ;5^U{lB*+wX.;csi5tr_R5Q7Ϋ&DH-4>ѡ(@Nwz7]z5gW&6K5&JWW{: Uʻ;dK>ǻl$tgJu~ïmi@x 40|vz:ui_._w >ș7"=xoY;J9 Eس;m>rҲ_,t*I;,>ŅI': "2@i%v$z]VJmf{7,Q̐d{KU !5x $FV~-)wӪ-IRPt<|M;DADa_ZpMz2UA!ʕ`;6C2%:A}"r7 _.+s+QKs pK"2 ;B_|mDd~- B$?~j\ 8)fҼEAD! 6 ^ט,~1Lpg*{VכCf=cاY%IO1c< H\T@B6BCfLWXIEER 3C+`؍[tR^EYS*=M߼1Oc,R[~PHPBF(!rܰv]f{7[EQDgDJ Y}?#.e,wr$d"ǹY p?S`LZ|LtD$`(!I}}]_usꓐ"EwFBV1H`+ZbIu'UGO|F0ZtD$h$y ~&tz{J(*F# lG"IMK3: >hTkK4~ƇsH kQYR\B}h*sgԼ`$Ia0`N[tD$ O ,&aa,L6 %MI*x<&3[^W"O(*r{ YU;Yn9݋o0(IR hZLQKs!H )*}xjyƄ/' ׏}hhTH)X YtLj-QRh[6Es>;IBڵU[l7<fҼJ"*Bᄂ1CJ(c7T:<ӽV0.{As0{Bs o5Z&MиѤCc3y ` M"T _N N(č:sۗu.I/͉ s'DADbZ2{(z): "c,Į& %1}][ڍF5oCo0$PTKLs}Df0_p{t3XTm_DLƎ}C c8K~yJgԬ4l>]Lѡ&b2I5^;$IcwOƱ}@Rp,(ujHQa1xM|~i|qwp`^CkN .U^"OѮaK7־0d^%kk"#:53 e juck>%M߅Gs$i@&P#:"2dLH$6KOS{60@(ʣ`9&J4Eo71IkUg(v#IA' ec| B -Ү]ҏ;"LO0`K@\P8ZC6{Mj][?:$Hַ.@PH EJ:3P8a뻧SbU[V_QΉD0/P{wq>Qˊ3{w'uwsnګgվYH%o2lCl[$(YJ <<`  gm6ؖ,YmiY,3LOw>T4˽_ymYuNխ{~ɇ2{t*^N1\=4-kO~)TW @x;Z]촙cz8[M_M^7y"t>A`Py=?GO̔rI+Lnp9_9]xaz˹H3w7[:VZ|u)#tr(d!Iz3emZũVuy}疺 E^qJ3YH=jM++Fs.= x߸p~/,7#+{3\? v̏x1f1Ȧ)Ћfʿv"CќK6N2CSow{ۜxT.J.!pH& uCSku8] sTL>jݥq κ0a(>=O/T_2 D@5^{hx>g4{S:2~=l˹3 Fs8&j<^70ec S͔_d;ٽ.$$g|KgW[̮"=\D1us*iMV瑓Xn+8Ҁp$>|p&:/ch-qJ0zWEDD$t'ҮCuphx>OhǪ>#tk:O_*ZVNTX\#I3L'/iO\;9<`Q%zLv@0xDDDDDu l8ޥ W^O:8.~ =|ٴ%zL?ȹrIF2K-EV7κ8e0sk?1l,N0S->ao `@z'xqR]{6YH/XRo=;Ƙm)[N0SNv("""""3qK2^;uf@Z:i]mTtT\T!|U?3q1َMN b< <LEDDDDd C2:O'l"ۧN2S~=I """""y(?m; (?0DDDDDdGi w%vv"""""`i N4Sn/TDN5S0`;!Jgm">aHO> w.%vR`;  3kc١|v"""""k;vL5v0P3@Rqv .%v5tONbќh.I6I2C5x{^zgqҢmnRYƘ$b; ^5uq,@:j}YrI|Wz 8e9%v~v"""""$ti,D>kW[1ڊ--5<E:vbůW?b;KI:=:F_GcwrƐq i!0xm[2mXսNZA1@*ޮIv:h8>3Nok䓎=#ˡoF.ph*3uZږ}Y wحf.[l""rd!d!I>yj}`1[i1ڢrIv f܋6;UZ\mr:Lٵ']NvŻ0RzϩjwJ^فV{R͋}Rj `/d>E!uɗjJ S<#+̮l5D`&}o䓉CƘl$@Jf3>C͹0WRޑqɰ?f'뜪D|3.7fl~j'kW a4u; cݕCƘHf{20m;ٝ í9ƷWyj0\?g*-҈RߌpDvv|xn 诱㹋bب˧jp&f3\=&awXy<6WER402cr Is3 Eh<鼵A&_Z{t@1&}KJ̔o`;] ο:XKt d+S:W- KuMk񅓕Hjڞ ~M6tt͔J&2ـ|;r۞麐f_nayugo <|j$wNClcVV84]6yl.;ٹR ={ [Ns9rbyF.wMqCiT[{|+G_*Ɵ=dN{_ێm- ƘӶ#t"T8p0DdwK%c2?@!խM·2n;"~ O'c*W}+ҡ [4ڑLb; ;m"`&{F.p(뇕\X ?۫Ap( E yY{m; R t:mNB{_:/%VfP?*E vp&eݲ4 tЅ8MRG>=#a +y7Il,{Sf9jbr Ddq,~KӗӖ5ѵIƢH}XlD})&Y r#pdtEnYC,3s98 se\WEtϸn$D>T{P:Z'A~tӵJ>0jyvJ*;<}{X-<0mcQן }+@FeB+#~O:c6(]r䖎ی\@DIug>d+CƓ~/؎]C yRxv("D1;_>/sHGa9IW*aj(+ӑ-K1v a4{u#7":ʺb8n[AX0?RbCDra<6`v("3d\'ԁ 3QHK:-0K^BC -Y7CI0u 0mk+( W*>|+1"|H'B}%k Ὧ6k0ㆶDf&c>h$pȅ.e"εIk=NKmhНv_Jȥ~v"lWB۵ꆠaҪVca1́2w ;:3Jl'OW*~v"lw=WX`nPH3Q߮t+vIoى-A+u:d?.rI)J~v"қJD8?yS u} c< /E0s?ݮ u\?M;ޠ_!ٸRm!"a7plc208ڌ!@kJo'wJp؈s#fl#E ٜRѧ@ˌDdÚmv{S<| qhWóՊ0Bбܬ {F4tv\dÔh_l""uR9 9(h0o[1ġ]5{1d]jg;63rWV( [S*vwv(">gVz[~` cPey:/8 vND}?jm]A$B{ax}~ͿY{4%dJEC[y;;] U ~0h}`Eg~ڲڮWəɺ_o<`;]JMہ쪽C aFUשtkY_Y!MD>ҲZ {qڌg`0xo iHR@To>o;S:^RΠfm| f-&6l^[[\aVҰCImFZ@W2\H:qWa/LlRqxPD$ZcgVF䌝vx@9b]GB쯓+&nDs_'{̮B]ܒv~^u|꿿w T\xv("OO/#_"TB~p|r#XmZxB-ּPt߷z]kdꅶzb|pȟlj+v0WmV6)]1;aE Vxx3UۡHԼN3_OG3{r>}&믣ˍHKEųH*?yi@G"]H5sX?2c) +_S 5ԣ-fYŚ,zdZGROD2HɪhOˍ6#J4jg믳6_~/Z+)R!h\ȉfWNhhu|k 9sߡf_ lYXJHxJŧnXKJhIǣsםYrԼ0~㫡]t]m->PExlZ݋vO-ya9b =R#6*W 4,G w]HGD9b$qGYnY{K;>?$tH3{VF@9b4?*N>Sos1YHk}Gf i#;OtcκJ珯9Ui>$|JOV; 5 j{g1 _Tv?"3l""0F3HlWu8PvOqhtb AS X#OQ:<9_}FR ^5e4b˧kT In˒F.7yrK͹j,G!v5ڪhOc25Cny1s6Rv%$:3廀l""K:\?e"omWV(1\94&2>}/C݈\,Ǵr.7ff Џ1p`3$7yϘ[mqxI24 gHm")}?ņu#΄ڮlj+6gQ_J*a,$_NW=fWWH>۪TvR+7^ǧ0Wi1Ҍ#9B\bTs=# [mhe/u|{?{47e<%s杷[*f% JHfğ2nwhwhFT¡ix_N1d\1׉j]R C:u|N,et v'Iќ˝SM̸Twh=k2nJ3tWEDDDDd#rI׶?mU5'8~߃ƘEC g< pPDDDDD6j0,#k؎_v%ľ qۡlE!`$q !:{Ncw JH<̔h;Rqv "_B$ 6cC ǀo_B RcEDDDDdמqEbA R |7_l"""""Ek϶"O?PDDDDD6wL++JH<>C٠=ˊĎ_ ~ۡ\]{%(aCDDDD~RQ+W%1SQ9~RQ'( e]iۡȮGl"QJH)s`v(""""+-T|v "5ǀm"""""ʳ(f) ks'W[hU6ooFm|SU C5d\`m[Oaٶ6c~v "AP@v[ۡR>t=9{k^\E߹ 2_c|Z|g]R &._OcNW=V[zdCFr.$TkH'FC̭gņ^5@*4>`&T!t.:VZ\iT$x>X%j(0xLjT!P5$ϻ/Ժ{*m= ̔o c;8Lsp M!lŚ3X-KN:['rLj檱@; 98k,TㅤkGL%I:{L:>'W[Txn\LX 3͔Mb;BGH^kgIՖ:phv[Úᩅ:6m7%$7f6<𿐅ZM1QG"QQ@vr?jo\nȱ?r|΃pg|dʊ-9_U9awM589D͡|+N6p m*a84g8*NT.7,$}2HF-XMlƱ,W yV|NJŕ!X\0 i;Z=]M8D>@%^1BiTpta˭/d0X0ugOa[ΗJ8hGR(ڑ `m&&sI*0UHqbNn4\J y &k?k)p=w1) ;p ot9,޺ᬋpP:{Ⱥ/t _iF`0W-l᥌dݗ9D?-i0UzuFs.N|61|ˍP "] X.ɱfW a4kg\g^ъM{X s f\RTIE.|'TGu2xHF.+6n1vu2aH`mo4r6,={ /U10QHrbZMCSy%.'Vq?SvYkgX PH%8M˭PNmi,˞ ]`ƥu(RCQE"C$ _,Ed7? l6 ti|kԅ`:uM"[Eqd>tOs*=})+E. n+*COkdKEuc*mj(m"}_~7Q*~4Eb@ ]J{gl"ẑp^HiiG2Bn͆6põѵu ׏QyC逓(I%LM1VyH&b|F5CupT"%pC᯽ޖP*~6Eb@ }Jg&>n;ʡ4@7]H2,`&RNEup:#k\7 4Q3QHrd8o{tWn oK!`_Hۋq!' #[ųn,2!kτ"J<9DV*.Edp \Ѳ;U|A.CwDTxe ԥeh?:o#R P X=ʡ`6j($fHEc!{\GKVL ٽJ- l;n4 r.a\:5sonK/f" 9k`<⢓wc(Z_NC8b(;ChlHveҿfJ l;+aLUsIB*?a (l&7\leIexAwr֌ [ ^l Ml| 8D)xrj;j4#.y13x]e  a/::>7CxU|0@}ºv/z?^"]J++=XDZ.Xta* >mEGEq=7Qi7ЮcBc]+q֞DZR~?&l$Js=h ,cж0,hW>{j]Zwf&ÌkkcH 9=JO[ J$߁DTp9ۡP8@x N}*ⰺ!AnП[CT 낾sxbXY E.U$J߲Hkw?ۚCAF.8-vٞiݨC_ ݦV kp"r r)b1f 9V5^>5:EǡmR jWɑ049ju|ھo(u?m0[1{i}kSyDWDzVlDWEyk6OftVCh MvzN 4ON'63 J"=F *H/VA'NU ~mJ# 9r #[uv( 3u7w\7D %D6T\ۡSV[b͋^u_5XTVZVBg b}/ '^#|pڑqƘ:!( YbRXH0_muX x,>ȯk}f5P[b FWm2F<*f(a5/m6 CW¯yӮ"1Ev%DTK.˶CK5+P^73q.T=p *Ԯ!wЂx^3u{Ɏ3Qϖ:<nrIw3(_6|H( 3@mۡĝ[y]b#N#Tri (bJa PG-Cۢr` -~3 )";"U*V)G$^8ӈ3ͶWCnfhŷiDT9Zwxi|| FBP\ ~ҲYy_vBmNj]usWooǀOcCmHPJſnv("q_9L͑԰Tf);><a-սPV3LͱBzfx4b[ `?O"lt*mG48PRr8>7M|1luq (h{'&yJFni}>|5AR 8UHz 9PTȳ!WcDuJ\\j/ ~0h.~٬S{&#}T5J`o ǘPXDmnTcO ZuT>7ݗ:̽ DfїNЗ g^>8UKnyr9ˍ6_8Y z,xd51gmcϟibt̍Oa/EXRTbRm uŝ:}ca!S͔/v("qcƳH5C'*-AL{{ .<>|5Rniܨph:@:jG窡3Kqd.klsK ºg;+nn"\ɜ Q8`&]҉`/=H]3ƜHfoHHA<.<9Yv`n̅Ty⋳,/@Ʋ|ي pD=}Ont+?5ns0媡puH=}SU.GWB Rߖl|qi ϗqM\<ɖt̙ojŝ_$JDe<'m"7ڑ |~4C_#.v!ٵڻZmv8Z7u~4esO#zw)0f@3GW"-J8NpXv۵)_9]L=G;f8Ys}m q8tv$C#9yo4]~"R@$J3e(A сH' %̒ls1J|$7fsl|=cɶJ?D>yvzSku2ut_|򲃰Y XۛmM:%gYP[+esM\7|gm^. .a {SL]FsˮvXw[WZtS9ytk?:f1fv";"6̔ov("qu2 kH:ס:,սHo f^Q:k;y"q] NpDDDD6 YQ@$fSv(""""Q_S*DD.L ^0SVවiۡpDD.m{%aE$n~v(""""F EzVxPDDDdz~lVRS/pDDDdWܦH ^6SpPDDDd{aJ/DDF+DzY8j'pDDDdG?Fަ";L xv("""c5/)DDO+DvRy-|?V Evىfv("""sx7iہHfo-`PDDD$^cph N e;&g4ٴ@d)_ |xPDDD$6ӔDD§n3SzׁWEDDD2}o;6ہE¯ }>Z ͔~ HGd˺$Yl!:S:=jp7l `d0q u CSku8]]mh3HO0c%($)}n1u_s-NW[tzYB\q iy|433<වS*.nءL׀Ed',$z(`fyj ?ӈ`%a W 90"n|AR*K1\5fj,9]l7rIkG2L$k۾jT[M5^g<ؠq')nإ{lEd'$q4pkԼ_inKn$W=C+z׍dI'wz2%p` fu|xa uZ1ɲ8e,{FB |x_EP@D7SNѭpDz47e= cm2T!u|ҩ*/Orc'I9&֓QT: cx$j'V[gmM%VGR*>b%h RJ~ Xmj`UKزlSk;eΆخM|VWR*~"gJHG)  pvH":ҴrŚ ;h[p|EP<&6Z峡qI(RPED6E 2~1!<ؠejzO4>/5"nbU:9^UZ^<}&(}T\<@-R@DzO\+x; 'l$[lăSpX{z{FQ^~bD8W^>A7JS*jc;@̔o~^ i;}IVGWB[B*kpj?jeN1Ort>kz+n}u"ǾT8*ශߤT<Y#EDBL3N'Ñc0=͘t-=sPFÙmu|>wlZwN,J3r ܳp6Sk?zDiED"l3e6m#C_*]yrJ}Gg ۟A6V:cfƳH+6DBLJ+R1""R@Dvn{pdgK% Om 1!ʸ1#n?1Wil 47fH?ͮxtj(u#m%{RL'~痾~mID$ J3S]. Ñm" }l}Yr#*nQ3$0;h|12õ#෼_Q֝؈ph=\ 0I|_W|toqcLv[DDn3k A`v83`dd<䠹w\mrb֋I:=)&IFr%*mJ*-UJ0ݗd"d }z\8[kd!yD`|uC_c_Dv%DDf)o\$Ⱥ!ZmS:,7ڱ_L1d\kpCmSlAd\CuH'vNTk$?r,$?K&sg11ؤfW?s`v8"")'D%DD.{ x\Iw R{U_D”و^+~8`;?T5s}\. g3U7_v+l%p%tH' iסi;=G׎#w`$2O2KMkھOTj3؍><S5^XlPic}2D>k.<>Yю> t wMΆJ檛Mpyr9""#) ""n7)-,c9 lr =Pzʺwӗ >S:}. YprY\}}R)ϧPmEUY#֓53th)DDDd)87)p 0b;HkB!?_UVϘ<.fϼzqBCSP^uX)e#kG2G^|16LDD2)`W&nnµ#Dv玭~3\?]Nxdx+ ^`%2#9ȁGn-Y`4k1s"""rVpu8ރ!/?߃'* 0B>{lZ8'Hqxnql95q_Kq4{uAv_g1*6\""stW r2Bo|A7eb0Znѕ^V{O<i9K:sj0΍ܹ[ssӕsfj yyjxƄ[VDD$J,y Ɂ H'(P u "*wp j@8ɺٓOܹ}Dzs׍dΞ7U1U_ ""{t_ϻ'L򵉁W2.鄽uy7x>Q1YHn4pzy߿v/w-L[DDD6ct#wȭ׏f4Vum[m{ Xlo̱'ڕ 밚tɄYi>E^T2S@KEDdR@DDd|߿ u <Q8웫x5[mk-u^?I$}w;}_oכZNw`91x1-cj9v,gfLK'Vى{v_쁁T%:^Ƙj(""( ""]?MGWm͎h'^ǭ4;oVLo?sN'L; ʸN+0^62 ˧VutUH9^.u@ܼ~니E( ""bZ܄@b폡ȟ'ܻ~h>Afk~sƘp?Xb}IENDB`desktop-2.6.2/admin/win/nsi/l10n/000077500000000000000000000000001360037132600164235ustar00rootroot00000000000000desktop-2.6.2/admin/win/nsi/l10n/.tx/000077500000000000000000000000001360037132600171345ustar00rootroot00000000000000desktop-2.6.2/admin/win/nsi/l10n/.tx/config000066400000000000000000000022631360037132600203270ustar00rootroot00000000000000[main] host = https://www.transifex.com [owncloud.client-nsis] host = https://www.transifex.com source_file = pofiles/messages.pot source_lang = en type = PO minimum_perc = 5 # simple one-to-one language mappings trans.ca = pofiles/ca.po trans.el = pofiles/el.po trans.es_AR = pofiles/es_AR.po trans.es = pofiles/es.po trans.eu = pofiles/eu.po trans.fa = pofiles/fa.po trans.fr = pofiles/fr.po trans.gl = pofiles/gl.po trans.it = pofiles/it.po trans.nb_NO = pofiles/nb_NO.po trans.nl = pofiles/nl.po trans.pl = pofiles/pl.po trans.pt_BR = pofiles/pt_BR.po trans.ru = pofiles/ru.po trans.sl = pofiles/sl.po trans.sv = pofiles/sv.po trans.tr = pofiles/tr.po trans.uk = pofiles/uk.po trans.zh_CN = pofiles/zh_CN.po trans.zh_TW = pofiles/zh_TW.po # special handling below # de_DE holds the formal translation which we want as default trans.de_DE = pofiles/de.po # choose one of the given translations on transifex as default trans.pt_PT = pofiles/pt.po # choose a special language as more generic default trans.cs_CZ = pofiles/cs.po trans.et_EE = pofiles/et.po trans.fi_FI = pofiles/fi.po trans.hu_HU = pofiles/hu.po trans.ja_JP = pofiles/ja.po trans.sk_SK = pofiles/sk.po trans.th_TH = pofiles/th.po desktop-2.6.2/admin/win/nsi/l10n/Basque.nsh000066400000000000000000000077071360037132600203700ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Erakutsi bertsio-berritze oharrak" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Gelditu beharreko ${APPLICATION_EXECUTABLE} prozesua(k) aurkitu dira.$\nNahi duzu instalatzaileak zure partetik hauek gelditzea?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "${APPLICATION_EXECUTABLE} prozesuak hiltzen." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "kill prozesua ez da aurkitu!" StrCpy $PageReinstall_NEW_Field_1 "${APPLICATION_NAME}ren bertsio zaharrago bat instalatuta dago. Aholkatzen da hau desinstalatzea berria instalatu baino lehen. Hautatu nahi duzun aukera eta sakatu Hurrengoa jarraitzeko." StrCpy $PageReinstall_NEW_Field_2 "Desinstalatu instalatu baino lehen" StrCpy $PageReinstall_NEW_Field_3 "Ez desinstalatu" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Dagoeneko Instalatuta" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Hautatu nola nahi duzun ${APPLICATION_NAME} instalatzea." StrCpy $PageReinstall_OLD_Field_1 "${APPLICATION_NAME}ren bertsio berriago bat instalatuta dago! Ez da aholkatzen bertsio zaharrago bat instalatzea. Benetan bertsio zaharrago hau instalatu nahi baduzu, hobe da lehenengo bertsio berria desinstalatzea. Hautatu nahi duzun aukera eta sakatu Hurrengoa jarraitzeko." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} dagoeneko instalatuta dago.$\nHautatu zer operazio egin nahi duzu eta klikatu Hurrengoa jarraitzeko." StrCpy $PageReinstall_SAME_Field_2 "Gehitu/Berrinstalatu osagaiak" StrCpy $PageReinstall_SAME_Field_3 "Desinstalatu ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalatu ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Hautatu zer mantenu aukera egin nahi duzun." StrCpy $SEC_APPLICATION_DETAILS "${APPLICATION_NAME} ezinbestekoak instalatzen." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Windows Explorerekin Integrazioa" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Windows Explorerekin Integrazioa Instalatzen" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Hasierako Menuko Lasterbidea" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Hasierako Menuan ${APPLICATION_NAME}rako Abiarazle bizkorra sortzen." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Mahaigaineko Lasterbidea" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Mahaigaineko Lasterbideak Sortzen" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Abiarazle Bizkorreko Lasterbidea" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Abiarazle Bizkorreko Lasterbidea Sortzen" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} ezinbestekoak." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} lasterbidea." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "${APPLICATION_NAME}rako mahaigaineko lasterbidea." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "${APPLICATION_NAME}erako Abiarazle Bizkorreko Lasterbidea." StrCpy $UNINSTALLER_FILE_Detail "Desinstalatzailea idazten" StrCpy $UNINSTALLER_REGISTRY_Detail "Instalatzaileko Erregistroko Giltzak idazten" StrCpy $UNINSTALLER_FINISHED_Detail "Bukatuta" StrCpy $UNINSTALL_MESSAGEBOX "Ez dirudi ${APPLICATION_NAME} '$INSTDIR'.$ direktorioan instalatuta dagoenik.$\n$\nJarraitu hala ere (ez da aholkatzen)?" StrCpy $UNINSTALL_ABORT "Desinstalazioak erabiltzaileak bertan behera utzi du" StrCpy $INIT_NO_QUICK_LAUNCH "Abiarazle Bizkorreko Lasterbidea (E/E)" StrCpy $INIT_NO_DESKTOP "Mahaigaineko Lasterbidea (dagoena berridazten du)" StrCpy $UAC_ERROR_ELEVATE "Ezin izan da goratu, errorea:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Instalatzaileak administratzaile baimenak behar ditu, saiatu berriro" StrCpy $INIT_INSTALLER_RUNNING "Instalatzailea dagoeneko martxan da." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Desinstalatzaile honek administratzaile baimenak behar ditu, saiatu berriro" StrCpy $UAC_ERROR_LOGON_SERVICE "Saioa hasteko zerbitzua ez dago martxan, bertan behera uzten!" StrCpy $INIT_UNINSTALLER_RUNNING "Desinstalatzailea dagoeneko martxan da." StrCpy $SectionGroup_Shortcuts "Lasterbideak" desktop-2.6.2/admin/win/nsi/l10n/Catalan.nsh000066400000000000000000000077531360037132600205140ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar les notes de versió" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "S'ha trobat el(s) procés ${APPLICATION_EXECUTABLE} que s'ha d'aturar.$\nVoleu que l'instal·lador l'aturi?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "S'estan matant els processos ${APPLICATION_EXECUTABLE}." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Procés per matar no trobat!" StrCpy $PageReinstall_NEW_Field_1 "Una versió anterior de ${APPLICATION_NAME} està instal·lada en el vostre sistema. Es recomana desinstal·lar la versió actual abans d'instal·lar. Seleccioneu l'operació que desitjeu realitzar i feu clic a Següent per continuar." StrCpy $PageReinstall_NEW_Field_2 "Desinstal·lar abans d'instal·lar" StrCpy $PageReinstall_NEW_Field_3 "No instal·lar" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Ja instal·lat" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Trieu la manera com voleu instal·lar ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Una versió més recent de ${APPLICATION_NAME} ja està instal.lada!! No es recomana instal.lar una versió més antiga. Si realment voleu instal.lar una versió més antiga, és millor primer desinstal.lar la versió actual. Seleccioni l'operació que desitjeu realitzar i feu clic a Següent per a continuar." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} ja està instal·lat.$\n$\nSeleccioneu la operació que voleu fer i feu clic a Següent per continuar." StrCpy $PageReinstall_SAME_Field_2 "Afegir/Reinstal.lar components" StrCpy $PageReinstall_SAME_Field_3 "Desinstal.lar ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstal.lar ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolliu l'opció de manteniment per executar-ho." StrCpy $SEC_APPLICATION_DETAILS "Instal·lant ${APPLICATION_NAME} essencial." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integració per Windows Explorer" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instal·lant integració per Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Accés directe del programa al menú d'inici" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Afegint la drecera per ${APPLICATION_NAME} al menú d'inici." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Drecera a l'escriptori" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creant les dreceres a l'escriptori" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Drecera d'inici ràpid" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creant la drecera per l'inici ràpid" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essencial." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Drecera ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Drecera a l'escrptori per ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Drecera d'inici ràpid per ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Escrivint el desinstal·lador" StrCpy $UNINSTALLER_REGISTRY_Detail "Escrivint les claus del registre de l'instal·lador" StrCpy $UNINSTALLER_FINISHED_Detail "Acabat" StrCpy $UNINSTALL_MESSAGEBOX "No sembla que ${APPLICATION_NAME} estigui instal·lat en la carpeta '$INSTDIR'.$\n$\nContinuo igualment (no recomanat)?" StrCpy $UNINSTALL_ABORT "La desinstal·lació s'ha cancel·lat." StrCpy $INIT_NO_QUICK_LAUNCH "Drecera d'inici ràpid (N/A)" StrCpy $INIT_NO_DESKTOP "Drecera de l'escrpitori (sobreescriu l'existent)" StrCpy $UAC_ERROR_ELEVATE "No es pot elevar, error:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Aquest instal·lador requereix accés d'administrador, intenteu-ho de nou" StrCpy $INIT_INSTALLER_RUNNING "L'instal·lador ja s'està executant." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Aquest desinstal·lador requereix accés d'administrador, intenteu-ho de nou." StrCpy $UAC_ERROR_LOGON_SERVICE "El servei de inici de sessió no s'està executant, s'està abortant!" StrCpy $INIT_UNINSTALLER_RUNNING "El desinstal·lador ja s'està executant." StrCpy $SectionGroup_Shortcuts "Dreceres" desktop-2.6.2/admin/win/nsi/l10n/Czech.nsh000066400000000000000000000074051360037132600201770ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Zobrazit poznmky k vydn" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Nalezen proces(y) ${APPLICATION_EXECUTABLE}, kter je nutn ukonit .$\nPejete si, aby je instaltor za vs ukonil?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Ukonuji procesy ${APPLICATION_EXECUTABLE}." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Proces k ukonen nebyl nalezen! " StrCpy $PageReinstall_NEW_Field_1 "Star verze ${APPLICATION_NAME} je nainstalovna na tomto systmu. Doporuuje se pedem tuto verzi odinstalovat. Zvolte operaci, kterou chcete uskutenit, a kliknte na tlatko Dal pro pokraovn." StrCpy $PageReinstall_NEW_Field_2 "Odinstalovat ped instalac" StrCpy $PageReinstall_NEW_Field_3 "Neodinstalovvat" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Ji nainstalovno" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Zvolte, jak chcete ${APPLICATION_NAME} nainstalovat." StrCpy $PageReinstall_OLD_Field_1 "Novj verze aplikace ${APPLICATION_NAME} je ji nainstalovna. Instalace star verze se nedoporuuje. Pokud opravdu chcete tuto star verzi nainstalovat, je lep nejprve odinstalovat souasnou verzi. Zvolte poadovanou operaci a kliknte na Dal pro pokraovn." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} je ji nainstalovna.$\n$\nZvolte poadovanou operaci a kliknte na Dal pro pokraovn." StrCpy $PageReinstall_SAME_Field_2 "Pidat i znovu instalovat komponenty" StrCpy $PageReinstall_SAME_Field_3 "Odinstalovat ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Odinstalovat ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Vyberte monost drby k proveden." StrCpy $SEC_APPLICATION_DETAILS "Instaluj se nleitosti ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integrace do przkumnka Windows" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalace integrace do przkumnka Windows" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Zstupce v Nabdce Start" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Pidvm zstupce pro ${APPLICATION_NAME} do Nabdky Start." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Zstupce na ploe" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Vytvm zstupce na ploe" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Zstupce v panelu rychlho sputn" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Vytvm zstupce v panelu rychlho sputn" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Nleitosti ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Zstupce ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Zstupce na ploe pro ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Zstupce rychlho sputn pro ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Zapisuji odinstaltor" StrCpy $UNINSTALLER_REGISTRY_Detail "Zapisuji instaltor do registr" StrCpy $UNINSTALLER_FINISHED_Detail "Dokoneno" StrCpy $UNINSTALL_MESSAGEBOX "Nezd se, e ${APPLICATION_NAME} je nainstalovna v adresi '$INSTDIR'.$\n$\nChcete pokraovat (nedoporuuje se)?" StrCpy $UNINSTALL_ABORT "Odinstalace zruena uivatelem" StrCpy $INIT_NO_QUICK_LAUNCH "Zstupce rychlho sputn (nen k dispozici)" StrCpy $INIT_NO_DESKTOP "Zstupce na ploe (pepe existujc)" StrCpy $UAC_ERROR_ELEVATE "Nelze zvit, chyba:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Tento instaltor vyaduje sprvcovsk oprvnn, opakujte znovu" StrCpy $INIT_INSTALLER_RUNNING "Instaltor je ji sputn." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Tento odinstaltor vyaduje sprvcovsk oprvnn, opakujte znovu" StrCpy $UAC_ERROR_LOGON_SERVICE "Sluba pihlen nebا, ukonuji!" StrCpy $INIT_UNINSTALLER_RUNNING "Odinstaltor je ji sputn." StrCpy $SectionGroup_Shortcuts "Zstupci" desktop-2.6.2/admin/win/nsi/l10n/Dutch.nsh000066400000000000000000000076261360037132600202170ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Toon opmerkingen bij deze versie" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Gevonden ${APPLICATION_EXECUTABLE} proces(sen) moet worden gestopt.$\nWilt u dat het installatieprogramma dat voor u doet?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Stoppen ${APPLICATION_EXECUTABLE} processen." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Het te stoppen proces is niet gevonden!" StrCpy $PageReinstall_NEW_Field_1 "Er is een oudere versie van ${APPLICATION_NAME} genstalleerd op uw systeem. geadviseerd wordt om de huidige versie te de-installeren voordat de nieuwe versie wordt genstalleerd. Selecteer de uit te voeren actie en klik op Verder om door te gaan." StrCpy $PageReinstall_NEW_Field_2 "Verwijder oude versie" StrCpy $PageReinstall_NEW_Field_3 "Behoud oude versie" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Al genstalleerd" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Kies hoe u ${APPLICATION_NAME} wilt installeren." StrCpy $PageReinstall_OLD_Field_1 "Er is al een recentere versie van ${APPLICATION_NAME} genstalleerd! Installeren van een oudere versie wordt niet aangeraden. Als u echt de oudere versie wilt installeren, adviseren we de huidige versie eerst te verwijderen. Kies de actie die u wilt uitvoeren en druk op Verder om door te gaan." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is al genstalleerd.$\n$\nKies de actie die u uit wil voeren en druk op Verder om door te gaan." StrCpy $PageReinstall_SAME_Field_2 "Toevoegen/herinstalleren componenten" StrCpy $PageReinstall_SAME_Field_3 "De-installeer ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "De-installeer ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Kies de uit te voeren onderhoudsoptie." StrCpy $SEC_APPLICATION_DETAILS "Installeren ${APPLICATION_NAME} basis." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integratie binnen Windows Verkenner" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installeren Integratie binnen Windows Verkenner" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Startmenu snelkoppeling" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Toevoegen snelkoppeling voor ${APPLICATION_NAME} aan het Startmenu." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Werkblad snelkoppeling" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Aanmaken werkblad snelkoppelingen" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Snelstart snelkoppeling" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Aanmaken snelstart snelkoppeling" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} basis." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} snelkoppeling." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Werkblad snelkoppeling voor ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Snelstart snelkoppeling voor ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Wegschrijven Uninstaller" StrCpy $UNINSTALLER_REGISTRY_Detail "Wegschrijven installer Registersleutels" StrCpy $UNINSTALLER_FINISHED_Detail "Klaar" StrCpy $UNINSTALL_MESSAGEBOX "Het lijkt er niet op dat ${APPLICATION_NAME} is genstalleerd in de map '$INSTDIR'.$\n$\nToch doorgaan (niet aangeraden)?" StrCpy $UNINSTALL_ABORT "De-installatie afgebroken door de gebruiker" StrCpy $INIT_NO_QUICK_LAUNCH "Snelstart snelkoppeling (N/A)" StrCpy $INIT_NO_DESKTOP "Bureaublad snelkoppeling (overschrijft huidige)" StrCpy $UAC_ERROR_ELEVATE "Kan niet verhogen, fout:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Dit installatieprogramma vereist beheerdersrechten. Probeer het opnieuw" StrCpy $INIT_INSTALLER_RUNNING "De Installer is al gestart." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Deze uninstaller vereist Beheerderstoegang, probeer opnieuw" StrCpy $UAC_ERROR_LOGON_SERVICE "De aanmeldprocedure is niet actief; er wordt afgebroken!" StrCpy $INIT_UNINSTALLER_RUNNING "De uninstaller is al gestart." StrCpy $SectionGroup_Shortcuts "Snelkoppelingen" desktop-2.6.2/admin/win/nsi/l10n/English.nsh000066400000000000000000000073261360037132600205360ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Show release notes" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Killing ${APPLICATION_EXECUTABLE} processes." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Process to kill not found!" StrCpy $PageReinstall_NEW_Field_1 "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue." StrCpy $PageReinstall_NEW_Field_2 "Uninstall before installing" StrCpy $PageReinstall_NEW_Field_3 "Do not uninstall" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Already Installed" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Choose how you want to install ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.$\r$\nSelect the operation you want to perform and click Next to continue." StrCpy $PageReinstall_SAME_Field_2 "Add/Reinstall components" StrCpy $PageReinstall_SAME_Field_3 "Uninstall ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Uninstall ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choose the maintenance option to perform." StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integration for Windows Explorer" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing Integration for Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Desktop Shortcut" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creating Desktop Shortcuts" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Quick Launch Shortcut" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creating Quick Launch Shortcut" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} shortcut." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Desktop shortcut for ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Quick Launch shortcut for ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Writing Uninstaller" StrCpy $UNINSTALLER_REGISTRY_Detail "Writing Installer Registry Keys" StrCpy $UNINSTALLER_FINISHED_Detail "Finished" StrCpy $UNINSTALL_MESSAGEBOX "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" StrCpy $UNINSTALL_ABORT "Uninstall aborted by user" StrCpy $INIT_NO_QUICK_LAUNCH "Quick Launch Shortcut (N/A)" StrCpy $INIT_NO_DESKTOP "Desktop Shortcut (overwrites existing)" StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "This installer requires admin access, try again" StrCpy $INIT_INSTALLER_RUNNING "The installer is already running." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "This uninstaller requires admin access, try again" StrCpy $UAC_ERROR_LOGON_SERVICE "Logon service is not running, aborting!" StrCpy $INIT_UNINSTALLER_RUNNING "The uninstaller is already running." StrCpy $SectionGroup_Shortcuts "Shortcuts" desktop-2.6.2/admin/win/nsi/l10n/Estonian.nsh000066400000000000000000000071711360037132600207230ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Nita vljalaske mrkmeid" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Leitud protsess(id) ${processName} mis tuleks peatada. $\nKas soovid, et installer seiskaks need?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "${APPLICATION_EXECUTABLE} protsessi lpetamine." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Ei leitud protsessi, mida tappa!" StrCpy $PageReinstall_NEW_Field_1 "ks vanem versioon ${APPLICATION_NAME} on juba paigaldatud. On soovitav see eemaldada enne uue paigaldamist. Vali tehtav toiming ning kliki Jtka." StrCpy $PageReinstall_NEW_Field_2 "Eemalda enne paigaldamist" StrCpy $PageReinstall_NEW_Field_3 "ra paigalda" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Juba paigaldatud" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Vali, kuidas sa soovid paigaldada ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Uuem versioon ${APPLICATION_NAME} on juba paigaldatud! Vanema versiooni paigaldus ei ole soovitatav. Kui testi tahad paigaldada vanemat versiooni, siis on parem esmalt eemaldada olemasolev. Vali tehtav toiming ning kliki Jtka." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} on juba paigaldatud.$\n$\nVali toiming, mida sa tahad sooritada ning kliki jtkamiseks nuppu Next." StrCpy $PageReinstall_SAME_Field_2 "Lisa/Taaspaigalda komponente" StrCpy $PageReinstall_SAME_Field_3 "Desinstalli ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalli ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Vali hooldustegevus, mida sa soovid sooritada." StrCpy $SEC_APPLICATION_DETAILS "Paigaldan ${APPLICATION_NAME} phiosa." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integreerimine Windows Exploreriga" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Paigalda Windows Exploreriga integreerimine" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Men programmide otsetee" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Lisan ${APPLICATION_NAME} otsetee Start mensse." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Tlaua otsetee" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Tlaua otseteede loomine" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Kiirvaliku otsetee" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Kiirvaliku otsetee loomine" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} phiosa." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} otsetee." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Tlaua otsetee rakendusele ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Kiirvaliku otsetee rakendusele ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Desinstallija kirjutamine" StrCpy $UNINSTALLER_REGISTRY_Detail "Kirjutan paigaldaja registri vtmeid" StrCpy $UNINSTALLER_FINISHED_Detail "Lpetatud" StrCpy $UNINSTALL_MESSAGEBOX "Ei leia, et ${APPLICATION_NAME} oleks paigaldatud kataloogi '$INSTDIR'.$\n$\nJtkata sellele vaatamata (pole soovitav)?" StrCpy $UNINSTALL_ABORT "Desinstallimine on kasutaja poolt katkestatud" StrCpy $INIT_NO_QUICK_LAUNCH "Kiirvaliku otsetee (N/A)" StrCpy $INIT_NO_DESKTOP "Ikoon tlaual (kirjutab olemasoleva le)" StrCpy $UAC_ERROR_ELEVATE "Ei suuda lendada igusi, viga: " StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "See paigaldaja vajab admini ligipsu, proovi uuesti" StrCpy $INIT_INSTALLER_RUNNING "Paigaldaja on juba kimas." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "See desinstallija vajab admini ligipsu, proovi uuesti" StrCpy $UAC_ERROR_LOGON_SERVICE "Sisselogimisteenus ei tta, katkestamine!" StrCpy $INIT_UNINSTALLER_RUNNING "See desinstallija on juba kimas." StrCpy $SectionGroup_Shortcuts "Otseteed" desktop-2.6.2/admin/win/nsi/l10n/Farsi.nsh000066400000000000000000000115121360037132600202010ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "نمایش پادداشت های انتشار نسخه" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "${APPLICATION_EXECUTABLE} پردازش (ها) که باید متوقف شوند را پیدا کرد. $\nآیا میخواهیم برنامه نصاب این پردازشها را برای شما متوقف کند ؟" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "حذف پردازش‌های ${APPLICATION_EXECUTABLE}." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "پردازش برای از بین بردن یافت نشد!" StrCpy $PageReinstall_NEW_Field_1 "نسخه‌ی قدیمی از برنامه ${APPLICATION_NAME} بر روی سیستم شما نصب شده است، پیشنهاد می‌شود نسخه‌ی فعلی را قبل از نصب حذف کنید. عملیات مورد نظر را انتخاب کنید و برای ادامه روی دکمه Next کلیک کنید." StrCpy $PageReinstall_NEW_Field_2 "عمل حذف را قبل از نصب انجام دهید" StrCpy $PageReinstall_NEW_Field_3 "حذف نکن" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "از قبل نصب شده است" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "نحوه‌ی نصب ${APPLICATION_NAME} را انتخاب کنید." StrCpy $PageReinstall_OLD_Field_1 "نسخه جدیدتری از برنامه ${APPLICATION_NAME} بر روی سیستم شما نصب شده است، نصب نسخه‌ی قدیمی‌تر پیشنهاد نمی‌شود. درصورتیکه میخواهید نسخه‌ی قدیمی را نصب کنید، حذف نسخه‌ی کنونی قبل از اجرای نصب جدید پیشنهاد می‌شود. عملیات مورد نظر را انتخاب و بر روی دکمه‌ی Next کلیک کنید." StrCpy $PageReinstall_SAME_Field_1 "نسخه ${VERSION} از ${APPLICATION_NAME} هم‌اکنون نصب شده است.$↩$\nعملیات مورد نظر را انتخاب و بر روی دکمه Next کلیک کنید." StrCpy $PageReinstall_SAME_Field_2 "افزودن/نصب مجدد اجزا" StrCpy $PageReinstall_SAME_Field_3 "حذف ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "حذف ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "گزینه نگهداری را به منظور اجرا انتخاب کنید." StrCpy $SEC_APPLICATION_DETAILS "نصب ضروریات ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "یکپارچه‌سازی با Windows Explorer" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "نصب یکپارچه‌ساز با Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "بازکردن میانبر منو برنامه" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "افزودن میانبر ${APPLICATION_NAME} به استارت منو ." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "میانبر دسکتاپ" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "ایجاد میانبر دسکتاپ" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "میانبر بازکردن سریع" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "ایجاد میانبر اجرای سریع" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "ملزومات ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_START_MENU_Desc "میانبر ${APPLICATION_NAME} " StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "میانبر دسکتاپ برای ${APPLICATION_NAME} ." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "میانبر اجرای سریع برای ${APPLICATION_NAME}" StrCpy $UNINSTALLER_FILE_Detail "نوشتن حذف کننده" StrCpy $UNINSTALLER_REGISTRY_Detail "در حال نوشتن کلید های رجیستری نصاب" StrCpy $UNINSTALLER_FINISHED_Detail "اتمام" StrCpy $UNINSTALL_MESSAGEBOX "به نظر نمی رسد نرم افزار ${APPLICATION_NAME} در '$INSTDIR'.$\n$\nنصب شده باشد.$\nآیا می خواهید ادامه دهید ( توصیه نشده است ) ؟" StrCpy $UNINSTALL_ABORT "عمل حذف توسط کاربر متوقف شد" StrCpy $INIT_NO_QUICK_LAUNCH "میانبر بازکردن سریع ( N/A )" StrCpy $INIT_NO_DESKTOP "میانبر دسکتاپ (رونویسی وجود دارد)" StrCpy $UAC_ERROR_ELEVATE "مشکل در بالااوردن ، خطا : " StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "برای نصب، دسترسی مدیر سیستم نیاز است، مجددا تلاش کنید" StrCpy $INIT_INSTALLER_RUNNING "نصاب از قبل در حال اجراست." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "حذف برنامه نیاز به دسترسی مدیر دارد ، لطفا دوباره سعی کنید" StrCpy $UAC_ERROR_LOGON_SERVICE "سرویس ورود اجرا نیست، درحال لغو نصب!" StrCpy $INIT_UNINSTALLER_RUNNING "حذف کننده از قبل در حال اجراست." StrCpy $SectionGroup_Shortcuts "میانبرها" desktop-2.6.2/admin/win/nsi/l10n/Finnish.nsh000066400000000000000000000076251360037132600205450ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Nyt julkaisutiedot" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Havaittiin sovelluksen ${APPLICATION_EXECUTABLE} prosessi (tai prosesseja) jotka pitisi pysytt.$\nHaluatko ett asennusohjelma pysytt nm puolestasi?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Pysytetn sovelluksen ${APPLICATION_EXECUTABLE} prosessit." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Tapettavaa prosessia ei lytynyt!" StrCpy $PageReinstall_NEW_Field_1 "Vanhempi versio sovelluksesta ${APPLICATION_NAME} on jo asennettu. On suositeltavaa ett poistat vanhan asennuksen ensin. Valitse mik toiminto suoritetaan ja napsauta Seuraava jatkaaksesi." StrCpy $PageReinstall_NEW_Field_2 "Poista ennen asentamista" StrCpy $PageReinstall_NEW_Field_3 "l poista" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Asennettu jo" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Valitse miten ${APPLICATION_NAME} asennetaan." StrCpy $PageReinstall_OLD_Field_1 "Uudempi versio sovelluksesta ${APPLICATION_NAME} on jo asennettu! Vanhan version asennus ei ole suositeltavaa. Jos todella haluat asentaa vanhemman version, kannattaa poistaa nykyisen version asennus ensin. Valitse mink toimenpiteen haluat suorittaa ja paina Seuraava jatkaaksesi." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} on jo asennettu.$\n$\nValitse haluamasi toiminto ja napsauta Seuraava jatkaaksesi." StrCpy $PageReinstall_SAME_Field_2 "Lis/uudelleenasenna komponentteja" StrCpy $PageReinstall_SAME_Field_3 "Poista ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Poista ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Valitse suoritettava huoltotoimenpide." StrCpy $SEC_APPLICATION_DETAILS "Asennetaan sovelluksen ${APPLICATION_NAME} vlttmttmyyksi." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integraatio Windows Exploreriin" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Asennetaan integraatiota Windows Exploreriin" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Kynnist-valikon pikakuvake" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Listn ${APPLICATION_NAME}-pikakuvake Kynnist-valikkoon." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Typydn pikakuvake" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Luodaan typydn pikakuvakkeet" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Pikakynnistyksen pikakuvake" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Luodaan pikakuvaketta pikakynnistykseen" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} vlttmttmyydet." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME}-pikakuvake." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Sovelluksen ${APPLICATION_NAME} typytpikakuvake." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Pikakynnistyksen pikakuvake sovellukselle ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Kirjoitetaan poisto-ohjelmaa" StrCpy $UNINSTALLER_REGISTRY_Detail "Kirjoitetaan asennusohjelman rekisteriavaimia" StrCpy $UNINSTALLER_FINISHED_Detail "Valmis" StrCpy $UNINSTALL_MESSAGEBOX "Vaikuttaa silt ett sovellus ${APPLICATION_NAME} on asennettu kansioon '$INSTDIR'.$\n$\nHaluatko jatkaa tst huolimatta (ei suositeltavaa)?" StrCpy $UNINSTALL_ABORT "Poistaminen keskeytettiin kyttjn toimesta" StrCpy $INIT_NO_QUICK_LAUNCH "Pikakynnistyksen pikakuvake (-)" StrCpy $INIT_NO_DESKTOP "Typydn pikakuvake (korvaa nykyinen)" StrCpy $UAC_ERROR_ELEVATE "Kohottaminen ei onnistu, virhe:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Tm asennusohjelma vaatii yllpitjn oikeudet, yrit uudelleen." StrCpy $INIT_INSTALLER_RUNNING "Asennusohjelma on jo kynniss." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Tm poisto-ohjelma vaatii yllpitjn oikeudet, yrit uudelleen." StrCpy $UAC_ERROR_LOGON_SERVICE "Kirjautumispalvelu ei ole kynniss, perutaan!" StrCpy $INIT_UNINSTALLER_RUNNING "Poisto-ohjelma on jo kynniss." StrCpy $SectionGroup_Shortcuts "Pikakuvakkeet" desktop-2.6.2/admin/win/nsi/l10n/French.nsh000066400000000000000000000103141360037132600203410ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Afficher les notes de version" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Les processus ${APPLICATION_EXECUTABLE} en cours d’exécution doivent être stoppés avant de poursuivre.$\nVoulez-vous que le programme d’installation s’en charge pour vous ?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Fermeture des processus ${APPLICATION_EXECUTABLE}." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Le processus à stopper n'a pas été trouvé !" StrCpy $PageReinstall_NEW_Field_1 "Une ancienne version de ${APPLICATION_NAME} est installée sur votre système. Il est recommandé de désinstaller cette version avant de continuer. Sélectionnez l'opération que vous voulez exécuter et cliquez sur Suivant pour continuer." StrCpy $PageReinstall_NEW_Field_2 "Désinstaller avant d'installer à nouveau" StrCpy $PageReinstall_NEW_Field_3 "Ne pas désinstaller" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Déjà installé" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Choisissez comment installer ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Une version plus récente de ${APPLICATION_NAME} est déjà installée ! Il n'est pas recommandé d'installer une version plus ancienne. Si vous voulez vraiment installer cette version plus ancienne, il est préférable de d'abord désinstaller la version courante. Sélectionnez l'opération que vous voulez exécuter et cliquez sur Suivant pour continuer." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} est déjà installé.$\n$\nSélectionnez l'opération que vous souhaitez effectuer et cliquez sur Suivant pour continuer." StrCpy $PageReinstall_SAME_Field_2 "Ajouter/Réinstaller des composants" StrCpy $PageReinstall_SAME_Field_3 "Désinstaller ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Désinstaller ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choisir l'opération de maintenance à effectuer." StrCpy $SEC_APPLICATION_DETAILS "Installation des essentiels de ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Intégration à l'Explorateur Windows" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installation de l'intégration à l'Explorateur Windows..." StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Raccourci programme du menu Démarrer" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Ajout d'un raccourci pour ${APPLICATION_NAME} au menu Démarrer." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Raccourci Bureau" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Création d'un raccourci sur le Bureau" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Raccourci de lancement rapide" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Création d'un raccourci de lancement rapide" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Essentiels de ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Raccourci de ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Raccourci de bureau pour ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Raccourci de lancement rapide de ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Écriture du désinstallateur" StrCpy $UNINSTALLER_REGISTRY_Detail "Écriture des clefs de registre du désinstallateur" StrCpy $UNINSTALLER_FINISHED_Detail "Terminé" StrCpy $UNINSTALL_MESSAGEBOX "Il semble que ${APPLICATION_NAME} ne soit pas installé dans le dossier '$INSTDIR'.$\n$\nVoulez-vous poursuivre (non recommandé) ?" StrCpy $UNINSTALL_ABORT "Désinstallation interrompue par l'utilisateur" StrCpy $INIT_NO_QUICK_LAUNCH "Raccourci de lancement rapide (non disponible)" StrCpy $INIT_NO_DESKTOP "Raccourci bureau (remplace l’existant)" StrCpy $UAC_ERROR_ELEVATE "Échec d'élévation, erreur :" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Cet installateur requiert les droits administrateur, essayez à nouveau" StrCpy $INIT_INSTALLER_RUNNING "Une installation est déjà en cours." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Ce désinstallateur requiert les droits administrateur, essayez à nouveau" StrCpy $UAC_ERROR_LOGON_SERVICE "Service de logon non lancé ! Abandon." StrCpy $INIT_UNINSTALLER_RUNNING "Une désinstallation est déjà en cours." StrCpy $SectionGroup_Shortcuts "Raccourcis" desktop-2.6.2/admin/win/nsi/l10n/Galician.nsh000066400000000000000000000076661360037132600206630ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Amosar as notas de publicacin" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Atopronse procesos ${APPLICATION_EXECUTABLE} que teen que ser detidos.$\nQuere que sexa o instalador quen o(s) detea?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Matando os procesos ${APPLICATION_EXECUTABLE}." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Non se atopou o proceso para matalo!" StrCpy $PageReinstall_NEW_Field_1 "No seu sistema hai instalada unha versin anterior de ${APPLICATION_NAME}. Recomendmoslle que desinstale a versin actual antes de instalar. Seleccione a operacin que quere realizar e prema en Seguinte para continuar." StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar" StrCpy $PageReinstall_NEW_Field_3 "Non desinstalar" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Xa instalado" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Escolla como quere instalar ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Ten instalada unha versin actualizada do ${APPLICATION_NAME}! recomendmoslle que non instale unha versin anterior. Se realmente quere instalar esta versin mis antiga, preferbel que desinstale a versin actual antes de instalar. Seleccione a operacin que quere realizar e prema en Seguinte para continuar." StrCpy $PageReinstall_SAME_Field_2 "Engadir/reinstalar compoentes" StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolla a opcin de mantemento a realizar." StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} esenciais." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integracin con Windows Explorer" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalando a integracin con Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Acceso directo ao programa no men de inicio" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Engadindo o acceso directo a ${APPLICATION_NAME} no men de inicio" StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Acceso directo no escritorio" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creando os accesos directos no escritorio" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Acceso de inicio rpido" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creando o acceso de inicio rpido" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} esenciais." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Acceso directo ao ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Acceso directo no escritorio para " StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Acceso de inicio rpido para ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Escribindo o desinstalador" StrCpy $UNINSTALLER_REGISTRY_Detail "Escribindo o instalador nas chaves do rexistro" StrCpy $UNINSTALLER_FINISHED_Detail "Rematado" StrCpy $UNINSTALL_MESSAGEBOX "Semella que ${APPLICATION_NAME} non est instalado no directorio $INSTDIR.$\n$\nContinuar anda as (non recomendado)?" StrCpy $UNINSTALL_ABORT "A desinstalacin foi interrompida polo usuario." StrCpy $INIT_NO_QUICK_LAUNCH "Acceso de inicio rpido (n/d)" StrCpy $INIT_NO_DESKTOP "Atallo no escritorio (sobrescribe o existente)" StrCpy $UAC_ERROR_ELEVATE "Non foi posbel elevalo, erro:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Este instalador require acceso de administrador, tnteo de novo" StrCpy $INIT_INSTALLER_RUNNING "O instalador xa est en execucin." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Este desinstalador require acceso de administrador, tnteo de novo" StrCpy $UAC_ERROR_LOGON_SERVICE "O servizo de acceso non est en execucin, cancelando!" StrCpy $INIT_UNINSTALLER_RUNNING "O desinstalador xa est en execucin." StrCpy $SectionGroup_Shortcuts "Atallos" StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.$\r$\nSelect the operation you want to perform and click Next to continue." desktop-2.6.2/admin/win/nsi/l10n/German.nsh000066400000000000000000000077141360037132600203570ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Release-Informationen anzeigen" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "${APPLICATION_EXECUTABLE} Prozess(e) gefunden, die gestoppt werden mssen.$\nWollen Sie, dass der Installer diese nun fr Sie stoppt?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Stoppe ${APPLICATION_EXECUTABLE} Prozess(e)." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Prozess zum Beenden nicht gefunden!" StrCpy $PageReinstall_NEW_Field_1 "Eine ltere Version von ${APPLICATION_NAME} ist auf Ihrem System installiert. Es wird empfohlen, diese Version zunchst zu entfernen. Whlen Sie unter folgenden Vorgehenweisen und whlen Sie $\"Weiter$\"." StrCpy $PageReinstall_NEW_Field_2 "Vor der Installation entfernen" StrCpy $PageReinstall_NEW_Field_3 "Nicht entfernen" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Bereits installiert" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Whlen Sie die Methode, mit der sie ${APPLICATION_NAME} installieren wollen." StrCpy $PageReinstall_OLD_Field_1 "Eine neuere Version von ${APPLICATION_NAME} ist bereits installiert! Es wird nicht empfohlen, eine ltere Version zu installieren. Wollen Sie dies trotzdem tun, so sollten Sie die aktuelle Version zunchst entfernen. Whlen Sie eine Vorgehensweise und whlen dann $\"Weiter$\"." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} ist bereits installiert. $\nWhlen Sie eine Vorgehensweise und klicken Sie auf $\"Weiter$\"." StrCpy $PageReinstall_SAME_Field_2 "Komponenten hinzufgen" StrCpy $PageReinstall_SAME_Field_3 "${APPLICATION_NAME} entfernen" StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} entfernen" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Whlen Sie zur Ausfhrung die Wartungsoption." StrCpy $SEC_APPLICATION_DETAILS "Installiere ${APPLICATION_NAME} Basis." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integration in den Windows Explorer" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installiere Integration in den Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Installiere Verknpfung im Programmmen" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Fge Verknpfung fr ${APPLICATION_NAME} dem Startmen hinzu." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Desktop-Verknpfung" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Erstellt Desktop-Verknpfung" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Schnellstart-Verknpfung" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Erstelle Schnellstart-Verknpfung" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} Basis." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} Verknfung." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Desktop-Verknpfung fr ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Schnellstart-Verknpfung fr ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Schreibe Uninstaller" StrCpy $UNINSTALLER_REGISTRY_Detail "Schreibe Registrierungseintrge" StrCpy $UNINSTALLER_FINISHED_Detail "Abgeschlossen" StrCpy $UNINSTALL_MESSAGEBOX "Es scheint, als ob ${APPLICATION_NAME} nicht im Verzeichnis '$INSTDIR' installiert ist.$\n$\nTrotzdem fortfahren (nicht empfohlen)?" StrCpy $UNINSTALL_ABORT "Deinstallation vom Benutzer abgebrochen" StrCpy $INIT_NO_QUICK_LAUNCH "Schnellstart-Verknpfung (Nicht verfgbar)" StrCpy $INIT_NO_DESKTOP "Desktop-Verknpfung (berschreibt vorhandene)" StrCpy $UAC_ERROR_ELEVATE "Rechte knnen nicht erhht werden, Fehler:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Dieses Installationsprogramm erfordert Administrator-Rechte, bitte erneut versuchen" StrCpy $INIT_INSTALLER_RUNNING "Das Installationsprogramm wird bereits ausgefhrt." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Das Deinstallationsprogramm erfordert Administrator-Rechte. Bitte erneut versuchen." StrCpy $UAC_ERROR_LOGON_SERVICE "Anmeldedienst luft nicht, abbruch!" StrCpy $INIT_UNINSTALLER_RUNNING "Das Deinstallationsprogramm wird bereits ausgefhrt." StrCpy $SectionGroup_Shortcuts "Verknpfungen" desktop-2.6.2/admin/win/nsi/l10n/Greek.nsh000066400000000000000000000103361360037132600201750ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING " " StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT " () () ${APPLICATION_EXECUTABLE} () () ().$\n () ;" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT " ${APPLICATION_EXECUTABLE}." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT " !" StrCpy $PageReinstall_NEW_Field_1 " ${APPLICATION_NAME} . . ." StrCpy $PageReinstall_NEW_Field_2 " " StrCpy $PageReinstall_NEW_Field_3 " " StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE " " StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE " ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 " ${APPLICATION_NAME} ! . , . ." StrCpy $PageReinstall_SAME_Field_1 " ${APPLICATION_NAME} ${VERSION} .$\n$\n ." StrCpy $PageReinstall_SAME_Field_2 "/ " StrCpy $PageReinstall_SAME_Field_3 " ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE " ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE " ." StrCpy $SEC_APPLICATION_DETAILS " ${APPLICATION_NAME} ." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION " Windows" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint " Windows" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION " " StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint " ${APPLICATION_NAME} ." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION " " StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint " " StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION " " StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint " " StrCpy $OPTION_SECTION_SC_APPLICATION_Desc " ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_START_MENU_Desc " ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc " ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc " ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail " " StrCpy $UNINSTALLER_REGISTRY_Detail " (Registry) " StrCpy $UNINSTALLER_FINISHED_Detail "" StrCpy $UNINSTALL_MESSAGEBOX " ${APPLICATION_NAME} '$INSTDIR'.$\n$\n ' ( );" StrCpy $UNINSTALL_ABORT " " StrCpy $INIT_NO_QUICK_LAUNCH " (/)" StrCpy $INIT_NO_DESKTOP " ( )" StrCpy $UAC_ERROR_ELEVATE " , :" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN " , " StrCpy $INIT_INSTALLER_RUNNING " ." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN " , " StrCpy $UAC_ERROR_LOGON_SERVICE " , !" StrCpy $INIT_UNINSTALLER_RUNNING " ." StrCpy $SectionGroup_Shortcuts "" desktop-2.6.2/admin/win/nsi/l10n/Hungarian.nsh000066400000000000000000000105771360037132600210630ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Kiadási jegyzetek megtekintése" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "A következő folyamatot(okat) meg kell állítani ${APPLICATION_EXECUTABLE}.$\nSzeretné ha a telepítő program megállítani ezeket a folyamatokat?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "${APPLICATION_EXECUTABLE} folyamat kilövése." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "A kilövésre szánt folyamat nem található!" StrCpy $PageReinstall_NEW_Field_1 "Az ${APPLICATION_NAME} alkalmazás egy régebbi verziója telepítve van a rendszeren. Ajánlott a régi alkalmazás eltávolítása mielőtt a legfrissebb verziót telepítené. Válassza ki milyen műveletet szeretne végrehajtani, és nyomja meg a $\"Következő$\" gombot a folytatáshoz." StrCpy $PageReinstall_NEW_Field_2 "Eltávolítás telepítés előtt" StrCpy $PageReinstall_NEW_Field_3 "Ne távolítsa el" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Már telepítve" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Válassza ki, hogy szeretné telepíteni a következő alkalmazást: ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Az ${APPLICATION_NAME} alkalmazás egy újabb verziója már megtalálható a rendszeren. Nem ajánlott egy régebbi verzió telepítése. Ha valóban szeretné a régebbi verziót telepíteni, akkor ajánlott a jelenleg telepített verzió eltávolítása. Válassza ki milyen műveletet szeretne végrehajtani, és nyomja meg a $\"Következő$\" gombot a folytatáshoz." StrCpy $PageReinstall_SAME_Field_1 "Az ${APPLICATION_NAME} alkalmazás ${VERSION} verziója már telepítve van.$↩$\nKérjük válaszd ki milyen műveletet szeretnél végrehajtani, és nyomd meg a „Következő” gombot." StrCpy $PageReinstall_SAME_Field_2 "Komponens hozzáadása/újratelepítése" StrCpy $PageReinstall_SAME_Field_3 "${APPLICATION_NAME} eltávolítása" StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} eltávolítása" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Válassza ki milyen karbantartási műveletet szeretne elvégezni." StrCpy $SEC_APPLICATION_DETAILS "Az ${APPLICATION_NAME} alkalmazás lényeges komponenseinek telepítése." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Windows Explorer integráció" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Windows Explorer integráció telepítése" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menü parancsikonok" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "A ${APPLICATION_NAME} parancsikon hozzáadása a Start Menühöz" StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Asztali parancsikon" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Asztali parancsikon létrehozása" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Gyorsindító eszköztár parancsikon" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Gyorsindító eszköztár parancsikon létrehozása" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} lényeges komponensek." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} parancsikon" StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Asztali parancsikon a ${APPLICATION_NAME} alkalmazásnak." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Gyorsindítás eszköztár parancsikon a ${APPLICATION_NAME} alkalmazásnak." StrCpy $UNINSTALLER_FILE_Detail "Elltávolító írása" StrCpy $UNINSTALLER_REGISTRY_Detail "Telepítési registry kulcsok írása" StrCpy $UNINSTALLER_FINISHED_Detail "Befejezve!" StrCpy $UNINSTALL_MESSAGEBOX "Nem sikerült az ${APPLICATION_NAME} alkalmazás telepítése a '$INSTDIR' könyvtárba.$\n$\nSzeretné mindenképpen folytatni (nem ajánlott)?" StrCpy $UNINSTALL_ABORT "Az eltávolítást a felhasználó megszakította" StrCpy $INIT_NO_QUICK_LAUNCH "Gyorsindító hivatkozás (N/A)" StrCpy $INIT_NO_DESKTOP "Asztali hivatkozás (felülírja a meglévőt)" StrCpy $UAC_ERROR_ELEVATE "Nem sikerült felemelni, hiba:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "A telepítő futtatásához adminisztrátori hozzáférés szükséges, próbálja újra." StrCpy $INIT_INSTALLER_RUNNING "A telepítő már fut." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Az eltávolító futtatásához adminisztrátori hozzáférés szükséges, próbálja újra." StrCpy $UAC_ERROR_LOGON_SERVICE "A bejelentkező szolgáltatás nem fut, megszakítás!" StrCpy $INIT_UNINSTALLER_RUNNING "Az eltávolító már fut." StrCpy $SectionGroup_Shortcuts "Parancsikonok" desktop-2.6.2/admin/win/nsi/l10n/Italian.nsh000066400000000000000000000102351360037132600205170ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostra le note di rilascio" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Trovati ${APPLICATION_EXECUTABLE} processi che dovrebbero essere fermati.$\nVuoi che il programma di installazione li fermi al posto tuo?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Sto terminando ${APPLICATION_EXECUTABLE} processi." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Il processo da terminare non stato trovato!" StrCpy $PageReinstall_NEW_Field_1 "Una versione pi datata di ${APPLICATION_NAME} installata sul tuo sistema. Si consiglia di disinstallare la versione attuale prima di installare. Seleziona l'operazione da eseguire e fai clic su Avanti per continuare." StrCpy $PageReinstall_NEW_Field_2 "Disinstalla prima di installare" StrCpy $PageReinstall_NEW_Field_3 "Non disinstallare" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Gi installato" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Scegli come desideri installare ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Una versione pi recente di ${APPLICATION_NAME} gi installata! Non consigliabile installare una versione pi vecchia. Se vuoi davvero installare una versione pi vecchia, ti consigliamo di rimuovere prima la versione attuale. Scegli l'operazione da eseguire e fai clic su Avanti per continuare." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} gi installato.$\n$\nSeleziona l'operazione che desideri eseguire e fai clic su Avanti per continuare.." StrCpy $PageReinstall_SAME_Field_2 "Aggiungi/Reinstalla i componenti" StrCpy $PageReinstall_SAME_Field_3 "Disinstalla ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Disinstalla ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Scegli l'opzione di manutenzione da eseguire." StrCpy $SEC_APPLICATION_DETAILS "Installazione degli elementi fondamentali di ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integrazione con Windows Explorer" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installazione dell'integrazione con Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Scorciatoia di programma menu Start" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Aggiunta della scorciatoia per ${APPLICATION_NAME} al menu Start." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Scorciatoia del desktop" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creazione delle scorciatoie del desktop" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Scorciatoia dell'avvio veloce" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creazione della scorciatoia dell'avvio veloce" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Oggetti fondamentali di ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Scorciatoia di ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Scorciatoia del desktop per ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Scorciatoia per ${APPLICATION_NAME} dell'avvio veloce." StrCpy $UNINSTALLER_FILE_Detail "Creazione del programma di disinstallazione" StrCpy $UNINSTALLER_REGISTRY_Detail "Scrittura delle chiavi di registro del programma di installazione" StrCpy $UNINSTALLER_FINISHED_Detail "Completato" StrCpy $UNINSTALL_MESSAGEBOX "Non sembra che ${APPLICATION_NAME} sia installato nella cartella '$INSTDIR'.$$\nVuoi continuare comunque (non consigliato)?" StrCpy $UNINSTALL_ABORT "Disinstallazione interrotta dall'utente" StrCpy $INIT_NO_QUICK_LAUNCH "Scorciatoia dell'avvio veloce (N/D)" StrCpy $INIT_NO_DESKTOP "Scorciatoia del desktop (sovrascrivi se esistente)" StrCpy $UAC_ERROR_ELEVATE "Impossibile elevare, errore:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Il programma di installazione necessita delle credenziali di amministrazione, riprova" StrCpy $INIT_INSTALLER_RUNNING "Il programma di installazione gi in esecuzione." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Il programma di disinstallazione necessita delle credenziali di amministrazione, riprova" StrCpy $UAC_ERROR_LOGON_SERVICE "Il servizio di accesso non in esecuzione, interruzione in corso!" StrCpy $INIT_UNINSTALLER_RUNNING "Il programma di disinstallazione gi in esecuzione." StrCpy $SectionGroup_Shortcuts "Scorciatoie" desktop-2.6.2/admin/win/nsi/l10n/Japanese.nsh000066400000000000000000000100161360037132600206610ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "[Xm[g\" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "${APPLICATION_EXECUTABLE} ̃vZXIKv܂B$\nCXg[[̃vZX~Ă낵łH" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "${APPLICATION_EXECUTABLE} vZX~Ă܂B" StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "IvZX܂" StrCpy $PageReinstall_NEW_Field_1 "VXeɁ@${APPLICATION_NAME}@̋o[WCXg[Ă܂B$\no[WACXg[AŐVo[WCXg[̂߂܂B$\nIy[VIAւNbNB" StrCpy $PageReinstall_NEW_Field_2 "CXg[OɃACXg[" StrCpy $PageReinstall_NEW_Field_3 "ACXg[Ȃ" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "CXg[" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "${APPLICATION_NAME} ̃CXg[@I" StrCpy $PageReinstall_OLD_Field_1 "${APPLICATION_NAME} ̍ŐVo[WłɃCXg[Ă܂B$\no[W̃CXg[͂߂܂Bo[W̃CXg[{ɕKvȏꍇ́A܂ŐVo[WACXg[ĂAo[WCXg[ĂB$\nIy[VIAւNbNB" StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ́A${VERSION} łɃCXg[Ă܂B$\n$\nsIāAւNbNĂB" StrCpy $PageReinstall_SAME_Field_2 "lj/ăCXg[R|[lg" StrCpy $PageReinstall_SAME_Field_3 "${APPLICATION_NAME} ACXg[" StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} ACXg[" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "sɂ́AeiXIvVIĂB" StrCpy $SEC_APPLICATION_DETAILS "${APPLICATION_NAME} ̏dvȃpbP[WCXg[" StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Windows GNXv[[ւ̓" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Windows GNXv[[ւ̓CXg[Ă܂B" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "X^[gj[V[gJbg" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "X^[gj[${APPLICATION_NAME}@̃V[gJbg̒lj" StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "fXNgbvV[gJbg" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "fXNgbvV[gJbg쐬" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "NCbNNV[gJbg" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "NCbNNV[gJbg쐬" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} ̏dvȃpbP[W" StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} ̃V[gJbg" StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "${APPLICATION_NAME} ̃fXNgbvV[gJbg" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "${APPLICATION_NAME} ̃NCbNNV[gJbg" StrCpy $UNINSTALLER_FILE_Detail "ACXg[[" StrCpy $UNINSTALLER_REGISTRY_Detail "CXg[[̃WXgL[̏" StrCpy $UNINSTALLER_FINISHED_Detail "I" StrCpy $UNINSTALL_MESSAGEBOX "${APPLICATION_NAME} '$INSTDIR'.$$@ fBNgɃCXg[Ă܂BG[𖳎Ai݂܂ (񐄏)H" StrCpy $UNINSTALL_ABORT "ACXg[́A[U[ɂĒ~܂B" StrCpy $INIT_NO_QUICK_LAUNCH "NCbNNV[gJbg(N/A)" StrCpy $INIT_NO_DESKTOP "fXNgbvɃV[gJbg쐬(łɂꍇ͏㏑)" StrCpy $UAC_ERROR_ELEVATE "GXJ[Vs‚łAG[F" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "̃CXg[[́AǗҌKvłBCXg[ĎsĂB" StrCpy $INIT_INSTALLER_RUNNING "CXg[[́AłɋNĂ܂B" StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "̃ACXg[[́AǗҌKvłBACXg[ĎsĂB" StrCpy $UAC_ERROR_LOGON_SERVICE "OIT[rXĂ܂B~܂B" StrCpy $INIT_UNINSTALLER_RUNNING "ACXg[[́AłɋNĂ܂B" StrCpy $SectionGroup_Shortcuts "V[gJbg" desktop-2.6.2/admin/win/nsi/l10n/Norwegian.nsh000066400000000000000000000075561360037132600211030ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Vis versjonsmerknader" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Fant ${APPLICATION_EXECUTABLE}-prosess(er) som m stoppes.$\nVil du at installasjonsprogrammet skal stoppe dem for deg?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Terminerer ${APPLICATION_EXECUTABLE}-prosesser." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Fant ikke prosess som skulle termineres!" StrCpy $PageReinstall_NEW_Field_1 "En eldre versjon av ${APPLICATION_NAME} er installert p systemet ditt. Det anbefales at du avinstallerer den versjonen fr installering av ny versjon. Velg hva du vil gjre og klikk Neste for fortsette." StrCpy $PageReinstall_NEW_Field_2 "Avinstaller fr installering" StrCpy $PageReinstall_NEW_Field_3 "Ikke avinstaller" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Allerede installert" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Velg hvordan du vil installere ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "En nyere versjon av ${APPLICATION_NAME} er allerede installert! Det anbefales ikke at du installerer en eldre versjon. Hvis du virkelig nsker installere denne eldre versjonen, er det bedre avinstallere gjeldende versjon frst. Velg hva du vil gjre og klikk Neste for fortsette." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} er installert allerede.$\n$\nVelg hva du nsker gjre og klikk Neste for fortsette." StrCpy $PageReinstall_SAME_Field_2 "Legg til/installer komponenter p nytt" StrCpy $PageReinstall_SAME_Field_3 "Avinstaller ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Avinstaller ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Velg hva slags vedlikehold som skal utfres." StrCpy $SEC_APPLICATION_DETAILS "Installerer ${APPLICATION_NAME} grunnleggende." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integrering med Windows Utforsker" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installerer integrering med Windows Utforsker" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Snarvei i Start-menyen" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Legger til snarvei for ${APPLICATION_NAME} i Start-menyen." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Snarvei p skrivebordet" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Oppretter snarveier p skrivebordet" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Snarvei i Hurtigstart" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Oppretter snarvei i Hurtigstart" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} grunnleggende." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME}-snarvei." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Skrivebordssnarvei for ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Hurtigstart-snarvei for ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Skriver Avinstallasjonsprogram." StrCpy $UNINSTALLER_REGISTRY_Detail "Skriver registernkler for installasjonsprogrammet" StrCpy $UNINSTALLER_FINISHED_Detail "Ferdig" StrCpy $UNINSTALL_MESSAGEBOX "Det ser ikke ut som ${APPLICATION_NAME} er installert i mappe '$INSTDIR'.$\n$\nFortsett likevel (ikke anbefalt)?" StrCpy $UNINSTALL_ABORT "Avinstallering avbrutt av bruker" StrCpy $INIT_NO_QUICK_LAUNCH "Hurtigstart-snarvei (I/T)" StrCpy $INIT_NO_DESKTOP "Snarvei p skrivebordet (skriver over eksisterende)" StrCpy $UAC_ERROR_ELEVATE "Klarte ikke heve tilgangsniv. Feil: " StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Dette installasjonsprogrammet krever administrasjonstilgang. Prv igjen" StrCpy $INIT_INSTALLER_RUNNING "Installasjonsprogrammet kjrer allerede." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Avinstallasjonsprogrammet krever administrasjonstilgang. Prv igjen" StrCpy $UAC_ERROR_LOGON_SERVICE "Ploggingstjenesten kjrer ikke, avbryter!" StrCpy $INIT_UNINSTALLER_RUNNING "Avinstallasjonsprogrammet kjrer allerede." StrCpy $SectionGroup_Shortcuts "Snarveier" desktop-2.6.2/admin/win/nsi/l10n/Polish.nsh000066400000000000000000000072741360037132600204050ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Poka informacje o wydaniu" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Proces ${APPLICATION_EXECUTABLE} musi zosta zatrzymany $\nCzy chcesz aby instalator zatrzyma je dla ciebie?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Zamykam proces ${APPLICATION_EXECUTABLE}." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Nie znaleziono procesu!" StrCpy $PageReinstall_NEW_Field_1 "W Twoim systemie jest zainstalowana starsza wersja ${APPLICATION_NAME}. Zalecane jest jej usunicie przed dalsz instalacj. Wybierz operacj ktr chcesz wykona i nacinij przycisk Dalej." StrCpy $PageReinstall_NEW_Field_2 "Odinstaluj przed instalacja" StrCpy $PageReinstall_NEW_Field_3 "Nie usuwaj " StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Ju zainstalowane" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Wybierz jak chcesz zainstalowa ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Zainstalowana jest nowsza wersja ${APPLICATION_NAME}! Niezalecane jest instalowanie starszej wersji. Jeli naprawd chcesz zainstalowa starsz wersj lepiej najpierw odinstalowa obecn aplikacj. Wybierz operacj ktr chcesz wykona i nacinij przycisk Dalej." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} jest ju zainstalowany.$\nWybierz operacj ktr chcesz wykona i nacinij przycisk Dalej." StrCpy $PageReinstall_SAME_Field_2 "Doda/Przeinstaluj komponenty" StrCpy $PageReinstall_SAME_Field_3 "Odinstaluj ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Odinstaluj ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Wybierz sposb utrzymywania." StrCpy $SEC_APPLICATION_DETAILS "Instaluje niezbdne pliki ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "integracja z Eksploratorem Windows" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalowanie Integracji z Eksploratorem Windows" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Skrt w Menu Start" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Dodaj skrt ${APPLICATION_NAME} w Menu Start." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Skrt na Pulpicie" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Utworzy skrt na Pulpicie" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Skrt na Pasku Zada" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Tworz skrt na Pasku Zada" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Niezbdne pliki ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Skrt ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Skrt ${APPLICATION_NAME} na pulpicie." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Skrt ${APPLICATION_NAME} na Pasku Zada." StrCpy $UNINSTALLER_FILE_Detail "Tworz dezinstalator" StrCpy $UNINSTALLER_REGISTRY_Detail "Tworz wpisy w rejestrze" StrCpy $UNINSTALLER_FINISHED_Detail "Zakoczony" StrCpy $UNINSTALL_MESSAGEBOX "Nie wyglda na to e ${APPLICATION_NAME} jest zainstalowane w katalogu '$INSTDIR'.$$ Kontynuowa mimo tego (nie zalecane)?" StrCpy $UNINSTALL_ABORT "Dezinstalacja przerwana przez uytkownika" StrCpy $INIT_NO_QUICK_LAUNCH "Skrt na Pasku Zada (NIE DOTYCZY)" StrCpy $INIT_NO_DESKTOP "Skrty na pulpicie (nadpisuje obecne)" StrCpy $UAC_ERROR_ELEVATE "Niemono podniesienia, bd:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Ten instalator potrzebuje uprawnie administratora, sprbuj ponownie" StrCpy $INIT_INSTALLER_RUNNING "Instalator ju jest uruchomiony." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Ten dezinstalator potrzebuje uprawnie administratora, sprbuj ponownie" StrCpy $UAC_ERROR_LOGON_SERVICE "Proces logowania nie jest uruchomiony, przerywam !" StrCpy $INIT_UNINSTALLER_RUNNING "Dezinstalator ju jest uruchomiony." StrCpy $SectionGroup_Shortcuts "Skrty" desktop-2.6.2/admin/win/nsi/l10n/Portuguese.nsh000066400000000000000000000101001360037132600212670ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar notas de lançamento" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Encontrados ${APPLICATION_EXECUTABLE} processo(s) em execução que precisa(m) de ser interrompido(s).$\nDeseja que o instalador o(s) termine por si?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "A terminar os processos de ${APPLICATION_EXECUTABLE}." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Não foi encontrado o processo para terminar!" StrCpy $PageReinstall_NEW_Field_1 "Está instalada no sistema uma versão antiga de ${APPLICATION_NAME}. É recomendado que desinstale a versão atual antes de instalar a mais recente. Selecione a operação que deseja executar e clique em $\"Seguinte$\" para continuar." StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar" StrCpy $PageReinstall_NEW_Field_3 "Não desinstale" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Já instalado" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Escolha como pretende instalar ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Já está instalada uma versão mais recente de ${APPLICATION_NAME}! Não é recomendada a instalação de uma versão mais antiga. Se realmente desejar instalar esta versão antiga, aconselha-se que desinstale primeiro a versão atual. Selecione a operação que deseja executar e clique em $\"Seguinte$\" para continuar." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} já está instalada.$\nSelecione a operação que deseja realizar e clique em 'Seguinte' para continuar." StrCpy $PageReinstall_SAME_Field_2 "Adicionar/Reinstalar Componentes" StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolha a opção de manutenção a realizar." StrCpy $SEC_APPLICATION_DETAILS "A instalar o essencial de ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integração para Windows Explorer" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "A instalar integração para Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Atalho do progama no Menu Iniciar" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "A adicionar o atalho de ${APPLICATION_NAME} no Menu Iniciar." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Atalho da área de trabalho" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "A criar atalhos na área de trabalho" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Atalho de início rápido" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "A criar atalho de início rápido" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "O essencial de ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Atalho de ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Atalho do ambiente de trabalho para ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Atalho de início rápido de ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "A escrever o Desinstalador" StrCpy $UNINSTALLER_REGISTRY_Detail "A escrever chaves de registo do instalador" StrCpy $UNINSTALLER_FINISHED_Detail "Terminado" StrCpy $UNINSTALL_MESSAGEBOX "Não parece que a aplicação ${APPLICATION_NAME} esteja instalada no diretório '$INSTDIR'.$\n$\nContinuar na mesma (não recomendado)?" StrCpy $UNINSTALL_ABORT "Desinstalação cancelada pelo utilizador" StrCpy $INIT_NO_QUICK_LAUNCH "Atalho de Início Rápido (N/A)" StrCpy $INIT_NO_DESKTOP "Atalho do Ambiente de Trabalho (sobrepõe o existente)" StrCpy $UAC_ERROR_ELEVATE "Incapaz de elevar, erro:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Este instalador precisa de permissões de administrador, tente novamente" StrCpy $INIT_INSTALLER_RUNNING "O instalador já está em execução." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Este desinstalador requer permissões de administrador, tente novamente" StrCpy $UAC_ERROR_LOGON_SERVICE "O serviço do início de sessão não está em execução, a abortar!" StrCpy $INIT_UNINSTALLER_RUNNING "O desinstalador já está em execução." StrCpy $SectionGroup_Shortcuts "Atalhos" desktop-2.6.2/admin/win/nsi/l10n/PortugueseBR.nsh000066400000000000000000000075551360037132600215370ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar notas de lanamento" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Encontrados ${APPLICATION_EXECUTABLE} processo(s) que precisam ser interrompidos.$\nVoc quer que o instalador pare esses processos para voc?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Desativando ${APPLICATION_EXECUTABLE} processos." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Processo para eliminar no encontrado!" StrCpy $PageReinstall_NEW_Field_1 "Uma verso mais antiga de ${APPLICATION_NAME} est instalado em seu sistema. recomendado que voc desinstale a verso atual antes de instalar. Selecione a operao que deseja executar e clique em Avanar para continuar." StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar" StrCpy $PageReinstall_NEW_Field_3 "No desinstale" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "J Instalado" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Escolha como voc deseja instalar ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "A verso mais recente do ${APPLICATION_NAME} j est instalado! No recomendado que voc instale uma verso mais antiga. Se voc realmente deseja instalar esta verso mais antiga, melhor desinstalar a verso atual primeiro. Selecione a operao que deseja executar e clique em Avanar para continuar." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} j est instalado.$\n$\nSelecione a operao que voc quer realizar e clique Prximo para continuar." StrCpy $PageReinstall_SAME_Field_2 "Adicionar/reinstalar componentes" StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolha a opo de realizar manuteno." StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} fundamentos." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integrao para Windows Explorer" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalao de Integrao para Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Menu Iniciar Programa Atalho" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adicionando atalho para ${APPLICATION_NAME} ao Menu Iniciar." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Atalho Desktop" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Criando Atalhos de Desktop" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Atalho Rpido" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Criando Atalho Rpido" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} esseciais." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} atalho." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Atalho Desktop para ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Atalho Rpido para ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Gravando Desinstalador" StrCpy $UNINSTALLER_REGISTRY_Detail "Gravando Chaves de Registro do Inslalador" StrCpy $UNINSTALLER_FINISHED_Detail "Finalizado" StrCpy $UNINSTALL_MESSAGEBOX "No parece que ${APPLICATION_NAME} est instalado no diretrio '$INSTDIR'.$\n$\nContinuar assim mesmo (no recomendado)?" StrCpy $UNINSTALL_ABORT "Desinstalao abortada pelo usurio" StrCpy $INIT_NO_QUICK_LAUNCH "Atalho de Inicializao Rpida (N/A)" StrCpy $INIT_NO_DESKTOP "Atalho Desktop (substitui os existente)" StrCpy $UAC_ERROR_ELEVATE "Incapaz de elevar, erro:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Este programa de instalao requer acesso de administrador, tente novamente" StrCpy $INIT_INSTALLER_RUNNING "O instalador j est em execuo." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Este desinstalador requer acesso de administrador, tente novamente" StrCpy $UAC_ERROR_LOGON_SERVICE "O servio de logon no est sendo executado, abortando!" StrCpy $INIT_UNINSTALLER_RUNNING "O desinstalador j est em execuo." StrCpy $SectionGroup_Shortcuts "Atalhos" desktop-2.6.2/admin/win/nsi/l10n/Russian.nsh000066400000000000000000000123761360037132600205720ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Показать примечания к выпуску" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Обнаружен процесс ${APPLICATION_EXECUTABLE}, который требуется остановить.$\nВы хотите чтобы программа установки сделала это самостоятельно?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Завершение процессов ${APPLICATION_EXECUTABLE}." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Процессы для завершения не найдены!" StrCpy $PageReinstall_NEW_Field_1 "Обнаружена более старая версия ${APPLICATION_NAME}. Рекомендуется удалить её перед установкой. Выберите желаемое действие и нажмите Далее для продолжения." StrCpy $PageReinstall_NEW_Field_2 "Удалить перед установкой" StrCpy $PageReinstall_NEW_Field_3 "Не устанавливать" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Уже установлено" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Выберите, как вы хотите установить ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Новая версия ${APPLICATION_NAME} уже установлена​​! Не рекомендуется устанавливать старую версию. Если вы действительно хотите установить эту старую версию, то сначала лучше удалить текущую версию. Выберите желаемое действие и нажмите Далее для продолжения." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} уже установлен.$\n$\nУкажите действие и нажмите Далее для продолжения." StrCpy $PageReinstall_SAME_Field_2 "Добавить/Переустановить компоненты" StrCpy $PageReinstall_SAME_Field_3 "Удалить ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Удалить ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Выберите опцию обслуживания для исполнения." StrCpy $SEC_APPLICATION_DETAILS "Установка базовых компонентов ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Интеграция для проводника Windows" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Установка интеграции с проводником Windows" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Ярлык в меню Пуск" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Добавление ярлыка ${APPLICATION_NAME} в меню Пуск" StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Ярлык на рабочем столе" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Создание ярлыков на рабочем столе" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Ярлык в меню быстрого запуска" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Создание ярлыка в меню быстрого запуска" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Базовые компоненты ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Ярлык приложения ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Ярлык на рабочем столе для ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Ярлык в меню быстрого запуска для ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Сохранение деинсталлятора" StrCpy $UNINSTALLER_REGISTRY_Detail "Запись ключей реестра установщика" StrCpy $UNINSTALLER_FINISHED_Detail "Завершено" StrCpy $UNINSTALL_MESSAGEBOX "Похоже, что приложение ${APPLICATION_NAME} не установлено в каталог '$INSTDIR'.$\nВсе равно продолжить (не рекомендуется)?" StrCpy $UNINSTALL_ABORT "Удаление отменено пользователем" StrCpy $INIT_NO_QUICK_LAUNCH "Ярлык быстрого запуска (не доступен)" StrCpy $INIT_NO_DESKTOP "Ярлык на рабочем столе (перезапись существующего)" StrCpy $UAC_ERROR_ELEVATE "Невозможно повысить привилегии, ошибка:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Этому установщику требуются права администратора, попробуйте ещё раз" StrCpy $INIT_INSTALLER_RUNNING "Установщик уже запущен." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Этому деинсталлятору требуются права администратора, попробуйте ещё раз" StrCpy $UAC_ERROR_LOGON_SERVICE "Служба входа в систему не запущена, прерывание!" StrCpy $INIT_UNINSTALLER_RUNNING "Программа удаления уже выполняется." StrCpy $SectionGroup_Shortcuts "Ярлыки" desktop-2.6.2/admin/win/nsi/l10n/SimpChinese.nsh000066400000000000000000000066771360037132600213640ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "查看版本日志" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "有 ${APPLICATION_EXECUTABLE} 项进程需要关闭。$\n您想让安装程序关闭这些进程吗?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "停止${APPLICATION_EXECUTABLE}进程。" StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "未找到要停止的进程!" StrCpy $PageReinstall_NEW_Field_1 "您的系统已经安装${APPLICATION_NAME}较老版本。建议安装前卸载当前版本。选择将要执行的操作,点击下一步继续。" StrCpy $PageReinstall_NEW_Field_2 "在安装前先卸载" StrCpy $PageReinstall_NEW_Field_3 "不要卸载" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "已经安装" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "选择如何安装${APPLICATION_NAME}。" StrCpy $PageReinstall_OLD_Field_1 "较新版本的 ${APPLICATION_NAME} 已经安装!安装较旧版本的程序是不推荐的。如果您希望继续安装较旧版本,建议先卸载较新版本。选择您想要执行的操作并点击下一步以继续。" StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} 已经安装。$\n$\n请选择想要执行的操作并点击下一步。" StrCpy $PageReinstall_SAME_Field_2 "增加/重装组件" StrCpy $PageReinstall_SAME_Field_3 "卸载${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "卸载${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "选择需要执行的维护选项。" StrCpy $SEC_APPLICATION_DETAILS "安装${APPLICATION_NAME}基本组件。" StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "整合到 Windows 资源管理器" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "正在整合到 Windows 资源管理器" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "开始菜单程序快捷方式" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "添加 ${APPLICATION_NAME} 快捷方式到开始菜单。" StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "桌面快捷方式" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "创建桌面快捷方式" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "快速启动栏快捷方式" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "创建快速启动栏快捷方式" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME}基本组件。" StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME}快捷方式。" StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "${APPLICATION_NAME}桌面快捷方式。" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "${APPLICATION_NAME}快速启动栏快捷方式。" StrCpy $UNINSTALLER_FILE_Detail "覆盖卸载器" StrCpy $UNINSTALLER_REGISTRY_Detail "正在写入注册表" StrCpy $UNINSTALLER_FINISHED_Detail "完成" StrCpy $UNINSTALL_MESSAGEBOX "${APPLICATION_NAME} 可能并没有安装在 $INSTDIR。$\n$\n仍然继续吗?(不推荐)" StrCpy $UNINSTALL_ABORT "用户取消了卸载" StrCpy $INIT_NO_QUICK_LAUNCH "快速启动栏快捷方式(N/A)" StrCpy $INIT_NO_DESKTOP "桌面快捷方式(覆盖)" StrCpy $UAC_ERROR_ELEVATE "无法获得权限,错误:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "安装程序需要管理员权限,请重试" StrCpy $INIT_INSTALLER_RUNNING "安装程序已经运行。" StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "卸载程序需要管理员权限,请重试" StrCpy $UAC_ERROR_LOGON_SERVICE "登录服务器未运行!" StrCpy $INIT_UNINSTALLER_RUNNING "卸载程序已经运行。" StrCpy $SectionGroup_Shortcuts "快捷方式" desktop-2.6.2/admin/win/nsi/l10n/Slovak.nsh000066400000000000000000000074341360037132600204040ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Zobrazi zoznam zmien" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Nali sa ${APPLICATION_EXECUTABLE} proces (y), ktor je potrebn zastavi.$\nChcete, aby ich intaltor zastavil?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Ukonujem ${APPLICATION_EXECUTABLE} procesy." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Proces ukonenia nebol njden!" StrCpy $PageReinstall_NEW_Field_1 "Staria verzia ${APPLICATION_NAME} je naintalovan vo vaom potai. Odporam vm odintalova aktulnu verziu pred intalciou. Vyberte operciu, ktor chcete vykona, a kliknite na tlaidlo alej pre pokraovanie." StrCpy $PageReinstall_NEW_Field_2 "Odintalova pred intalciou" StrCpy $PageReinstall_NEW_Field_3 "Neodintalova" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "U je naintalovan" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Vyberte si, ako chcete naintalova ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Novia verzia ${APPLICATION_NAME} je u naintalovan! Neodporam vm naintalova stariu verziu. Ak naozaj chcete naintalova tto stariu verziu, je lepie najprv odintalova aktulnu verziu. Vyberte operciu, ktor chcete vykona, a kliknite na tlaidlo alej pre pokraovanie." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} je u naintalovan.$\n$\nVyberte operciu, ktor chcete vykona, a kliknite na tlaidlo alej pre pokraovanie." StrCpy $PageReinstall_SAME_Field_2 "Prida/Preintalova komponenty" StrCpy $PageReinstall_SAME_Field_3 "Odintalova ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Odintalova ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Vyberte monos vykona drbu." StrCpy $SEC_APPLICATION_DETAILS "Intaluj sa nleitosti ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integrcia do Windows Explorera" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Intalacia integrcie do Windows Explorera" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Zstupca programu v menu tart" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Prida zstupcu pre ${APPLICATION_NAME} do menu tart." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Zstupca na ploche" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Vytvorenie zstupcu na ploche" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Zstupca na paneli loh" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Vytvorenie zstupcu na paneli loh" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Nleitosti ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} zstupca." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Zstupca na ploche pre ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Zstupca na paneli loh pre ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Zapisujem odintaltor" StrCpy $UNINSTALLER_REGISTRY_Detail "Zapisujem intalan ke do registra" StrCpy $UNINSTALLER_FINISHED_Detail "Dokonen" StrCpy $UNINSTALL_MESSAGEBOX "Nezd sa, e ${APPLICATION_NAME} je naintalovan v prieinku '$INSTDIR'.$\n$\nNapriek tomu pokraova (neodpora sa)?" StrCpy $UNINSTALL_ABORT "Odintalcia preruen pouvateom" StrCpy $INIT_NO_QUICK_LAUNCH "Zstupca na paneli loh (N/A)" StrCpy $INIT_NO_DESKTOP "Zstupca na ploche (prepe existujci)" StrCpy $UAC_ERROR_ELEVATE "Nemono povi, chyba:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Tento intaltor vyaduje admin prstup, skste to znova" StrCpy $INIT_INSTALLER_RUNNING "Intaltor je u spusten." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Tento odintaltor vyaduje admin prstup, skste to znova" StrCpy $UAC_ERROR_LOGON_SERVICE "Prihlasovacia sluba nebe! Preruuje sa." StrCpy $INIT_UNINSTALLER_RUNNING "Odintaltor je u spusten." StrCpy $SectionGroup_Shortcuts "Zstupcovia" desktop-2.6.2/admin/win/nsi/l10n/Slovenian.nsh000066400000000000000000000100411360037132600210670ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Pokai opombe k objavi" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Zaznana so dejavna opravila programa ${APPLICATION_EXECUTABLE}, ki pa morajo biti pred nadaljevanjem zaustavljena.$\nAli elite izvajanje teh dejanj konati?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Poteka zaustavljanje opravil programa ${APPLICATION_EXECUTABLE}" StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Opravila, doloenega za unienje, ni mogoe najti!" StrCpy $PageReinstall_NEW_Field_1 "Nameena je stareja razliica ${APPLICATION_NAME}. Priporoljivo je najprej odstraniti obstojeo namestitev in ele nato namestiti novo. Izberite ustrezno monost in kliknite za nadaljevanje." StrCpy $PageReinstall_NEW_Field_2 "Pred namestitvijo je treba obstojeo razliico odstraniti" StrCpy $PageReinstall_NEW_Field_3 "Ne odstrani namestitve" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Program je e nameen" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Izberite nain namestitve programa ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Noveja razliica programa ${APPLICATION_NAME} je e nameena! Ni priporoljivo namestiti stareje. V kolikor elite vseeno nadaljevati z namestitvijo, prej odstranite obstojeo razliico. Izberite opravilo in pritisnite gumb za nadaljevanje." StrCpy $PageReinstall_SAME_Field_1 "Program ${APPLICATION_NAME} ${VERSION} je e nameen.$\n$\nIzberite opravilo, ki ga elite izvesti in kliknite za nadaljevanje." StrCpy $PageReinstall_SAME_Field_2 "Dodaj/Ponovno namesti programe" StrCpy $PageReinstall_SAME_Field_3 "Odstrani ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Odstrani ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Izberite monost vzdrevanja za izvedbo." StrCpy $SEC_APPLICATION_DETAILS "Poteka nameanje kljunih paketov programa ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Podpora programa Windows raziskovalca" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Nameanje podpore za program Windows Raziskovalec" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Blinjica programa v programskem meniju" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Poteka dodajanje blinjice programa ${APPLICATION_NAME} v programski meni." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Blinica namizja" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Poteka ustvarjanje blinjice na namizju" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Blinjica na hitri dostop" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Poteka ustvarjanje blinjice za hitri dostop" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Knjinice programa ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Blinjica programa ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Blinjica namizja za program ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Blinjica za hiter dostop za program ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Zapisovanje programa za odstranjevanje namestitve" StrCpy $UNINSTALLER_REGISTRY_Detail "Poteka zapisovanje namestilnika v register" StrCpy $UNINSTALLER_FINISHED_Detail "Konano" StrCpy $UNINSTALL_MESSAGEBOX "Ni videti, da bi bil program ${APPLICATION_NAME} nameen v mapi '$INSTDIR'.$\n$\nAli elite vseeno nadaljevati (ni priporoeno)?" StrCpy $UNINSTALL_ABORT "Odstranjevanje namestitve je bilo prekinjeno s strani uporabnika" StrCpy $INIT_NO_QUICK_LAUNCH "Blinjica za hiter dostop (N/A)" StrCpy $INIT_NO_DESKTOP "Blinjica namizja (obstajajo predmeti za prepis)" StrCpy $UAC_ERROR_ELEVATE "Ni mogoe dvigniti; napaka:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Namestilnik zahteva skrbnika dovoljenja." StrCpy $INIT_INSTALLER_RUNNING "Namestilnik je e zagnan." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Program za odstranjevanje namestitve zahteva skrbnika dovoljenja." StrCpy $UAC_ERROR_LOGON_SERVICE "Storitev za prijavo ni zagnana. Opravilo je ustavljeno!" StrCpy $INIT_UNINSTALLER_RUNNING "Program za odstranjevanje namestitve je e zagnan." StrCpy $SectionGroup_Shortcuts "Blinjice" desktop-2.6.2/admin/win/nsi/l10n/Spanish.nsh000066400000000000000000000100131360037132600205350ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar las notas de la versin" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "El/los proceso(s) ${APPLICATION_EXECUTABLE} debe(n) ser detenido(s).$\nQuiere que el instalador lo haga por usted?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Deteniendo el/los proceso(s) ${APPLICATION_EXECUTABLE}." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Proceso a finalizar no encontrado!" StrCpy $PageReinstall_NEW_Field_1 "Una versin anterior de ${APPLICATION_NAME} se encuentra instalada en el sistema. Se recomienda desinstalar la versin actual antes de instalar la nueva. Seleccione la operacion deseada y haga click en Siguiente para continuar." StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar" StrCpy $PageReinstall_NEW_Field_3 "No desinstalar" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Ya est instalado" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Elija cmo quiere instalar ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Una nueva versin de ${APPLICATION_NAME} ya est instalada. No es recomendable instalar una versin anterior. Si realmente quiere instalar esta versin anterior, es mejor que desinstale la versin actual primero. Seleccione la operacin que desea realizar y pulse Siguiente para continuar." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} ya est instalado.$\n$\nSeleccione la operacin que desea realizar y haga click en Siguiente para continuar." StrCpy $PageReinstall_SAME_Field_2 "Aadir/Reinstalar componentes" StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Elija la opcion de mantenimiento a realizar." StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} esenciales." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integracin para Windows Explorer" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalando la integracin para Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Acceso directo al programa en Men de Inicio" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Aadiendo accesos directos para ${APPLICATION_NAME} en el Men de Inicio." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Acceso directo de Escritorio" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creando accesos directos de escritorio" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Atajo de acceso rpido" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creando un Acceso Directo al Lanzador Rpido" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} esenciales." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Acceso Directo de ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Acceso Directo de Escritorio para ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Lanzador Rpido de Accesos Director para ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Escribiendo desinstalador" StrCpy $UNINSTALLER_REGISTRY_Detail "Escribiendo claves en el registro del instalador" StrCpy $UNINSTALLER_FINISHED_Detail "Terminado" StrCpy $UNINSTALL_MESSAGEBOX "Parece que ${APPLICATION_NAME} no est instalado en el directorio '$INSTDIR'.$$ Continuar de todos modos? (No recomendado)" StrCpy $UNINSTALL_ABORT "Desinstalacin cancelada por el usuario" StrCpy $INIT_NO_QUICK_LAUNCH "Atajo de inicio rpido (N/A)" StrCpy $INIT_NO_DESKTOP "Atajo de escritorio (sobreescribe el existente)" StrCpy $UAC_ERROR_ELEVATE "No se ha podido elevar, error:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "El instalador requiere acceso administrativo, intntelo de nuevo" StrCpy $INIT_INSTALLER_RUNNING "El instalador ya se encuentra en ejecucin" StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "El desinstalador requiere acceso administrativo, intntelo de nuevo" StrCpy $UAC_ERROR_LOGON_SERVICE "Servicio Inicio de sesin no se est ejecutando, abortando!" StrCpy $INIT_UNINSTALLER_RUNNING "El desinstalador ya se encuentra en ejecucin." StrCpy $SectionGroup_Shortcuts "Accesos directos" desktop-2.6.2/admin/win/nsi/l10n/SpanishInternational.nsh000066400000000000000000000077701360037132600233050ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar notas de la versión" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Se encontrarion ${APPLICATION_EXECUTABLE} proceso(s) que debe/n ser detenidos.$\"$\n$\"¿Quiere que el instalador lo haga por usted?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Parando el proceso ${APPLICATION_EXECUTABLE}." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Proceso a detener no encontrado!" StrCpy $PageReinstall_NEW_Field_1 "Una versión anterior de ${APPLICATION_NAME} esta instalada en el sistema. Es recomendado que quite esta versión antes de instalar. Elija la operación a realizar y seleccione Siguiente para continuar." StrCpy $PageReinstall_NEW_Field_2 "Des-instale antes de Instalar." StrCpy $PageReinstall_NEW_Field_3 "No des-instalar." StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Actualmente Instalado." StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Elija como desea instalar ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Una versión mas reciente de ${APPLICATION_NAME} esta actualmente instalada! No es recomendado que instale una versión antigua. Si realmente desea instalar esta versión obsoleta, es mejor que des-instale la versión actual primero. Seleccione la operación que desea realizar y presione en Siguiente para continuar. " StrCpy $PageReinstall_SAME_Field_1 "La ${APPLICATION_NAME} ${VERSION} ya está instalado.$\n$\nSeleccione la operación que desea realizar y haga click en Siguiente para continuar." StrCpy $PageReinstall_SAME_Field_2 "Agregar/Re-Instalar componentes" StrCpy $PageReinstall_SAME_Field_3 "Des-instalar ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Des-instalar ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Elija la opción de mantenimiento a realizar." StrCpy $SEC_APPLICATION_DETAILS "Instalar esenciales ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integración para Windows Explorer" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalando la integración para Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Acceso Directo en Menú de Programas" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Agregando el Acceso Directo al Menú de Inicio para ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Acceso directo en Escritorio" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creando Accesos Directos en Escritorio" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Atajo de Acceso Rápido" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creando Atajo de Acceso Rápido" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} esencial." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Acceso directo de ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Acceso Directo al Escritorio para ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Atajo de Acceso Rápido para ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Escribiendo Des-Instalador." StrCpy $UNINSTALLER_REGISTRY_Detail "Escribiendo claves de Registro del Instalador" StrCpy $UNINSTALLER_FINISHED_Detail "Terminado" StrCpy $UNINSTALL_MESSAGEBOX "Parece que ${APPLICATION_NAME} no esta instalado en el directorio '$INSTDIR'.$\n$\n¿Continuar de todos modos? (No recomendado)" StrCpy $UNINSTALL_ABORT "Des-instalación abortada por el usuario" StrCpy $INIT_NO_QUICK_LAUNCH "Atajo de Acceso Rápido (N/A)" StrCpy $INIT_NO_DESKTOP "Acceso Directo en Escritorio (Sobrescribe existentes)" StrCpy $UAC_ERROR_ELEVATE "No se ha podido elevar, error:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Este instalador requiere acceso Administrador, intente de nuevo. " StrCpy $INIT_INSTALLER_RUNNING "El instalador ya esta corriendo." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Este des-instalador requiere acceso administrador, intente de nuevo" StrCpy $UAC_ERROR_LOGON_SERVICE "Servicio Inicio de sesión no se está ejecutando, abortando!" StrCpy $INIT_UNINSTALLER_RUNNING "El des-instalador ya esta corriendo" StrCpy $SectionGroup_Shortcuts "Accesos Directos" desktop-2.6.2/admin/win/nsi/l10n/Swedish.nsh000066400000000000000000000077051360037132600205540ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Visa versionsinformationen" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Hittade ${APPLICATION_EXECUTABLE} process(er) som behöver stoppas.$\nVill du att installationsprogrammet ska stoppa dessa åt dig?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Dödar ${APPLICATION_EXECUTABLE} processer." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Processen att döda hittades inte!" StrCpy $PageReinstall_NEW_Field_1 "En tidigare version av ${APPLICATION_NAME} är installerad på ditt system. Det är rekommenderat att du avinstallerar den nuvarande versionen före installation. Välj den åtgärd du vill utföra och klicka Nästa för att fortsätta." StrCpy $PageReinstall_NEW_Field_2 "Avinstallera före installation" StrCpy $PageReinstall_NEW_Field_3 "Avinstallera inte" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Redan installerad" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Välj hur du vill installera ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "En nyare version av ${APPLICATION_NAME} är redan installerad! Det rekommenderas inte att du installerar en äldre version. Om du verkligen vill installera denna äldre versionen, är det bättre att du avinstallerar den nuvarande versionen först. Välj den åtgärd du vill utföra och klicka Nästa för att fortsätta." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} är redan installerad.$\n$\nVälj den åtgärd du vill utföra och klicka på Nästa för att fortsätta." StrCpy $PageReinstall_SAME_Field_2 "Lägg till/Ominstallera komponenter" StrCpy $PageReinstall_SAME_Field_3 "Avinstallera ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Avinstallera ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Välj underhålls alternativ att utföra." StrCpy $SEC_APPLICATION_DETAILS "Installerar ${APPLICATION_NAME} väsentligheter." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integration för Windows Explorer" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installerar integration för Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start-meny program genväg" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Lägger till genväg för ${APPLICATION_NAME} till Start-menyn." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Skrivbordsgenväg" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Skapar skrivbordsgenvägar" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Snabbstartsgenväg" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Skapar snabbstartsgenväg" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} väsentligheter." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} genväg." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Skrivbordsgenväg för ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Snabbstartsgenväg för ${APPLICATION_NAME}." StrCpy $UNINSTALLER_FILE_Detail "Skriver avinstallationsprogram" StrCpy $UNINSTALLER_REGISTRY_Detail "Skriver installationsprogrammets registernycklar" StrCpy $UNINSTALLER_FINISHED_Detail "Klar" StrCpy $UNINSTALL_MESSAGEBOX "Det verkar inte som ${APPLICATION_NAME} är installerad i katalogen '$INSTDIR'.$\n$\nFortsätt ändå (rekommenderas ej)?" StrCpy $UNINSTALL_ABORT "Avinstallering avbröts av användare" StrCpy $INIT_NO_QUICK_LAUNCH "Snabbstartsgenväg (N/A)" StrCpy $INIT_NO_DESKTOP "Skrivbordsgenväg (skriver över nuvarande)" StrCpy $UAC_ERROR_ELEVATE "Kunde inte få förhöjda rättigheter, fel:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Detta installationsprogram kräver adminstratörs rättigheter, försök igen" StrCpy $INIT_INSTALLER_RUNNING "Installationsprogrammet körs redan." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Detta avinstallationsprogram kräver administratörsrättigheter, försök igen" StrCpy $UAC_ERROR_LOGON_SERVICE "Login-service körs inte, avbryter!" StrCpy $INIT_UNINSTALLER_RUNNING "Avinstallationsprogrammet körs redan." StrCpy $SectionGroup_Shortcuts "Genvägar" desktop-2.6.2/admin/win/nsi/l10n/Thai.nsh000066400000000000000000000140611360037132600200240ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "แสดงบันทึกที่มี" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "พบว่ากระบวนการ ${APPLICATION_EXECUTABLE} จะต้องหยุดทำงาน$\nคุณต้องการติดตั้งเพื่อหยุดการทำงานเหล่านี้ของคุณ?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "ฆ่ากระบวนการทำงาน ${APPLICATION_EXECUTABLE}" StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "ไม่พบการฆ่ากระบวนการ!" StrCpy $PageReinstall_NEW_Field_1 "รุ่นเก่าของ ${APPLICATION_NAME} ได้ถูกติดตั้งในระบบของคุณ ขอแนะนำให้คุณถอนการติดตั้งรุ่นปัจจุบันออกก่อน แล้วเลือกการดำเนินการที่คุณต้องการหลังจากนั้นคลิกถัดไปเพื่อดำเนินการต่อ" StrCpy $PageReinstall_NEW_Field_2 "ถอนการติดตั้งก่อนการติดตั้ง" StrCpy $PageReinstall_NEW_Field_3 "อย่าถอนการติดตั้ง" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "ติดตั้งแล้ว" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "เลือกวิธีที่คุณต้องการติดตั้ง ${APPLICATION_NAME}" StrCpy $PageReinstall_OLD_Field_1 "รุ่นใหม่ของ ${APPLICATION_NAME} ถูกติดตั้งแล้ว! เราไม่แนะนำให้คุณติดตั้งรุ่นที่เก่ากว่า ถ้าคุณอยากจะติดตั้งรุ่นเก่าก็สามารถถอนการติดตั้งได้" StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} รุ่น ${VERSION} ถูกติดตั้งไปแล้ว$ $\nเลือกดำเนินงานที่คุณต้องการและคลิกถัดไปเพื่อดำเนินการต่อ" StrCpy $PageReinstall_SAME_Field_2 "ส่วนประกอบ เพิ่ม/ติดตั้งใหม่ " StrCpy $PageReinstall_SAME_Field_3 "ถอนการติดตั้ง ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "ถอนการติดตั้ง ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "เลือกตัวเลือกการบำรุงรักษาเพื่อดำเนินการ" StrCpy $SEC_APPLICATION_DETAILS "กำลังติดตั้งข้อมูลที่เป็นเป็นของ ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "บูรณาการสำหรับ Windows Explorer" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "บูรณาการกำลังติดตั้งสำหรับ Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "โปรแกรมทางลัดเมนูเริ่มต้น" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "เพิ่มทางลัดสำหรับ ${APPLICATION_NAME} ที่เมนูเริ่มต้น" StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "ทางลัดพื้นโต๊ะ" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "สร้างทางลัดบนเดสก์ทอป" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "ทางลัดเร่งด่วน" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "สร้างทางลัดเร่งด่วน" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} ที่จำเป็น" StrCpy $OPTION_SECTION_SC_START_MENU_Desc "ทางลัด ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "ทางลัดบนเดสก์ทอปสำหรับ ${APPLICATION_NAME}" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "ทางลัดเร่งด่วนสำหรับ ${APPLICATION_NAME}" StrCpy $UNINSTALLER_FILE_Detail "กำลังถอนการติดตั้ง" StrCpy $UNINSTALLER_REGISTRY_Detail "กำลังติดตั้งรหัสรีจิสทรี" StrCpy $UNINSTALLER_FINISHED_Detail "เสร็จสิ้น" StrCpy $UNINSTALL_MESSAGEBOX "มันจะไม่ปรากฏ ${APPLICATION_NAME} ที่มีการติดตั้งในไดเรกทอรี '$INSTDIR' ดำเนินการต่อไป (ไม่แนะนำ)?" StrCpy $UNINSTALL_ABORT "ถอนการติดตั้งถูกยกเลิกโดยผู้ใช้" StrCpy $INIT_NO_QUICK_LAUNCH "ทางลัดเร่งด่วน (N/A)" StrCpy $INIT_NO_DESKTOP "ทางลัดเดสก์ทอป (จะเขียนทับหากมีอยู่แล้ว)" StrCpy $UAC_ERROR_ELEVATE "ไม่สามารถที่จะยกระดับข้อผิดพลาด:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "การติดตั้งนี้จะต้องมีการเข้าถึงผู้ดูแลระบบ กรุณาลองอีกครั้ง" StrCpy $INIT_INSTALLER_RUNNING "กำลังทำการติดตั้ง" StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "การถอนการติดตั้งนี้จะต้องมีการเข้าถึงส่วนผู้ดูแลระบบ กรุณาลองอีกครั้ง" StrCpy $UAC_ERROR_LOGON_SERVICE "บริการเข้าสู่ระบบไม่ทำงาน กำลังยกเลิก!" StrCpy $INIT_UNINSTALLER_RUNNING "กำลังทำการถอนการติดตั้ง" StrCpy $SectionGroup_Shortcuts "ทางลัด" desktop-2.6.2/admin/win/nsi/l10n/Turkish.nsh000066400000000000000000000074311360037132600205730ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Srm notlarn gster" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Durdurulmas gereken ${APPLICATION_EXECUTABLE} sreleri bulundu.$\nYkleyicinin bunlar sizin iin durdurmasn ister misiniz?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "${APPLICATION_EXECUTABLE} sreleri sonlandrlyor." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Sonlandrlacak sre bulunamad!" StrCpy $PageReinstall_NEW_Field_1 "${APPLICATION_NAME} nceki srm sisteminizde ykl. Kurulumdan nce bunu kaldrmanz nerilir. Yapmak istediiniz ilemi seip devam etmek iin leri tklayn." StrCpy $PageReinstall_NEW_Field_2 "Yklemeden nce kaldr" StrCpy $PageReinstall_NEW_Field_3 "Kaldrma" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Zaten Ykl" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "${APPLICATION_NAME} uygulamasn nasl yklemek istediinizi sein." StrCpy $PageReinstall_OLD_Field_1 "${APPLICATION_NAME} uygulamasnn daha yeni srm zaten ykl! Daha eski bir srmn yklemeniz nerilmez. Gerekten bu eski srm yklemek isterseniz, ilk olarak geerli srm kaldrmanz tavsiye edilir. Yapmak istediiniz ilemi sein ve devam etmek zere leri tklayn." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} zaten ykl.$\n$\nYapmak istediiniz ilemi sein ve devam etmek iin leri tklayn." StrCpy $PageReinstall_SAME_Field_2 "Bileenleri ekle/yeniden ykle" StrCpy $PageReinstall_SAME_Field_3 "${APPLICATION_NAME} uygulamasn kaldr" StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} uygulamasn kaldr" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Yapmak istediiniz bakm ilemini sein." StrCpy $SEC_APPLICATION_DETAILS "${APPLICATION_NAME} gereklilikleri ykleniyor." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Windows Gezgini iin tmletirme" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Windows Gezgini iin Tmletirme Ykleme" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Balat Mens Program Ksayolu" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "${APPLICATION_NAME} iin Balat Mens'ne ksayol ekleniyor." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Masast Ksayolu" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Masast Ksayollar Oluturuluyor" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Hzl Balat Ksayolu" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Hzl Balat Ksayolu Oluturuluyor" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} gereklilikleri." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} ksayolu." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "${APPLICATION_NAME} iin masast ksayolu." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "${APPLICATION_NAME} iin Hzl Balat ksayolu." StrCpy $UNINSTALLER_FILE_Detail "Kaldrc Yazlyor" StrCpy $UNINSTALLER_REGISTRY_Detail "Ykleyici Kayt Anahtarlar Yazlyor" StrCpy $UNINSTALLER_FINISHED_Detail "Tamamland" StrCpy $UNINSTALL_MESSAGEBOX "${APPLICATION_NAME} uygulamas '$INSTDIR' dizinine yklenmi gibi grnmyor.$\n$\nYine de devam edilsin mi (nerilmez)?" StrCpy $UNINSTALL_ABORT "Kaldrma kullanc tarafndan iptal edildi" StrCpy $INIT_NO_QUICK_LAUNCH "Hzl Balat Ksayolu (Kullanlamyor)" StrCpy $INIT_NO_DESKTOP "Masast Ksayolu (mevcut olann zerine yazlr)" StrCpy $UAC_ERROR_ELEVATE "Ykseltme baarsz, hata:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Bu ykleyici ynetici eriimi gerektiriyor, yeniden deneyin" StrCpy $INIT_INSTALLER_RUNNING "Ykleyici zaten alyor." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Bu kaldrc ynetici eriimi gerektiriyor, yeniden deneyin" StrCpy $UAC_ERROR_LOGON_SERVICE "Oturum alacak sunucu almadndan iptal ediliyor!" StrCpy $INIT_UNINSTALLER_RUNNING "Kaldrc zaten alyor." StrCpy $SectionGroup_Shortcuts "Ksayollar" desktop-2.6.2/admin/win/nsi/l10n/Ukrainian.nsh000066400000000000000000000121201360037132600210520ustar00rootroot00000000000000# Auto-generated - do not modify StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Показати примітки до випуску" StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Знайдено процес(и) ${APPLICATION_EXECUTABLE}, які необхідно зупинити.$\nХочете щоб програма установки зробила це самостійно?" StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Завершення процесів ${APPLICATION_EXECUTABLE}." StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Не знайдено процеси, які необхідно зупинити!" StrCpy $PageReinstall_NEW_Field_1 "У вашої системі встановлена застаріла версія додатку ${APPLICATION_NAME}. Рекомендуємо видалити її перед початком встановлення поточної версії. Оберіть подальшу дію та натисніть $\"Далі$\"." StrCpy $PageReinstall_NEW_Field_2 "Видалити перед установкою" StrCpy $PageReinstall_NEW_Field_3 "Не видаляти" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Установлено" StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Оберіть, як ви хочете установити ${APPLICATION_NAME}." StrCpy $PageReinstall_OLD_Field_1 "Знайдено новішу версію ${APPLICATION_NAME}! Ми не рекомендуємо встановлювати стару версію. Якщо ви все ж бажаєте встановити цю версію, спочатку видаліть поточну версію. Оберіть подальшу дію та натисніть $\"Далі$\"." StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} вже встановлено.$\n$\nОберіть подальшу дію та натисніть $\"Далі$\" для продовження." StrCpy $PageReinstall_SAME_Field_2 "Додати/Перевстановити компоненти" StrCpy $PageReinstall_SAME_Field_3 "Видалити ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Видалити ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Оберіть опцію обслуговування для виконання." StrCpy $SEC_APPLICATION_DETAILS "Установка залежностей ${APPLICATION_NAME}." StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Інтеграція з провідником Windows" StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Встановлення інтеграції з провідником Windows" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Ярлик в меню Пуск" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Створення ярлика ${APPLICATION_NAME} в меню Пуск." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Ярлик на Робочому столі" StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Створення ярлика на Робочому столі" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Ярлик на панелі швидкого запуску" StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Створення ярлика на панелі швидкого запуску" StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} залежності." StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} ярлик." StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Ярлик ${APPLICATION_NAME} на Робочому столі." StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Ярлик ${APPLICATION_NAME} на панелі швидкого запуску." StrCpy $UNINSTALLER_FILE_Detail "Збереження Програми видалення" StrCpy $UNINSTALLER_REGISTRY_Detail "Запис ключів реєстру" StrCpy $UNINSTALLER_FINISHED_Detail "Завершено" StrCpy $UNINSTALL_MESSAGEBOX "Скоріш за все ${APPLICATION_NAME} вже встановлено в теку '$INSTDIR'.$↩$\nВсе одно продовжити (не рекомендується)?" StrCpy $UNINSTALL_ABORT "Видалення перервано користувачем." StrCpy $INIT_NO_QUICK_LAUNCH "Ярлик в області швидкого запуску (недоступний)" StrCpy $INIT_NO_DESKTOP "Ярлик на Робочому столі (перезаписати існуючий)" StrCpy $UAC_ERROR_ELEVATE "Неможливо підняти, помилка:" StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Для установки потрібні права адміністратора, спробуйте ще раз" StrCpy $INIT_INSTALLER_RUNNING "Установка вже запущена." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Для видалення потрібні права адміністратора, спробуйте ще раз" StrCpy $UAC_ERROR_LOGON_SERVICE "Сервіс авторизації не запущений, припиняю!" StrCpy $INIT_UNINSTALLER_RUNNING "Програма видалення вже запущено." StrCpy $SectionGroup_Shortcuts "Ярлики" desktop-2.6.2/admin/win/nsi/l10n/bin/000077500000000000000000000000001360037132600171735ustar00rootroot00000000000000desktop-2.6.2/admin/win/nsi/l10n/bin/build_locale_nsi.py000077500000000000000000000140331360037132600230400ustar00rootroot00000000000000############################################################################## # # PROJECT: ownCloud v1.0 # LICENSE: See LICENSE in the top level directory # ############################################################################## import collections import os import polib from optparse import OptionParser parser = OptionParser() parser.add_option("-o", "--output", dest="output", help="Directory for localized output", default="../Shared/installer/nightly_localized.nsi") parser.add_option("-p", "--podir", dest="podir", help="Directory containing PO files", default="../Shared/installer/locale/") parser.add_option("-l", "--lang", dest="lang", help="Default language of the NSI", default="English" ) (options, args) = parser.parse_args() # Define a dict to convert locale names to language names localeToName = { "af" : "Afrikaans", "sq" : "Albanian", "ar" : "Arabic", "hy" : "Armenian", "eu" : "Basque", "be" : "Belarusian", "bs" : "Bosnian", "br" : "Breton", "bg" : "Bulgarian", "ca" : "Catalan", "bem" : "Cibemba", "hr" : "Croatian", "cs" : "Czech", "da" : "Danish", "nl" : "Dutch", "efi" : "Efik", "en" : "English", "eo" : "Esperanto", "et" : "Estonian", "fa" : "Farsi", "fi" : "Finnish", "fr" : "French", "gl" : "Galician", "ka" : "Georgian", "de" : "German", "el" : "Greek", "he" : "Hebrew", "hi" : "Hindi", "hu" : "Hungarian", "is" : "Icelandic", "ig" : "Igbo", "id" : "Indonesian", "ga" : "Irish", "it" : "Italian", "ja" : "Japanese", "km" : "Khmer", "ko" : "Korean", "ku" : "Kurdish", "lv" : "Latvian", "lt" : "Lithuanian", "lb" : "Luxembourgish", "mk" : "Macedonian", "mg" : "Malagasy", "ms" : "Malay", "mn" : "Mongolian", "nb_NO" : "Norwegian", "nn" : "NorwegianNynorsk", "ps" : "Pashto", "pl" : "Polish", "pt" : "Portuguese", "pt_BR" : "PortugueseBR", "ro" : "Romanian", "ru" : "Russian", "sr" : "Serbian", "sr_sp" : "SerbianLatin", "st" : "Sesotho", "sn" : "Shona", "zh_CN" : "SimpChinese", "sk" : "Slovak", "sl" : "Slovenian", "es" : "Spanish", "es_AR" : "SpanishInternational", "sw" : "Swahili", "sv" : "Swedish", "ta" : "Tamil", "th" : "Thai", "zh_HK" : "TradChinese", "tr" : "Turkish", "tw" : "Twi", "uk" : "Ukrainian", "ug" : "Uyghur", "uz" : "Uzbek", "ca@valencia" : "Valencian", "vi" : "Vietnamese", "cy" : "Welsh", "yo" : "Yoruba", "zu" : "Zulu", } def escapeNSIS(st): return st.replace('\\', r'$\\')\ .replace('\t', r'$\t')\ .replace('\r', r'$\r')\ .replace('\n', r'$\n')\ .replace('\"', r'$\"')\ .replace('$$\\', '$\\')\ .replace('$\\n', r'$\n')\ .replace('$\\\\n', r'$\n') translationCache = {} # The purpose of this loop is to go to the podir scanning for PO files for each locale name # Once we've found a PO file, we use PO lib to read every translated entry # Using this, for each each language, we store a dict of entries - { nsilabel (comment) : translation (msgstr) } # For untranslated entries, we use msgid instead of msgstr (i.e. default English string) for root,dirs,files in os.walk(options.podir): for file in files: filename,ext = os.path.splitext(file) if ext == ".po": # Valid locale filename (fr.po, de.po etc)? if filename in localeToName: language = localeToName[filename] translationCache[language] = collections.OrderedDict() po = polib.pofile(os.path.join(root,file)) for entry in po.translated_entries(): # Loop through all our labels and add translation (each translation may have multiple labels) for label in entry.comment.split(): translationCache[language][label] = escapeNSIS(entry.msgstr) # For untranslated strings, let's add the English entry for entry in po.untranslated_entries(): for label in entry.comment.split(): print("Warning: Label '%s' for language '%s' remains untranslated"%(label,language)) translationCache[language][label] = escapeNSIS(entry.msgid) def tostr(obj): if type(obj) == unicode: return obj.encode("utf-8") else: return obj NSILanguages = [] NSIDeclarations = [] # file header NSILanguages.append( tostr('; Auto-generated - do not modify\n') ) NSIDeclarations.append( tostr('; Auto-generated - do not modify\n') ) # loopthrough the languages an generate one nsh files for each language lineNo = 1 for language,translations in translationCache.iteritems(): NSINewLines = [] NSINewLines.append( tostr('# Auto-generated - do not modify\n') ) count = 0 # if the language isn't the default, we add our MUI_LANGUAGE macro if language.upper() != options.lang.upper(): NSILanguages.append( tostr('!insertmacro MUI_LANGUAGE "%s"\n'%language) ) # For every translation we grabbed from the .po, let's add our StrCpy command for label,value in translations.iteritems(): NSINewLines.append( tostr('StrCpy $%s "%s"\n' % (label,value)) ) if language.upper() == options.lang.upper(): NSIDeclarations.append( tostr('Var %s\n' % label) ) count += 1 NSIWorkingFile = open('%s/%s.nsh' % (options.output, language),"w") NSIWorkingFile.writelines(NSINewLines) NSIWorkingFile.close() print ( "%i translations merged for language '%s'"%(count,language) ) # Finally, let's write languages.nsh and declarations.nsh NSIWorkingFile = open('%s/languages.nsh' % options.output,"w") NSIWorkingFile.writelines(NSILanguages) NSIWorkingFile.close() NSIWorkingFile = open('%s/declarations.nsh' % options.output,"w") NSIWorkingFile.writelines(NSIDeclarations) NSIWorkingFile.close() print ( "NSI Localization Operation Complete" ) desktop-2.6.2/admin/win/nsi/l10n/bin/l10n.sh000077500000000000000000000033531360037132600203100ustar00rootroot00000000000000#!/bin/bash -x L10NDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )" SCRIPTDIR="$L10NDIR/bin" PODIR="$L10NDIR/pofiles" # messages.pot will be used as English translation cp -f $PODIR/messages.pot $PODIR/en.po # generate all the languages nsh files python $SCRIPTDIR/build_locale_nsi.py -o $L10NDIR -p $PODIR -l "English" # for future references: the windows code pages # 874 — Thai # 932 — Japanese # 936 — Chinese (simplified) (PRC, Singapore) # 949 — Korean # 950 — Chinese (traditional) (Taiwan, Hong Kong) # 1200 — Unicode (BMP of ISO 10646, UTF-16LE) # 1201 — Unicode (BMP of ISO 10646, UTF-16BE) # 1250 — Latin (Central European languages) # 1251 — Cyrillic # 1252 — Latin (Western European languages, replacing Code page 850) # 1253 — Greek # 1254 — Turkish # 1255 — Hebrew # 1256 — Arabic # 1257 — Latin (Baltic languages) # 1258 — Vietnamese # convert file to proper content cd $L10NDIR iconv -t CP1252 -o German.nsh German.nsh iconv -t CP1252 -o Basque.nsh Basque.nsh iconv -t CP1252 -o English.nsh English.nsh iconv -t CP1252 -o Galician.nsh Galician.nsh iconv -t CP1253 -o Greek.nsh Greek.nsh iconv -t CP1250 -o Slovenian.nsh Slovenian.nsh iconv -t CP1257 -o Estonian.nsh Estonian.nsh iconv -t CP1252 -o Italian.nsh Italian.nsh iconv -t CP1252 -o PortugueseBR.nsh PortugueseBR.nsh iconv -t CP1252 -o Spanish.nsh Spanish.nsh iconv -t CP1252 -o Dutch.nsh Dutch.nsh iconv -t CP1252 -o Finnish.nsh Finnish.nsh iconv -t CP932 -o Japanese.nsh Japanese.nsh iconv -t CP1250 -o Slovak.nsh Slovak.nsh iconv -t CP1254 -o Turkish.nsh Turkish.nsh iconv -t CP1252 -o Norwegian.nsh Norwegian.nsh iconv -t CP1250 -o Polish.nsh Polish.nsh iconv -t CP852 -o Czech.nsh Czech.nsh #iconv -t CP852 -o Slovak.nsh Slovak.nsh desktop-2.6.2/admin/win/nsi/l10n/declarations.nsh000066400000000000000000000027131360037132600216100ustar00rootroot00000000000000; Auto-generated - do not modify Var MUI_FINISHPAGE_SHOWREADME_TEXT_STRING Var ConfirmEndProcess_MESSAGEBOX_TEXT Var ConfirmEndProcess_KILLING_PROCESSES_TEXT Var ConfirmEndProcess_KILL_NOT_FOUND_TEXT Var PageReinstall_NEW_Field_1 Var PageReinstall_NEW_Field_2 Var PageReinstall_NEW_Field_3 Var PageReinstall_NEW_MUI_HEADER_TEXT_TITLE Var PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE Var PageReinstall_OLD_Field_1 Var PageReinstall_SAME_Field_1 Var PageReinstall_SAME_Field_2 Var PageReinstall_SAME_Field_3 Var UNINSTALLER_APPDATA_TITLE Var PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE Var SEC_APPLICATION_DETAILS Var OPTION_SECTION_SC_SHELL_EXT_SECTION Var OPTION_SECTION_SC_SHELL_EXT_DetailPrint Var OPTION_SECTION_SC_START_MENU_SECTION Var OPTION_SECTION_SC_START_MENU_DetailPrint Var OPTION_SECTION_SC_DESKTOP_SECTION Var OPTION_SECTION_SC_DESKTOP_DetailPrint Var OPTION_SECTION_SC_QUICK_LAUNCH_SECTION Var OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint Var OPTION_SECTION_SC_APPLICATION_Desc Var OPTION_SECTION_SC_START_MENU_Desc Var OPTION_SECTION_SC_DESKTOP_Desc Var OPTION_SECTION_SC_QUICK_LAUNCH_Desc Var UNINSTALLER_FILE_Detail Var UNINSTALLER_REGISTRY_Detail Var UNINSTALLER_FINISHED_Detail Var UNINSTALL_MESSAGEBOX Var UNINSTALL_ABORT Var INIT_NO_QUICK_LAUNCH Var INIT_NO_DESKTOP Var UAC_ERROR_ELEVATE Var UAC_INSTALLER_REQUIRE_ADMIN Var INIT_INSTALLER_RUNNING Var UAC_UNINSTALLER_REQUIRE_ADMIN Var UAC_ERROR_LOGON_SERVICE Var INIT_UNINSTALLER_RUNNING Var SectionGroup_Shortcuts desktop-2.6.2/admin/win/nsi/l10n/languages.nsh000066400000000000000000000020451360037132600211040ustar00rootroot00000000000000; Auto-generated - do not modify !insertmacro MUI_LANGUAGE "Swedish" !insertmacro MUI_LANGUAGE "Estonian" !insertmacro MUI_LANGUAGE "Turkish" !insertmacro MUI_LANGUAGE "PortugueseBR" !insertmacro MUI_LANGUAGE "Slovenian" !insertmacro MUI_LANGUAGE "SpanishInternational" !insertmacro MUI_LANGUAGE "Dutch" !insertmacro MUI_LANGUAGE "Norwegian" !insertmacro MUI_LANGUAGE "Hungarian" !insertmacro MUI_LANGUAGE "Ukrainian" !insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "Catalan" !insertmacro MUI_LANGUAGE "Russian" !insertmacro MUI_LANGUAGE "Thai" !insertmacro MUI_LANGUAGE "Finnish" !insertmacro MUI_LANGUAGE "Basque" !insertmacro MUI_LANGUAGE "Greek" !insertmacro MUI_LANGUAGE "SimpChinese" !insertmacro MUI_LANGUAGE "Italian" !insertmacro MUI_LANGUAGE "Portuguese" !insertmacro MUI_LANGUAGE "Czech" !insertmacro MUI_LANGUAGE "Japanese" !insertmacro MUI_LANGUAGE "Galician" !insertmacro MUI_LANGUAGE "German" !insertmacro MUI_LANGUAGE "Slovak" !insertmacro MUI_LANGUAGE "Spanish" !insertmacro MUI_LANGUAGE "Polish" !insertmacro MUI_LANGUAGE "Farsi" desktop-2.6.2/admin/win/nsi/l10n/pofiles/000077500000000000000000000000001360037132600200645ustar00rootroot00000000000000desktop-2.6.2/admin/win/nsi/l10n/pofiles/messages.pot000066400000000000000000000150431360037132600224220ustar00rootroot00000000000000# # Translators: msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-12-09 06:40\n" "PO-Revision-Date: 2013-12-03 23:13+0000\n" "Last-Translator: I Robot \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: en\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. MUI_FINISHPAGE_SHOWREADME_TEXT_STRING msgid "Show release notes" msgstr "Show release notes" #. ConfirmEndProcess_MESSAGEBOX_TEXT msgid "" "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\n" "Do you want the installer to stop these for you?" msgstr "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?" #. ConfirmEndProcess_KILLING_PROCESSES_TEXT msgid "Killing ${APPLICATION_EXECUTABLE} processes." msgstr "Killing ${APPLICATION_EXECUTABLE} processes." #. ConfirmEndProcess_KILL_NOT_FOUND_TEXT msgid "Process to kill not found!" msgstr "Process to kill not found!" #. PageReinstall_NEW_Field_1 msgid "" "An older version of ${APPLICATION_NAME} is installed on your system. It is " "recommended that you uninstall the current version before installing. Select" " the operation you want to perform and click Next to continue." msgstr "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue." #. PageReinstall_NEW_Field_2 msgid "Uninstall before installing" msgstr "Uninstall before installing" #. PageReinstall_NEW_Field_3 msgid "Do not uninstall" msgstr "Do not uninstall" #. PageReinstall_NEW_MUI_HEADER_TEXT_TITLE msgid "Already Installed" msgstr "Already Installed" #. PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE msgid "Choose how you want to install ${APPLICATION_NAME}." msgstr "Choose how you want to install ${APPLICATION_NAME}." #. PageReinstall_OLD_Field_1 msgid "" "A newer version of ${APPLICATION_NAME} is already installed! It is not " "recommended that you install an older version. If you really want to install" " this older version, it is better to uninstall the current version first. " "Select the operation you want to perform and click Next to continue." msgstr "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue." #. PageReinstall_SAME_Field_1 msgid "" "${APPLICATION_NAME} ${VERSION} is already installed.$\r$\n" "Select the operation you want to perform and click Next to continue." msgstr "${APPLICATION_NAME} ${VERSION} is already installed.$\r$\nSelect the operation you want to perform and click Next to continue." #. PageReinstall_SAME_Field_2 msgid "Add/Reinstall components" msgstr "Add/Reinstall components" #. PageReinstall_SAME_Field_3 UNINSTALLER_APPDATA_TITLE msgid "Uninstall ${APPLICATION_NAME}" msgstr "Uninstall ${APPLICATION_NAME}" #. PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE msgid "Choose the maintenance option to perform." msgstr "Choose the maintenance option to perform." #. SEC_APPLICATION_DETAILS msgid "Installing ${APPLICATION_NAME} essentials." msgstr "Installing ${APPLICATION_NAME} essentials." #. OPTION_SECTION_SC_SHELL_EXT_SECTION msgid "Integration for Windows Explorer" msgstr "Integration for Windows Explorer" #. OPTION_SECTION_SC_SHELL_EXT_DetailPrint msgid "Installing Integration for Windows Explorer" msgstr "Installing Integration for Windows Explorer" #. OPTION_SECTION_SC_START_MENU_SECTION msgid "Start Menu Program Shortcut" msgstr "Start Menu Program Shortcut" #. OPTION_SECTION_SC_START_MENU_DetailPrint msgid "Adding shortcut for ${APPLICATION_NAME} to the Start Menu." msgstr "Adding shortcut for ${APPLICATION_NAME} to the Start Menu." #. OPTION_SECTION_SC_DESKTOP_SECTION msgid "Desktop Shortcut" msgstr "Desktop Shortcut" #. OPTION_SECTION_SC_DESKTOP_DetailPrint msgid "Creating Desktop Shortcuts" msgstr "Creating Desktop Shortcuts" #. OPTION_SECTION_SC_QUICK_LAUNCH_SECTION msgid "Quick Launch Shortcut" msgstr "Quick Launch Shortcut" #. OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint msgid "Creating Quick Launch Shortcut" msgstr "Creating Quick Launch Shortcut" #. OPTION_SECTION_SC_APPLICATION_Desc msgid "${APPLICATION_NAME} essentials." msgstr "${APPLICATION_NAME} essentials." #. OPTION_SECTION_SC_START_MENU_Desc msgid "${APPLICATION_NAME} shortcut." msgstr "${APPLICATION_NAME} shortcut." #. OPTION_SECTION_SC_DESKTOP_Desc msgid "Desktop shortcut for ${APPLICATION_NAME}." msgstr "Desktop shortcut for ${APPLICATION_NAME}." #. OPTION_SECTION_SC_QUICK_LAUNCH_Desc msgid "Quick Launch shortcut for ${APPLICATION_NAME}." msgstr "Quick Launch shortcut for ${APPLICATION_NAME}." #. UNINSTALLER_FILE_Detail msgid "Writing Uninstaller" msgstr "Writing Uninstaller" #. UNINSTALLER_REGISTRY_Detail msgid "Writing Installer Registry Keys" msgstr "Writing Installer Registry Keys" #. UNINSTALLER_FINISHED_Detail msgid "Finished" msgstr "Finished" #. UNINSTALL_MESSAGEBOX msgid "" "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r" "$\n" "Continue anyway (not recommended)?" msgstr "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" #. UNINSTALL_ABORT msgid "Uninstall aborted by user" msgstr "Uninstall aborted by user" #. INIT_NO_QUICK_LAUNCH msgid "Quick Launch Shortcut (N/A)" msgstr "Quick Launch Shortcut (N/A)" #. INIT_NO_DESKTOP msgid "Desktop Shortcut (overwrites existing)" msgstr "Desktop Shortcut (overwrites existing)" #. UAC_ERROR_ELEVATE msgid "Unable to elevate, error:" msgstr "Unable to elevate, error:" #. UAC_INSTALLER_REQUIRE_ADMIN msgid "This installer requires admin access, try again" msgstr "This installer requires admin access, try again" #. INIT_INSTALLER_RUNNING msgid "The installer is already running." msgstr "The installer is already running." #. UAC_UNINSTALLER_REQUIRE_ADMIN msgid "This uninstaller requires admin access, try again" msgstr "This uninstaller requires admin access, try again" #. UAC_ERROR_LOGON_SERVICE msgid "Logon service is not running, aborting!" msgstr "Logon service is not running, aborting!" #. INIT_UNINSTALLER_RUNNING msgid "The uninstaller is already running." msgstr "The uninstaller is already running." #. SectionGroup_Shortcuts msgid "Shortcuts" msgstr "Shortcuts" desktop-2.6.2/admin/win/nsi/page_header.bmp000066400000000000000000000623321360037132600206030ustar00rootroot00000000000000BMd6(9dɂɂɂɂˇ ͌ʃɂɂɂɂɂɂɂ͌Ϗˇ ʄ͌ˆ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʃɂɂɂɂɂɂɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͌͋ɂ̈ ΍ʄˇ Ϗ͊ɂ͌͋ɂɂɂɂʄ΍ˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂΎ΍ɂ͊Ϗʄ̉Ϗ͌ɂΎ΍ɂɂɂɂˆϏ̉ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃɂɂɂʃɂɂˆ ʃɂɃɂɂɂɂɂɂʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̊̉ɂ͋ΎˆɃ̉ʄʄ΍͌ʃʅ̈ ɂɂɂɂɂɂɂɂɂɂɂʃ͊ˆɂˇ ˇ ɂʄ̈ ɂɃ̉ʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏϏʄϏϏ͋ˇ Ϗ̊ˇ ϏϏˇ ͋Ϗˆɂɂɂɂɂɂɂɂɂɂ̈ Ϗ͌ɂϏΎɂ͋Ϗˆ ˆ Ϗ͊ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̈ ̈ ɂ̊΍ʅɂ̈ ʄʃ͌͌Ƀʄ̈ ɂɂɂɂɂɂɂɂɂɂɂʃ̉ʅɂˆ ˆɂʄ̈ ɂɂ̈ ʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉̈ ɂˆ ̉ʃʃ̈ ʄɂʃʃɂɂʄɂɂɂɂɂɂɂɂɂʄɂɂʄɂɂʃʃɂɂʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˇ ϏϏˇ ϏϏ͊͊Ϗ΍ɂΎΎɂ͊Ϗʅɂɂɂɂɂɂɂ͊ϏʅˆϏ̊ɂΎΎɂ͊ϏˆɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅϏΎʅ΍Ϗ̈ ̈ Ϗ͋ɂ͋̊ɂˇ ͌ʃɂɂɂɂɂɂɂˇ ͌ʃʄ͌ˆ ɂ͋͊ɂˇ ͌ʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄʃɂɃʅɂɂʅɂɂɂɂɂɂɂɂɂɂɂɂɃɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃΎ΍ɂ͋Ϗˆ̈ Ϗ͋ɂ͌͋ɂ̈ ΍ʄʅΎ̈ ʄΎΎʃ̈ ΍ʄʄ΍ˇ Ƀ΍΍ɂ̈ ΍ʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏΎɃ͌Ϗˇ ͊Ϗ΍ɂΎ΍ɂ͊Ϗʅˆ Ϗ̉ˆϏϏʅ̊ϏʅˆϏ̉ʃΎΎɃ̊ϏʅɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄʄɂʃʅɂɃ̈ ʄɂɃɃɂɂʃɂɂʄɂɂˆ ˆ ɂɂʃɂɂʃɂɂʄʃɂɂʃɂɂɂɂʄ٨M̗Μ۬Vˆ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉̉ɂˇ ͋ʄɃ̉ʄɂ̈ ˇ ɂʅ̉ɂɃ̉ʄɂ̈ ˇ ɂɂɂɂɃ̉ʅɂ̈ ˇ ɂɂɂɂɂˇ xň͊ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏϏʃ΍Ϗ̈ ˇ Ϗ̊ɂϏΎɂ͋Ϗˆˇ Ϗ͊ɃϏΎɂɂɂɂˆ Ϗ͊ɂϏΎɂɂɂɂףC۬Uɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉̈ ɂˆ̊Ƀɂ̈ ʄɂˆ ˆɂʄˇ ɂɂ̈ ʄɂˆ ˆɂɂɂɂɂ̈ ʄɂˆ ˆɂɂɂxnjɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅʅɂʃˆɂɂˆɃɂ̈ ̈ ɂɂʄɂɂʄɂɂʅʄɂɃʅɂɂʄɂɂʃʃɂɂÄ͚ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏϏɃ͌Ϗˆ ̈ Ϗ͋ˇ ϏϏˆ͊Ϗʅˆ Ϗҗ*|wБϏ̊ɂΎΎɂ޲bժПݺ{ɂɂɂɂɂɂ΍sݹ߾zϐɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃ΍͌ɂ̉΍ʄʅΎ̈ ʅϏΎʄˇ ͌ʃ̈ ̕Ŋ̈ ɂ͋͊ѕ&ܮZʅˇ ͌ʄʄΎکN՞9ɂɂɂʄƋˆɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʃɃɂɂɂ͌̉ɂɂܷ}Ƀɂɂɂɂɂɂɂɂɂ߶jʄɂ̉͌ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃΎ΍ɂ̉Ύʅʅ΍ˇ ɂ΍͌ɂ̉Г#ΎإIkɂɂɂɂɂɂɂɂɂɂɂɂڪR޴eʄˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏΎɃ͌Ϗˆ ˆϏ̉ʃϏΎɃ͌ПǍժРɂɂɂɂɂɂɂɂɂɂɂɂɂɂć˔ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄʄɂɃʅɂɂʃɂɂʄʄɂД%֫͌ɂɂɂɂɂɂɂɂɂɂɂɂɂɂˆ ֫Г#ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʃ͌͌Ƀʅ̈ ɂɃ̉ʄɂˇ ˇ ɂƌ֠>ˆ ɂɂ֠=ѡɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʼn֠=ɂɂɂԜ5ʼnɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˇ ϏϏʅ͋Ϗˆˇ Ϗ̊ɂϏΎɂӛ2ϏΎɂɂɂ֠=۬Uɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ՞:֠=ɂɂɂɂɂӚ0ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃ͋͊ɂʄ̈ ɂɃ̈ ʄɂˆ ˆɂɂˇ ˆɂɂɂɂҘ,ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͌ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʃʃɂɂʄɂɂʅɂɂʃʃɂРɂʃʃɂʄˇ ɂ׮Ϗɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ׮ɂɂɂɂɂɂɂРɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂΎΎɂ͋Ϗʅˇ Ϗ͊ɂΎΎɂɂΎΎɂ΍Ϗ̈ Ҙ,ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͌ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͋̊ɂˇ ͌ʃʅ΍ˇ ɂ͋̊ɂӚ0͋̊ɂ͋ϏףC۬Uɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ՞:֠=ɂɂɂɂɂӚ0ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʼnԜ5ɂɂɂ֠>ѡɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂň֠=ɂɂɂԜ5ʼnɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃΎ΍ɂ̉Ύʅʅ΍ˇ ɂ͌͋ɂҘ-֫͌ɂɂɂɂɂɂɂɂɂɂɂɂɂɂˆ ֫Г#ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏΎɃ͌Ϗˆ ˆϏ̉ɂΎ΍ɂ͊ПҤРɂɂɂɂɂɂɂɂɂɂɂɂɂɂĆ߽˔ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄʄɂɃʅɂɂʃɂɂɃɃɂɂ̈ʄ՞:kɂɂɂɂɂɂɂɂɂɂɂɂڪR۬Uʄˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉̉ɂˆ̊ɃɃ̈ ʄʃ΍͌ʃʅ͍̉̉ˇ ˆ ܷ}Ƀɂɂɂɂɂɂɂɂɂ߶jɃɂ̉͌ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʃ͋̈ ɂˆ̈ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏϏʃ΍Ϗˇ ˇ Ϗ̊ˇ ϏϏˇ ͌Ϗˇ Ϗ͘ƌΌɂϏΎѕ&ڨNʅɂɂɂɂʄإG՞:ɂɂɂʄƌˆɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̈ ϏϏɂ΍Ϗʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉̈ ɂˆ̉ɃɃ̈ ʄʃ͌͌Ƀʅ̉Ƀˆ ΍җ*z߼tΎ̈ ʄɂˇ ˆ ɂ޲b޻РΜܸ|ɂɂɂɂɂɂ΍sݹ߾~є&ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʃ͋̈ ɂʅˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅʅɂʃˆɂʃ̉ʅɂʄʃɂʃˆɂɂˆ ʃɂʃʃɂɃʅɂɂʄɂɂʄʄɂɃŇ͚ɂʄɂɂˇ ̈ ɂɂʄɂɂɂɂɂɂɂɂɂʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏϏɃ͌Ϗˆ ͋ϏΎɃΎΎɂ͌Ϗˇ ̈ Ϗ͋ɂΎΎɂ͋Ϗˆ ˆϏ̊ɃϏΎɂ͋Ϗ}njɂʅϏ͊ˆϏϏˇ ̉Ϗˆ ɂɂɂɂɂɂɂ̉Ϗˆ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃ΍͌ɂ̉Ύʄ̉Ϗ͋ɂ͋͋ɂ̉ΎʅˆΎ̉ɂ͋͊ɂ̈ Ύʄʄ͌ˇ ɂ͌͋ɂ̈ ΍ʄإG۬Uɂɂʄ͌ˇ ʄΎϏʅˆ ͌ʄɂɂɂɂɂɂɂˆ ͌ʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂˇ xň͊ɂɂɂɂɂɂɂɃʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃΎ΍ɂ̉ΎʅˆΎ̈ ɂ΍͌ɂ̊ΎʅˆϏ̉ɂ͌͌ɂ̈ ΍ʄʄ΍ˇ ɂ΍͌ɂ̉ΎʅʅΎ̈ ʅݰ^ѡС۬VϏ͌ɂɂɂɂʄ΍̈ ɂ͋͌ɂˇ ΍ʄʄ΍̈ ɂ͋͌ɂˇ ΍ʄʄ΍̈ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂˆ ΍ʅʃ΍̈ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʃ΍̉ɂ̊͌ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏΎɃ͌Ϗˆ ̈ Ϗ͊ʃϏΎɃ͌Ϗˆ ˇ Ϗ͋ʃϏΎɂ͋Ϗˆ ˆϏ̉ɃΎΎɂ͋Ϗˆ ˆ Ϗ͋ʄϏϏʄ͊ϏʅʅϏ̊ɂ΍ΎɂɂɂɂʅϏ̊ɂ΍Ύɂ̉ϏˆʅϏ͊ɂ΍Ύɂ̉ϏˆʅϏ͊ɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̈ Ϗˆ ʄϏ͋ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏ͋ɂ͌ΎʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄʄɂɃʅɂɂʅɃɂʄʄɂɃʅɂɂʅɂɂʄʄɂɃʅɂɂʃɂɂʃʃɂɂʄɂɂʄɂɂʅˆɂɂʄɂɂʃɂɂɃɃɂɂɂɂɂʃɂɂɃɃɂɂʃɂɂʃɂɂɃɃɂɂʃɂɂʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄɂɂʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʃɂɂɂʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉̉ɂˆ̊Ƀʃ̊ʅɂ̈ ̈ ɂˆ̊Ƀʃ̊ʅɂ̈ ˇ ɂʅ̉Ƀʃ̉ʅɂ̈ ˇ ɂʅ̉Ƀʃ̊ʅɂ̈ ̈ ɂʅ̉ɃɃ̉ʅɂˇ ˇ ɂʅ̉Ƀɂ̈ ʄɂˆ ˇ ɂˇ ͌ʅɃ̉ʅɂɂɂɂɂɂɂɂ̈ ʅɂˆ ˇ ɂʅ̊ʃɂ̈ ʅɂɂɂɂʄ̉ʃɂ̈ ʅɂɂɂɂʄ̈ Ƀɂɂɂɂɂɂɂʄ̉ɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏϏʃ΍Ϗˇ ̈ Ϗ͋ʄϏϏɃ͌Ϗˇ ̈ Ϗ͋ʃϏϏɂ͌Ϗˇ ̈ Ϗ͋ʃϏϏɂ͌Ϗˇ ˇ Ϗ͋ɃϏϏɃ͋Ϗˇ ˇ Ϗ͋ɂϏϏɃ͋Ϗˇ ˆ Ϗ͋ɂΎϏɂ΍Ϗ͊ˆ Ϗ͌ɂɂɂɂɂɂɂˆϏ͋ɂΎϏɃ͋Ϗ̈ ʅϏ͋ɂɂɂɂ͊Ϗ̈ ʅϏ͌ɂɂɂɂ̉Ϗ̈ ɂɂɂɂɂɂɂ̉Ϗ̈ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̉̈ ɂˆ̉Ƀʃ̊ʅɂ̈ ̈ ɂˆ̉Ƀʃ̉ʅɂ̈ ˇ ɂʅ̉ɃɃ̉ʅɂ̈ ˇ ɂʅ̉ɃɃ̉ʅɂˇ ˇ ɂʄ̉ɃɃ̉ʅɂˇ ˇ ɂʄ̈ ɂɂ̈ ʄɂˆ ˇ ɂˇ ͋ʅɂ̈ ʅɂɂɂɂɂɂɂɂ̈ ʄɂˆˇ ɂʄ̉ʃɂ̈ ʅɂɂɂɂʄ̉Ƀɂ̈ ʅɂɂɂɂʃ̈ Ƀɂɂɂɂɂɂɂʃ̈ ɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅʅɂʃˆɂɂˆɃɂʄʄɂʃʅɂɂˆɃɂʄʃɂɂʅɂɂʅɃɂʄʄɂɃʅɂɂʅɃɂʄʄɂɂʄɂɂʅɂɂʃʄɂɂʅɂɂʄɂɂɂɂɂʅ̉ʄɂʄɂɂʃʃɂʄˇ ɃɂʄɂɂɂɂɂɂʄɂɂɂɂɂɃʄɂʅ̉ʄɂʅʃɂˇ ̈ ɂɂʄɂɂʄɂɂɂɂɂɂʄɂɂɂɂɂɂɂɂɂʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏϏɃ͌Ϗˆ ̈ Ϗ͋ʃϏϏɃ͌Ϗˇ ̈ Ϗ͋ʃΎΎɂ͋Ϗˆ ˇ Ϗ͊ɃϏΎɂ͋Ϗˆ ˇ Ϗ͋ɂΎΎɃ̊Ϗˆˆ Ϗ͊ɂΎΎɃ͊Ϗˆ ʅϏ͊ɂɂɂɂΎϏ͋ʅϏ͊ɂΎΎɂ͌Ϗ̉ʅϏ͋ɂɂɂɂ̉Ϗˆ ɂɂɂɂ΍ΎɃΎϏ͌ˆ Ϗ΍ʅϏϏˇ ̉Ϗˇ ʄϏ͋ɂɂɂɂ̈ Ϗˇ ɂɂɂɂɂɂɂ̈ Ϗˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃ΍͌ɂ̉ΎʄʅΎ̈ ɂ͌͌ɂ̉ΎʅʅΎ̈ ɂ΍͌ɂ̉Ύʄʅ΍̈ ɂ͌͋ɂ̈ ΍ʄʅ΍̈ ɂ͌͌ɂˇ ͌ʄʄ΍ˇ ɂ͋͋ɂˇ ΍ʄʄ͌ˇ ɂɂɂɂ͌Ϗ̉ʃ͌ˇ ɂ̊͋ɂ̊Ϗˇ ʃ͌ˇ ɂɂɂɂˆ ͌ʄɂɂɂɂ̊͋ɂ͌Ϗ͊ʄΎ̊ʃΎϏʅˆ͌ʅɃ͌̈ ɂɂɂɂˆ΍ʅɂɂɂɂɂɂɂˆ΍ʅɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄɂɂɂɂɂɂɂɂɂɂɂɂʅɃɂʃʄɂɂʄɂɂʃɂɂɂɂɂɂʅɂɂɂɂɂɃʃɂɂɂɂɂʄɃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɃΎ΍ɂ̉ΎʅˆΎ̈ ɂ΍͌ɂ̉ΎʅʅΎ̈ ɂ͌͌ɂ̈ ΍ʄʅΎ̈ ɂ΍͌ɂ̉ΎʅʅΎ̈ ɂ͌΍ɂ̈ ΍ʄʄ΍̈ ɂ͌͌ɂ̈ ΍ʅʄ΍̈ ɂ͋͌ɂˇ ΍ʄʄ͌ˇ ɂ͋͌ɂˇ ΍ʄ̈ Ϗ΍ʄΎϏˆ͌Ϗ̉ˆ Ϗ͌ɂ͊͌ɂ̈ Ύˆʃ΍̉ɂ͊͌ɂˆ ΍ʅ̈ ϏΎɃ͋΍Ƀˆ ΍ʅʃ΍̉ɂɂɂɂˆ΍ʅɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄϏΎɃ͌Ϗˆ ̈ Ϗ͋ʃϏΎɃ͌Ϗˆ ̈ Ϗ͋ʃϏΎɂ͋Ϗˆ ˇ Ϗ͊ɃΎΎɂ͋Ϗˆ ˆ Ϗ͊ɂΎΎɃ͊Ϗˆ ˆ Ϗ͊ɂΎΎɂ̊Ϗˆ ˆϏ͊ɂΎΎɃ̉Ϗˆ ʅϏ͊ɂ΍Ύɂ̉Ϗˆ͊ϏϏˆ ϏϏˇ ΍Ϗ͋̈ ϏΎɂ΍ΎɃ͊Ϗ̈ ʅϏ͋ɂ΍ΎɃ̈ Ϗˇ ̊ϏϏʃ΍Ϗʄ̈ Ϗˇ ʄϏ͋ɂɂɂɂ̈ Ϗˇ ɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄʄɂɃʅɂɂʅɃɂʄʄɂɃʅɂɂʅɃɂʄʄɂɃʅɂɂʄɂɂʃʃɂɂʄɂɂʄɂɂʃʃɂɂʄɂɂʄɂɂɃʃɂɂʄɂɂʄɂɂɃʃɂɂʄɂɂʄɂɂɃɃɂɂʃɂʃ̉ˆ ɂ̈ ̈ ɂʄ̈ ʃɂˇ ʄɂɃɃɂɃʅɂɂʄɃɂɃɃɂɂʄɂɃ̉ˆ ɂɃʄɂɂʄɂɂʃɂɂɂɂɂɂʄɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂʅ̉ɃɃ̉ʅɂ̈ ˇ ɂɂɂɂʃ̊ʅɂ̈ ̈ ɂʅ̉Ƀɂɂɂɂˇ ̈ ɂʅ̉ɃɃ̉ʅɂɂɂɂɂɂɂɂɂɂɂɂɂɂʄ̈ Ƀˆ΍͊Ƀ͌΍ʄ̈ ΍ˆʄ͌̈ ɂ̈ ̊ɂʅ̊ʄɂ̉ʅɂˆˇ ɂ̉Ύˇ ʄ͌̊ɂ̈ ͊ɂʄ̊ʄɂ̈ ʅɂ͊͌ʃʃ̉ʃɂ̈ ʅɂˆ̈ ɂʃ̉ʃɂɂɂɂɂɂɂʃ̈ ʃɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂɂ͌Ϗˇ ̈ Ϗ͋ʃϏϏɂɂɂɂˇ Ϗ͋ɃϏϏɃ͋Ϗˇ ɂɂɂɂϏϏɃ͋Ϗˇ ˆ Ϗ͋ɂɂɂɂɂɂɂɂɂɂɂɂɂɂ̊Ϗˇ ͋ϏϏˇ ϏϏ̈ ΎϏ͋̉ϏϏɃϏϏʅ͋Ϗ̉ˆϏ͌ɂΎϏʃΎϏ΍̉ϏϏʃϏϏˆ͊Ϗ̉ʅϏ͌ʄϏϏˇ ̉Ϗ̈ ʅϏ͌ɂ΍Ϗʄ̉Ϗ̈ ɂɂɂɂɂɂɂ̈ Ϗ̈ ɂɂɂdesktop-2.6.2/admin/win/nsi/qt.conf000066400000000000000000000001371360037132600171450ustar00rootroot00000000000000[Paths] Prefix = . Plugins = . Binaries = . Imports = . Qml2Imports = . LibraryExecutables = . desktop-2.6.2/admin/win/nsi/welcome.bmp000066400000000000000000004556561360037132600200310ustar00rootroot00000000000000BM[6(:x[σσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊԏщσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσԏՑӎσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσчӍІσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊҋτσІҌІσσσσσσσσσσчҌЅσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅՑՑщσԏՑӎσσσσσσσσσσԐՑӌσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσӎԐЅσҋՑҊσσσσσσσσσσӌԐщσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅІσστчσσσσσσσσσσστчσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσστԐՑчσӍՑӌσσσσσσσσσσԏՑҋσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЄԐՑчσӍՑӌσσσσσσσσσσԏՑҋσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅІσστчσσσσσσσσσσσЄчσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσστӌҋσσҊӍЄσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσщՑՑІτՑՑҋσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅԏӎσσӌԏІσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЄщЄσσщІσσσσσσσσσσσσσσσщчσσІщσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσӎՑӍσҊՑԐσσσσσσσσσσσσσσчՑՑЅτԐՑҊσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσӍՑҋσщՑԏσσσσσσσσσσσσσσІՑԐτσԏՑщσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅσσσЅσσσσσσσσσσσσσσσσЄτσστЅσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσчҊσσЅщЄσσщІσσчщσσҊӌІστщЅσσЅЄσσστσσЄщЄσσЄσσσσσσσσЅσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσчՑՑӌσԐՑԏσӍՑՑЅщՑՑҊчՑՑԐτӎՑԐτІՑԐЄσԏՑчσԏՑԏσчՑԏσσσσσσӎՑҋσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊՑՑӍτՑՑՑσӎՑՑчҊՑՑҌщՑՑՑЄԏՑՑЄщՑՑІЄՑՑҊσԐՑԐσҊՑԐτσσσσσԐՑӍσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσӌӍЅσщӎщσІӎҋστҌӌЄσӍԐҋσІӍщσσҊчσσчҊσσчӍчσσщІσσσσσσІҊЄσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЄσσσσσσσσσσσστσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσӍԏЅσҊԏщσҊՑԏτσӎӎЄσσσσσҋՑӎσЅԏӎσσσσσσщԏщσЅԏӌσσσσσσҋԐщσІԏҌσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅՑՑҊσԏՑӎσԏՑՑчІՑՑщσσσσσԐՑՑЅҊՑՑІσσσσσӎՑӎσҋՑՑτσσσσσԐՑӍσҌՑՑσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҋӍЄσчӍІσҊՑԏτσҋӌσσσσσσҊՑӍσЄӍӌσσσσσσчӍчσЄӍҊσσσσσσщӎІσЅӍщσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσщҋσσІҋЅστҋчσσσσσσσσσσЅҋІσσσσσσσσσσσσσστҋчσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅՑՑщσԏՑӎσҋՑՑσσσσσσσσσσӌՑԐσσσσσσσσσσσσσσҊՑՑτσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσԏԐІσҋՑҊσчՑӎσσσσσσσσσσщՑӍσσσσσσσσσσσσσσІԐӎσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊҋЄσІҋЅσЄҊчσσҊҊσσІҋЄσσІτσσІЅσσҊҋЅσЅҋЅσσчЅσσЄЅσστІσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσщՑՑӍσԐՑԐσӍՑՑІщՑՑҋЄՑՑӎσҋՑԏσчՑՑЄчՑՑӎσԐՑԐσҊՑԐЄЄԐՑчσӎՑҋσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσщՑՑӍτՑՑԐσӎՑՑІҊՑՑҋЄՑՑӎσҋՑԏσчՑՑЄщՑՑԏσԐՑԐσҋՑՑЄЄՑՑчσӎՑҌσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊҌЄσчӌІσЅҌҊσσҊҋτσчҋЄσσчЄσσІЅσσҋӍІσІҋІσσщІσσІчσστчσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅІσστчτσσЅτσσЄЅσσσЅσσσЅσσσщщσστЅσσσσσσσчЅσσσσσσστσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσІՑՑҋσԏՑԏσҋՑԐЄІԐՑчσԏՑҋσҌՑԏσӍՑՑҊЄԐՑҋσҊԐҊσӌՑՑІτԐԐІσӍՑҊσчԐӍσЄԏԏτσӍԐІσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊՑՑӎЅՑՑՑτӎՑՑІщՑՑҋЅՑՑԏσԏՑՑЅԏՑՑӍчՑՑӎσӎՑӎσԏՑՑҊІՑՑҊσԐՑӍσҋՑՑσчՑՑІσՑՑҋσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЄӎԐчσҌԐҋσчԏӌσσӌӍЄσҋӎчσчӎҋσҊՑԐчσӍԏІσІӌІσщԐԏЄσҊҋτσчҌЅσЄҌчσσҋҋσσщҌЄσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσστσσσσσσσσσσσσσσσσσσσσσσσσЄτσσσσσσσσσσστσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσІԐՑҊσӍՑӌσчԐӍστӎӎЅσҊӎІσщԏҌστӌҋσσӎԐчσІӍІσҊՑԏЄσҌӍЄσщӎІσҊՑӎτσҌҌσσҊӍЅσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҋՑՑԏЅՑՑՑτӎՑՑІщՑՑҋσՑՑӍσԏՑՑЅщՑՑІчՑՑӎσӎՑӎσԏՑՑҊІՑՑҊσԐՑӍσԐՑՑччՑՑІσՑՑҋσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσчՑՑҌσԏՑӎσҊՑԏτЅԐԐІσӍՑщσҋՑԏσЅԏӎσЄԐՑҊσщԐҊσҌՑՑІσӎԏЅσҌԐщσӌՑԐЄτӎӎτσӌԏІσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅчσσσІσσσЄσσσστσσσσσσσЄσσσσσσσσЄσσσσσσσІЄσσσσσσσσσσσІτσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσστӍӎІσщӎщσЅӌҊσσҊҋσσІҋЄσІӌщσσчІσσІщσσІҌІσσҊІσσІщσσЅщτσσщЅσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҋՑՑӎЄՑՑՑτӎՑՑІщՑՑҊσԐՑӍσԏՑՑЅчՑՑЅτԐՑҊσԐՑԐσҋՑՑЄЅՑՑчσԏՑӌσҋՑԐσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊՑՑӎτԐՑԐσӌՑՑЅІՑՑщσԏՑҌσԏՑՑЄІՑԐЄσԏՑщσԏՑԏσщՑԐστԐՑІσӎՑҋσщՑԏσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊҌЅσІҊЅσσщІσσІчσστІσσЅҊІσσЄτσστЅσσЄщЅσσЅτσστЄσσσЅσσσЅσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσщҊτσЅщЅσσчЅσσЅІσσσЅσστщЅσЄҋҊσσσЄσσσЅσσσσσσστЄσσσЅσσσσσσσччσσσЅσσσσσσσҊчσστЄσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσщՑՑӍτԐՑԐσҌՑԐЅІՑՑщσԏՑҋσӎՑԐτӍՑՑҋσԏՑчσҌՑӌσσσσστԐՑІσӍՑҊσσσσσҊՑՑҊσԏՑщσσσσσӌՑՑщτԐՑІσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҋՑՑԏЄՑՑՑτӎՑՑІщՑՑҊσՑՑӍσԐՑՑЅԏՑՑӌτԐՑҊσӎՑӎσσσσσЅՑՑщσԏՑӌσσσσσҌՑՑҋσԐՑҋσσσσσӎՑՑҊЄՑՑщσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЄӎԏчσҊӎщσІӍҋσσҋҌτσчҋЅσчӎҊσчԏӎЅσІщσσЄҊЅσσσσσσчщσσЅҊτσσσσσЅӍӍЄσІҊσσσσσσІԏӍτσчщσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσστЄσσЄчτσσσσσσστσσσЄσσσЄσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅЄσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσІԐՑщЄԐՑԐτЅӎҋσЅԐՑчσԏՑҋσҌՑԏσЄӎӍσσҌӎЅσщԏщσЅӎҌσЅԐԐчσҊԏчσσσσστӍӍτσσσσσσσσσҊՑԐІσӌӎЅσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊՑՑӎчՑՑՑІҋՑՑσҊՑՑӌІՑՑԐσԐՑՑЅщՑՑІЄՑՑҋσӎՑӎσҋՑՑτщՑՑӌσԐՑӍσσσσσчՑՑчσσσσσσσσσӎՑՑҋЅՑՑҊσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅԐՑщτԐՑԏσЅӎҊσЅԐԐІσӎՑҊσҋՑӎστӍӌσσҋӎЅσчӎчσЅӎҋσЄԏԐІσщӎІσσσσσσӍӌσσσσσσσσσσҊՑԐІσҋӍЄσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσστσστІτσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЄσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσστӎԏІσҊԏщσІӎӌστӍӎЅσҋԏчσщԏҋσσҊщσσҋӍЅσщӍщσЅӍҋσσҋӌЄσщӍІστҋчσσҊҊσσӌԏчσЅҋІσσσσσσщҊσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊՑՑӎЄՑՑՑσӎՑՑчҊՑՑҌІՑՑԐσԐՑՑЅщՑՑЅчՑՑӍσՑՑԐσӍՑՑччՑՑҋτՑՑԏσҋՑԐσчՑՑІчՑՑԏσӍՑԏσσσσσЅՑՑщσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσчՑՑҋσԐՑԏσӌՑՑЅчՑՑҊτԐՑӍσӎՑԐτЅԐԏτЅՑՑҋσԏՑԏσҊՑԐЅЅՑՑщσԏՑӍσчՑӍσЅԐԐЄЅԐՑӌσҊՑҌσσσσσσԏԐІσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσІчσσЄчτσσчЅσσІІσσЄчσσσчЄσσσσσσЅчσστІτσσІЄσσЅІσστІσσσσσσσσσσσЅчσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσщҋτσІҊЅσЄҊчσσщҊσσчҋЅσЅҋчσσщчσσчҊτσσІσσσҊчσσчщσσЅщτστҊІσЅӍӍЄστІσσщӍҊσσЅЄσσσσσσσσσσσσσσσІчσστІσσσІσσσЅЄσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσщՑՑӌτԐՑԐσӍՑՑІщՑՑҋЅՑՑԏσԏՑՑЄҋՑՑчІՑՑӍσӍՑӍσҌՑՑІІՑՑҊσԐՑӎσӍՑՑЄӍՑՑӍσԏՑҊЅՑՑՑччՑԐτσσσσσσσσσσσσσчՑՑчσԏՑҊσҋՑӎσІՑԐЄσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσщՑՑӍτՑՑԐσӎՑՑІҊՑՑҋЅՑՑԏσԏՑՑЅҋՑՑщчՑՑӍσӍՑӍσӌՑՑІчՑՑҋτԐՑӎσӍՑՑЄӎՑՑӍσԐՑҊЅՑՑՑчщՑՑЄσσσσσσσσσσσσσчՑՑщσԐՑҋσҌՑԏσчՑՑЅσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҋӌЅσчӌІσЅҌҊσσҋҋτσчҋЅσЅҋчστҋҊσσҊҌЅστщτστҋщσσщҊσσІҋЅστҊІσІӎӎЅσЅчσσҊԏҌσσчІσσσσσσσσσσσσσσσщщσσЅчσσσчЄσσчІσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅІσσσІσσσІЄσσЅЅσστІσσσІτσσЅЄσσЄІσσσσσσσσσσσσσσσσЅσσЄҊІσσщщσσЅчσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσІՑՑҋσԏՑӎσҋՑԐЄІՑՑщτԐՑӍσӍՑԏτщՑԐІЅԐՑҋσҊԐҊσІԐӍσσӎԐЅσӎՑҌσԏՑՑчҌՑՑҋЅՑՑӍσщԐҋσЅԐӎσσσσσσσσσσІԐӍστԏԏЄσӌԐчσщԐҌσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊՑՑӎЄՑՑՑσԏՑՑчҊՑՑӌІՑՑԐσԐՑՑЅҌՑՑщчՑՑӎσӎՑӎσҊՑՑτЅՑՑщτՑՑԏτՑՑՑҊӎՑՑӎщՑՑԐσӍՑԏσщՑՑЅσσσσσσσσσҋՑՑσІՑՑчσՑՑҌσӌՑԐσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЄԏԐчσҌԐҋσщԐӎσЄӎԏЅσӌԐщσҊԐӌσЅԏӎττӎԐчσІӌІστҌщσσҊҋσσҊӎчσӌՑԐЅщՑՑщτӎՑҊσЅӌІστҋҊσσσσσσσσσσЄҌщσσҋҋσσчӌЄσЅӌчσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЄσσσττσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅԏԐчσҋԐҋσчԐӍσЄӎԏІσӍԐҊσҊԐӍσІԏӎЄσӎԏчσҋԐҊσЄӍҊσσӍӎЅσҋԏчσчԏӌσЅԏԏЅτԏՑҊσІӍчστӌҋσσҋӍЄσӍՑҌσЅӍҊσσҋҌσσҋԏІσЅӍчσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊՑՑӎЄՑՑՑσԏՑՑчҊՑՑӌІՑՑԐσԐՑՑЅҌՑՑщчՑՑӎσՑՑՑσҋՑՑτщՑՑҋτՑՑԏσӎՑՑЅҊՑՑҋщՑՑԐσӍՑԏσщՑՑЅЅՑՑҊІՑՑՑτҋՑՑσІՑՑчЅՑՑӎσӍՑԐσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσІՑՑҊσԏՑӎσҋՑԐЄІՑՑщτԏՑҌσӌՑԏσчՑԐЅЄԐՑҊσӍՑӍσІԏӍσЅԐՑчσӎՑҌσҊՑԏσІԐԐІЅԐՑӍσчԐҊσЅԏӍσσӎԐЅτԐՑԏσІԏӌστӎӎЄσӎՑщσчԐҋσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЄЅσσσІσσσІτσσЅЅσσσЅσσσЅσσσЄτσσσЄσσσЅσσσσσσστЄσσσЅσσστσσσττσσЅчσσσσσσσσσσσσσσσЄчτσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҋӌЅσчӍчσЅӍҊσσҋҋτσщӍІσІӍщστҋҊσσщҋЄσІҌІσЄҋщσσщҊσσІҋЅσЄҋчσσҋҋσσЅщσστщЅσσчІσσІщσσЅщτσσσσσσччσσЅщσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσщՑՑӍτՑՑԐσӎՑՑІҊՑՑҋЅՑՑԏσԐՑՑЅҋՑՑщІՑՑӍσԐՑԐσӌՑՑІчՑՑҋτԐՑӎσӍՑՑЅҊՑՑҊσԐՑҋσӌՑԏσщՑՑЄЄՑՑщσԏՑӌσσσσσІՑՑІσԐՑҋσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσщՑՑӌσԐՑԐσӍՑՑІщՑՑҋЄՑՑӎσԏՑԐЄҋՑՑчЅՑՑӌσԏՑԏσҋՑՑЅІՑՑҊσԐՑӎσӌՑԐЄщՑՑщσԏՑщσҋՑӍσІՑԐττԐՑчσӍՑҋσσσσσЅԐՑЅσԏՑҊσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσщҊτσІҊЅστҊчσσщҊσσІҊЄσЄҊІσσщчσσчҊτσЄщЅσσщІσσІчσσЅщτσσщЅσσччσσσЅσσσЅσσσЅτσστז5ˁݯύL؛σσЅσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσчщσσЄщЄσσщЅσσІчσσЅщτστщЅσσчІσσЅчσστчτσσчЅσσЅІσστІσσσІЄσσЅЅσστІσσІҋчσστσ؛zύܦσσσσσσσσσσσστσσσЄσσστσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσчՑՑҌσԐՑԏσӍՑՑЅчՑՑҊЄԐՑӎσӎՑԐτҊՑՑІЅՑՑҌσԏՑԏσҋՑՑЅІՑՑщσԏՑӍσҌՑԐτІՑՑІτԐՑҋτԐՑՑЅЈLVчσσσσσσσσԏՑчσҋՑҌσчՑԏσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊՑՑӎτՑՑՑσӎՑՑчҊՑՑҌЅՑՑԏσԐՑՑЅҌՑՑщІՑՑӍσՑՑԐσӍՑՑччՑՑҋτՑՑԏσӎՑՑЅщՑՑщЅՑՑӍЅՑՑՑ/UЅσσσσστՑՑҊσӎՑӎσҊՑՑτσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσστӍӎІσҊӎщσІӎҌστӍӍЅσҋӎчσчӎҊσЄӍҌσσҋӍЅσщӍщσЅӍҋσσҋӌЄσщӍІσЅӍҊσσҋҋσσщҌЅσҋٟڠσσσσσІҊσσЅҊЅσσҊчσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσστЄσσσЄσσστσσσστσσστσσσЄσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσ;oЅσσσσσσσσσσσσσσσσσσσσσσσσσчЅσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅԐՑщσӎՑӍσҊՑԏτЅԐՑчσԏՑҋσҋՑӎσІԐԏЅτԏԐщσҌՑҌσчԐԏτЄԏԐІσӌԐҊσщՑӎσЅԏԏЄσҋӎщΉӍσσσσσσσσσσσσσσσσσσσσσσσԏՑՑЅτӍӍτσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊՑՑӎЄՑՑՑσԏՑՑчҊՑՑӌІՑՑԐσԐՑՑЅӌՑՑҊчՑՑӎσՑՑՑσӍՑՑчщՑՑҋЄՑՑԏσӎՑՑЅҊՑՑщσՑוՓσσσσσσσσσσσσσσσσσσσσσЅՑՑՑҊчՑՑчσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅԐՑщσӎՑӍσҊՑԏτЅԐԐІσӎՑҋσҋՑӎσчԐԐЅτԏՑщσҌՑҌσчԐԏτЄԏԐІσӍՑҊσчԐӍσЅԏԏЅσՒזσσσσσσσσσσσσσσσσσσσσσӎՑԐЅσӍӌσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσστσσσЄσσστσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσІԐσσσσσσσσσσσσσσσσσσσσσІЄσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσστӍӎІσҊӎщσІӎҋστӍӍЅσҋӎчσчԏҋσЄӍҌσσҋٚC۪̈́tݧччҊσσІҊЄσҊԐӎτσщщσӖщσσσσσσσσσσσσσσσчݧoڧ̈́>ՒσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҊՑՑӎτՑՑՑσӎՑՑчҊՑՑҌІՑՑԐσԐՑՑЅҌՑՑҌKآީщσԏՑӌσՑՑՑщІՑՑVҔ[ީ ט֔זڟ9zѓσσσσσσσσσσσσσٞӘEІσσσσσσσσσσσσσσσσσσσσσσσσσσσσчՑՑҌσԐՑԏσӍՑՑЅчՑՑҊτԐՑӍσӎՑԐτҊՒ]ޱؙӍՑҊσԏՑՑІЅԐܥ̃؜σӌՑҋσσσσσσσ֔i7σσσσσσσσσσךݯFσσσσσσσσσσσσσσσσσσσσσσσσσσσσчщσσЄщτσσчЅσσІчσσЄчσσσчЄσ֔jЅσσЄҊІσσЄύԏσσσσЄσσσσσσσσσσщfӎσσσσσσσЄj֔σσσσσσσσσσσσσσσσσσσσσσσσσσщҋτσІҊЅστҊчσσІчσστІσσЅҊІݧߵҋσσІτσσRۢσЄЅσσσІσσЄҊчσσЅЅσσσזѓσσσσσσҋߴݦσσσσσσσσσσσσσσσσσσσσσσσσщՑՑӌσԐՑԐσӍՑՑІІՑՑщσԏՑҋσԏՑLӎҊՑԏσҌךττԐՑчσӎՑҋσӍՑՑІЅՑՑЅσσσІ֝ٚσσσσӎ.σσσσσσσσσσσσσσσσσσσσσσσщՑՑӍτՑՑԐσӎՑՑІчՑՑщσԏՑҋσԏ5ԑՑԐσeזՑЄЄՑՑщσӎՑӌσӎՑՑІЅՑՑІσσσστЏأσσσҊݧσσσσσσσσσσσσσσσσσσσσσσσҋӌЅσчӍчσЅӍҊσσщҊσσЅщσσؙסчЅЅӍчІσσІчσσЄщτσЅҌҊσσІІσσσσσσЄݮ֕σσآזσσσσσσσσσσσσσσσσσσσσσσЅІσσσЅσσσЅτσσЄЅσστІσЅHσ.ٚσσσσσσσσσσσσσσσσσσσσσσσσσσσӍ}σFЅσσσσσσσσσσσσσσσσσσσσІՑՑҋσӎՑӎσҋՑԐЄІԐՑщτԐՑӍXؙ۩oσЅԐӎσσӎԐЅσҋԐщσІԏӍστԏԏЄσσσσσσσݧԐVσσσσσσσσσσσσσσσσσσσσҊՑՑӎЄՑՑՑσԏՑՑчҊՑՑӌІՑՑ֕֝ՒσщՑՑЅЅՑՑҊσԏՑӍσҌՑՑσІՑՑчσσσσσσσσڨҊσσσσσσσσσσσσσσσσσσσЄԏԐчσҌԐҋσщԐӎσЅԏԐІσӌԐeԙS߫߫eYІστҋҊσσҊҌτσчӌІσЅӍҊσσҋҋσσσσσσσσσٞ\߫ݧ?ѓ^σσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσҌσσσσστڟҊσσσσσσστЄσσσσσσσσσσσσσσσσσσσσσσσڟσσσσσσҌσσσσσσσσσσσσσσσσσσσЄԏԐчσҌԐҋσщԐӎσЄӎԏЅσӍݧLІσҊԏҊσщԐԏ҉ܫ՛ՑԏτЄӍҋσІԐՑҊσчӌЅσЄҌщσσҋҋσσчӌЅσσσσσS۪чσσσσσσσσσ5ٝσσσσσσσσσσσσσσσσσσҊՑՑӎЄՑՑՑσԏՑՑчҊՑՑӌІՑszՑӎσՑՑՑσԏՑՑҊҍLՑՑщҋՑՑІӌՑՑԐσԏՑӍσҋՑՑσчՑՑчσՑՑҌσσσσσזҊσσσσσσσσσσσjdσσσσσσσσσσσσσσσσσσІՑՑҋσԏՑӎσҋՑԐЄІՑՑщτԏް֔ՑҊσӎՑӍσӌՑՑІσ>؜ՑՑЅІԐԏτҊՑՑӎσҋԐщσІԐӍσЄԏԏЄσӌԐчσσσσσσ߬#σσσσσσσσσσσσчڧσσσσσσσσσσσσσσσσσσσЅІσσσІσσσІτσσЅЅσσσmτЅσσσЅσσσчЅσστЅҊІσσσσσσчщτσσσσσσσσσσσσσσσσσσσσσσστσσσσσσσσσσσσσmσσσσσσσσσσσσσσσσσσσҋӌЅσчӌІσЅҌҊσσҋҋτσщۡщҋЄσІҋІσЄҋщσσщ՜τщЅσσҊчσσщҊτσЄщτσσщІσσІІσσІҊτστҊЅσσԚӖσσσσσσщЅσЅӎӎЅσۣσІчσσσσσσσσσσσσσσσщՑՑӍτՑՑԐσӎՑՑІҊՑՑҋЅՑ֕ՑՑӍσԐՑԐσӌՑՑІчՑ̂ӍՑԏσҊՑՑІІՑՑҋσӎՑӌσҋՑԐτЅՑՑІτԐՑӌσӍՑԐσщѓxσσσσσҋՑԏσӍՑՑӍσٝЄՑՑщσσσσσσσσσσσσσσщՑՑӌσԐՑԐσӍՑՑІщՑՑҋЅՑ֔ՑՑӌσԐՑԐσҌՑՑІІՑ̂ӌՑӎσҊՑՑЅІՑՑҋσӎՑҌσҋՑԐτЅՑՑЅσԐՑҋσӌՑԏσщѓwσσσσσҊՑԏσӍՑՑӌσٜτԐՑчσσσσσσσσσσσσσσσщҋτσІҊЅσЄҊчσσщҊσσІۡчҊτσЅҊЅσσҊчσσч՛σІτσσчІσσІщσσσІσσσчЅσσЅЅσσЄчσσσчЄσσԙӖσσσσσσІτσЄҌҌЄσۢσЄЅσσσσσσσσσσσσσσσσчщσσЄщτσσчЅσσІчσσЅmЄІσστІσσσІЅσσЄσЅσσσЅЄσσЄЅσσσЅσσσЄσσσσσσσσЅσσσЅσσσσσσσσστσσσσσσσmσστσσσЄσσσσσσσσσσσчՑՑҌσԐՑԏσӌՑՑЅчՑՑҊЄԐޱ֔ՑҋσԏՑӎσҊՑԐЅЅEؙՑԏσщՑԐЅЅԐՑщσӍՑҋσщՑԏσЄԐԐЅσԏՑҊσҋՑԏσч߬#σσσσщՑӎσЅԐԐЄчڨσԏՑІσӌՑҊσσσσσσσσσσҊՑՑӎЄՑՑՑσӎՑՑчҊՑՑҌЅՑszՑӍσՑՑԐσӍՑՑчӍHՑՑσҋՑՑчІՑՑҋσԐՑӎσҌՑՑЄІՑՑчτՑՑӍσӍՑԐσ؛щσσσҌՑԐσІՑՑІldЄՑՑщσԏՑӍσσσσσσσσσστӍӎІσҊԏщσІӎӌστӍӍЅσҋܥKІσщӍщσЅӍҋч۪ҕӍчστҌҊσσҊҌЄσчӌІσЄҌщσσщщσσчҌЅσЅҌчσU۪чσστҊІσσщщ5ٝσчҊσσЅҊЄσσσσσσσσσσσστσσσσσσσσσσσσσσσστ|ҌσσσσσσڟчσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσٞσσσσσσҌσσσσσσσσσσσσσσσσσσσЅԐՑщσӍՑӌσҊՑԏτЅԐԐІσԏՑiԚV%߫c^ҋσЅԏӎτσӎԏІσҊԏщσІԏӌστӎӎЄσҌԏчσчԏҋٞ`;߫?ѓ^σσσσσσщӎчσЅӎҋστӎԏЄσҊՑՑӎЄՑՑՑσԏՑՑчҊՑՑӌІՑՑ֖֝֔σҋՑՑччՑՑҋσԐՑԏσӌՑՑЅщՑՑщτՑՑӍσӎՑՑڨҊσσσσσσԏՑӍσҋՑՑτчՑՑщσЅԐՑщσӎՑӍσҊՑԏτІԐԐчσӎՑҋXט۩lσІԐԏττԏԐІσҋԐҊσІԏӍσЄӎԏЄσӌԐчσщԐ߭%֕XσσσσσσσщԏчσЅӎҋστӎӎЄσστЄσσσЄσσστσσσστσσστσЅHσ.ٚσσσσσσσσσσσσσσσσσσσσσσσσσσσӍ}σHЅσσσσσσσσσσσσσσσσσσσστӍӎІσщӎщσІӎҋστӍӍЅσҋӎчσٚأӍҊЅӎҌҊσσҊҌЄσІҋЅστҋчσσҊҋσσчҋЄσцݯٚЅσ٤זҊчσσӌӍЅσЅҊЄσσσσσσщщσσҊՑՑӎτՑՑՑσӎՑՑчҊՑՑҌЅՑՑԏσԐ7ՓՑՑЅjזՑІІՑՑҋσԐՑӎσҌՑՑЄчՑՑщτՑՑӍτӘ۪ՑӎσԑݧщՑՑЅщՑՑӍσԏՑӍσσσσσІՑՑчσчՑՑҌσԐՑԏσӍՑՑЅчՑՑҊЄԐՑӍσӎՑLӎҌՑԐτҍךЅЅԐՑщσӎՑӌσҊՑԐσЅՑՑІσԏՑӍ՜ڠՑҌσщٚCσІՑԏσІՑՑҋσӌՑҊσσσσσЄԐԐЅσσчщσσЅщЄστщІσσІчσσЅщτστщЅݧҋσσІЄσσRۢσЄЅσσσІσσσІτσσЄЄσσσחҔσЄσσσЄҋިσσστσσσІчσσσЄσσσσσσσστσσσщҊτσЅҊЅστҊІσσчщσσІҊЄσЅҊІσ֔lчσσσщЅσσчύՑчσστІσσσІЄσσІІσчhӎσІσσσЅЄЄj֔ЅσσσЅЄσσЄЅσσщӍчσІӌҋστҋҋτσщՑՑӌσԐՑԐσӍՑՑЅщՑՑҊЅՑՑӎσԏՑՑЄҋՒ]߲ךӎՑҋσӌՑԐЄчՑݦѐ۠σԏՑӍσҊՑԐτІՑڟnEσӍՑӍσщՑԐτЄۣPτҋՑӍσчՑԐττԐՑчІՑՑՑЅԐՑՑҊҋՑՑӌІщՑՑӍτՑՑԐσӎՑՑІҊՑՑҌЅՑՑԏσԏՑՑЅҋՑՑҌKآީҋσԏՑҌσӍՑՑЄщՑՑYҕ[ުטךۡީ =ʀ֟ҋσӎՑӎσҋՑՑЄЅՑՑۢӘ[֔ҋσӍՑӎσчՑՑЄЄՑՑщчՑՑՑІՑՑՑҋӌՑՑӍІσҋӌЅσщӍчσЅӍҊσσҋӌτσщӌІσІӌщστҋҊσσщؘÄ۪́rݧчҊҋτσЄщσσЄҋчσσҊҊσӖԏσσЅҊЅσσҊІσσІчσσҊ߫rڧ͉FՒσЅщσστщЄσσчІσσІчσσӌԐҋσщԐӎτЄӍӍЅσσσσσσЄчЄσσσσσσЄЄσστІσσσІτσσЄτσσσЄσσσσσσσЄσσσσσσσσσσσσσσσσσσσІԐσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσЅщЄστщІσσІІσσσσσσЄԐՑԐτІԏӌσІԐՑщτԐՑӍσӍՑԏσчՑԐЅЄԐՑҊσσσσσщՑԐЄσӎԏЅσҋԐчσσσσσσσσσσҋזԏՑчσҊԐҊσσσσστԏԐІσӌՑщσщՑӍσσσσσσσσσσσσσσσσσσσӍԏЅЅԐՑԐτԏՑՑчщՑՑҊЄσσσσчՑՑՑІҋՑՑσҊՑՑӌІՑՑԐσԐՑՑЅҌՑՑҊчՑՑӎσσσσσӍՑՑчЅՑՑщσԐՑӍσσσσσσσσσσσщޱזЅՑՑҌσԏՑԏσσσσσІՑՑҊσԐՑӍσӍՑՑσσσσσσσσσσσσσσσσσσЅՑՑҊщՑՑՑІՑՑՑҋӍՑՑӎчσσσσσԏՑӎσЅӍҊσЅԏԐІσӍԐщσҊԐӌσІԏӎЄσӎԐчσσσσσІԏӍσσҋӌτσчӍЅσσσσσσσσσσσσЅΉ֔σσҋӍЅσчӍчσσσσσσҋӌτσщӍІσЅӍщσσσσσσσσσσσσσσσσσσσҊӌτЄԏՑӎσӌՑԐІчԐՑчσσσσσσσЅσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσ&1" craft $env:TARGET -i craft craft $env:TARGET --install-deps owncloud-client build_script: - ps: | craft $env:TARGET --no-cache --src-dir $env:APPVEYOR_BUILD_FOLDER owncloud-client after_build: - ps: | craft $env:TARGET --src-dir $env:APPVEYOR_BUILD_FOLDER --package owncloud-client on_finish: - ps: | Get-ChildItem $env:USERPROFILE\.craft\* | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name } test_script: - ps: | craft $env:TARGET --src-dir $env:APPVEYOR_BUILD_FOLDER --test owncloud-client environment: matrix: - TARGET: windows-msvc2017_32-cl APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - TARGET: windows-msvc2017_64-cl APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 artifacts: - path: binaries/* desktop-2.6.2/client.qrc000066400000000000000000000034551360037132600151670ustar00rootroot00000000000000 resources/dialog-close.png resources/dialog-ok.png resources/dialog-cancel.png resources/folder-sync.png resources/folder-sync@2x.png resources/task-ongoing.png resources/view-refresh.png resources/warning.png resources/warning@2x.png resources/settings.png resources/settings@2x.png resources/activity.png resources/activity@2x.png resources/network.png resources/network@2x.png resources/lock-http.png resources/lock-http@2x.png resources/lock-https.png resources/lock-https@2x.png resources/account.png resources/more.svg resources/delete.png resources/close.svg resources/bell.svg resources/link.svg resources/files.svg resources/folder-grey.png resources/state-error.svg resources/state-warning.svg resources/folder.svg resources/network.svg resources/settings.svg resources/public-white.svg resources/public.svg resources/confirm.svg resources/copy.svg resources/state-sync.svg resources/add.png resources/state-info.svg desktop-2.6.2/cmake/000077500000000000000000000000001360037132600142535ustar00rootroot00000000000000desktop-2.6.2/cmake/modules/000077500000000000000000000000001360037132600157235ustar00rootroot00000000000000desktop-2.6.2/cmake/modules/AddAppIconMacro.cmake000066400000000000000000000166261360037132600216640ustar00rootroot00000000000000SET(WINDRES_EXECUTABLE_BASE ${CMAKE_RC_COMPILER}) # This macro is taken from kdelibs/cmake/modules/KDE4Macros.cmake. # # Copyright (c) 2006-2009 Alexander Neundorf, # Copyright (c) 2006, 2007, Laurent Montel, # Copyright (c) 2007 Matthias Kretz # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file [in KDE repositories]. # adds application icon to target source list # for detailed documentation see the top of FindKDE4Internal.cmake macro (KDE4_ADD_APP_ICON appsources pattern) set (_outfilename ${CMAKE_CURRENT_BINARY_DIR}/${appsources}) if (WIN32) if(NOT WINCE) find_program(PNG2ICO_EXECUTABLE NAMES png2ico) else(NOT WINCE) find_program(PNG2ICO_EXECUTABLE NAMES png2ico PATHS ${HOST_BINDIR} NO_DEFAULT_PATH ) endif(NOT WINCE) find_program(WINDRES_EXECUTABLE NAMES ${WINDRES_EXECUTABLE_BASE}) if(MSVC) set(WINDRES_EXECUTABLE TRUE) endif(MSVC) if (PNG2ICO_EXECUTABLE AND WINDRES_EXECUTABLE) string(REPLACE "*" "([0123456789]*)" pattern_rx "${pattern}") file(GLOB files "${pattern}") foreach (it ${files}) string(REGEX REPLACE "${pattern_rx}" "\\1" fn "${it}") if (fn MATCHES ".*16.*" ) list (APPEND _icons ${it}) endif (fn MATCHES ".*16.*") if (fn MATCHES ".*32.*" ) list (APPEND _icons ${it}) endif (fn MATCHES ".*32.*") if (fn MATCHES ".*48.*" ) list (APPEND _icons ${it}) endif (fn MATCHES ".*48.*") if (fn MATCHES ".*64.*" ) list (APPEND _icons ${it}) endif (fn MATCHES ".*64.*") if (fn MATCHES ".*128.*" ) list (APPEND _icons ${it}) endif (fn MATCHES ".*128.*") if (fn MATCHES ".*256.*" ) list (APPEND _icons ${it}) endif (fn MATCHES ".*256.*") if (fn MATCHES ".*512.*" ) list (APPEND _icons ${it}) endif (fn MATCHES ".*512.*") if (fn MATCHES ".*1024.*" ) list (APPEND _icons ${it}) endif (fn MATCHES ".*1024.*") endforeach (it) if (_icons) add_custom_command(OUTPUT ${_outfilename}.ico ${_outfilename}.rc COMMAND ${PNG2ICO_EXECUTABLE} ARGS --rcfile ${_outfilename}.rc ${_outfilename}.ico ${_icons} DEPENDS ${PNG2ICO_EXECUTABLE} ${_icons} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) if (MINGW) add_custom_command(OUTPUT ${_outfilename}_res.o COMMAND ${WINDRES_EXECUTABLE} ARGS -i ${_outfilename}.rc -o ${_outfilename}_res.o --include-dir=${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${WINDRES_EXECUTABLE} ${_outfilename}.rc WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) list(APPEND ${appsources} ${_outfilename}_res.o) else(MINGW) list(APPEND ${appsources} ${_outfilename}.rc) endif(MINGW) else(_icons) message(STATUS "Unable to find a related icon that matches pattern ${pattern} for variable ${appsources} - application will not have an application icon!") endif(_icons) else(PNG2ICO_EXECUTABLE AND WINDRES_EXECUTABLE) message(WARNING "Unable to find the png2ico or windres utilities - application will not have an application icon!") endif(PNG2ICO_EXECUTABLE AND WINDRES_EXECUTABLE) endif(WIN32) if (APPLE) file(GLOB_RECURSE files "${pattern}") file(MAKE_DIRECTORY ${appsources}.iconset) # List from: # https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW4 foreach (it ${files}) if (it MATCHES ".*icon-16.*") configure_file(${it} ${appsources}.iconset/icon_16x16.png COPYONLY) elseif (it MATCHES ".*icon-32.*") configure_file(${it} ${appsources}.iconset/icon_16x16@2x.png COPYONLY) configure_file(${it} ${appsources}.iconset/icon_32x32.png COPYONLY) elseif (it MATCHES ".*icon-64.*") configure_file(${it} ${appsources}.iconset/icon_32x32@2x.png COPYONLY) elseif (it MATCHES ".*icon-128.*") configure_file(${it} ${appsources}.iconset/icon_128x128.png COPYONLY) elseif (it MATCHES ".*icon-256.*") configure_file(${it} ${appsources}.iconset/icon_128x128@2x.png COPYONLY) configure_file(${it} ${appsources}.iconset/icon_256x256.png COPYONLY) elseif (it MATCHES ".*icon-512.*") configure_file(${it} ${appsources}.iconset/icon_256x256@2x.png COPYONLY) configure_file(${it} ${appsources}.iconset/icon_512x512.png COPYONLY) elseif (it MATCHES ".*icon-1024.*") configure_file(${it} ${appsources}.iconset/icon_512x512@2x.png COPYONLY) endif() endforeach (it) # Copy the sidebar icons in the main app bundle for the FinderSync extension to pick. # https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Finder.html#//apple_ref/doc/uid/TP40014214-CH15-SW15 foreach (it ${files}) if (it MATCHES ".*sidebar-16.*") configure_file(${it} ${appsources}.iconset/sidebar_16x16.png COPYONLY) elseif (it MATCHES ".*sidebar-32.*") configure_file(${it} ${appsources}.iconset/sidebar_18x18.png COPYONLY) configure_file(${it} ${appsources}.iconset/sidebar_16x16@2x.png COPYONLY) elseif (it MATCHES ".*sidebar-64.*") configure_file(${it} ${appsources}.iconset/sidebar_18x18@2x.png COPYONLY) elseif (it MATCHES ".*sidebar-128.*") configure_file(${it} ${appsources}.iconset/sidebar_32x32.png COPYONLY) elseif (it MATCHES ".*sidebar-256.*") configure_file(${it} ${appsources}.iconset/sidebar_32x32@2x.png COPYONLY) endif() endforeach (it) add_custom_command(OUTPUT ${_outfilename}.icns COMMAND echo === Building bundle icns with iconset: COMMAND ls -1 ${appsources}.iconset COMMAND iconutil -c icns -o ${_outfilename}.icns ${appsources}.iconset DEPENDS ${files} ) # This will register the icon into the bundle set(MACOSX_BUNDLE_ICON_FILE ${appsources}.icns) # Append the icns file to the sources list so it will be a dependency to the # main target list(APPEND ${appsources} ${_outfilename}.icns) # Install the icon into the Resources dir in the bundle set_source_files_properties(${_outfilename}.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources) endif(APPLE) endmacro (KDE4_ADD_APP_ICON) desktop-2.6.2/cmake/modules/AddCMockaTest.cmake000066400000000000000000000023731360037132600213400ustar00rootroot00000000000000# - ADD_CHECK_TEST(test_name test_source linklib1 ... linklibN) # Copyright (c) 2007 Daniel Gollub # Copyright (c) 2007-2010 Andreas Schneider # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. enable_testing() include(CTest) if(CMAKE_COMPILER_IS_GNUCC AND NOT MINGW) set(CMAKE_C_FLAGS_PROFILING "-g -O0 -Wall -W -Wshadow -Wunused-variable -Wunused-parameter -Wunused-function -Wunused -Wno-system-headers -Wwrite-strings -fprofile-arcs -ftest-coverage" CACHE STRING "Profiling Compiler Flags") set(CMAKE_SHARED_LINKER_FLAGS_PROFILING " -fprofile-arcs -ftest-coverage" CACHE STRING "Profiling Linker Flags") set(CMAKE_MODULE_LINKER_FLAGS_PROFILING " -fprofile-arcs -ftest-coverage" CACHE STRING "Profiling Linker Flags") set(CMAKE_EXEC_LINKER_FLAGS_PROFILING " -fprofile-arcs -ftest-coverage" CACHE STRING "Profiling Linker Flags") endif(CMAKE_COMPILER_IS_GNUCC AND NOT MINGW) function (ADD_CMOCKA_TEST _testName _testSource) add_executable(${_testName} ${_testSource}) target_link_libraries(${_testName} ${ARGN}) add_test(${_testName} ${CMAKE_CURRENT_BINARY_DIR}/${_testName}) endfunction (ADD_CMOCKA_TEST) desktop-2.6.2/cmake/modules/COPYING-CMAKE-SCRIPTS000066400000000000000000000024571360037132600207310ustar00rootroot00000000000000Redistribution 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. desktop-2.6.2/cmake/modules/CheckCCompilerFlagSSP.cmake000066400000000000000000000017551360037132600227300ustar00rootroot00000000000000# - Check whether the C compiler supports a given flag in the # context of a stack checking compiler option. # CHECK_C_COMPILER_FLAG_SSP(FLAG VARIABLE) # # FLAG - the compiler flag # VARIABLE - variable to store the result # # This actually calls check_c_source_compiles. # See help for CheckCSourceCompiles for a listing of variables # that can modify the build. # Copyright (c) 2006, Alexander Neundorf, # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. include(CheckCSourceCompiles) function(CHECK_C_COMPILER_FLAG_SSP _FLAG _RESULT) set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}") set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}") check_c_source_compiles("int main(int argc, char **argv) { char buffer[256]; return buffer[argc]=0;}" ${_RESULT}) set(CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}") endfunction(CHECK_C_COMPILER_FLAG_SSP) desktop-2.6.2/cmake/modules/CheckPrototypeDefinition.c.in000066400000000000000000000010021360037132600234410ustar00rootroot00000000000000@CHECK_PROTOTYPE_DEFINITION_HEADER@ static void cmakeRequireSymbol(int dummy, ...) { (void) dummy; } static void checkSymbol(void) { #ifndef @CHECK_PROTOTYPE_DEFINITION_SYMBOL@ cmakeRequireSymbol(0, &@CHECK_PROTOTYPE_DEFINITION_SYMBOL@); #endif } @CHECK_PROTOTYPE_DEFINITION_PROTO@ { return @CHECK_PROTOTYPE_DEFINITION_RETURN@; } #ifdef __CLASSIC_C__ int main() { int ac; char*av[]; #else int main(int ac, char *av[]) { #endif checkSymbol(); if (ac > 1000) { return *av[0]; } return 0; } desktop-2.6.2/cmake/modules/CheckPrototypeDefinition.cmake000066400000000000000000000100541360037132600237010ustar00rootroot00000000000000# - Check if the protoype we expect is correct. # check_prototype_definition(FUNCTION PROTOTYPE RETURN HEADER VARIABLE) # FUNCTION - The name of the function (used to check if prototype exists) # PROTOTYPE- The prototype to check. # RETURN - The return value of the function. # HEADER - The header files required. # VARIABLE - The variable to store the result. # Example: # check_prototype_definition(getpwent_r # "struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)" # "NULL" # "unistd.h;pwd.h" # SOLARIS_GETPWENT_R) # The following variables may be set before calling this macro to # modify the way the check is run: # # CMAKE_REQUIRED_FLAGS = string of compile command line flags # CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) # CMAKE_REQUIRED_INCLUDES = list of include directories # CMAKE_REQUIRED_LIBRARIES = list of libraries to link #============================================================================= # Copyright 2005-2009 Kitware, Inc. # Copyright 2010-2011 Andreas Schneider # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) # get_filename_component(__check_proto_def_dir "${CMAKE_CURRENT_LIST_FILE}" PATH) function(CHECK_PROTOTYPE_DEFINITION _FUNCTION _PROTOTYPE _RETURN _HEADER _VARIABLE) if ("${_VARIABLE}" MATCHES "^${_VARIABLE}$") set(CHECK_PROTOTYPE_DEFINITION_CONTENT "/* */\n") set(CHECK_PROTOTYPE_DEFINITION_FLAGS ${CMAKE_REQUIRED_FLAGS}) if (CMAKE_REQUIRED_LIBRARIES) set(CHECK_PROTOTYPE_DEFINITION_LIBS LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) else() set(CHECK_PROTOTYPE_DEFINITION_LIBS) endif() if (CMAKE_REQUIRED_INCLUDES) set(CMAKE_SYMBOL_EXISTS_INCLUDES "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") else() set(CMAKE_SYMBOL_EXISTS_INCLUDES) endif() foreach(_FILE ${_HEADER}) set(CHECK_PROTOTYPE_DEFINITION_HEADER "${CHECK_PROTOTYPE_DEFINITION_HEADER}#include <${_FILE}>\n") endforeach() set(CHECK_PROTOTYPE_DEFINITION_SYMBOL ${_FUNCTION}) set(CHECK_PROTOTYPE_DEFINITION_PROTO ${_PROTOTYPE}) set(CHECK_PROTOTYPE_DEFINITION_RETURN ${_RETURN}) configure_file("${__check_proto_def_dir}/CheckPrototypeDefinition.c.in" "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckPrototypeDefinition.c" @ONLY) file(READ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckPrototypeDefinition.c _SOURCE) try_compile(${_VARIABLE} ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckPrototypeDefinition.c COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} ${CHECK_PROTOTYPE_DEFINITION_LIBS} CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CHECK_PROTOTYPE_DEFINITION_FLAGS} "${CMAKE_SYMBOL_EXISTS_INCLUDES}" OUTPUT_VARIABLE OUTPUT) if (${_VARIABLE}) set(${_VARIABLE} 1 CACHE INTERNAL "Have correct prototype for ${_FUNCTION}") message(STATUS "Checking prototype ${_FUNCTION} for ${_VARIABLE} - True") file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log "Determining if the prototype ${_FUNCTION} exists for ${_VARIABLE} passed with the following output:\n" "${OUTPUT}\n\n") else () message(STATUS "Checking prototype ${_FUNCTION} for ${_VARIABLE} - False") set(${_VARIABLE} 0 CACHE INTERNAL "Have correct prototype for ${_FUNCTION}") file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log "Determining if the prototype ${_FUNCTION} exists for ${_VARIABLE} failed with the following output:\n" "${OUTPUT}\n\n${_SOURCE}\n\n") endif () endif() endfunction() desktop-2.6.2/cmake/modules/Copyright.txt000066400000000000000000000030571360037132600204410ustar00rootroot00000000000000CMake - Cross Platform Makefile Generator Copyright 2000-2009 Kitware, Inc., Insight Software Consortium All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the names of Kitware, Inc., the Insight Software Consortium, nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT HOLDER OR CONTRIBUTORS 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. desktop-2.6.2/cmake/modules/DBusMacros.cmake000066400000000000000000000000001360037132600207150ustar00rootroot00000000000000desktop-2.6.2/cmake/modules/DefineCMakeDefaults.cmake000066400000000000000000000021171360037132600225110ustar00rootroot00000000000000# (c) 2014 Copyright ownCloud GmbH # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING* file. # Always include srcdir and builddir in include path # This saves typing ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY} in # about every subdir # since cmake 2.4.0 set(CMAKE_INCLUDE_CURRENT_DIR ON) # Put the include dirs which are in the source or build tree # before all other include dirs, so the headers in the sources # are prefered over the already installed ones # since cmake 2.4.1 set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON) # Use colored output # since cmake 2.4.0 set(CMAKE_COLOR_MAKEFILE ON) # Define the generic version of the libraries here set(GENERIC_LIB_VERSION "0.1.0") set(GENERIC_LIB_SOVERSION "0") # set -Werror set(CMAKE_ENABLE_WERROR ON) # Set the default build type to release with debug info if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." ) endif (NOT CMAKE_BUILD_TYPE) desktop-2.6.2/cmake/modules/DefineCompilerFlags.cmake000066400000000000000000000070031360037132600225670ustar00rootroot00000000000000# (c) 2014 Copyright ownCloud GmbH # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING* file. # define system dependent compiler flags include(CheckCCompilerFlag) include(CheckCCompilerFlagSSP) # # Define GNUCC compiler flags # if (${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)") # add -Wconversion ? # cannot be pedantic with sqlite3 directly linked # FIXME Can we somehow not use those flags for sqlite3.* but use them for the rest of csync? if (NOT USE_OUR_OWN_SQLITE3) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -pedantic -pedantic-errors") endif() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wshadow -Wmissing-prototypes") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-format-attribute") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-format-attribute -D_GNU_SOURCE") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__STDC_FORMAT_MACROS=1") set(CSYNC_STRICT OFF CACHE BOOL "Strict error checking, enabled -Werror and friends") if (CSYNC_STRICT) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") endif(CSYNC_STRICT) # with -fPIC check_c_compiler_flag("-fPIC" WITH_FPIC) if (WITH_FPIC AND NOT WIN32) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") endif (WITH_FPIC AND NOT WIN32) check_c_compiler_flag_ssp("-fstack-protector" WITH_STACK_PROTECTOR) if (WITH_STACK_PROTECTOR AND NOT WIN32) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector") endif (WITH_STACK_PROTECTOR AND NOT WIN32) if (CMAKE_BUILD_TYPE) string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER) if (CMAKE_BUILD_TYPE_LOWER MATCHES "(release|relwithdebinfo|minsizerel)") check_c_compiler_flag("-Wp,-D_FORTIFY_SOURCE=2" WITH_FORTIFY_SOURCE) if (WITH_FORTIFY_SOURCE) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wp,-D_FORTIFY_SOURCE=2") endif (WITH_FORTIFY_SOURCE) endif() endif() endif (${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)") if (UNIX AND NOT WIN32) # # Check for large filesystem support # if (CMAKE_SIZEOF_VOID_P MATCHES "8") # with large file support execute_process( COMMAND getconf LFS64_CFLAGS OUTPUT_VARIABLE _lfs_CFLAGS ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE ) else (CMAKE_SIZEOF_VOID_P MATCHES "8") # with large file support execute_process( COMMAND getconf LFS_CFLAGS OUTPUT_VARIABLE _lfs_CFLAGS ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE ) endif (CMAKE_SIZEOF_VOID_P MATCHES "8") if (_lfs_CFLAGS) string(REGEX REPLACE "[\r\n]" " " "${_lfs_CFLAGS}" "${${_lfs_CFLAGS}}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_lfs_CFLAGS}") endif (_lfs_CFLAGS) else(UNIX AND NOT WIN32) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_FILE_OFFSET_BITS=64") endif (UNIX AND NOT WIN32) if (MSVC) # Use secure functions by default and suppress warnings about #"deprecated" functions set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_NONSTDC_NO_WARNINGS=1 /D _CRT_SECURE_NO_WARNINGS=1") endif (MSVC) desktop-2.6.2/cmake/modules/DefineInstallationPaths.cmake000066400000000000000000000073071360037132600235100ustar00rootroot00000000000000# (c) 2014 Copyright ownCloud GmbH # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING* file. if (UNIX) # Suffix for Linux SET(LIB_SUFFIX CACHE STRING "Define suffix of directory name (32/64)" ) SET(EXEC_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Base directory for executables and libraries" ) SET(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share" CACHE PATH "Base directory for files which go to share/" ) SET(DATA_INSTALL_PREFIX "${SHARE_INSTALL_PREFIX}" CACHE PATH "The parent directory where applications can install their data") # The following are directories where stuff will be installed to SET(BIN_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH "The ${APPLICATION_SHORTNAME} binary install dir (default prefix/bin)" ) SET(SBIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/sbin" CACHE PATH "The ${APPLICATION_SHORTNAME} sbin install dir (default prefix/sbin)" ) SET(LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is prefix/lib)" ) SET(LIBEXEC_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/libexec" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is prefix/libexec)" ) SET(LIB_PRIVATE_INSTALL_DIR "${LIB_INSTALL_DIR}" CACHE PATH "The subdirectory relative to the install prefix where private libs are installed" ) SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The subdirectory to the header prefix (default prefix/include)" ) SET(DATA_INSTALL_DIR "${DATA_INSTALL_PREFIX}" CACHE PATH "The parent directory where applications can install their data (default prefix/share/${APPLICATION_SHORTNAME})" ) SET(HTML_INSTALL_DIR "${DATA_INSTALL_PREFIX}/doc/HTML" CACHE PATH "The HTML install dir for documentation (default data/doc/html)" ) SET(ICON_INSTALL_DIR "${DATA_INSTALL_PREFIX}/icons" CACHE PATH "The icon install dir (default data/icons/)" ) SET(SOUND_INSTALL_DIR "${DATA_INSTALL_PREFIX}/sounds" CACHE PATH "The install dir for sound files (default data/sounds)" ) SET(LOCALE_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/locale" CACHE PATH "The install dir for translations (default prefix/share/locale)" ) SET(XDG_APPS_DIR "${SHARE_INSTALL_PREFIX}/applications/" CACHE PATH "The XDG apps dir" ) SET(XDG_DIRECTORY_DIR "${SHARE_INSTALL_PREFIX}/desktop-directories" CACHE PATH "The XDG directory" ) IF(NOT "${EXEC_INSTALL_PREFIX}" STREQUAL "/usr") SET(SYSCONFDIR_INSTALL_PREFIX "${EXEC_INSTALL_PREFIX}") endif() SET(SYSCONF_INSTALL_DIR "${SYSCONFDIR_INSTALL_PREFIX}/etc" CACHE PATH "The ${APPLICATION_SHORTNAME} sysconfig install dir (default prefix/etc)" ) SET(MAN_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/man" CACHE PATH "The ${APPLICATION_SHORTNAME} man install dir (default prefix/man)" ) SET(INFO_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/info" CACHE PATH "The ${APPLICATION_SHORTNAME} info install dir (default prefix/info)" ) endif (UNIX) if (WIN32) # Same same set(SHARE_INSTALL_PREFIX "share" CACHE PATH "-") set(BIN_INSTALL_DIR "." CACHE PATH "-") set(SBIN_INSTALL_DIR "." CACHE PATH "-") set(LIB_INSTALL_DIR "lib" CACHE PATH "-") set(INCLUDE_INSTALL_DIR "include" CACHE PATH "-") set(HTML_INSTALL_DIR "doc/HTML" CACHE PATH "-") set(ICON_INSTALL_DIR "." CACHE PATH "-") set(SOUND_INSTALL_DIR "." CACHE PATH "-") set(LOCALE_INSTALL_DIR "lang" CACHE PATH "-") set(SYSCONF_INSTALL_DIR "config" CACHE PATH "-") set(MAN_INSTALL_DIR "man" CACHE PATH "-") endif (WIN32) desktop-2.6.2/cmake/modules/DefinePlatformDefaults.cmake000066400000000000000000000015571360037132600233240ustar00rootroot00000000000000# (c) 2014 Copyright ownCloud GmbH # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING* file. # Set system vars if (CMAKE_SYSTEM_NAME MATCHES "Linux") set(LINUX TRUE) endif(CMAKE_SYSTEM_NAME MATCHES "Linux") if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD") set(FREEBSD TRUE) set(BSD TRUE) endif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD") if (CMAKE_SYSTEM_NAME MATCHES "OpenBSD") set(OPENBSD TRUE) set(BSD TRUE) endif (CMAKE_SYSTEM_NAME MATCHES "OpenBSD") if (CMAKE_SYSTEM_NAME MATCHES "NetBSD") set(NETBSD TRUE) set(BSD TRUE) endif (CMAKE_SYSTEM_NAME MATCHES "NetBSD") if (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)") set(SOLARIS TRUE) endif (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)") if (CMAKE_SYSTEM_NAME MATCHES "OS2") set(OS2 TRUE) endif (CMAKE_SYSTEM_NAME MATCHES "OS2") desktop-2.6.2/cmake/modules/DeployQt5.cmake000066400000000000000000000371101360037132600205550ustar00rootroot00000000000000# - Functions to help assemble a standalone Qt5 executable. # A collection of CMake utility functions useful for deploying # Qt5 executables. # # The following functions are provided by this module: # write_qt5_conf # resolve_qt5_paths # fixup_qt5_executable # install_qt5_plugin_path # install_qt5_plugin # install_qt5_executable # Requires CMake 2.6 or greater because it uses function and # PARENT_SCOPE. Also depends on BundleUtilities.cmake. # # WRITE_QT5_CONF( ) # Writes a qt.conf file with the into . # # RESOLVE_QT5_PATHS( []) # Loop through list and if any don't exist resolve them # relative to the (if supplied) or the CMAKE_INSTALL_PREFIX. # # FIXUP_QT5_EXECUTABLE( [ ]) # Copies Qt plugins, writes a Qt configuration file (if needed) and fixes up a # Qt5 executable using BundleUtilities so it is standalone and can be # drag-and-drop copied to another machine as long as all of the system # libraries are compatible. # # should point to the executable to be fixed-up. # # should contain a list of the names or paths of any Qt plugins # to be installed. # # will be passed to BundleUtilities and should be a list of any already # installed plugins, libraries or executables to also be fixed-up. # # will be passed to BundleUtilities and should contain and directories # to be searched to find library dependencies. # # allows an custom plugins directory to be used. # # will force a qt.conf file to be written even if not needed. # # INSTALL_QT5_PLUGIN_PATH(plugin executable copy installed_plugin_path_var ) # Install (or copy) a resolved to the default plugins directory # (or ) relative to and store the result in # . # # If is set to TRUE then the plugins will be copied rather than # installed. This is to allow this module to be used at CMake time rather than # install time. # # If is set then anything installed will use this COMPONENT. # # INSTALL_QT5_PLUGIN(plugin executable copy installed_plugin_path_var ) # Install (or copy) an unresolved to the default plugins directory # (or ) relative to and store the result in # . See documentation of INSTALL_QT5_PLUGIN_PATH. # # INSTALL_QT5_EXECUTABLE( [ ]) # Installs Qt plugins, writes a Qt configuration file (if needed) and fixes up # a Qt5 executable using BundleUtilities so it is standalone and can be # drag-and-drop copied to another machine as long as all of the system # libraries are compatible. The executable will be fixed-up at install time. # is the COMPONENT used for bundle fixup and plugin installation. # See documentation of FIXUP_QT5_BUNDLE. #============================================================================= # Copyright 2011 Mike McQuaid # Copyright 2013 Mihai Moldovan # CMake - Cross Platform Makefile Generator # Copyright 2000-2011 Kitware, Inc., Insight Software Consortium # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # * Neither the names of Kitware, Inc., the Insight Software Consortium, # nor the names of their contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "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 COPYRIGHT # HOLDER OR CONTRIBUTORS 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. # The functions defined in this file depend on the fixup_bundle function # (and others) found in BundleUtilities.cmake include(BundleUtilities) set(DeployQt5_cmake_dir "${CMAKE_CURRENT_LIST_DIR}") set(DeployQt5_apple_plugins_dir "PlugIns") function(write_qt5_conf qt_conf_dir qt_conf_contents) set(qt_conf_path "${qt_conf_dir}/qt.conf") message(STATUS "Writing ${qt_conf_path}") file(WRITE "${qt_conf_path}" "${qt_conf_contents}") endfunction() function(resolve_qt5_paths paths_var) set(executable_path ${ARGV1}) set(paths_resolved) foreach(path ${${paths_var}}) if(EXISTS "${path}") list(APPEND paths_resolved "${path}") else() if(${executable_path}) list(APPEND paths_resolved "${executable_path}/${path}") else() list(APPEND paths_resolved "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${path}") endif() endif() endforeach() set(${paths_var} ${paths_resolved} PARENT_SCOPE) endfunction() function(fixup_qt5_executable executable) set(qtplugins ${ARGV1}) set(libs ${ARGV2}) set(dirs ${ARGV3}) set(plugins_dir ${ARGV4}) set(request_qt_conf ${ARGV5}) message(STATUS "fixup_qt5_executable") message(STATUS " executable='${executable}'") message(STATUS " qtplugins='${qtplugins}'") message(STATUS " libs='${libs}'") message(STATUS " dirs='${dirs}'") message(STATUS " plugins_dir='${plugins_dir}'") message(STATUS " request_qt_conf='${request_qt_conf}'") if(QT_LIBRARY_DIR) list(APPEND dirs "${QT_LIBRARY_DIR}") endif() if(QT_BINARY_DIR) list(APPEND dirs "${QT_BINARY_DIR}") endif() if(APPLE) set(qt_conf_dir "${executable}/Contents/Resources") set(executable_path "${executable}") set(write_qt_conf TRUE) if(NOT plugins_dir) set(plugins_dir "${DeployQt5_apple_plugins_dir}") endif() else() get_filename_component(executable_path "${executable}" PATH) if(NOT executable_path) set(executable_path ".") endif() set(qt_conf_dir "${executable_path}") set(write_qt_conf ${request_qt_conf}) endif() foreach(plugin ${qtplugins}) set(installed_plugin_path "") install_qt5_plugin("${plugin}" "${executable}" 1 installed_plugin_path) list(APPEND libs ${installed_plugin_path}) endforeach() foreach(lib ${libs}) if(NOT EXISTS "${lib}") message(FATAL_ERROR "Library does not exist: ${lib}") endif() endforeach() resolve_qt5_paths(libs "${executable_path}") if(write_qt_conf) set(qt_conf_contents "[Paths]\nPlugins = ${plugins_dir}") write_qt5_conf("${qt_conf_dir}" "${qt_conf_contents}") endif() fixup_bundle("${executable}" "${libs}" "${dirs}") endfunction() function(install_qt5_plugin_path plugin executable copy installed_plugin_path_var) set(plugins_dir ${ARGV4}) set(component ${ARGV5}) set(configurations ${ARGV6}) if(EXISTS "${plugin}") if(APPLE) if(NOT plugins_dir) set(plugins_dir "${DeployQt5_apple_plugins_dir}") endif() set(plugins_path "${executable}/Contents/${plugins_dir}") else() get_filename_component(plugins_path "${executable}" PATH) if(NOT plugins_path) set(plugins_path ".") endif() if(plugins_dir) set(plugins_path "${plugins_path}/${plugins_dir}") endif() endif() set(plugin_group "") get_filename_component(plugin_path "${plugin}" PATH) get_filename_component(plugin_parent_path "${plugin_path}" PATH) get_filename_component(plugin_parent_dir_name "${plugin_parent_path}" NAME) get_filename_component(plugin_name "${plugin}" NAME) string(TOLOWER "${plugin_parent_dir_name}" plugin_parent_dir_name) if("${plugin_parent_dir_name}" STREQUAL "plugins") get_filename_component(plugin_group "${plugin_path}" NAME) set(${plugin_group_var} "${plugin_group}") endif() set(plugins_path "${plugins_path}/${plugin_group}") if(${copy}) file(MAKE_DIRECTORY "${plugins_path}") file(COPY "${plugin}" DESTINATION "${plugins_path}") else() if(configurations AND (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)) set(configurations CONFIGURATIONS ${configurations}) else() unset(configurations) endif() install(FILES "${plugin}" DESTINATION "${plugins_path}" ${configurations} ${component}) endif() set(${installed_plugin_path_var} "${plugins_path}/${plugin_name}" PARENT_SCOPE) endif() endfunction() function(install_qt5_plugin plugin executable copy installed_plugin_path_var) set(plugins_dir ${ARGV4}) set(component ${ARGV5}) if(EXISTS "${plugin}") install_qt5_plugin_path("${plugin}" "${executable}" "${copy}" "${installed_plugin_path_var}" "${plugins_dir}" "${component}") else() #string(TOUPPER "QT_${plugin}_PLUGIN" plugin_var) set(plugin_release) set(plugin_debug) set(plugin_tmp_path) set(plugin_find_path "${Qt5Core_DIR}/../../../plugins/") get_filename_component(plugin_find_path "${plugin_find_path}" REALPATH) set(plugin_find_release_filename "lib${plugin}.dylib") set(plugin_find_debug_filename "lib${plugin}_debug.dylib") file(GLOB_RECURSE pluginlist "${plugin_find_path}" "${plugin_find_path}/*/lib*.dylib") foreach(found_plugin ${pluginlist}) get_filename_component(curname "${found_plugin}" NAME) if("${curname}" STREQUAL "${plugin_find_release_filename}") set(plugin_tmp_release_path "${found_plugin}") endif() if("${curname}" STREQUAL "${plugin_find_debug_filename}") set(plugin_tmp_debug_path "${found_plugin}") endif() endforeach() if((NOT DEFINED plugin_tmp_release_path OR NOT EXISTS "${plugin_tmp_release_path}") AND (NOT DEFINED plugin_tmp_debug_PATH OR NOT EXISTS "${plugin_tmp_debug_path}")) message(WARNING "Qt plugin \"${plugin}\" not recognized or found.") endif() if(EXISTS "${plugin_tmp_release_path}") set(plugin_release "${plugin_tmp_release_path}") elseif(EXISTS "${plugin_tmp_debug_path}") set(plugin_release "${plugin_tmp_debug_path}") endif() if(EXISTS "${plugin_tmp_debug_path}") set(plugin_debug "${plugin_tmp_debug_path}") elseif(EXISTS "${plugin_tmp_release_path}") set(plugin_debug "${plugin_tmp_release_path}") endif() if(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) install_qt5_plugin_path("${plugin_release}" "${executable}" "${copy}" "${installed_plugin_path_var}_release" "${plugins_dir}" "${component}" "Release|RelWithDebInfo|MinSizeRel") install_qt5_plugin_path("${plugin_debug}" "${executable}" "${copy}" "${installed_plugin_path_var}_debug" "${plugins_dir}" "${component}" "Debug") if(CMAKE_BUILD_TYPE MATCHES "^Debug$") set(${installed_plugin_path_var} ${${installed_plugin_path_var}_debug}) else() set(${installed_plugin_path_var} ${${installed_plugin_path_var}_release}) endif() else() install_qt5_plugin_path("${plugin_release}" "${executable}" "${copy}" "${installed_plugin_path_var}" "${plugins_dir}" "${component}") endif() endif() set(${installed_plugin_path_var} ${${installed_plugin_path_var}} PARENT_SCOPE) endfunction() function(install_qt5_executable executable) set(qtplugins ${ARGV1}) set(libs ${ARGV2}) set(dirs ${ARGV3}) set(plugins_dir ${ARGV4}) set(request_qt_conf ${ARGV5}) set(component ${ARGV6}) if(QT_LIBRARY_DIR) list(APPEND dirs "${QT_LIBRARY_DIR}") endif() if(QT_BINARY_DIR) list(APPEND dirs "${QT_BINARY_DIR}") endif() if(component) set(component COMPONENT ${component}) else() unset(component) endif() get_filename_component(executable_absolute "${executable}" ABSOLUTE) if(EXISTS "${QT_QTCORE_LIBRARY_RELEASE}") gp_file_type("${executable_absolute}" "${QT_QTCORE_LIBRARY_RELEASE}" qtcore_type) elseif(EXISTS "${QT_QTCORE_LIBRARY_DEBUG}") gp_file_type("${executable_absolute}" "${QT_QTCORE_LIBRARY_DEBUG}" qtcore_type) endif() if(qtcore_type STREQUAL "system") set(qt_plugins_dir "") endif() if(QT_IS_STATIC) message(WARNING "Qt built statically: not installing plugins.") else() foreach(plugin ${qtplugins}) message(STATUS "trying to install plugin ${plugin}") set(installed_plugin_paths "") install_qt5_plugin("${plugin}" "${executable}" 0 installed_plugin_paths "${plugins_dir}" "${component}") list(APPEND libs ${installed_plugin_paths}) endforeach() endif() resolve_qt5_paths(libs "") install(CODE "include(\"${DeployQt5_cmake_dir}/DeployQt5.cmake\") set(BU_CHMOD_BUNDLE_ITEMS TRUE) FIXUP_QT5_EXECUTABLE(\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${executable}\" \"\" \"${libs}\" \"${dirs}\" \"${plugins_dir}\" \"${request_qt_conf}\")" ${component} ) endfunction() desktop-2.6.2/cmake/modules/ECMAddAppIcon.cmake000066400000000000000000000441221360037132600212170ustar00rootroot00000000000000#.rst: # ECMAddAppIcon # ------------- # # Add icons to executable files and packages. # # :: # # ecm_add_app_icon( # ICONS [ [...]] # [SIDEBAR_ICONS [ [...]] # Since 5.49 # [OUTFILE_BASENAME ]) # Since 5.49 # ) # # The given icons, whose names must match the pattern:: # # -.png # # will be added to the executable target whose sources are specified by # ```` on platforms that support it (Windows and Mac OS X). # Other icon files are ignored but on Mac SVG files can be supported and # it is thus possible to mix those with png files in a single macro call. # # ```` is a numeric pixel size (typically 16, 32, 48, 64, 128 or 256). # ```` can be any other text. See the platform notes below for any # recommendations about icon sizes. # # ``SIDEBAR_ICONS`` can be used to add Mac OS X sidebar # icons to the generated iconset. They are used when a folder monitored by the # application is dragged into Finder's sidebar. Since 5.49. # # ``OUTFILE_BASENAME`` will be used as the basename for the icon file. If # you specify it, the icon file will be called ``.icns`` on Mac OS X # and ``.ico`` on Windows. If you don't specify it, it defaults # to ``.``. Since 5.49. # # # Windows notes # * Icons are compiled into the executable using a resource file. # * Icons may not show up in Windows Explorer if the executable # target does not have the ``WIN32_EXECUTABLE`` property set. # * One of the tools png2ico (See :find-module:`FindPng2Ico`) or # icotool (see :find-module:`FindIcoTool`) is required. # * Supported sizes: 16, 24, 32, 48, 64, 128, 256, 512 and 1024. # # Mac OS X notes # * The executable target must have the ``MACOSX_BUNDLE`` property set. # * Icons are added to the bundle. # * If the ksvg2icns tool from KIconThemes is available, .svg and .svgz # files are accepted; the first that is converted successfully to .icns # will provide the application icon. SVG files are ignored otherwise. # * The tool iconutil (provided by Apple) is required for bitmap icons. # * Supported sizes: 16, 32, 64, 128, 256 (and 512, 1024 after OS X 10.9). # * At least a 128x128px (or an SVG) icon is required. # * Larger sizes are automatically used to substitute for smaller sizes on # "Retina" (high-resolution) displays. For example, a 32px icon, if # provided, will be used as a 32px icon on standard-resolution displays, # and as a 16px-equivalent icon (with an "@2x" tag) on high-resolution # displays. That is why you should provide 64px and 1024px icons although # they are not supported anymore directly. Instead they will be used as # 32px@2x and 512px@2x. ksvg2icns handles this internally. # * This function sets the ``MACOSX_BUNDLE_ICON_FILE`` variable to the name # of the generated icns file, so that it will be used as the # ``MACOSX_BUNDLE_ICON_FILE`` target property when you call # ``add_executable``. # * Sidebar icons should typically provided in 16, 32, 64, 128 and 256px. # # Since 1.7.0. #============================================================================= # Copyright 2014 Alex Merry # Copyright 2014 Ralf Habacker # Copyright 2006-2009 Alexander Neundorf, # Copyright 2006, 2007, Laurent Montel, # Copyright 2007 Matthias Kretz # # 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. include(CMakeParseArguments) function(ecm_add_app_icon appsources) set(options) set(oneValueArgs OUTFILE_BASENAME) set(multiValueArgs ICONS SIDEBAR_ICONS) cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if(NOT ARG_ICONS) message(FATAL_ERROR "No ICONS argument given to ecm_add_app_icon") endif() if(ARG_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Unexpected arguments to ecm_add_app_icon: ${ARG_UNPARSED_ARGUMENTS}") endif() if(APPLE) find_program(KSVG2ICNS NAMES ksvg2icns) foreach(icon ${ARG_ICONS}) get_filename_component(icon_full ${icon} ABSOLUTE) get_filename_component(icon_type ${icon_full} EXT) # do we have ksvg2icns in the path and did we receive an svg (or compressed svg) icon? if(KSVG2ICNS AND (${icon_type} STREQUAL ".svg" OR ${icon_type} STREQUAL ".svgz")) # convert the svg icon to an icon resource execute_process(COMMAND ${KSVG2ICNS} "${icon_full}" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} RESULT_VARIABLE KSVG2ICNS_ERROR) if(${KSVG2ICNS_ERROR}) message(AUTHOR_WARNING "ksvg2icns could not generate an OS X application icon from ${icon}") else() # install the icns file we just created get_filename_component(icon_name ${icon_full} NAME_WE) set(MACOSX_BUNDLE_ICON_FILE ${icon_name}.icns PARENT_SCOPE) set(${appsources} "${${appsources}};${CMAKE_CURRENT_BINARY_DIR}/${icon_name}.icns" PARENT_SCOPE) set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${icon_name}.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources) # we're done now return() endif() endif() endforeach() endif() _ecm_add_app_icon_categorize_icons("${ARG_ICONS}" "icons" "16;24;32;48;64;128;256;512;1024") if(ARG_SIDEBAR_ICONS) _ecm_add_app_icon_categorize_icons("${ARG_SIDEBAR_ICONS}" "sidebar_icons" "16;32;64;128;256") endif() set(mac_icons # Icons: https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW4 ${icons_at_16px} ${icons_at_32px} ${icons_at_64px} ${icons_at_128px} ${icons_at_256px} ${icons_at_512px} ${icons_at_1024px}) set(mac_sidebar_icons # Sidebar Icons: https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Finder.html#//apple_ref/doc/uid/TP40014214-CH15-SW15 ${sidebar_icons_at_16px} ${sidebar_icons_at_32px} ${sidebar_icons_at_64px} ${sidebar_icons_at_128px} ${sidebar_icons_at_256px}) if (NOT (mac_icons OR mac_sidebar_icons)) message(AUTHOR_WARNING "No icons suitable for use on macOS provided") endif() set(windows_icons ${icons_at_16px} ${icons_at_24px} ${icons_at_32px} ${icons_at_48px} ${icons_at_64px} ${icons_at_128px} ${icons_at_256px} ${icons_at_512px} ${icons_at_1024px}) if (NOT (windows_icons)) message(AUTHOR_WARNING "No icons suitable for use on Windows provided") endif() if (ARG_OUTFILE_BASENAME) set (_outfilebasename "${ARG_OUTFILE_BASENAME}") else() set (_outfilebasename "${appsources}") endif() set (_outfilename "${CMAKE_CURRENT_BINARY_DIR}/${_outfilebasename}") if (WIN32 AND windows_icons) set(saved_CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_FIND_MODULE_DIR}) find_package(Png2Ico) find_package(IcoTool) set(CMAKE_MODULE_PATH "${saved_CMAKE_MODULE_PATH}") function(create_windows_icon_and_rc command args deps) add_custom_command( OUTPUT "${_outfilename}.ico" COMMAND ${command} ARGS ${args} DEPENDS ${deps} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" ) # this bit's a little hacky to make the dependency stuff work file(WRITE "${_outfilename}.rc.in" "IDI_ICON1 ICON DISCARDABLE \"${_outfilename}.ico\"\n") add_custom_command( OUTPUT "${_outfilename}.rc" COMMAND ${CMAKE_COMMAND} ARGS -E copy "${_outfilename}.rc.in" "${_outfilename}.rc" DEPENDS "${_outfilename}.ico" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" ) endfunction() if (IcoTool_FOUND) list(APPEND icotool_args "-c" "-o" "${_outfilename}.ico") # According to https://stackoverflow.com/a/40851713/2886832 # Windows always chooses the first icon above 255px, all other ones will be ignored set(maxSize 0) foreach(size 256 512 1024) if(icons_at_${size}px) set(maxSize "${size}") endif() endforeach() foreach(size 16 24 32 48 64 128 ${maxSize}) if(NOT icons_at_${size}px) continue() endif() set(icotool_icon_arg "") if(size STREQUAL "${maxSize}") # maxSize icon needs to be included as raw png list(APPEND icotool_args "-r") endif() foreach(icon ${icons_at_${size}px}) list(APPEND icotool_args "${icons_at_${size}px}") endforeach() endforeach() create_windows_icon_and_rc(IcoTool::IcoTool "${icotool_args}" "${windows_icons_modern}") set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE) # standard png2ico has no rcfile argument # NOTE: We generally use https://github.com/hiiamok/png2ImageMagickICO # or similar on windows, which is why we provide resolutions >= 256px here. # Standard png2ico will fail with this. elseif(Png2Ico_FOUND AND NOT Png2Ico_HAS_RCFILE_ARGUMENT AND windows_icons) set(png2ico_args) list(APPEND png2ico_args "${_outfilename}.ico") list(APPEND png2ico_args "${windows_icons}") create_windows_icon_and_rc(Png2Ico::Png2Ico "${png2ico_args}" "${windows_icons}") set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE) # png2ico from kdewin provides rcfile argument elseif(Png2Ico_FOUND AND windows_icons) add_custom_command( OUTPUT "${_outfilename}.rc" "${_outfilename}.ico" COMMAND Png2Ico::Png2Ico ARGS --rcfile "${_outfilename}.rc" "${_outfilename}.ico" ${windows_icons} DEPENDS ${windows_icons} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" ) set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE) # else none of the supported tools was found else() message(WARNING "Unable to find the png2ico or icotool utilities or icons in matching sizes - application will not have an application icon!") endif() elseif (APPLE AND (mac_icons OR mac_sidebar_icons)) # first generate .iconset directory structure, then convert to .icns format using the Mac OS X "iconutil" utility, # to create retina compatible icon, you need png source files in pixel resolution 16x16, 32x32, 64x64, 128x128, # 256x256, 512x512, 1024x1024 find_program(ICONUTIL_EXECUTABLE NAMES iconutil) if (ICONUTIL_EXECUTABLE) add_custom_command( OUTPUT "${_outfilename}.iconset" COMMAND ${CMAKE_COMMAND} ARGS -E make_directory "${_outfilename}.iconset" ) set(iconset_icons) macro(copy_icon filename sizename type) add_custom_command( OUTPUT "${_outfilename}.iconset/${type}_${sizename}.png" COMMAND ${CMAKE_COMMAND} ARGS -E copy "${filename}" "${_outfilename}.iconset/${type}_${sizename}.png" DEPENDS "${_outfilename}.iconset" "${filename}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" ) list(APPEND iconset_icons "${_outfilename}.iconset/${type}_${sizename}.png") endmacro() # List of supported sizes and filenames taken from: # https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW4 foreach(size 16 32 128 256 512) math(EXPR double_size "2 * ${size}") foreach(file ${icons_at_${size}px}) copy_icon("${file}" "${size}x${size}" "icon") endforeach() foreach(file ${icons_at_${double_size}px}) copy_icon("${file}" "${size}x${size}@2x" "icon") endforeach() endforeach() # List of supported sizes and filenames taken from: # https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Finder.html#//apple_ref/doc/uid/TP40014214-CH15-SW15 foreach(file ${sidebar_icons_at_16px}) copy_icon("${file}" "16x16" "sidebar") endforeach() foreach(file ${sidebar_icons_at_32px}) copy_icon("${file}" "16x16@2x" "sidebar") endforeach() foreach(file ${sidebar_icons_at_32px}) copy_icon("${file}" "18x18" "sidebar") endforeach() foreach(file ${sidebar_icons_at_64px}) copy_icon("${file}" "18x18@2x" "sidebar") endforeach() foreach(file ${sidebar_icons_at_128px}) copy_icon("${file}" "32x32" "sidebar") endforeach() foreach(file ${sidebar_icons_at_256px}) copy_icon("${file}" "32x32@2x" "sidebar") endforeach() # generate .icns icon file add_custom_command( OUTPUT "${_outfilename}.icns" COMMAND ${ICONUTIL_EXECUTABLE} ARGS --convert icns --output "${_outfilename}.icns" "${_outfilename}.iconset" DEPENDS "${iconset_icons}" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" ) # This will register the icon into the bundle set(MACOSX_BUNDLE_ICON_FILE "${_outfilebasename}.icns" PARENT_SCOPE) # Append the icns file to the sources list so it will be a dependency to the # main target set(${appsources} "${${appsources}};${_outfilename}.icns" PARENT_SCOPE) # Install the icon into the Resources dir in the bundle set_source_files_properties("${_outfilename}.icns" PROPERTIES MACOSX_PACKAGE_LOCATION Resources) else() message(STATUS "Unable to find the iconutil utility - application will not have an application icon!") endif() endif() endfunction() macro(_ecm_add_app_icon_categorize_icons icons type known_sizes) set(_${type}_known_sizes) foreach(size ${known_sizes}) set(${type}_at_${size}px) list(APPEND _${type}_known_sizes ${size}) endforeach() foreach(icon ${icons}) get_filename_component(icon_full ${icon} ABSOLUTE) if (NOT EXISTS "${icon_full}") message(AUTHOR_WARNING "${icon_full} does not exist, ignoring") else() get_filename_component(icon_name ${icon} NAME) string(REGEX MATCH "([0-9]+)\\-[^/]+\\.([a-z]+)$" _dummy "${icon_name}") set(size "${CMAKE_MATCH_1}") set(ext "${CMAKE_MATCH_2}") if (NOT (ext STREQUAL "svg" OR ext STREQUAL "svgz")) if (NOT size) message(AUTHOR_WARNING "${icon_full} is not named correctly for ecm_add_app_icon - ignoring") elseif (NOT ext STREQUAL "png") message(AUTHOR_WARNING "${icon_full} is not a png file - ignoring") else() list(FIND _${type}_known_sizes ${size} offset) if (offset GREATER -1) list(APPEND ${type}_at_${size}px "${icon_full}") elseif() message(STATUS "not found ${type}_at_${size}px ${icon_full}") endif() endif() endif() endif() endforeach() endmacro() desktop-2.6.2/cmake/modules/ECMFindModuleHelpers.cmake000066400000000000000000000323441360037132600226310ustar00rootroot00000000000000#.rst: # ECMFindModuleHelpers # -------------------- # # Helper macros for find modules: ecm_find_package_version_check(), # ecm_find_package_parse_components() and # ecm_find_package_handle_library_components(). # # :: # # ecm_find_package_version_check() # # Prints warnings if the CMake version or the project's required CMake version # is older than that required by extra-cmake-modules. # # :: # # ecm_find_package_parse_components( # RESULT_VAR # KNOWN_COMPONENTS [ [...]] # [SKIP_DEPENDENCY_HANDLING]) # # This macro will populate with a list of components found in # _FIND_COMPONENTS, after checking that all those components are in the # list of KNOWN_COMPONENTS; if there are any unknown components, it will print # an error or warning (depending on the value of _FIND_REQUIRED) and call # return(). # # The order of components in is guaranteed to match the order they # are listed in the KNOWN_COMPONENTS argument. # # If SKIP_DEPENDENCY_HANDLING is not set, for each component the variable # __component_deps will be checked for dependent components. # If is listed in _FIND_COMPONENTS, then all its (transitive) # dependencies will also be added to . # # :: # # ecm_find_package_handle_library_components( # COMPONENTS [ [...]] # [SKIP_DEPENDENCY_HANDLING]) # [SKIP_PKG_CONFIG]) # # Creates an imported library target for each component. The operation of this # macro depends on the presence of a number of CMake variables. # # The __lib variable should contain the name of this library, # and __header variable should contain the name of a header # file associated with it (whatever relative path is normally passed to # '#include'). __header_subdir variable can be used to specify # which subdirectory of the include path the headers will be found in. # ecm_find_package_components() will then search for the library # and include directory (creating appropriate cache variables) and create an # imported library target named ::. # # Additional variables can be used to provide additional information: # # If SKIP_PKG_CONFIG, the __pkg_config variable is set, and # pkg-config is found, the pkg-config module given by # __pkg_config will be searched for and used to help locate the # library and header file. It will also be used to set # __VERSION. # # Note that if version information is found via pkg-config, # __FIND_VERSION can be set to require a particular version # for each component. # # If SKIP_DEPENDENCY_HANDLING is not set, the INTERFACE_LINK_LIBRARIES property # of the imported target for will be set to contain the imported # targets for the components listed in __component_deps. # _FOUND will also be set to false if any of the compoments in # __component_deps are not found. This requires the components # in __component_deps to be listed before in the # COMPONENTS argument. # # The following variables will be set: # # ``_TARGETS`` # the imported targets # ``_LIBRARIES`` # the found libraries # ``_INCLUDE_DIRS`` # the combined required include directories for the components # ``_DEFINITIONS`` # the "other" CFLAGS provided by pkg-config, if any # ``_VERSION`` # the value of ``__VERSION`` for the first component that # has this variable set (note that components are searched for in the order # they are passed to the macro), although if it is already set, it will not # be altered # # Note that these variables are never cleared, so if # ecm_find_package_handle_library_components() is called multiple times with # different components (typically because of multiple find_package() calls) then # ``_TARGETS``, for example, will contain all the targets found in any # call (although no duplicates). # # Since pre-1.0.0. #============================================================================= # Copyright 2014 Alex Merry # # 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. include(CMakeParseArguments) macro(ecm_find_package_version_check module_name) if(CMAKE_VERSION VERSION_LESS 2.8.12) message(FATAL_ERROR "CMake 2.8.12 is required by Find${module_name}.cmake") endif() if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.12) message(AUTHOR_WARNING "Your project should require at least CMake 2.8.12 to use Find${module_name}.cmake") endif() endmacro() macro(ecm_find_package_parse_components module_name) set(ecm_fppc_options SKIP_DEPENDENCY_HANDLING) set(ecm_fppc_oneValueArgs RESULT_VAR) set(ecm_fppc_multiValueArgs KNOWN_COMPONENTS DEFAULT_COMPONENTS) cmake_parse_arguments(ECM_FPPC "${ecm_fppc_options}" "${ecm_fppc_oneValueArgs}" "${ecm_fppc_multiValueArgs}" ${ARGN}) if(ECM_FPPC_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Unexpected arguments to ecm_find_package_parse_components: ${ECM_FPPC_UNPARSED_ARGUMENTS}") endif() if(NOT ECM_FPPC_RESULT_VAR) message(FATAL_ERROR "Missing RESULT_VAR argument to ecm_find_package_parse_components") endif() if(NOT ECM_FPPC_KNOWN_COMPONENTS) message(FATAL_ERROR "Missing KNOWN_COMPONENTS argument to ecm_find_package_parse_components") endif() if(NOT ECM_FPPC_DEFAULT_COMPONENTS) set(ECM_FPPC_DEFAULT_COMPONENTS ${ECM_FPPC_KNOWN_COMPONENTS}) endif() if(${module_name}_FIND_COMPONENTS) set(ecm_fppc_requestedComps ${${module_name}_FIND_COMPONENTS}) if(NOT ECM_FPPC_SKIP_DEPENDENCY_HANDLING) # Make sure deps are included foreach(ecm_fppc_comp ${ecm_fppc_requestedComps}) foreach(ecm_fppc_dep_comp ${${module_name}_${ecm_fppc_comp}_component_deps}) list(FIND ecm_fppc_requestedComps "${ecm_fppc_dep_comp}" ecm_fppc_index) if("${ecm_fppc_index}" STREQUAL "-1") if(NOT ${module_name}_FIND_QUIETLY) message(STATUS "${module_name}: ${ecm_fppc_comp} requires ${${module_name}_${ecm_fppc_comp}_component_deps}") endif() list(APPEND ecm_fppc_requestedComps "${ecm_fppc_dep_comp}") endif() endforeach() endforeach() else() message(STATUS "Skipping dependency handling for ${module_name}") endif() list(REMOVE_DUPLICATES ecm_fppc_requestedComps) # This makes sure components are listed in the same order as # KNOWN_COMPONENTS (potentially important for inter-dependencies) set(${ECM_FPPC_RESULT_VAR}) foreach(ecm_fppc_comp ${ECM_FPPC_KNOWN_COMPONENTS}) list(FIND ecm_fppc_requestedComps "${ecm_fppc_comp}" ecm_fppc_index) if(NOT "${ecm_fppc_index}" STREQUAL "-1") list(APPEND ${ECM_FPPC_RESULT_VAR} "${ecm_fppc_comp}") list(REMOVE_AT ecm_fppc_requestedComps ${ecm_fppc_index}) endif() endforeach() # if there are any left, they are unknown components if(ecm_fppc_requestedComps) set(ecm_fppc_msgType STATUS) if(${module_name}_FIND_REQUIRED) set(ecm_fppc_msgType FATAL_ERROR) endif() if(NOT ${module_name}_FIND_QUIETLY) message(${ecm_fppc_msgType} "${module_name}: requested unknown components ${ecm_fppc_requestedComps}") endif() return() endif() else() set(${ECM_FPPC_RESULT_VAR} ${ECM_FPPC_DEFAULT_COMPONENTS}) endif() endmacro() macro(ecm_find_package_handle_library_components module_name) set(ecm_fpwc_options SKIP_PKG_CONFIG SKIP_DEPENDENCY_HANDLING) set(ecm_fpwc_oneValueArgs) set(ecm_fpwc_multiValueArgs COMPONENTS) cmake_parse_arguments(ECM_FPWC "${ecm_fpwc_options}" "${ecm_fpwc_oneValueArgs}" "${ecm_fpwc_multiValueArgs}" ${ARGN}) if(ECM_FPWC_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Unexpected arguments to ecm_find_package_handle_components: ${ECM_FPWC_UNPARSED_ARGUMENTS}") endif() if(NOT ECM_FPWC_COMPONENTS) message(FATAL_ERROR "Missing COMPONENTS argument to ecm_find_package_handle_components") endif() include(FindPackageHandleStandardArgs) find_package(PkgConfig) foreach(ecm_fpwc_comp ${ECM_FPWC_COMPONENTS}) set(ecm_fpwc_dep_vars) set(ecm_fpwc_dep_targets) if(NOT SKIP_DEPENDENCY_HANDLING) foreach(ecm_fpwc_dep ${${module_name}_${ecm_fpwc_comp}_component_deps}) list(APPEND ecm_fpwc_dep_vars "${module_name}_${ecm_fpwc_dep}_FOUND") list(APPEND ecm_fpwc_dep_targets "${module_name}::${ecm_fpwc_dep}") endforeach() endif() if(NOT ECM_FPWC_SKIP_PKG_CONFIG AND ${module_name}_${ecm_fpwc_comp}_pkg_config) pkg_check_modules(PKG_${module_name}_${ecm_fpwc_comp} QUIET ${${module_name}_${ecm_fpwc_comp}_pkg_config}) endif() find_path(${module_name}_${ecm_fpwc_comp}_INCLUDE_DIR NAMES ${${module_name}_${ecm_fpwc_comp}_header} HINTS ${PKG_${module_name}_${ecm_fpwc_comp}_INCLUDE_DIRS} PATH_SUFFIXES ${${module_name}_${ecm_fpwc_comp}_header_subdir} ) find_library(${module_name}_${ecm_fpwc_comp}_LIBRARY NAMES ${${module_name}_${ecm_fpwc_comp}_lib} HINTS ${PKG_${module_name}_${ecm_fpwc_comp}_LIBRARY_DIRS} ) set(${module_name}_${ecm_fpwc_comp}_VERSION "${PKG_${module_name}_${ecm_fpwc_comp}_VERSION}") if(NOT ${module_name}_VERSION) set(${module_name}_VERSION ${${module_name}_${ecm_fpwc_comp}_VERSION}) endif() find_package_handle_standard_args(${module_name}_${ecm_fpwc_comp} FOUND_VAR ${module_name}_${ecm_fpwc_comp}_FOUND REQUIRED_VARS ${module_name}_${ecm_fpwc_comp}_LIBRARY ${module_name}_${ecm_fpwc_comp}_INCLUDE_DIR ${ecm_fpwc_dep_vars} VERSION_VAR ${module_name}_${ecm_fpwc_comp}_VERSION ) mark_as_advanced( ${module_name}_${ecm_fpwc_comp}_LIBRARY ${module_name}_${ecm_fpwc_comp}_INCLUDE_DIR ) if(${module_name}_${ecm_fpwc_comp}_FOUND) list(APPEND ${module_name}_LIBRARIES "${${module_name}_${ecm_fpwc_comp}_LIBRARY}") list(APPEND ${module_name}_INCLUDE_DIRS "${${module_name}_${ecm_fpwc_comp}_INCLUDE_DIR}") set(${module_name}_DEFINITIONS ${${module_name}_DEFINITIONS} ${PKG_${module_name}_${ecm_fpwc_comp}_DEFINITIONS}) if(NOT TARGET ${module_name}::${ecm_fpwc_comp}) add_library(${module_name}::${ecm_fpwc_comp} UNKNOWN IMPORTED) set_target_properties(${module_name}::${ecm_fpwc_comp} PROPERTIES IMPORTED_LOCATION "${${module_name}_${ecm_fpwc_comp}_LIBRARY}" INTERFACE_COMPILE_OPTIONS "${PKG_${module_name}_${ecm_fpwc_comp}_DEFINITIONS}" INTERFACE_INCLUDE_DIRECTORIES "${${module_name}_${ecm_fpwc_comp}_INCLUDE_DIR}" INTERFACE_LINK_LIBRARIES "${ecm_fpwc_dep_targets}" ) endif() list(APPEND ${module_name}_TARGETS "${module_name}::${ecm_fpwc_comp}") endif() endforeach() if(${module_name}_LIBRARIES) list(REMOVE_DUPLICATES ${module_name}_LIBRARIES) endif() if(${module_name}_INCLUDE_DIRS) list(REMOVE_DUPLICATES ${module_name}_INCLUDE_DIRS) endif() if(${module_name}_DEFINITIONS) list(REMOVE_DUPLICATES ${module_name}_DEFINITIONS) endif() if(${module_name}_TARGETS) list(REMOVE_DUPLICATES ${module_name}_TARGETS) endif() endmacro() desktop-2.6.2/cmake/modules/ECMFindModuleHelpersStub.cmake000066400000000000000000000001111360037132600234520ustar00rootroot00000000000000include(${CMAKE_CURRENT_LIST_DIR}/../modules/ECMFindModuleHelpers.cmake) desktop-2.6.2/cmake/modules/FindCMocka.cmake000066400000000000000000000027221360037132600206660ustar00rootroot00000000000000# - Try to find CMocka # Once done this will define # # CMOCKA_ROOT_DIR - Set this variable to the root installation of CMocka # # Read-Only variables: # CMOCKA_FOUND - system has CMocka # CMOCKA_INCLUDE_DIR - the CMocka include directory # CMOCKA_LIBRARIES - Link these to use CMocka # CMOCKA_DEFINITIONS - Compiler switches required for using CMocka # #============================================================================= # Copyright (c) 2011-2012 Andreas Schneider # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # find_path(CMOCKA_INCLUDE_DIR NAMES cmocka.h PATHS ${CMOCKA_ROOT_DIR}/include ) find_library(CMOCKA_LIBRARY NAMES cmocka PATHS ${CMOCKA_ROOT_DIR}/lib ) if (CMOCKA_LIBRARY) set(CMOCKA_LIBRARIES ${CMOCKA_LIBRARIES} ${CMOCKA_LIBRARY} ) endif (CMOCKA_LIBRARY) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(CMocka DEFAULT_MSG CMOCKA_LIBRARIES CMOCKA_INCLUDE_DIR) # show the CMOCKA_INCLUDE_DIR and CMOCKA_LIBRARIES variables only in the advanced view mark_as_advanced(CMOCKA_INCLUDE_DIR CMOCKA_LIBRARIES) desktop-2.6.2/cmake/modules/FindGLib2.cmake000066400000000000000000000023621360037132600204300ustar00rootroot00000000000000# FindGLib2.cmake # GLib2_FOUND - System has GLib2 # GLib2_INCLUDES - The GLib2 include directories # GLib2_LIBRARIES - The libraries needed to use GLib2 # GLib2_DEFINITIONS - Compiler switches required for using GLib2 find_package(PkgConfig) pkg_check_modules(GLib2 QUIET glib-2.0) set(GLib2_DEFINITIONS ${GLib2_CFLAGS_OTHER}) find_path(GLib2_INCLUDE_DIR NAMES glib.h glib-object.h HINTS ${GLib2_INCLUDEDIR} ${GLib2_INCLUDE_DIRS} PATH_SUFFIXES glib-2.0) find_path(GLIBCONFIG_INCLUDE_DIR NAMES glibconfig.h HINTS ${LIBDIR} ${LIBRARY_DIRS} ${_GLib2_LIBRARY_DIR} ${GLib2_INCLUDEDIR} ${GLib2_INCLUDE_DIRS} ${CMAKE_EXTRA_INCLUDES} ${CMAKE_EXTRA_LIBRARIES} PATH_SUFFIXES glib-2.0 glib-2.0/include) list(APPEND GLib2_INCLUDE_DIR ${GLIBCONFIG_INCLUDE_DIR}) find_library(GLib2_LIBRARY NAMES glib-2.0 libglib-2.0 HINTS ${GLib2_LIBDIR} ${GLib2_LIBRARY_DIRS}) set(GLib2_LIBRARIES ${GLib2_LIBRARY}) set(GLib2_INCLUDE_DIRS ${GLib2_INCLUDE_DIR}) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(GLib2 DEFAULT_MSG GLib2_LIBRARY GLib2_INCLUDE_DIR) mark_as_advanced(GLib2_INCLUDE_DIR GLib2_LIBRARY) desktop-2.6.2/cmake/modules/FindGio.cmake000066400000000000000000000033341360037132600202470ustar00rootroot00000000000000# - Try to find Gio # Once done this will define # # GIO_FOUND - system has Gio # GIO_INCLUDE_DIR - the Gio include directory # GIO_LIBRARIES - the libraries needed to use Gio # GIO_DEFINITIONS - Compiler switches required for using Gio IF (GIO_INCLUDE_DIR AND GIO_LIBRARIES) # in cache already SET(Gio_FIND_QUIETLY TRUE) ELSE (GIO_INCLUDE_DIR AND GIO_LIBRARIES) SET(Gio_FIND_QUIETLY FALSE) ENDIF (GIO_INCLUDE_DIR AND GIO_LIBRARIES) IF (NOT WIN32) # use pkg-config to get the directories and then use these values # in the FIND_PATH() and FIND_LIBRARY() calls FIND_PACKAGE(PkgConfig) PKG_CHECK_MODULES(GIO gio-2.0) #MESSAGE(STATUS "DEBUG: Gio include directory = ${GIO_INCLUDE_DIRS}") #MESSAGE(STATUS "DEBUG: Gio link directory = ${GIO_LIBRARY_DIRS}") #MESSAGE(STATUS "DEBUG: Gio CFlags = ${GIO_CFLAGS}") SET(GIO_DEFINITIONS ${GIO_CFLAGS_OTHER}) ENDIF (NOT WIN32) FIND_PATH(GIO_INCLUDE_DIR gio.h PATHS ${GIO_INCLUDEDIR} ${GIO_INCLUDE_DIRS} PATH_SUFFIXES glib-2.0/gio/ ) FIND_LIBRARY(_GioLibs NAMES gio-2.0 libgio-2.0 PATHS ${GIO_LIBDIR} ${GIO_LIBRARY_DIRS} ) SET( GIO_LIBRARIES ${_GioLibs} ) SET( GIO_INCLUDE_DIRS ${GIO_INCLUDE_DIR} ) IF (GIO_INCLUDE_DIR AND GIO_LIBRARIES) SET(GIO_FOUND TRUE) ELSE (GIO_INCLUDE_DIR AND GIO_LIBRARIES) SET(GIO_FOUND FALSE) ENDIF (GIO_INCLUDE_DIR AND GIO_LIBRARIES) IF (GIO_FOUND) IF (NOT Gio_FIND_QUIETLY) MESSAGE(STATUS "Found Gio libraries: ${GIO_LIBRARIES}") MESSAGE(STATUS "Found Gio includes : ${GIO_INCLUDE_DIR}") ENDIF (NOT Gio_FIND_QUIETLY) ELSE (GIO_FOUND) IF (Gio_FIND_REQUIRED) MESSAGE(STATUS "Could NOT find Gio") ENDIF(Gio_FIND_REQUIRED) ENDIF (GIO_FOUND) MARK_AS_ADVANCED(GIO_INCLUDE_DIR _GioLibs) desktop-2.6.2/cmake/modules/FindINotify.cmake000066400000000000000000000021621360037132600211100ustar00rootroot00000000000000# (c) 2014 Copyright ownCloud GmbH # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING* file. # This module defines # INOTIFY_INCLUDE_DIR, where to find inotify.h, etc. # INOTIFY_LIBRARY_DIR, the directory holding the inotify library. # INOTIFY_FOUND, If false, do not try to use inotify. # also defined, but not for general use are # INOTIFY_LIBRARY, where to find the inotify library. find_path(INOTIFY_INCLUDE_DIR sys/inotify.h PATH_SUFFIXES inotify) mark_as_advanced(INOTIFY_INCLUDE_DIR) find_library(INOTIFY_LIBRARY inotify PATH_SUFFIXES lib/inotify) get_filename_component(INOTIFY_LIBRARY_DIR ${INOTIFY_LIBRARY} PATH) mark_as_advanced(INOTIFY_LIBRARY_DIR) # all listed variables are TRUE # handle the QUIETLY and REQUIRED arguments and set INOTIFY_FOUND to TRUE if include(FindPackageHandleStandardArgs) find_package_handle_standard_args(INOTIFY DEFAULT_MSG INOTIFY_INCLUDE_DIR INOTIFY_LIBRARY_DIR) IF(INOTIFY_FOUND) SET(INotify_INCLUDE_DIRS ${INOTIFY_INCLUDE_DIR}) SET(INotify_LIBRARY_DIRS ${INOTIFY_LIBRARY_DIR}) ENDIF(INOTIFY_FOUND) desktop-2.6.2/cmake/modules/FindLibSSH.cmake000066400000000000000000000060661360037132600206220ustar00rootroot00000000000000# - Try to find LibSSH # Once done this will define # # LIBSSH_FOUND - system has LibSSH # LIBSSH_INCLUDE_DIRS - the LibSSH include directory # LIBSSH_LIBRARIES - Link these to use LibSSH # LIBSSH_DEFINITIONS - Compiler switches required for using LibSSH # # Copyright (c) 2009 Andreas Schneider # # Redistribution and use is allowed according to the terms of the New # BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # if (LIBSSH_LIBRARIES AND LIBSSH_INCLUDE_DIRS) # in cache already set(LIBSSH_FOUND TRUE) else (LIBSSH_LIBRARIES AND LIBSSH_INCLUDE_DIRS) find_path(LIBSSH_INCLUDE_DIR NAMES libssh/libssh.h PATHS /usr/include /usr/local/include /opt/local/include /sw/include ${CMAKE_INCLUDE_PATH} ${CMAKE_INSTALL_PREFIX}/include ) find_library(SSH_LIBRARY NAMES ssh libssh PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib ${CMAKE_LIBRARY_PATH} ${CMAKE_INSTALL_PREFIX}/lib ) if (LIBSSH_INCLUDE_DIR AND SSH_LIBRARY) set(SSH_FOUND TRUE) endif (LIBSSH_INCLUDE_DIR AND SSH_LIBRARY) set(LIBSSH_INCLUDE_DIRS ${LIBSSH_INCLUDE_DIR} ) if (SSH_FOUND) set(LIBSSH_LIBRARIES ${LIBSSH_LIBRARIES} ${SSH_LIBRARY} ) if (LibSSH_FIND_VERSION) file(STRINGS ${LIBSSH_INCLUDE_DIR}/libssh/libssh.h LIBSSH_VERSION_MAJOR REGEX "#define[ ]+LIBSSH_VERSION_MAJOR[ ]+[0-9]+") # Older versions of libssh like libssh-0.2 have LIBSSH_VERSION but not LIBSSH_VERSION_MAJOR if (LIBSSH_VERSION_MAJOR) string(REGEX MATCH "[0-9]+" LIBSSH_VERSION_MAJOR ${LIBSSH_VERSION_MAJOR}) file(STRINGS ${LIBSSH_INCLUDE_DIR}/libssh/libssh.h LIBSSH_VERSION_MINOR REGEX "#define[ ]+LIBSSH_VERSION_MINOR[ ]+[0-9]+") string(REGEX MATCH "[0-9]+" LIBSSH_VERSION_MINOR ${LIBSSH_VERSION_MINOR}) file(STRINGS ${LIBSSH_INCLUDE_DIR}/libssh/libssh.h LIBSSH_VERSION_PATCH REGEX "#define[ ]+LIBSSH_VERSION_MICRO[ ]+[0-9]+") string(REGEX MATCH "[0-9]+" LIBSSH_VERSION_PATCH ${LIBSSH_VERSION_PATCH}) set(LibSSH_VERSION ${LIBSSH_VERSION_MAJOR}.${LIBSSH_VERSION_MINOR}.${LIBSSH_VERSION_PATCH}) include(FindPackageVersionCheck) find_package_version_check(LibSSH DEFAULT_MSG) else (LIBSSH_VERSION_MAJOR) message(STATUS "LIBSSH_VERSION_MAJOR not found in ${LIBSSH_INCLUDE_DIR}/libssh/libssh.h, assuming libssh is too old") set(LIBSSH_FOUND FALSE) endif (LIBSSH_VERSION_MAJOR) endif (LibSSH_FIND_VERSION) endif (SSH_FOUND) # If the version is too old, but libs and includes are set, # find_package_handle_standard_args will set LIBSSH_FOUND to TRUE again, # so we need this if() here. if (LIBSSH_FOUND) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(LibSSH DEFAULT_MSG LIBSSH_LIBRARIES LIBSSH_INCLUDE_DIRS) endif (LIBSSH_FOUND) # show the LIBSSH_INCLUDE_DIRS and LIBSSH_LIBRARIES variables only in the advanced view mark_as_advanced(LIBSSH_INCLUDE_DIRS LIBSSH_LIBRARIES) endif (LIBSSH_LIBRARIES AND LIBSSH_INCLUDE_DIRS) desktop-2.6.2/cmake/modules/FindLibcloudproviders.cmake000066400000000000000000000011721360037132600232220ustar00rootroot00000000000000# FindLibcloudproviders.cmake find_path(LIBCLOUDPROVIDERS_INCLUDE_DIR NAMES cloudprovidersproviderexporter.h cloudprovidersaccountexporter.h PATH_SUFFIXES cloudproviders ) find_library(LIBCLOUDPROVIDERS_LIBRARY NAMES libcloudproviders cloudproviders HINTS /usr/lib /usr/lib/${CMAKE_ARCH_TRIPLET} /usr/local/lib /opt/local/lib ${CMAKE_LIBRARY_PATH} ${CMAKE_INSTALL_PREFIX}/lib ) message("================> ${LIBCLOUDPROVIDERS_LIBRARY}") find_package_handle_standard_args(LIBCLOUDPROVIDERS DEFAULT_MSG LIBCLOUDPROVIDERS_INCLUDE_DIR LIBCLOUDPROVIDERS_LIBRARY) desktop-2.6.2/cmake/modules/FindPackageVersionCheck.cmake000066400000000000000000000055451360037132600233760ustar00rootroot00000000000000# (c) 2014 Copyright ownCloud GmbH # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING* file. # FIND_PACKAGE_VERSION_CHECK(NAME (DEFAULT_MSG|"Custom failure message")) # This function is intended to be used in FindXXX.cmake modules files. # It handles NAME_FIND_VERSION and NAME_VERSION variables in a Module. # # Example: # find_package(LibSSH 0.3.2) # # # check for the version and set it # set(LibSSH_VERSION 0.3.0) # find_package_version_check(LibSSH DEFAULT_MSG) # # # Copyright (c) 2009 Andreas Schneider # # Redistribution and use is allowed according to the terms of the New # BSD license. function(FIND_PACKAGE_VERSION_CHECK _NAME _FAIL_MSG) string(TOUPPER ${_NAME} _NAME_UPPER) set(_AGE "old") if(${_NAME}_FIND_VERSION_EXACT) if (${_NAME}_FIND_VERSION VERSION_EQUAL ${_NAME}_VERSION) # exact version found set(${_NAME_UPPER}_FOUND TRUE) else (${_NAME}_FIND_VERSION VERSION_EQUAL ${_NAME}_VERSION) # exect version not found set(${_NAME_UPPER}_FOUND FALSE) # check if newer or older if (${_NAME}_FIND_VERSION VERSION_LESS ${_NAME}_VERSION) set(_AGE "new") else (${_NAME}_FIND_VERSION VERSION_LESS ${_NAME}_VERSION) set(_AGE "old") endif (${_NAME}_FIND_VERSION VERSION_LESS ${_NAME}_VERSION) endif (${_NAME}_FIND_VERSION VERSION_EQUAL ${_NAME}_VERSION) else (${_NAME}_FIND_VERSION_EXACT) if (${_NAME}_FIND_VERSION) if (${_NAME}_VERSION VERSION_LESS ${_NAME}_FIND_VERSION) set(${_NAME_UPPER}_FOUND FALSE) set(_AGE "old") else (${_NAME}_VERSION VERSION_LESS ${_NAME}_FIND_VERSION) set(${_NAME_UPPER}_FOUND TRUE) endif (${_NAME}_VERSION VERSION_LESS ${_NAME}_FIND_VERSION) endif (${_NAME}_FIND_VERSION) endif(${_NAME}_FIND_VERSION_EXACT) if ("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") if (${_NAME}_FIND_VERSION_EXACT) set(_FAIL_MESSAGE "The installed ${_NAME} version ${${_NAME}_VERSION} is too ${_AGE}, version ${${_NAME}_FIND_VERSION} is required.") else (${_NAME}_FIND_VERSION_EXACT) set(_FAIL_MESSAGE "The installed ${_NAME} version ${${_NAME}_VERSION} is too ${_AGE}, at least version ${${_NAME}_FIND_VERSION} is required.") endif (${_NAME}_FIND_VERSION_EXACT) else ("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") set(_FAIL_MESSAGE "${_FAIL_MSG}") endif ("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") if (NOT ${_NAME_UPPER}_FOUND) if (${_NAME}_FIND_REQUIRED) message(FATAL_ERROR "${_FAIL_MESSAGE}") else (${_NAME}_FIND_REQUIRED) if (NOT ${_NAME}_FIND_QUIETLY) message(STATUS "${_FAIL_MESSAGE}") endif (NOT ${_NAME}_FIND_QUIETLY) endif (${_NAME}_FIND_REQUIRED) endif (NOT ${_NAME_UPPER}_FOUND) set(${_NAME_UPPER}_FOUND ${${_NAME_UPPER}_FOUND} PARENT_SCOPE) endfunction(FIND_PACKAGE_VERSION_CHECK) desktop-2.6.2/cmake/modules/FindPdfLatex.cmake000066400000000000000000000006751360037132600212450ustar00rootroot00000000000000# (c) 2014 Copyright ownCloud GmbH # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING* file. find_program(PDFLATEX_EXECUTABLE NAMES pdflatex HINTS $ENV{PDFLATEX_DIR} PATH_SUFFIXES bin DOC "PDF LaTeX" ) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(PdfLatex DEFAULT_MSG PDFLATEX_EXECUTABLE ) mark_as_advanced( PDFLATEX_EXECUTABLE ) desktop-2.6.2/cmake/modules/FindPng2Ico.cmake000066400000000000000000000102121360037132600207630ustar00rootroot00000000000000#.rst: # FindPng2Ico # ----------- # # Try to find png2ico. # # If the png2ico executable is not in your PATH, you can provide # an alternative name or full path location with the ``Png2Ico_EXECUTABLE`` # variable. # # This will define the following variables: # # ``Png2Ico_FOUND`` # True if png2ico is available. # # ``Png2Ico_EXECUTABLE`` # The png2ico executable. # # If ``Png2Ico_FOUND`` is TRUE, it will also define the following imported # target: # # ``Png2Ico::Png2Ico`` # The png2ico executable. # # and the following variables: # # ``Png2Ico_HAS_COLORS_ARGUMENT`` # Whether png2ico accepts a ``--colors`` argument. `Matthias Benkmann's # tool `_ does, while the # version of png2ico from the `"KDE On Windows" (kdewin) # `_ project does not. # # ``Png2Ico_HAS_RCFILE_ARGUMENT`` # Whether png2ico accepts an ``--rcfile`` argument. The version of png2ico # from the `"KDE On Windows" (kdewin) # `_ project does, # while `Matthias Benkmann's tool # `_ does not. # # Since 1.7.0. #============================================================================= # Copyright 2014 Alex Merry # # 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. #============================================================================= include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake) ecm_find_package_version_check(Png2Ico) # Find png2ico find_program(Png2Ico_EXECUTABLE NAMES png2ico) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Png2Ico FOUND_VAR Png2Ico_FOUND REQUIRED_VARS Png2Ico_EXECUTABLE ) mark_as_advanced(Png2Ico_EXECUTABLE) if (Png2Ico_FOUND) execute_process( COMMAND "${Png2Ico_EXECUTABLE}" --help OUTPUT_VARIABLE _png2ico_help_text ERROR_VARIABLE _png2ico_help_text ) if (_png2ico_help_text MATCHES ".*--rcfile .*") set(Png2Ico_HAS_RCFILE_ARGUMENT TRUE) else() set(Png2Ico_HAS_RCFILE_ARGUMENT FALSE) endif() if (_png2ico_help_text MATCHES ".*--colors .*") set(Png2Ico_HAS_COLORS_ARGUMENT TRUE) else() set(Png2Ico_HAS_COLORS_ARGUMENT FALSE) endif() unset(_png2ico_help_text) if (NOT TARGET Png2Ico::Png2Ico) add_executable(Png2Ico::Png2Ico IMPORTED) set_target_properties(Png2Ico::Png2Ico PROPERTIES IMPORTED_LOCATION "${Png2Ico_EXECUTABLE}" ) endif() endif() include(FeatureSummary) set_package_properties(Png2Ico PROPERTIES URL "http://www.winterdrache.de/freeware/png2ico/ or https://projects.kde.org/projects/kdesupport/kdewin" DESCRIPTION "Executable that converts a collection of PNG files into a Windows icon file" ) desktop-2.6.2/cmake/modules/FindQt5Keychain.cmake000066400000000000000000000034101360037132600216510ustar00rootroot00000000000000# (c) 2014 Copyright ownCloud GmbH # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING* file. # - Try to find QtKeychain # Once done this will define # QTKEYCHAIN_FOUND - System has QtKeychain # QTKEYCHAIN_INCLUDE_DIRS - The QtKeychain include directories # QTKEYCHAIN_LIBRARIES - The libraries needed to use QtKeychain # QTKEYCHAIN_DEFINITIONS - Compiler switches required for using LibXml2 # When we build our own Qt we also need to build QtKeychain with it # so that it doesn't pull a different Qt version. For that reason # first look in the Qt lib directory for QtKeychain. get_target_property(_QTCORE_LIB_PATH Qt5::Core IMPORTED_LOCATION_RELEASE) # Use PATH here because Debian 7.0 has CMake 2.8.9 and DIRECTORY is only available from 2.8.12+ get_filename_component(QT_LIB_DIR "${_QTCORE_LIB_PATH}" PATH) find_path(QTKEYCHAIN_INCLUDE_DIR NAMES keychain.h HINTS ${QT_LIB_DIR}/../include PATH_SUFFIXES qt5keychain ) find_library(QTKEYCHAIN_LIBRARY NAMES qt5keychain lib5qtkeychain HINTS ${QT_LIB_DIR} PATHS /usr/lib /usr/lib/${CMAKE_ARCH_TRIPLET} /usr/local/lib /opt/local/lib ${CMAKE_LIBRARY_PATH} ${CMAKE_INSTALL_PREFIX}/lib ) include(FindPackageHandleStandardArgs) # handle the QUIETLY and REQUIRED arguments and set QTKEYCHAIN_FOUND to TRUE # if all listed variables are TRUE find_package_handle_standard_args(Qt5Keychain DEFAULT_MSG QTKEYCHAIN_LIBRARY QTKEYCHAIN_INCLUDE_DIR) mark_as_advanced(QTKEYCHAIN_INCLUDE_DIR QTKEYCHAIN_LIBRARY) desktop-2.6.2/cmake/modules/FindSMBClient.cmake000066400000000000000000000032741360037132600213140ustar00rootroot00000000000000# - Try to find SMBClient # Once done this will define # # SMBCLIENT_FOUND - system has SMBClient # SMBCLIENT_INCLUDE_DIRS - the SMBClient include directory # SMBCLIENT_LIBRARIES - Link these to use SMBClient # SMBCLIENT_DEFINITIONS - Compiler switches required for using SMBClient # # Copyright (c) 2013 Andreas Schneider # # Redistribution and use is allowed according to the terms of the New # BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # if (SMBCLIENT_LIBRARIES AND SMBCLIENT_INCLUDE_DIRS) # in cache already set(SMBCLIENT_FOUND TRUE) else (SMBCLIENT_LIBRARIES AND SMBCLIENT_INCLUDE_DIRS) find_package(PkgConfig) if (PKG_CONFIG_FOUND) pkg_check_modules(_SMBCLIENT smbclient) endif (PKG_CONFIG_FOUND) find_path(SMBCLIENT_INCLUDE_DIR NAMES libsmbclient.h PATHS ${_SMBCLIENT_INCLUDEDIR} /usr/include /usr/local/include /opt/local/include /sw/include ) find_library(SMBCLIENT_LIBRARY NAMES smbclient PATHS ${_SMBCLIENT_LIBDIR} /usr/lib /usr/local/lib /opt/local/lib /sw/lib ) set(SMBCLIENT_INCLUDE_DIRS ${SMBCLIENT_INCLUDE_DIR} ) if (SMBCLIENT_LIBRARY) set(SMBCLIENT_LIBRARIES ${SMBCLIENT_LIBRARIES} ${SMBCLIENT_LIBRARY} ) endif (SMBCLIENT_LIBRARY) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(SMBClient DEFAULT_MSG SMBCLIENT_LIBRARIES SMBCLIENT_INCLUDE_DIRS) # show the SMBCLIENT_INCLUDE_DIRS and SMBCLIENT_LIBRARIES variables only in the advanced view mark_as_advanced(SMBCLIENT_INCLUDE_DIRS SMBCLIENT_LIBRARIES) endif (SMBCLIENT_LIBRARIES AND SMBCLIENT_INCLUDE_DIRS) desktop-2.6.2/cmake/modules/FindSQLite3.cmake000066400000000000000000000033351360037132600207560ustar00rootroot00000000000000# - Try to find SQLite3 # Once done this will define # # SQLITE3_FOUND - system has SQLite3 # SQLITE3_INCLUDE_DIRS - the SQLite3 include directory # SQLITE3_LIBRARIES - Link these to use SQLite3 # SQLITE3_DEFINITIONS - Compiler switches required for using SQLite3 # # Copyright (c) 2009-2013 Andreas Schneider # # Redistribution and use is allowed according to the terms of the New # BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # if (UNIX) find_package(PkgConfig) if (PKG_CONFIG_FOUND) pkg_check_modules(_SQLITE3 sqlite3) endif (PKG_CONFIG_FOUND) endif (UNIX) find_path(SQLITE3_INCLUDE_DIR NAMES sqlite3.h PATHS ${_SQLITE3_INCLUDEDIR} ) find_library(SQLITE3_LIBRARY NAMES sqlite3 sqlite3-0 PATHS ${_SQLITE3_LIBDIR} ) set(SQLITE3_INCLUDE_DIRS ${SQLITE3_INCLUDE_DIR} ) if (SQLITE3_LIBRARY) set(SQLITE3_LIBRARIES ${SQLITE3_LIBRARIES} ${SQLITE3_LIBRARY} ) endif (SQLITE3_LIBRARY) if (SQLite3_FIND_VERSION AND _SQLITE3_VERSION) set(SQLite3_VERSION _SQLITE3_VERSION) endif (SQLite3_FIND_VERSION AND _SQLITE3_VERSION) if (APPLE OR WIN32) set(USE_OUR_OWN_SQLITE3 TRUE) set(SQLITE3_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rdparty/sqlite3) set(SQLITE3_LIBRARIES "") set(SQLITE3_SOURCE ${SQLITE3_INCLUDE_DIR}/sqlite3.c) MESSAGE(STATUS "Using own sqlite3 from " ${SQLITE3_INCLUDE_DIR}) else() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(SQLite3 DEFAULT_MSG SQLITE3_LIBRARIES SQLITE3_INCLUDE_DIRS) endif() # show the SQLITE3_INCLUDE_DIRS and SQLITE3_LIBRARIES variables only in the advanced view mark_as_advanced(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES) desktop-2.6.2/cmake/modules/FindSparkle.cmake000066400000000000000000000015231360037132600211300ustar00rootroot00000000000000# Find Sparkle.framework # # Once done this will define # SPARKLE_FOUND - system has Sparkle # SPARKLE_INCLUDE_DIR - the Sparkle include directory # SPARKLE_LIBRARY - The library needed to use Sparkle # Copyright (c) 2009, Vittorio Giovara # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. include(FindPackageHandleStandardArgs) find_path(SPARKLE_INCLUDE_DIR Sparkle.h) find_library(SPARKLE_LIBRARY NAMES Sparkle) find_package_handle_standard_args(Sparkle DEFAULT_MSG SPARKLE_INCLUDE_DIR SPARKLE_LIBRARY) mark_as_advanced(SPARKLE_INCLUDE_DIR SPARKLE_LIBRARY) desktop-2.6.2/cmake/modules/FindSphinx.cmake000066400000000000000000000007141360037132600210010ustar00rootroot00000000000000# (c) 2014 Copyright ownCloud GmbH # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING* file. find_program(SPHINX_EXECUTABLE NAMES sphinx-build HINTS $ENV{SPHINX_DIR} PATH_SUFFIXES bin DOC "Sphinx documentation generator" ) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Sphinx DEFAULT_MSG SPHINX_EXECUTABLE ) mark_as_advanced( SPHINX_EXECUTABLE ) desktop-2.6.2/cmake/modules/GNUInstallDirs.cmake000066400000000000000000000234261360037132600215360ustar00rootroot00000000000000#.rst: # GNUInstallDirs # -------------- # # Define GNU standard installation directories # # Provides install directory variables as defined for GNU software: # # :: # # http://www.gnu.org/prep/standards/html_node/Directory-Variables.html # # Inclusion of this module defines the following variables: # # :: # # CMAKE_INSTALL_

- destination for files of a given type # CMAKE_INSTALL_FULL_ - corresponding absolute path # # where is one of: # # :: # # BINDIR - user executables (bin) # SBINDIR - system admin executables (sbin) # LIBEXECDIR - program executables (libexec) # SYSCONFDIR - read-only single-machine data (etc) # SHAREDSTATEDIR - modifiable architecture-independent data (com) # LOCALSTATEDIR - modifiable single-machine data (var) # LIBDIR - object code libraries (lib or lib64 or lib/ on Debian) # INCLUDEDIR - C header files (include) # OLDINCLUDEDIR - C header files for non-gcc (/usr/include) # DATAROOTDIR - read-only architecture-independent data root (share) # DATADIR - read-only architecture-independent data (DATAROOTDIR) # INFODIR - info documentation (DATAROOTDIR/info) # LOCALEDIR - locale-dependent data (DATAROOTDIR/locale) # MANDIR - man documentation (DATAROOTDIR/man) # DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME) # # Each CMAKE_INSTALL_ value may be passed to the DESTINATION # options of install() commands for the corresponding file type. If the # includer does not define a value the above-shown default will be used # and the value will appear in the cache for editing by the user. Each # CMAKE_INSTALL_FULL_ value contains an absolute path constructed # from the corresponding destination by prepending (if necessary) the # value of CMAKE_INSTALL_PREFIX. #============================================================================= # Copyright 2011 Nikita Krupen'ko # Copyright 2011 Kitware, Inc. # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) # Installation directories # if(NOT DEFINED CMAKE_INSTALL_BINDIR) set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)") endif() if(NOT DEFINED CMAKE_INSTALL_SBINDIR) set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)") endif() if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR) set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)") endif() if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR) set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)") endif() if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR) set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)") endif() if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR) set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)") endif() # We check if the variable was manually set and not cached, in order to # allow projects to set the values as normal variables before including # GNUInstallDirs to avoid having the entries cached or user-editable. It # replaces the "if(NOT DEFINED CMAKE_INSTALL_XXX)" checks in all the # other cases. # If CMAKE_INSTALL_LIBDIR is defined, if _libdir_set is false, then the # variable is a normal one, otherwise it is a cache one. get_property(_libdir_set CACHE CMAKE_INSTALL_LIBDIR PROPERTY TYPE SET) if(NOT DEFINED CMAKE_INSTALL_LIBDIR OR (_libdir_set AND DEFINED _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX AND NOT "${_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX}" STREQUAL "${CMAKE_INSTALL_PREFIX}")) # If CMAKE_INSTALL_LIBDIR is not defined, it is always executed. # Otherwise: # * if _libdir_set is false it is not executed (meaning that it is # not a cache variable) # * if _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX is not defined it is # not executed # * if _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX and # CMAKE_INSTALL_PREFIX are the same string it is not executed. # _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX is updated after the # execution, of this part of code, therefore at the next inclusion # of the file, CMAKE_INSTALL_LIBDIR is defined, and the 2 strings # are equal, meaning that the if is not executed the code the # second time. set(_LIBDIR_DEFAULT "lib") # Override this default 'lib' with 'lib64' iff: # - we are on Linux system but NOT cross-compiling # - we are NOT on debian # - we are on a 64 bits system # reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf # For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if # CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu" # and CMAKE_INSTALL_PREFIX is "/usr" # See http://wiki.debian.org/Multiarch if(DEFINED _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX) set(__LAST_LIBDIR_DEFAULT "lib") # __LAST_LIBDIR_DEFAULT is the default value that we compute from # _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX, not a cache entry for # the value that was last used as the default. # This value is used to figure out whether the user changed the # CMAKE_INSTALL_LIBDIR value manually, or if the value was the # default one. When CMAKE_INSTALL_PREFIX changes, the value is # updated to the new default, unless the user explicitly changed it. endif() if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$" AND NOT CMAKE_CROSSCOMPILING) if (EXISTS "/etc/debian_version") # is this a debian system ? if(CMAKE_LIBRARY_ARCHITECTURE) set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}") endif() else() # not debian, rely on CMAKE_SIZEOF_VOID_P: if(NOT DEFINED CMAKE_SIZEOF_VOID_P) message(AUTHOR_WARNING "Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. " "Please enable at least one language before including GNUInstallDirs.") else() if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") set(_LIBDIR_DEFAULT "lib64") if(DEFINED _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX) set(__LAST_LIBDIR_DEFAULT "lib64") endif() endif() endif() endif() endif() if(NOT DEFINED CMAKE_INSTALL_LIBDIR) set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})") elseif(DEFINED __LAST_LIBDIR_DEFAULT AND "${__LAST_LIBDIR_DEFAULT}" STREQUAL "${CMAKE_INSTALL_LIBDIR}") set_property(CACHE CMAKE_INSTALL_LIBDIR PROPERTY VALUE "${_LIBDIR_DEFAULT}") endif() endif() # Save for next run set(_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE INTERNAL "CMAKE_INSTALL_PREFIX during last run") unset(_libdir_set) unset(__LAST_LIBDIR_DEFAULT) if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR) set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)") endif() if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR) set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)") endif() if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR) set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)") endif() #----------------------------------------------------------------------------- # Values whose defaults are relative to DATAROOTDIR. Store empty values in # the cache and store the defaults in local variables if the cache values are # not set explicitly. This auto-updates the defaults as DATAROOTDIR changes. if(NOT CMAKE_INSTALL_DATADIR) set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)") set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}") endif() if(NOT CMAKE_INSTALL_INFODIR) set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)") set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info") endif() if(NOT CMAKE_INSTALL_LOCALEDIR) set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)") set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale") endif() if(NOT CMAKE_INSTALL_MANDIR) set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)") set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man") endif() if(NOT CMAKE_INSTALL_DOCDIR) set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)") set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}") endif() #----------------------------------------------------------------------------- mark_as_advanced( CMAKE_INSTALL_BINDIR CMAKE_INSTALL_SBINDIR CMAKE_INSTALL_LIBEXECDIR CMAKE_INSTALL_SYSCONFDIR CMAKE_INSTALL_SHAREDSTATEDIR CMAKE_INSTALL_LOCALSTATEDIR CMAKE_INSTALL_LIBDIR CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_OLDINCLUDEDIR CMAKE_INSTALL_DATAROOTDIR CMAKE_INSTALL_DATADIR CMAKE_INSTALL_INFODIR CMAKE_INSTALL_LOCALEDIR CMAKE_INSTALL_MANDIR CMAKE_INSTALL_DOCDIR ) # Result directories # foreach(dir BINDIR SBINDIR LIBEXECDIR SYSCONFDIR SHAREDSTATEDIR LOCALSTATEDIR LIBDIR INCLUDEDIR OLDINCLUDEDIR DATAROOTDIR DATADIR INFODIR LOCALEDIR MANDIR DOCDIR ) if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}}) set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}") else() set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}") endif() endforeach() desktop-2.6.2/cmake/modules/GetGitRevisionDescription.cmake000066400000000000000000000100261360037132600240320ustar00rootroot00000000000000# - Returns a version string from Git # # These functions force a re-configure on each git commit so that you can # trust the values of the variables in your build system. # # get_git_head_revision( [ ...]) # # Returns the refspec and sha hash of the current head revision # # git_describe( [ ...]) # # Returns the results of git describe on the source tree, and adjusting # the output so that it tests false if an error occurs. # # git_get_exact_tag( [ ...]) # # Returns the results of git describe --exact-match on the source tree, # and adjusting the output so that it tests false if there was no exact # matching tag. # # Requires CMake 2.6 or newer (uses the 'function' command) # # Original Author: # 2009-2010 Ryan Pavlik # http://academic.cleardefinition.com # Iowa State University HCI Graduate Program/VRAC # # Copyright Iowa State University 2009-2010. # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) if(__get_git_revision_description) return() endif() set(__get_git_revision_description YES) # We must run the following at "include" time, not at function call time, # to find the path to this module rather than the path to a calling list file get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH) function(get_git_head_revision _refspecvar _hashvar) set(GIT_PARENT_DIR "${CMAKE_CURRENT_SOURCE_DIR}") set(GIT_DIR "${GIT_PARENT_DIR}/.git") while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}") get_filename_component(GIT_PARENT_DIR ${GIT_PARENT_DIR} PATH) if(GIT_PARENT_DIR STREQUAL GIT_PREVIOUS_PARENT) # We have reached the root directory, we are not in git set(${_refspecvar} "GITDIR-NOTFOUND" PARENT_SCOPE) set(${_hashvar} "GITDIR-NOTFOUND" PARENT_SCOPE) return() endif() set(GIT_DIR "${GIT_PARENT_DIR}/.git") endwhile() # check if this is a submodule if(NOT IS_DIRECTORY ${GIT_DIR}) file(READ ${GIT_DIR} submodule) string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" GIT_DIR_RELATIVE ${submodule}) get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH) get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE) endif() set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data") if(NOT EXISTS "${GIT_DATA}") file(MAKE_DIRECTORY "${GIT_DATA}") endif() if(NOT EXISTS "${GIT_DIR}/HEAD") return() endif() set(HEAD_FILE "${GIT_DATA}/HEAD") configure_file("${GIT_DIR}/HEAD" "${HEAD_FILE}" COPYONLY) configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in" "${GIT_DATA}/grabRef.cmake" @ONLY) include("${GIT_DATA}/grabRef.cmake") set(${_refspecvar} "${HEAD_REF}" PARENT_SCOPE) set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE) endfunction() function(git_describe _var) if(NOT GIT_FOUND) find_package(Git QUIET) endif() get_git_head_revision(refspec hash) if(NOT GIT_FOUND) set(${_var} "GIT-NOTFOUND" PARENT_SCOPE) return() endif() if(NOT hash) set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE) return() endif() # TODO sanitize #if((${ARGN}" MATCHES "&&") OR # (ARGN MATCHES "||") OR # (ARGN MATCHES "\\;")) # message("Please report the following error to the project!") # message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}") #endif() #message(STATUS "Arguments to execute_process: ${ARGN}") execute_process(COMMAND "${GIT_EXECUTABLE}" describe ${hash} ${ARGN} WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" RESULT_VARIABLE res OUTPUT_VARIABLE out ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) if(NOT res EQUAL 0) set(out "${out}-${res}-NOTFOUND") endif() set(${_var} "${out}" PARENT_SCOPE) endfunction() function(git_get_exact_tag _var) git_describe(out --exact-match ${ARGN}) set(${_var} "${out}" PARENT_SCOPE) endfunction() desktop-2.6.2/cmake/modules/GetGitRevisionDescription.cmake.in000066400000000000000000000022621360037132600244420ustar00rootroot00000000000000# # Internal file for GetGitRevisionDescription.cmake # # Requires CMake 2.6 or newer (uses the 'function' command) # # Original Author: # 2009-2010 Ryan Pavlik # http://academic.cleardefinition.com # Iowa State University HCI Graduate Program/VRAC # # Copyright Iowa State University 2009-2010. # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) set(HEAD_HASH) file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024) string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS) if(HEAD_CONTENTS MATCHES "ref") # named branch string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}") if(EXISTS "@GIT_DIR@/${HEAD_REF}") configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY) elseif(EXISTS "@GIT_DIR@/logs/${HEAD_REF}") configure_file("@GIT_DIR@/logs/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY) set(HEAD_HASH "${HEAD_REF}") endif() else() # detached HEAD configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY) endif() if(NOT HEAD_HASH) file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024) string(STRIP "${HEAD_HASH}" HEAD_HASH) endif() desktop-2.6.2/cmake/modules/MacOSXBundleInfo.plist.in000066400000000000000000000026611360037132600224520ustar00rootroot00000000000000 NSPrincipalClass NSApplication LSUIElement CFBundleDevelopmentRegion English CFBundleExecutable @APPLICATION_EXECUTABLE@ CFBundleIconFile @APPLICATION_ICON_NAME@.icns CFBundleIdentifier @APPLICATION_REV_DOMAIN@ CFBundleInfoDictionaryVersion 6.0 CFBundleLongVersionString @APPLICATION_NAME_XML_ESCAPED@ @MIRALL_VERSION_STRING@ CFBundlePackageType APPL CFBundleSignature ???? CFBundleVersion @MIRALL_VERSION_FULL@ CFBundleShortVersionString @MIRALL_VERSION_STRING@ NSHumanReadableCopyright (C) 2014-2019 @APPLICATION_VENDOR@ NSSupportsAutomaticGraphicsSwitching SUShowReleaseNotes SUPublicDSAKeyFile dsa_pub.pem desktop-2.6.2/cmake/modules/MacroAddCompileFlags.cmake000066400000000000000000000011701360037132600226640ustar00rootroot00000000000000# - MACRO_ADD_COMPILE_FLAGS(target_name flag1 ... flagN) # Copyright (c) 2006, Oswald Buddenhagen, # Copyright (c) 2006, Andreas Schneider, # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. macro (MACRO_ADD_COMPILE_FLAGS _target) get_target_property(_flags ${_target} COMPILE_FLAGS) if (_flags) set(_flags ${_flags} ${ARGN}) else (_flags) set(_flags ${ARGN}) endif (_flags) set_target_properties(${_target} PROPERTIES COMPILE_FLAGS ${_flags}) endmacro (MACRO_ADD_COMPILE_FLAGS) desktop-2.6.2/cmake/modules/MacroAddLinkFlags.cmake000066400000000000000000000011561360037132600221750ustar00rootroot00000000000000# - MACRO_ADD_LINK_FLAGS(target_name flag1 ... flagN) # Copyright (c) 2006, Oswald Buddenhagen, # Copyright (c) 2006, Andreas Schneider, # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. macro (MACRO_ADD_LINK_FLAGS _target) get_target_property(_flags ${_target} LINK_FLAGS) if (_flags) set(_flags "${_flags} ${ARGN}") else (_flags) set(_flags "${ARGN}") endif (_flags) set_target_properties(${_target} PROPERTIES LINK_FLAGS "${_flags}") endmacro (MACRO_ADD_LINK_FLAGS) desktop-2.6.2/cmake/modules/MacroEnsureOutOfSourceBuild.cmake000066400000000000000000000012271360037132600242700ustar00rootroot00000000000000# - MACRO_ENSURE_OUT_OF_SOURCE_BUILD() # MACRO_ENSURE_OUT_OF_SOURCE_BUILD() # Copyright (c) 2006, Alexander Neundorf, # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. macro (MACRO_ENSURE_OUT_OF_SOURCE_BUILD _errorMessage) string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" _insource) if (_insource) message(SEND_ERROR "${_errorMessage}") message(FATAL_ERROR "Remove the file CMakeCache.txt in ${CMAKE_SOURCE_DIR} first.") endif (_insource) endmacro (MACRO_ENSURE_OUT_OF_SOURCE_BUILD) desktop-2.6.2/cmake/modules/MacroLogFeature.cmake000066400000000000000000000140101360037132600217400ustar00rootroot00000000000000# This file defines the Feature Logging macros. # # MACRO_LOG_FEATURE(VAR FEATURE DESCRIPTION URL [REQUIRED [MIN_VERSION [COMMENTS]]]) # Logs the information so that it can be displayed at the end # of the configure run # VAR : TRUE or FALSE, indicating whether the feature is supported # FEATURE: name of the feature, e.g. "libjpeg" # DESCRIPTION: description what this feature provides # URL: home page # REQUIRED: TRUE or FALSE, indicating whether the featue is required # MIN_VERSION: minimum version number. empty string if unneeded # COMMENTS: More info you may want to provide. empty string if unnecessary # # MACRO_DISPLAY_FEATURE_LOG() # Call this to display the collected results. # Exits CMake with a FATAL error message if a required feature is missing # # Example: # # INCLUDE(MacroLogFeature) # # FIND_PACKAGE(JPEG) # MACRO_LOG_FEATURE(JPEG_FOUND "libjpeg" "Support JPEG images" "http://www.ijg.org" TRUE "3.2a" "") # ... # MACRO_DISPLAY_FEATURE_LOG() # Copyright (c) 2006, Alexander Neundorf, # Copyright (c) 2006, Allen Winter, # Copyright (c) 2009, Sebastian Trueg, # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. IF (NOT _macroLogFeatureAlreadyIncluded) SET(_file ${CMAKE_BINARY_DIR}/MissingRequirements.txt) IF (EXISTS ${_file}) FILE(REMOVE ${_file}) ENDIF (EXISTS ${_file}) SET(_file ${CMAKE_BINARY_DIR}/EnabledFeatures.txt) IF (EXISTS ${_file}) FILE(REMOVE ${_file}) ENDIF (EXISTS ${_file}) SET(_file ${CMAKE_BINARY_DIR}/DisabledFeatures.txt) IF (EXISTS ${_file}) FILE(REMOVE ${_file}) ENDIF (EXISTS ${_file}) SET(_macroLogFeatureAlreadyIncluded TRUE) INCLUDE(FeatureSummary) ENDIF (NOT _macroLogFeatureAlreadyIncluded) MACRO(MACRO_LOG_FEATURE _var _package _description _url ) # _required _minvers _comments) STRING(TOUPPER "${ARGV4}" _required) SET(_minvers "${ARGV5}") SET(_comments "${ARGV6}") IF (${_var}) SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/EnabledFeatures.txt) ELSE (${_var}) IF ("${_required}" STREQUAL "TRUE") SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/MissingRequirements.txt) ELSE ("${_required}" STREQUAL "TRUE") SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/DisabledFeatures.txt) ENDIF ("${_required}" STREQUAL "TRUE") ENDIF (${_var}) SET(_logtext " * ${_package}") IF (NOT ${_var}) IF (${_minvers} MATCHES ".*") SET(_logtext "${_logtext} (${_minvers} or higher)") ENDIF (${_minvers} MATCHES ".*") SET(_logtext "${_logtext} <${_url}>\n ") ELSE (NOT ${_var}) SET(_logtext "${_logtext} - ") ENDIF (NOT ${_var}) SET(_logtext "${_logtext}${_description}") IF (NOT ${_var}) IF (${_comments} MATCHES ".*") SET(_logtext "${_logtext}\n ${_comments}") ENDIF (${_comments} MATCHES ".*") # SET(_logtext "${_logtext}\n") #double-space missing features? ENDIF (NOT ${_var}) FILE(APPEND "${_LOGFILENAME}" "${_logtext}\n") IF(COMMAND SET_PACKAGE_INFO) # in FeatureSummary.cmake since CMake 2.8.3 SET_PACKAGE_INFO("${_package}" "\"${_description}\"" "${_url}" "\"${_comments}\"") ENDIF(COMMAND SET_PACKAGE_INFO) ENDMACRO(MACRO_LOG_FEATURE) MACRO(MACRO_DISPLAY_FEATURE_LOG) IF(COMMAND FEATURE_SUMMARY) # in FeatureSummary.cmake since CMake 2.8.3 FEATURE_SUMMARY(FILENAME ${CMAKE_CURRENT_BINARY_DIR}/FindPackageLog.txt WHAT ALL) ENDIF(COMMAND FEATURE_SUMMARY) SET(_missingFile ${CMAKE_BINARY_DIR}/MissingRequirements.txt) SET(_enabledFile ${CMAKE_BINARY_DIR}/EnabledFeatures.txt) SET(_disabledFile ${CMAKE_BINARY_DIR}/DisabledFeatures.txt) IF (EXISTS ${_missingFile} OR EXISTS ${_enabledFile} OR EXISTS ${_disabledFile}) SET(_printSummary TRUE) ENDIF (EXISTS ${_missingFile} OR EXISTS ${_enabledFile} OR EXISTS ${_disabledFile}) IF(_printSummary) SET(_missingDeps 0) IF (EXISTS ${_enabledFile}) FILE(READ ${_enabledFile} _enabled) FILE(REMOVE ${_enabledFile}) SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following external packages were located on your system.\n-- This installation will have the extra features provided by these packages.\n-----------------------------------------------------------------------------\n${_enabled}") ENDIF (EXISTS ${_enabledFile}) IF (EXISTS ${_disabledFile}) SET(_missingDeps 1) FILE(READ ${_disabledFile} _disabled) FILE(REMOVE ${_disabledFile}) SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following OPTIONAL packages could NOT be located on your system.\n-- Consider installing them to enable more features from this software.\n-----------------------------------------------------------------------------\n${_disabled}") ENDIF (EXISTS ${_disabledFile}) IF (EXISTS ${_missingFile}) SET(_missingDeps 1) FILE(READ ${_missingFile} _requirements) SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following REQUIRED packages could NOT be located on your system.\n-- You must install these packages before continuing.\n-----------------------------------------------------------------------------\n${_requirements}") FILE(REMOVE ${_missingFile}) SET(_haveMissingReq 1) ENDIF (EXISTS ${_missingFile}) IF (NOT ${_missingDeps}) SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- Congratulations! All external packages have been found.") ENDIF (NOT ${_missingDeps}) MESSAGE(${_summary}) MESSAGE("-----------------------------------------------------------------------------\n") IF(_haveMissingReq) MESSAGE(FATAL_ERROR "Exiting: Missing Requirements") ENDIF(_haveMissingReq) ENDIF(_printSummary) ENDMACRO(MACRO_DISPLAY_FEATURE_LOG) desktop-2.6.2/cmake/modules/MacroOptionalFindPackage.cmake000066400000000000000000000036461360037132600235620ustar00rootroot00000000000000# - MACRO_OPTIONAL_FIND_PACKAGE() combines FIND_PACKAGE() with an OPTION() # MACRO_OPTIONAL_FIND_PACKAGE( [QUIT] ) # This macro is a combination of OPTION() and FIND_PACKAGE(), it # works like FIND_PACKAGE(), but additionally it automatically creates # an option name WITH_, which can be disabled via the cmake GUI. # or via -DWITH_=OFF # The standard _FOUND variables can be used in the same way # as when using the normal FIND_PACKAGE() # Copyright (c) 2006-2010 Alexander Neundorf, # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # This is just a helper macro to set a bunch of variables empty. # We don't know whether the package uses UPPERCASENAME or CamelCaseName, so we try both: macro(_MOFP_SET_EMPTY_IF_DEFINED _name _var) if(DEFINED ${_name}_${_var}) set(${_name}_${_var} "") endif(DEFINED ${_name}_${_var}) string(TOUPPER ${_name} _nameUpper) if(DEFINED ${_nameUpper}_${_var}) set(${_nameUpper}_${_var} "") endif(DEFINED ${_nameUpper}_${_var}) endmacro(_MOFP_SET_EMPTY_IF_DEFINED _package _var) macro (MACRO_OPTIONAL_FIND_PACKAGE _name ) option(WITH_${_name} "Search for ${_name} package" ON) if (WITH_${_name}) find_package(${_name} ${ARGN}) else (WITH_${_name}) string(TOUPPER ${_name} _nameUpper) set(${_name}_FOUND FALSE) set(${_nameUpper}_FOUND FALSE) _mofp_set_empty_if_defined(${_name} INCLUDE_DIRS) _mofp_set_empty_if_defined(${_name} INCLUDE_DIR) _mofp_set_empty_if_defined(${_name} INCLUDES) _mofp_set_empty_if_defined(${_name} LIBRARY) _mofp_set_empty_if_defined(${_name} LIBRARIES) _mofp_set_empty_if_defined(${_name} LIBS) _mofp_set_empty_if_defined(${_name} FLAGS) _mofp_set_empty_if_defined(${_name} DEFINITIONS) endif (WITH_${_name}) endmacro (MACRO_OPTIONAL_FIND_PACKAGE) desktop-2.6.2/cmake/modules/NSIS.InstallOptions.ini.in000066400000000000000000000003211360037132600225620ustar00rootroot00000000000000[Settings] NumFields=3 [Field 1] Type=Label Left=0 Right=-1 Top=0 Bottom=24 [Field 2] Type=RadioButton Left=30 Right=-1 Top=50 Bottom=58 State=1 [Field 3] Type=RadioButton Left=30 Right=-1 Top=70 Bottom=78 desktop-2.6.2/cmake/modules/NSIS.template.in000066400000000000000000001061151360037132600206450ustar00rootroot00000000000000;ownCloud installer script. !define APPLICATION_SHORTNAME "@APPLICATION_EXECUTABLE@" !define APPLICATION_NAME "@APPLICATION_NAME@" !define APPLICATION_VENDOR "@APPLICATION_VENDOR@" !define APPLICATION_EXECUTABLE "@APPLICATION_EXECUTABLE@.exe" !define APPLICATION_CMD_EXECUTABLE "@APPLICATION_EXECUTABLE@cmd.exe" !define APPLICATION_DOMAIN "@APPLICATION_DOMAIN@" !define APPLICATION_LICENSE "@APPLICATION_LICENSE@" !define WIN_SETUP_BITMAP_PATH "@WIN_SETUP_BITMAP_PATH@" !define CRASHREPORTER_EXECUTABLE "@CRASHREPORTER_EXECUTABLE@" ;----------------------------------------------------------------------------- ; Some installer script options (comment-out options not required) ;----------------------------------------------------------------------------- !if "@APPLICATION_LICENSE@" != "" !define OPTION_LICENSE_AGREEMENT !endif !define OPTION_UAC_PLUGIN_ENHANCED !define OPTION_SECTION_SC_SHELL_EXT !define OPTION_SECTION_SC_START_MENU !define OPTION_SECTION_SC_DESKTOP !define OPTION_SECTION_SC_QUICK_LAUNCH !define OPTION_FINISHPAGE !define OPTION_FINISHPAGE_LAUNCHER ; !define OPTION_FINISHPAGE_RELEASE_NOTES ;----------------------------------------------------------------------------- ; Some paths. ;----------------------------------------------------------------------------- !ifndef MING_PATH !define MING_PATH "/usr/i686-w64-mingw32/sys-root/mingw" !endif !define MING_BIN "${MING_PATH}/bin" !define MING_LIB "${MING_PATH}/lib" !define MING_SHARE "${MING_PATH}/share" !define BUILD_PATH "@CMAKE_BINARY_DIR@" !define SOURCE_PATH "@CMAKE_SOURCE_DIR@" !define QT_DLL_PATH "${MING_BIN}" !define ACCESSIBLE_DLL_PATH "${MING_LIB}/qt5/plugins/accessible" !define SQLITE_DLL_PATH "${MING_LIB}/qt5/plugins/sqldrivers" !define IMAGEFORMATS_DLL_PATH "${MING_LIB}/qt5/plugins/imageformats" !define PLATFORMS_DLL_PATH "${MING_LIB}/qt5/plugins/platforms" !define CSYNC_LIBRARY_DIR "@CSYNC_LIBRARY_DIR@" !define CSYNC_CONFIG_DIR "@CSYNC_CONFIG_DIR@" !define NSI_PATH "${source_path}/admin/win/nsi" ;----------------------------------------------------------------------------- ; Installer version ;----------------------------------------------------------------------------- !define VER_MAJOR "@CPACK_PACKAGE_VERSION_MAJOR@" !define VER_MINOR "@CPACK_PACKAGE_VERSION_MINOR@" !define VER_PATCH "@CPACK_PACKAGE_VERSION_PATCH@" !define VER_BUILD "@CPACK_PACKAGE_VERSION_BUILD@" !define VERSION "@CPACK_PACKAGE_VERSION@" Var InstallRunIfSilent Var NoAutomaticUpdates ;----------------------------------------------------------------------------- ; Installer build timestamp. ;----------------------------------------------------------------------------- !define /date BUILD_TIME "built on %Y/%m/%d at %I:%M %p" ;----------------------------------------------------------------------------- ; Initial installer setup and definitions. ;----------------------------------------------------------------------------- Name "@CPACK_NSIS_PACKAGE_NAME@" BrandingText "${APPLICATION_NAME} ${VERSION} -- ${BUILD_TIME}" OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@" InstallDir "$PROGRAMFILES\@CPACK_PACKAGE_INSTALL_DIRECTORY@" InstallDirRegKey HKCU "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "" InstType Standard InstType Full InstType Minimal CRCCheck On SetCompressor @CPACK_NSIS_COMPRESSOR@ RequestExecutionLevel user ;Now using the UAC plugin. ReserveFile NSIS.InstallOptions.ini ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll" @CPACK_NSIS_SECTION_SELECTED_VARS@ ;----------------------------------------------------------------------------- ; Include some required header files. ;----------------------------------------------------------------------------- !include LogicLib.nsh ;Used by APPDATA uninstaller. !include MUI2.nsh ;Used by APPDATA uninstaller. !include InstallOptions.nsh ;Required by MUI2 to support old MUI_INSTALLOPTIONS. !include Memento.nsh ;Remember user selections. !include WinVer.nsh ;Windows version detection. !include WordFunc.nsh ;Used by VersionCompare macro function. !include FileFunc.nsh ;Used to read out parameters !include UAC.nsh ;Used by the UAC elevation to install as user or admin. !include nsProcess.nsh ;Used to kill the running process !include Library.nsh ;Used by the COM registration for shell extensions !include x64.nsh ;Used to determine the right arch for the shell extensions ;----------------------------------------------------------------------------- ; Memento selections stored in registry. ;----------------------------------------------------------------------------- !define MEMENTO_REGISTRY_ROOT HKLM !define MEMENTO_REGISTRY_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPLICATION_NAME}" ;----------------------------------------------------------------------------- ; Modern User Interface (MUI) definitions and setup. ;----------------------------------------------------------------------------- !define MUI_ABORTWARNING !define MUI_ICON ${NSI_PATH}\installer.ico !define MUI_UNICON ${NSI_PATH}\installer.ico !define MUI_WELCOMEFINISHPAGE_BITMAP ${WIN_SETUP_BITMAP_PATH}/welcome.bmp !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_BITMAP ${WIN_SETUP_BITMAP_PATH}/page_header.bmp !define MUI_COMPONENTSPAGE_SMALLDESC ; We removed this, h1 issue 191687 ;!define MUI_FINISHPAGE_LINK "${APPLICATION_DOMAIN}" ;!define MUI_FINISHPAGE_LINK_LOCATION "http://${APPLICATION_DOMAIN}" !define MUI_FINISHPAGE_NOREBOOTSUPPORT !ifdef OPTION_FINISHPAGE_RELEASE_NOTES !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\NOTES.txt" !define MUI_FINISHPAGE_SHOWREADME_TEXT $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING !endif !ifdef OPTION_FINISHPAGE_LAUNCHER !define MUI_FINISHPAGE_NOAUTOCLOSE !define MUI_FINISHPAGE_RUN !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchApplication" !endif ;----------------------------------------------------------------------------- ; Page macros. ;----------------------------------------------------------------------------- !insertmacro MUI_PAGE_WELCOME !ifdef OPTION_LICENSE_AGREEMENT !insertmacro MUI_PAGE_LICENSE "${APPLICATION_LICENSE}" !endif Page custom PageReinstall PageLeaveReinstall !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !ifdef OPTION_FINISHPAGE !insertmacro MUI_PAGE_FINISH !endif !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES ;----------------------------------------------------------------------------- ; Other MUI macros. ;----------------------------------------------------------------------------- !insertmacro MUI_LANGUAGE "English" !include ${source_path}/admin/win/nsi/l10n/languages.nsh !include ${source_path}/admin/win/nsi/l10n/declarations.nsh ; Set version strings with english locale VIProductVersion "${VERSION}" VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "${APPLICATION_NAME}" VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "${APPLICATION_VENDOR}" VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${VERSION}" !macro SETLANG un Function ${un}SetLang # load the selected language file !include "${source_path}/admin/win/nsi/l10n\English.nsh" StrCmp $LANGUAGE ${LANG_GERMAN} German 0 StrCmp $LANGUAGE ${LANG_DUTCH} Dutch 0 StrCmp $LANGUAGE ${LANG_FINNISH} Finnish 0 StrCmp $LANGUAGE ${LANG_JAPANESE} Japanese 0 StrCmp $LANGUAGE ${LANG_SLOVENIAN} Slovenian 0 StrCmp $LANGUAGE ${LANG_SPANISH} Spanish 0 StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0 StrCmp $LANGUAGE ${LANG_ESTONIAN} Estonian 0 StrCmp $LANGUAGE ${LANG_GREEK} Greek 0 StrCmp $LANGUAGE ${LANG_BASQUE} Basque 0 StrCmp $LANGUAGE ${LANG_GALICIAN} Galician 0 StrCmp $LANGUAGE ${LANG_POLISH} Polish 0 StrCmp $LANGUAGE ${LANG_TURKISH} Turkish 0 StrCmp $LANGUAGE ${LANG_NORWEGIAN} Norwegian 0 StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp German: !include "${source_path}/admin/win/nsi/l10n\German.nsh" Goto EndLanguageCmp Dutch: !include "${source_path}/admin/win/nsi/l10n\Dutch.nsh" Goto EndLanguageCmp Finnish: !include "${source_path}/admin/win/nsi/l10n\Finnish.nsh" Goto EndLanguageCmp Japanese: !include "${source_path}/admin/win/nsi/l10n\Japanese.nsh" Goto EndLanguageCmp Slovenian: !include "${source_path}/admin/win/nsi/l10n\Slovenian.nsh" Goto EndLanguageCmp Spanish: !include "${source_path}/admin/win/nsi/l10n\Spanish.nsh" Goto EndLanguageCmp Italian: !include "${source_path}/admin/win/nsi/l10n\Italian.nsh" Goto EndLanguageCmp Estonian: !include "${source_path}/admin/win/nsi/l10n\Estonian.nsh" Goto EndLanguageCmp Greek: !include "${source_path}/admin/win/nsi/l10n\Greek.nsh" Goto EndLanguageCmp Basque: !include "${source_path}/admin/win/nsi/l10n\Basque.nsh" Goto EndLanguageCmp Galician: !include "${source_path}/admin/win/nsi/l10n\Galician.nsh" Goto EndLanguageCmp Polish: !include "${source_path}/admin/win/nsi/l10n\Polish.nsh" Goto EndLanguageCmp Turkish: !include "${source_path}/admin/win/nsi/l10n\Turkish.nsh" Goto EndLanguageCmp Brazilian: !include "${source_path}/admin/win/nsi/l10n\PortugueseBR.nsh" Goto EndLanguageCmp Norwegian: !include "${source_path}/admin/win/nsi/l10n\Norwegian.nsh" EndLanguageCmp: FunctionEnd !macroend !insertmacro SETLANG "" !insertmacro SETLANG "un." ; Usage: ${If} ${HasSection} SectionName !macro _HasSection _a _b _t _f ReadRegDWORD $_LOGICLIB_TEMP "${MEMENTO_REGISTRY_ROOT}" "${MEMENTO_REGISTRY_KEY}" "MementoSection_${_b}" IntCmpU $_LOGICLIB_TEMP 0 ${_f} ${_t} !macroend !define HasSection `"" HasSection` ############################################################################## # # # FINISH PAGE LAUNCHER FUNCTIONS # # # ############################################################################## Function LaunchApplication !insertmacro UAC_AsUser_ExecShell "" "$INSTDIR\${APPLICATION_EXECUTABLE}" "" "" "" FunctionEnd ############################################################################## # # # PROCESS HANDLING FUNCTIONS AND MACROS # # # ############################################################################## !macro CheckForProcess processName gotoWhenFound gotoWhenNotFound ${nsProcess::FindProcess} ${processName} $R0 StrCmp $R0 0 ${gotoWhenFound} ${gotoWhenNotFound} !macroend !macro ConfirmEndProcess processName MessageBox MB_YESNO|MB_ICONEXCLAMATION \ $ConfirmEndProcess_MESSAGEBOX_TEXT \ /SD IDYES IDYES process_${processName}_kill IDNO process_${processName}_ended process_${processName}_kill: DetailPrint $ConfirmEndProcess_KILLING_PROCESSES_TEXT ${nsProcess::KillProcess} ${processName} $R0 Sleep 1500 StrCmp $R0 "1" process_${processName}_ended DetailPrint $ConfirmEndProcess_KILL_NOT_FOUND_TEXT process_${processName}_ended: !macroend !macro CheckAndConfirmEndProcess processName !insertmacro CheckForProcess ${processName} 0 no_process_${processName}_to_end !insertmacro ConfirmEndProcess ${processName} no_process_${processName}_to_end: !macroend Function EnsureOwncloudShutdown !insertmacro CheckAndConfirmEndProcess "${APPLICATION_EXECUTABLE}" FunctionEnd Function InstallRedistributables ${If} ${RunningX64} ExecWait '"$OUTDIR\vcredist_x64.exe" /install /quiet' ${Else} ExecWait '"$OUTDIR\vcredist_x86.exe" /install /quiet' ${EndIf} Delete "$OUTDIR\vcredist_x86.exe" Delete "$OUTDIR\vcredist_x64.exe" FunctionEnd ############################################################################## # # # RE-INSTALLER FUNCTIONS # # # ############################################################################## Function PageReinstall ReadRegStr $R0 HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "" StrCmp $R0 "" 0 +2 Abort ;Detect version ReadRegDWORD $R0 HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionMajor" IntCmp $R0 ${VER_MAJOR} minor_check new_version older_version minor_check: ReadRegDWORD $R0 HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionMinor" IntCmp $R0 ${VER_MINOR} rev_check new_version older_version rev_check: ReadRegDWORD $R0 HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionRevision" IntCmp $R0 ${VER_PATCH} build_check new_version older_version build_check: ReadRegDWORD $R0 HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionBuild" IntCmp $R0 ${VER_BUILD} same_version new_version older_version new_version: !insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" $PageReinstall_NEW_Field_1 !insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 2" "Text" $PageReinstall_NEW_Field_2 !insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 3" "Text" $PageReinstall_NEW_Field_3 !insertmacro MUI_HEADER_TEXT $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE StrCpy $R0 "1" Goto reinst_start older_version: !insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" $PageReinstall_OLD_Field_1 !insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 2" "Text" $PageReinstall_NEW_Field_2 !insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 3" "Text" $PageReinstall_NEW_Field_3 !insertmacro MUI_HEADER_TEXT $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE StrCpy $R0 "1" Goto reinst_start same_version: !insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" $PageReinstall_SAME_Field_1 !insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 2" "Text" $PageReinstall_SAME_Field_2 !insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 3" "Text" $PageReinstall_SAME_Field_3 !insertmacro MUI_HEADER_TEXT $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE StrCpy $R0 "2" reinst_start: !insertmacro INSTALLOPTIONS_DISPLAY "NSIS.InstallOptions.ini" FunctionEnd Function PageLeaveReinstall !insertmacro INSTALLOPTIONS_READ $R1 "NSIS.InstallOptions.ini" "Field 2" "State" StrCmp $R0 "1" 0 +2 StrCmp $R1 "1" reinst_uninstall reinst_done StrCmp $R0 "2" 0 +3 StrCmp $R1 "1" reinst_done reinst_uninstall reinst_uninstall: ReadRegStr $R1 ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "UninstallString" HideWindow ClearErrors ExecWait '$R1 _?=$INSTDIR' IfErrors no_remove_uninstaller IfFileExists "$INSTDIR\${APPLICATION_EXECUTABLE}" no_remove_uninstaller Delete $R1 RMDir $INSTDIR no_remove_uninstaller: StrCmp $R0 "2" 0 +3 Quit BringToFront reinst_done: FunctionEnd ############################################################################## # # # INSTALLER SECTIONS # # # ############################################################################## Section "${APPLICATION_NAME}" SEC_APPLICATION SectionIn 1 2 3 RO SetDetailsPrint listonly SetDetailsPrint textonly DetailPrint $SEC_APPLICATION_DETAILS SetDetailsPrint listonly SetOutPath "$INSTDIR" ;Main executable & csync File "${BUILD_PATH}\bin\${APPLICATION_EXECUTABLE}" File "${BUILD_PATH}\bin\${APPLICATION_CMD_EXECUTABLE}" File "${BUILD_PATH}\bin\lib${APPLICATION_SHORTNAME}sync.dll" File "${BUILD_PATH}\bin\libocsync.dll" File "${BUILD_PATH}\src\gui\client*.qm" ; Make sure only to copy qt, not qt_help, etc File "${MING_SHARE}\qt5\translations\qt_??.qm" File "${MING_SHARE}\qt5\translations\qt_??_??.qm" File "${MING_SHARE}\qt5\translations\qtbase_*.qm" File "${MING_SHARE}\qt5\translations\qtkeychain_*.qm" ;Add crash reporter if it was built File /nonfatal "${BUILD_PATH}/bin/${CRASHREPORTER_EXECUTABLE}.exe" SetOutPath "$INSTDIR\platforms" File "${PLATFORMS_DLL_PATH}\qwindows.dll" SetOutPath "$INSTDIR\imageformats" File "${IMAGEFORMATS_DLL_PATH}\qgif.dll" File "${IMAGEFORMATS_DLL_PATH}\qjpeg.dll" File "${IMAGEFORMATS_DLL_PATH}\qico.dll" File "${IMAGEFORMATS_DLL_PATH}\qsvg.dll" ; PNG is built in Qt SetOutPath "$INSTDIR\sqldrivers" File "${SQLITE_DLL_PATH}\qsqlite.dll" SetOutPath "$INSTDIR" ;License & release notes. File "@CPACK_RESOURCE_FILE_LICENSE@" ;File /oname=NOTES.txt ${NSI_PATH}\RELEASE_NOTES.txt ;Qt config: File "${NSI_PATH}\qt.conf" ;Qt stuff: File "${QT_DLL_PATH}\Qt5Core.dll" File "${QT_DLL_PATH}\Qt5Gui.dll" File "${QT_DLL_PATH}\Qt5Network.dll" File "${QT_DLL_PATH}\Qt5PrintSupport.dll" File "${QT_DLL_PATH}\Qt5Svg.dll" File "${QT_DLL_PATH}\Qt5Qml.dll" File "${QT_DLL_PATH}\Qt5Sql.dll" File "${QT_DLL_PATH}\Qt5WebKit.dll" File "${QT_DLL_PATH}\Qt5WebKitWidgets.dll" File "${QT_DLL_PATH}\Qt5Widgets.dll" File "${QT_DLL_PATH}\Qt5Xml.dll" ;QtWebKit dependencies File "${QT_DLL_PATH}\Qt5Multimedia.dll" File "${QT_DLL_PATH}\Qt5MultimediaWidgets.dll" File "${QT_DLL_PATH}\Qt5Sensors.dll" ;Qt deps File "${MING_BIN}\libpng16-16.dll" File "${MING_BIN}\icudata56.dll" File "${MING_BIN}\icui18n56.dll" File "${MING_BIN}\icuuc56.dll" File "${MING_BIN}\libEGL.dll" File "${MING_BIN}\libGLESv2.dll" File "${MING_BIN}\libjpeg-8.dll" File "${MING_BIN}\libpcre16-0.dll" File "${MING_BIN}\libsqlite3-0.dll" File "${MING_BIN}\libcrypto-10.dll" File "${MING_BIN}\libssl-10.dll" File "${MING_BIN}\libstdc++-6.dll" File "${MING_BIN}\libwebp-5.dll" File "${MING_BIN}\libxslt-1.dll" File "${MING_BIN}\libxml2-2.dll" File "${MING_BIN}\zlib1.dll" File "${MING_BIN}\libharfbuzz-0.dll" File "${MING_BIN}\libfreetype-6.dll" File "${MING_BIN}\libglib-2.0-0.dll" File "${MING_BIN}\libintl-8.dll" ;QtKeyChain stuff File "${MING_BIN}\libqt5keychain.dll" ;MinGW stuff File "${MING_BIN}\libgcc_s_sjlj-1.dll" File "${MING_BIN}\libstdc++-6.dll" File "${MING_BIN}\libwinpthread-1.dll" File "${MING_BIN}\libssp-0.dll" ;CSync configs File "${SOURCE_PATH}/sync-exclude.lst" SectionEnd !ifdef OPTION_SECTION_SC_SHELL_EXT ${MementoSection} $OPTION_SECTION_SC_SHELL_EXT_SECTION SEC_SHELL_EXT SectionIn 1 2 SetDetailsPrint textonly DetailPrint $OPTION_SECTION_SC_SHELL_EXT_DetailPrint File "${BUILD_PATH}\vcredist_x86.exe" File "${BUILD_PATH}\vcredist_x64.exe" Call InstallRedistributables CreateDirectory "$INSTDIR\shellext" !define LIBRARY_COM !define LIBRARY_SHELL_EXTENSION !define LIBRARY_IGNORE_VERSION ${If} ${RunningX64} !define LIBRARY_X64 !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\x64\OCUtil_x64.dll" "$INSTDIR\shellext\OCUtil_x64.dll" "$INSTDIR\shellext" !insertmacro InstallLib REGDLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\x64\OCOverlays_x64.dll" "$INSTDIR\shellext\OCOverlays_x64.dll" "$INSTDIR\shellext" !insertmacro InstallLib REGDLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\x64\OCContextMenu_x64.dll" "$INSTDIR\shellext\OCContextMenu_x64.dll" "$INSTDIR\shellext" !undef LIBRARY_X64 ${Else} !insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\Win32\OCUtil_x86.dll" "$INSTDIR\shellext\OCUtil_x86.dll" "$INSTDIR\shellext" !insertmacro InstallLib REGDLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\Win32\OCOverlays_x86.dll" "$INSTDIR\shellext\OCOverlays_x86.dll" "$INSTDIR\shellext" !insertmacro InstallLib REGDLL NOTSHARED REBOOT_PROTECTED "${SOURCE_PATH}\binary\shell_integration\windows\Release\Win32\OCContextMenu_x86.dll" "$INSTDIR\shellext\OCContextMenu_x86.dll" "$INSTDIR\shellext" ${Endif} !undef LIBRARY_COM !undef LIBRARY_SHELL_EXTENSION !undef LIBRARY_IGNORE_VERSION ${MementoSectionEnd} !endif SectionGroup $SectionGroup_Shortcuts !ifdef OPTION_SECTION_SC_START_MENU ${MementoSection} $OPTION_SECTION_SC_START_MENU_SECTION SEC_START_MENU SectionIn 1 2 3 SetDetailsPrint textonly DetailPrint $OPTION_SECTION_SC_START_MENU_DetailPrint SetDetailsPrint listonly SetShellVarContext all CreateShortCut "$SMPROGRAMS\${APPLICATION_NAME}.lnk" "$INSTDIR\${APPLICATION_EXECUTABLE}" SetShellVarContext current ${MementoSectionEnd} !endif !ifdef OPTION_SECTION_SC_DESKTOP ${MementoSection} $OPTION_SECTION_SC_DESKTOP_SECTION SEC_DESKTOP SectionIn 1 2 SetDetailsPrint textonly DetailPrint $OPTION_SECTION_SC_DESKTOP_DetailPrint SetDetailsPrint listonly SetShellVarContext all CreateShortCut "$DESKTOP\${APPLICATION_NAME}.lnk" "$INSTDIR\${APPLICATION_EXECUTABLE}" SetShellVarContext current ${MementoSectionEnd} !endif !ifdef OPTION_SECTION_SC_QUICK_LAUNCH ${MementoSection} $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION SEC_QUICK_LAUNCH SectionIn 1 2 SetDetailsPrint textonly DetailPrint $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint SetShellVarContext all SetDetailsPrint listonly CreateShortCut "$QUICKLAUNCH\${APPLICATION_NAME}.lnk" "$INSTDIR\${APPLICATION_EXECUTABLE}" SetShellVarContext current ${MementoSectionEnd} !endif SectionGroupEnd ${MementoSectionDone} ; Installer section descriptions ;-------------------------------- !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SEC_APPLICATION} $OPTION_SECTION_SC_APPLICATION_Desc !insertmacro MUI_DESCRIPTION_TEXT ${SEC_START_MENU} $OPTION_SECTION_SC_START_MENU_Desc !insertmacro MUI_DESCRIPTION_TEXT ${SEC_DESKTOP} $OPTION_SECTION_SC_DESKTOP_Desc !insertmacro MUI_DESCRIPTION_TEXT ${SEC_QUICK_LAUNCH} $OPTION_SECTION_SC_QUICK_LAUNCH_Desc !insertmacro MUI_FUNCTION_DESCRIPTION_END Section -post ;Uninstaller file. SetDetailsPrint textonly DetailPrint $UNINSTALLER_FILE_Detail SetDetailsPrint listonly WriteUninstaller $INSTDIR\uninstall.exe ;Registry keys required for installer version handling and uninstaller. SetDetailsPrint textonly DetailPrint $UNINSTALLER_REGISTRY_Detail SetDetailsPrint listonly ;Version numbers used to detect existing installation version for comparison. WriteRegStr HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "" $INSTDIR WriteRegDWORD HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionMajor" "${VER_MAJOR}" WriteRegDWORD HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionMinor" "${VER_MINOR}" WriteRegDWORD HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionRevision" "${VER_PATCH}" WriteRegDWORD HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionBuild" "${VER_BUILD}" ;Add or Remove Programs entry. WriteRegExpandStr ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "UninstallString" '"$INSTDIR\Uninstall.exe"' WriteRegExpandStr ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "InstallLocation" "$INSTDIR" WriteRegStr ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "DisplayName" "${APPLICATION_NAME}" WriteRegStr ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "Publisher" "${APPLICATION_VENDOR}" WriteRegStr ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "DisplayIcon" "$INSTDIR\Uninstall.exe,0" WriteRegStr ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "DisplayVersion" "${VERSION}" WriteRegDWORD ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "VersionMajor" "${VER_MAJOR}" WriteRegDWORD ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "VersionMinor" "${VER_MINOR}.${VER_PATCH}.${VER_BUILD}" WriteRegStr ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "URLInfoAbout" "http://${APPLICATION_DOMAIN}/" WriteRegStr ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "HelpLink" "http://${APPLICATION_DOMAIN}/" WriteRegDWORD ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "NoModify" "1" WriteRegDWORD ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "NoRepair" "1" SetDetailsPrint textonly DetailPrint $UNINSTALLER_FINISHED_Detail SectionEnd ############################################################################## # # # UNINSTALLER SECTION # # # ############################################################################## Function un.EnsureOwncloudShutdown !insertmacro CheckAndConfirmEndProcess "${APPLICATION_EXECUTABLE}" FunctionEnd Section Uninstall IfFileExists "$INSTDIR\${APPLICATION_EXECUTABLE}" owncloud_installed MessageBox MB_YESNO $UNINSTALL_MESSAGEBOX /SD IDYES IDYES owncloud_installed Abort $UNINSTALL_ABORT owncloud_installed: ; Delete Navigation Pane entries added for Windows 10. ; On 64bit Windows, the client will be writing to the 64bit registry. ${If} ${RunningX64} SetRegView 64 ${EndIf} StrCpy $0 0 loop: ; Look at every registered explorer namespace for HKCU and check if it was added by our application ; (we write to a custom "ApplicationName" value there). EnumRegKey $1 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace" $0 StrCmp $1 "" done ReadRegStr $R0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\$1" "ApplicationName" StrCmp $R0 "${APPLICATION_NAME}" deleteClsid ; Increment the index when not deleting the enumerated key. IntOp $0 $0 + 1 goto loop deleteClsid: DetailPrint "Removing Navigation Pane CLSID $1" ; Should match FolderMan::updateCloudStorageRegistry DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\$1" DeleteRegKey HKCU "Software\Classes\CLSID\$1" DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" $1 goto loop done: ; Go back to the 32bit registry. SetRegView lastused ;Delete registry keys. DeleteRegValue HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionBuild" DeleteRegValue HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionMajor" DeleteRegValue HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionMinor" DeleteRegValue HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionRevision" DeleteRegValue HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "" DeleteRegKey HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" DeleteRegKey HKCR "${APPLICATION_NAME}" ;Shell extension !ifdef OPTION_SECTION_SC_SHELL_EXT !define LIBRARY_COM !define LIBRARY_SHELL_EXTENSION !define LIBRARY_IGNORE_VERSION ${If} ${HasSection} SEC_SHELL_EXT DetailPrint "Uninstalling x64 overlay DLLs" !define LIBRARY_X64 !insertmacro UnInstallLib REGDLL NOTSHARED REBOOT_PROTECTED "$INSTDIR\shellext\OCContextMenu_x64.dll" !insertmacro UnInstallLib REGDLL NOTSHARED REBOOT_PROTECTED "$INSTDIR\shellext\OCOverlays_x64.dll" !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED "$INSTDIR\shellext\OCUtil_x64.dll" !undef LIBRARY_X64 DetailPrint "Uninstalling x86 overlay DLLs" !insertmacro UnInstallLib REGDLL NOTSHARED REBOOT_PROTECTED "$INSTDIR\shellext\OCContextMenu_x86.dll" !insertmacro UnInstallLib REGDLL NOTSHARED REBOOT_PROTECTED "$INSTDIR\shellext\OCOverlays_x86.dll" !insertmacro UnInstallLib DLL NOTSHARED REBOOT_PROTECTED "$INSTDIR\shellext\OCUtil_x86.dll" ${EndIf} !undef LIBRARY_COM !undef LIBRARY_SHELL_EXTENSION !undef LIBRARY_IGNORE_VERSION !endif ;Start menu shortcut !ifdef OPTION_SECTION_SC_START_MENU SetShellVarContext all ${If} ${HasSection} SEC_START_MENU Delete "$SMPROGRAMS\${APPLICATION_NAME}.lnk" ${EndIf} SetShellVarContext current !endif ;Desktop shortcut. !ifdef OPTION_SECTION_SC_DESKTOP ${If} ${HasSection} SEC_DESKTOP SetShellVarContext all ${If} ${FileExists} "$DESKTOP\${APPLICATION_NAME}.lnk" Delete "$DESKTOP\${APPLICATION_NAME}.lnk" ${EndIf} SetShellVarContext current ${EndIf} !endif ;Quick Launch shortcut. !ifdef OPTION_SECTION_SC_QUICK_LAUNCH ${If} ${HasSection} SEC_QUICK_LAUNCH SetShellVarContext all ${If} ${FileExists} "$QUICKLAUNCH\${APPLICATION_NAME}.lnk" Delete "$QUICKLAUNCH\${APPLICATION_NAME}.lnk" ${EndIf} SetShellVarContext current ${EndIf} !endif ;Remove all the Program Files. RMDir /r $INSTDIR DeleteRegKey ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" SetDetailsPrint textonly DetailPrint $UNINSTALLER_FINISHED_Detail SectionEnd ############################################################################## # # # NSIS Installer Event Handler Functions # # # ############################################################################## Function .onInit SetOutPath $INSTDIR ${GetParameters} $R0 ${GetOptions} $R0 "/launch" $R0 ${IfNot} ${Errors} StrCpy $InstallRunIfSilent "yes" ${EndIf} ${GetParameters} $R0 ${GetOptions} $R0 "/noautoupdate" $R0 ${IfNot} ${Errors} StrCpy $NoAutomaticUpdates "yes" ${EndIf} !insertmacro INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini" ; uncomment this line if you want to see the language selection ;!insertmacro MUI_LANGDLL_DISPLAY Call SetLang ; Remove Quick Launch option from Windows 7, as no longer applicable - usually. ${IfNot} ${AtMostWinVista} SectionSetText ${SEC_QUICK_LAUNCH} $INIT_NO_QUICK_LAUNCH SectionSetFlags ${SEC_QUICK_LAUNCH} ${SF_RO} SectionSetInstTypes ${SEC_QUICK_LAUNCH} 0 ${EndIf} ; Some people might have a shortcut called 'ownCloud' pointing elsewhere, see #356 ; Unselect item and adjust text ${If} ${FileExists} "$DESKTOP\${APPLICATION_NAME}.lnk" SectionSetText ${SEC_DESKTOP} $INIT_NO_DESKTOP Push $0 SectionSetFlags ${SEC_DESKTOP} 0 SectionSetInstTypes ${SEC_DESKTOP} 0 Pop $0 ${EndIf} ${MementoSectionRestore} UAC_TryAgain: !insertmacro UAC_RunElevated ${Switch} $0 ${Case} 0 ${IfThen} $1 = 1 ${|} Quit ${|} ;we are the outer process, the inner process has done its work, we are done ${IfThen} $3 <> 0 ${|} ${Break} ${|} ;we are admin, let the show go on ${If} $1 = 3 ;RunAs completed successfully, but with a non-admin user MessageBox mb_YesNo|mb_ICONEXCLAMATION|MB_TOPMOST|MB_SETFOREGROUND $UAC_INSTALLER_REQUIRE_ADMIN /SD IDNO IDYES UAC_TryAgain IDNO 0 ${EndIf} ;fall-through and die ${Case} 1223 MessageBox MB_ICONSTOP|MB_TOPMOST|MB_SETFOREGROUND $UAC_INSTALLER_REQUIRE_ADMIN Quit ${Case} 1062 MessageBox MB_ICONSTOP|MB_TOPMOST|MB_SETFOREGROUND $UAC_ERROR_LOGON_SERVICE Quit ${Default} MessageBox MB_ICONSTOP "$UAC_ERROR_ELEVATE $0" Abort Quit ${EndSwitch} ;Prevent multiple instances. System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${APPLICATION_SHORTNAME}Installer") i .r1 ?e' Pop $R0 StrCmp $R0 0 +3 MessageBox MB_OK|MB_ICONEXCLAMATION $INIT_INSTALLER_RUNNING Abort ;Use available InstallLocation when possible. This is useful in the uninstaller ;via re-install, which would otherwise use a default location - a bug. ReadRegStr $R0 ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "InstallLocation" StrCmp $R0 "" SkipSetInstDir StrCpy $INSTDIR $R0 SkipSetInstDir: ;Shutdown ${APPLICATION_NAME} in case Add/Remove re-installer option used. Call EnsureOwncloudShutdown ReadRegStr $R0 ${MEMENTO_REGISTRY_ROOT} "${MEMENTO_REGISTRY_KEY}" "InstallLocation" ${If} ${Silent} ${AndIf} $R0 != "" ExecWait '"$R0\Uninstall.exe" /S _?=$R0' ${EndIf} FunctionEnd Function .onInstSuccess ${MementoSectionSave} ${If} $NoAutomaticUpdates == "yes" WriteRegDWORD HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "skipUpdateCheck" "1" ${EndIf} ; TODO: Only needed to when updating from 2.1.{0,1}. Remove in due time. Delete /REBOOTOK $INSTDIR\bearer\qgenericbearer.dll Delete /REBOOTOK $INSTDIR\bearer\qnativewifibearer.dll RMDir /REBOOTOK $INSTDIR\bearer ${If} ${Silent} ${AndIf} $InstallRunIfSilent == "yes" Call LaunchApplication ${EndIf} FunctionEnd Function .onInstFailed FunctionEnd ############################################################################## # # # NSIS Uninstaller Event Handler Functions # # # ############################################################################## Function un.onInit Call un.SetLang UAC_TryAgain: !insertmacro UAC_RunElevated ${Switch} $0 ${Case} 0 ${IfThen} $1 = 1 ${|} Quit ${|} ;we are the outer process, the inner process has done its work, we are done ${IfThen} $3 <> 0 ${|} ${Break} ${|} ;we are admin, let the show go on ${If} $1 = 3 ;RunAs completed successfully, but with a non-admin user MessageBox mb_YesNo|mb_ICONEXCLAMATION|MB_TOPMOST|MB_SETFOREGROUND $UAC_UNINSTALLER_REQUIRE_ADMIN /SD IDNO IDYES UAC_TryAgain IDNO 0 ${EndIf} ;fall-through and die ${Case} 1223 MessageBox MB_ICONSTOP|MB_TOPMOST|MB_SETFOREGROUND $UAC_UNINSTALLER_REQUIRE_ADMIN Quit ${Case} 1062 MessageBox MB_ICONSTOP|MB_TOPMOST|MB_SETFOREGROUND $UAC_ERROR_LOGON_SERVICE Quit ${Default} MessageBox MB_ICONSTOP "$UAC_ERROR_ELEVATE $0" Abort Quit ${EndSwitch} ;Prevent multiple instances. System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${APPLICATION_SHORTNAME}Uninstaller") i .r1 ?e' Pop $R0 StrCmp $R0 0 +3 MessageBox MB_OK|MB_ICONEXCLAMATION $INIT_UNINSTALLER_RUNNING Abort ;Shutdown ${APPLICATION_NAME} in order to remove locked files. Call un.EnsureOwncloudShutdown FunctionEnd Function un.onUnInstSuccess FunctionEnd Function un.onUnInstFailed FunctionEnd desktop-2.6.2/cmake/modules/UseDoxygen.cmake000066400000000000000000000131671360037132600210270ustar00rootroot00000000000000# (c) 2014 Copyright ownCloud GmbH # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING* file. # -helper macro to add a "doc" target with CMake build system. # and configure doxy.config.in to doxy.config # # target "doc" allows building the documentation with doxygen/dot on WIN32 and Linux # Creates .chm windows help file if MS HTML help workshop # (available from http://msdn.microsoft.com/workshop/author/htmlhelp) # is installed with its DLLs in PATH. # # # Please note, that the tools, e.g.: # doxygen, dot, latex, dvips, makeindex, gswin32, etc. # must be in path. # # Note about Visual Studio Projects: # MSVS has its own path environment which may differ from the shell. # See "Menu Tools/Options/Projects/VC++ Directories" in VS 7.1 # # author Jan Woetzel 2004-2006 # www.mip.informatik.uni-kiel.de/~jw FIND_PACKAGE(Doxygen) IF (DOXYGEN_FOUND) # click+jump in Emacs and Visual Studio (for doxy.config) (jw) IF (CMAKE_BUILD_TOOL MATCHES "(msdev|devenv)") SET(DOXY_WARN_FORMAT "\"$file($line) : $text \"") ELSE (CMAKE_BUILD_TOOL MATCHES "(msdev|devenv)") SET(DOXY_WARN_FORMAT "\"$file:$line: $text \"") ENDIF (CMAKE_BUILD_TOOL MATCHES "(msdev|devenv)") # we need latex for doxygen because of the formulas FIND_PACKAGE(LATEX) IF (NOT LATEX_COMPILER) MESSAGE(STATUS "latex command LATEX_COMPILER not found but usually required. You will probably get warnings and user interaction on doxy run.") ENDIF (NOT LATEX_COMPILER) IF (NOT MAKEINDEX_COMPILER) MESSAGE(STATUS "makeindex command MAKEINDEX_COMPILER not found but usually required.") ENDIF (NOT MAKEINDEX_COMPILER) IF (NOT DVIPS_CONVERTER) MESSAGE(STATUS "dvips command DVIPS_CONVERTER not found but usually required.") ENDIF (NOT DVIPS_CONVERTER) FIND_PROGRAM(DOXYGEN_DOT_EXECUTABLE_PATH NAMES dot) IF (DOXYGEN_DOT_EXECUTABLE_PATH) SET(DOXYGEN_DOT_FOUND "YES") ENDIF (DOXYGEN_DOT_EXECUTABLE_PATH) IF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/doxy.config.in") MESSAGE(STATUS "Generate ${CMAKE_CURRENT_BINARY_DIR}/doxy.config from doxy.config.in") CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/doxy.config.in ${CMAKE_CURRENT_BINARY_DIR}/doxy.config @ONLY ) # use (configured) doxy.config from (out of place) BUILD tree: SET(DOXY_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/doxy.config") ELSE (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/doxy.config.in") # use static hand-edited doxy.config from SOURCE tree: SET(DOXY_CONFIG "${CMAKE_CURRENT_SOURCE_DIR}/doxy.config") IF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/doxy.config") MESSAGE(STATUS "WARNING: using existing ${CMAKE_CURRENT_SOURCE_DIR}/doxy.config instead of configuring from doxy.config.in file.") ELSE (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/doxy.config") IF (EXISTS "${CMAKE_MODULE_PATH}/doxy.config.in") # using template doxy.config.in MESSAGE(STATUS "Generate ${CMAKE_CURRENT_BINARY_DIR}/doxy.config from doxy.config.in") CONFIGURE_FILE(${CMAKE_MODULE_PATH}/doxy.config.in ${CMAKE_CURRENT_BINARY_DIR}/doxy.config @ONLY ) SET(DOXY_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/doxy.config") ELSE (EXISTS "${CMAKE_MODULE_PATH}/doxy.config.in") # failed completely... MESSAGE(SEND_ERROR "Please create ${CMAKE_CURRENT_SOURCE_DIR}/doxy.config.in (or doxy.config as fallback)") ENDIF(EXISTS "${CMAKE_MODULE_PATH}/doxy.config.in") ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/doxy.config") ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/doxy.config.in") ADD_CUSTOM_TARGET(csync_doc ${DOXYGEN_EXECUTABLE} ${DOXY_CONFIG} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/doxy.config) # create a windows help .chm file using hhc.exe # HTMLHelp DLL must be in path! # fallback: use hhw.exe interactively IF (WIN32) FIND_PACKAGE(HTMLHelp) IF (HTML_HELP_COMPILER) SET (TMP "${CMAKE_CURRENT_BINARY_DIR}\\doc\\html\\index.hhp") STRING(REGEX REPLACE "[/]" "\\\\" HHP_FILE ${TMP} ) # MESSAGE(SEND_ERROR "DBG HHP_FILE=${HHP_FILE}") ADD_CUSTOM_TARGET(winhelp ${HTML_HELP_COMPILER} ${HHP_FILE}) ADD_DEPENDENCIES (winhelp doc) IF (NOT TARGET_DOC_SKIP_INSTALL) # install windows help? # determine useful name for output file # should be project and version unique to allow installing # multiple projects into one global directory IF (EXISTS "${PROJECT_BINARY_DIR}/doc/html/index.chm") IF (PROJECT_NAME) SET(OUT "${PROJECT_NAME}") ELSE (PROJECT_NAME) SET(OUT "Documentation") # default ENDIF(PROJECT_NAME) IF (${PROJECT_NAME}_VERSION_MAJOR) SET(OUT "${OUT}-${${PROJECT_NAME}_VERSION_MAJOR}") IF (${PROJECT_NAME}_VERSION_MINOR) SET(OUT "${OUT}.${${PROJECT_NAME}_VERSION_MINOR}") IF (${PROJECT_NAME}_VERSION_PATCH) SET(OUT "${OUT}.${${PROJECT_NAME}_VERSION_PATCH}") ENDIF(${PROJECT_NAME}_VERSION_PATCH) ENDIF(${PROJECT_NAME}_VERSION_MINOR) ENDIF(${PROJECT_NAME}_VERSION_MAJOR) # keep suffix SET(OUT "${OUT}.chm") #MESSAGE("DBG ${PROJECT_BINARY_DIR}/doc/html/index.chm \n${OUT}") # create target used by install and package commands INSTALL(FILES "${PROJECT_BINARY_DIR}/doc/html/index.chm" DESTINATION "doc" RENAME "${OUT}" ) ENDIF(EXISTS "${PROJECT_BINARY_DIR}/doc/html/index.chm") ENDIF(NOT TARGET_DOC_SKIP_INSTALL) ENDIF(HTML_HELP_COMPILER) # MESSAGE(SEND_ERROR "HTML_HELP_COMPILER=${HTML_HELP_COMPILER}") ENDIF (WIN32) ENDIF(DOXYGEN_FOUND) desktop-2.6.2/cmake/modules/Warnings.cmake000066400000000000000000000026311360037132600205170ustar00rootroot00000000000000# (c) 2014 Copyright ownCloud GmbH # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING* file. if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") # Use this only for Clang if (CMAKE_CXX_COMPILER MATCHES "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wno-long-long -Wno-gnu-zero-variadic-macro-arguments") endif() # Fix sqlite compilation on macOS set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-pointer-types-discards-qualifiers") if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") # Fix sqlite compilation on MinGW set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-discarded-qualifiers") execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) if(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpedantic") else(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") endif(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8) else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") endif() if(DEFINED MIRALL_FATAL_WARNINGS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") endif(DEFINED MIRALL_FATAL_WARNINGS) endif() desktop-2.6.2/cmake/scripts/000077500000000000000000000000001360037132600157425ustar00rootroot00000000000000desktop-2.6.2/cmake/scripts/generate_findpackage_file000066400000000000000000000120671360037132600230000ustar00rootroot00000000000000#!/usr/bin/env ruby # Simple script to generate simple cmake modules for finding # libraries (packages) # # usage: generate_findpackage_file # then you will be prompted to enter the required parameters # ##################################################################### # # Copyright (c) 2006 Alexander Neundorf # Copyright (c) 2006 Andreas Schneider # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # 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., 51 Franklin Street, Fifth Floor, # Boston, MA 02110-1301, USA. # require 'readline' package=Readline.readline("Name of package: ") name=Readline.readline("\nYour Name (for copyright): ") email=Readline.readline("\nYour mail (for copyright): ") pkgconfig=Readline.readline("\npkgconfig package name (e.g. \"libxml-2.0\", leave empty to skip pkgconfig): ") header=Readline.readline("\nLook for header (e.g. \"jpeglib.h\" or \"libxml/xpath.h\"): ") incSubDir=Readline.readline("\nLook for header subdir (e.g. \"libxml2\", empty to skip ): ") libs=Readline.readline("\nLook for library (e.g. \"xml2\" or \"avcodec avutil\"): ") t = Time.now cmakeIncDirName=package.upcase+"_INCLUDE_DIR" cmakeIncDirNames=package.upcase+"_INCLUDE_DIRS" cmakeLibNames=package.upcase+"_LIBRARIES" cmakeDefsName=package.upcase+"_DEFINITIONS" cmakeFoundName=package.upcase+"_FOUND" cmakeQuietName=package+"_FIND_QUIETLY" cmakeRequiredName=package+"_FIND_REQUIRED" file=File.new("Find#{package}.cmake", "w+") file.printf("# - Try to find #{package}\n") file.printf("# Once done this will define\n") file.printf("#\n") file.printf("# #{cmakeFoundName} - system has #{package}\n") file.printf("# #{cmakeIncDirNames} - the #{package} include directory\n") file.printf("# #{cmakeLibNames} - Link these to use #{package}\n") file.printf("# #{cmakeDefsName} - Compiler switches required for using #{package}\n") file.printf("#\n") file.printf("# Copyright (c) #{t.year} #{name} <#{email}>\n") file.printf("#\n") file.printf("# Redistribution and use is allowed according to the terms of the New\n") file.printf("# BSD license.\n") file.printf("# For details see the accompanying COPYING-CMAKE-SCRIPTS file.\n") file.printf("#\n") file.printf("\n") file.printf("\n") file.printf("if (#{cmakeLibNames} AND #{cmakeIncDirNames})\n") file.printf(" # in cache already\n") file.printf(" set(#{cmakeFoundName} TRUE)\n") file.printf("else (#{cmakeLibNames} AND #{cmakeIncDirNames})\n") if not pkgconfig.empty? file.printf(" find_package(PkgConfig)\n") file.printf(" if (PKG_CONFIG_FOUND)\n") file.printf(" pkg_check_modules(_#{package.upcase} #{pkgconfig})\n") file.printf(" endif (PKG_CONFIG_FOUND)\n") end file.printf("\n") file.printf(" find_path(#{cmakeIncDirName}\n") file.printf(" NAMES\n") file.printf(" #{header}\n") file.printf(" PATHS\n") if not pkgconfig.empty? file.printf(" ${_#{package.upcase}_INCLUDEDIR}\n") end file.printf(" /usr/include\n") file.printf(" /usr/local/include\n") file.printf(" /opt/local/include\n") file.printf(" /sw/include\n") if not incSubDir.empty? file.printf(" PATH_SUFFIXES\n") file.printf(" #{incSubDir}\n") end file.printf(" )\n") file.printf("\n") libs.split(" ").each do |lib| file.printf(" find_library(#{lib.upcase}_LIBRARY\n") file.printf(" NAMES\n") file.printf(" #{lib}\n") file.printf(" PATHS\n") if not pkgconfig.empty? file.printf(" ${_#{package.upcase}_LIBDIR}\n") end file.printf(" /usr/lib\n") file.printf(" /usr/local/lib\n") file.printf(" /opt/local/lib\n") file.printf(" /sw/lib\n") file.printf(" )\n") file.printf("\n") end file.printf(" set(#{cmakeIncDirNames}\n") file.printf(" ${#{cmakeIncDirName}}\n") file.printf(" )\n") file.printf("\n") libs.split(" ").each do |lib| file.printf(" if (#{lib.upcase}_LIBRARY)\n") file.printf(" set(#{cmakeLibNames}\n") file.printf(" ${#{cmakeLibNames}}\n") file.printf(" ${#{lib.upcase}_LIBRARY}\n") file.printf(" )\n") file.printf(" endif (#{lib.upcase}_LIBRARY)\n") file.printf("\n") end file.printf(" include(FindPackageHandleStandardArgs)\n") file.printf(" find_package_handle_standard_args(#{package} DEFAULT_MSG #{cmakeLibNames} #{cmakeIncDirNames})\n") file.printf("\n") file.printf(" # show the #{cmakeIncDirNames} and #{cmakeLibNames} variables only in the advanced view\n") file.printf(" mark_as_advanced(#{cmakeIncDirNames} #{cmakeLibNames})\n\n") file.printf("endif (#{cmakeLibNames} AND #{cmakeIncDirNames})\n\n") printf("Done, generated Find#{package}.cmake\n") desktop-2.6.2/cmake/scripts/generate_lib_file000066400000000000000000000074131360037132600213110ustar00rootroot00000000000000#!/usr/bin/env ruby # simple script to generate CMakeLists.txt for wengophone libs # # usage: generate_lib_file # then you will be prompted to enter the required parameters # ##################################################################### # # Copyright (c) 2006 Andreas Schneider # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # 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., 51 Franklin Street, Fifth Floor, # Boston, MA 02110-1301, USA. # print("Name of project: ") project=gets.chomp printf("\n") print("Other projects to include (e.g. \"owutil tinyxml\", leave emtpy to skip): ") otherprojects=gets.chomp printf("\n") print("Definitions (leave empty to skip): ") definitions=gets.chomp cmakePublicIncDirName = project.upcase+"_PUBLIC_INCLUDE_DIRS" cmakePrivateIncDirName = project.upcase+"_PRIVATE_INCLUDE_DIRS" cmakeLibName = project.upcase+"_LIBRARY" cmakeLibNames = project.upcase+"_LINK_LIBRARIES" cmakePublicDefsName = project.upcase+"_PUBLIC_DEFINITIONS" cmakePrivateDefsName = project.upcase+"_PRIVATE_DEFINITIONS" file=File.new("CMakeLists.txt", "w+") file.printf("project(#{project})\n") file.printf("\n") file.printf("# needed include directories to build #{project}\n") file.printf("# saves the variable in internal cache for later use\n") file.printf("set(#{cmakePublicIncDirName}\n") file.printf(" ${CMAKE_CURRENT_SOURCE_DIR}\n") file.printf(" ${CMAKE_CURRENT_SOURCE_DIR}/include\n") file.printf(" CACHE INTERNAL \"#{project} public include directories\"\n") file.printf(")\n") file.printf("\n") file.printf("set(#{cmakePrivateIncDirName}\n") otherprojects.split(" ").each do |otherproject| file.printf(" ${#{otherproject.upcase}_PUBLIC_INCLUDE_DIRS}\n") end file.printf(" ${CMAKE_CURRENT_BINARY_DIR}\n") file.printf(")\n") file.printf("\n") file.printf("set(#{cmakeLibName}\n") file.printf(" #{project}\n") file.printf(" CACHE INTERNAL \"#{project} library\"\n") file.printf(")\n") file.printf("\n") file.printf("# #{project} lib and dependencies\n") file.printf("set(#{cmakeLibNames}\n") file.printf(" #{cmakeLibName}\n") otherprojects.split(" ").each do |otherproject| file.printf(" ${#{otherproject.upcase}_LIBRARIES}\n") end file.printf(")\n") file.printf("\n") if not definitions.empty? file.printf("set(#{cmakePublicDefsName}\n") file.printf(" #{definitions}\n") file.printf(" CACHE INTERNAL \"#{project} public definitions\"\n") file.printf(")\n") file.printf("\n") file.printf("set(#{cmakePrivateDefsName}\n") file.printf(" #{definitions}\n") file.printf(")\n") file.printf("\n") end file.printf("set(#{project}_SRCS\n") file.printf(" files.c\n") file.printf(")\n") file.printf("\n") file.printf("include_directories(\n") file.printf(" ${#{cmakePublicIncDirName}}\n") file.printf(" ${#{cmakePrivateIncDirName}}\n") file.printf(")\n") file.printf("\n") if not definitions.empty? file.printf("add_definitions(\n") file.printf(" ${#{cmakePublicDefsName}}\n") file.printf(" ${#{cmakePrivateDefsName}}\n") file.printf(")\n") file.printf("\n") end file.printf("\n") file.printf("add_library(${#{cmakeLibName}} STATIC ${#{project}_SRCS})\n") file.printf("\n") file.printf("target_link_libraries(${#{cmakeLibNames}})\n") file.printf("\n") printf("Generated CMakeLists.txt for #{project}\n") desktop-2.6.2/config.h.in000066400000000000000000000025651360037132600152260ustar00rootroot00000000000000#ifndef CONFIG_H #define CONFIG_H #cmakedefine USE_INOTIFY 1 #cmakedefine WITH_QTKEYCHAIN 1 #cmakedefine WITH_CRASHREPORTER #cmakedefine WITH_PROVIDERS "@WITH_PROVIDERS@" #cmakedefine CRASHREPORTER_EXECUTABLE "@CRASHREPORTER_EXECUTABLE@" #define SOCKETAPI_TEAM_IDENTIFIER_PREFIX "@SOCKETAPI_TEAM_IDENTIFIER_PREFIX@" #cmakedefine APPLICATION_DOMAIN @APPLICATION_DOMAIN@ #cmakedefine THEME_CLASS @THEME_CLASS@ #cmakedefine THEME_INCLUDE @THEME_INCLUDE@ #cmakedefine APPLICATION_NAME "@APPLICATION_NAME@" #cmakedefine APPLICATION_VENDOR "@APPLICATION_VENDOR@" #cmakedefine APPLICATION_REV_DOMAIN "@APPLICATION_REV_DOMAIN@" #cmakedefine APPLICATION_SHORTNAME "@APPLICATION_SHORTNAME@" #cmakedefine APPLICATION_EXECUTABLE "@APPLICATION_EXECUTABLE@" #cmakedefine APPLICATION_UPDATE_URL "@APPLICATION_UPDATE_URL@" #cmakedefine APPLICATION_HELP_URL "@APPLICATION_HELP_URL@" #cmakedefine APPLICATION_ICON_NAME "@APPLICATION_ICON_NAME@" #cmakedefine APPLICATION_SERVER_URL "@APPLICATION_SERVER_URL@" #cmakedefine APPLICATION_WIZARD_HEADER_BACKGROUND_COLOR "@APPLICATION_WIZARD_HEADER_BACKGROUND_COLOR@" #cmakedefine APPLICATION_WIZARD_HEADER_TITLE_COLOR "@APPLICATION_WIZARD_HEADER_TITLE_COLOR@" #cmakedefine APPLICATION_WIZARD_USE_CUSTOM_LOGO "@APPLICATION_WIZARD_USE_CUSTOM_LOGO@" #cmakedefine ZLIB_FOUND @ZLIB_FOUND@ #cmakedefine SYSCONFDIR "@SYSCONFDIR@" #cmakedefine SHAREDIR "@SHAREDIR@" #endif desktop-2.6.2/doc/000077500000000000000000000000001360037132600137405ustar00rootroot00000000000000desktop-2.6.2/doc/CMakeLists.txt000066400000000000000000000101231360037132600164750ustar00rootroot00000000000000if(SPHINX_FOUND) # Sphinx cache with pickled ReST documents set(SPHINX_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees") # HTML output directory set(SPHINX_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/html") set(SPHINX_PDF_DIR "${CMAKE_CURRENT_BINARY_DIR}/latex") set(SPHINX_QCH_DIR "${CMAKE_CURRENT_BINARY_DIR}/qthelp") set(SPHINX_HTMLHELP_DIR "${CMAKE_CURRENT_BINARY_DIR}/htmlhelp") set(MSHTML_COMPILER wine 'C:\\Program Files\\HTML Help Workshop\\hhc.exe') # assets set(LATEX_LOGO "${CMAKE_CURRENT_SOURCE_DIR}/logo-blue.pdf") set(APPLICATION_DOC_DIR "${CMAKE_INSTALL_DOCDIR}/${PACKAGE}") install(DIRECTORY ${SPHINX_HTML_DIR} DESTINATION ${APPLICATION_DOC_DIR} OPTIONAL) install(DIRECTORY ${SPHINX_PDF_DIR} DESTINATION ${APPLICATION_DOC_DIR} OPTIONAL) install(DIRECTORY ${SPHINX_QCH_DIR} DESTINATION ${APPLICATION_DOC_DIR} OPTIONAL) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/conf.py" conf.py COPYONLY) if(WITH_DOC) add_custom_target(doc ALL DEPENDS doc-html COMMENT "Building documentation...") else(WITH_DOC) add_custom_target(doc DEPENDS doc-html COMMENT "Building documentation...") endif(WITH_DOC) if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ocdoc/_shared_assets") add_dependencies(doc doc-html-org) add_dependencies(doc doc-html-com) endif() if(PDFLATEX_FOUND) # if this still fails on Debian/Ubuntu, run # apt-get install texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended add_custom_target(doc-latex ${SPHINX_EXECUTABLE} -q -c . -b latex -d ${SPHINX_CACHE_DIR}/latex -D latex_logo=${LATEX_LOGO} ${CMAKE_CURRENT_SOURCE_DIR} ${SPHINX_PDF_DIR} ) set(MAKE "make" CACHE FILEPATH "make to be used for documentation generation if not using make as generator anyway") if(CMAKE_GENERATOR MATCHES "Makefiles") set(MAKE "$(MAKE)") endif() add_custom_target(doc-pdf ${MAKE} -C ${SPHINX_PDF_DIR} all-pdf DEPENDS doc-latex ) add_dependencies(doc doc-pdf) endif(PDFLATEX_FOUND) if (EXISTS ${QT_QCOLLECTIONGENERATOR_EXECUTABLE}) add_custom_target( doc-qch-sphinx ${SPHINX_EXECUTABLE} -q -c . -b qthelp -d ${SPHINX_CACHE_DIR}/qthelp ${CMAKE_CURRENT_SOURCE_DIR} ${SPHINX_QCH_DIR} ) add_custom_target( doc-qch ${QT_QCOLLECTIONGENERATOR_EXECUTABLE} ${SPHINX_QCH_DIR}/*.qhcp DEPENDS doc-qch-sphinx ) add_dependencies(doc doc-qch) endif() add_custom_target( doc-html ${SPHINX_EXECUTABLE} -q -c . -b html -d ${SPHINX_CACHE_DIR}/html ${CMAKE_CURRENT_SOURCE_DIR} ${SPHINX_HTML_DIR}/unthemed ) add_custom_target( doc-html-org ${SPHINX_EXECUTABLE} -q -c . -b html -d ${SPHINX_CACHE_DIR}/html -D html_theme=owncloud_org ${CMAKE_CURRENT_SOURCE_DIR} ${SPHINX_HTML_DIR}/org ) add_custom_target( doc-html-com ${SPHINX_EXECUTABLE} -q -c . -b html -d ${SPHINX_CACHE_DIR}/html -D html_theme=owncloud_com ${CMAKE_CURRENT_SOURCE_DIR} ${SPHINX_HTML_DIR}/com ) ## Building CHM files requires HTML Help Workshop. Since it requires wine ## with special dependencies, it's impossible to write a cmake check for it. ## This is why doc-chm is not a dependency for doc. Instead, run ## doc/scripts/htmlhelp.exe to install them and run this target ## explicitly. add_custom_target( doc-chm-sphinx ${SPHINX_EXECUTABLE} -q -c . -b htmlhelp -D html_theme=basic -d ${SPHINX_CACHE_DIR}/htmlhelp ${CMAKE_CURRENT_SOURCE_DIR} ${SPHINX_HTMLHELP_DIR} ) add_custom_target( doc-chm pushd ${SPHINX_HTMLHELP_DIR}; ${MSHTML_COMPILER} *.hhp; popd DEPENDS doc-chm-sphinx ) endif(SPHINX_FOUND)desktop-2.6.2/doc/Makefile000066400000000000000000000137061360037132600154070ustar00rootroot00000000000000 # Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " pdf to make PDF files" @echo " text to make text files" @echo " man to make manual pages" @echo " texinfo to make Texinfo files" @echo " info to make Texinfo files and run them through makeinfo" @echo " gettext to make PO message catalogs" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR)/* html: html-com html-all: html-release html-com html-release: $(SPHINXBUILD) -b html -D html_theme='nextcloud_release' $(ALLSPHINXOPTS) $(BUILDDIR)/html/release @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html/release." html-com: $(SPHINXBUILD) -b html -D html_theme='nextcloud_com' $(ALLSPHINXOPTS) $(BUILDDIR)/html/com @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html/com." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/OwncloudDocumentation.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/OwncloudDocumentation.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/OwncloudDocumentation" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/OwncloudDocumentation" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." $(MAKE) -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." pdf: $(SPHINXBUILD) -b pdf $(ALLSPHINXOPTS) $(BUILDDIR)/pdf @echo @echo "build finished. the text files are in $(BUILDDIR)/pdf." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "build finished. the text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." texinfo: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." @echo "Run \`make' in that directory to run these through makeinfo" \ "(use \`make info' here to do that automatically)." info: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo "Running Texinfo files through makeinfo..." make -C $(BUILDDIR)/texinfo info @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." gettext: $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale @echo @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." desktop-2.6.2/doc/_shared_assets/000077500000000000000000000000001360037132600167275ustar00rootroot00000000000000desktop-2.6.2/doc/_shared_assets/static/000077500000000000000000000000001360037132600202165ustar00rootroot00000000000000desktop-2.6.2/doc/_shared_assets/static/logo-blue.pdf000066400000000000000000000213571360037132600226060ustar00rootroot00000000000000%PDF-1.4 % 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Kids [3 0 R] /Type /Pages /Count 1 >> endobj 3 0 obj << /Resources << /ProcSet 4 0 R /XObject << /Im0 5 0 R >> >> /Contents 6 0 R /Parent 2 0 R /Type /Page /Thumb 7 0 R /MediaBox [0 0 145.5 54] /CropBox [0 0 145.5 54] >> endobj 6 0 obj << /Length 32 >> stream q 145.5 0 0 54 0 0 cm /Im0 Do Q endstream endobj 4 0 obj [/PDF /Text /ImageC] endobj 5 0 obj << /Subtype /Image /Name /Im0 /Type /XObject /Filter [/FlateDecode] /Width 194 /Height 72 /BitsPerComponent 8 /Length 4138 /ColorSpace 8 0 R /SMask 9 0 R >> stream xypUut:әUd*+.")X( HAjDDl€M`ȢagA ,HH [?p.瞫yXwd^=mjjBșS2V|zv!:R5[n(b q˪/OM=d\;tZhS2c-۹Fkr_j.wNg *~ww 씭a;TzsGlNoC5.ǡZ8'g|k5AQy%ΰaJ+7ؾoI8g`MJX|y,]E'[~u=M=yuNqֳ`>wZc-`NӉ.&Gfe;@(wIҫ@}rV,={&^*((@-,ʷG"jʤɱ~STWWF}>^ w '~mƎ-++j'cRO)֯b3n5:dM~=]5i?9q5mp!>uX= =o㏐EрE߼1ɪib6Y XYtg@p%`k"brߙEJ>u-)WYYɬi"Գ+JfʕآYoH ܬh\Tǽk-,y ^34-c};pW@,"A==sIj‚ DMi[P/n̔f7pXqqqSZ޵˵mʢUy=L!G"gYdkoSSֻdǏs5d/Okix]Dͥ%7akPlj s=zj{mXIJ*Sq'c Ϟ5 ݞGM6HOw6:zUÆҐ?>ԋE94 ڲ ݺ ?)1]|hqiEGuv=݋m_*կxnN.*"^*Rg׭]mu˞5b$V!{O)FGN̛'yM&++ ~䃹_v7_o;':q$.3g3ڶSOì(,B=rEsU,zJ5bѣGޯw˭8X)vX \lW܎jDL-嘏>(_BB,Bjx&afY<5'x (d>=ƫG !^TY$ZPJ8ۑ/8qɖ?ݵ"'q|4CZ)"lپ{IͲbԣZ tKΪ!km>+V\Įg kG8N>VS xA4eZ=( ^ţ$ '4ˊ+w){ymVX+'cW(|uORo]A?II;[ f ͲJX ڒ۵""=a؏$jEXm̌IWl*y ć7O{AkN:` sc}{1M%e~)d[cj}E׉965f,{S&c,0H amxѰjE{UWPlotoE0]"fYi tRF]6=V+,BOœuɊ"vI IȆQ$`"+U=YVxV g# ᪪.긮RdNrm9VXgIFo+7fiUgYA yP`)陼=SPGUC-[?=EE{ؚU< I+)xiW RХA(4,-@e!L-q<]|zO8+PGUv^AпzٲO}AQ8֮>ˡ !+S|d,FjXxHeLX!&P >>C5ANE!"4JVk{IGDE@nV5WLPRR"#YC~dw{ ZE;휩Yn+e?=,'dA1Ft JqoXTT$5Ǣb9oѬes۫b="Jޒp6Vc9_39lg4(Bѣ345МϚ\1=\rC;CYy%L:K,-wl䮝tIq2zrsr p [NKm& 9;AoD qec]/0`DY-oÂZ/=xK[dAȈXxn3d:.Wziܹ֙<Y!7\;eG)%55Qt'VX)֬^U]*2r xkW&S"S'O5IG ,z٬Bl?LcԱ#fNW]/4j_;5$DU{ȥLo6b[{SnzwcLԗD~|fDTɟ"ȹ`wYYNsXW%Sd)ɫCyA'ۙe%pzsRZ脁L<öo>IIQXAI!#=]?mޅ  vz($]lDEG/ *M˦ +K,̱bFG^wrÑ0ǂX +U1ѐ5 5yM;ZАK65S>nX͛ǀ%fL fg;кl, endstream endobj 8 0 obj /DeviceRGB endobj 7 0 obj << /Filter [/FlateDecode] /Width 106 /Height 39 /BitsPerComponent 8 /Length 3169 /ColorSpace 8 0 R >> stream xY TSgn;ef:33]eSQXj**"n ),֥jEAAAvB%O=zR='>=ÙX"I TE?L-eKZ;e{6H{f;oR.7ƧGYUNedpD+2nrU$WG[t\_>9g7*Z;dնT"qw-Nzf|v, 2?U/o8,fuN:{l-ˁ#dP?Br@?cD;<گ)mE?cEe54wy/q&w5vȰb g$Oŕoaz)s\閗8^Pwo&{iP&P,Qorxf=y>\VP;7mYptt?[>|W${ک:2BS콾xK,K+Y. P0 E""׍hMTVX. Nbs9c ; ]oDZb}XN,nA`יP;!א6=luX6ŖfֶZ CV+b7t Bbrd ǝG>wwj lP3AX| -Ifixt]xL`VtCCf&lePY5 ]{e *3tײq}co썽WZ[[sssSSr8i&5x==1nnj\\GK[uTi f_BqX˒Sv98lݼnߺueN_v*lS|_B0*""ol*c^8^)u_uws2a7UG"ob7m䘟yI>s\N7 U_^eYqNaa!Bx"0p4zcFz/m|>udFGF}D4Zb6[qAX|ʑ{߬U[ğ3|gTD$I{D~:z%%H>A~vTtuu1әW/mnj $@kWB7jpEklnQW{\#c%K 5g8?P_WGba rLH7ufΚĭ35fjhIBSUm :]"E)ĉ9FFUgbY U9FAભ]0Cq˿ݽ9#>DPU4DJO2gJx rp(aȫ}d\Ӽ\98Y]]MKJcr$&]NufP"3$M1x>''-ݼ5~[~Fmc~~yyyeee4 =Qt3df#йgQm%NJL"={QWC._8IOSUUÑ rQm]x>[a!oՈ{Wmqz I0IEH ;ͷ򉱾S dP  #G:;;?v|^`)^>]}{ ?GO59C666*NbEơ\`!yd77_:CރhDB0GFF`2 y889t]pՊԠ.EںN1~zUΟ;G snGio'(>[-+,MMPӠC<@AGK驩r Ƀ\:8@zOGs?%2wUxp0讽{= j9)5q Ag |`yY9Yy3QQ Q9{MވmA Gp@ tBA4z @☐%χ={$zxo@o*MW8_l 9M lEGF Eʾ444 NjnjxAgEt\<ꬃ=AZ-_SCyzᇦ:ѼP*߱ x11&탇Pj8V6C\r_3dLЙ P^C@l=§-(|UVT[]t jM7JR?)֖ \~D;1x),(M1R8#S9hl'w=: endstream endobj 9 0 obj << /Subtype /Image /Name /Ma0 /Type /XObject /Filter [/FlateDecode] /Width 194 /Height 72 /BitsPerComponent 8 /Length 36 /ColorSpace /DeviceGray >> stream x U7B>\ endstream endobj 10 0 obj << /ModDate (D:20160612185717) /CreationDate (D:20160612185717) /Title (logo-blue) /Producer (ImageMagick 6.9.1-2 Q16 x86_64 2016-05-15 http://www.imagemagick.org) >> endobj xref 0 11 0000000000 65535 f 0000000015 00000 n 0000000066 00000 n 0000000125 00000 n 0000000397 00000 n 0000000434 00000 n 0000000312 00000 n 0000004792 00000 n 0000004765 00000 n 0000008099 00000 n 0000008319 00000 n trailer << /Info 10 0 R /ID [<166e14ce4b478cc2682627554a727790d5f1d826b35ae090538e0ad8c572a5a7> <166e14ce4b478cc2682627554a727790d5f1d826b35ae090538e0ad8c572a5a7>] /Root 1 0 R /Size 11 >> startxref 8503 %%EOF desktop-2.6.2/doc/_shared_assets/static/logo-blue.png000066400000000000000000000147171360037132600226230ustar00rootroot00000000000000PNG  IHDRH*sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<LIDATxyյzfa`DQgd ˋQ-ŏ$hbb }11Y1ۋk $y*tw ]Ttܺ:S=+xZ^:_tCSD Gu{w,xm(K?=oCŢW?~z5Ge?wY),NǼ ~r ;`'wPrl.ab@NE.cmsr, ̝h抣;~ ݃Zq.bԻäs$7>Dʫ7xГ{yӗJϛ[ VfU JwNԵfW]jܮ}s -˫Q}^QԴ,S7„6ko9BI@wÆS( Bx}[:Yxy$#)`/[~Qra}sUΤyQ!L)Iہ..*QDnX>' #9BaT^ K\1f <ߩ%JVH>@{&,Q{?ݮ}#J{@r/kPz1]὎Lˉ>2_wVم]m RF9GeZ>YiW }#EdHe_D.5O# H/z}n?xF1W z=}ߧOuҏ!CJdeMI~km`Y Tl} ۹n׶ G^DXbЈ3AOpSZhe6PW ѧ+N~]#Jځ`i9zcImeN߽s8;g40Ė>3IB>znCpy(Qr ToD\,cx0,zm8PΥ^[skO9`+G s@D= GAap{sMq0jT֑-'vm<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<2L`BADiPa K+W7E8+V]̣PngѶ_@du)Es6EU {jLk+0ፈm04sIoe'O0aTȴVG 2Tv'xQ>Pv|h0Ⱦ9U4~}%c\c[EBysȲK Tk Ju@w%׮]3#j`5pw)t8Ft@DXC|CF 8GZyLJ #d'Z#|'(DdMM8䉌>Q~><ϡ*- `ۉQIk[rv%E?Kzu8a:~g1p@ضݎB=龍mBA1kVrA(aZPmgް =6VC?3[e* IP%uBǒڶVQ*#QtAs{!1*+,'V4͋D8%QMvM"2x%bۿ+MزWYFȴ@DG|ɪ5k\;?)[PHu{5ق6Dmv[\?9M/58RK[W2@*ďD}&~_Q41T({\tOi u]R|aӼBk}JwM!ӼuVnXCS(~ˀA_TE!|hQ}T9+8p W'j4[^sߺ Ԋ ~3EpfAu=H>&bO l~նo7.G񒾕3ANAωsܜ`U<_t:hlҝѽF@0]`E[z95)2\/0>HMd\SJ"nU5) %`|${5660?9SQqZ)r5LYo)"۾$bg06tq#Ji-)2HuUʅg0B&tQlT|&У–uc]/ѶK@zqfOQs6Vhϓ;1H$w%o 3)j .ȔU*&b9:l۶4Sr̐H\} bϖ,nELJT3 e?_ӋIܰrcș@fO "UD_<[(檡ƒHf"XQs2!sv7 ,;qBxސiN̷a# i=y(٠Y*2NRsq@ -,MU 58P+v@UJBp)57uVw|Ԙ<NRO2EvOٍ +**z/SiDb E0M<>P4Kem r7>R5d?!3PvN1.2k,+dP.n?8CrY  lE3h NF9B.g8 %9WLJ<Ȥx~eM-mز֛!3"b>%fh46t#jj@`鐺1plR4 2@T=6m#ٲ u&IEuBC}cFo>S/|!<ג,ΝQ0adž]cjK].5 5׍m=zÖ[#v2¦񺺆owUಷ֭+͆ i.Q[_= G>OTjFqV_alH.$,F8CEM+eĶ(& H$=e ځA(&=Sf"m{#8S vT|eӋ=m|8t')%x檮*|WU[=J?H7vuDV4gE.dbk׹/Au{c}DjQC~ P~+U_jmmrۇ_IewN8iҤʭ7KQ8B`dSы*gIP1#}l+ bhvjzhHdcA+HubqEݜ@*hRO)r&GDTB2y+*E'n9C= p9FaʕZO'םqٹH7'b Ɨ{#@mML̉ٗx6Й &R`ŊݭT3| 3Te@aFG|%KE] A?*$_dfMlN**/'ZLORg8`8!NT4'bX_]5MD A4gjlm=ؿt ˲T |Q%/W-xUqzHJGv$tqJ)FaTU|6r|3D9^CT8@a T5CԐ2B~o8Sq ՠ;DU] ,Q9F-1E_ο`cpB]_C3ŧSIENDB`desktop-2.6.2/doc/_shared_assets/static/social/000077500000000000000000000000001360037132600214705ustar00rootroot00000000000000desktop-2.6.2/doc/_shared_assets/static/social/diaspora.svg000066400000000000000000000042121360037132600240120ustar00rootroot00000000000000 image/svg+xmldesktop-2.6.2/doc/_shared_assets/static/social/diasporaround.png000066400000000000000000000050511360037132600250510ustar00rootroot00000000000000PNG  IHDRdd]bKGD̿ pHYs  tIME 7m IDATx՜{PT?(UQ|m|TQA.kB|$WujDt::i8$N҇iccQ'*c$㈯YFEhp_Ȳ{ .޽f=9~Ppjq#.7$G[bG%7e.p+sWKdp؁(W! @GRp9&wD It<7F!Yjd~J$ "i|t;ϲlm΃m"#26FD aclّĻAk4jE/泀45= #"fdl -/1;.,g͋啪_jf%ƌz#s47+5?2"#ڐE{hJLi/blaCrWSiTG*(b<NWTcvCE xE$*PV1hlCX-o]yD_T~B =Xx̏bFU&7\Q\DdE n8 E'"8I MIy@M]!֨l$JYhQ?HlDzS(}#(z%H\=sNQIFh ҝ8TQ4αU7y=˂/;k>Y7H1'rDc2Mn!JdTTnP.,2=>l'c;*לcxS*)qƵƘ01/3T4J_G^Sg𬐵ΈW)ռ*#ǻ|dU|5Ŕk0'[/1w_WTNR_q!2Jc V4TSɀ 6;#1-e9e(@,9|jP䀚~,q+G.7(}~1PJ.gdA>IAБt/^vhbC(2Žg%u}"nsc(B5H\t6>{Y* َP(g9:O*+ Ou}{섪tl{lm6vo9o5 u*5[2ழ@r⩣'XBPa*׸uHXQ[K\da^w3j At˸d(*W˯`-+)+Tk q11.< a{ئ#YʶvQ^3_"Rp]VFve)qxr4o\.)V!ƤDS렟x$YWj1˸JhdץQoi1\BZv_o CAS '{lMO[s 48)foy ǽD)*f$2O84̕9!"R^( E7ltg<U4S9Qf9=I򩷚m|F 0^^$"[|2> @a{Z !ш7~ܽQS̒p9wHƼ304zdl#a8.WyO}&cM?/qoj+-"LtsI)hE}y6 $ygQSCm򢹝 ^˛<ᙋ|ɵQ"CxF78A)6y:ӌDj.Rg$/3$YV am)K7S[4J #uTnF05ߡc\22Nw∿YIENDB`desktop-2.6.2/doc/_shared_assets/static/social/facebook.png000066400000000000000000000046751360037132600237630ustar00rootroot00000000000000PNG  IHDRddpT IDATxkٮmmDTUѢ()EiŨ-M4تQ@@DT@[@  QP(Vڴɞ;gԴMM${P63:333sp.]!JU IfƘ @V#@!z]yk[}CC3Mb*@X P:{[?2v.O*Hݳada€n 0 1pCo8!Wp 4EGoSuV"Ԫk9%dnx=6!vi9biro] $^Vϒ[c 5Xmf.ڭ95Ia/0g{πA_GAth4R,%t5υP 7h!M7H]%S&J&~W{:sdPVb0CcN5 D2@'-̔etYns(j0UDaH~Vp.*v(4zj@09^01`UZ|$ IJ 7&W&`/-xt1U_NJ@C~0`$8fKl+Y83`$sD6d )ǔ,}F@FY+&JAy7V5'JF@JvIp -0vL2~$"Ϫ'싖)b 4g aj5/s*Ds7Z,6OP^y 04%/>4+.N /!-6)E 4zœ@KvpfKߍ6q6E7;jޮ|˕Kgy\>F!ixS@?"GwBI^cKeUܤrXdf[G ۽ɲ@\U #`~ Eּxb!"B+2`  ^L(^|Y烲e 9%eTtѤ]?, aPJE_Ч~z*B";94.$B&%GH'LZ ;=oɶTƌ:ąۼtOq3>w@Ya!)Nn! "=4{h`>@,D XP0, B uva#(XĎa_i:@Qo( i[S0T@(]2\saA!9V@T+7VtQ~ mhqCrD@&xyzR<#L   }Ɂ ^iiG TbsDa̎@b@!)tLI+6׮ՀDv&TLe m*B%,6ޜ5Dz՜85fHtµn s`.52I \Wm)j IUPyGTdzbsu$Wxr("obET42x7V1Z$4NBPXЮ }Q\B?~ dt{[ILےG k(\BI3QٔS%EԪ=[n Joe8)Zr5a-YI u`w (.}Rm&}=K'KOg˾&w\%@,Mn20ۯsLw]u X(cp`?xCaFH&I+B/f@ߍuZk7N:J9C53U@DƘ+5qOɾ3 n"u,[Li,Lu*Dk)ߊ]\ E$}(@(\W~H Hwch;E/Шb#0?J/?:iۺIX@ ,? hELHaL@󙄁=ѴT^IENDB`desktop-2.6.2/doc/_shared_assets/static/social/googleplus.png000066400000000000000000000103561360037132600243630ustar00rootroot00000000000000PNG  IHDRddpTIDATxwsOҦmx(b -cUIVTUU PUAA@A9 EU`E(m澏3$=irsNHs۝%Td؝Ph!DJ ћQ PL)PW@ )p(Oz@I"\H^E?$)=R'@ 8J{ݲ!xr1+poŀMHS> Y*(zhJUW5Vz 1nЪ}d!Y&CJ'zU Db<4(իpq0V0cДؔ>in5oY:%iq{pЀ V5Z[EAKi[@X7v Rhrh]|tM$끄5W:Y$g4%]w\S-@Ŀ*D\7PܩP9{R!tLaQ@*MvހH@4 ]YP]jMȁzࢤ3pYV !YY]X9jT2UháӔyֻ;=υsp\n)7 4.ǟ񸋪 v0]@7`)x@PLj2s;7vAkk䬷rzQe6IC̃OA#C8Eupr1$7Wʫ]>Qŷc'16 @=ƕc'PV26'\_}ϫݱUEuT{qm*Ts=hoq5(1ꮮa8T~\ уu n(ڵ ΄`<ހT9[ ݎ?!iJKn84BԙJHbBġ\t TiAt%ˮooڗ@RQdQRw&:X I+9ջwB]>'0P0IJ\j%%{Vmd}HYln Mj1y-Ԏ̴=K$D[˱#ւŃCU ޹<{÷:\kX`D $.F.ݡfI[O{LH;rYc JAjBuDf*ZLRȓH4}>FkE9;*vӁ] o%uۀ_REA{U.ݨ;u7@ն|؎jl.XV&*Z\όB]ɕ'U,q"<dV pa{O8T'&2Mp/|i&d~XƄW] rRO>Yp+QywoՎ͠ F|/{/-↌pm9Pb|+ z4TF1v~4ӿI1:$D5ޖ!: 6)#/ mv v($+Ԝ0b)qD:kkBu`>rf6ڽ1j {cX+<?!|Fz> ~ 0pW0!;I T1H8wNLߢaZ^+:􎀨FA+:&ϭ[ uNmJW~D6Ĩ$2[jf{Ҁx:K(ýp6hIҀYq D?XO)`FGMiz,qS0.\=Lϩ}x1 J&m^^óm]LìUH#4]:!,ߪO{| 4GB,p-ɵb%}A؋ o&e"jF/ _@q@732ȁ7jx Gqqxj0|l[vW(H; Jov J U oNc(e{w\|y)MSQP{G`&'C' T?5ƒX*MOE+rWBx~t".a482Iy_hH*P,DqSmөr_81mRYE"6J#UĠN`Udoft_B}D]h} 5/P@c`B@lƜ\ZRFjE%n W8 ~JBĠ\axLQmR f FCb5y}nr0hEy"aU:S]IVSa$nxKX6G)v.BsM FjE\2ݽwI bH=h E{ptZKb b6JRB@P`2Tý΀2Rr交sW+ֹonR{OQ|' w҈Բ99Ts~b!UC"&.SE牡]g(,&MpDM uOv*Ize,CEbAtnڑ\ )F3~xa5Eve̿S*|ʅ8ykyb#UQ%l ^;MG_p?W=iklnml|g_+)ojg[tA5|hvt n,N.OHV+?X]hNl&AU8h@6RF}||{y][K;&s爒PAxo )I_oB݉P'혋f1Qkl;MV RBM.}k5 9.O'-k >X읝,!/vGb fXad=i[ߝzWY]a| jIRAUӇu@J}*VP60$<3 p4#BԷ %xOK_Oͦ>){ oo@ZA/ \m2,^rC_Vkd^y[.4^ioVPA0z{dR?%[` 7)_Iv@-0NjArl)#E+/ei 󅷤 `wD7nZ \C0!W: ihΥ%'(f$=5@#1[r{($0@"-GBL4;e(Mľz0HAȢ@Kd;%rXi{j>h4['Xp':TP @|NE{QVQ2bs)( SUZA(ca>G-%v9e57IENDB`desktop-2.6.2/doc/_shared_assets/static/social/mail.png000066400000000000000000000102061360037132600231170ustar00rootroot00000000000000PNG  IHDRddpTsBIT|d pHYs}}`ntEXtSoftwarewww.inkscape.org<IDATx{tUǿ;΋H < `e$('*f@HPu՝1rpq"=Q2;.$AO Ё#IBQ՝Lֽ߯u[+ae0LtL f I A~@Xnp@TH!M%pYrJUTXŚ+&<[O_p+sd)6S3ɜ4ZN:6-Rai۱ʩc(!xnYXTJ>IY zS`삝tI~p)w͛;d&~9-*M̧!VKt>]iٕ}^ ^uHJS]Q0j6ћB/8ʂƝcoC2' z6:.؛[o^Mi};d{n:UZ8ۥ 禂TRbw͆SY,h)s}?(BS.7LTȪ`-7SX. o\3}3ASfDd"9W_OKlɹ$L4ټnd CeC+[V i`9$X4ÅylKOYۓ|uC47TcF*%:KtW\hő!t )>2F3}3|]>); frr\i?+$3Iv{gT< OT:fav1L 1I~f @7XzG. w QځmhلR=vr-+cԯ2Q?soܩ̾3=5(VBo`}QSy!lR n?%AC3qAr:roؤ/jN^sF7nS30p4t>}^}VX5eC8)iL6Hæ!)nb8kӑ9bjO\S^K辀S3)zӣCh&pKڒxOǻ2'*gU3|zWWȄYϪmʛ7:ILg;!IKg7kt­M|"! Q]Jب;\&![?od6 1$3̈́7b,QP:[PگjMB­N<֥Rur;%,ffaN9z q>1}dٸ s쏘rfGY.<vMhOiV!BU"kpxpr)Aid `=Ua7w8$8Zer*G@UOYQ(Ye⯽CL!}DVM An>%DNydn~f Ł*?r܊\{Fk2U:&9Ł L0\dfGb}FNi;Q!Yv-(ȭUBO8dUQRTX_Mi^- Ώ$3u2NGPJŇ?|&{R*ن-gzSV)z&b&{;!N;l{gރ5lmgW|,4&,.`: et:K^>2jkNmxj#jkOG3*?V1q~[-&|}e@|>D r4X<;&9aagd$Fc٢ɩ8tL"^?ʶJL-<}bv]5!HBG9 8I.D0, WD L^f=UT^髧T? zIj53 #*p`@MII8w#bb<.3|;Cp(mF8DvvwL{mƹqx2CρNO_^*^:?ńgoӂyÜڪ}.6%X銬_u佸+BR#S1#xl4ٛHLcqc<"\ e_80x>k[ ~/aj6aujDG*Zs] aPCXB?DwBt5Ua %S`ztl+نzk}DZ++xocyr,Z "S* cW/ EfB&NE`j}6mxc]G/%7vFIS 22ڎfG3>>1L&r&?Uqaf@F,'u0J[Jp=- wq7'3%v /Cf:ۣ&ذV|oM!$MyKIM9n,ʁV_r+?~7w(/Į]p?( xij6ahqx,GcŃ0X9H!77qZmm6}$OLƊ:VEQ}Qxt))JxxBd@ɰ:3^7U܋5A'O!)4cft"\;q <]2e ,M pH|mEoؕHN=t SpTC!>Y TNt׆x=m=.WAgXbHMUlTq.XgyEញR9Uzt_;.X9Q ݜqqX5u2b3P^PjCeɲ*y>n}!6 #:)@pHk&,/Jg}mhGӦc4u1dA(hclmB!p!ug_ [F/C۾n8Cn o;L:ڥ}r+eRt^5W}Clg=]u]nP =RSsձE!U)lg]~ocW,>p-M.7s؋o꿑[9Qw*e~!kpW]TC=@Ah髧Q{\bم!]̢V ~ 1Z:&ge]r\;I\>bmq\!ج-lX5]>8f|Y -\VqD<ʹuS混W6P1R_tgŧReLX?{YO{J\7IGNa,mVטcg5A6:1׊9_VTLl.Ϭщ^?p\|z.58:ҏr6qZֳL}vŕJjM^ь$Pw[{ҟkieԼi6u :BA)B96 t-?\z2bvo<>FxHGW~UZ0%%>\mdg]{S{@ -m̲69h;*69z:_ ]/RPخ }zv=SI (˄e2n2+L"N}dQ -9+]/m+C% ,?\zroy={/3r)Rד/Iy^ 2WّlM‘N ˏnN. %O^f.Nj\:f[Y1*6?rZ|`YzDfZo6QT=v3od֥$vTRⳢL ZzhNM8ۥm2Ox@W;4''jBo(zq]q{? 3T NyDfhBVC}bG'D5;ö#e5>nW%2F&c檴ryXml9[u=g;עz;V23q>>$6#IrCbaErx{ΰyưrHgfdCb TQ1a9D%~T:j$,Qϙ X!Re%VvT7k-_ ?׍L?cAI_IENDB`desktop-2.6.2/doc/_shared_assets/static/social/mail.svg000066400000000000000000000066411360037132600231420ustar00rootroot00000000000000 image/svg+xml desktop-2.6.2/doc/_shared_assets/static/social/rss.png000066400000000000000000000104601360037132600230060ustar00rootroot00000000000000PNG  IHDRddpTsBIT|d pHYs+IDATx{|UՕksI !7 "* b XPkv |d#3h3Cmd)R)QyZ$<}qܻ=ޛ߿}Z9랳k.(&ҾT`!Pi׀41WjZ)n+dASXZ"gp3Fݯv͂!\W4Aӭ Zx?HJZ#;6*|ŐB>fQZ쓌W ̥tؑв7Z(@Ӊțj*0sWR'ԝ2\!x4"R 6X+|3TLCZʋ 5E̸dKl46./Ae$KOj&zj_JVG@/3cl;kaf&HG9;2`RvzUwMrhqnv'gSѡ2-o=t2qK@W('4s{ʲpyX)ٰO*Ȏa֊)& uSHI!%j"ʶcD^MXF"Eb>Jy{FizZvHhIxf>.ZS,9m4>[3\l2RCxqn64ΰ ܫxqD!\dU ;Ѩ'RL;wa`~?ۇGзQكƘx1.|!P&[.C̘PL 1c-K<}E@FnWFhLp^]hm\'>13Zp~=#GdĎ7y$.* ,r&G ߸^@/7f2f|x ~+`Э lg8'ڥ Gu@{r;@]sl)v8 B<ȕ m 66@^Y^~ޖs[sgt ߕ ܜ,@ڐipݼڷ~ {nnnYaG :bA9_]]ntMt>@ vo.!"/vceAar "Pv1+ )!k~!  IYADhf͉ 3JZ}NWB 3Al=3pF2rɓa{ u8A`a+U| Uo(4o<vT`0 tc %߁>g^}otG E= Uo!)0k?I!YLhD2Kp%8 Fj* 6Ga:{e-e_p %nCh*vq_z`G & }E]L}BDNlQC'oy C _!2!r@M~/@ jQ߅R]V@~pZ6{<r^q_A"ȕ ה%AhrE S"p7ED޸ 2*~"ܶ|\]e[,#v|W4'ࣻY=>@1,΢a3RMA9%찊)y`6L;A D}| NJY (>%DqmHA[P 憤jb5xry\<VX0WoU|$bɊ4 J`|^¬j89վDL"r̝DOw%#T]"̐sq୞ژ`z6Rve^ʼi76|RSncǀzwyfBlFu#eOp9&Εb_N ƃsjk v rh*-\Ė(  \Ce,t!ͽ|052<1)] cn^<)x6V -'e~3'Nrf"5 ([O;L ݮ*6kGVL+Ea:ə:QZ^O8}kL \/qPus81s'v$s8cn^o(p '-Wk3S#=sgp=ߧ<ئI `~ Иmm }+@DHb^D"~ԩ WQvb2d ;TIeDVż"eВ+&!&|X+|Ӥ޲7Z#4*foR;KI&ipbH~!p3J33a/$^\10U}e[}E,0ݚ AF"__>9!P}B~,h c[370a It+t %kiGb@Nl+|( WǔS[680àuIENDB`desktop-2.6.2/doc/_shared_assets/static/social/rss.svg000066400000000000000000000050331360037132600230210ustar00rootroot00000000000000 image/svg+xmldesktop-2.6.2/doc/_shared_assets/static/social/twitter.svg000066400000000000000000000035761360037132600237260ustar00rootroot00000000000000desktop-2.6.2/doc/_shared_assets/static/social/twitterround.png000066400000000000000000000072071360037132600247560ustar00rootroot00000000000000PNG  IHDRddpTNIDATxoγnֱ DTFuQjP04jQQD#*m#0dm[m]{ݺζyv=fqq܏qݩj8. fH'zk ϗC+0 Dz8qP2p|ڪL=@ "gK!W"kD΂}jN@J*VW"ƐTb~>'< %! yzT-4Q(C5S_R! ̿< WfBsRaP:%crlUYJ> (e˕$O%ڕ!0Hf{!Wӂdv:+PBD/ʤP(U+B6CJsoB)1/PN%(Us'G%#sx%OEaX+Fa{%D ~CxTQ ޕ=~ GK Rl] +*J1b]a߀H^Urq x0݀!qIY?ڈ6mW Jwa{U1Ho^O\lZtcL7iĦs-> 2MH?,b.~S3`AF su'y.d7LK[uH5h#Gmmǁ:%}EQj !1"snܐ. $bymgBc?TJ /j`G0DjKġ:6oOQDCE]*@]67 C[ϳ,'Sxk]9E4D4C@TdCL=Wg_Dwe)BgAG$ tT$+׏4aJ4bL 7)i˽qzwDŽ8,ˤZDy;2zjBe;(w"Ws2mԂO5cZ|tu< V7פքY3J I,&vnUnkk/ܔkHPH{ ?+!*Ry>\EiJa63RUFgmQ/dS`nɌZ__zK. -}@V Ya4HmRҸK0aV2F\NT^BE;{vrd9j4(,Rٔk~yYֳ*lM{j\k-ޟC4ZbvXf =?Wiҳ޶$KGX?eM9@C@`իk tDa&m^N*FÚѢ!L9gv ==քi -p9 `a =x][ggP;mk͙Ubf+35`1Tt 5y)[r-[fPNbOZ`Jw:-MҴ=_E;LJqYmԗCg̠"0—BRUN\_VO$zj˜ :WQkUՊoi8 Xӆx 3౑ư3/O9V1G$ Z"|:lFxCu$OByϔ<ŻmX7J8#, cM RS\j];#F+;d{!(&,a`' :lt<-bD-j4iߤN>?3Eum Q dO*-ZjcmctX9Ƅc5"A[ճ܋BQ;]`FH tvz93rc{dCx 4A+<O4h3]vr@j B]8mw oMcّH- :gBZ&\u; TVTi 9;l2ǦI٭X{\-XكP}A[>9B`mâlXiz,j`yb5fwyy>7 ,\^;ij2yjKGqXNСS̘c6O4o~;WNQ(Wr=S䭣MUS LH1Y8$`PS͠2_'?\(ZXYIU({jbp_Hc ku:T:FfwuNV:In{U)pBԍ2[U-缵ܜ]r*z7Lub+˖;O;zYLƿEHz"|͓I etbf Gd7D^n|@(#IpTw ". B 26$_B<((L!\< ޠ  6Ļ C DolkdI2RS oC .n$ J{ eLB.xdA_k"ek.)seJ͞,0-E1ù2VՈ;k_GIENDB`desktop-2.6.2/doc/_shared_assets/static/social/youtube.svg000066400000000000000000000034211360037132600237050ustar00rootroot00000000000000desktop-2.6.2/doc/_shared_assets/templates/000077500000000000000000000000001360037132600207255ustar00rootroot00000000000000desktop-2.6.2/doc/_shared_assets/themes/000077500000000000000000000000001360037132600202145ustar00rootroot00000000000000desktop-2.6.2/doc/_shared_assets/themes/bootstrap/000077500000000000000000000000001360037132600222315ustar00rootroot00000000000000desktop-2.6.2/doc/_shared_assets/themes/bootstrap/globaltoc.html000066400000000000000000000003371360037132600250700ustar00rootroot00000000000000 desktop-2.6.2/doc/_shared_assets/themes/bootstrap/layout.html000066400000000000000000000077501360037132600244450ustar00rootroot00000000000000{% extends "basic/layout.html" %} {% set script_files = script_files + ['_static/bootstrap.js'] %} {% set css_files = ['_static/bootstrap.css', '_static/bootstrap-sphinx.css'] + css_files %} {# Sidebar: Rework into our Boostrap nav section. #} {% macro navBar() %} {% endmacro %} {%- block extrahead %} {% endblock %} {% block header %}{{ navBar() }}{% endblock %} {# Silence the sidebar's, relbar's #} {% block sidebar1 %}{% endblock %} {% block sidebar2 %}{% endblock %} {% block relbar1 %}{% endblock %} {% block relbar2 %}{% endblock %} {%- block content %}
{% block body %} {% endblock %}
{%- endblock %} {%- block footer %}

Back to top

{%- if show_copyright %} {%- if hasdoc('copyright') %} {% trans path=pathto('copyright'), copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %}
{%- else %} {% trans copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %}
{%- endif %} {%- endif %} {%- if last_updated %} {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
{%- endif %} {%- if show_sphinx %} {% trans sphinx_version=sphinx_version|e %}Created using Sphinx {{ sphinx_version }}.{% endtrans %}
{%- endif %}

{%- endblock %} desktop-2.6.2/doc/_shared_assets/themes/bootstrap/localtoc.html000066400000000000000000000003501360037132600247150ustar00rootroot00000000000000 desktop-2.6.2/doc/_shared_assets/themes/bootstrap/relations.html000066400000000000000000000004601360037132600251170ustar00rootroot00000000000000{%- if prev %}
  • {{ "«"|safe }} {{ prev.title }}
  • {%- endif %} {%- if next %}
  • {{ next.title }} {{ "»"|safe }}
  • {%- endif %} desktop-2.6.2/doc/_shared_assets/themes/bootstrap/searchbox.html000066400000000000000000000005151360037132600250760ustar00rootroot00000000000000{%- if pagename != "search" %} {%- endif %} desktop-2.6.2/doc/_shared_assets/themes/bootstrap/sourcelink.html000066400000000000000000000002631360037132600252760ustar00rootroot00000000000000{%- if show_source and has_source and sourcename %}
  • {{ _('Source') }}
  • {%- endif %} desktop-2.6.2/doc/_shared_assets/themes/bootstrap/static/000077500000000000000000000000001360037132600235205ustar00rootroot00000000000000desktop-2.6.2/doc/_shared_assets/themes/bootstrap/static/bootstrap-responsive.css000066400000000000000000000244261360037132600304520ustar00rootroot00000000000000/*! * Bootstrap Responsive v2.0.3 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}@media(max-width:767px){.visible-phone{display:inherit!important}.hidden-phone{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(min-width:768px) and (max-width:979px){.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:18px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.modal{position:absolute;top:10px;right:10px;left:10px;width:auto;margin:0}.modal.fade.in{top:auto}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:auto;margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.762430939%;*margin-left:2.709239449638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.999999993%;*width:99.9468085036383%}.row-fluid .span11{width:91.436464082%;*width:91.38327259263829%}.row-fluid .span10{width:82.87292817100001%;*width:82.8197366816383%}.row-fluid .span9{width:74.30939226%;*width:74.25620077063829%}.row-fluid .span8{width:65.74585634900001%;*width:65.6926648596383%}.row-fluid .span7{width:57.182320438000005%;*width:57.129128948638304%}.row-fluid .span6{width:48.618784527%;*width:48.5655930376383%}.row-fluid .span5{width:40.055248616%;*width:40.0020571266383%}.row-fluid .span4{width:31.491712705%;*width:31.4385212156383%}.row-fluid .span3{width:22.928176794%;*width:22.874985304638297%}.row-fluid .span2{width:14.364640883%;*width:14.311449393638298%}.row-fluid .span1{width:5.801104972%;*width:5.747913482638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:714px}input.span11,textarea.span11,.uneditable-input.span11{width:652px}input.span10,textarea.span10,.uneditable-input.span10{width:590px}input.span9,textarea.span9,.uneditable-input.span9{width:528px}input.span8,textarea.span8,.uneditable-input.span8{width:466px}input.span7,textarea.span7,.uneditable-input.span7{width:404px}input.span6,textarea.span6,.uneditable-input.span6{width:342px}input.span5,textarea.span5,.uneditable-input.span5{width:280px}input.span4,textarea.span4,.uneditable-input.span4{width:218px}input.span3,textarea.span3,.uneditable-input.span3{width:156px}input.span2,textarea.span2,.uneditable-input.span2{width:94px}input.span1,textarea.span1,.uneditable-input.span1{width:32px}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:30px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.564102564%;*margin-left:2.510911074638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145300001%;*width:91.3997999636383%}.row-fluid .span10{width:82.905982906%;*width:82.8527914166383%}.row-fluid .span9{width:74.358974359%;*width:74.30578286963829%}.row-fluid .span8{width:65.81196581200001%;*width:65.7587743226383%}.row-fluid .span7{width:57.264957265%;*width:57.2117657756383%}.row-fluid .span6{width:48.717948718%;*width:48.6647572286383%}.row-fluid .span5{width:40.170940171000005%;*width:40.117748681638304%}.row-fluid .span4{width:31.623931624%;*width:31.5707401346383%}.row-fluid .span3{width:23.076923077%;*width:23.0237315876383%}.row-fluid .span2{width:14.529914530000001%;*width:14.4767230406383%}.row-fluid .span1{width:5.982905983%;*width:5.929714493638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:1160px}input.span11,textarea.span11,.uneditable-input.span11{width:1060px}input.span10,textarea.span10,.uneditable-input.span10{width:960px}input.span9,textarea.span9,.uneditable-input.span9{width:860px}input.span8,textarea.span8,.uneditable-input.span8{width:760px}input.span7,textarea.span7,.uneditable-input.span7{width:660px}input.span6,textarea.span6,.uneditable-input.span6{width:560px}input.span5,textarea.span5,.uneditable-input.span5{width:460px}input.span4,textarea.span4,.uneditable-input.span4{width:360px}input.span3,textarea.span3,.uneditable-input.span3{width:260px}input.span2,textarea.span2,.uneditable-input.span2{width:160px}input.span1,textarea.span1,.uneditable-input.span1{width:60px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top{position:static;margin-bottom:18px}.navbar-fixed-top .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 9px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#999;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#222}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222;border-bottom:1px solid #222;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} desktop-2.6.2/doc/_shared_assets/themes/bootstrap/static/bootstrap-sphinx.css_t000066400000000000000000000006121360037132600301000ustar00rootroot00000000000000/* * bootstrap-sphinx.css * ~~~~~~~~~~~~~~~~~~~~ * * Sphinx stylesheet -- Twitter Bootstrap theme. */ body { padding-top: 52px; } .navbar .brand { color: #FFF; text-shadow: #777 2px 2px 3px; } {%- block sidebarlogo %} {%- if logo %} .navbar h3 a, .navbar .brand { background: transparent url("{{ logo }}") no-repeat 22px 3px; padding-left: 62px; } {%- endif %} {%- endblock %} desktop-2.6.2/doc/_shared_assets/themes/bootstrap/static/bootstrap.css000066400000000000000000002400231360037132600262500ustar00rootroot00000000000000/*! * Bootstrap v2.0.3 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.127659574%;*margin-left:2.0744680846382977%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.99999998999999%;*width:99.94680850063828%}.row-fluid .span11{width:91.489361693%;*width:91.4361702036383%}.row-fluid .span10{width:82.97872339599999%;*width:82.92553190663828%}.row-fluid .span9{width:74.468085099%;*width:74.4148936096383%}.row-fluid .span8{width:65.95744680199999%;*width:65.90425531263828%}.row-fluid .span7{width:57.446808505%;*width:57.3936170156383%}.row-fluid .span6{width:48.93617020799999%;*width:48.88297871863829%}.row-fluid .span5{width:40.425531911%;*width:40.3723404216383%}.row-fluid .span4{width:31.914893614%;*width:31.8617021246383%}.row-fluid .span3{width:23.404255317%;*width:23.3510638276383%}.row-fluid .span2{width:14.89361702%;*width:14.8404255306383%}.row-fluid .span1{width:6.382978723%;*width:6.329787233638298%}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:""}.container-fluid:after{clear:both}p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px}p small{font-size:11px;color:#999}.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px}h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999}h1{font-size:30px;line-height:36px}h1 small{font-size:18px}h2{font-size:24px;line-height:36px}h2 small{font-size:18px}h3{font-size:18px;line-height:27px}h3 small{font-size:14px}h4,h5,h6{line-height:18px}h4{font-size:14px}h4 small{font-size:12px}h5{font-size:12px}h6{font-size:11px;color:#999;text-transform:uppercase}.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eee}.page-header h1{line-height:1}ul,ol{padding:0;margin:0 0 9px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}ul{list-style:disc}ol{list-style:decimal}li{line-height:18px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:18px}dt,dd{line-height:18px}dt{font-weight:bold;line-height:17px}dd{margin-left:9px}.dl-horizontal dt{float:left;width:120px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:130px}hr{margin:18px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}strong{font-weight:bold}em{font-style:italic}.muted{color:#999}abbr[title]{cursor:help;border-bottom:1px dotted #ddd}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px}blockquote small{display:block;line-height:18px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:18px;font-style:normal;line-height:18px}small{font-size:100%}cite{font-style:normal}code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12.025px;line-height:18px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:18px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 18px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333;border:0;border-bottom:1px solid #eee}legend small{font-size:13.5px;color:#999}label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:18px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px;color:#333}input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555;background-color:#fff;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.uneditable-textarea{width:auto;height:auto}label input,label textarea,label select{display:block}input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer;background-color:transparent;border:0 \9;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}input[type="image"]{border:0}input[type="file"]{width:auto;padding:initial;line-height:initial;background-color:#fff;background-color:initial;border:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto}select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px}input[type="file"]{line-height:18px \9}select{width:220px;background-color:#fff}select[multiple],select[size]{height:auto}input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}textarea{height:auto}input[type="hidden"]{display:none}.radio,.checkbox{min-height:18px;padding-left:18px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}input,textarea{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-ms-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}input:focus,textarea:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus,select:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:930px}input.span11,textarea.span11,.uneditable-input.span11{width:850px}input.span10,textarea.span10,.uneditable-input.span10{width:770px}input.span9,textarea.span9,.uneditable-input.span9{width:690px}input.span8,textarea.span8,.uneditable-input.span8{width:610px}input.span7,textarea.span7,.uneditable-input.span7{width:530px}input.span6,textarea.span6,.uneditable-input.span6{width:450px}input.span5,textarea.span5,.uneditable-input.span5{width:370px}input.span4,textarea.span4,.uneditable-input.span4{width:290px}input.span3,textarea.span3,.uneditable-input.span3{width:210px}input.span2,textarea.span2,.uneditable-input.span2{width:130px}input.span1,textarea.span1,.uneditable-input.span1{width:50px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee;border-color:#ddd}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #ddd;*zoom:1}.form-actions:before,.form-actions:after{display:table;content:""}.form-actions:after{clear:both}.uneditable-input{overflow:hidden;white-space:nowrap;cursor:not-allowed;background-color:#fff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}:-moz-placeholder{color:#999}::-webkit-input-placeholder{color:#999}.help-block,.help-inline{color:#555}.help-block{display:block;margin-bottom:9px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-prepend,.input-append{margin-bottom:5px}.input-prepend input,.input-append input,.input-prepend select,.input-append select,.input-prepend .uneditable-input,.input-append .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:middle;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend input:focus,.input-append input:focus,.input-prepend select:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{z-index:2}.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc}.input-prepend .add-on,.input-append .add-on{display:inline-block;width:auto;height:18px;min-width:16px;padding:4px 5px;font-weight:normal;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc}.input-prepend .add-on,.input-append .add-on,.input-prepend .btn,.input-append .btn{margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .uneditable-input{border-right-color:#ccc;border-left-color:#eee}.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:9px}legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:18px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:160px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:160px}.form-horizontal .help-block{margin-top:9px;margin-bottom:0}.form-horizontal .form-actions{padding-left:160px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:18px}.table th,.table td{padding:8px;line-height:18px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapsed;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5}table .span1{float:none;width:44px;margin-left:0}table .span2{float:none;width:124px;margin-left:0}table .span3{float:none;width:204px;margin-left:0}table .span4{float:none;width:284px;margin-left:0}table .span5{float:none;width:364px;margin-left:0}table .span6{float:none;width:444px;margin-left:0}table .span7{float:none;width:524px;margin-left:0}table .span8{float:none;width:604px;margin-left:0}table .span9{float:none;width:684px;margin-left:0}table .span10{float:none;width:764px;margin-left:0}table .span11{float:none;width:844px;margin-left:0}table .span12{float:none;width:924px;margin-left:0}table .span13{float:none;width:1004px;margin-left:0}table .span14{float:none;width:1084px;margin-left:0}table .span15{float:none;width:1164px;margin-left:0}table .span16{float:none;width:1244px;margin-left:0}table .span17{float:none;width:1324px;margin-left:0}table .span18{float:none;width:1404px;margin-left:0}table .span19{float:none;width:1484px;margin-left:0}table .span20{float:none;width:1564px;margin-left:0}table .span21{float:none;width:1644px;margin-left:0}table .span22{float:none;width:1724px;margin-left:0}table .span23{float:none;width:1804px;margin-left:0}table .span24{float:none;width:1884px;margin-left:0}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0}.icon-white{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";opacity:.3;filter:alpha(opacity=30)}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:4px 0;margin:1px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:8px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#08c}.open{*z-index:1000}.open .dropdown-menu{display:block}.pull-right .dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0,0,0,0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;filter:alpha(opacity=0);-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-ms-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1;filter:alpha(opacity=100)}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-ms-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 10px 4px;margin-bottom:0;*margin-left:.3em;font-size:13px;line-height:18px;*line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(top,#fff,#e6e6e6);background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff',endColorstr='#e6e6e6',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-ms-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-large [class^="icon-"]{margin-top:1px}.btn-small{padding:5px 9px;font-size:11px;line-height:16px}.btn-small [class^="icon-"]{margin-top:-1px}.btn-mini{padding:2px 6px;font-size:11px;line-height:14px}.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn{border-color:#ccc;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn-primary{background-color:#0074cc;*background-color:#05c;background-image:-ms-linear-gradient(top,#08c,#05c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#05c));background-image:-webkit-linear-gradient(top,#08c,#05c);background-image:-o-linear-gradient(top,#08c,#05c);background-image:-moz-linear-gradient(top,#08c,#05c);background-image:linear-gradient(top,#08c,#05c);background-repeat:repeat-x;border-color:#05c #05c #003580;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#0088cc',endColorstr='#0055cc',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#05c;*background-color:#004ab3}.btn-primary:active,.btn-primary.active{background-color:#004099 \9}.btn-warning{background-color:#faa732;*background-color:#f89406;background-image:-ms-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450',endColorstr='#f89406',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{background-color:#da4f49;*background-color:#bd362f;background-image:-ms-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(top,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#bd362f',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{background-color:#5bb75b;*background-color:#51a351;background-image:-ms-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(top,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#62c462',endColorstr='#51a351',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{background-color:#49afcd;*background-color:#2f96b4;background-image:-ms-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(top,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de',endColorstr='#2f96b4',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{background-color:#414141;*background-color:#222;background-image:-ms-linear-gradient(top,#555,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#555),to(#222));background-image:-webkit-linear-gradient(top,#555,#222);background-image:-o-linear-gradient(top,#555,#222);background-image:-moz-linear-gradient(top,#555,#222);background-image:linear-gradient(top,#555,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#555555',endColorstr='#222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-group{position:relative;*margin-left:.3em;*zoom:1}.btn-group:before,.btn-group:after{display:table;content:""}.btn-group:after{clear:both}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:9px;margin-bottom:9px}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1}.btn-group>.btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.dropdown-toggle{*padding-top:4px;padding-right:8px;*padding-bottom:4px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini.dropdown-toggle{padding-right:5px;padding-left:5px}.btn-group>.btn-small.dropdown-toggle{*padding-top:4px;*padding-bottom:4px}.btn-group>.btn-large.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#05c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:7px;margin-left:0}.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100)}.btn-mini .caret{margin-top:5px}.btn-small .caret{margin-top:6px}.btn-large .caret{margin-top:6px;border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-top:0;border-bottom:5px solid #000}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:.75;filter:alpha(opacity=75)}.alert{padding:8px 35px 8px 14px;margin-bottom:18px;color:#c09853;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert-heading{color:inherit}.alert .close{position:relative;top:-2px;right:-21px;line-height:18px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:18px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>.pull-right{float:right}.nav .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:18px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:8px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:18px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333;border-bottom-color:#333}.nav>.dropdown.active>a:hover{color:#000;cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.navbar{*position:relative;*z-index:2;margin-bottom:18px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top,#333,#222);background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1)}.navbar .container{width:auto}.nav-collapse.collapse{height:auto}.navbar{color:#999}.navbar .brand:hover{text-decoration:none}.navbar .brand{display:block;float:left;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#999}.navbar .navbar-text{margin-bottom:0;line-height:40px}.navbar .navbar-link{color:#999}.navbar .navbar-link:hover{color:#fff}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn{margin:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#fff;background-color:#626262;border:1px solid #151515;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-bottom{bottom:0}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right}.navbar .nav>li{display:block;float:left}.navbar .nav>li>a{float:none;padding:9px 10px 11px;line-height:19px;color:#999;text-decoration:none;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar .btn{display:inline-block;padding:4px 10px 4px;margin:5px 5px 6px;line-height:18px}.navbar .btn-group{padding:5px 5px 6px;margin:0}.navbar .nav>li>a:hover{color:#fff;text-decoration:none;background-color:transparent}.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#fff;text-decoration:none;background-color:#222}.navbar .divider-vertical{width:1px;height:40px;margin:0 9px;overflow:hidden;background-color:#222;border-right:1px solid #333}.navbar .nav.pull-right{margin-right:0;margin-left:10px}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;background-color:#2c2c2c;*background-color:#222;background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);background-image:-moz-linear-gradient(top,#333,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{background-color:#222;*background-color:#151515}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#080808 \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown .dropdown-toggle .caret,.navbar .nav li.dropdown.open .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .nav li.dropdown.active .caret{opacity:1;filter:alpha(opacity=100)}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:transparent}.navbar .nav li.dropdown.active>.dropdown-toggle:hover{color:#fff}.navbar .pull-right .dropdown-menu,.navbar .dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right .dropdown-menu:before,.navbar .dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right .dropdown-menu:after,.navbar .dropdown-menu.pull-right:after{right:13px;left:auto}.breadcrumb{padding:7px 14px;margin:0 0 18px;list-style:none;background-color:#fbfbfb;background-image:-moz-linear-gradient(top,#fff,#f5f5f5);background-image:-ms-linear-gradient(top,#fff,#f5f5f5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#fff,#f5f5f5);background-image:-o-linear-gradient(top,#fff,#f5f5f5);background-image:linear-gradient(top,#fff,#f5f5f5);background-repeat:repeat-x;border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff',endColorstr='#f5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.breadcrumb li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb .divider{padding:0 5px;color:#999}.breadcrumb .active a{color:#333}.pagination{height:36px;margin:18px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination li{display:inline}.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0}.pagination a:hover,.pagination .active a{background-color:#f5f5f5}.pagination .active a{color:#999;cursor:default}.pagination .disabled span,.pagination .disabled a,.pagination .disabled a:hover{color:#999;cursor:default;background-color:transparent}.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pager{margin-bottom:18px;margin-left:0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;content:""}.pager:after{clear:both}.pager li{display:inline}.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next a{float:right}.pager .previous a{float:left}.pager .disabled a,.pager .disabled a:hover{color:#999;cursor:default;background-color:#fff}.modal-open .dropdown-menu{z-index:2050}.modal-open .dropdown.open{*z-index:2050}.modal-open .popover{z-index:2060}.modal-open .tooltip{z-index:2070}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;width:560px;margin:-250px 0 0 -280px;overflow:auto;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-ms-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-body{max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.tooltip{position:absolute;z-index:1020;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-2px}.tooltip.right{margin-left:2px}.tooltip.bottom{margin-top:2px}.tooltip.left{margin-left:-2px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top:5px solid #000;border-right:5px solid transparent;border-left:5px solid transparent}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-right:5px solid transparent;border-bottom:5px solid #000;border-left:5px solid transparent}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-right:5px solid #000;border-bottom:5px solid transparent}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px}.popover.top{margin-top:-5px}.popover.right{margin-left:5px}.popover.bottom{margin-top:5px}.popover.left{margin-left:-5px}.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-top:5px solid #000;border-right:5px solid transparent;border-left:5px solid transparent}.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-right:5px solid #000;border-bottom:5px solid transparent}.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-right:5px solid transparent;border-bottom:5px solid #000;border-left:5px solid transparent}.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000}.popover .arrow{position:absolute;width:0;height:0}.popover-inner{width:280px;padding:3px;overflow:hidden;background:#000;background:rgba(0,0,0,0.8);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3)}.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.popover-content{padding:14px;background-color:#fff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:18px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:0 1px 1px rgba(0,0,0,0.075);box-shadow:0 1px 1px rgba(0,0,0,0.075)}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px}.label,.badge{font-size:10.998px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{padding:1px 4px 2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding:1px 9px 2px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:18px;margin-bottom:18px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-ms-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(top,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#f5f5f5',endColorstr='#f9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{width:0;height:18px;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(top,#149bdf,#0480be);background-image:-ms-linear-gradient(top,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#149bdf',endColorstr='#0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-ms-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .bar{background-color:#149bdf;background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-ms-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(top,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35',GradientType=0)}.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-ms-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(top,#62c462,#57a957);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#62c462',endColorstr='#57a957',GradientType=0)}.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-ms-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(top,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de',endColorstr='#339bb9',GradientType=0)}.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-ms-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450',endColorstr='#f89406',GradientType=0)}.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:18px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:18px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel .item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-ms-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel .item>img{display:block;line-height:1}.carousel .active,.carousel .next,.carousel .prev{display:block}.carousel .active{left:0}.carousel .next,.carousel .prev{position:absolute;top:0;width:100%}.carousel .next{left:100%}.carousel .prev{left:-100%}.carousel .next.left,.carousel .prev.right{left:0}.carousel .active.left{left:-100%}.carousel .active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:10px 15px 5px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{color:#fff}.hero-unit{padding:60px;margin-bottom:30px;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit p{font-size:18px;font-weight:200;line-height:27px;color:inherit}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden} desktop-2.6.2/doc/_shared_assets/themes/bootstrap/static/bootstrap.js000066400000000000000000000534631360037132600261060ustar00rootroot00000000000000/*! * Bootstrap.js by @fat & @mdo * Copyright 2012 Twitter, Inc. * http://www.apache.org/licenses/LICENSE-2.0.txt */ !function(a){a(function(){"use strict",a.support.transition=function(){var a=function(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd",transition:"transitionend"},c;for(c in b)if(a.style[c]!==undefined)return b[c]}();return a&&{end:a}}()})}(window.jQuery),!function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function f(){e.trigger("closed").remove()}var c=a(this),d=c.attr("data-target"),e;d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),e=a(d),b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger(b=a.Event("close"));if(b.isDefaultPrevented())return;e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.on(a.support.transition.end,f):f()},a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("alert");e||d.data("alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a(function(){a("body").on("click.alert.data-api",b,c.prototype.close)})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.button.defaults,c)};b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.data(),e=c.is("input")?"val":"html";a+="Text",d.resetText||c.data("resetText",c[e]()),c[e](d[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.parent('[data-toggle="buttons-radio"]');a&&a.find(".active").removeClass("active"),this.$element.toggleClass("active")},a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f=typeof c=="object"&&c;e||d.data("button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.defaults={loadingText:"loading..."},a.fn.button.Constructor=b,a(function(){a("body").on("click.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle")})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=c,this.options.slide&&this.slide(this.options.slide),this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.prototype={cycle:function(b){return b||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},to:function(b){var c=this.$element.find(".active"),d=c.parent().children(),e=d.index(c),f=this;if(b>d.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){f.to(b)}):e==b?this.pause().cycle():this.slide(b>e?"next":"prev",a(d[b]))},pause:function(a){return a||(this.paused=!0),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(b,c){var d=this.$element.find(".active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this,j=a.Event("slide");this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h]();if(e.hasClass("active"))return;if(a.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(j);if(j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),this.$element.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)})}else{this.$element.trigger(j);if(j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}},a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("carousel"),f=a.extend({},a.fn.carousel.defaults,typeof c=="object"&&c);e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):typeof c=="string"||(c=f.slide)?e[c]():f.interval&&e.cycle()})},a.fn.carousel.defaults={interval:5e3,pause:"hover"},a.fn.carousel.Constructor=b,a(function(){a("body").on("click.carousel.data-api","[data-slide]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=!e.data("modal")&&a.extend({},e.data(),c.data());e.carousel(f),b.preventDefault()})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.collapse.defaults,c),this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.prototype={constructor:b,dimension:function(){var a=this.$element.hasClass("width");return a?"width":"height"},show:function(){var b,c,d,e;if(this.transitioning)return;b=this.dimension(),c=a.camelCase(["scroll",b].join("-")),d=this.$parent&&this.$parent.find("> .accordion-group > .in");if(d&&d.length){e=d.data("collapse");if(e&&e.transitioning)return;d.collapse("hide"),e||d.data("collapse",null)}this.$element[b](0),this.transition("addClass",a.Event("show"),"shown"),this.$element[b](this.$element[0][c])},hide:function(){var b;if(this.transitioning)return;b=this.dimension(),this.reset(this.$element[b]()),this.transition("removeClass",a.Event("hide"),"hidden"),this.$element[b](0)},reset:function(a){var b=this.dimension();return this.$element.removeClass("collapse")[b](a||"auto")[0].offsetWidth,this.$element[a!==null?"addClass":"removeClass"]("collapse"),this},transition:function(b,c,d){var e=this,f=function(){c.type=="show"&&e.reset(),e.transitioning=0,e.$element.trigger(d)};this.$element.trigger(c);if(c.isDefaultPrevented())return;this.transitioning=1,this.$element[b]("in"),a.support.transition&&this.$element.hasClass("collapse")?this.$element.one(a.support.transition.end,f):f()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("collapse"),f=typeof c=="object"&&c;e||d.data("collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.defaults={toggle:!0},a.fn.collapse.Constructor=b,a(function(){a("body").on("click.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e).data("collapse")?"toggle":c.data();a(e).collapse(f)})})}(window.jQuery),!function(a){function d(){a(b).parent().removeClass("open")}"use strict";var b='[data-toggle="dropdown"]',c=function(b){var c=a(b).on("click.dropdown.data-api",this.toggle);a("html").on("click.dropdown.data-api",function(){c.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(b){var c=a(this),e,f,g;if(c.is(".disabled, :disabled"))return;return f=c.attr("data-target"),f||(f=c.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,"")),e=a(f),e.length||(e=c.parent()),g=e.hasClass("open"),d(),g||e.toggleClass("open"),!1}},a.fn.dropdown=function(b){return this.each(function(){var d=a(this),e=d.data("dropdown");e||d.data("dropdown",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.dropdown.Constructor=c,a(function(){a("html").on("click.dropdown.data-api",d),a("body").on("click.dropdown",".dropdown form",function(a){a.stopPropagation()}).on("click.dropdown.data-api",b,c.prototype.toggle)})}(window.jQuery),!function(a){function c(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),d.call(b)},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),d.call(b)})}function d(a){this.$element.hide().trigger("hidden"),e.call(this)}function e(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('