Commit 56b79471 by arquitecturati

setup inicial

parents
.git
*.md
# Excluir archivos grandes que no se usan en el build
prod_humboldt-2026-04-30/var/
prod_humboldt-2026-04-30/prod_humboldt-2026-04-30.tar.gz
prod_humboldt-2026-04-30/etc/apache2/
# Excluir logs del backup
prod_humboldt-2026-04-30/var/log/
# -------------------------------------------------------
# Copia este archivo a .env y ajusta los valores.
# -------------------------------------------------------
# Base de datos
# Local (perfil docker "local"): DB_HOST=db
# RDS AWS: DB_HOST=<endpoint>.rds.amazonaws.com
DB_HOST=db
DB_PORT=3306
DB_NAME=koha_prod_humboldt
DB_USER=db_koha_prod_humboldt
DB_PASSWORD=cambia_esto
DB_ADMIN_PASSWORD=cambia_esto # Solo requerido en perfil local (MariaDB)
# Dominios de acceso
# Pruebas locales: agregar al /etc/hosts del cliente:
# 127.0.0.1 koha.local koha-intra.local
# Producción: usar los dominios reales (catalogo.humboldt.org.co, etc.)
KOHA_OPAC_SERVER_NAME=koha.local
KOHA_INTRA_SERVER_NAME=koha-intra.local
# Memcached (interno al contenedor — no cambiar)
MEMCACHED_SERVERS=127.0.0.1:11211
# Credenciales — nunca committear
.env
# Archivos binarios grandes de migración (se copian al contenedor en build time,
# no tienen valor en el historial de git)
prod_humboldt-*/prod_humboldt-*.sql.gz
prod_humboldt-*/prod_humboldt-*.tar.gz
prod_humboldt-*/koha_files.tar.gz
prod_humboldt-*.tar.zip
# Datos de runtime extraídos del backup
prod_humboldt-*/var/
# Configuración Apache del backup (no se usa en Docker — se genera por koha-create)
prod_humboldt-*/etc/apache2/
# Certificados TLS generados localmente para pruebas con nginx proxy
docker/certs/
# Documentación PDF — almacenar en Drive/Notion
*.pdf
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=America/Bogota
# Fase 3.1 — Actualizar el sistema
RUN apt-get update && apt-get upgrade -y
# Fase 3.2 — Instalar dependencias previas
RUN apt-get install -y wget gnupg2 apt-transport-https gettext-base \
&& rm -rf /var/lib/apt/lists/*
# Fase 3.3 — Agregar repositorio oficial de Koha
RUN echo 'deb http://debian.koha-community.org/koha 25.11 main' \
> /etc/apt/sources.list.d/koha.list
# Fase 3.4 — Agregar llave GPG
RUN wget -qO- https://debian.koha-community.org/koha/gpg.asc \
| gpg --dearmor > /usr/share/keyrings/koha.gpg && \
sed -i \
's|deb http://debian.koha-community.org/koha|deb [signed-by=/usr/share/keyrings/koha.gpg] http://debian.koha-community.org/koha|' \
/etc/apt/sources.list.d/koha.list
# Fase 3.5 — Instalar Koha (sin mariadb-server — usa RDS externo)
# koha-common instala RabbitMQ, Memcached y todas las dependencias automáticamente.
# Como efecto secundario instala mariadb-client vía default-mysql-client.
RUN apt-get update && apt-get install -y koha-common \
&& rm -rf /var/lib/apt/lists/*
# List::MoreUtils: la versión de Ubuntu 20.04 no exporta zip6 correctamente.
# cpanm instala una versión consistente PP+XS desde CPAN.
RUN apt-get update && apt-get install -y cpanminus build-essential && \
cpanm --notest List::MoreUtils List::MoreUtils::XS && \
rm -rf /var/lib/apt/lists/*
# Bypass mpm_itk initgroups()/setuid() que falla en Docker sin CAP_SETGID.
# La biblioteca intercepta initgroups() y devuelve 0 para que Apache arranque.
RUN printf '#include <grp.h>\nint initgroups(const char *u, gid_t g){return 0;}\n' \
> /tmp/fakegroups.c && \
gcc -shared -fPIC -o /usr/local/lib/libfakegroups.so /tmp/fakegroups.c && \
rm /tmp/fakegroups.c
# Reemplazar mariadb-client con mysql-client-8.0.
# Ubuntu 20.04 instala MariaDB client via default-mysql-client (dependencia de koha-common),
# pero ese cliente NO soporta caching_sha2_password (plugin por defecto en RDS MySQL 8+).
# --allow-downgrades + --force-overwrite fuerzan la instalación aunque haya conflictos
# de paquetes, reemplazando el binario /usr/bin/mysql de MariaDB con el de MySQL 8.
RUN apt-get update && \
apt-get install -y \
--allow-downgrades \
-o Dpkg::Options::="--force-overwrite" \
mysql-client-8.0 && \
rm -rf /var/lib/apt/lists/* && \
echo "MySQL client activo: $(mysql --version)"
# Fase 3.7 — Habilitar módulos Apache requeridos
RUN a2enmod rewrite cgi headers proxy_http
# --- Archivos de migración ---
# SQL dump de la base de datos (Fase 4.1)
COPY prod_humboldt-2026-04-30/prod_humboldt-2026-04-30.sql.gz /migration/
# Archivos de la instancia: uploads, plugins, índices Zebra (Fase 4.2)
COPY prod_humboldt-2026-04-30/koha_files.tar.gz /migration/
# Assets personalizados (Fase 8)
COPY prod_humboldt-2026-04-30/logo.png /migration/assets/
COPY prod_humboldt-2026-04-30/logo.svg /migration/assets/
COPY prod_humboldt-2026-04-30/hero-humboldt.jpg /migration/assets/
COPY prod_humboldt-2026-04-30/hero-humboldt.webp /migration/assets/
COPY prod_humboldt-2026-04-30/Amstelvar.ttf /migration/assets/
# Plantillas de configuración (se instancian con variables de entorno en runtime)
COPY prod_humboldt-2026-04-30/etc/koha/sites/prod_humboldt/koha-conf.xml \
/etc/koha/koha-conf.xml.tpl
COPY prod_humboldt-2026-04-30/etc/koha/sites/prod_humboldt/log4perl.conf \
/etc/koha/log4perl.conf.tpl
COPY docker/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
EXPOSE 80
ENTRYPOINT ["/entrypoint.sh"]
services:
# -------------------------------------------------------
# BD local para pruebas — reemplaza al RDS en desarrollo.
# Para usar RDS real: comentar este bloque y ajustar .env
# -------------------------------------------------------
db:
image: mariadb:10.6
environment:
MYSQL_ROOT_PASSWORD: ${DB_ADMIN_PASSWORD}
MYSQL_DATABASE: ${DB_NAME:-koha_prod_humboldt}
MYSQL_USER: ${DB_USER:-koha_prod_humboldt}
MYSQL_PASSWORD: ${DB_PASSWORD}
volumes:
- db_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost", "-p${DB_ADMIN_PASSWORD}"]
interval: 10s
timeout: 5s
retries: 10
koha:
build: .
ports:
- "8080:80"
env_file: .env
environment:
# Apuntar al servicio db local en vez del RDS
DB_HOST: db
depends_on:
db:
condition: service_healthy
volumes:
# Persistir estado de inicialización, uploads, plugins e índices Zebra.
# Si se elimina este volumen, el entrypoint ejecuta la restauración completa.
- koha_data:/var/lib/koha
- koha_logs:/var/log/koha
restart: unless-stopped
volumes:
db_data:
koha_data:
koha_logs:
# Soporte para ALB / reverse proxy (Apache mod_remoteip + mod_headers).
#
# Confiamos en X-Forwarded-For de cualquier dirección RFC 1918:
# 10.x.x.x — VPC de AWS
# 172.16-31.x — red interna de Docker
# 192.168.x.x — red local
# En producción restringir al CIDR exacto de la VPC.
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 10.0.0.0/8
RemoteIPTrustedProxy 172.16.0.0/12
RemoteIPTrustedProxy 192.168.0.0/16
# Propagar X-Forwarded-Proto → variable HTTPS que Koha y mod_perl leen
# para emitir cookies Secure y generar URLs absolutas correctas.
SetEnvIf X-Forwarded-Proto "^https$" HTTPS=on
RequestHeader setifempty X-Forwarded-Proto "http"
#!/bin/bash
set -euo pipefail
INSTANCE="prod_humboldt"
INIT_FLAG="/var/lib/koha/${INSTANCE}/.docker_initialized"
# Suprimir el warning AH00558 de Apache
echo "ServerName localhost" >> /etc/apache2/apache2.conf
# -------------------------------------------------------
# Aplica variables de entorno sobre la plantilla koha-conf.xml.
# Se llama tanto en el primer arranque como en reinicios.
# -------------------------------------------------------
apply_koha_config() {
local tpl="/etc/koha/koha-conf.xml.tpl"
local dst="/etc/koha/sites/${INSTANCE}/koha-conf.xml"
sed \
-e "s|<hostname>localhost</hostname>|<hostname>${DB_HOST}</hostname>|g" \
-e "s|<port>3306</port>|<port>${DB_PORT:-3306}</port>|g" \
-e "s|<database>koha_prod_humboldt</database>|<database>${DB_NAME:-koha_prod_humboldt}</database>|g" \
-e "s|<user>koha_prod_humboldt</user>|<user>${DB_USER:-koha_prod_humboldt}</user>|g" \
-e "s|<pass>KohaProd2026!Secure</pass>|<pass>${DB_PASSWORD}</pass>|g" \
-e "s|<memcached_servers>127\.0\.0\.1:11211</memcached_servers>|<memcached_servers>${MEMCACHED_SERVERS:-127.0.0.1:11211}</memcached_servers>|g" \
"${tpl}" > "${dst}"
echo "[koha] koha-conf.xml aplicado (DB_HOST=${DB_HOST})"
}
# -------------------------------------------------------
# PASO 1: Crear instancia Koha (idempotente)
# Usa la existencia del usuario de sistema como indicador.
# Si el contenedor se recrea desde cero el usuario no existe;
# si sólo se reinicia, el usuario ya existe y se salta koha-create.
# -------------------------------------------------------
if ! id "${INSTANCE}-koha" &>/dev/null; then
echo "[koha] Creando instancia Koha (fase 3.8)..."
# koha-create falla si el directorio de logs ya existe en el volumen
# (de una ejecución anterior parcial). Lo limpiamos antes.
rm -rf "/var/log/koha/${INSTANCE}"
DEBIAN_FRONTEND=noninteractive koha-create --request-db "${INSTANCE}"
# Reemplazar koha-conf.xml auto-generado por nuestra plantilla de producción
apply_koha_config
cp /etc/koha/log4perl.conf.tpl "/etc/koha/sites/${INSTANCE}/log4perl.conf"
# Actualizar ServerNames de Apache con los dominios configurados (Fase 6)
sed -i \
-e "s|prod_humboldt\.myDNSname\.org|${KOHA_OPAC_SERVER_NAME:-koha.local}|g" \
-e "s|prod_humboldt-intra\.myDNSname\.org|${KOHA_INTRA_SERVER_NAME:-koha-intra.local}|g" \
"/etc/apache2/sites-available/${INSTANCE}.conf"
a2ensite "${INSTANCE}" 2>/dev/null || true
# Ajustar config Apache para Docker (sin reinicios intermedios):
# 1. Quitar AssignUserID — mpm_itk requiere CAP_SETGID que Docker no otorga
# 2. Comentar apache-shared-disable.conf — koha-create --request-db deja la instancia deshabilitada
# 3. Activar Plack en lugar de CGI directo
sed -i \
-e '/AssignUserID/d' \
-e 's|.*Include /etc/koha/apache-shared-disable\.conf|# Include /etc/koha/apache-shared-disable.conf|g' \
-e 's|.*#.*Include /etc/koha/apache-shared-opac-plack\.conf| Include /etc/koha/apache-shared-opac-plack.conf|g' \
-e 's|.*#.*Include /etc/koha/apache-shared-intranet-plack\.conf| Include /etc/koha/apache-shared-intranet-plack.conf|g' \
"/etc/apache2/sites-available/${INSTANCE}.conf"
echo "[koha] Instancia creada."
else
# Reinicio normal: sólo actualizar koha-conf.xml con los env vars actuales
echo "[koha] Instancia existente — actualizando configuración..."
apply_koha_config
fi
# -------------------------------------------------------
# mpm_itk Docker fix: correr Apache como el usuario de la instancia Koha.
# mpm_itk tiene un early-exit cuando el usuario actual == usuario del VirtualHost,
# omitiendo initgroups/setuid que fallan por falta de CAP_SETGID en Docker.
# -------------------------------------------------------
sed -i \
-e "s/^export APACHE_RUN_USER=.*/export APACHE_RUN_USER=${INSTANCE}-koha/" \
-e "s/^export APACHE_RUN_GROUP=.*/export APACHE_RUN_GROUP=${INSTANCE}-koha/" \
/etc/apache2/envvars
echo "[koha] Apache configurado para correr como ${INSTANCE}-koha"
grep -q "libfakegroups" /etc/apache2/envvars || echo "export LD_PRELOAD=/usr/local/lib/libfakegroups.so" >> /etc/apache2/envvars
# -------------------------------------------------------
# Compatibilidad con MySQL 8 (caching_sha2_password).
# ~/.my.cnf es leído por todos los invocadores de mysql,
# incluido koha-mysql, por lo que aplica a todo el script.
# -------------------------------------------------------
cat > /root/.my.cnf <<'EOF'
[client]
loose-get-server-public-key=1
EOF
chmod 600 /root/.my.cnf
# -------------------------------------------------------
# PASO 2: Restaurar datos (sólo si el volumen es nuevo)
# El INIT_FLAG vive en el volumen koha_data; si ese volumen
# persiste, los datos ya están en la BD y no se vuelven a importar.
# -------------------------------------------------------
FIRST_RUN=false
if [ ! -f "${INIT_FLAG}" ]; then
FIRST_RUN=true
echo "[koha] Primera ejecución — restaurando datos..."
# Fase 4.1 — Restaurar base de datos (puede tardar 5-20 min)
#
# Compatibilidad MariaDB → MySQL 8:
# MySQL 8 exige índice único en la tabla referenciada para crear un FK,
# incluso con FOREIGN_KEY_CHECKS=0 (error 6125 — validación estructural).
# El dump de Koha/MariaDB tiene FKs que referencian columnas con índice
# compuesto (ej. illrequests_safk → authorised_values.authorised_value),
# que MySQL 8 rechaza. Los eliminamos del stream antes del import.
# awk: elimina líneas "CONSTRAINT ... FOREIGN KEY" y limpia la coma del ítem anterior.
# grep: elimina ALTER TABLE ADD CONSTRAINT (FKs circulares al final del dump).
echo "[koha] Restaurando base de datos..."
{
echo "SET FOREIGN_KEY_CHECKS=0;"
echo "SET UNIQUE_CHECKS=0;"
echo "SET sql_mode='';"
zcat /migration/prod_humboldt-2026-04-30.sql.gz \
| awk 'BEGIN{prev=""} /^\s*CONSTRAINT .* FOREIGN KEY/{sub(/,\s*$/,"",prev); if(prev!="") print prev; prev=""; next} {if(prev!="") print prev; prev=$0} END{if(prev!="") print prev}' \
| grep -v "ADD CONSTRAINT.*FOREIGN KEY"
echo "SET FOREIGN_KEY_CHECKS=1;"
echo "SET UNIQUE_CHECKS=1;"
} | koha-mysql "${INSTANCE}"
echo "[koha] Base de datos restaurada."
# Fase 4.2 — Restaurar archivos de la instancia (uploads, plugins, índices Zebra)
echo "[koha] Restaurando archivos de la instancia..."
tar -xzf /migration/koha_files.tar.gz \
-C / \
--strip-components=2 \
--wildcards "var/lib/koha/${INSTANCE}/*"
# Fase 8.1 — Copiar logos y hero images
echo "[koha] Copiando assets personalizados..."
cp /migration/assets/logo.png /usr/share/koha/opac/htdocs/opac-tmpl/bootstrap/images/
cp /migration/assets/logo.svg /usr/share/koha/opac/htdocs/opac-tmpl/bootstrap/images/
cp /migration/assets/hero-humboldt.webp /usr/share/koha/opac/htdocs/opac-tmpl/bootstrap/images/
cp /migration/assets/hero-humboldt.jpg /usr/share/koha/opac/htdocs/opac-tmpl/bootstrap/images/
# Fase 8.2 — Copiar fuente personalizada
mkdir -p /usr/share/koha/opac/htdocs/opac-tmpl/bootstrap/fonts
cp /migration/assets/Amstelvar.ttf /usr/share/koha/opac/htdocs/opac-tmpl/bootstrap/fonts/
# Fase 9.1 — Corregir URLs hardcodeadas en BD
echo "[koha] Corrigiendo URLs hardcodeadas..."
koha-mysql "${INSTANCE}" -e "
UPDATE additional_contents_localizations
SET content = REPLACE(content,
'https://catalogo.humboldt.org.co/opac-tmpl/bootstrap/images/',
'/opac-tmpl/bootstrap/images/')
WHERE content LIKE '%catalogo.humboldt.org.co%';"
# Fase 9.2 — Sincronizar lang=en con lang=default
koha-mysql "${INSTANCE}" -e "
UPDATE additional_contents_localizations acl_en
JOIN additional_contents_localizations acl_def
ON acl_en.additional_content_id = acl_def.additional_content_id
AND acl_def.lang = 'default'
SET acl_en.content = acl_def.content
WHERE acl_en.lang = 'en';"
# Fase 9.3 — Habilitar bloque opacheader
koha-mysql "${INSTANCE}" -e "
INSERT INTO systempreferences (variable, value, explanation, type)
VALUES ('OpacHeader', '1', 'Enable opacheader', 'YesNo')
ON DUPLICATE KEY UPDATE value='1';"
# Fase 4.3 — Actualizar esquema de BD al nivel de Koha 25.11
echo "[koha] Actualizando esquema de base de datos..."
koha-upgrade-schema "${INSTANCE}"
# Fase 10.1 — Instalar idioma español
echo "[koha] Instalando idioma es-ES..."
koha-translate --install es-ES
# Fase 10.2 — Forzar español en preferencias del sistema
koha-mysql "${INSTANCE}" -e "
UPDATE systempreferences SET value='es-ES' WHERE variable='OPACLanguages';
UPDATE systempreferences SET value='es-ES' WHERE variable='StaffInterfaceLanguages';
UPDATE systempreferences SET value='0' WHERE variable='opaclanguagesdisplay';"
touch "${INIT_FLAG}"
echo "[koha] Restauración completada."
fi
# -------------------------------------------------------
# Limpiar PIDs stale de ejecuciones anteriores
# -------------------------------------------------------
rm -f /var/run/koha/"${INSTANCE}"/*.pid 2>/dev/null || true
# Garantizar permisos en logs para el usuario de la instancia (Plack escribe aquí)
chown -R "${INSTANCE}-koha:${INSTANCE}-koha" "/var/log/koha/${INSTANCE}/" 2>/dev/null || true
# -------------------------------------------------------
# Fase 5 — Arranque de servicios
# -------------------------------------------------------
echo "[koha] Iniciando Memcached..."
service memcached start
echo "[koha] Iniciando RabbitMQ..."
service rabbitmq-server start
# Fase 5.2 — Zebra
echo "[koha] Iniciando Zebra..."
koha-zebra --start "${INSTANCE}"
# Fase 5.2 — Plack
echo "[koha] Iniciando Plack..."
koha-plack --start "${INSTANCE}"
# Fase 11 — Reindexar Zebra (sólo primera ejecución)
if [ "${FIRST_RUN}" = "true" ]; then
echo "[koha] Reindexando Zebra (puede tardar varios minutos)..."
koha-rebuild-zebra -f -v "${INSTANCE}"
fi
echo ""
echo "[koha] ✓ Todos los servicios iniciados."
echo "[koha] OPAC: http://${KOHA_OPAC_SERVER_NAME:-koha.local}"
echo "[koha] Intranet: http://${KOHA_INTRA_SERVER_NAME:-koha-intra.local}"
echo ""
# koha-plack --start hace service apache2 restart en Koha 25.11.
# Detener y limpiar antes de tomar el control en foreground.
service apache2 stop 2>/dev/null || true
rm -f /var/run/apache2/apache2.pid 2>/dev/null || true
# Mantener el contenedor activo con Apache en foreground
exec apache2ctl -D FOREGROUND
#!/bin/bash
# Genera un certificado TLS autofirmado válido para koha.local y koha-intra.local.
# El .crt se puede importar al navegador/sistema para evitar warnings de SSL.
set -euo pipefail
CERTS_DIR="$(cd "$(dirname "$0")" && pwd)/certs"
mkdir -p "${CERTS_DIR}"
openssl req -x509 -nodes -days 825 -newkey rsa:2048 \
-keyout "${CERTS_DIR}/local.key" \
-out "${CERTS_DIR}/local.crt" \
-subj "/CN=koha.local/O=Humboldt Local Dev" \
-addext "subjectAltName=DNS:koha.local,DNS:koha-intra.local"
chmod 600 "${CERTS_DIR}/local.key"
echo ""
echo "Certificados generados en ${CERTS_DIR}/"
echo ""
echo "Para que el navegador confíe en el cert (sin warnings):"
echo " macOS: sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ${CERTS_DIR}/local.crt"
echo " Linux: sudo cp ${CERTS_DIR}/local.crt /usr/local/share/ca-certificates/koha-local.crt && sudo update-ca-certificates"
echo " Windows: Importar ${CERTS_DIR}/local.crt en 'Trusted Root Certification Authorities'"
# Proxy nginx local que simula el comportamiento de un ALB con terminación TLS.
# Permite probar en local el flujo completo HTTPS → HTTP → Koha antes de
# desplegar en ECS, sin necesitar el ALB real.
#
# Uso:
# 1. Generar cert: bash docker/gen-local-certs.sh
# 2. docker compose --profile local up
# 3. Acceder a https://koha.local y https://koha-intra.local
events { worker_connections 1024; }
http {
# Redirigir HTTP → HTTPS (replica la regla del ALB listener 80)
server {
listen 80;
server_name koha.local koha-intra.local;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name koha.local koha-intra.local;
ssl_certificate /etc/nginx/certs/local.crt;
ssl_certificate_key /etc/nginx/certs/local.key;
ssl_protocols TLSv1.2 TLSv1.3;
# Cabeceras que el ALB envía al target group
location / {
proxy_pass http://koha:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
# Desactivar buffering para que los logs de Koha lleguen en tiempo real
proxy_buffering off;
client_max_body_size 50m;
}
}
}
<yazgfs>
<listen id="biblioserver" >unix:/var/run/koha/prod_humboldt/bibliosocket</listen>
<listen id="authorityserver" >unix:/var/run/koha/prod_humboldt/authoritysocket</listen>
<!-- Uncomment the following entry if you want to run the public Z39.50 server.
Also uncomment the <server> and <serverinfo> sections for id 'publicserver'
under PUBLICSERVER'S BIBLIOGRAPHIC RECORDS title-->
<!--
<listen id="publicserver" >tcp:@:</listen>
-->
<!-- BIBLIOGRAPHIC RECORDS -->
<server id="biblioserver" listenref="biblioserver">
<directory>/var/lib/koha/prod_humboldt/biblios</directory>
<config>/etc/koha/sites/prod_humboldt/zebra-biblios-dom.cfg</config>
<cql2rpn>/etc/koha/zebradb/pqf.properties</cql2rpn>
<xi:include href="/etc/koha/marc21-retrieval-info-bib-dom.xml"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:fallback>
<retrievalinfo>
<retrieval syntax="marc21" name="F"/>
<retrieval syntax="marc21" name="B"/>
<retrieval syntax="xml" name="F"/>
<retrieval syntax="xml" name="B"/>
<retrieval syntax="xml" name="marcxml"
identifier="info:srw/schema/1/marcxml-v1.1">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="dc">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slim2DC.xsl"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="mods">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slim2MODS.xsl"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="rdfdc">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slim2RDFDC.xsl"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="rss2">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slim2RSS2.xsl"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="utils">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl"/>
</backend>
</retrieval>
</retrievalinfo>
</xi:fallback>
</xi:include>
<!-- The stuff below is used to enable SRU. It's currently disabled
until we come up with a good way to make it get magically set up by
the packaging system. If you need it, uncomment and set it up
manually.
<xi:include href="/etc/koha/zebradb/explain-biblios.xml"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:fallback>
<explain xmlns="http://explain.z3950.org/dtd/2.0/">
<serverInfo>
<host>__ZEBRA_SRU_HOST__</host>
<port>__ZEBRA_SRU_BIBLIOS_PORT__</port>
<database>biblios</database>
</serverInfo>
</explain>
</xi:fallback>
</xi:include> -->
</server>
<serverinfo id="biblioserver">
<ccl2rpn>/etc/koha/zebradb/ccl.properties</ccl2rpn>
<user>kohauser</user>
<password>iBVqc7LThpaSk4FG</password>
</serverinfo>
<!-- AUTHORITY RECORDS -->
<server id="authorityserver" listenref="authorityserver" >
<directory>/var/lib/koha/prod_humboldt/authorities</directory>
<config>/etc/koha/sites/prod_humboldt/zebra-authorities-dom.cfg</config>
<cql2rpn>/etc/koha/zebradb/pqf.properties</cql2rpn>
<xi:include href="/etc/koha/marc21-retrieval-info-auth-dom.xml"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:fallback>
<retrievalinfo>
<retrieval syntax="marc21" name="F"/>
<retrieval syntax="marc21" name="B"/>
<retrieval syntax="xml" name="marcxml"
identifier="info:srw/schema/1/marcxml-v1.1">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="dc">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slim2DC.xsl"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="mods">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slim2MODS.xsl"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="rdfdc">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slim2RDFDC.xsl"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="utils">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl"/>
</backend>
</retrieval>
</retrievalinfo>
</xi:fallback>
</xi:include>
<!-- The stuff below is used to enable SRU. It's currently disabled
until we come up with a good way to make it get magically set up by
the packaging system. If you need it, uncomment and set it up
manually.
<xi:include href="/etc/koha/zebradb/explain-authorities.xml"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:fallback>
<explain xmlns="http://explain.z3950.org/dtd/2.0/">
<serverInfo>
<host>__ZEBRA_SRU_HOST__</host>
<port>__ZEBRA_SRU_AUTHORITIES_PORT__</port>
<database>authorities</database>
</serverInfo>
</explain>
</xi:fallback>
</xi:include> -->
</server>
<serverinfo id="authorityserver">
<ccl2rpn>/etc/koha/zebradb/ccl.properties</ccl2rpn>
<user>kohauser</user>
<password>iBVqc7LThpaSk4FG</password>
</serverinfo>
<!-- PUBLICSERVER'S BIBLIOGRAPHIC RECORDS -->
<!-- This can be used to set up a public Z39.50/SRU server. -->
<!--
<server id="publicserver" listenref="publicserver">
<directory>/var/lib/koha/prod_humboldt/biblios</directory>
<config>/etc/koha/sites/prod_humboldt/zebra-biblios-dom.cfg</config>
<cql2rpn>/etc/koha/zebradb/pqf.properties</cql2rpn>
<xi:include href="/etc/koha/marc21-retrieval-info-bib-dom.xml"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:fallback>
<retrievalinfo>
<retrieval syntax="marc21" name="F"/>
<retrieval syntax="marc21" name="B"/>
<retrieval syntax="xml" name="F"/>
<retrieval syntax="xml" name="B"/>
<retrieval syntax="xml" name="marcxml"
identifier="info:srw/schema/1/marcxml-v1.1">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="dc">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slim2DC.xsl"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="mods">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slim2MODS.xsl"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="rdfdc">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slim2RDFDC.xsl"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="rss2">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slim2RSS2.xsl"/>
</backend>
</retrieval>
<retrieval syntax="xml" name="utils">
<backend syntax="marc21" name="F">
<marc inputformat="marc" outputformat="marcxml"
inputcharset="utf-8"/>
<xslt stylesheet="/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl"/>
</backend>
</retrieval>
</retrievalinfo>
</xi:fallback>
</xi:include>
<xi:include href="/etc/koha/zebradb/explain-biblios.xml"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:fallback>
<explain xmlns="http://explain.z3950.org/dtd/2.0/">
<serverInfo>
<host>__ZEBRA_SRU_HOST__</host>
<port>__ZEBRA_SRU_BIBLIOS_PORT__</port>
<database>biblios</database>
</serverInfo>
</explain>
</xi:fallback>
</xi:include>
</server>
<serverinfo id="publicserver">
<ccl2rpn>/etc/koha/zebradb/ccl.properties</ccl2rpn>
<user>kohauser</user>
<password>iBVqc7LThpaSk4FG</password>
</serverinfo>
-->
<config>
<db_scheme>mysql</db_scheme>
<database>koha_prod_humboldt</database>
<hostname>localhost</hostname>
<port>3306</port>
<socket></socket>
<user>koha_prod_humboldt</user>
<pass>KohaProd2026!Secure</pass>
<tls>__DB_USE_TLS__</tls>
<ca>__DB_TLS_CA_CERTIFICATE__</ca>
<cert>__DB_TLS_CLIENT_CERTIFICATE__</cert>
<key>__DB_TLS_CLIENT_KEY__</key>
<biblioserver>biblios</biblioserver>
<biblioservershadow>1</biblioservershadow>
<authorityserver>authorities</authorityserver>
<authorityservershadow>1</authorityservershadow>
<pluginsdir>/var/lib/koha/prod_humboldt/plugins</pluginsdir> <!-- This entry can be repeated to use multiple directories -->
<enable_plugins>0</enable_plugins>
<upload_path>/var/lib/koha/prod_humboldt/uploads</upload_path>
<tmp_path>/var/lib/koha/prod_humboldt/tmp</tmp_path>
<intranetdir>/usr/share/koha/intranet/cgi-bin</intranetdir>
<opacdir>/usr/share/koha/opac/cgi-bin/opac</opacdir>
<opachtdocs>/usr/share/koha/opac/htdocs/opac-tmpl</opachtdocs>
<intrahtdocs>/usr/share/koha/intranet/htdocs/intranet-tmpl</intrahtdocs>
<includes>/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/includes/</includes>
<logdir>/var/log/koha/prod_humboldt</logdir>
<docdir>/usr/share/doc/koha-common</docdir>
<backupdir>/var/spool/koha/prod_humboldt</backupdir>
<!-- URL of the mana KB server -->
<!-- alternative value http://mana-test.koha-community.org to query the test server -->
<mana_config>https://mana-kb.koha-community.org</mana_config>
<!-- Enable the two following to allow superlibrarians to download
database and configuration dumps (respectively) from the Export
tool -->
<backup_db_via_tools>0</backup_db_via_tools>
<backup_conf_via_tools>0</backup_conf_via_tools>
<install_log>/usr/share/koha/misc/koha-install-log</install_log>
<useldapserver>0</useldapserver><!-- see C4::Auth_with_ldap for extra configs you must add if you want to turn this on -->
<useshibboleth>0</useshibboleth><!-- see C4::Auth_with_shibboleth for extra configs you must do to turn this on -->
<zebra_lockdir>/var/lock/koha/prod_humboldt</zebra_lockdir>
<lockdir>/var/lock/koha/prod_humboldt</lockdir>
<use_zebra_facets>1</use_zebra_facets>
<zebra_max_record_size>1024</zebra_max_record_size>
<zebra_connection_timeout>30</zebra_connection_timeout>
<log4perl_conf>/etc/koha/sites/prod_humboldt/log4perl.conf</log4perl_conf>
<!-- Uncomment/edit next setting if you want to adjust zebra log levels.
Default is: none,fatal,warn.
You can also include: debug,log,malloc,all,request.
Use a comma-separated list of levels to include. -->
<!-- <zebra_loglevels>none,fatal,warn</zebra_loglevels> -->
<memcached_servers>127.0.0.1:11211</memcached_servers>
<memcached_namespace>koha_prod_humboldt</memcached_namespace>
<template_cache_dir>/var/cache/koha/prod_humboldt/templates</template_cache_dir>
<!-- Secret passphrase used by Mojolicious for signed cookies -->
<api_secret_passphrase>XSqzKRcdK0c9ZiJbPp8O5rS5GP5YdtEk3RfHCs5Cdi7X2OjQzt9hfv7XX5FNxIwA</api_secret_passphrase>
<!-- default report results limit is 999,999. uncomment this and set a different number to override that limit.
<report_results_limit>999999</report_results_limit>
-->
<!-- Accessible directory from the staff interface, uncomment the following line and define a valid path to let the intranet user access it-->
<!--
<access_dirs>
<access_dir></access_dir>
<access_dir></access_dir>
</access_dirs>
-->
<!-- true type font mapping according to type from $font_types in C4/Creators/Lib.pm -->
<ttf>
<font type="TR" >/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf</font>
<font type="TB" >/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf</font>
<font type="TI" >/usr/share/fonts/truetype/dejavu/DejaVuSerif-Italic.ttf</font>
<font type="TBI">/usr/share/fonts/truetype/dejavu/DejaVuSerif-BoldItalic.ttf</font>
<font type="C" >/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf</font>
<font type="CB" >/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf</font>
<font type="CO" >/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Oblique.ttf</font>
<font type="CBO">/usr/share/fonts/truetype/dejavu/DejaVuSansMono-BoldOblique.ttf</font>
<font type="H" >/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf</font>
<font type="HO" >/usr/share/fonts/truetype/dejavu/DejaVuSans-Oblique.ttf</font>
<font type="HB" >/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf</font>
<font type="HBO">/usr/share/fonts/truetype/dejavu/DejaVuSans-BoldOblique.ttf</font>
</ttf>
<!-- Path to the config file for SMS::Send -->
<sms_send_config>/etc/koha/sites/prod_humboldt/sms_send/</sms_send_config>
<!-- Configuration for Plack -->
<plack>1</plack>
<plack_workers>6</plack_workers>
<plack_max_requests>1000</plack_max_requests>
<plack_socket_mode>0660</plack_socket_mode>
<plack_socket_user>prod_humboldt-koha</plack_socket_user>
<plack_socket_group>www-data</plack_socket_group>
<max_servers>3</max_servers>
<!-- Configuration for X-Forwarded-For -->
<!--
<koha_trusted_proxies>1.2.3.4 2.3.4.5 3.4.5.6</koha_trusted_proxies>
-->
<!-- Elasticsearch Configuration -->
<elasticsearch>
<server>localhost:9200</server> <!-- may be repeated to include all servers on your cluster -->
<index_name>koha_prod_humboldt</index_name> <!-- should be unique amongst all the indices on your cluster. _biblios and _authorities will be appended. -->
<!-- If you are using authentication, you will also need to use HTTPS. Uncomment and tweak the following for your ES setup. -->
<!-- NOTE: instead of userinfo, you can alternatively provide the username and password in URL in the server element -->
<!--
<userinfo>elastic:CHANGEME</userinfo>
<use_https>1</use_https>
-->
<!-- See https://metacpan.org/pod/Search::Elasticsearch#cxn_pool -->
<cxn_pool>Static</cxn_pool>
<!-- See https://metacpan.org/pod/Search::Elasticsearch#trace_to -->
<!-- <trace_to>Stderr</trace_to> -->
</elasticsearch>
<!-- Uncomment the following line if you want to override the Elasticsearch default index settings -->
<!-- <elasticsearch_index_config>/etc/koha/sites/prod_humboldt/searchengine/elasticsearch/index_config.yaml</elasticsearch_index_config> -->
<!-- Uncomment the following line if you want to override the Elasticsearch default field settings -->
<!-- <elasticsearch_field_config>/etc/koha/sites/prod_humboldt/searchengine/elasticsearch/field_config.yaml</elasticsearch_field_config> -->
<!-- Uncomment the following line if you want to override the Elasticsearch index default settings.
Note that any changes made to the mappings file only take effect if you reset the mappings in
by visiting /cgi-bin/koha/admin/searchengine/elasticsearch/mappings.pl?op=reset&i_know_what_i_am_doing=1&reset_fields=1.
Resetting mappings will override any changes made in the Search engine configuration UI.
-->
<!-- <elasticsearch_index_mappings>/etc/koha/sites/prod_humboldt/searchengine/elasticsearch/mappings.yaml</elasticsearch_index_mappings> -->
<!-- How many indexing tasks the ES indexer will pick at a time
If the site is so busy the queue keeps growing, raise it -->
<es_indexer_batch_size>10</es_indexer_batch_size>
<interlibrary_loans>
<!-- Path to where Illbackends are located on the system
- This setting should normally not be touched -->
<backend_directory>/usr/share/koha/lib/Koha/Illbackends</backend_directory>
<!-- At least one <branch> block is required. -->
<branch>
<!-- The code of this branch -->
<code>CPL</code>
<!-- An optional prefix for all ILL request IDs for this branch -->
<prefix>ILL</prefix>
</branch>
<!-- How should we treat staff comments?
- hide: don't show in OPAC
- show: show in OPAC -->
<staff_request_comments>hide</staff_request_comments>
<!-- How should we treat the reply_date field?
- hide: don't show this field in the UI
- any other string: show, with this label -->
<reply_date>hide</reply_date>
<!-- Where should digital ILLs be sent?
- borrower: send it straight to the borrower email
- branch: send the ILL to the branch email -->
<digital_recipient>branch</digital_recipient>
</interlibrary_loans>
<!-- The timezone setting can let you force the timezone for this
instance to be something other then the local timezone of the
server. e.g. Antarctica/South_Pole -->
<timezone></timezone>
<!-- This is the bcrypt settings used to generated anonymized content -->
<bcrypt_settings>$2a$10$s27B/fUhnbhXWaP..cWsXOmBsoWSijYhbuYkyANqaJtQFvvcAh0Pq</bcrypt_settings>
<!-- Encryption key for crypted password or sensitive data -->
<encryption_key>__ENCRYPTION_KEY__</encryption_key>
<!-- flags for development purposes
git_install is used to adjust some paths specific to git installations (fka dev_install)
debug_mode is used to differentiate production from test systems (see for example koha-plack) -->
<git_install>0</git_install>
<debug_mode>0</debug_mode>
<!-- strict_sql_modes should not be used in a production environment
developers use it to catch bugs related to strict SQL modes -->
<strict_sql_modes>0</strict_sql_modes>
<plugins_restricted>1</plugins_restricted>
<plugins_restart>1</plugins_restart>
<plugin_repos>
<!--
<repo>
<name>ByWater Solutions</name>
<org_name>bywatersolutions</org_name>
<service>github</service>
</repo>
<repo>
<name>Theke Solutions</name>
<org_name>thekesolutions</org_name>
<service>github</service>
</repo>
<repo>
<name>Open Fifth</name>
<org_name>openfifth</org_name>
<service>github</service>
</repo>
<repo>
<name>Solutions inLibro</name>
<org_name>inLibro</org_name>
<service>github</service>
</repo>
-->
</plugin_repos>
<koha_xslt_security>
<!-- Uncomment the following entry ONLY when you explicitly want the XSLT
parser to expand entities like <!ENTITY secret SYSTEM "/etc/secrets">.
This is unsafe and therefore NOT recommended!
<expand_entities_unsafe>1</expand_entities_unsafe>
-->
</koha_xslt_security>
<smtp_server>
<host>localhost</host>
<port>25</port>
<timeout>120</timeout>
<ssl_mode>disabled</ssl_mode>
<user_name></user_name>
<password></password>
<debug>0</debug>
</smtp_server>
<message_broker>
<hostname>localhost</hostname>
<port>61613</port>
<username>guest</username>
<password>guest</password>
<vhost></vhost>
</message_broker>
<background_jobs_worker>
<!-- Max simultaneous processes per worker -->
<max_processes>1</max_processes>
</background_jobs_worker>
<!-- Example lines. See Koha/CookieManager.pm for more details.
<do_not_remove_cookie>some_cookie</do_not_remove_cookie>
<remove_cookie>another_cookie</remove_cookie>
-->
<message_domain_limits>
<!-- Two types are supported: a regular limit and a grouped limit that refers to a regular limit -->
<!-- <domain><name>DOMAIN_NAME</name><limit>NUMBER</limit><unit>{NUMBER}{m[inutes]|h[ours]|d[ays]}</unit></domain> -->
<!-- <domain><name>OTHER_DOMAIN_NAME</name><belongs_to>DOMAIN_NAME</belongs_to></domain> -->
<!-- Like: <domain><name>outlook.com</name><limit>30</limit><unit>1m</unit></domain> -->
<!-- Like: <domain><name>hotmail.com</name><belongs_to>outlook.com</belongs_to></domain> -->
</message_domain_limits>
<mfa_range>1</mfa_range><!-- Number of 30 second iterations to allow for MFA code checking -->
<auto_renew_cronjob>
<parallel_loops_count>1</parallel_loops_count>
</auto_renew_cronjob>
</config>
</yazgfs>
log4perl.logger.intranet = WARN, INTRANET
log4perl.appender.INTRANET=Log::Log4perl::Appender::File
log4perl.appender.INTRANET.filename=/var/log/koha/prod_humboldt/intranet-error.log
log4perl.appender.INTRANET.mode=append
log4perl.appender.INTRANET.layout=PatternLayout
log4perl.appender.INTRANET.layout.ConversionPattern=[%d] [%p] %m %l%n
log4perl.appender.INTRANET.utf8=1
log4perl.logger.opac = WARN, OPAC
log4perl.appender.OPAC=Log::Log4perl::Appender::File
log4perl.appender.OPAC.filename=/var/log/koha/prod_humboldt/opac-error.log
log4perl.appender.OPAC.mode=append
log4perl.appender.OPAC.layout=PatternLayout
log4perl.appender.OPAC.layout.ConversionPattern=[%d] [%p] %m %l%n
log4perl.appender.OPAC.utf8=1
log4perl.logger.z3950 = WARN, Z3950
log4perl.appender.Z3950=Log::Log4perl::Appender::File
log4perl.appender.Z3950.filename=/var/log/koha/prod_humboldt/z3950-error.log
log4perl.appender.Z3950.mode=append
log4perl.appender.Z3950.layout=PatternLayout
log4perl.appender.Z3950.layout.ConversionPattern=[%d] [%p] %m %l%n
log4perl.appender.Z3950.utf8=1
log4perl.logger.api = WARN, API
log4perl.appender.API=Log::Log4perl::Appender::File
log4perl.appender.API.filename=/var/log/koha/prod_humboldt/api-error.log
log4perl.appender.API.mode=append
log4perl.appender.API.layout=PatternLayout
log4perl.appender.API.layout.ConversionPattern=[%d] [%p] %m %l%n
log4perl.appender.API.utf8=1
log4perl.logger.sip = DEBUG, SIP
log4perl.appender.SIP=Log::Log4perl::Appender::File
log4perl.appender.SIP.filename=/var/log/koha/prod_humboldt/sip-output.log
log4perl.appender.SIP.mode=append
log4perl.appender.SIP.layout=PatternLayout
log4perl.appender.SIP.layout.ConversionPattern=[%d] [%P] [%p] %X{accountid}@%X{peeraddr}: %m{chomp} %l%n
log4perl.appender.SIP.utf8=1
log4perl.logger.plack-opac = WARN, PLACKOPAC
log4perl.appender.PLACKOPAC=Log::Log4perl::Appender::File
log4perl.appender.PLACKOPAC.filename=/var/log/koha/prod_humboldt/plack-opac-error.log
log4perl.appender.PLACKOPAC.mode=append
log4perl.appender.PLACKOPAC.layout=PatternLayout
log4perl.appender.PLACKOPAC.layout.ConversionPattern=[%d] [%p] %m%n
log4perl.appender.PLACKOPAC.utf8=1
log4perl.logger.plack-api = WARN, PLACKAPI
log4perl.appender.PLACKAPI=Log::Log4perl::Appender::File
log4perl.appender.PLACKAPI.filename=/var/log/koha/prod_humboldt/plack-api-error.log
log4perl.appender.PLACKAPI.mode=append
log4perl.appender.PLACKAPI.layout=PatternLayout
log4perl.appender.PLACKAPI.layout.ConversionPattern=[%d] [%p] %m%n
log4perl.appender.PLACKAPI.utf8=1
log4perl.logger.plack-intranet = WARN, PLACKINTRANET
log4perl.appender.PLACKINTRANET=Log::Log4perl::Appender::File
log4perl.appender.PLACKINTRANET.filename=/var/log/koha/prod_humboldt/plack-intranet-error.log
log4perl.appender.PLACKINTRANET.mode=append
log4perl.appender.PLACKINTRANET.layout=PatternLayout
log4perl.appender.PLACKINTRANET.layout.ConversionPattern=[%d] [%p] %m%n
log4perl.appender.PLACKINTRANET.utf8=1
log4perl.logger.worker = WARN, WORKER
log4perl.appender.WORKER=Log::Log4perl::Appender::Screen
log4perl.appender.WORKER.stderr=1
log4perl.appender.WORKER.layout=PatternLayout
log4perl.appender.WORKER.layout.ConversionPattern=[%d] [%p] %m %l%n
log4perl.appender.WORKER.utf8=1
log4perl.logger.edi = TRACE, EDI
log4perl.appender.EDI=Log::Log4perl::Appender::File
log4perl.appender.EDI.filename=/var/log/koha/prod_humboldt/editrace.log
log4perl.appender.EDI.mode=append
log4perl.appender.EDI.layout=PatternLayout
log4perl.appender.EDI.layout.ConversionPattern=[%d] [%P] [%p] %X{accountid}@%X{peeraddr}: %m %l%n
log4perl.appender.EDI.utf8=1
# Simple Zebra configuration file that defines
# a database with MARCXML records.
# $Id: zebra.cfg,v 1.1.2.2 2006/05/09 12:03:16 rangi Exp $
#
# Where are the config files located?
profilePath:/etc/koha/sites/prod_humboldt:/etc/koha/zebradb/authorities/etc:/etc/koha/zebradb/etc:/etc/koha/zebradb/marc_defs/marc21/authorities:/etc/koha/zebradb/lang_defs/en:/etc/koha/zebradb/xsl
encoding: UTF-8
# modulePath - where to look for loadable zebra modules
modulePath: /usr/lib64/idzebra-2.0/modules:/usr/lib/idzebra-2.0/modules:/usr/lib/x86_64-linux-gnu/idzebra-2.0/modules:/usr/lib/i386-linux-gnu/idzebra-2.0/modules:/usr/lib/aarch64-linux-gnu/idzebra-2.0/modules:/usr/lib/arm-linux-gnueabi/idzebra-2.0/modules:/usr/lib/arm-linux-gnueabihf/idzebra-2.0/modules:/usr/lib/mips-linux-gnu/idzebra-2.0/modules:/usr/lib/mipsel-linux-gnu/idzebra-2.0/modules:/usr/lib/powerpc-linux-gnu/idzebra-2.0/modules:/usr/lib/powerpc64le-linux-gnu/idzebra-2.0/modules:/usr/lib/s390x-linux-gnu/idzebra-2.0/modules
# Files that describe the attribute sets supported.
attset: bib1.att
attset: explain.att
attset: gils.att
#systag sysno rank
# Specify record type
# group .recordType[ .name ]: type
# type is split into fundamental type. file-read-type . argument
# http://www.indexdata.dk/zebra/doc/zebra-cfg.tkl
# http://www.indexdata.dk/zebra/doc/grs.tkl
recordtype: dom./etc/koha/zebradb/authorities/etc/dom-config.xml
marcxml.recordtype: dom./etc/koha/zebradb/authorities/etc/dom-config.xml
iso2709.recordtype: dom./etc/koha/zebradb/authorities/etc/dom-config-marc.xml
recordId: (bib1,Local-Number)
# was auth1
storeKeys:1
storeData:1
# Lock File Area
lockDir: /var/lock/koha/prod_humboldt/authorities
perm.anonymous:ar
perm.kohauser:rw
register: /var/lib/koha/prod_humboldt/authorities/register:20G
shadow: /var/lib/koha/prod_humboldt/authorities/shadow:20G
# Temp File area for result sets
setTmpDir: /var/lib/koha/prod_humboldt/authorities/tmp
# Temp File area for index program
keyTmpDir: /var/lib/koha/prod_humboldt/authorities/key
# Approx. Memory usage during indexing
memMax: 50M
rank:rank-1
# Simple Zebra configuration file that defines
# a database with MARCXML records.
# $Id: zebra.cfg,v 1.1.2.2 2006/05/09 12:03:16 rangi Exp $
#
# Where are the config files located?
profilePath:/etc/koha/sites/prod_humboldt:/etc/koha/zebradb/biblios/etc:/etc/koha/zebradb/etc:/etc/koha/zebradb/marc_defs/marc21/biblios:/etc/koha/zebradb/lang_defs/en:/etc/koha/zebradb/xsl
# modulePath - where to look for loadable zebra modules
modulePath: /usr/lib64/idzebra-2.0/modules:/usr/lib/idzebra-2.0/modules:/usr/lib/x86_64-linux-gnu/idzebra-2.0/modules:/usr/lib/i386-linux-gnu/idzebra-2.0/modules:/usr/lib/aarch64-linux-gnu/idzebra-2.0/modules:/usr/lib/arm-linux-gnueabi/idzebra-2.0/modules:/usr/lib/arm-linux-gnueabihf/idzebra-2.0/modules:/usr/lib/mips-linux-gnu/idzebra-2.0/modules:/usr/lib/mipsel-linux-gnu/idzebra-2.0/modules:/usr/lib/powerpc-linux-gnu/idzebra-2.0/modules:/usr/lib/powerpc64le-linux-gnu/idzebra-2.0/modules:/usr/lib/s390x-linux-gnu/idzebra-2.0/modules
encoding: UTF-8
# Files that describe the attribute sets supported.
attset: bib1.att
attset: explain.att
attset: gils.att
# systag sysno rank
# Specify record type
# group .recordType[ .name ]: type
# type is split into fundamental type. file-read-type . argument
# http://www.indexdata.dk/zebra/doc/zebra-cfg.tkl
# http://www.indexdata.dk/zebra/doc/grs.tkl
recordtype: dom./etc/koha/zebradb/biblios/etc/dom-config.xml
marcxml.recordtype: dom./etc/koha/zebradb/biblios/etc/dom-config.xml
iso2709.recordtype: dom./etc/koha/zebradb/biblios/etc/dom-config-marc.xml
recordId: (bib1,Local-number)
storeKeys:1
storeData:1
facetNumRecs:1000
# Lock File Area
lockDir: /var/lock/koha/prod_humboldt/biblios
perm.anonymous:ar
perm.kohauser:rw
passwd: /etc/koha/sites/prod_humboldt/zebra.passwd
register: /var/lib/koha/prod_humboldt/biblios/register:20G
shadow: /var/lib/koha/prod_humboldt/biblios/shadow:20G
# Temp File area for result sets
setTmpDir: /var/lib/koha/prod_humboldt/biblios/tmp
# Temp File area for index program
keyTmpDir: /var/lib/koha/prod_humboldt/biblios/key
# Approx. Memory usage during indexing
memMax: 50M
rank:rank-1
truncmax: 1000000000
# Specifies the maximum number of records that will be sorted in a result set.
# If the result set contains more than that limit, the records after the limit
# will not be sorted. If omitted, the default value is 1,000.
sortmax: 1000
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Capa_2" data-name="Capa 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 700">
<defs>
<style>
.cls-1 {
fill: none;
}
.cls-1, .cls-2 {
stroke-width: 0px;
}
</style>
</defs>
<g id="Capa_1-2" data-name="Capa 1">
<g>
<rect class="cls-1" width="700" height="700"/>
<g>
<path class="cls-2" d="m413.35,256.67c-.8,1.5-1.6,3-2.4,4.4.9-1.3,1.8-2.7,2.7-4-.1-.1-.2-.2-.3-.4Z"/>
<path class="cls-2" d="m322.65,295.67c-.1.3,0,29.3,0,29.3,0,0,35.2-6.5,68.6-40l-5.7-83.6c-5,30.6-19.9,72-62.9,94.3Z"/>
<path class="cls-2" d="m330.75,490.17c.2,1,.5,26.7.5,26.7,0,0,32.6-4.4,73.3-36.1l-3.6-53.1c-16.3,19.7-39,41.3-70.2,62.5Z"/>
<path class="cls-2" d="m326.15,389.07c0,.2,3.5,20.5,2.6,30,0,0,30.9.5,69.8-26.5l-4.5-66c-13.5,22.5-34.7,45.8-67.9,62.5Z"/>
<path class="cls-2" d="m308.35,464.47v-26.9s-37.9-3.9-70.9-54.2l1,53.8c20.3,17.3,44.4,30.1,69.9,27.3Z"/>
<path class="cls-2" d="m306.75,367.57l1-26s-43.2-7.8-72.2-59.1l1.1,56.7c18.2,15.7,42.9,30.3,70.1,28.4Z"/>
<path class="cls-2" d="m309.15,574.67v-36.5s-29.3,3-69.8-54.9l1.2,61.7c22.3,17.1,46.3,29.7,68.6,29.7Z"/>
<path class="cls-2" d="m253.85,611.37c-1.9-1.8-6.2-5.9-12.4-12.4l.2,12.4h12.2Z"/>
<path class="cls-2" d="m377.85,88.97h-146l2.9,153.2c15.7,15.5,39.4,32.1,68,31.9l3.1-18.6s-61.1-47.9-29.9-130.3c-.2,25.4,7,45.6,13.8,59,8.9,17.6,18.9,27.2,19.3,27.6.6.6,1.3.8,2.1.8s1.6-.3,2.2-.9c1.1-1.2,1.1-3.1-.1-4.2-.4-.3-32.7-31.8-31.2-84.8,4.2,12.4,12.9,37.7,12.9,37.7,0,0,6.3-29.2,2.6-68.4,0,0,53.4,36.4,35.2,130.5,0,0,21.9-4.6,50.6-52.2l-5.5-81.3Z"/>
<path class="cls-2" d="m405.55,495.07c-14,13.2-32.4,24.1-53.2,31.3l-1.3.5c-14.4,4.9-34.1,11.7-34.1,31.8,0,1.7,1.3,3,3,3s3-1.3,3-3c0-15.8,16-21.3,30-26.1l1.4-.5c21.6-7.5,40.8-18.8,55.4-32.7,12.4-11.7,23.9-25.5,34.4-41.2v-11c-11.6,18.5-24.5,34.6-38.6,47.9Z"/>
<path class="cls-2" d="m443.05,474.17c-9.2,16.4-19.4,32.2-30.7,47.2l6.1,90h25.6v-36.8l-9.8,6.4c-.4.3-.9.4-1.4.4-.8,0-1.6-.4-2.1-1.1-.8-1.2-.4-2.7.7-3.5l12.6-8.2v-50.8l-13.1,8.5c-.4.3-.9.4-1.4.4-.8,0-1.6-.4-2.1-1.1-.8-1.2-.4-2.7.7-3.5l15.9-10.3v-39.7c-.3.8-.6,1.4-1,2.1Z"/>
<g>
<path class="cls-2" d="m141.75,606.17h-31.5c-.4,0-.8.3-.8.7v3.6c0,.4.3.7.8.7h31.5c.4,0,.8-.3.8-.7v-3.5c-.1-.4-.4-.8-.8-.8Z"/>
<path class="cls-2" d="m113.45,155.67h-3.2c-.4,0-.8.3-.8.7v19.1c0,.4.3.7.8.7h3.2c.4,0,.8-.3.8-.7v-7.2h27.5c.4,0,.8-.3.8-.7v-3.6c0-.4-.3-.7-.8-.7h-27.5v-6.8c-.1-.4-.4-.8-.8-.8Z"/>
<path class="cls-2" d="m112.85,108.07c2.7,1.7,7,2.5,13.1,2.5s10.4-.8,12.9-2.4c2.8-1.7,4.3-4.5,4.3-8.3s-1.4-6.6-4.1-8.4c-2.6-1.7-7-2.5-13.1-2.5s-10.3.8-13.1,2.5c-2.7,1.6-4.2,4.5-4.2,8.3-.1,3.8,1.4,6.6,4.2,8.3Zm13.1-2.7c-5.1,0-8.4-.4-10.1-1.3s-2.5-2.3-2.5-4.3c0-2.1.7-3.4,2.4-4.3,1.7-.8,5.3-1.3,10.2-1.3,6.2,0,9,.7,10.3,1.3,1.6.8,2.4,2.2,2.4,4.3s-.8,3.4-2.5,4.3c-1.3.6-4.1,1.3-10.2,1.3Z"/>
<path class="cls-2" d="m141.75,538.07h-31.5c-.4,0-.8.3-.8.7v3.4c0,.2.1.4.2.5s.3.2.5.2h0l23.1-.3-23.4,9.4c-.3.1-.5.4-.5.7v4.7c0,.4.3.7.8.7h31.5c.4,0,.8-.3.8-.7v-3.4c0-.2-.1-.4-.2-.5-.1-.1-.3-.3-.5-.2l-23.9.3,24.2-9.6c.3-.1.5-.4.5-.7v-4.5c-.1-.4-.4-.7-.8-.7Z"/>
<path class="cls-2" d="m109.45,425.07c0,.4.3.7.8.7h3.2c.4,0,.8-.3.8-.7v-7.2h27.5c.4,0,.8-.3.8-.7v-3.6c0-.4-.3-.7-.8-.7h-27.5v-6.8c0-.4-.3-.7-.8-.7h-3.2c-.4,0-.8.3-.8.7v19Z"/>
<path class="cls-2" d="m139.75,224.47c-.9-.8-1.9-1.3-3.2-1.7-1.1-.3-2.8-.4-5.8-.4h-20.6c-.4,0-.8.3-.8.7v3.4c0,.4.3.7.8.7h21.2c2.6,0,4.5.4,5.6,1.3,1.3.9,1.6,2.6,1.6,3.9,0,1.9-.4,3-1.4,3.7-1,.8-2.9,1.1-5.8,1.1h-21.2c-.4,0-.8.3-.8.7v3.5c0,.2.1.4.2.5s.3.2.5.2h0l20.6-.1c2.8,0,4.7-.1,5.8-.3s2.2-.6,3-1.2c1.1-.7,2-1.9,2.7-3.4.6-1.5.8-3,.8-4.6s-.3-3.1-.8-4.5c-.4-1.4-1.2-2.5-2.4-3.5Z"/>
<path class="cls-2" d="m132.85,470.97c-1.5,0-2.9.2-3.9.6-1.1.3-2.1,1-2.9,1.9-.5.5-1.2,1.6-2.9,6.1-.2.5-.3.8-.4,1.1-.9,2.5-1.7,3.5-2.2,3.8-.7.6-1.7.8-3,.8s-2.4-.4-3.1-1.1c-.8-.9-1.2-2-1.2-3.4s.4-2.4,1.2-3.1c.9-.8,2-1.1,3.6-1.1h.4c.4,0,.8-.3.8-.7v-3.2c0-.4-.3-.7-.8-.7h-.8c-2.6,0-4.8.8-6.4,2.4-1.5,1.5-2.3,3.7-2.3,6.5,0,3,.8,5.2,2.5,6.8,1.6,1.6,4,2.5,6.9,2.5,1.5,0,2.8-.2,4-.7,1.3-.6,2.2-1.3,3-2.1.4-.4,1-1.3,2.3-4.9.2-.7.5-1.3.7-1.7l.1-.3c.9-2.5,1.7-3.4,2.1-3.7.7-.5,1.6-.7,3-.7,1.6,0,2.9.4,3.8,1.3.9.8,1.4,2,1.4,3.5,0,1.7-.5,3-1.4,3.8s-2.5,1.3-4.4,1.3h-1.1c-.4,0-.8.3-.8.7v3.4c0,.4.3.7.8.7h.9c3.3,0,5.9-.8,7.7-2.5,1.8-1.6,2.8-4,2.8-7.2s-.9-5.6-2.7-7.4c-2-1.9-4.5-2.7-7.7-2.7Z"/>
<path class="cls-2" d="m109.45,358.77c0,.4.3.7.8.7h31.5c.4,0,.8-.3.8-.7v-3.6c0-.4-.3-.7-.8-.7h-31.5c-.4,0-.8.3-.8.7v3.6Z"/>
<path class="cls-2" d="m113.45,287.87h-3.2c-.4,0-.8.3-.8.7v19.1c0,.4.3.7.8.7h3.2c.4,0,.8-.3.8-.7v-7.2h27.5c.4,0,.8-.3.8-.7v-3.6c0-.4-.3-.7-.8-.7h-27.5v-6.8c-.1-.4-.4-.8-.8-.8Z"/>
</g>
<path class="cls-2" d="m539.05,125.67h-52.2v17.6h-18.7v-54.3h18.7v17.2h52.2v19.5Zm0,79.3h-70.8v-23.6c0-6,.3-10.5.9-13.4s1.7-5.5,3.1-7.7c2.9-4.2,7-7.4,12.2-9.5s11.7-3.2,19.3-3.2c8,0,14.8,1.3,20.2,4,5.5,2.6,9.5,6.5,12.2,11.7,1.1,2,1.8,4.5,2.3,7.5.4,3,.7,7.8.7,14.4v19.8h-.1Zm-18-19.5v-5.3c0-4.9-1.3-8.3-3.8-10.2s-7.1-2.8-13.6-2.8-10.9,1-13.6,2.9-4,5.2-4,9.9v5.5h35Zm18,73.7h-70.8v-19.6h52v-26.6h18.8v46.2Zm-35.4,72.2c-11.5,0-20.6-2.8-27.3-8.5-6.7-5.7-10-13.4-10-23.1s3.3-17.5,10-23.1,15.8-8.5,27.3-8.5,20.6,2.8,27.3,8.5,10,13.4,10,23.1-3.4,17.6-10,23.1c-6.7,5.7-15.8,8.5-27.3,8.5m0-19.8c6.7,0,11.6-1,14.8-2.9,3.1-1.9,4.7-5,4.7-9.1s-1.6-7.1-4.7-9c-3.1-1.9-8-2.9-14.8-2.9s-11.7.9-14.8,2.9c-3.1,1.9-4.7,4.9-4.7,9s1.6,7.1,4.7,9.1c3.1,2,8.1,2.9,14.8,2.9m35.4,81.5h-70.8v-25c0-5.4.2-9.3.5-11.8s.9-4.6,1.6-6.3c1.3-3.1,3.4-5.5,6.3-7.1s6.3-2.5,10.4-2.5c3.2,0,6,.6,8.4,1.8,2.4,1.2,4.4,3.1,5.9,5.6,1.3-3.2,3.4-5.6,6.1-7.2,2.7-1.5,6.2-2.3,10.5-2.3s7.9.7,11,2.3c3.1,1.5,5.5,3.7,7.1,6.6,1.2,1.9,2,4.1,2.4,6.6.5,2.5.7,6.6.7,12.3v27h-.1Zm-42.6-18.9v-8.1c0-2.7-.5-4.6-1.4-5.7s-2.5-1.7-4.7-1.7-3.9.6-4.8,1.8c-.9,1.2-1.3,3.9-1.3,8.3v5.4h12.2Zm26,0v-9.1c0-3-.5-5.1-1.5-6.4s-2.7-1.9-5-1.9-4,.6-5,1.9-1.5,3.5-1.5,6.5v8.9l13,.1h0Zm16.6,81.5v17.8h-70.8v-23.8l35.3-8.5c.5-.1,1.6-.3,3.3-.7,1.7-.3,4.1-.8,7.1-1.4-2.4-.4-4.4-.7-6.2-1.1-1.8-.3-3.1-.6-4-.9l-35.5-8.7v-23.8h70.8v17.9l-34.9-.2h-6.2c-2,0-4.1,0-6.2-.1,3.7.7,7.6,1.5,12,2.4l.6.1,34.7,7.5v13.7l-33.9,7.6c-1.6.4-3.3.7-5.3,1.1-2,.3-4.7.8-8.1,1.4,3-.1,5.7-.2,7.8-.2s3.9-.1,5.2-.1h34.3Zm-70.9,86.9v-19.6h43.7c4,0,6.9-.7,8.6-2.2,1.7-1.4,2.6-3.9,2.6-7.3s-.8-5.7-2.5-7.1-4.6-2.1-8.7-2.1h-43.7v-19.6h45.4c8.9,0,15.7,2.5,20.3,7.4,4.7,4.9,7,12.1,7,21.4s-2.4,16.6-7.1,21.5c-4.7,5-11.5,7.5-20.3,7.5l-45.3.1h0Zm70.9,68.7h-70.8v-19.6h24.1v-18.3h-24.1v-19.6h70.8v19.6h-27.4v18.3h27.4v19.6Z"/>
<g>
<path class="cls-2" d="m586.45,445.07c-.4,0-.8.3-.8.7v12.2h-27.5c-.4,0-.8.3-.8.7v3.7c0,.4.3.7.8.7h31.6c.4,0,.8-.3.8-.7v-16.5c0-.4-.3-.7-.8-.7h-3.3v-.1Z"/>
<path class="cls-2" d="m587.85,593.17c-2.3-1.8-5.5-2.7-9.7-2.7-.4,0-.8.3-.8.7v3.6c0,.4.3.7.8.7h.5c2.7,0,4.6.4,5.9,1.3,1.2.7,1.8,1.9,1.8,3.5,0,1.9-.9,3.4-2.6,4.2-1.9.9-5.2,1.4-9.8,1.4s-8-.4-10.1-1.3c-1.8-.8-2.6-2.1-2.6-4,0-1.5.6-2.7,1.6-3.6,1.2-.9,2.7-1.3,4.6-1.3.4,0,.8-.3.8-.7v-3.5c0-.4-.3-.7-.8-.7h-.4c-3.3,0-5.8.8-7.6,2.6-1.9,1.8-2.7,4.2-2.7,7.4,0,3.9,1.4,6.7,4.3,8.3,2.7,1.7,7.1,2.5,13.1,2.5s9.9-.8,12.8-2.5c2.9-1.6,4.4-4.4,4.4-8-.1-3.5-1.3-6.2-3.5-7.9Z"/>
<path class="cls-2" d="m558.05,103.17l31.5,8.8h.2c.2,0,.3-.1.5-.2s.3-.4.3-.6v-3.4c0-.3-.2-.6-.6-.7l-8.5-2.2v-9.1l8.5-2.3c.3-.1.6-.4.6-.7v-3.6c0-.2-.1-.5-.3-.6s-.4-.2-.7-.1l-31.5,8.9c-.3.1-.5.4-.5.7v4.5c-.1.2.2.5.5.6Zm18.7-6.2v6.6l-12.8-3.3,12.8-3.3Z"/>
<path class="cls-2" d="m558.25,168.47h31.5c.4,0,.8-.3.8-.7v-3.8c0-.4-.3-.7-.8-.7h-31.5c-.4,0-.8.3-.8.7v3.7c0,.4.4.8.8.8Z"/>
<path class="cls-2" d="m560.85,393.87c2.7,1.8,7,2.6,13.1,2.6s10.3-.8,12.9-2.5c2.8-1.7,4.3-4.6,4.3-8.5s-1.4-6.9-4.1-8.6c-2.6-1.8-6.9-2.6-13.1-2.6s-10.3.9-13.1,2.6c-2.7,1.6-4.2,4.6-4.2,8.5,0,3.8,1.4,6.8,4.2,8.5Zm13.1-2.7c-5.2,0-8.4-.4-10.2-1.3-1.7-.9-2.5-2.3-2.5-4.4s.8-3.5,2.4-4.4c1.3-.6,4.1-1.3,10.3-1.3s9,.7,10.3,1.3c1.6.7,2.4,2.2,2.4,4.4s-.8,3.5-2.5,4.4c-1.3.6-4.1,1.3-10.2,1.3Z"/>
<path class="cls-2" d="m560.85,535.37c2.7,1.8,7,2.6,13.1,2.6s10.3-.9,12.9-2.6c2.8-1.7,4.3-4.6,4.3-8.5s-1.4-6.9-4.1-8.6c-2.6-1.8-6.9-2.6-13.1-2.6s-10.3.9-13.1,2.6c-2.8,1.8-4.1,4.6-4.1,8.6-.1,3.9,1.3,6.8,4.1,8.5Zm13.1-2.7c-6.1,0-8.9-.7-10.2-1.3-1.7-.9-2.5-2.3-2.5-4.4s.8-3.7,2.4-4.4c1.3-.6,4.1-1.3,10.3-1.3s9,.7,10.3,1.3c1.6.7,2.4,2.2,2.4,4.4s-.8,3.5-2.5,4.4c-1.3.6-4.1,1.3-10.2,1.3Z"/>
<path class="cls-2" d="m558.15,321.57h31.5c.4,0,.8-.3.8-.7v-3.5c0-.4-.3-.7-.8-.7h-23.7l23.9-6.1c.3-.1.6-.4.6-.7v-3.5c0-.3-.2-.6-.6-.7l-24.2-6.4h24.1c.2,0,.4-.1.5-.2s.2-.3.2-.5l-.1-3.5c0-.4-.3-.7-.8-.7h-31.5c-.4,0-.8.3-.8.7v6c0,.3.2.6.6.7l24.1,6.3-24.1,6.1c-.3.1-.6.4-.6.7v6.1c.2.3.5.6.9.6Z"/>
<path class="cls-2" d="m558.25,240.77h31.5c.4,0,.8-.3.8-.7v-8.7c0-3.2-.9-5.7-2.6-7.4-1.7-1.8-4.1-2.7-7.2-2.7-2.5,0-4.3.5-5.8,1.4-.8.6-1.5,1.5-2,2.6-.5-.8-1.1-1.4-1.8-1.9-1.3-.8-2.9-1.2-4.9-1.2-2.8,0-5.2.8-6.5,2.3-1.4,1.5-2.1,3.8-2.1,7.1v8.4c-.2.4.2.8.6.8Zm3.5-5v-2.8c0-2.1.4-3.6,1-4.4.7-.8,1.8-1.1,3.4-1.1,1.8,0,3,.3,3.6,1,.7.7,1,2.2,1,4.3v3h-9Zm13.5.1v-3.2c0-2.4.4-4,1.2-4.7.9-.9,2.3-1.3,4.4-1.3,1.8,0,3.1.4,3.9,1.2.8.8,1.2,2.2,1.2,4.1v3.9h-10.7Z"/>
</g>
<path class="cls-2" d="m407.75,527.37c-14.5,18.3-31,35.3-50,48.9-4.1,2.9-8.2,5.6-12.5,8.2-6.1,3.6-10.5,4.8-11.9,12.6,0,.3-.1.9-.2,1.7-7.4-9.4-19.8-14.1-30.9-17.3-3.9-1.2-8-2.2-11.9-3.1-4.3-1.1-8.8-2.2-13.1-3.5-28.7-8.8-53.5-32.8-74.5-54.5-15.2-15.7-30.1-33.4-45.3-53.9v9.9c13.8,18,27.3,33.9,41.1,48.1,21.5,22.3,47,46.8,77,56,4.4,1.4,9,2.5,13.4,3.6,3.8,1,7.8,1.9,11.6,3.1,13.1,3.8,28.4,9.9,32.2,24v.2h80.5l-5.5-84Z"/>
<path class="cls-2" d="m233.35,589.97c-12.1-13.7-28.5-33.9-46.9-61l-28.8-16.4v-5.8l22.6,12.9c-7.4-11.2-15-23.6-22.7-37v128.6h76.2l-.4-21.3Zm-23.9,3.9c-.5.8-1.3,1.3-2.2,1.3-.4,0-.8-.1-1.2-.3l-48.4-27.5v-5.8l50.8,28.9c1.2.7,1.7,2.2,1,3.4Z"/>
<path class="cls-2" d="m408.05,152.77l36.1-23.5v-40.3h-8.9l-27.3,17.8c-.4.3-.9.4-1.4.4-.8,0-1.6-.4-2.1-1.1-.8-1.2-.4-2.7.7-3.5l20.9-13.6h-43.2l5,73.7c-4.2,12.7-9.5,24.3-15.7,34.7-7.5,12.5-18.7,24.2-32.4,33.9l-1.3.9c-9.5,6.8-22.6,16-18.2,30.6.4,1.3,1.6,2.1,2.9,2.1.3,0,.6,0,.9-.1,1.6-.5,2.5-2.2,2-3.7-3-9.7,5.1-16.3,15.9-24l1.3-1c14.4-10.2,26.1-22.5,34-35.7,4.3-7.2,8.1-14.9,11.5-23.2l7,102.8c5.2-5.6,10.2-11.9,15-18.9.8-1.5,1.6-2.9,2.4-4.4v-.1c-.8-1.2-.4-2.7.7-3.5l1.6-1.1,8-5.2,20.6-13.4v-46.2l-30.3,19.8c-.4.3-.9.4-1.4.4-.8,0-1.6-.4-2.1-1.1-.8-1.2-.4-2.7.7-3.5l33.1-21.5v-46.1l-33.2,21.8c-.4.3-.9.4-1.4.4-.8,0-1.6-.4-2.1-1.1-.7-1.2-.4-2.7.7-3.5Z"/>
<path class="cls-2" d="m416.85,303.37l27.3-17.8v-46.1l-23,15-4.4,2.9h0c-.4.3-.9.4-1.3.4-.6,0-1.2-.2-1.7-.7-.9,1.4-1.8,2.7-2.7,4-6.9,12.6-14.8,24-23.5,34.1-10.5,12.1-24.8,22.4-41.2,30l-1.3.6c-11.5,5.3-27.2,12.5-25.7,29.4.1,1.6,1.4,2.7,3,2.7h.3c1.7-.1,2.9-1.6,2.7-3.3-1.2-12.7,11.3-18.4,22.2-23.4l1.3-.6c17.2-8,32.1-18.9,43.2-31.6,8.9-10.3,16.9-21.9,24-34.8-1.6,12.2-6.1,32.5-17.5,54.2l4.8,70.6c7-5.2,14.3-11.4,21.7-18.6-5.9,7.4-12.1,14.2-18.6,20.3-13.8,13.3-31.8,24.1-52.1,31.3l-1.3.5c-14.1,4.9-33.4,11.7-33.4,31.7,0,1.7,1.3,3,3,3s3-1.3,3-3c0-15.7,15.6-21.2,29.4-26l1.3-.5c21.1-7.5,39.9-18.8,54.3-32.7,10.5-10,20.3-21.6,29.4-34.7-3.8,11.9-13.2,34.6-34.4,61.6l3.7,54.9c11.2-9.2,23-20.5,34.8-34.4v-41.7l-16.3,10.6c-.4.3-.9.4-1.4.4-.8,0-1.6-.4-2.1-1.1-.8-1.2-.4-2.7.7-3.5l19.1-12.4v-51.7c-.2.3-.3.5-.5.8l-21,13.7c-.4.3-.9.4-1.4.4-.8,0-1.6-.4-2.1-1.1-.8-1.2-.4-2.7.7-3.5l24.3-15.8v-46.1l-24.5,16c-.4.3-.9.4-1.4.4-.8,0-1.6-.4-2.1-1.1-.7-1-.4-2.5.7-3.3Z"/>
<path class="cls-2" d="m317.15,400.67c-2.8-10.8-9.9-19.3-20.2-24-6.2-2.8-12.8-4.5-19.1-6.1-6.7-1.7-13.1-3.3-19.1-6.2-12.1-5.9-22.3-13.8-29.3-22.9-6.1-7.9-11.3-16.5-15.9-25.3,3.9,4.5,8.9,10.1,14.9,15.8l-1.2-66.3c-4.5-10.8-8.5-23-11.4-37,5.3,11.6,11.7,23,20,33.1,6.5,7.8,15.7,14.6,26.6,19.5,5.5,2.5,11.4,3.9,17,5.2,5.3,1.3,10.3,2.5,15.2,4.5,7,3,11.9,8.4,13.8,15.3.4,1.3,1.6,2.2,2.9,2.2.3,0,.5,0,.8-.1,1.6-.4,2.5-2.1,2.1-3.7-2.4-8.7-8.5-15.5-17.2-19.3-5.3-2.2-10.8-3.6-16.1-4.8-5.6-1.3-10.9-2.6-15.9-4.8-10.1-4.6-18.5-10.8-24.4-17.9-7.4-8.9-13.1-18.9-18-29.3,1.3,1.6,2.6,3.2,4.2,4.9l-3-144.5h-66.3v159.6l45.9,26.2c1.2.7,1.6,2.2.9,3.4-.5.8-1.3,1.3-2.2,1.3-.4,0-.8-.1-1.2-.3l-43.5-24.7v203.5c11.8,15.8,40.9,52.5,74.8,80.5l-1.3-67.6c-7.3-11.4-14.8-24.8-22.6-40.4l-50.9-28.9v-5.8l47,26.7c-1-2-2-4.1-2.9-6.2,22.3,36.8,48.7,58.1,78.6,63.5,11.3,2,19.3,4.8,24,13.1,2.9,5.1,4.3,11.3,3.7,17.1-.2,1.7,1.1,3.1,2.7,3.3h.3c1.5,0,2.8-1.2,3-2.7.7-7.1-.9-14.5-4.5-20.7-6.5-11.5-18-14.3-28.2-16.1-35.9-6.4-66.5-37.6-91.2-92.8,8.7,13.1,22.7,32.1,40.1,48.8l-1.1-60.3c-7.6-13.8-14.7-30.5-20.7-50.5,4.7,9,10,17.8,16.2,25.9,7.6,9.8,18.5,18.4,31.5,24.7,6.6,3.2,13.5,4.9,20.3,6.7,6.4,1.6,12.4,3.2,18.1,5.8,8.5,3.9,14.5,11,16.8,20,.3,1.4,1.6,2.3,2.9,2.3.2,0,.5,0,.8-.1,1.8-.4,2.7-2,2.3-3.6Zm-113.7,74.1c1.2.7,1.6,2.2.9,3.4-.5.8-1.3,1.3-2.2,1.3-.4,0-.8-.1-1.2-.3l-43.4-24.6v-5.8l45.9,26Zm-45.8-326.3l45.8,26.1c1.2.7,1.6,2.2.9,3.4-.5.8-1.3,1.3-2.2,1.3-.4,0-.8-.1-1.2-.3l-43.4-24.7.1-5.8h0Zm46.8,229.6c-.5.8-1.3,1.3-2.2,1.3-.4,0-.8-.1-1.2-.3l-18.9-10.7-.8-.4-.4-.2-.1-.1-.1-.1-23.1-13.1v-5.8l45.8,26c1.2.7,1.7,2.2,1,3.4Zm0-50c-.5.8-1.3,1.3-2.2,1.3-.4,0-.8-.1-1.2-.3l-43.4-24.6v-5.8l45.8,26c1.2.7,1.7,2.2,1,3.4Zm0-100.1c-.5.8-1.3,1.3-2.2,1.3-.4,0-.8-.1-1.2-.3l-43.4-24.6v-5.8l45.8,26c1.2.7,1.7,2.2,1,3.4Zm0-100.1c-.5.8-1.3,1.3-2.2,1.3-.4,0-.8-.1-1.2-.3l-43.4-24.6v-5.8l45.8,26c1.2.7,1.7,2.2,1,3.4Z"/>
</g>
</g>
</g>
</svg>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment