From 7f7becdb6ab603d3f007fafa7fbd2fb2d9724867 Mon Sep 17 00:00:00 2001 From: ci-bot Date: Thu, 25 Dec 2025 03:22:52 +0000 Subject: [PATCH] Deployed d2158162 to 13.0 with MkDocs 1.6.1 and mike 2.1.3 --- 13.0/404.html | 120 ++- 13.0/404/index.html | 120 ++- 13.0/administration/account/index.html | 120 ++- 13.0/administration/auditing/index.html | 120 ++- .../administration/backup_recovery/index.html | 120 ++- 13.0/administration/clean_database/index.html | 120 ++- 13.0/administration/export_report/index.html | 120 ++- 13.0/administration/index.html | 120 ++- 13.0/administration/logs/index.html | 120 ++- 13.0/administration/seafile_fsck/index.html | 120 ++- 13.0/administration/seafile_gc/index.html | 120 ++- .../administration/seafile_metrics/index.html | 120 ++- .../security_features/index.html | 120 ++- .../two_factor_authentication/index.html | 120 ++- .../index.html | 120 ++- .../index.html | 120 ++- 13.0/changelog/client-changelog/index.html | 120 ++- .../drive-client-changelog/index.html | 120 ++- 13.0/changelog/index.html | 120 ++- .../changelog/server-changelog-old/index.html | 120 ++- 13.0/changelog/server-changelog/index.html | 120 ++- .../config/admin_roles_permissions/index.html | 120 ++- 13.0/config/auth_switch/index.html | 120 ++- 13.0/config/auto_login_seadrive/index.html | 120 ++- .../config_seafile_with_ADFS/index.html | 120 ++- .../customize_email_notifications/index.html | 120 ++- .../details_about_file_search/index.html | 120 ++- 13.0/config/env/index.html | 120 ++- 13.0/config/index.html | 120 ++- 13.0/config/ldap_in_ce/index.html | 120 ++- 13.0/config/ldap_in_pro/index.html | 120 ++- 13.0/config/multi_institutions/index.html | 120 ++- 13.0/config/multi_tenancy/index.html | 120 ++- 13.0/config/oauth/index.html | 120 ++- 13.0/config/ocm/index.html | 120 ++- 13.0/config/remote_user/index.html | 120 ++- 13.0/config/roles_permissions/index.html | 120 ++- 13.0/config/saml2/index.html | 120 ++- 13.0/config/seafevents-conf/index.html | 120 ++- 13.0/config/seafile-conf/index.html | 120 ++- 13.0/config/seahub_customization/index.html | 120 ++- 13.0/config/seahub_settings_py/index.html | 120 ++- 13.0/config/sending_email/index.html | 120 ++- .../shibboleth_authentication/index.html | 120 ++- 13.0/config/single_sign_on/index.html | 120 ++- 13.0/develop/build_seafile/index.html | 165 ++-- 13.0/develop/data_model/index.html | 123 ++- 13.0/develop/index.html | 129 ++- 13.0/develop/linux/index.html | 127 ++- 13.0/develop/osx/index.html | 123 ++- 13.0/develop/rpi/index.html | 815 +++--------------- 13.0/develop/server/index.html | 139 ++- 13.0/develop/translation/index.html | 123 ++- 13.0/develop/web_api_v2.1/index.html | 123 ++- 13.0/develop/windows/index.html | 129 ++- .../extension/distributed_indexing/index.html | 120 ++- 13.0/extension/fuse/index.html | 120 ++- 13.0/extension/libreoffice_online/index.html | 120 ++- 13.0/extension/metadata-server/index.html | 120 ++- 13.0/extension/notification-server/index.html | 120 ++- 13.0/extension/office_web_app/index.html | 120 ++- 13.0/extension/only_office/index.html | 120 ++- 13.0/extension/seafile-ai/index.html | 120 ++- 13.0/extension/setup_seadoc/index.html | 120 ++- 13.0/extension/thumbnail-server/index.html | 120 ++- 13.0/extension/virus_scan/index.html | 120 ++- .../virus_scan_with_clamav/index.html | 120 ++- .../virus_scan_with_kav4fs/index.html | 120 ++- 13.0/extension/webdav/index.html | 120 ++- 13.0/index.html | 120 ++- 13.0/introduction/contribution/index.html | 120 ++- .../file_permission_management/index.html | 120 ++- 13.0/introduction/roadmap/index.html | 120 ++- .../index.html | 120 ++- 13.0/search/search_index.json | 2 +- 13.0/setup/architecture/index.html | 120 ++- 13.0/setup/caddy/index.html | 120 ++- .../cluster_deploy_with_docker/index.html | 120 ++- 13.0/setup/cluster_deploy_with_k8s/index.html | 120 ++- 13.0/setup/helm_chart_cluster/index.html | 120 ++- 13.0/setup/helm_chart_single_node/index.html | 120 ++- 13.0/setup/k8s_advanced_management/index.html | 120 ++- 13.0/setup/k8s_single_node/index.html | 120 ++- 13.0/setup/migrate_backends_data/index.html | 120 ++- .../migrate_ce_to_pro_with_docker/index.html | 120 ++- .../migrate_non_docker_to_docker/index.html | 120 ++- 13.0/setup/overview/index.html | 120 ++- .../index.html | 120 ++- .../setup/seafile_docker_autostart/index.html | 120 ++- 13.0/setup/setup_ce_by_docker/index.html | 120 ++- 13.0/setup/setup_pro_by_docker/index.html | 120 ++- .../index.html | 120 ++- 13.0/setup/setup_with_ceph/index.html | 120 ++- .../index.html | 120 ++- 13.0/setup/setup_with_s3/index.html | 120 ++- 13.0/setup/setup_with_swift/index.html | 120 ++- 13.0/setup/system_requirements/index.html | 120 ++- 13.0/setup/use_other_reverse_proxy/index.html | 120 ++- 13.0/setup/use_seasearch/index.html | 120 ++- .../cluster_deployment/index.html | 120 ++- 13.0/setup_binary/https_with_nginx/index.html | 120 ++- 13.0/setup_binary/installation/index.html | 120 ++- 13.0/setup_binary/outline/index.html | 120 ++- .../start_seafile_at_system_bootup/index.html | 120 ++- 13.0/setup_binary/using_logrotate/index.html | 120 ++- 13.0/sitemap.xml | 226 ++--- 13.0/sitemap.xml.gz | Bin 1261 -> 1261 bytes .../index.html | 120 ++- 13.0/upgrade/upgrade/index.html | 120 ++- 13.0/upgrade/upgrade_a_cluster/index.html | 120 ++- .../upgrade_a_cluster_binary/index.html | 120 ++- 13.0/upgrade/upgrade_docker/index.html | 120 ++- .../upgrade_notes_for_10.0.x/index.html | 120 ++- .../upgrade_notes_for_11.0.x/index.html | 120 ++- .../upgrade_notes_for_12.0.x/index.html | 120 ++- .../upgrade_notes_for_13.0.x/index.html | 120 ++- .../upgrade_notes_for_9.0.x/index.html | 120 ++- 117 files changed, 10446 insertions(+), 4258 deletions(-) diff --git a/13.0/404.html b/13.0/404.html index 39bef722..ca614a1a 100644 --- a/13.0/404.html +++ b/13.0/404.html @@ -4627,7 +4627,7 @@ - How to Build Seafile + Seafile client @@ -4643,7 +4643,7 @@ - How to Build Seafile + Seafile client @@ -4655,34 +4655,6 @@ -
  • - - - - - - - - Outline - - - - - - - - -
  • - - - - - - - - - -
  • @@ -4761,6 +4733,94 @@ + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + @@ -5678,199 +5252,6 @@

    How to Build Seafile Server Release Package

    From Seafile 11.0, you can build Seafile release package with seafile-build script. You can check the README.md file in the same folder for detailed instructions.

    The seafile-build.sh compatible with more platforms, including Raspberry Pi, arm-64, x86-64.

    -
    -

    Old version is below:

    -

    Table of contents:

    - -

    Setup the build environment

    -

    Requirements:

    -
      -
    • A raspberry pi with raspian distribution installed.
    • -
    -

    Install packages

    -
    sudo apt-get install build-essential
    -sudo apt-get install libevent-dev libcurl4-openssl-dev libglib2.0-dev uuid-dev intltool libsqlite3-dev libmysqlclient-dev libarchive-dev libtool libjansson-dev valac libfuse-dev re2c flex python-setuptools cmake
    -
    -

    Compile development libraries

    -

    libevhtp

    -

    libevhtp is a http server libary on top of libevent. It's used in seafile file server.

    -
    git clone https://www.github.com/haiwen/libevhtp.git
    -cd libevhtp
    -cmake -DEVHTP_DISABLE_SSL=ON -DEVHTP_BUILD_SHARED=OFF .
    -make
    -sudo make install
    -
    -

    After compiling all the libraries, run ldconfig to update the system libraries cache:

    -
    sudo ldconfig
    -
    -

    Install python libraries

    -

    Create a new directory /home/pi/dev/seahub_thirdpart:

    -
    mkdir -p ~/dev/seahub_thirdpart
    -
    -

    Download these tarballs to /tmp/:

    - -

    Install all these libaries to /home/pi/dev/seahub_thirdpart:

    -
    cd ~/dev/seahub_thirdpart
    -export PYTHONPATH=.
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/pytz-2016.1.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/Django-1.8.10.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/django-statici18n-1.1.3.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/djangorestframework-3.3.2.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/django_compressor-1.4.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/jsonfield-1.0.3.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/django-post_office-2.0.6.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/gunicorn-19.4.5.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/flup-1.0.2.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/chardet-2.3.0.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/python-dateutil-1.5.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/six-1.9.0.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/django-picklefield-0.3.2.tar.gz
    -wget -O /tmp/django_constance.zip https://github.com/haiwen/django-constance/archive/bde7f7c.zip
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/django_constance.zip
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/jdcal-1.2.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/et_xmlfile-1.0.1.tar.gz
    -pip install -t ~/dev/seahub_thirdpart/ /tmp/openpyxl-2.3.0.tar.gz
    -
    -

    Prepare seafile source code

    -

    To build seafile server, there are four sub projects involved:

    - -

    The build process has two steps:

    -
      -
    • First, fetch the tags of each projects, and make a soruce tarball for each of them.
    • -
    • Then run a build-server.py script to build the server package from the source tarballs.
    • -
    -

    Fetch git tags and prepare source tarballs

    -

    Seafile manages the releases in tags on github.

    -

    Assume we are packaging for seafile server 6.0.1, then the tags are:

    -
      -
    • ccnet-server, seafile-server, and seahub would all have a v6.0.1-sever tag.
    • -
    • libsearpc would have the v3.0-latest tag (libsearpc has been quite stable and basically has no further development, so the tag is always v3.0-latest)
    • -
    -

    First setup the PKG_CONFIG_PATH enviroment variable (So we don't need to make and make install libsearpc/ccnet/seafile into the system):

    -
    export PKG_CONFIG_PATH=/home/pi/dev/seafile/lib:$PKG_CONFIG_PATH
    -export PKG_CONFIG_PATH=/home/pi/dev/libsearpc:$PKG_CONFIG_PATH
    -export PKG_CONFIG_PATH=/home/pi/dev/ccnet:$PKG_CONFIG_PATH
    -
    -

    libsearpc

    -
    cd ~/dev
    -git clone https://github.com/haiwen/libsearpc.git
    -cd libsearpc
    -git reset --hard v3.0-latest
    -./autogen.sh
    -./configure
    -make dist
    -
    -

    ccnet

    -
    cd ~/dev
    -git clone https://github.com/haiwen/ccnet-server.git
    -cd ccnet
    -git reset --hard v6.0.1-server
    -./autogen.sh
    -./configure
    -make dist
    -
    -

    seafile

    -
    cd ~/dev
    -git clone https://github.com/haiwen/seafile-server.git
    -cd seafile
    -git reset --hard v6.0.1-server
    -./autogen.sh
    -./configure
    -make dist
    -
    -

    seahub

    -
    cd ~/dev
    -git clone https://github.com/haiwen/seahub.git
    -cd seahub
    -git reset --hard v6.0.1-server
    -./tools/gen-tarball.py --version=6.0.1 --branch=HEAD
    -
    -

    seafobj

    -
    cd ~/dev
    -git clone https://github.com/haiwen/seafobj.git
    -cd seafobj
    -git reset --hard v6.0.1-server
    -make dist
    -
    -

    seafdav

    -
    cd ~/dev
    -git clone https://github.com/haiwen/seafdav.git
    -cd seafdav
    -git reset --hard v6.0.1-server
    -make
    -
    -

    Copy the source tar balls to the same folder

    -
    mkdir ~/seafile-sources
    -cp ~/dev/libsearpc/libsearpc-<version>-tar.gz ~/seafile-sources
    -cp ~/dev/ccnet/ccnet-<version>-tar.gz ~/seafile-sources
    -cp ~/dev/seafile/seafile-<version>-tar.gz ~/seafile-sources
    -cp ~/dev/seahub/seahub-<version>-tar.gz ~/seafile-sources
    -
    -cp ~/dev/seafobj/seafobj.tar.gz ~/seafile-sources
    -cp ~/dev/seafdav/seafdav.tar.gz ~/seafile-sources
    -
    -

    Run the packaging script

    -

    Now we have all the tarballs prepared, we can run the build-server.py script to build the server package.

    -
    mkdir ~/seafile-server-pkgs
    -~/dev/seafile/scripts/build-server.py --libsearpc_version=<libsearpc_version> --ccnet_version=<ccnet_version> --seafile_version=<seafile_version> --seahub_version=<seahub_version> --srcdir=  --thirdpartdir=/home/pi/dev/seahub_thirdpart --srcdir=/home/pi/seafile-sources --outputdir=/home/pi/seafile-server-pkgs
    -
    -

    After the script finisheds, we would get a seafile-server_6.0.1_pi.tar.gz in ~/seafile-server-pkgs folder.

    -

    Test the built package

    -

    Test a fresh install

    - - -

    The test should cover these steps at least:

    -
      -
    • The setup process is ok
    • -
    • After seafile.sh start and seahub.sh start, you can login from a browser.
    • -
    • Uploading/Downloading files through a web browser works correctly.
    • -
    • Seafile WebDAV server works correctly
    • -
    -

    Test upgrading from a previous version

    -
      -
    • Download the package of the previous version seafile server, and setup it.
    • -
    • Upgrading according to the manual
    • -
    • After the upgrade, check the functionality is ok:
    • -
    • Uploading/Downloading files through a web browser works correctly.
    • -
    • Seafile WebDAV server works correctly
    • -
    diff --git a/13.0/develop/server/index.html b/13.0/develop/server/index.html index b6f94a15..513b30c2 100644 --- a/13.0/develop/server/index.html +++ b/13.0/develop/server/index.html @@ -13,7 +13,7 @@ - + @@ -4619,8 +4619,6 @@ - - @@ -4636,11 +4634,11 @@ -
  • +
  • - + -
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + +