more rspam config
This commit is contained in:
parent
3aa5f0e89d
commit
bcc37dd497
|
@ -9,7 +9,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Libre Developers Documentation 0\n"
|
"Project-Id-Version: Libre Developers Documentation 0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-09-01 14:19-0600\n"
|
"POT-Creation-Date: 2024-09-01 14:44-0600\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: en\n"
|
"Language: en\n"
|
||||||
|
@ -62,7 +62,7 @@ msgstr ""
|
||||||
msgid "MariaDB"
|
msgid "MariaDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:28 ../../../_source/mail-libre-is.rst:643
|
#: ../../../_source/mail-libre-is.rst:28 ../../../_source/mail-libre-is.rst:774
|
||||||
msgid "OpenDKIM"
|
msgid "OpenDKIM"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ msgstr ""
|
||||||
msgid "`<http://www.opendkim.org/>`_"
|
msgid "`<http://www.opendkim.org/>`_"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:32 ../../../_source/mail-libre-is.rst:651
|
#: ../../../_source/mail-libre-is.rst:32 ../../../_source/mail-libre-is.rst:782
|
||||||
msgid "OpenDMARC"
|
msgid "OpenDMARC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ msgstr ""
|
||||||
msgid "`<https://www.postfix.org/>`_"
|
msgid "`<https://www.postfix.org/>`_"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:44 ../../../_source/mail-libre-is.rst:666
|
#: ../../../_source/mail-libre-is.rst:44 ../../../_source/mail-libre-is.rst:797
|
||||||
msgid "DNS"
|
msgid "DNS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -267,6 +267,7 @@ msgid "Edit /etc/postfix/master.cf and change thusly:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:412
|
#: ../../../_source/mail-libre-is.rst:412
|
||||||
|
#: ../../../_source/mail-libre-is.rst:539
|
||||||
msgid "Run:"
|
msgid "Run:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -298,147 +299,213 @@ msgstr ""
|
||||||
msgid "Configure postfix for rspamd."
|
msgid "Configure postfix for rspamd."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:463
|
#: ../../../_source/mail-libre-is.rst:461
|
||||||
msgid "Administration"
|
msgid "Edit /etc/rspamd/override.d/milter_headers.conf and add:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:464
|
#: ../../../_source/mail-libre-is.rst:467
|
||||||
msgid "Now that everything is working..."
|
msgid "Edit /etc/dovecot/conf.d/90-sieve.conf and change:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:466
|
#: ../../../_source/mail-libre-is.rst:473
|
||||||
msgid "Log into the database using the mailadmin databse password:"
|
msgid "Create dir for new sieve filter:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:474
|
#: ../../../_source/mail-libre-is.rst:479
|
||||||
msgid "List Virtual Domains"
|
msgid "Create /etc/dovecot/sieve-after/spam-to-folder.sieve with these contents:"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:482
|
|
||||||
msgid "List Virtual Users"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:490
|
#: ../../../_source/mail-libre-is.rst:490
|
||||||
msgid "List Virtual Aliases"
|
msgid "Then compile it:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:498
|
#: ../../../_source/mail-libre-is.rst:496
|
||||||
msgid "Add Virtual Domain"
|
msgid "Set up redis by adding /etc/rspamd/override.d/redis.conf with this:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:500
|
#: ../../../_source/mail-libre-is.rst:502
|
||||||
msgid "Add the domain:"
|
msgid "Add this /etc/rspamd/override.d/classifier-bayes.conf with below contents:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:508
|
#: ../../../_source/mail-libre-is.rst:508
|
||||||
|
msgid "Add /etc/rspamd/local.d/classifier-bayes.conf with:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:514
|
||||||
|
msgid "Edit /etc/dovecot/conf.d/20-imap.conf and change:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:520
|
||||||
|
msgid ""
|
||||||
|
"Edit /etc/dovecot/conf.d/90-sieve.conf and add below to \"plugins\" "
|
||||||
|
"section:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:545
|
||||||
|
msgid "Create /etc/dovecot/sieve/learn-spam.sieve with contents:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:552
|
||||||
|
msgid "Create /etc/dovecot/sieve/learn-ham.sieve and add:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:562
|
||||||
|
msgid "Run this to compile:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:571
|
||||||
|
msgid "Create /etc/dovecot/sieve/rspamd-learn-spam.sh with contents:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:578
|
||||||
|
msgid "Create /etc/dovecot/sieve/rspamd-learn-ham.sh with contents:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:585
|
||||||
|
msgid "Set ownership and permissions on scripts:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:594
|
||||||
|
msgid "Firewall"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:595
|
||||||
|
msgid "Open TCP ports."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:597
|
||||||
|
msgid "Confirm open sieve..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:617
|
||||||
|
msgid "Administration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:618
|
||||||
|
msgid "Now that everything is working..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:620
|
||||||
|
msgid "Log into the database using the mailadmin databse password:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:628
|
||||||
|
msgid "List Virtual Domains"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:636
|
||||||
|
msgid "List Virtual Users"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:644
|
||||||
|
msgid "List Virtual Aliases"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:652
|
||||||
|
msgid "Add Virtual Domain"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:654
|
||||||
|
msgid "Add the domain:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../_source/mail-libre-is.rst:662
|
||||||
msgid "Add a Mail User"
|
msgid "Add a Mail User"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:509
|
#: ../../../_source/mail-libre-is.rst:663
|
||||||
msgid "Generate a password with dovecot:"
|
msgid "Generate a password with dovecot:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:515
|
#: ../../../_source/mail-libre-is.rst:669
|
||||||
msgid ""
|
msgid ""
|
||||||
"Log into database as mailadmin and run this command, using the dovecot "
|
"Log into database as mailadmin and run this command, using the dovecot "
|
||||||
"generated password string, and set the domain and user email."
|
"generated password string, and set the domain and user email."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:518
|
#: ../../../_source/mail-libre-is.rst:672
|
||||||
msgid "Note, upstream docs are missing \"(\" and \")\" for VALUES."
|
msgid "Note, upstream docs are missing \"(\" and \")\" for VALUES."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:528
|
#: ../../../_source/mail-libre-is.rst:682
|
||||||
msgid "Add a User Alias"
|
msgid "Add a User Alias"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:529
|
#: ../../../_source/mail-libre-is.rst:683
|
||||||
msgid ""
|
msgid ""
|
||||||
"Example to add an alias. The first email should be the alias, the second "
|
"Example to add an alias. The first email should be the alias, the second "
|
||||||
"email is where it should go to."
|
"email is where it should go to."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:540
|
#: ../../../_source/mail-libre-is.rst:694
|
||||||
msgid "Change a User Password"
|
msgid "Change a User Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:541
|
#: ../../../_source/mail-libre-is.rst:695
|
||||||
msgid "Generate string for new password:"
|
msgid "Generate string for new password:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:547
|
#: ../../../_source/mail-libre-is.rst:701
|
||||||
msgid "Use that string:"
|
msgid "Use that string:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:555
|
#: ../../../_source/mail-libre-is.rst:709
|
||||||
msgid "Delete Virtual Domain"
|
msgid "Delete Virtual Domain"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:563
|
#: ../../../_source/mail-libre-is.rst:717
|
||||||
msgid "Delete User"
|
msgid "Delete User"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:571
|
#: ../../../_source/mail-libre-is.rst:725
|
||||||
msgid "Delete Alias"
|
msgid "Delete Alias"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:579
|
#: ../../../_source/mail-libre-is.rst:733
|
||||||
msgid "Firewall"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:580
|
|
||||||
msgid "Open TCP ports."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:582
|
|
||||||
msgid "Confirm open sieve..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:602
|
|
||||||
msgid "Email Client Setup"
|
msgid "Email Client Setup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:603
|
#: ../../../_source/mail-libre-is.rst:734
|
||||||
msgid "Set up mail clients thusly."
|
msgid "Set up mail clients thusly."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:607
|
#: ../../../_source/mail-libre-is.rst:738
|
||||||
msgid "Thunderbird"
|
msgid "Thunderbird"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:608
|
#: ../../../_source/mail-libre-is.rst:739
|
||||||
msgid "Example email Address: username@libre.is"
|
msgid "Example email Address: username@libre.is"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:629
|
#: ../../../_source/mail-libre-is.rst:760
|
||||||
msgid "Other"
|
msgid "Other"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:630
|
#: ../../../_source/mail-libre-is.rst:761
|
||||||
msgid "Perhaps these too."
|
msgid "Perhaps these too."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:637
|
#: ../../../_source/mail-libre-is.rst:768
|
||||||
msgid "Perhaps easier to admin with this script."
|
msgid "Perhaps easier to admin with this script."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:639
|
#: ../../../_source/mail-libre-is.rst:770
|
||||||
msgid "`<https://github.com/cgzones/ispmail-userctl>`_"
|
msgid "`<https://github.com/cgzones/ispmail-userctl>`_"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:652
|
#: ../../../_source/mail-libre-is.rst:783
|
||||||
msgid "Requires database setup."
|
msgid "Requires database setup."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:661
|
#: ../../../_source/mail-libre-is.rst:792
|
||||||
msgid "SPF"
|
msgid "SPF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:662
|
#: ../../../_source/mail-libre-is.rst:793
|
||||||
msgid "Set up SPF."
|
msgid "Set up SPF."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../_source/mail-libre-is.rst:667
|
#: ../../../_source/mail-libre-is.rst:798
|
||||||
msgid "Set up DNS."
|
msgid "Set up DNS."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -458,6 +458,137 @@ Configure postfix for rspamd.
|
||||||
sudo postconf non_smtpd_milters=inet:127.0.0.1:11332
|
sudo postconf non_smtpd_milters=inet:127.0.0.1:11332
|
||||||
sudo postconf milter_mail_macros="i {mail_addr} {client_addr} {client_name} {auth_authen}"
|
sudo postconf milter_mail_macros="i {mail_addr} {client_addr} {client_name} {auth_authen}"
|
||||||
|
|
||||||
|
Edit /etc/rspamd/override.d/milter_headers.conf and add:
|
||||||
|
|
||||||
|
.. code-block:: cfg
|
||||||
|
|
||||||
|
extended_spam_headers = true;
|
||||||
|
|
||||||
|
Edit /etc/dovecot/conf.d/90-sieve.conf and change:
|
||||||
|
|
||||||
|
.. code-block:: cfg
|
||||||
|
|
||||||
|
sieve_after = /etc/dovecot/sieve-after
|
||||||
|
|
||||||
|
Create dir for new sieve filter:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
sudo mkdir /etc/dovecot/sieve-after
|
||||||
|
|
||||||
|
Create /etc/dovecot/sieve-after/spam-to-folder.sieve with these contents:
|
||||||
|
|
||||||
|
.. code-block:: cfg
|
||||||
|
|
||||||
|
require ["fileinto"];
|
||||||
|
|
||||||
|
if header :contains "X-Spam" "Yes" {
|
||||||
|
fileinto "Junk";
|
||||||
|
stop;
|
||||||
|
}
|
||||||
|
|
||||||
|
Then compile it:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
sudo sievec /etc/dovecot/sieve-after/spam-to-folder.sieve
|
||||||
|
|
||||||
|
Set up redis by adding /etc/rspamd/override.d/redis.conf with this:
|
||||||
|
|
||||||
|
.. code-block:: cfg
|
||||||
|
|
||||||
|
servers = "127.0.0.1";
|
||||||
|
|
||||||
|
Add this /etc/rspamd/override.d/classifier-bayes.conf with below contents:
|
||||||
|
|
||||||
|
.. code-block:: cfg
|
||||||
|
|
||||||
|
autolearn = [-5, 10];
|
||||||
|
|
||||||
|
Add /etc/rspamd/local.d/classifier-bayes.conf with:
|
||||||
|
|
||||||
|
.. code-block:: cfg
|
||||||
|
|
||||||
|
users_enabled = true;
|
||||||
|
|
||||||
|
Edit /etc/dovecot/conf.d/20-imap.conf and change:
|
||||||
|
|
||||||
|
.. code-block:: cfg
|
||||||
|
|
||||||
|
mail_plugins = $mail_plugins quota imap_sieve
|
||||||
|
|
||||||
|
Edit /etc/dovecot/conf.d/90-sieve.conf and add below to "plugins" section:
|
||||||
|
|
||||||
|
.. code-block:: cfg
|
||||||
|
|
||||||
|
# From elsewhere to Junk folder
|
||||||
|
imapsieve_mailbox1_name = Junk
|
||||||
|
imapsieve_mailbox1_causes = COPY
|
||||||
|
imapsieve_mailbox1_before = file:/etc/dovecot/sieve/learn-spam.sieve
|
||||||
|
|
||||||
|
# From Junk folder to elsewhere
|
||||||
|
imapsieve_mailbox2_name = *
|
||||||
|
imapsieve_mailbox2_from = Junk
|
||||||
|
imapsieve_mailbox2_causes = COPY
|
||||||
|
imapsieve_mailbox2_before = file:/etc/dovecot/sieve/learn-ham.sieve
|
||||||
|
|
||||||
|
sieve_pipe_bin_dir = /etc/dovecot/sieve
|
||||||
|
sieve_global_extensions = +vnd.dovecot.pipe
|
||||||
|
sieve_plugins = sieve_imapsieve sieve_extprograms
|
||||||
|
|
||||||
|
Run:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
sudo mkdir /etc/dovecot/sieve
|
||||||
|
|
||||||
|
Create /etc/dovecot/sieve/learn-spam.sieve with contents:
|
||||||
|
|
||||||
|
.. code-block:: cfg
|
||||||
|
|
||||||
|
require ["vnd.dovecot.pipe", "copy", "imapsieve"];
|
||||||
|
pipe :copy "rspamd-learn-spam.sh";
|
||||||
|
|
||||||
|
Create /etc/dovecot/sieve/learn-ham.sieve and add:
|
||||||
|
|
||||||
|
.. code-block:: cfg
|
||||||
|
|
||||||
|
require ["vnd.dovecot.pipe", "copy", "imapsieve", "variables"];
|
||||||
|
if string "${mailbox}" "Trash" {
|
||||||
|
stop;
|
||||||
|
}
|
||||||
|
pipe :copy "rspamd-learn-ham.sh";
|
||||||
|
|
||||||
|
Run this to compile:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
sudo sievec /etc/dovecot/sieve/learn-spam.sieve
|
||||||
|
sudo sievec /etc/dovecot/sieve/learn-ham.sieve
|
||||||
|
sudo chmod 600 /etc/dovecot/sieve/learn-{spam,ham}.{sieve,svbin}
|
||||||
|
sudo chown vmail:vmail /etc/dovecot/sieve/learn-{spam,ham}.{sieve,svbin}
|
||||||
|
|
||||||
|
Create /etc/dovecot/sieve/rspamd-learn-spam.sh with contents:
|
||||||
|
|
||||||
|
.. code-block:: cfg
|
||||||
|
|
||||||
|
#!/bin/sh
|
||||||
|
exec /usr/bin/rspamc learn_spam
|
||||||
|
|
||||||
|
Create /etc/dovecot/sieve/rspamd-learn-ham.sh with contents:
|
||||||
|
|
||||||
|
.. code-block:: cfg
|
||||||
|
|
||||||
|
#!/bin/sh
|
||||||
|
exec /usr/bin/rspamc learn_ham
|
||||||
|
|
||||||
|
Set ownership and permissions on scripts:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
sudo chmod 700 /etc/dovecot/sieve/rspamd-learn-{spam,ham}.sh
|
||||||
|
sudo chown vmail:vmail /etc/dovecot/sieve/rspamd-learn-{spam,ham}.sh
|
||||||
|
|
||||||
|
|
||||||
Firewall
|
Firewall
|
||||||
========
|
========
|
||||||
|
|
Loading…
Reference in a new issue