From 8354f8d2cfe1f109d8a13db81def255d83931713 Mon Sep 17 00:00:00 2001 From: "forgejo-actions[bot]" Date: Mon, 6 Jul 2026 20:12:23 +0000 Subject: [PATCH] Update dist for prod --- 404.html | 19 +- _astro/156-overview.BRKXMWAJ.css | 1 - _astro/156-overview.DIaQpxUm.css | 1 + _astro/Code.B0hh-7HH.css | 1 - ...astro_type_script_index_0_lang.BcSo_yiZ.js | 1 + ...astro_type_script_index_0_lang.hwBsy0Mo.js | 1 - ...astro_type_script_index_0_lang.BhbZRdaS.js | 1 + ...astro_type_script_index_0_lang.lq3t8uE2.js | 1 - ...astro_type_script_index_0_lang.CL6y7yGH.js | 1 - ...astro_type_script_index_0_lang.DkIk0FXZ.js | 1 + ...astro_type_script_index_0_lang.Csloo1VZ.js | 1 + ...astro_type_script_index_0_lang.FuRcXuRY.js | 1 - _astro/common.BNbogtWb.css | 1 - _astro/common.DyOc-e-M.css | 3 + _astro/page.B2uBVZjk.js | 1 + _astro/page.B_tncCx8.js | 1 - _astro/print.DNXP8c50.css | 1 - _astro/print.ehPL0gv-.css | 1 + _astro/starlight-toc.CTCQXEge.js | 1 + _astro/ui-core.C8327L_n.js | 2 - _astro/ui-core.CELb2cvs.js | 2 + .../index.html | 27 ++- bacula-cheatsheet/index.html | 71 ++++--- debian-packages-are-so-old/index.html | 33 ++- getting-help-on-irc/index.html | 61 +++--- index.html | 38 ++-- .../index.html | 29 ++- ispmail-bookworm/big-picture/index.html | 37 ++-- ispmail-bookworm/catchall-aliases/index.html | 72 ++++--- .../catching-spam-with-rspamd/index.html | 65 +++--- .../index.html | 73 ++++--- .../faq-frequently-asked-questions/index.html | 45 ++--- ispmail-bookworm/index.html | 37 ++-- .../index.html | 35 ++-- .../install-the-software-packages/index.html | 57 +++--- .../index.html | 35 ++-- .../index.html | 37 ++-- .../index.html | 65 +++--- .../index.html | 53 +++-- .../monitoring-and-backup/index.html | 33 ++- .../prepare-the-database/index.html | 141 ++++++++----- .../prevent-spoofing-using-dkim/index.html | 45 ++--- ispmail-bookworm/quotas/index.html | 39 ++-- .../index.html | 100 +++++---- .../setting-dns-records/index.html | 37 ++-- .../setting-up-dovecot/index.html | 57 +++--- ispmail-bookworm/success-stories/index.html | 27 +-- .../testing-email-delivery/index.html | 45 ++--- ispmail-bookworm/testing-imap/index.html | 29 ++- .../types-of-email-domains/index.html | 147 ++++++++++---- .../webmail-using-roundcube/index.html | 47 ++--- ispmail-bookworm/whats-new/index.html | 29 ++- .../anti-spoofing-dkim-spf/index.html | 67 +++--- .../automated-installation/index.html | 31 ++- ispmail-trixie/catch-all/index.html | 70 ++++--- .../catching-spam-with-rspamd/index.html | 47 ++--- ispmail-trixie/database/index.html | 190 +++++++++++++----- ispmail-trixie/dns-records/index.html | 35 ++-- ispmail-trixie/dovecot/index.html | 55 +++-- ispmail-trixie/going-live/index.html | 27 ++- ispmail-trixie/imap/index.html | 33 ++- ispmail-trixie/index.html | 37 ++-- ispmail-trixie/install-debian/index.html | 33 ++- .../install-the-software-packages/index.html | 27 ++- ispmail-trixie/lmtp/index.html | 39 ++-- .../index.html | 51 +++-- ispmail-trixie/overview/index.html | 27 ++- ispmail-trixie/postfix/index.html | 39 ++-- ispmail-trixie/quotas/index.html | 59 +++--- ispmail-trixie/relaying/index.html | 156 +++++++++----- ispmail-trixie/tls-certificate/index.html | 41 ++-- ispmail-trixie/upgrading/index.html | 61 +++--- ispmail-trixie/virtual-domains/index.html | 27 ++- ispmail-trixie/webmail/index.html | 41 ++-- linux/renaming-multiple-files/index.html | 27 ++- linuxtip/pipes/index.html | 47 ++--- pagefind/fragment/en_13f7bd8.pf_fragment | Bin 0 -> 9774 bytes pagefind/fragment/en_1410a2d.pf_fragment | Bin 0 -> 3593 bytes pagefind/fragment/en_161b483.pf_fragment | Bin 7711 -> 0 bytes pagefind/fragment/en_16e535c.pf_fragment | Bin 0 -> 3488 bytes pagefind/fragment/en_1f3a149.pf_fragment | Bin 0 -> 2446 bytes pagefind/fragment/en_262940d.pf_fragment | Bin 3488 -> 0 bytes pagefind/fragment/en_26c431c.pf_fragment | Bin 759 -> 0 bytes pagefind/fragment/en_315c6d9.pf_fragment | Bin 3450 -> 0 bytes pagefind/fragment/en_3b3aaee.pf_fragment | Bin 2675 -> 0 bytes pagefind/fragment/en_3d46d68.pf_fragment | Bin 0 -> 11859 bytes pagefind/fragment/en_4337134.pf_fragment | Bin 0 -> 8649 bytes pagefind/fragment/en_48b7eca.pf_fragment | Bin 0 -> 7523 bytes pagefind/fragment/en_517a855.pf_fragment | Bin 0 -> 4511 bytes pagefind/fragment/en_5bbdfea.pf_fragment | Bin 2449 -> 0 bytes pagefind/fragment/en_5d8c1cb.pf_fragment | Bin 0 -> 760 bytes pagefind/fragment/en_6fdd883.pf_fragment | Bin 0 -> 2674 bytes pagefind/fragment/en_721a7d6.pf_fragment | Bin 0 -> 2930 bytes pagefind/fragment/en_72ad384.pf_fragment | Bin 0 -> 1994 bytes pagefind/fragment/en_7355b72.pf_fragment | Bin 0 -> 2153 bytes pagefind/fragment/en_74114b6.pf_fragment | Bin 0 -> 2092 bytes pagefind/fragment/en_745fe5a.pf_fragment | Bin 1204 -> 0 bytes ...c5d.pf_fragment => en_76c2567.pf_fragment} | Bin 3526 -> 3526 bytes pagefind/fragment/en_7f26324.pf_fragment | Bin 2927 -> 0 bytes pagefind/fragment/en_898af09.pf_fragment | Bin 0 -> 1464 bytes pagefind/fragment/en_9348a05.pf_fragment | Bin 0 -> 3810 bytes pagefind/fragment/en_94ddd3f.pf_fragment | Bin 0 -> 784 bytes pagefind/fragment/en_96b0ea9.pf_fragment | Bin 0 -> 3379 bytes pagefind/fragment/en_98fae4c.pf_fragment | Bin 0 -> 399 bytes ...d9b.pf_fragment => en_9ab0bc9.pf_fragment} | Bin 4335 -> 4335 bytes pagefind/fragment/en_9f69445.pf_fragment | Bin 0 -> 7754 bytes pagefind/fragment/en_a1a5b7f.pf_fragment | Bin 3591 -> 0 bytes pagefind/fragment/en_a24b9eb.pf_fragment | Bin 7546 -> 0 bytes pagefind/fragment/en_a37982f.pf_fragment | Bin 0 -> 2069 bytes pagefind/fragment/en_a3caa18.pf_fragment | Bin 8647 -> 0 bytes pagefind/fragment/en_a3d48fe.pf_fragment | Bin 0 -> 1206 bytes pagefind/fragment/en_b7f8769.pf_fragment | Bin 0 -> 4781 bytes pagefind/fragment/en_bb74427.pf_fragment | Bin 2025 -> 0 bytes pagefind/fragment/en_bc4af25.pf_fragment | Bin 11858 -> 0 bytes pagefind/fragment/en_c34b71c.pf_fragment | Bin 0 -> 3786 bytes pagefind/fragment/en_ca7a997.pf_fragment | Bin 6953 -> 0 bytes pagefind/fragment/en_cdf2461.pf_fragment | Bin 2070 -> 0 bytes pagefind/fragment/en_ce30b2d.pf_fragment | Bin 2090 -> 0 bytes pagefind/fragment/en_d2b1826.pf_fragment | Bin 4555 -> 0 bytes pagefind/fragment/en_d92c954.pf_fragment | Bin 4841 -> 0 bytes pagefind/fragment/en_da403bb.pf_fragment | Bin 1496 -> 0 bytes pagefind/fragment/en_def0b46.pf_fragment | Bin 9776 -> 0 bytes pagefind/fragment/en_dfbb744.pf_fragment | Bin 3785 -> 0 bytes pagefind/fragment/en_e85dca9.pf_fragment | Bin 784 -> 0 bytes pagefind/fragment/en_ee16a9f.pf_fragment | Bin 0 -> 6949 bytes pagefind/fragment/en_efa9a12.pf_fragment | Bin 4229 -> 0 bytes pagefind/fragment/en_f12a364.pf_fragment | Bin 0 -> 4231 bytes pagefind/fragment/en_f23fe7f.pf_fragment | Bin 399 -> 0 bytes pagefind/fragment/en_f87fe2c.pf_fragment | Bin 3843 -> 0 bytes pagefind/fragment/en_f926575.pf_fragment | Bin 3811 -> 0 bytes pagefind/fragment/en_fceb25a.pf_fragment | Bin 2153 -> 0 bytes pagefind/fragment/en_ff621c8.pf_fragment | Bin 0 -> 3842 bytes pagefind/index/en_29a43dc.pf_index | Bin 0 -> 29450 bytes pagefind/index/en_2ee8b0d.pf_index | Bin 33376 -> 0 bytes pagefind/index/en_31c8595.pf_index | Bin 0 -> 33951 bytes pagefind/index/en_65ee0a8.pf_index | Bin 29418 -> 0 bytes pagefind/index/en_71d7447.pf_index | Bin 0 -> 34128 bytes pagefind/index/en_7911ddb.pf_index | Bin 0 -> 13136 bytes pagefind/index/en_833355d.pf_index | Bin 0 -> 32588 bytes pagefind/index/en_8442a8c.pf_index | Bin 34117 -> 0 bytes pagefind/index/en_8faa4f9.pf_index | Bin 0 -> 33387 bytes pagefind/index/en_a5a5c01.pf_index | Bin 33986 -> 0 bytes pagefind/index/en_bf3f3b6.pf_index | Bin 0 -> 33442 bytes pagefind/index/en_bff4246.pf_index | Bin 33456 -> 0 bytes pagefind/index/en_c22bfd2.pf_index | Bin 13098 -> 0 bytes pagefind/index/en_d51d396.pf_index | Bin 32588 -> 0 bytes pagefind/pagefind-entry.json | 2 +- pagefind/pagefind.en_3d68a5da7d.pf_meta | Bin 682 -> 0 bytes pagefind/pagefind.en_e4a5bf745c.pf_meta | Bin 0 -> 675 bytes reference/example/index.html | 29 ++- rsnapshot-and-usb-drives/index.html | 45 ++--- squid-acls/index.html | 37 ++-- understanding-lvm/index.html | 51 +++-- 153 files changed, 1621 insertions(+), 1499 deletions(-) delete mode 100644 _astro/156-overview.BRKXMWAJ.css create mode 100644 _astro/156-overview.DIaQpxUm.css delete mode 100644 _astro/Code.B0hh-7HH.css create mode 100644 _astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js delete mode 100644 _astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.hwBsy0Mo.js create mode 100644 _astro/Search.astro_astro_type_script_index_0_lang.BhbZRdaS.js delete mode 100644 _astro/Search.astro_astro_type_script_index_0_lang.lq3t8uE2.js delete mode 100644 _astro/Splide.astro_astro_type_script_index_0_lang.CL6y7yGH.js create mode 100644 _astro/Splide.astro_astro_type_script_index_0_lang.DkIk0FXZ.js create mode 100644 _astro/TableOfContents.astro_astro_type_script_index_0_lang.Csloo1VZ.js delete mode 100644 _astro/TableOfContents.astro_astro_type_script_index_0_lang.FuRcXuRY.js delete mode 100644 _astro/common.BNbogtWb.css create mode 100644 _astro/common.DyOc-e-M.css create mode 100644 _astro/page.B2uBVZjk.js delete mode 100644 _astro/page.B_tncCx8.js delete mode 100644 _astro/print.DNXP8c50.css create mode 100644 _astro/print.ehPL0gv-.css create mode 100644 _astro/starlight-toc.CTCQXEge.js delete mode 100644 _astro/ui-core.C8327L_n.js create mode 100644 _astro/ui-core.CELb2cvs.js create mode 100644 pagefind/fragment/en_13f7bd8.pf_fragment create mode 100644 pagefind/fragment/en_1410a2d.pf_fragment delete mode 100644 pagefind/fragment/en_161b483.pf_fragment create mode 100644 pagefind/fragment/en_16e535c.pf_fragment create mode 100644 pagefind/fragment/en_1f3a149.pf_fragment delete mode 100644 pagefind/fragment/en_262940d.pf_fragment delete mode 100644 pagefind/fragment/en_26c431c.pf_fragment delete mode 100644 pagefind/fragment/en_315c6d9.pf_fragment delete mode 100644 pagefind/fragment/en_3b3aaee.pf_fragment create mode 100644 pagefind/fragment/en_3d46d68.pf_fragment create mode 100644 pagefind/fragment/en_4337134.pf_fragment create mode 100644 pagefind/fragment/en_48b7eca.pf_fragment create mode 100644 pagefind/fragment/en_517a855.pf_fragment delete mode 100644 pagefind/fragment/en_5bbdfea.pf_fragment create mode 100644 pagefind/fragment/en_5d8c1cb.pf_fragment create mode 100644 pagefind/fragment/en_6fdd883.pf_fragment create mode 100644 pagefind/fragment/en_721a7d6.pf_fragment create mode 100644 pagefind/fragment/en_72ad384.pf_fragment create mode 100644 pagefind/fragment/en_7355b72.pf_fragment create mode 100644 pagefind/fragment/en_74114b6.pf_fragment delete mode 100644 pagefind/fragment/en_745fe5a.pf_fragment rename pagefind/fragment/{en_6360c5d.pf_fragment => en_76c2567.pf_fragment} (70%) delete mode 100644 pagefind/fragment/en_7f26324.pf_fragment create mode 100644 pagefind/fragment/en_898af09.pf_fragment create mode 100644 pagefind/fragment/en_9348a05.pf_fragment create mode 100644 pagefind/fragment/en_94ddd3f.pf_fragment create mode 100644 pagefind/fragment/en_96b0ea9.pf_fragment create mode 100644 pagefind/fragment/en_98fae4c.pf_fragment rename pagefind/fragment/{en_5a9dd9b.pf_fragment => en_9ab0bc9.pf_fragment} (75%) create mode 100644 pagefind/fragment/en_9f69445.pf_fragment delete mode 100644 pagefind/fragment/en_a1a5b7f.pf_fragment delete mode 100644 pagefind/fragment/en_a24b9eb.pf_fragment create mode 100644 pagefind/fragment/en_a37982f.pf_fragment delete mode 100644 pagefind/fragment/en_a3caa18.pf_fragment create mode 100644 pagefind/fragment/en_a3d48fe.pf_fragment create mode 100644 pagefind/fragment/en_b7f8769.pf_fragment delete mode 100644 pagefind/fragment/en_bb74427.pf_fragment delete mode 100644 pagefind/fragment/en_bc4af25.pf_fragment create mode 100644 pagefind/fragment/en_c34b71c.pf_fragment delete mode 100644 pagefind/fragment/en_ca7a997.pf_fragment delete mode 100644 pagefind/fragment/en_cdf2461.pf_fragment delete mode 100644 pagefind/fragment/en_ce30b2d.pf_fragment delete mode 100644 pagefind/fragment/en_d2b1826.pf_fragment delete mode 100644 pagefind/fragment/en_d92c954.pf_fragment delete mode 100644 pagefind/fragment/en_da403bb.pf_fragment delete mode 100644 pagefind/fragment/en_def0b46.pf_fragment delete mode 100644 pagefind/fragment/en_dfbb744.pf_fragment delete mode 100644 pagefind/fragment/en_e85dca9.pf_fragment create mode 100644 pagefind/fragment/en_ee16a9f.pf_fragment delete mode 100644 pagefind/fragment/en_efa9a12.pf_fragment create mode 100644 pagefind/fragment/en_f12a364.pf_fragment delete mode 100644 pagefind/fragment/en_f23fe7f.pf_fragment delete mode 100644 pagefind/fragment/en_f87fe2c.pf_fragment delete mode 100644 pagefind/fragment/en_f926575.pf_fragment delete mode 100644 pagefind/fragment/en_fceb25a.pf_fragment create mode 100644 pagefind/fragment/en_ff621c8.pf_fragment create mode 100644 pagefind/index/en_29a43dc.pf_index delete mode 100644 pagefind/index/en_2ee8b0d.pf_index create mode 100644 pagefind/index/en_31c8595.pf_index delete mode 100644 pagefind/index/en_65ee0a8.pf_index create mode 100644 pagefind/index/en_71d7447.pf_index create mode 100644 pagefind/index/en_7911ddb.pf_index create mode 100644 pagefind/index/en_833355d.pf_index delete mode 100644 pagefind/index/en_8442a8c.pf_index create mode 100644 pagefind/index/en_8faa4f9.pf_index delete mode 100644 pagefind/index/en_a5a5c01.pf_index create mode 100644 pagefind/index/en_bf3f3b6.pf_index delete mode 100644 pagefind/index/en_bff4246.pf_index delete mode 100644 pagefind/index/en_c22bfd2.pf_index delete mode 100644 pagefind/index/en_d51d396.pf_index delete mode 100644 pagefind/pagefind.en_3d68a5da7d.pf_meta create mode 100644 pagefind/pagefind.en_e4a5bf745c.pf_meta diff --git a/404.html b/404.html index 5eb24ee..5dd0594 100644 --- a/404.html +++ b/404.html @@ -1,4 +1,4 @@ - 404 | ISPmail Guide - Skip to content
Skip to content

404

Page not found. Check the URL or try using the search bar.
\ No newline at end of file +

404

Page not found. Check the URL or try using the search bar.
\ No newline at end of file diff --git a/_astro/156-overview.BRKXMWAJ.css b/_astro/156-overview.BRKXMWAJ.css deleted file mode 100644 index 0cf3877..0000000 --- a/_astro/156-overview.BRKXMWAJ.css +++ /dev/null @@ -1 +0,0 @@ -.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;contain:strict;display:inline-block;height:20px;inset:0;margin:auto;position:absolute;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__arrow{-ms-flex-align:center;align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;height:2em;-ms-flex-pack:center;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #0bf;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports (outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}}@supports (outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;inset:0 .5em 0 auto;padding:1em 0} diff --git a/_astro/156-overview.DIaQpxUm.css b/_astro/156-overview.DIaQpxUm.css new file mode 100644 index 0000000..e531fe3 --- /dev/null +++ b/_astro/156-overview.DIaQpxUm.css @@ -0,0 +1 @@ +.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;height:100%;display:flex;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{pointer-events:none;flex-wrap:wrap;justify-content:center;align-items:center;margin:0;display:flex}.splide__pagination li{pointer-events:auto;margin:0;line-height:1;list-style-type:none;display:inline-block}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{visibility:hidden;position:relative}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;margin:0;position:relative;list-style-type:none!important}.splide__slide img{vertical-align:bottom}.splide__spinner{contain:strict;border:2px solid #999;border-left-color:#0000;border-radius:50%;width:20px;height:20px;margin:auto;animation:1s linear infinite splide-loading;display:inline-block;position:absolute;inset:0}.splide__sr{clip:rect(0 0 0 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{z-index:0;position:relative;overflow:hidden}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{opacity:0;z-index:0;margin:0!important}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__arrow{cursor:pointer;opacity:.7;z-index:1;background:#ccc;border:0;border-radius:50%;justify-content:center;align-items:center;width:2em;height:2em;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.splide__arrow svg{fill:#000;width:1.2em;height:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline-offset:3px;outline:3px solid #0bf}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline-offset:3px;outline:3px solid #0bf}.splide__pagination{z-index:1;padding:0 1em;position:absolute;bottom:.5em;left:0;right:0}.splide__pagination__page{opacity:.7;background:#ccc;border:0;border-radius:50%;width:8px;height:8px;margin:3px;padding:0;transition:transform .2s linear;display:inline-block;position:relative}.splide__pagination__page.is-active{z-index:1;background:#fff;transform:scale(1.4)}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible,.splide.is-focus-in .splide__pagination__page:focus{outline-offset:3px;outline:3px solid #0bf}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:#0000}.splide__slide:focus{outline:0}@supports (outline-offset:-3px){.splide__slide:focus-visible{outline-offset:-3px;outline:3px solid #0bf}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}}@supports (outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline-offset:-3px;outline:3px solid #0bf}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible,.splide.is-focus-in .splide__toggle:focus{outline-offset:3px;outline:3px solid #0bf}.splide__track--nav>.splide__list>.splide__slide{cursor:pointer;border:3px solid #0000}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{top:auto;bottom:1em}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{flex-direction:column;padding:1em 0;display:flex;inset:0 .5em 0 auto} diff --git a/_astro/Code.B0hh-7HH.css b/_astro/Code.B0hh-7HH.css deleted file mode 100644 index a6ad046..0000000 --- a/_astro/Code.B0hh-7HH.css +++ /dev/null @@ -1 +0,0 @@ -@layer starlight.components{svg:where(.astro-c6vsoqas){color:var(--sl-icon-color);font-size:var(--sl-icon-size, 1em);width:1em;height:1em}}@layer starlight.components{:root{--sl-badge-default-border: var(--sl-color-accent);--sl-badge-default-bg: var(--sl-color-accent-low);--sl-badge-default-text: #fff;--sl-badge-note-border: var(--sl-color-blue);--sl-badge-note-bg: var(--sl-color-blue-low);--sl-badge-note-text: #fff;--sl-badge-danger-border: var(--sl-color-red);--sl-badge-danger-bg: var(--sl-color-red-low);--sl-badge-danger-text: #fff;--sl-badge-success-border: var(--sl-color-green);--sl-badge-success-bg: var(--sl-color-green-low);--sl-badge-success-text: #fff;--sl-badge-caution-border: var(--sl-color-orange);--sl-badge-caution-bg: var(--sl-color-orange-low);--sl-badge-caution-text: #fff;--sl-badge-tip-border: var(--sl-color-purple);--sl-badge-tip-bg: var(--sl-color-purple-low);--sl-badge-tip-text: #fff}[data-theme=light]:root{--sl-badge-default-bg: var(--sl-color-accent-high);--sl-badge-note-bg: var(--sl-color-blue-high);--sl-badge-danger-bg: var(--sl-color-red-high);--sl-badge-success-bg: var(--sl-color-green-high);--sl-badge-caution-bg: var(--sl-color-orange-high);--sl-badge-tip-bg: var(--sl-color-purple-high)}.sl-badge:where(.astro-avdet4wd){display:inline-block;border:1px solid var(--sl-color-border-badge);border-radius:.25rem;font-family:var(--sl-font-system-mono);line-height:normal;color:var(--sl-color-text-badge);background-color:var(--sl-color-bg-badge);overflow-wrap:anywhere}.sidebar-content .sl-badge:where(.astro-avdet4wd){line-height:1;font-size:var(--sl-text-xs);padding:.125rem .375rem}.sidebar-content a[aria-current=page]>.sl-badge:where(.astro-avdet4wd){--sl-color-bg-badge: transparent;--sl-color-border-badge: currentColor;color:inherit}.default:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-default-bg);--sl-color-border-badge: var(--sl-badge-default-border);--sl-color-text-badge: var(--sl-badge-default-text)}.note:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-note-bg);--sl-color-border-badge: var(--sl-badge-note-border);--sl-color-text-badge: var(--sl-badge-note-text)}.danger:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-danger-bg);--sl-color-border-badge: var(--sl-badge-danger-border);--sl-color-text-badge: var(--sl-badge-danger-text)}.success:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-success-bg);--sl-color-border-badge: var(--sl-badge-success-border);--sl-color-text-badge: var(--sl-badge-success-text)}.tip:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-tip-bg);--sl-color-border-badge: var(--sl-badge-tip-border);--sl-color-text-badge: var(--sl-badge-tip-text)}.caution:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-caution-bg);--sl-color-border-badge: var(--sl-badge-caution-border);--sl-color-text-badge: var(--sl-badge-caution-text)}.small:where(.astro-avdet4wd){font-size:var(--sl-text-xs);padding:.125rem .25rem}.medium:where(.astro-avdet4wd){font-size:var(--sl-text-sm);padding:.175rem .35rem}.large:where(.astro-avdet4wd){font-size:var(--sl-text-base);padding:.225rem .45rem}.sl-markdown-content :is(h1,h2,h3,h4,h5,h6) .sl-badge:where(.astro-avdet4wd){vertical-align:middle}}@layer starlight.components{.card:where(.astro-v5tidmuc){--sl-card-border: var(--sl-color-purple);--sl-card-bg: var(--sl-color-purple-low);border:1px solid var(--sl-color-gray-5);background-color:var(--sl-color-black);padding:clamp(1rem,calc(.125rem + 3vw),2.5rem);flex-direction:column;gap:clamp(.5rem,calc(.125rem + 1vw),1rem)}.card:where(.astro-v5tidmuc):nth-child(4n+1){--sl-card-border: var(--sl-color-orange);--sl-card-bg: var(--sl-color-orange-low)}.card:where(.astro-v5tidmuc):nth-child(4n+3){--sl-card-border: var(--sl-color-green);--sl-card-bg: var(--sl-color-green-low)}.card:where(.astro-v5tidmuc):nth-child(4n+4){--sl-card-border: var(--sl-color-red);--sl-card-bg: var(--sl-color-red-low)}.card:where(.astro-v5tidmuc):nth-child(4n+5){--sl-card-border: var(--sl-color-blue);--sl-card-bg: var(--sl-color-blue-low)}.title:where(.astro-v5tidmuc){font-weight:600;font-size:var(--sl-text-h4);color:var(--sl-color-white);line-height:var(--sl-line-height-headings);gap:1rem;align-items:center}.card:where(.astro-v5tidmuc) .icon:where(.astro-v5tidmuc){border:1px solid var(--sl-card-border);background-color:var(--sl-card-bg);padding:.2em;border-radius:.25rem;flex-shrink:0}.card:where(.astro-v5tidmuc) .body:where(.astro-v5tidmuc){margin:0;font-size:clamp(var(--sl-text-sm),calc(.5rem + 1vw),var(--sl-text-body))}}@layer starlight.components{.card-grid:where(.astro-zntqmydn){display:grid;grid-template-columns:100%;gap:1rem}.card-grid:where(.astro-zntqmydn)>*{margin-top:0!important}@media(min-width:50rem){.card-grid:where(.astro-zntqmydn){grid-template-columns:1fr 1fr;gap:1.5rem}.stagger:where(.astro-zntqmydn){--stagger-height: 5rem;padding-bottom:var(--stagger-height)}.stagger:where(.astro-zntqmydn)>*:nth-child(2n){transform:translateY(var(--stagger-height))}}}@layer starlight.components{starlight-tabs:where(.astro-esqgolmp){display:block}.tablist-wrapper:where(.astro-esqgolmp){overflow-x:auto}:where(.astro-esqgolmp)[role=tablist]{display:flex;list-style:none;border-bottom:2px solid var(--sl-color-gray-5);padding:0}.tab:where(.astro-esqgolmp){display:flex}.tab:where(.astro-esqgolmp)>:where(.astro-esqgolmp)[role=tab]{--sl-tab-color-border: var(--sl-color-gray-5);display:flex;align-items:center;gap:.5rem;line-height:var(--sl-line-height-headings);padding:.275rem 1.25rem;text-decoration:none;box-shadow:0 2px 0 var(--sl-tab-color-border);color:var(--sl-color-gray-3);outline-offset:var(--sl-outline-offset-inside);overflow-wrap:initial}.tab:where(.astro-esqgolmp) :where(.astro-esqgolmp)[role=tab][aria-selected=true]{--sl-tab-color-border: var(--sl-color-text-accent);color:var(--sl-color-white);font-weight:600}.tablist-wrapper:where(.astro-esqgolmp)~[role=tabpanel]{margin-top:1rem}}@layer starlight.components{.sl-steps{--bullet-size: calc(var(--sl-line-height) * 1rem);--bullet-margin: .375rem;list-style:none;counter-reset:steps-counter var(--sl-steps-start, 0);padding-inline-start:0}.sl-steps>li{counter-increment:steps-counter;position:relative;padding-inline-start:calc(var(--bullet-size) + 1rem);padding-bottom:1px;min-height:calc(var(--bullet-size) + var(--bullet-margin))}.sl-steps>li+li{margin-top:0}.sl-steps>li:before{content:counter(steps-counter);position:absolute;top:0;inset-inline-start:0;width:var(--bullet-size);height:var(--bullet-size);line-height:var(--bullet-size);font-size:var(--sl-text-xs);font-weight:600;text-align:center;color:var(--sl-color-white);background-color:var(--sl-color-gray-6);border-radius:99rem;box-shadow:inset 0 0 0 1px var(--sl-color-gray-5)}.sl-steps>li:after{--guide-width: 1px;content:"";position:absolute;top:calc(var(--bullet-size) + var(--bullet-margin));bottom:var(--bullet-margin);inset-inline-start:calc((var(--bullet-size) - var(--guide-width)) / 2);width:var(--guide-width);background-color:var(--sl-color-hairline-light)}}@layer starlight.content{.sl-steps>li>:first-child{--lh: calc(1em * var(--sl-line-height));--shift-y: calc(.5 * (var(--bullet-size) - var(--lh)));transform:translateY(var(--shift-y));margin-bottom:var(--shift-y)}.sl-steps>li>:first-child:where(h1,h2,h3,h4,h5,h6){--lh: calc(1em * var(--sl-line-height-headings))}@supports (--prop: 1lh){.sl-steps>li>:first-child{--lh: 1lh}}}@layer starlight.components{starlight-file-tree:where(.astro-p67cqifm){--x-space: 1.5rem;--y-space: .125rem;--y-pad: 0;display:block;border:1px solid var(--sl-color-gray-5);padding:1rem;background-color:var(--sl-color-gray-6);font-size:var(--sl-text-xs);font-family:var(--__sl-font-mono);overflow-x:auto}starlight-file-tree:where(.astro-p67cqifm) .directory>details{border:0;padding:0;padding-inline-start:var(--x-space);background:transparent}starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary{margin-inline-start:calc(-1 * var(--x-space));border:0;padding:var(--y-pad) .625rem;font-weight:400;color:var(--sl-color-white);max-width:100%}starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary::marker,starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary::-webkit-details-marker{color:var(--sl-color-gray-3)}starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary:hover,starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary:hover .tree-icon{cursor:pointer;color:var(--sl-color-text-accent);fill:currentColor}starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary:hover~ul{border-color:var(--sl-color-gray-4)}starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary:hover .highlight .tree-icon{color:var(--sl-color-text-invert);fill:currentColor}starlight-file-tree:where(.astro-p67cqifm) ul{margin-inline-start:.5rem;border-inline-start:1px solid var(--sl-color-gray-5);padding:0;padding-inline-start:.125rem;list-style:none}starlight-file-tree:where(.astro-p67cqifm)>ul{margin:0;border:0;padding:0}starlight-file-tree:where(.astro-p67cqifm) li{margin:var(--y-space) 0;padding:var(--y-pad) 0}starlight-file-tree:where(.astro-p67cqifm) .file{margin-inline-start:calc(var(--x-space) - .125rem);color:var(--sl-color-white)}starlight-file-tree:where(.astro-p67cqifm) .tree-entry{display:inline-flex;align-items:flex-start;flex-wrap:wrap;max-width:calc(100% - 1rem)}@media(min-width:30em){starlight-file-tree:where(.astro-p67cqifm) .tree-entry{flex-wrap:nowrap}}starlight-file-tree:where(.astro-p67cqifm) .tree-entry>:first-child{flex-shrink:0}starlight-file-tree:where(.astro-p67cqifm) .empty{color:var(--sl-color-gray-3);padding-inline-start:.375rem}starlight-file-tree:where(.astro-p67cqifm) .comment{color:var(--sl-color-gray-3);padding-inline-start:1.625rem;max-width:24rem;min-width:12rem}starlight-file-tree:where(.astro-p67cqifm) .highlight{display:inline-block;border-radius:.25rem;padding-inline-end:.5rem;color:var(--sl-color-text-invert);background-color:var(--sl-color-text-accent)}starlight-file-tree:where(.astro-p67cqifm) svg{display:inline;fill:var(--sl-color-gray-3);vertical-align:middle;margin-inline:.25rem .375rem;width:.875rem;height:.875rem}starlight-file-tree:where(.astro-p67cqifm) .highlight svg.tree-icon{fill:currentColor}}@layer starlight.components{.sl-link-button:where(.astro-xwgiixxa){align-items:center;border:1px solid transparent;border-radius:999rem;display:inline-flex;font-size:var(--sl-text-sm);gap:.5em;line-height:1.1875;outline-offset:.25rem;padding:.4375rem 1.125rem;text-decoration:none}.sl-link-button:where(.astro-xwgiixxa).primary{background:var(--sl-color-text-accent);border-color:var(--sl-color-text-accent);color:var(--sl-color-black)}.sl-link-button:where(.astro-xwgiixxa).primary:hover{color:var(--sl-color-black)}.sl-link-button:where(.astro-xwgiixxa).secondary{border-color:inherit;color:var(--sl-color-white)}.sl-link-button:where(.astro-xwgiixxa).minimal{color:var(--sl-color-white);padding-inline:0}.sl-link-button:where(.astro-xwgiixxa) svg{flex-shrink:0}@media(min-width:50rem){.sl-link-button:where(.astro-xwgiixxa){font-size:var(--sl-text-base);padding:.9375rem 1.25rem}}.sl-markdown-content .sl-link-button:where(.astro-xwgiixxa){margin-inline-end:1rem}.sl-markdown-content .sl-link-button:where(.astro-xwgiixxa):not(:where(p *)){margin-block:1rem}} diff --git a/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js b/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js new file mode 100644 index 0000000..9afad92 --- /dev/null +++ b/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js @@ -0,0 +1 @@ +import{t as e}from"./starlight-toc.CTCQXEge.js";var t=class extends e{set current(e){super.current=e;let t=this.querySelector(`.display-current`);t&&(t.textContent=e.textContent)}constructor(){super();let e=this.querySelector(`details`);if(!e)return;let t=()=>{e.open=!1};e.querySelectorAll(`a`).forEach(e=>{e.addEventListener(`click`,t)}),window.addEventListener(`click`,n=>{e.contains(n.target)||t()}),window.addEventListener(`keydown`,n=>{if(n.key===`Escape`&&e.open){let n=e.contains(document.activeElement);if(t(),n){let t=e.querySelector(`summary`);t&&t.focus()}}})}};customElements.define(`mobile-starlight-toc`,t); \ No newline at end of file diff --git a/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.hwBsy0Mo.js b/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.hwBsy0Mo.js deleted file mode 100644 index b2fd297..0000000 --- a/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.hwBsy0Mo.js +++ /dev/null @@ -1 +0,0 @@ -import{S as r}from"./TableOfContents.astro_astro_type_script_index_0_lang.FuRcXuRY.js";class c extends r{set current(e){super.current=e;const t=this.querySelector(".display-current");t&&(t.textContent=e.textContent)}constructor(){super();const e=this.querySelector("details");if(!e)return;const t=()=>{e.open=!1};e.querySelectorAll("a").forEach(s=>{s.addEventListener("click",t)}),window.addEventListener("click",s=>{e.contains(s.target)||t()}),window.addEventListener("keydown",s=>{if(s.key==="Escape"&&e.open){const o=e.contains(document.activeElement);if(t(),o){const n=e.querySelector("summary");n&&n.focus()}}})}}customElements.define("mobile-starlight-toc",c); diff --git a/_astro/Search.astro_astro_type_script_index_0_lang.BhbZRdaS.js b/_astro/Search.astro_astro_type_script_index_0_lang.BhbZRdaS.js new file mode 100644 index 0000000..91fb1de --- /dev/null +++ b/_astro/Search.astro_astro_type_script_index_0_lang.BhbZRdaS.js @@ -0,0 +1 @@ +var e={ranking:{pageLength:.1,termFrequency:.1,termSaturation:2,termSimilarity:9,diacriticSimilarity:.8}},t=(function(){let e=typeof document<`u`&&document.createElement(`link`).relList;return e&&e.supports&&e.supports(`modulepreload`)?`modulepreload`:`preload`})(),n=function(e){return`/`+e},r={},i=function(e,i,a){let o=Promise.resolve();if(i&&i.length>0){let e=document.getElementsByTagName(`link`),s=document.querySelector(`meta[property=csp-nonce]`),c=s?.nonce||s?.getAttribute(`nonce`);function l(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function u(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,new URL(`../../../src/node/plugins/importAnalysisBuild.ts`,import.meta.url)).href}o=l(i.map(i=>{if(i=n(i,a),i=u(i),i in r)return;r[i]=!0;let o=i.endsWith(`.css`);for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.href===i&&(!o||n.rel===`stylesheet`))return}let s=document.createElement(`link`);if(s.rel=o?`stylesheet`:t,o||(s.as=`script`),s.crossOrigin=``,s.href=i,c&&s.setAttribute(`nonce`,c),document.head.appendChild(s),o)return new Promise((e,t)=>{s.addEventListener(`load`,e),s.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${i}`)))})}))}function s(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return o.then(t=>{for(let e of t||[])e.status===`rejected`&&s(e.reason);return e().catch(s)})},a=class extends HTMLElement{constructor(){super();let t=this.querySelector(`button[data-open-modal]`),n=this.querySelector(`button[data-close-modal]`),r=this.querySelector(`dialog`),a=this.querySelector(`.dialog-frame`),o=e=>{(`href`in(e.target||{})||document.body.contains(e.target)&&!a.contains(e.target))&&c()},s=e=>{r.showModal(),document.body.toggleAttribute(`data-search-modal-open`,!0),this.querySelector(`input`)?.focus(),e?.stopPropagation(),window.addEventListener(`click`,o)},c=()=>r.close();t.addEventListener(`click`,s),t.disabled=!1,n.addEventListener(`click`,c),r.addEventListener(`close`,()=>{document.body.toggleAttribute(`data-search-modal-open`,!1),window.removeEventListener(`click`,o)}),window.addEventListener(`keydown`,e=>{(e.metaKey===!0||e.ctrlKey===!0)&&e.key===`k`&&(r.open?c():s(),e.preventDefault())});let l={};try{l=JSON.parse(this.dataset.translations||`{}`)}catch{}let u=this.dataset.stripTrailingSlash===void 0?e=>e:e=>e.replace(/(.)\/(#.*)?$/,`$1$2`);window.addEventListener(`DOMContentLoaded`,()=>{(window.requestIdleCallback||(e=>setTimeout(e,1)))(async()=>{let{PagefindUI:t}=await i(async()=>{let{PagefindUI:e}=await import(`./ui-core.CELb2cvs.js`);return{PagefindUI:e}},[]);new t({...e,element:`#starlight__search`,baseUrl:`/`,bundlePath:`/`.replace(/\/$/,``)+`/pagefind/`,showImages:!1,translations:l,showSubResults:!0,processResult:e=>{e.url=u(e.url),e.sub_results=e.sub_results.map(e=>(e.url=u(e.url),e))}})})})}};customElements.define(`site-search`,a);export{i as t}; \ No newline at end of file diff --git a/_astro/Search.astro_astro_type_script_index_0_lang.lq3t8uE2.js b/_astro/Search.astro_astro_type_script_index_0_lang.lq3t8uE2.js deleted file mode 100644 index c791c01..0000000 --- a/_astro/Search.astro_astro_type_script_index_0_lang.lq3t8uE2.js +++ /dev/null @@ -1 +0,0 @@ -const y=(function(){const r=typeof document<"u"&&document.createElement("link").relList;return r&&r.supports&&r.supports("modulepreload")?"modulepreload":"preload"})(),S=function(m){return"/"+m},g={},w=function(r,c,d){let p=Promise.resolve();if(c&&c.length>0){let f=function(n){return Promise.all(n.map(i=>Promise.resolve(i).then(s=>({status:"fulfilled",value:s}),s=>({status:"rejected",reason:s}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),t=o?.nonce||o?.getAttribute("nonce");p=f(c.map(n=>{if(n=S(n),n in g)return;g[n]=!0;const i=n.endsWith(".css"),s=i?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${n}"]${s}`))return;const e=document.createElement("link");if(e.rel=i?"stylesheet":y,i||(e.as="script"),e.crossOrigin="",e.href=n,t&&e.setAttribute("nonce",t),document.head.appendChild(e),i)return new Promise((l,a)=>{e.addEventListener("load",l),e.addEventListener("error",()=>a(new Error(`Unable to preload CSS for ${n}`)))})}))}function u(o){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=o,window.dispatchEvent(t),!t.defaultPrevented)throw o}return p.then(o=>{for(const t of o||[])t.status==="rejected"&&u(t.reason);return r().catch(u)})},E={ranking:{pageLength:.1,termFrequency:.1,termSaturation:2,termSimilarity:9,diacriticSimilarity:.8}};class v extends HTMLElement{constructor(){super();const r=this.querySelector("button[data-open-modal]"),c=this.querySelector("button[data-close-modal]"),d=this.querySelector("dialog"),p=this.querySelector(".dialog-frame"),u=e=>{("href"in(e.target||{})||document.body.contains(e.target)&&!p.contains(e.target))&&t()},o=e=>{d.showModal(),document.body.toggleAttribute("data-search-modal-open",!0),this.querySelector("input")?.focus(),e?.stopPropagation(),window.addEventListener("click",u)},t=()=>d.close();r.addEventListener("click",o),r.disabled=!1,c.addEventListener("click",t),d.addEventListener("close",()=>{document.body.toggleAttribute("data-search-modal-open",!1),window.removeEventListener("click",u)}),window.addEventListener("keydown",e=>{(e.metaKey===!0||e.ctrlKey===!0)&&e.key==="k"&&(d.open?t():o(),e.preventDefault())});let f={};try{f=JSON.parse(this.dataset.translations||"{}")}catch{}const s=this.dataset.stripTrailingSlash!==void 0?e=>e.replace(/(.)\/(#.*)?$/,"$1$2"):e=>e;window.addEventListener("DOMContentLoaded",()=>{(window.requestIdleCallback||(l=>setTimeout(l,1)))(async()=>{const{PagefindUI:l}=await w(async()=>{const{PagefindUI:a}=await import("./ui-core.C8327L_n.js");return{PagefindUI:a}},[]);new l({...E,element:"#starlight__search",baseUrl:"/",bundlePath:"/".replace(/\/$/,"")+"/pagefind/",showImages:!1,translations:f,showSubResults:!0,processResult:a=>{a.url=s(a.url),a.sub_results=a.sub_results.map(h=>(h.url=s(h.url),h))}})})})}}customElements.define("site-search",v);export{w as _}; diff --git a/_astro/Splide.astro_astro_type_script_index_0_lang.CL6y7yGH.js b/_astro/Splide.astro_astro_type_script_index_0_lang.CL6y7yGH.js deleted file mode 100644 index c9f5663..0000000 --- a/_astro/Splide.astro_astro_type_script_index_0_lang.CL6y7yGH.js +++ /dev/null @@ -1 +0,0 @@ -function Jn(e,n){for(var t=0;t-1}function at(e,n){return e.push.apply(e,Ze(n)),e}function fe(e,n,t){e&&ne(n,function(r){r&&e.classList[t?"add":"remove"](r)})}function oe(e,n){fe(e,me(n)?n.split(" "):n,!0)}function Je(e,n){ne(n,e.appendChild.bind(e))}function Ft(e,n){ne(e,function(t){var r=(n||t).parentNode;r&&r.insertBefore(t,n)})}function We(e,n){return hn(e)&&(e.msMatchesSelector||e.matches).call(e,n)}function mn(e,n){var t=e?_e(e.children):[];return n?t.filter(function(r){return We(r,n)}):t}function Qe(e,n){return n?mn(e,n)[0]:e.firstElementChild}var He=Object.keys;function Ie(e,n,t){return e&&(t?He(e).reverse():He(e)).forEach(function(r){r!=="__proto__"&&n(e[r],r)}),e}function Ye(e){return _e(arguments,1).forEach(function(n){Ie(n,function(t,r){e[r]=n[r]})}),e}function he(e){return _e(arguments,1).forEach(function(n){Ie(n,function(t,r){Mt(t)?e[r]=t.slice():Be(t)?e[r]=he({},Be(e[r])?e[r]:{},t):e[r]=t})}),e}function nn(e,n){ne(n||He(e),function(t){delete e[t]})}function ue(e,n){ne(e,function(t){ne(n,function(r){t&&t.removeAttribute(r)})})}function x(e,n,t){Be(n)?Ie(n,function(r,a){x(e,a,r)}):ne(e,function(r){Vt(t)||t===""?ue(r,n):r.setAttribute(n,String(t))})}function Pe(e,n,t){var r=document.createElement(e);return n&&(me(n)?oe(r,n):x(r,n)),t&&Je(t,r),r}function re(e,n,t){if(je(t))return getComputedStyle(e)[n];Vt(t)||(e.style[n]=""+t)}function Xe(e,n){re(e,"display",n)}function An(e){e.setActive&&e.setActive()||e.focus({preventScroll:!0})}function ie(e,n){return e.getAttribute(n)}function rn(e,n){return e&&e.classList.contains(n)}function ee(e){return e.getBoundingClientRect()}function Ne(e){ne(e,function(n){n&&n.parentNode&&n.parentNode.removeChild(n)})}function _n(e){return Qe(new DOMParser().parseFromString(e,"text/html").body)}function ce(e,n){e.preventDefault(),n&&(e.stopPropagation(),e.stopImmediatePropagation())}function yn(e,n){return e&&e.querySelector(n)}function kt(e,n){return n?_e(e.querySelectorAll(n)):[]}function ve(e,n){fe(e,n,!1)}function Ot(e){return e.timeStamp}function Le(e){return me(e)?e:e?e+"px":""}var et="splide",zt="data-"+et;function Ge(e,n){if(!e)throw new Error("["+et+"] "+(n||""))}var Ae=Math.min,ct=Math.max,ft=Math.floor,Ke=Math.ceil,Q=Math.abs;function Sn(e,n,t){return Q(e-n)0)-+(e<0)}function Ct(e,n){return ne(n,function(t){e=e.replace("%s",""+t)}),e}function Gt(e){return e<10?"0"+e:""+e}var an={};function nr(e){return""+e+Gt(an[e]=(an[e]||0)+1)}function Tn(){var e=[];function n(i,s,u,f){a(i,s,function(o,h,d){var g="addEventListener"in o,c=g?o.removeEventListener.bind(o,h,u,f):o.removeListener.bind(o,u);g?o.addEventListener(h,u,f):o.addListener(u),e.push([o,h,d,u,c])})}function t(i,s,u){a(i,s,function(f,o,h){e=e.filter(function(d){return d[0]===f&&d[1]===o&&d[2]===h&&(!u||d[3]===u)?(d[4](),!1):!0})})}function r(i,s,u){var f,o=!0;return typeof CustomEvent=="function"?f=new CustomEvent(s,{bubbles:o,detail:u}):(f=document.createEvent("CustomEvent"),f.initCustomEvent(s,o,!1,u)),i.dispatchEvent(f),f}function a(i,s,u){ne(i,function(f){f&&ne(s,function(o){o.split(" ").forEach(function(h){var d=h.split(".");u(f,d[0],d[1])})})})}function l(){e.forEach(function(i){i[4]()}),de(e)}return{bind:n,unbind:t,dispatch:r,destroy:l}}var ye="mounted",Pt="ready",ge="move",Fe="moved",Ut="click",Ln="active",In="inactive",Nn="visible",Rn="hidden",K="refresh",Z="updated",Me="resize",dt="resized",bn="drag",On="dragging",Dn="dragged",gt="scroll",be="scrolled",rr="overflow",Bt="destroy",Cn="arrows:mounted",Pn="arrows:updated",wn="pagination:mounted",pn="pagination:updated",Wt="navigation:mounted",Ht="autoplay:play",Mn="autoplay:playing",Yt="autoplay:pause",Xt="lazyload:loaded",Vn="sk",xn="sh",vt="ei";function H(e){var n=e?e.event.bus:document.createDocumentFragment(),t=Tn();function r(l,i){t.bind(n,Ze(l).join(" "),function(s){i.apply(i,Mt(s.detail)?s.detail:[])})}function a(l){t.dispatch(n,l,_e(arguments,1))}return e&&e.event.on(Bt,t.destroy),Ye(t,{bus:n,on:r,off:U(t.unbind,n),emit:a})}function Et(e,n,t,r){var a=Date.now,l,i=0,s,u=!0,f=0;function o(){if(!u){if(i=e?Ae((a()-l)/e,1):1,t&&t(i),i>=1&&(n(),l=a(),r&&++f>=r))return d();s=tn(o)}}function h(A){A||c(),l=a()-(A?i*e:0),u=!1,s=tn(o)}function d(){u=!0}function g(){l=a(),i=0,t&&t(i)}function c(){s&&cancelAnimationFrame(s),i=0,s=0,u=!0}function v(A){e=A}function _(){return u}return{start:h,rewind:g,pause:d,cancel:c,set:v,isPaused:_}}function ir(e){var n=e;function t(a){n=a}function r(a){return xt(Ze(a),n)}return{set:t,is:r}}function ar(e,n){var t=Et(0,e,null,1);return function(){t.isPaused()&&t.start()}}function or(e,n,t){var r=e.state,a=t.breakpoints||{},l=t.reducedMotion||{},i=Tn(),s=[];function u(){var c=t.mediaQuery==="min";He(a).sort(function(v,_){return c?+v-+_:+_-+v}).forEach(function(v){o(a[v],"("+(c?"min":"max")+"-width:"+v+"px)")}),o(l,en),h()}function f(c){c&&i.destroy()}function o(c,v){var _=matchMedia(v);i.bind(_,"change",h),s.push([c,_])}function h(){var c=r.is(st),v=t.direction,_=s.reduce(function(A,m){return he(A,m[1].matches?m[0]:{})},{});nn(t),g(_),t.destroy?e.destroy(t.destroy==="completely"):c?(f(!0),e.mount()):v!==t.direction&&e.refresh()}function d(c){matchMedia(en).matches&&(c?he(t,l):nn(t,He(l)))}function g(c,v,_){he(t,c),v&&he(Object.getPrototypeOf(t),c),(_||!r.is(Ce))&&e.emit(Z,t)}return{setup:u,destroy:f,reduce:d,set:g}}var ht="Arrow",mt=ht+"Left",At=ht+"Right",Fn=ht+"Up",kn=ht+"Down",on="rtl",_t="ttb",Lt={width:["height"],left:["top","right"],right:["bottom","left"],x:["y"],X:["Y"],Y:["X"],ArrowLeft:[Fn,At],ArrowRight:[kn,mt]};function ur(e,n,t){function r(l,i,s){s=s||t.direction;var u=s===on&&!i?1:s===_t?0:-1;return Lt[l]&&Lt[l][u]||l.replace(/width|left|right/i,function(f,o){var h=Lt[f.toLowerCase()][u]||f;return o>0?h.charAt(0).toUpperCase()+h.slice(1):h})}function a(l){return l*(t.direction===on?1:-1)}return{resolve:r,orient:a}}var le="role",we="tabindex",sr="disabled",ae="aria-",tt=ae+"controls",zn=ae+"current",un=ae+"selected",te=ae+"label",Kt=ae+"labelledby",Gn=ae+"hidden",$t=ae+"orientation",$e=ae+"roledescription",sn=ae+"live",cn=ae+"busy",fn=ae+"atomic",qt=[le,we,sr,tt,zn,te,Kt,Gn,$t,$e],se=et+"__",Se="is-",It=et,vn=se+"track",cr=se+"list",yt=se+"slide",Un=yt+"--clone",fr=yt+"__container",jt=se+"arrows",St=se+"arrow",Bn=St+"--prev",Wn=St+"--next",Tt=se+"pagination",Hn=Tt+"__page",vr=se+"progress",lr=vr+"__bar",dr=se+"toggle",gr=se+"spinner",Er=se+"sr",hr=Se+"initialized",Re=Se+"active",Yn=Se+"prev",Xn=Se+"next",wt=Se+"visible",pt=Se+"loading",Kn=Se+"focus-in",$n=Se+"overflow",mr=[Re,wt,Yn,Xn,pt,Kn,$n],Ar={slide:yt,clone:Un,arrows:jt,arrow:St,prev:Bn,next:Wn,pagination:Tt,page:Hn,spinner:gr};function _r(e,n){if(En(e.closest))return e.closest(n);for(var t=e;t&&t.nodeType===1&&!We(t,n);)t=t.parentElement;return t}var yr=5,ln=200,qn="touchstart mousedown",Nt="touchmove mousemove",Rt="touchend touchcancel mouseup click";function Sr(e,n,t){var r=H(e),a=r.on,l=r.bind,i=e.root,s=t.i18n,u={},f=[],o=[],h=[],d,g,c;function v(){E(),w(),m()}function _(){a(K,A),a(K,v),a(Z,m),l(document,qn+" keydown",function(S){c=S.type==="keydown"},{capture:!0}),l(i,"focusin",function(){fe(i,Kn,!!c)})}function A(S){var O=qt.concat("style");de(f),ve(i,o),ve(d,h),ue([d,g],O),ue(i,S?O:["style",$e])}function m(){ve(i,o),ve(d,h),o=M(It),h=M(vn),oe(i,o),oe(d,h),x(i,te,t.label),x(i,Kt,t.labelledby)}function E(){d=b("."+vn),g=Qe(d,"."+cr),Ge(d&&g,"A track/list element is missing."),at(f,mn(g,"."+yt+":not(."+Un+")")),Ie({arrows:jt,pagination:Tt,prev:Bn,next:Wn,bar:lr,toggle:dr},function(S,O){u[O]=b("."+S)}),Ye(u,{root:i,track:d,list:g,slides:f})}function w(){var S=i.id||nr(et),O=t.role;i.id=S,d.id=d.id||S+"-track",g.id=g.id||S+"-list",!ie(i,le)&&i.tagName!=="SECTION"&&O&&x(i,le,O),x(i,$e,s.carousel),x(g,le,"presentation")}function b(S){var O=yn(i,S);return O&&_r(O,"."+It)===i?O:void 0}function M(S){return[S+"--"+t.type,S+"--"+t.direction,t.drag&&S+"--draggable",t.isNavigation&&S+"--nav",S===It&&Re]}return Ye(u,{setup:v,mount:_,destroy:A})}var Ve="slide",ke="loop",nt="fade";function Tr(e,n,t,r){var a=H(e),l=a.on,i=a.emit,s=a.bind,u=e.Components,f=e.root,o=e.options,h=o.isNavigation,d=o.updateOnMove,g=o.i18n,c=o.pagination,v=o.slideFocus,_=u.Direction.resolve,A=ie(r,"style"),m=ie(r,te),E=t>-1,w=Qe(r,"."+fr),b;function M(){E||(r.id=f.id+"-slide"+Gt(n+1),x(r,le,c?"tabpanel":"group"),x(r,$e,g.slide),x(r,te,m||Ct(g.slideLabel,[n+1,e.length]))),S()}function S(){s(r,"click",U(i,Ut,p)),s(r,"keydown",U(i,Vn,p)),l([Fe,xn,be],L),l(Wt,k),d&&l(ge,P)}function O(){b=!0,a.destroy(),ve(r,mr),ue(r,qt),x(r,"style",A),x(r,te,m||"")}function k(){var C=e.splides.map(function(T){var D=T.splide.Components.Slides.getAt(n);return D?D.slide.id:""}).join(" ");x(r,te,Ct(g.slideX,(E?t:n)+1)),x(r,tt,C),x(r,le,v?"button":""),v&&ue(r,$e)}function P(){b||L()}function L(){if(!b){var C=e.index;I(),N(),fe(r,Yn,n===C-1),fe(r,Xn,n===C+1)}}function I(){var C=F();C!==rn(r,Re)&&(fe(r,Re,C),x(r,zn,h&&C||""),i(C?Ln:In,p))}function N(){var C=Y(),T=!C&&(!F()||E);if(e.state.is([xe,qe])||x(r,Gn,T||""),x(kt(r,o.focusableNodes||""),we,T?-1:""),v&&x(r,we,T?-1:0),C!==rn(r,wt)&&(fe(r,wt,C),i(C?Nn:Rn,p)),!C&&document.activeElement===r){var D=u.Slides.getAt(e.index);D&&An(D.slide)}}function V(C,T,D){re(D&&w||r,C,T)}function F(){var C=e.index;return C===n||o.cloneStatus&&C===t}function Y(){if(e.is(nt))return F();var C=ee(u.Elements.track),T=ee(r),D=_("left",!0),z=_("right",!0);return ft(C[D])<=Ke(T[D])&&ft(T[z])<=Ke(C[z])}function W(C,T){var D=Q(C-n);return!E&&(o.rewind||e.is(ke))&&(D=Ae(D,e.length-D)),D<=T}var p={index:n,slideIndex:t,slide:r,container:w,isClone:E,mount:M,destroy:O,update:L,style:V,isWithin:W};return p}function Lr(e,n,t){var r=H(e),a=r.on,l=r.emit,i=r.bind,s=n.Elements,u=s.slides,f=s.list,o=[];function h(){d(),a(K,g),a(K,d)}function d(){u.forEach(function(L,I){v(L,I,-1)})}function g(){b(function(L){L.destroy()}),de(o)}function c(){b(function(L){L.update()})}function v(L,I,N){var V=Tr(e,I,N,L);V.mount(),o.push(V),o.sort(function(F,Y){return F.index-Y.index})}function _(L){return L?M(function(I){return!I.isClone}):o}function A(L){var I=n.Controller,N=I.toIndex(L),V=I.hasFocus()?1:t.perPage;return M(function(F){return ot(F.index,N,N+V-1)})}function m(L){return M(L)[0]}function E(L,I){ne(L,function(N){if(me(N)&&(N=_n(N)),hn(N)){var V=u[I];V?Ft(N,V):Je(f,N),oe(N,t.classes.slide),O(N,U(l,Me))}}),l(K)}function w(L){Ne(M(L).map(function(I){return I.slide})),l(K)}function b(L,I){_(I).forEach(L)}function M(L){return o.filter(En(L)?L:function(I){return me(L)?We(I.slide,L):xt(Ze(L),I.index)})}function S(L,I,N){b(function(V){V.style(L,I,N)})}function O(L,I){var N=kt(L,"img"),V=N.length;V?N.forEach(function(F){i(F,"load error",function(){--V||I()})}):I()}function k(L){return L?u.length:o.length}function P(){return o.length>t.perPage}return{mount:h,destroy:g,update:c,register:v,get:_,getIn:A,getAt:m,add:E,remove:w,forEach:b,filter:M,style:S,getLength:k,isEnough:P}}function Ir(e,n,t){var r=H(e),a=r.on,l=r.bind,i=r.emit,s=n.Slides,u=n.Direction.resolve,f=n.Elements,o=f.root,h=f.track,d=f.list,g=s.getAt,c=s.style,v,_,A;function m(){E(),l(window,"resize load",ar(U(i,Me))),a([Z,K],E),a(Me,w)}function E(){v=t.direction===_t,re(o,"maxWidth",Le(t.width)),re(h,u("paddingLeft"),b(!1)),re(h,u("paddingRight"),b(!0)),w(!0)}function w(p){var C=ee(o);(p||_.width!==C.width||_.height!==C.height)&&(re(h,"height",M()),c(u("marginRight"),Le(t.gap)),c("width",O()),c("height",k(),!0),_=C,i(dt),A!==(A=W())&&(fe(o,$n,A),i(rr,A)))}function b(p){var C=t.padding,T=u(p?"right":"left");return C&&Le(C[T]||(Be(C)?0:C))||"0px"}function M(){var p="";return v&&(p=S(),Ge(p,"height or heightRatio is missing."),p="calc("+p+" - "+b(!1)+" - "+b(!0)+")"),p}function S(){return Le(t.height||ee(d).width*t.heightRatio)}function O(){return t.autoWidth?null:Le(t.fixedWidth)||(v?"":P())}function k(){return Le(t.fixedHeight)||(v?t.autoHeight?null:P():S())}function P(){var p=Le(t.gap);return"calc((100%"+(p&&" + "+p)+")/"+(t.perPage||1)+(p&&" - "+p)+")"}function L(){return ee(d)[u("width")]}function I(p,C){var T=g(p||0);return T?ee(T.slide)[u("width")]+(C?0:F()):0}function N(p,C){var T=g(p);if(T){var D=ee(T.slide)[u("right")],z=ee(d)[u("left")];return Q(D-z)+(C?0:F())}return 0}function V(p){return N(e.length-1)-N(0)+I(0,p)}function F(){var p=g(0);return p&&parseFloat(re(p.slide,u("marginRight")))||0}function Y(p){return parseFloat(re(h,u("padding"+(p?"Right":"Left"))))||0}function W(){return e.is(nt)||V(!0)>L()}return{mount:m,resize:w,listSize:L,slideSize:I,sliderSize:V,totalSize:N,getPadding:Y,isOverflow:W}}var Nr=2;function Rr(e,n,t){var r=H(e),a=r.on,l=n.Elements,i=n.Slides,s=n.Direction.resolve,u=[],f;function o(){a(K,h),a([Z,Me],g),(f=_())&&(c(f),n.Layout.resize(!0))}function h(){d(),o()}function d(){Ne(u),de(u),r.destroy()}function g(){var A=_();f!==A&&(fz)&&(L(),O(P(V(),T>z),!0)),i(xe),l(ge,D,z,T),E.start(D,function(){i(pe),l(Fe,D,z,T),q&&q()})}function S(T){O(N(T,!0))}function O(T,D){if(!e.is(nt)){var z=D?T:k(T);re(A,"transform","translate"+c("X")+"("+z+"px)"),T!==z&&l(xn)}}function k(T){if(e.is(ke)){var D=I(T),z=D>n.Controller.getEnd(),q=D<0;(q||z)&&(T=P(T,z))}return T}function P(T,D){var z=T-W(D),q=d();return T-=v(q*(Ke(Q(z)/q)||1))*(D?1:-1),T}function L(){O(V(),!0),E.cancel()}function I(T){for(var D=n.Slides.get(),z=0,q=1/0,$=0;$=0:D<=A[c("scrollWidth")]-ee(m)[c("width")]}function C(T,D){D=je(D)?V():D;var z=T!==!0&&v(D)v(W(!0));return z||q}return{mount:w,move:M,jump:S,translate:O,shift:P,cancel:L,toIndex:I,toPosition:N,getPosition:V,getLimit:W,exceededLimit:C,reposition:b}}function Or(e,n,t){var r=H(e),a=r.on,l=r.emit,i=n.Move,s=i.getPosition,u=i.getLimit,f=i.toPosition,o=n.Slides,h=o.isEnough,d=o.getLength,g=t.omitEnd,c=e.is(ke),v=e.is(Ve),_=U(V,!1),A=U(V,!0),m=t.start||0,E,w=m,b,M,S;function O(){k(),a([Z,K,vt],k),a(dt,P)}function k(){b=d(!0),M=t.perMove,S=t.perPage,E=p();var y=Oe(m,0,g?E:b-1);y!==m&&(m=y,i.reposition())}function P(){E!==p()&&l(vt)}function L(y,G,J){if(!Ee()){var X=N(y),j=W(X);j>-1&&(G||j!==m)&&(z(j),i.move(X,j,w,J))}}function I(y,G,J,X){n.Scroll.scroll(y,G,J,function(){var j=W(i.toIndex(s()));z(g?Ae(j,E):j),X&&X()})}function N(y){var G=m;if(me(y)){var J=y.match(/([+\-<>])(\d+)?/)||[],X=J[1],j=J[2];X==="+"||X==="-"?G=F(m+ +(""+X+(+j||1)),m):X===">"?G=j?C(+j):_(!0):X==="<"&&(G=A(!0))}else G=c?y:Oe(y,0,E);return G}function V(y,G){var J=M||($()?1:S),X=F(m+J*(y?-1:1),m,!(M||$()));return X===-1&&v&&!Sn(s(),u(!y),1)?y?0:E:G?X:W(X)}function F(y,G,J){if(h()||$()){var X=Y(y);X!==y&&(G=y,y=X,J=!1),y<0||y>E?!M&&(ot(0,y,G,!0)||ot(E,G,y,!0))?y=C(T(y)):c?y=J?y<0?-(b%S||S):b:y:t.rewind?y=y<0?E:0:y=-1:J&&y!==G&&(y=C(T(G)+(y0;)if(f(b-1,!0)!==f(y,!0)){y++;break}return Oe(y,0,b-1)}function C(y){return Oe($()?y:S*y,0,E)}function T(y){return $()?Ae(y,E):ft((y>=E?b-1:y)/S)}function D(y){var G=i.toIndex(y);return v?Oe(G,0,E):G}function z(y){y!==m&&(w=m,m=y)}function q(y){return y?w:m}function $(){return!je(t.focus)||t.isNavigation}function Ee(){return e.state.is([xe,qe])&&!!t.waitForTransition}return{mount:O,go:L,scroll:I,getNext:_,getPrev:A,getAdjacent:V,getEnd:p,setIndex:z,getIndex:q,toIndex:C,toPage:T,toDest:D,hasFocus:$,isBusy:Ee}}var Dr="http://www.w3.org/2000/svg",Cr="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z",rt=40;function Pr(e,n,t){var r=H(e),a=r.on,l=r.bind,i=r.emit,s=t.classes,u=t.i18n,f=n.Elements,o=n.Controller,h=f.arrows,d=f.track,g=h,c=f.prev,v=f.next,_,A,m={};function E(){b(),a(Z,w)}function w(){M(),E()}function b(){var I=t.arrows;I&&!(c&&v)&&k(),c&&v&&(Ye(m,{prev:c,next:v}),Xe(g,I?"":"none"),oe(g,A=jt+"--"+t.direction),I&&(S(),L(),x([c,v],tt,d.id),i(Cn,c,v)))}function M(){r.destroy(),ve(g,A),_?(Ne(h?[c,v]:g),c=v=null):ue([c,v],qt)}function S(){a([ye,Fe,K,be,vt],L),l(v,"click",U(O,">")),l(c,"click",U(O,"<"))}function O(I){o.go(I,!0)}function k(){g=h||Pe("div",s.arrows),c=P(!0),v=P(!1),_=!0,Je(g,[c,v]),!h&&Ft(g,d)}function P(I){var N='
Skip to content

Updating the BIOS on Lenovo laptops from Linux using a USB flash stick

Aren’t hardware manufacturers funny? They either require an old-fashioned operating system (Windows) or museum hardware (floppy drives) to update a BIOS. Apparently they never learn and are instead busy adding features like DRM and UEFI to make our lives even more miserable.

However updating the BIOS on my Lenovo X230 laptop was surprisingly easy once I learned how to do that (kudos to a G+ post I stumbled upon).

  1. Go to support.lenovo.com (or better use a search engine becaues the Lenovo website is beautiful but technically pretty broken and slow) and search for the BIOS upgrade of your laptop model.
  2. @@ -91,10 +94,4 @@ The “sdb” tells you that your USB stick is available on /dev/sdb. Don’t ju
  3. Select the USB stick.
  4. Make sure your laptop has its power supply plugged in. (It will refuse to update otherwise.)
  5. Follow the instructions.
  6. -
\ No newline at end of file + \ No newline at end of file diff --git a/bacula-cheatsheet/index.html b/bacula-cheatsheet/index.html index ffc418a..cb436f5 100644 --- a/bacula-cheatsheet/index.html +++ b/bacula-cheatsheet/index.html @@ -1,4 +1,4 @@ - Bareos/Bacula Cheat Sheet | ISPmail Guide - Skip to content
Skip to content

Bareos/Bacula Cheat Sheet

Bacula is a nifty backup software that is network-capable and stores data in the database for faster retrieval in case you need a certain file back. As a big fan of cheat sheets I created this cheat sheet.

- +

Bareos/Bacula Cheat Sheet

Bacula is a nifty backup software that is network-capable and stores data in the database for faster retrieval in case you need a certain file back. As a big fan of cheat sheets I created this cheat sheet.

+
Which files shall be backed up?show filesetsI=Included, E=Excluded
What’s the server doing?status dir
What’s the status of a certain job?status jobid=xx
What’s the client doing?status client
What’s the streamer doing?status storage
Anything new?messages
- +
Start a backuprun…and choose the backup job
Label a new tapelabel…and run mount afterwards
- +

The common way (a user accidentally removed a file and wants the newest version back from the tapes:

  • Use the restore command.
  • @@ -84,46 +87,46 @@
  • cd / ls / dir / mark / markdir / unmark / unmarkdir / lsmark / estimate / pwd / count / find
  • done
- +
Last jobslist jobs…or list jobid=xx’ for a specific job
Statistics about last jobslist jobtotal
Which files were backed up?list files jobid=xx
- +
Statusmeans…
TTerminated normally
CCreated but not yet running
RRunning
BBlocked
ETerminated in Error
eNon-fatal error
fFatal error
DVerify Differences
ACanceled by the user
FWaiting on the File daemon
SWaiting on the Storage daemon
mWaiting for a new Volume to be mounted
MWaiting for a Mount
sWaiting for Storage resource
jWaiting for Job resource
cWaiting for Client resource
dWating for Maximum jobs
tWaiting for Start Time
pWaiting for higher priority job to finish
WTerminated with warnings
- +
Which tapes are in the pool?list media
Remove a tapedelete media
Which pools are defined?list pools
Which tapes are/were used for a certain job?list jobmedia
Assign a tape to a certain pooladd
Change parameters of a tapeupdate volume
- +
Erase a label on the tapemt rewind && mt weof && mt rewind
- - + +

It is data in a SQL database running on the Bareos server. The catalog stores information about all assets like jobs, clients and media. Without the catalog Bareos had no idea which files were backed up and cannot restore them. In case of a disastrous loss of the catalog you need to take the latest bootstrap and start restoring the catalog first using that information. So the catalog itself is also backed up because without it the system is useless.

- +

Volumes (also called “media”) are either files on disk or physical tapes. When backups run they save their data to volumes. Bareos keeps track in the catalog which data can be found on each volume. Usually multiple backups run in parallel leading to a multiplexed stream of data written to volumes. A volume always belongs to exactly one pool. Volumes have names/labels – tapes have the name that is printed on the barcode sticker if the library have a barcode scanner.

- +

A set of volumes. The pool can define a maximum number of volumes, the type of volumes (e.g. disk or tape) and the retention period. For example you can have short-lived disk pools for small frequent backups. On the other hand you may have long-lived tape pools that store data for several weeks or months.

- +

A specific action like a backup, restore or copy (e.g. from disk to tape). Jobs are usually started automatically by the director following a pre-defined schedule. Multiple jobs can run in parallel and share their resources. The catalog keeps track of which jobs have run in the past in order to know which volumes would be required to restore data from them.

In the bconsole you can see the running, past and scheduled jobs by running “stat dir”.

- +

The definition of a job. It is not stored in the catalog but in text files in /etc/bareos.

- +

A server to be backed up. Usually a file-daemon runs on the client. The director will talk to the client to run jobs.

- +

Defines which files or directories to backup from a certain server. A job defines which fileset to use for a backup.

- +

A small text file usually sent out via email frequently. It is required in case of a catalog loss to find the volume that contains the last backup of the catalog.

The upstream documents reads: “The bootstrap file contains ASCII information that permits precise specification of what files should be restored, what volume they are on, and where they are on the volume. It is a relatively compact form of specifying the information, is human readable, and can be edited with any text editor.”

The bootstrap data is not confidential and should be forwarded to an external location in case of a disaster.

- +

Bareos can send messages to the console or via email. Results of jobs are sent via email.

- +

A definition of how often and at what time a job can be run.

- +

Defines a way to write volumes. It is used by the storage daemon. A storage can be a path on the local disks or the name of the tape device. Autochangers (aka “tape libraries”) are also supported.


- +

A volume is locked after being written to. The retention period defines when the volume can be overwritten again.

- +

This applies to tape volumes only. New tapes can be introduced into the “Scratch” pool. If a pool is out of volumes to use then Bareos will take a volume from the Scratch pool and take it into its own pool.

- +

Backups can happen in three different levels: Full, Differential and Incremental. Only Full backups are required. The other levels can be used to save space on volumes.

  • Full: every single file defined in assigned fileset is saved to the volume
  • @@ -167,10 +170,4 @@
    • Using a rare Full backup and rely on many intermediate Incremental backups. If any of the many Incremental backups were faulty you would lose all data back to that time.
    • Losing the Full backup and only keeping Incremental backups. This may occur if the retention periods are not adequately configured for Full backups.
    • -
\ No newline at end of file +
\ No newline at end of file diff --git a/debian-packages-are-so-old/index.html b/debian-packages-are-so-old/index.html index ebd0750..e35be8d 100644 --- a/debian-packages-are-so-old/index.html +++ b/debian-packages-are-so-old/index.html @@ -1,4 +1,4 @@ - Debian packages are so old | ISPmail Guide - Skip to content
Skip to content

Debian packages are so old

Debian comes with tens of thousands of software packages that you can easily install on your system. But Debian only publishes a new “stable” release every 2-3 years. That creates the impression that Debian packages must always be up to 3 years old. And who wants to work with a three year old piece of software? Are the package maintainers lazy? Should I download my software from its own project website instead?

+

Debian packages are so old

Debian comes with tens of thousands of software packages that you can easily install on your system. But Debian only publishes a new “stable” release every 2-3 years. That creates the impression that Debian packages must always be up to 3 years old. And who wants to work with a three year old piece of software? Are the package maintainers lazy? Should I download my software from its own project website instead?

I feel obliged to briefly discuss this topic because it is a common source of trouble and surprises. And it may make you say…

“What’s the deal? Shouldn’t we just use Debian packages where we find it comfortable and install any other software in a newer version? Just look at the shiny new Roundcube version. Oh, and rspamd has some new features to filter out spam mails. Why don’t we use that? Even their developers urge me to take their updated packages.”

So… why are the packages in the “stable” version of Debian so old? Actually that question is pretty funny when you think about it. “stable” means “stay on the same versions if possible”. You might say that it means “old by design”. The idea is that your system will not surprise you with an unexpected update that breaks a service for many users on a monday morning.

- +

No. “stable” relates to the version. I does not necessarily mean more “robust”. The Debian developers do not pick a certain version that they think is especially good or bug-free. The version that made it into a new stable release of Debian was just there when it was about time to create a new release.

And what about security issues? Software developer usually fix issues in a newer version. How does Debian deal with that?

That is true. Developers hardly ever fix issues in old software. That’s just not fun. Developers like to go forward. While they implement new features they also fix issues on their way. I totally understand that motivation. But that way they force users to accept their changes and new features even if the users just want to fix the security issues. And new versions come with new bugs.

Debian however always tries to backport bug fixes. A Debian package maintainer will try to apply the fix to the stable version in Debian. So you get the benefit of staying on a certain version but at the same time get security updates. That makes it the best possible way to deal with security issues for server administrators. They can rely on their systems without having to fear breaking changes. Only when a new stable version arrives they are forced to consider upgrading.

See also the Debian FAQ on security.

- +

Aside from stable packages there are also unstable packages. Let’s take a look at packages.debian.org/vlc to see which package versions of the famous VLC software are available. This is just a screenshot so you will get different versions:

Screenshot of packages.debian.org

As you can see there are the different releases like “jessie” (very old), “stretch” (old), “buster” (the stable version when this was written), “bullseye” (the upcoming stable release) and “sid”. By default your system will install the current stable version. If you are on Debian “buster” then it will be 3.0.12-0.

If you wanted newer software you could just replace “buster” by “sid” in your /etc/apt/sources.list and upgrade your system. Done. That way every “apt upgrade” will give you the newest packages that Debian has to offer. And in many cases that is very close to the newest version of the actual (upstream) software. Just be aware that sid/unstable is a moving target. It is impossible to coordinate all updated packages. So it may occur that a new package cannot be properly installed, does not work or even breaks something else on your system. I know people who have sid/unstable on their laptops. But those are the kind of people who know a lot about Debian and do not despair when something breaks.

As a middle ground you might use the “testing” variant. Only packages without any serious bugs will be copied to “testing” so you rule out the worst problems. Still this is not failsafe. There are also backported packages that try to make newer software work on an otherwise “stable” system. But this may give you security issues that are not fixed as quickly as needed. Every choice comes with its own compromises.

So as you see Debian’s packages are not old at all. Just when you do a fresh installation you are usually on a “stable” installation. And that’s for a reason. On a server nobody cares if a piece of software is 2 years old. The focus there is on reliability. And “stable” gives you that.

- +

A lot of software is available directly by its developers through their own APT repositories. Can’t I just use them?

Of course. I also pick specific pieces of software from their third-party APT repositories. But those are very rare exceptions and I keep track of what software I get from there. Common problems are:

    @@ -101,10 +104,4 @@
  • files of third-party software should go to /opt but quite often they are scattered in the wrong places
  • expired APT keys because the developers didn’t care about expiry dates
-

However not all is bad. Some third-party packages are very good. Your mileage may vary though.

\ No newline at end of file +

However not all is bad. Some third-party packages are very good. Your mileage may vary though.

\ No newline at end of file diff --git a/getting-help-on-irc/index.html b/getting-help-on-irc/index.html index f3f095e..d9fec16 100644 --- a/getting-help-on-irc/index.html +++ b/getting-help-on-irc/index.html @@ -1,4 +1,4 @@ - Getting help on IRC | ISPmail Guide - Skip to content
Skip to content

Getting help on IRC

IRC (Internet Relay Chat) is a real-time chat where you can talk to other people from around the planet. Although many channels deal with smalltalk about the weather, girl-friends and politics there are IRC networks and channels that are dedicated to a piece of software or an operating system. irc.freenode.net for example exists to support open-source projects. In case you need urgent help or just don’t want to use a mailing list then you are welcome on IRC. IRC has been there for ages and has evolved with the time. So it may appear like a hot tub of completely mad people at first. This article is meant to help you understand how to IRC works socially and how to get the most out of it.

- +

Getting help on IRC

IRC (Internet Relay Chat) is a real-time chat where you can talk to other people from around the planet. Although many channels deal with smalltalk about the weather, girl-friends and politics there are IRC networks and channels that are dedicated to a piece of software or an operating system. irc.freenode.net for example exists to support open-source projects. In case you need urgent help or just don’t want to use a mailing list then you are welcome on IRC. IRC has been there for ages and has evolved with the time. So it may appear like a hot tub of completely mad people at first. This article is meant to help you understand how to IRC works socially and how to get the most out of it.

+

Do not start your conversion with “May I ask a question?” or “Can anyone help me?”. Although that may be polite in normal human interaction it does not work that way on IRC. You are supposed to just ask your question right away.

- +

There is nothing worse than “My printer doesn’t work.” or “My mail server doesn’t work.”. How are others supposed to help you if you don’t give them any details? Make sure you include at least this information:

What did you try to accomplish? (I wanted to fetch my mails via POP3.) What has happened (wrongly) instead? (But my inbox remains empty.) @@ -83,47 +86,41 @@ What did you try to find the cause? (I already checked my POP3 account setup.) Are there error messages or log files? (The error message reads: “SSL negotiation failed.”) Has it ever worked? What did you change? (I switched accounts to a new provider. It worked before with another provider.)

If all this information is included then you will have a high chance of getting a useful reply.

- +

Others only know what you tell them. If you change things silently then nobody will know about it. The worst thing you can do is say: “I changed something. Now I have another problem.” It will make others give up instantly. If you expect help you need to work with the supporters.

- +

Your IRC client will likely show you the “topic” of a channel when you enter it. You should find some useful information about how this channel is supposed to work. Often the topic even lists URLs for FAQs and documentation. Asking something that is clearly answered in the topic is considered stupid. If there are FAQ URLs listed in the topic first check if you find your question answered there.

- +

Do not expect a single person to stay online until your problem is fixed. IRC is a stateless medium. Anyone can quit at any time. People stay there because they like staying there. Nobody is paid for helping you.

- +

You can either talk to others in a channel publicly or /msg them privately. However the latter is considered rude if done without being asked. Don’t occupy a single person for your purpose. Others may as well be interested in a solution to your problem, too.

- +

Sometimes you may feel that others are rude. You may get a response like “Reinstall the package. Restart the service. Read the /usr/share/doc/mysoftware/README.” Although this is a very brief reply it is likely not meant to be rude. IRC is often like human interaction without all the friendly bits. Other people have probably answered your question a dozen times today and they just want to help you solve the problem - not become close friends with you. Don’t be offended by it.

- +

Asking the same question every minute is annoying. If anyone in the channel isn’t paying attention then they will neither read you the second and third time. And those who came back from lunch or sleep will likely see in their “lastlog” what has happened lately.

- +

In most channels the only language spoken is English. There are certain local channels like #debian-fr which are specifically for frenchmen. But everywhere else you must not write anything but English. It doesn’t matter if you consider your English language skills bad. Most people in the world speak something different than English, too. And if you find another person that speaks your language then do not start to talk in your local language. Nobody else can follow you and it’s considered rude.

- +

If people tell you to read the documentation then you should do so. Never say: “I’m too lazy. Come on. You all know what I need to do. Just tell me the solution.” This will get you ignored for all eternity. However you can expect to be told where to find the documentation. If you get a URL then follow it and read it. If the documentation is too technical or you don’t understand certain sections then be more specific like: “I have now read chapter 3.1 of the URL you gave me and I understand how virtual domains work in general. But how would I use both virtual and non-virtual domains together?”

- +

Even if you are in a hurry you should allow other participants some time to answer. Sometimes you are lucky and a helpful reply appears within a few seconds. But it is not uncommon that you will have to wait 10-20 minutes until the right person who is familiar with your problem talks to you. The pattern looks something like this:

10:07 Foo joins 10:07 Foo> How can I install the shripdibble module? 10:09 Foo quit

Then at 10:14 an expert on shripdibble joins but can’t help you any more because you gave up too quickly.

- +

Using IRC is a matter of give and take. At the beginning you will surely have more questions than answers. Just ask them and be grateful if you get attention and replies. Others do not expect more than a “Thank you.” for their help.

If you can, please consider staying online in the channel. The more knowledge you gain the more you can help other people. And you probably get to know people you like to hang out with - even if it’s just virtually.

- +

It may sometimes be hard to follow all the conversation on IRC. But if people are trying to help you and need to ask you a few questions please answer them all. If you get asked three questions and only answer one or keep asking the same question time and again (showing that you don’t read what you get asked) you risk to be ignored. Show some initiative and stay focused. Then your problem will likely be fixed within a few minutes.

- +

It doesn’t help anyone if you just say “Nevermind, found it.” and quit the channel. Please tell the others what the solution to your problem was so everybody can learn from it. You will not look stupid - trust me.

- +

When getting responses be careful who you trust. Some people just want to feel important and reply to you although they have no more clue than you do. Perhaps even an “educated guess” might help - just make clear if it’s something that was tried and worked. Some people are even jokers who want to be funny by telling you how to erase your harddisk. So verify others’ proposals instead of applying them blindly.

- +

Sometimes you need to show others more than one line. Perhaps parts of your configuration files or a log file. Never just copy and paste larger amounts of text right into the channel. Always use a pastebin. Pastebins are public services (web sites) where you can paste your text and everybody can access them as a URL. Just paste your contents there and send the URL into the channel. That should allow everybody who’s interested to take a look. Just don’t paste it without any comment. Rather say: “Emails seem to get lost since I installed program foobar. Please take a look at my logs: http://…”

Related links

See also:

    -
  • http://www.catb.org/~esr/faqs/smart-questions.html
  • -
\ No newline at end of file +
  • http://www.catb.org/~esr/faqs/smart-questions.html
  • +
    \ No newline at end of file diff --git a/index.html b/index.html index 499f201..6aa9779 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ - Welcome to ISPmail – a free guide to your own mail server | ISPmail Guide - Skip to content
    Skip to content
    The guide has been updated for Debian 13! -

    Welcome to ISPmail – a free guide to your own mail server

    ISPmail is a free but extensive do-it-yourself guide to help you build a fully-functional mail server from 100% open-source components. It is based on Debian GNU/Linux. Light enough for your friends and family. Or powerful enough for professional use.
    -

    Educational

    This is not a simple copy/paste walkthrough. You will learn the technical details of email exchange on the internet. -And you will understand how the different pieces of software work and interact.

    Free

    This guide is a not-for-profit fun project. You only need to get an internet domain and a cheap virtual server -(~5€/$ per month). Powered by the desire to make the internet a bit more decentralized.

    Since 2003

    This guide has been maintained for over 20 years. Made for nerds who want a boring stable mail server that just -works with little maintenance. But with all the features that make it fun.

    You’re not alone

    You won’t get stuck. Every page of this guide has a comment section to ask questions and discuss the topic. For -real-time help you can join our support chat on Matrix.

    Open source

    All software that is used is completely open-source. No costs. Your new friends are Debian, Postfix, Dovecot, -Roundcube, MariaDB, Apache and rspamd.

    Standards

    Only standard protocols are used. IMAP, POP3, SMTP and HTTPS. No proprietary protocols. No vendor lock-in. No public -cloud.

    - +
    The guide has been updated for Debian 13! +

    Welcome to ISPmail – a free guide to your own mail server

    ISPmail is a free but extensive do-it-yourself guide to help you build a fully-functional mail server from 100% open-source components. It is based on Debian GNU/Linux. Light enough for your friends and family. Or powerful enough for professional use.
    +

    Educational

    This is not a simple copy/paste walkthrough. You will learn the technical details of email exchange on the internet. +And you will understand how the different pieces of software work and interact.

    Free

    This guide is a not-for-profit fun project. You only need to get an internet domain and a cheap virtual server +(~5€/$ per month). Powered by the desire to make the internet a bit more decentralized.

    Since 2003

    This guide has been maintained for over 20 years. Made for nerds who want a boring stable mail server that just +works with little maintenance. But with all the features that make it fun.

    You’re not alone

    You won’t get stuck. Every page of this guide has a comment section to ask questions and discuss the topic. For +real-time help you can join our support chat on Matrix.

    Open source

    All software that is used is completely open-source. No costs. Your new friends are Debian, Postfix, Dovecot, +Roundcube, MariaDB, Apache and rspamd.

    Standards

    Only standard protocols are used. IMAP, POP3, SMTP and HTTPS. No proprietary protocols. No vendor lock-in. No public +cloud.

    +
    • Kostja:

      @@ -142,9 +145,4 @@ want to thank Christoph for his great work and support and hope the guide will n

      Francisco:

      Thank you Christoph. I’ve just setup my mail server and i’m very happy with it. I’ve learned a lot.

    • -

    Last updated:

    -This guide is maintained by Christoph Haas since 2003. All content on workaround.org can be used under the terms of - the -Creative Commons BY-NC-SA license. - Penguin image based on AI art because I suck at drawing. -
    \ No newline at end of file +

    Last updated:

    This guide is maintained by Christoph Haas since 2003. All content on workaround.org can be used under the terms of theCreative Commons BY-NC-SA license. Penguin image based on AI art because I suck at drawing.
    \ No newline at end of file diff --git a/ispmail-bookworm/automatic-installation-with-ansible/index.html b/ispmail-bookworm/automatic-installation-with-ansible/index.html index d3e1a83..7a8f3c2 100644 --- a/ispmail-bookworm/automatic-installation-with-ansible/index.html +++ b/ispmail-bookworm/automatic-installation-with-ansible/index.html @@ -1,4 +1,4 @@ - Automatic installation with Ansible | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Automatic installation with Ansible

    If you want to set up multiple mail servers then automation is your friend. Nowadays Ansible is commonly used for that purpose. If you are dealing with system administration you should have such a tool in your toolbox.

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Automatic installation with Ansible

    If you want to set up multiple mail servers then automation is your friend. Nowadays Ansible is commonly used for that purpose. If you are dealing with system administration you should have such a tool in your toolbox.

    I have created an Ansible playbook on Github that you can download and use. Using it is pretty simple:

    apt install ansible git
    git clone https://github.com/Signum/ispmail-bookworm-ansible.git
    cd ispmail-bookworm-ansible/ansible
    ansible-playbook ispmail.yml -c local
    -

    Please follow the hints in the README.md within the repository.

    \ No newline at end of file +

    Please follow the hints in the README.md within the repository.

    \ No newline at end of file diff --git a/ispmail-bookworm/big-picture/index.html b/ispmail-bookworm/big-picture/index.html index 8c31967..d45b2f8 100644 --- a/ispmail-bookworm/big-picture/index.html +++ b/ispmail-bookworm/big-picture/index.html @@ -1,4 +1,4 @@ - The big picture | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    The big picture

    The mail server that you are about to set up uses several software components. Let me first explain briefly what the purpose of each software is:

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    The big picture

    The mail server that you are about to set up uses several software components. Let me first explain briefly what the purpose of each software is:

    • Debian “Bookworm” – the operating system
    • Postfix receives incoming emails from the internet and sends out outgoing emails to other mail servers. It is the software that speaks SMTP.
    • @@ -82,7 +83,7 @@
    • Roundcube is a webmail interface so users can read their emails using a web browser, manage their email rules and change their password
    • MariaDB (formerly known as MySQL) is a database that stores information about your domains, email aliases and email accounts
    -

    What happens when someone sends you an email?

    Section titled “What happens when someone sends you an email?”
    +

    What happens when someone sends you an email?

    Section titled “What happens when someone sends you an email?”

    Let us assume that you are responsible for the email domain example.org and someone on the internet sends an email to john@example.org. This is what happens step by step:

    1. REMOTE: Hey, DNS server. I have an email for someone in the example.org domain. Can you tell me the name of the responsible mail server?
      @@ -116,7 +117,7 @@

    Phew, that was a lot. I hope it helps to understand though how the different components are involved until an email gets delivered.

    The next situation I would like to explain is…

    -

    What happens if a user fetches their email using IMAP/POP3?

    Section titled “What happens if a user fetches their email using IMAP/POP3?”
    +

    What happens if a user fetches their email using IMAP/POP3?

    Section titled “What happens if a user fetches their email using IMAP/POP3?”

    This process is way simpler. It looks like this:

    Diagram showing how a user connects via IMAP

    User connects through IMAP

    @@ -126,7 +127,7 @@
  • We have a fixed scheme how emails are stored on disk. So if the user is called jane@example.org then Dovecot will look for email files in /var/vmail/example.org/jane/Maildir/… and send the user the requested emails.
  • Nowadays many users seem to prefer webmail to a mail client installed on their computers. As an email power user I honestly do not understand that trend. But who am I to judge. So let’s take a look how webmail works technically:

    -

    What happens if a user reads their email using web mail?

    Section titled “What happens if a user reads their email using web mail?”
    +

    What happens if a user reads their email using web mail?

    Section titled “What happens if a user reads their email using web mail?”

    The Roundcube software that provides the web mail interface is basically a PHP software that is a gateway between HTML pages and a built-in IMAP client. So when a user uses their browser to connect to the web mail interface…

    Diagram showing a user connecting via Webmail

    User connects through webmail

    @@ -138,7 +139,7 @@

    So you see that the web mail access also works through IMAP. The user does not realize that though.

    Okay, the final scenario I would like to explain is…

    -

    What happens if the user wants to send an email to the internet?

    Section titled “What happens if the user wants to send an email to the internet?”
    +

    What happens if the user wants to send an email to the internet?

    Section titled “What happens if the user wants to send an email to the internet?”

    Of course your users also want to send emails to other internet users. But they cannot send the email directly to the destination mail server. First their mail client does not know which destination server is responsible for the recipient (hint: DNS) – that functionality just is not built in. And second the user is likely assigned a dynamic IP address which is blocked by most mail servers because they tend to get abused by infected Windows PCs that send out spam. So the correct way to send an email to the internet is through your mail server. This is called relaying because your mail server acts as a relay. In this example your user wants to send an email to fred@example.net.

    Diagram showing a user sending an email

    Relaying/sending email via the mail server

    @@ -148,10 +149,4 @@
  • Dovecot now sends a query to the MariaDB database to check if the username and password (hash) are correct and tells Postfix the result.
  • Postftix knows now that it is authorized to send the email on behalf of the user. It tells the user that it successfully accepted the email. The email is put into Postfix’s mail queue for further processing. Postfix will now query a DNS (name server) to determine the responsible destination mail server. As the recipient has an “…@example.net” address it checks the MX record of the “example.net” domain and then gets the respective IP address.
  • Postfix now knows which mail server to send the email to. It opens an SMTP connection and delivers the email.
  • -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/ispmail-bookworm/catchall-aliases/index.html b/ispmail-bookworm/catchall-aliases/index.html index 3fa6758..7ccd575 100644 --- a/ispmail-bookworm/catchall-aliases/index.html +++ b/ispmail-bookworm/catchall-aliases/index.html @@ -1,4 +1,4 @@ - Catch-all aliases | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Catch-all aliases

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Catch-all aliases

    As explained earlier in the tutorial there is way to forward all email addresses in a domain to a certain destination email address. This is called a catch-all alias. Those aliases catch all emails for a domain if there is no specific virtual user for that email address. Catchalls are considered a bad idea. It is tempting to generally forward all email addresses to one person if e.g. your marketing department requests a new email alias every week. But the drawback is that you will get more spam because spammers will send their stuff to any address of your domain. Or perhaps a sender mixed up the proper spelling of a recipient but the mail server will forward the email instead of rejecting it for a good reason. So think twice before using catchalls.

    You still want to use catch-all addresses? Well, okay. Let’s do it then. A catchall alias looks like “@example.org” and forwards email for the whole domain to other addresses. We have created the john@example.org user and would like to forward all other email on the domain to kerstin@example.com. So we would add a catchall alias like:

    -

    | source | destination | -| -------------- | --------------------- | -| @example.org | kerstin@example.com |

    -

    But there is a small catch. Postfix always checks the virtual_alias_maps mapping before looking up a user in the virtual_mailbox_maps. Imagine what happens when Postfix receives an email for ‘john@example.org’. Postfix checks the aliases in the virtual_alias_maps table. It finds the catchall entry as above and since there is no more specific alias the catchall account matches and the email is redirected to ‘kerstin@example.com’.

    + + + + + + + + + + + + + +
    sourcedestination
    @example.orgkerstin@example.com
    +

    But there is a small catch. Postfix always checks the virtual_alias_maps mapping before looking up a user in the virtual_mailbox_maps. Imagine what happens when Postfix receives an email for ‘john@example.org’. Postfix checks the aliases in the virtual_alias_maps table. It finds the catchall entry as above and since there is no more specific alias the catchall account matches and the email is redirected to ‘kerstin@example.com’.

    In other words: the aliases are always processed first. So a catch-all alias will steal the email. John will never get any email. This is not what you want.

    But imagine that the aliases would contain a second entry like this:

    -

    | email | destination | -| ---------------------- | ---------------------- | -| @example.org | kerstin@example.com | -| john@example.org | john@example.org |

    + + + + + + + + + + + + + + + + + +
    emaildestination
    @example.orgkerstin@example.com
    john@example.orgjohn@example.org

    So any email address on the example.org domain will be forwarded to kerstin’s address. But what is that second line? Why should we forward john’s emails to himself? That doesn’t make any sense.

    Actually it does. Postfix will consider more specific aliases first. And john@example.org is more specific than @example.org. Consider that someone is trying to reach john@example.org’s mailbox. @@ -93,7 +119,7 @@ If Postfix read this table just from top to bottom, then it would see So to make a mixture of catch-all addresses and specific addresses work, we need this little trickery.

    Postfix will lookup all these mappings for each of:

      -
    • john@example.org (most specific)
    • +
    • john@example.org (most specific)
    • @example.org (catchall – least specific)

    This is outlined in the virtual(5) man page in the TABLE SEARCH ORDER section.

    @@ -107,10 +133,4 @@ If Postfix read this table just from top to bottom, then it would see

    postconf virtual_alias_maps=mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf

    The order of the two mappings is not important here. Postfix will check all ‘cf’ files anyway and merges what it finds.

    You did it! All mappings are set up and the database is generally ready to be filled with domains and users. Make sure that only ‘root’ and the ‘postfix’ user can read the “.cf” files – after all your database password is stored there:

    -
    chgrp postfix /etc/postfix/mysql-*.cf
    chmod u=rw,g=r,o= /etc/postfix/mysql-*.cf
    \ No newline at end of file +
    chgrp postfix /etc/postfix/mysql-*.cf
    chmod u=rw,g=r,o= /etc/postfix/mysql-*.cf
    \ No newline at end of file diff --git a/ispmail-bookworm/catching-spam-with-rspamd/index.html b/ispmail-bookworm/catching-spam-with-rspamd/index.html index de419a2..608dff4 100644 --- a/ispmail-bookworm/catching-spam-with-rspamd/index.html +++ b/ispmail-bookworm/catching-spam-with-rspamd/index.html @@ -1,4 +1,4 @@ - Catching spam with rspamd | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Catching spam with rspamd

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Catching spam with rspamd

    You have come a long way in this guide and your mail server is already fully functional. Now it’s time to deal with the dark side: spam. And there will be lots of it. So we need to detect spam emails and filter them out. I found that rspamd is a well-performing choice for that purpose both in speed and detection. rspamd keeps a permanent process running on your mail server that listens to connections from Postfix using the milter (=mail filter) protocol. Every time an email enters your system, Postfix will send it to rspamd to have its content checked. rspamd runs a lot of checks on the email and computes a total score. The higher the score – the more likely the email should be considered unsolicited.

    - +

    rspamd is quite effective against spam thanks to its many kinds of checks that incoming emails run through. Several of these checks rely on services provided by the rspamd project. There are web sites like email.rspamd.com, uribl.rspamd.com and maps.rspamd.com that provide information used by the default rspamd installation. That data is not freely available and there are no public mirrors.

    You are only allowed to use their data under certain conditions described in rspamd’s usage policy. Spoiler: heavy or commercial usage will get you blocked. So it may be wise to disable all features that include his email and URL blacklists and the “fuzzy” feature.

    rspamd is being packaged and shipped by the Debian project. However the rspamd principal developer builds and endorses his own packages and has a history of getting angry and offensive against anyone using the packages shipped by Debian. I find that attitude a bit suspicious and rather stay with the Debian packages that have been built by a process that I trust.

    - +

    Let’s tell Postfix to send all incoming email through rspamd. Run these commands on the shell:

    postconf smtpd_milters=inet:127.0.0.1:11332
    postconf non_smtpd_milters=inet:127.0.0.1:11332
    postconf milter_mail_macros="i {mail_addr} {client_addr} {client_name} {auth_authen}"

    Postfix will connect to rspamd that is listening to TCP port 11332 on localhost (127.0.0.1) and send the email through that connection. The smtpd_milters setting defines that connection for emails that came into the system from the internet via the SMTP protocol. The non_smtpd_milters setting is optional – it makes Postfix have all emails checked that originate from the system itself. Finally the milter_mail_macros setting defines several variables that rspamd expects for better spam detection. rspamd then runs its checks and tells Postfix whether the email should pass or get rejected.

    - +

    For testing we can use a sample spam email that comes with SpamAssassin. It is called GTUBE (Generic Test for Unsolicited Bulk Email). It contains a certain artificial pattern that is recognized as spam by SpamAssassin. Do you know EICAR.COM to test virus scanners? This is the same thing for spam.

    I suggest that you download the file on the server:

    wget http://spamassassin.apache.org/gtube/gtube.txt
    @@ -100,7 +101,7 @@

    So 5.7.1 tells us that the result code is a permanent failure in delivery. If you looked up the RFC you would find that the 7 stands for an issue regarding the security policy. So it’s not a technical failure but instead a security-relevant component on the system has rejected the email. That’s what rspamd did. It even told us the reason: “Gtube pattern”. So you see that rspamd knows about the Gtube spam test pattern and reacts as expected.

    Accordingly you won’t see this email in John’s inbox. This is a great advantage of using milters. Imagine Postfix receiving a spam email and confirm its reception. What should it do when it finds out that it’s unwanted email? According to the SMTP protocol it must not throw away any emails. Would you create a bounce message telling the sender that you did not accept the email? That would be a bad idea because the sender address in spam emails is very likely forged. You would send the bounce to an innocent person thus creating so called backscatter and make it even worse. So the better approach is to check the email while the sending server is still connected to your Postfix. This allows Postfix to reject the email with a 5.x.x error code and let the other side figure out what to do.

    - +

    rspamd will however not reject all spam email. It computes a score that tells how likely a certain email is spam. You can tell it which scores you would accept, flag as spam or make the incoming email get rejected. Rspamd has a large ruleset that checks incoming emails in various ways and adds to the score. Take a look at the /etc/rspamd/actions.conf file:

    actions {
    reject = 15;
    add_header = 6;
    greylist = 4;
    }

    These are the default actions. If rspamd computes a score of at least 15 then the email will get rejected at the doorstep just like the Gtube pattern in the previous test. Any other score above 6 will add a line “X-Spam: Yes” so that your mail software can detect them and maybe file the email to a different folder. And any other score above 4 will trigger greylisting which is a mechanism that temporarily rejects the email with a 4.x.x code and waits if the sending server will try again. After a waiting time of a few minutes greylisting will accept the email. The idea is to reject email from systems that do not have a sending queue. Malware like on infected Wind*ws computers used to try sending an email just once which triggered greylisting and successfully rejected the spammer. But even malware programmers have learned and may try again after a few minutes thus circumventing greylisting. Your mileage may vary. The problem with greylisting is that the recipient has to wait a couple of minutes for the email to be delivered which is often bothering the users.

    @@ -117,17 +118,17 @@

    Alternatively you may check if all required rspamd processes are running…

    pgrep -a rspam
    141693 rspamd: main process
    141694 rspamd: rspamd\_proxy process (localhost:11332)
    141695 rspamd: controller process (localhost:11334)
    104965 rspamd: normal process (localhost:11333)
    104966 rspamd: normal process (localhost:11333)
    - +

    As you may know an email consists of the headers and the body. Your users will usually only see common header information like the subject, the sender, the recipient and the date and time the email was sent. But there is way more information like the route the email traveled or extended headers added by the various mail server on the way to the destination. Such extended headers begin with an “X-“. rspamd can add such headers to help you filter out spam. For that purpose create a new configuration override file at /etc/rspamd/override.d/milter_headers.conf with this content:

    extended_spam_headers = true;

    Again restart rspamd:

    systemctl restart rspamd

    As documented it will add these headers:

    X-Rspamd-Server: mail
    Authentication-Results: dmarc=fail reason="No valid SPF, No valid DKIM" …
    X-Rspamd-Queue-Id: C22E55A005B3
    X-Spamd-Result: default: False [11.55 / 15.00]
    R_PARTS_DIFFER(0.27)[63.4%]
    FROM_NO_DN(0.00)[]
    RCVD_COUNT_ZERO(0.00)[0]
    R_DKIM_NA(0.00)[]
    FUZZY_DENIED(12.00)[1:19305c7fdd:1.00:bin,1:35699594fd:0.91:txt]
    RBL_SENDERSCORE(2.00)[55.181.23.94.bl.score.senderscore.com]
    ARC_NA(0.00)[]
    RCPT_COUNT_ONE(0.00)[1]
    RCVD_TLS_ALL(0.00)[]
    FROM_EQ_ENVFROM(0.00)[]
    R_SPF_SOFTFAIL(0.00)[~all]
    BAYES_HAM(-2.71)[98.75%]
    TO_MATCH_ENVRCPT_ALL(0.00)[]
    MIME_GOOD(-0.10)[multipart/related,multipart/alternative,text/plain]
    MID_RHS_MATCH_FROM(0.00)[]
    ASN(0.00)[asn:16276, ipnet:94.23.0.0/16, country:FR]
    TO_DN_NONE(0.00)[]
    DMARC_POLICY_SOFTFAIL(0.10)[Chronopost.fr : No valid SPF, No valid DKIM,none]
    SUBJECT_ENDS_EXCLAIM(0.00)[]
    X-Spam: Yes
    - +

    Each of the uppercase symbols like FROM_HAS_DN means that a certain detection rule of rspamd was triggered. It does not necessarily mean something bad about the email. For example R_SPF_ALLOW has a negative score that lowers the total score because it is something good about the email. There are a several symbols with a 0.00 score. These do not change the score but show you what rspamd has found. But if you consider certain criteria good or bad then you can define your own scores for them.

    The last line here is especially interesting because next on our list is…

    - +

    Your users will not realize that their spam emails have an added “X-Spam: Yes” header. It is not actively shown in their mail client. Nor does it move the email out of the inbox into their spam folder. Such emails just appear like normal in their inbox. So let’s aid them by moving spam to a separate Junk folder beneath their inbox automatically. Dovecot has support for Sieve filters which are scripts that run automatically whenever an email comes in.

    John could create a new Sieve filter (e.g. using the Roundcube webmail interface) for himself that would save any emails to his “Junk” folder if the header line “X-Spam: Yes” was found. This rule would be useful for all your users though so let’s find a more general solution.

    Dovecot supports global Sieve filters that apply to all users. Edit the file /etc/dovecot/conf.d/90-sieve.conf. Look for the “sieve_after” lines. They are commented out. Add a new line there:

    @@ -144,7 +145,7 @@
    sievec /etc/dovecot/sieve-after/spam-to-folder.sieve

    That generated a machine-readable file /etc/dovecot/sieve-after/spam-to-folder.svbin.

    Now all your users will automatically get spam emails moved to their Junk folder. Nice – isn’t it?

    - +

    Many features in Rspamd use Redis to persist their data. Let me give you a quick explanation what Redis is.

    Redis is a kind of database system. It is way more limited than a traditional SQL database because it just stores keys and values. There aren’t several fields/columns like in SQL. But it is lightning fast the way it works. On my aged server it handles around 50,000 requests per second. It gets it speed from its simplicity and from keeping the data in RAM. So it doesn’t access the disk to fetch information. (But it copies its data to disk frequently to prevent data loss.) People use Redis as a cache or for very fast lookups of simple data structures. And so does rspamd.

    You installed the “redis-server” package earlier. And that’s all you needed to do. It started automatically and listens ton incoming connections on TCP port 6379 on localhost. In Rspamd the Redis backend is enabled by default. You just have to tell it the IP address of your Redis server. Add a file /etc/rspamd/override.d/redis.conf and insert:

    @@ -152,21 +153,21 @@

    Restart rspamd and you are done.

    systemctl restart rspamd

    Feel free to use Redis for other lookups, too.

    - +

    One of rspamd’s features is analyzing word patterns using probability theory. That functionality is contained in its “statistical module“. (Yes, the name is pretty misleading.) Essentially you show rspamd lots of ham (good) and spam (bad) emails and its detection gets better over time.

    - - + +

    You can start with an empty training database. This is not as bad as it sounds. rspamd has way more functionality to determine if an email is ham or spam. Autolearning takes email that are likely ham or spam and uses them to train the spam filter. The rspamd documentation has further examples how to fine-tune auto learning. After a few hundred emails the training will contribute towards a better detection rate.

    If you want to use autolearning just create a new file /etc/rspamd/override.d/classifier-bayes.conf and make it contain:

    autolearn = [-5, 10];

    That will train emails with a spam score of less than -5 as ham (good). And emails with a spam score of more than 10 as spam (unwanted). Feel free to chose other values.

    -

    (b) Migrating training data from previous mail server

    Section titled “(b) Migrating training data from previous mail server”
    +

    (b) Migrating training data from previous mail server

    Section titled “(b) Migrating training data from previous mail server”

    Have you used the old SQLite-based training file on the old server? Look for files like /var/lib/rspamd/*.sqlite on the old server. In that case please follow these simple instructions from the rspamd documentation to convert them to data in Redis.

    If instead you have used Redis already then you just need to copy over the Redis database from the old server. Stop Redis on the new server. Copy over the /var/lib/redis/dump.rdb from the old server to the new server. Start Redis again. And restart rspamd. So on the new server run:

    systemctl stop redis
    scp root@old-server:/var/lib/redis/dump.rdb /var/lib/redis
    systemctl start redis
    systemctl restart rspamd

    To check if that worked you can ask Rspamd using “rspamc stat” and look for…

    Statfile: BAYES_SPAM type: redis; length: 0; free blocks: 0;
    total blocks: 0; free: 0.00%; learned: 21164; users: 214; languages: 0
    Statfile: BAYES_HAM type: redis; length: 0; free blocks: 0;
    total blocks: 0; free: 0.00%; learned: 1411; users: 62; languages: 0
    -

    (c) Training from your existing ham and spam emails

    Section titled “(c) Training from your existing ham and spam emails”
    +

    (c) Training from your existing ham and spam emails

    Section titled “(c) Training from your existing ham and spam emails”

    Have you been running a mail server with mailboxes in a Malidir structure before but without rspamd? Then you probably have a good amount of ham and spam emails. Let’s use those to train rspamd. It is important to train both ham and spam emails. The rspamc command will allow you to feed entire directories/folders of emails to the learning process. An example to train spam:

    rspamc learn\_spam /var/vmail/example.org/john/Maildir/.Junk/cur

    And this would be an example to train ham from John’s inbox:

    @@ -179,17 +180,17 @@
    Statfile: BAYES_SPAM type: redis; length: 0; free blocks: 0;
    total blocks: 0; free: 0.00%; learned: 21164;
    users: 214; languages: 0
    Statfile: BAYES_HAM type: redis; length: 0; free blocks: 0;
    total blocks: 0; free: 0.00%; learned: 1411;
    users: 62; languages: 0

    This is what you usually start with. The more emails you feed into the training process the better the detection rate will be. Some emails however may not be long enough or too similar to previously trained emails. So don’t worry if you are training 1000 emails but just get a count of 500 emails here.

    - +

    rspamd allows you to train the spam detection per user. It would not keep a global training database that applies to all users. Instead each user gets their own training.

    Advantage: users work differently. Some have subscribed to a sales newsletter and now believe that marking it as spam gets them unsubscribed. Yes, that’s stupid but can thoroughly confuse the spam detection. Also you might be very interested in viagr* product information while others do not.

    Disadvantage: training still requires many ham and spam mails before it has any effect. So unless a user gets 200 samples of good and evil emails the spam detection cannot work. Many users will not get that many emails so due to the lack of spam training the detection will not be improved.

    If you decide you want to use per-user spam training then add/edit the file /etc/rspamd/local.d/classifier-bayes.conf and insert:

    users_enabled = true;
    - +

    Andi Olsen pointed out that Dovecot has introduced a feature to automatically delete emails in a folder that reach a certain age. This is especially useful for the “Trash” and “Junk” folders. To enable this feature just edit the /etc/dovecot/conf.d/15-mailboxes.conf file and add the autoexpunge parameter where desired. Example:

    mailbox Junk {
    special_use = \Junk
    auto = subscribe
    autoexpunge = 30d
    }
    mailbox Trash {
    special_use = \Trash
    auto = subscribe
    autoexpunge = 30d
    }

    The “auto = subscribe” makes sure that the “Junk” and “Trash” folders are automatically created for every user. Otherwise spam emails cannot be moved to the “Junk” folder later.

    - +

    Now we are getting to something really cool. Let’s tell Dovecot that moving emails into the Junk folder teaches rspamd instantly that the email is spam. And train an email as ham if it is moved out of the Junk folder. We will add triggers (actually “sieve scripts“) to the action of moving emails via IMAP.

    The currently recommended way is to use the “IMAPSieve” plugin instead. There is nothing to install – it comes with the Dovecot packages. We just need to configure it.

    First order of business is enabling the IMAPSieve plugin for the IMAP protocol/service in Dovecot. Edit the /etc/dovecot/conf.d/20-imap.conf file and look for the line reading “mail_plugins”. Turn it into:

    @@ -248,10 +249,10 @@

    Dovecot finds two Sieve rules: [1] and [2]. And it finds that rule [1] matches your current action and runs it. That in turn calls the “rspamd-learn-spam.sh” script to train that email as spam. And at the very end the email is actually moved to the “Junk” folder.

    And if you pull an email out of the “Junk” folder you should see mailbox rule [2] be called and the email being learned as ham.

    Don’t forget to switch off “mail_debug” again or your users’ actions will quickly fill your log file.

    - +

    rspamd keeps a verbose log of its actions in /var/log/rspamd/rspamd.log. If a user complains that a certain email got blocked or at least flagged as spam then take a look at this log. You can match the /var/log/mail.log with it by comparing the Postfix queue ID. Those are the 12-digit hexadecimal number like “95CE05A00547“. Those IDs can be found in the rspamd.log, too:

    <40985d>; task; rspamd_task_write_log: id: <undef>, qid: <**95CE05A00547**>, ip: 12.13.51.194, from: <…>, (default: F (no action): [3.40/15.00] [MISSING_MID(2.50){},MISSING_DATE(1.00){},MIME_GOOD(-0.10){text/plain;},ARC_NA(0.00){},ASN(0.00){asn:8220, ipnet:212.123.192.0/18, country:GB;},FROM_EQ_ENVFROM(0.00){},FROM_NO_DN(0.00){},RCPT_COUNT_ONE(0.00){1;},RCVD_COUNT_ZERO(0.00){0;},RCVD_TLS_ALL(0.00){},TO_DN_NONE(0.00){},TO_DOM_EQ_FROM_DOM(0.00){},TO_MATCH_ENVRCPT_ALL(0.00){}]), len: 181, time: 16.000ms real, 6.385ms virtual, dns req: 0, digest: <69b289a82827c11f759837c033cd800a>, rcpts: <…>, mime_rcpt: <…>
    - +

    rspamd comes with a neat bonus feature: a web interface. It allows you to check emails for spam, get statistics and fine-tune scores. It is already installed and enabled by default and expects HTTP requests on port 11334 on the localhost interface. I suggest you add a simple proxy configuration to your already working HTTPS-enabled web mail configuration to get access.

    rspamd dashboard

    First you need to enable Apache’s modules for HTTP proxying and rewriting:

    @@ -269,10 +270,4 @@
    password = "$2$icoahes75e7g9wxapnrbmqnpuzjoq7z…"

    That’s it for the configuration. Finally restart both rspamd and Apache to load your changed configuration:

    systemctl restart rspamd
    systemctl restart apache2
    -

    If everything went as expected you should now be able to access the rspamd web interface at https://webmail.example.org/rspamd

    \ No newline at end of file +

    If everything went as expected you should now be able to access the rspamd web interface at https://webmail.example.org/rspamd

    \ No newline at end of file diff --git a/ispmail-bookworm/creating-a-tls-encryption-key-and-certificate/index.html b/ispmail-bookworm/creating-a-tls-encryption-key-and-certificate/index.html index f0b3a0b..a15ee58 100644 --- a/ispmail-bookworm/creating-a-tls-encryption-key-and-certificate/index.html +++ b/ispmail-bookworm/creating-a-tls-encryption-key-and-certificate/index.html @@ -1,4 +1,4 @@ - TLS certificate | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    TLS certificate

    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    TLS certificate

    +of previous versions. You will still find people calling it SSL.

    The internet is not a friendly place where you can trust people. If you send data over the internet there is a pretty good chance someone intercepts it. You don’t want that. Our best weapon against that is transport encryption. All you need is to create an encryption key and a certificate for Postfix (SMTP), Dovecot (IMAP/POP3) and Apache (HTTPS). If you are confused why that requires a key and certificate then please consider reading the Wikipedia about public-key cryptography. The single most important detail here: nobody but you must have access to the private key.

    - -

    What makes mail clients trust a certificate?

    Section titled “What makes mail clients trust a certificate?”
    + +

    What makes mail clients trust a certificate?

    Section titled “What makes mail clients trust a certificate?”

    Your client’s operating system contains a list of “trusted” certificate authorities. Sometimes that list is located in a central location for all applications. And sometimes a browser comes with its own list. A certificate signed by any of those organization is fully trusted. Yes, your browser trusts companies you probably have never heard of. And so does @@ -106,7 +107,7 @@ people should no longer shy away from it because getting certificates cost money and everyone could get a free certificate valid for 90 days. An automated process renewed the certificate in time so there was no hassle. (They surely deserve a donation for the many years of service to the internet community.)

    - +

    You guessed it, we will need our own certificate. It will be used in three places:

    1. the webmail interface (driven by the Apache web server)
    2. @@ -114,18 +115,18 @@ the internet community.)

    3. Dovecot (to encrypt IMAP/POP3 communication and deny any unencrypted traffic)

    A single certificate (per domain) can and should be used by all three pieces of software.

    - +

    Your mail server will be able to serve emails in many domains. But a certificate is usually issued for a single fully-qualified domain name like “mail.example.org”. The common name is an important part of the certificate. That attribute must correspond to the host name you use during communication or else the certificate is rejected. Hmmm, many domains but only one name is allowed on a certificate? How do we deal with that?

    -

    Option 1: a generic name and a single certificate

    Section titled “Option 1: a generic name and a single certificate”
    +

    Option 1: a generic name and a single certificate

    Section titled “Option 1: a generic name and a single certificate”

    The simple solution is to take a generic name. The German ISP Hetzner for example uses the name “mail.your-server.de” for all customers and their domains. And there are many examples of such an approach. Experience shows that most users do not care about the hostname as long as they get their emails. So I would generally recommend this approach due to its simplicity.

    -

    Option 2: multiple names/certificates & SNI

    Section titled “Option 2: multiple names/certificates & SNI”
    +

    Option 2: multiple names/certificates & SNI

    Section titled “Option 2: multiple names/certificates & SNI”

    Some people however want to give their mail server as many names as they have domains. Suppose that you have three domains: example.org, example.net and example.com. Users of example.org can use mail.example.org while users of example.net use mail.example.net. As you can imagine this would not work if you had a single certificate. After all @@ -141,12 +142,12 @@ host name. The server can then load the matching certificate and initiate the en Postfix and Dovecot. Postfix has finally added SNI in version 3.4 so that we can use it.

    While adding multiple host names needs extra work, it also has a benefit. If you want to move domains to other servers (e.g. when upgrading your server) you can move one domain at a time.

    - +

    Let’s start with the web server. As an example I will assume that you want to offer a host name webmail.example.org to your users. Of course your server will have another name in a domain that you control. I will use that example throughout the tutorial though and keep that name printed in bold letters to remind you that you have to use your @@ -170,7 +171,7 @@ here does not enable that host though. That’s done in the next step. There are

    This technique allows you to enable and disable virtual hosts without having to destroy any configuration. Debian ships with the “a2ensite” (short for “apache2 enable site”) and “a2dissite” commands. In addition to some sanity checks those commands essentially create or remove symlinks between “sites-available” and “sites-enabled”.

    - +

    You may remove the default symlinks in /etc/apache2/sites-enabled/* unless you use them already.

    Create a new virtual host configuration file /etc/apache2/sites-available/webmail.example.org-http.conf and make it contain:

    @@ -186,12 +187,12 @@ HTTPS, too.)

    You will be told:

    To activate the new configuration, you need to run:
    systemctl reload apache2

    Do that.

    - +

    Let’s check if the configuration works. Put a test file into your web root directory:

    echo “Just a test” > /var/www/webmail.example.org/test

    Now when you open the URL http://webmail.example.org/test in your browser you should see the text “Just a test”.

    This is enough setup to make LetsEncrypt issue a certificate for you.

    - +

    Now you can use the certbot tool to request an encryption certificate from LetsEncrypt. What will happen?

    • certbot creates a private key and a certificate request. It sends the certificate request to the LetsEncrypt @@ -204,7 +205,7 @@ expects to find that token. This verifies that you are in charge of the domain a
    • certbot receives the certificate and puts it into /etc/letsencrypt/archive/webmail.example.org/

    To get a certificate for your domain run:

    -

    certbot certonly —webroot —webroot-path /var/www/webmail.example.org -d webmail.example.org

    +

    certbot certonly --webroot --webroot-path /var/www/webmail.example.org -d webmail.example.org

    You can use multiple occurences of “-d” here to get a certificate valid for multiple domains. For example: “-d webmail.example.org -d something-else.example.org”. (See also: https://eff-certbot.readthedocs.io/en/stable/using.html#webroot)

    @@ -222,10 +223,10 @@ certificate along with your own for clients who may not know LetsEncrypt properl use when a piece of software asks where to find the certificate.
  • privkey.pem: the private key file. Keep it secret.
  • - +

    Now that you have a valid certificate you can finally enable HTTPS for your web server. Create a new file /etc/apache2/sites-available/webmail.example.org-https.conf containing:

    <VirtualHost *:443> ServerName webmail.example.org DocumentRoot /var/www/webmail.example.org SSLEngine @@ -248,7 +249,7 @@ site’s certificate:

    certificate for it. This is my own site.)

    So should you keep the HTTP virtual host? Yes. First for the HTTP->HTTPS redirection. And second to keep certbot working.

    - +

    Sometimes users forget to enter https://… when accessing your webmail service. So they access the HTTP web site. We obviously don’t want them to send their password over HTTP. So we should redirect all HTTP connections to HTTPS.

    One exception though. Let’s Encrypt will use HTTP to verify your challenge token. So we need to serve files at @@ -259,15 +260,15 @@ can accomplish that by putting these lines inside the <VirtualHost> section

    This requires the rewrite module to be enabled in Apache. That is simple though:

    a2enmod rewrite
    systemctl restart apache2

    So now entering http://webmail.example.org will redirect you to https://webmail.example.org.

    - +

    The certbot package automatically adds a timed job that runs twice a day at random times. The random part is important to avoid millions of server hammering the LetsEncrypt service at the same second.

    -

    So the renewal already happens automatically. Should it fail then LetsEncrypt start sending you reminder emails that your certificate should be renewed. That’s a clear sign that something went wrong with the automatic renewal.

    There is one puzzle piece missing though. Even if the renewal worked it will only update the certificate files. But the @@ -275,10 +276,4 @@ software components – Postfix, Dovecot and Apache – will not notice the chan post-hook to certbot that triggers a restart of all processes thereafter.

    For that purpose edit the /etc/letsencrypt/cli.ini file and add:

    post-hook = systemctl restart postfix dovecot apache2
    -

    Well done. You have implemented Let’s Encrypt for all your services now. Let’s go on.

    \ No newline at end of file +

    Well done. You have implemented Let’s Encrypt for all your services now. Let’s go on.

    \ No newline at end of file diff --git a/ispmail-bookworm/faq-frequently-asked-questions/index.html b/ispmail-bookworm/faq-frequently-asked-questions/index.html index 163b46d..921a9a8 100644 --- a/ispmail-bookworm/faq-frequently-asked-questions/index.html +++ b/ispmail-bookworm/faq-frequently-asked-questions/index.html @@ -1,4 +1,4 @@ - FAQ (frequently asked questions) | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    FAQ (frequently asked questions)

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    FAQ (frequently asked questions)

    Previously I claimed a copyright on the documentation. However let’s make things simpler. This Bullseye guide is using the Creative Commons BY-NC-SA license. Which means:

      @@ -86,44 +87,38 @@ the same license as the original.

    Besides that this guide has been a team effort. Many readers have contributed to it. I may spend the time to turn it into a guide but a lot of good ideas were not mine alone.

    - +

    No. There is no financial motivation. I just strive for freeing the world of email services once again.

    - +

    I personally prefer that software, too. Just go for it. But for the sake of consistency let’s keep Apache and MySQL as default choices in this guide so that readers upgrading from previous versions don’t have to switch.

    - +

    Generally, yes. Aside from my day job, I am a sysadmin freelancer. If you are just stuck at some point you may want to ask in the chat first though. You can find me there as well.

    - +

    I understand the need for it. If your users are using low-security operating systems (e.g. those that run EXE files) they are threatened by a lot of security problems. From the perspective of an email provider I would not want to take responsibility for filtering emails. That is only working on symptoms and not addressing the actual issues. Security is a fundamental concept and not something you slap on top of something inherently broken. I would not want to be blamed for a crypto trojan infection because the user relied on me saving them from bad things to happen. Client security in non-free systems is a topic on its own.

    - +

    If you use a Debian stable release you have chosen to stay on a specific software version. “Stable” means “a version that will not change”. That’s the best choice for a server. Those software packages are by no means less secure though because they also get security updates. Debian also has up-to-date packages but you surely don’t want to use them for a mail server unless you feel adventurous or have an intense hatred for your users. For a detailed discussion see this separate article.

    - +

    Unfortunately there is no easy way to accomplish that. Especially with interactive components like tabs of quizzes. The reasons are technical – not malice.

    -

    Your guide looks cool. How did you make it?

    Section titled “Your guide looks cool. How did you make it?”
    +

    Your guide looks cool. How did you make it?

    Section titled “Your guide looks cool. How did you make it?”

    The site is generated using Starlight. Discussions at the bottom of each page are powered by a self-hosted instance of Comentario. Diagrams have been created using Inkscape. User tracking is handled by a self-hosted instance of Rybbit. Everything here has been generated using open-source software and is not using any public cloud services.

    - +

    That is very kind to offer help. I understand the motivation to give back something. But trust me: you will lose interest quickly and regret your offer. The guide is huge. It may not appear like much but once you start typing you realize just how many months of work went into it. Even translating will take 1-2 weeks of your time. And after that someone would have to maintain both the original version and your translation. We tried that a couple of times and it -did not turn out well.

    \ No newline at end of file +did not turn out well.

    \ No newline at end of file diff --git a/ispmail-bookworm/index.html b/ispmail-bookworm/index.html index b94b33d..339043d 100644 --- a/ispmail-bookworm/index.html +++ b/ispmail-bookworm/index.html @@ -1,4 +1,4 @@ - Start here | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Start here

    Once upon a time there were many mail servers on the internet. If your organisation wanted to receive and send emails then you would have your system administrator set up a mail server. He would add a DNS record and create a cryptic Sendmail configuration file.

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Start here

    Once upon a time there were many mail servers on the internet. If your organisation wanted to receive and send emails then you would have your system administrator set up a mail server. He would add a DNS record and create a cryptic Sendmail configuration file.

    Fast forward a few decades and suddenly we have arrived in a monopolistic dystopy. The world of internet services is dominated by a few companies. Having worked in IT for 25 years I feel frustrated about the ignorance and laziness of decision makers. Cloud providers rip obscene profits and lock clueless customers in, while their IT staff is evolving into dumb victims instead of doing their actual job.

    If you are like me then you want to stay as independent as possible. And that includes being in charge of your own email service. Maybe not for your employer but at least for yourself, your friends and family. Become your own internet service provider (ISP) for email. Hence the name: ISPmail.

    This is a complete and free guide that teaches you how to set up and run your own mail server. At the end of the guide you will have your own fully featured mail server based on open-source software using a cheap virtual server for a few bucks per month. And you will have learned all about the various components, protocols and technologies. This guide has been battle-tested by thousands of other sysadmins and constantly evolved over the last 20 years. I am publishing this guide without any commercial motives, so all you would have to invest is your time.

    - +
    • Receive emails on your domains.
    • Filter out spam. (We will not deal with detection of Wind*ws malware though.)
    • @@ -89,7 +90,7 @@
    • Provide a webmail interface so users can access their emails securely from any location using a web browser.
    • Mitigate brute force attacks.
    - +
    • Linux experience. Preferably a Debian-derivative. No godlike skills required. But know your basics: navigating through the file system, editing files, watching log files. Have some basic understanding of DNS. Bonus points if you have played with an SQL database and know about SELECT, INSERT, rows, columns.
    • Time. 2 hours to 2 days.
    • @@ -104,13 +105,7 @@
    • An internet domain (or several) to receive emails for. You need to be able to set A, MX and TXT records for that domain. You should also be able to set PTR records for your IP address because some mail servers on the internet require you to have matching forward and reverse DNS records.
    • Patience. We will proceed slowly and after every step ensure that are still on track. Don’t hurry and skip parts even if they appear confusing at first. If you get lost just submit your question at the bottom of any page throughout this guide and help is on the way. Or join the chat channel.
    - +

    If you just want to have a working mail server and do not care how it works then this guide is not for you. Check out ready solutions like mailinabox or iRedMail. Running a mail server requires technical understanding. And that’s what the ISPmail guide is for. Experience from giving support to other sysadmins shows that most problems appear because some detail in a complex setup goes wrong and they have no idea how to fix it. Email has evolved a lot over the past 40 years. Go with ready solutions if you like. But I have a feeling that we meet again. And you will probably not save time either taking the supposedly easy route.

    - -

    The entire tutorial is split into several pages. You can find the different chapters on the left. The navigation within a chapter can be found on the right. Let’s go.

    \ No newline at end of file + +

    The entire tutorial is split into several pages. You can find the different chapters on the left. The navigation within a chapter can be found on the right. Let’s go.

    \ No newline at end of file diff --git a/ispmail-bookworm/install-debian-bookworm-on-your-server/index.html b/ispmail-bookworm/install-debian-bookworm-on-your-server/index.html index cc72429..d64569f 100644 --- a/ispmail-bookworm/install-debian-bookworm-on-your-server/index.html +++ b/ispmail-bookworm/install-debian-bookworm-on-your-server/index.html @@ -1,4 +1,4 @@ - Installing Debian | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Installing Debian

    Option 1: Get a server with Debian Bookworm pre-installed

    Section titled “Option 1: Get a server with Debian Bookworm pre-installed”
    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Installing Debian

    Option 1: Get a server with Debian Bookworm pre-installed

    Section titled “Option 1: Get a server with Debian Bookworm pre-installed”

    If you rent a virtual server at your favorite hosting company it often comes with Debian pre-installed. If you have a chance to change the partitioning then consider the schema shown below. Otherwise feel free to skip this page.

    -

    Option 2: Get a server with the older Debian Bullseye

    Section titled “Option 2: Get a server with the older Debian Bullseye”
    +

    Option 2: Get a server with the older Debian Bullseye

    Section titled “Option 2: Get a server with the older Debian Bullseye”

    Your hosting company does not offer Debian Bookworm yet but just Debian Bullseye? No big deal. Just change your /etc/apt/sources.list file to:

    deb http://deb.debian.org/debian bookworm main
    deb http://deb.debian.org/debian bookworm-updates main
    deb http://security.debian.org/debian-security bookworm-security main

    Run “apt update” and “apt dist-upgrade” and you are ready.

    - +

    You have a blank computer or virtual machine? Then simply install Debian Bookworm yourself. Get a boot medium from the Debian website. The smaller network installer is sufficient – it will download all required packages directly from the internet. Make sure you choose ‘English’ as the installation language even if it is not your native language. If you have trouble with the server you will more likely find help when searching for English error messages on the internet.

    Most of the installation is pretty straightforward. You don’t need me holding your hand. I strongly recommend that you use the logical volume manager (LVM) for your partitions to stay flexible if your server grows. See my article on LVM if you want some help understanding its concept.

    - +

    The only part that takes some patience is when it comes to partitioning your disk. Throughout this tutorial you will store your users’ emails in the /var/vmail partition. The MariaDB database will live in /var/lib/mysql and is usually pretty small even for a large number of email accounts – so that usually does not require a separate partition. Log files go to /var/log.

    So my recommendation for partitioning:

      @@ -120,10 +121,4 @@
    • Do not add swap space – your server will need very little RAM. You will get asked if you are serious. Yes, you are.
    -

    Write the changes to disk and continue with the rest of the installation. Just make sure that you install the “SSH server” component so that you can login from remote after the installation.

    \ No newline at end of file +

    Write the changes to disk and continue with the rest of the installation. Just make sure that you install the “SSH server” component so that you can login from remote after the installation.

    \ No newline at end of file diff --git a/ispmail-bookworm/install-the-software-packages/index.html b/ispmail-bookworm/install-the-software-packages/index.html index a9e6c96..86dd6d2 100644 --- a/ispmail-bookworm/install-the-software-packages/index.html +++ b/ispmail-bookworm/install-the-software-packages/index.html @@ -1,4 +1,4 @@ - Install software packages | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Install software packages

    After the basic installation your server will reboot and allow you to login. You can either login at the console (if you have physical access to the system) or using SSH (secure shell).

    - +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Install software packages

    After the basic installation your server will reboot and allow you to login. You can either login at the console (if you have physical access to the system) or using SSH (secure shell).

    +

    Unless you just installed the server it is a good idea to install all missing updates first:

    apt update
    apt upgrade
    - +

    Let us install the necessary Debian packages to make it an actual mail server. Take a moment to read through this list of package – we will do the installation afterwards:

    • mariadb-server
      @@ -117,53 +118,47 @@ A set of certificates from common certificate authorities on the internet. It is
    • fail2ban (optional)
      A daemon that tracks log files to recognize brute force attacks. It can block IP addresses of attackers. We will use it to defend against evil people trying to get into our mail server.
    - +

    Let’s start with the pwgen utility. It helps you create secure passwords. Unless you already have a tool for that…

    apt install -y pwgen

    You will need a random passwords later to create a database user for the mail server. Just as an example: to create a secure password having a length of 20 characters you would run:

    pwgen -s 20 1

    That gets you a string like “W2EzNUFJzjEmA8tQT7A0”.

    - +

    If you used MySQL before you may remember that you were forced to specify a password for the ‘root’ database user. That has changed with MariaDB in Debian – for the better. Now you can access the database server without any password if you are logged in as ‘root’ on the server. You might as well set a password but it is not necessary.

    Go install the MariaDB server package:

    apt install -y mariadb-server

    If all went well you can now run “mysql” and get a connection to your MySQL database:

    root@buster:~# mysql
    Welcome to the MariaDB monitor. Commands end with ; or \\g.
    Your MariaDB connection id is 30
    Server version: 10.3.18-MariaDB-0+deb10u1 Debian 10
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    MariaDB [(none)]>

    Exit the SQL shell by typing “exit” or pressing CTRL-D.

    - +

    Now on to the Postfix packages:

    apt install -y postfix postfix-mysql

    When you get asked for the mail server configuration type please choose “Internet site”. Enter your own mail server name (the fully qualified domain name) or just press enter. The host name and domain does not need to match any of your email domains.

    - +

    To provide a webmail service you need the Apache web server software and the PHP scripting language support:

    apt install -y apache2 php8.2
    - - + +

    Just like in previous versions of this guide we will deal with spam using rspamd. (The rspamd principal developer endorses his own software packages but in this guide we will use the packages in Debian for stability.)

    We also install Redis as a storage backend for Rspamd to store its training data about spam and ham.

    apt install -y rspamd redis-server
    - +

    A very useful tool to test email delivery later is SWAKS (the SWiss Army Knife for Smtp):

    apt install -y swaks
    - +

    This is a full-featured IMAP mail client. Think of it as the vi of mail clients. It cannot display HTML but it is very helpful to test IMAP mail servers. And some hardcore users still prefer it over any other mail client.

    apt install -y mutt
    - +

    You will want to use encrypted connections where possible. So you need a certificate for your services. The certbot software helps you to request and manage Let’s Encrypt certificates automatically.

    apt install -y certbot
    - +

    In addition to Postfix (that handles SMTP communication) you will need Dovecot to store received emails and provide IMAP (and optionally POP3) access for your users:

    apt install -y dovecot-mysql dovecot-pop3d dovecot-imapd dovecot-managesieved dovecot-lmtpd
    - +

    SQL databases are called like that because SQL (structured query language) is the way you talk to it. But as we are just puny humans let’s have a more user-friendly way to manage the database. I suggest Adminer which is a tool similar to phpMyAdmin.

    apt install -y adminer
    - +

    To avoid errors when downloading files using wget you should install the default set of certificates of common certificate authorities on the internet:

    -
    apt install -y ca-certificates
    \ No newline at end of file +
    apt install -y ca-certificates
    \ No newline at end of file diff --git a/ispmail-bookworm/let-postfix-send-emails-to-dovecot/index.html b/ispmail-bookworm/let-postfix-send-emails-to-dovecot/index.html index a29a84a..e5b2b51 100644 --- a/ispmail-bookworm/let-postfix-send-emails-to-dovecot/index.html +++ b/ispmail-bookworm/let-postfix-send-emails-to-dovecot/index.html @@ -1,4 +1,4 @@ - Let Postfix send emails to Dovecot | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Let Postfix send emails to Dovecot

    I hope you haven’t lost your mind yet. If you are unsure how Postfix and Dovecot work together take a moment and go back to the big picture page.

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Let Postfix send emails to Dovecot

    I hope you haven’t lost your mind yet. If you are unsure how Postfix and Dovecot work together take a moment and go back to the big picture page.

    In a previous chapter we made sure that Postfix knows which emails it is allowed to receive. Now what to do with the email? It has to be saved to disk into the mailbox of the mail user who is eagerly waiting for it. You could let Postfix handle that using its built-in mail delivery agent (MDA) called “virtual“. However compared to the capabilities that Dovecot provides like server-based sieve rules or quotas the Postfix delivery agent is pretty basic. We are using Dovecot anyway to provide the IMAP (and optionally POP3) service. So let’s use its delivery agent.

    How can we make Postfix hand over the email to Dovecot? There are generally two ways to establish that link.

      @@ -81,7 +82,7 @@
    1. The better option is to use LMTP (local mail transport protocol) that was conceived for this purpose. It can handle multiple recipients at the same time and has a permanently running process which provides a better performance than using the LDA. In short, LMTP is a variant of SMTP with fewer features. It is meant for email communication between internal services that trust each other.

    You guessed it already – we will go for the second option. You installed the dovecot-lmtpd package earlier. So let’s configure it.

    -

    Tell Dovecot where to listen for LMTP connections from Postfix

    Section titled “Tell Dovecot where to listen for LMTP connections from Postfix”
    +

    Tell Dovecot where to listen for LMTP connections from Postfix

    Section titled “Tell Dovecot where to listen for LMTP connections from Postfix”

    Edit Dovecot’s configuration file that deals with the LMTP daemon – you can find it at /etc/dovecot/conf.d/10-master.conf. Look for the “service lmtp” section and edit it so that it looks like:

    service lmtp {
    unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
    }
    }

    This makes Dovecot’s lmtp daemon create a UNIX socket at /var/spool/postfix/private/dovecot-lmtp. Just like in the section dealing with setting up Dovecot we make it put a socket into the /var/spool/postfix chroot directory because Postfix is restricted to that directory and cannot access anything outside of it. So from Postfix’s point of view the socket is located at “/private/dovecot-lmtp”.

    @@ -90,21 +91,15 @@

    Check if dovecot accepted that change:

    systemctl status dovecot

    The output should contain “Active: active (running)”.

    -

    Tell Postfix to deliver emails to Dovecot using LMTP

    Section titled “Tell Postfix to deliver emails to Dovecot using LMTP”
    +

    Tell Postfix to deliver emails to Dovecot using LMTP

    Section titled “Tell Postfix to deliver emails to Dovecot using LMTP”

    This is even easier. The “virtual_transport” in Postfix defines the service to use for delivering emails to the local system. Dovecot has created a socket file and is ready to listen to incoming LMTP connections. We just need to tell Postfix to send emails there:

    postconf virtual_transport=lmtp:unix:private/dovecot-lmtp

    The syntax looks crazy, but it’s actually simple. You just told Postfix to use the LMTP protocol. And that we want to use a UNIX socket on the same system (instead of a TCP connection). And the socket file is located at /var/spool/postfix/private/dovecot-lmtp.

    (You will find further information on these steps in the Dovecot configuration on Postfix integration.)

    - +

    One of my favorite features of Dovecot are automatic rules for incoming email that are processed on the server. You can sort away your mailing list emails into special folders. You can reject certain senders. Or you can set up vacation auto-responders. No need to have a mail client running – it all happens automatically on the server even when your mail users are not connected.

    The open standard (RFC 5228) for such rules is called Sieve. Basically, Sieve is a way to manage server-side email rules. A rule consists of conditions and actions. For example if the sender address matches steve@example.org you could tell Dovecot to move such emails to your “steve” folder automatically. These rules are stored on the Dovecot server and executed automatically. Whether you connect from your smartphone your laptop or use the webmail access – the rules always work and require no configuration on the client side.

    As we use LMTP that’s where we need to tell the lmtp service that we want to use Dovecot’s “sieve” plugin. Edit the file /etc/dovecot/conf.d/20-lmtp.conf and within the “protocol lmtp” section change the “mail_plugins” line to:

    mail_plugins = $mail_plugins sieve

    Restart Dovecot and you are done:

    -
    systemctl restart dovecot
    \ No newline at end of file +
    systemctl restart dovecot
    \ No newline at end of file diff --git a/ispmail-bookworm/making-postfix-get-its-information-from-the-mariadb-database/index.html b/ispmail-bookworm/making-postfix-get-its-information-from-the-mariadb-database/index.html index 9acfe49..81ba866 100644 --- a/ispmail-bookworm/making-postfix-get-its-information-from-the-mariadb-database/index.html +++ b/ispmail-bookworm/making-postfix-get-its-information-from-the-mariadb-database/index.html @@ -1,4 +1,4 @@ - Let Postfix access MariaDB | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Let Postfix access MariaDB

    In the previous chapter you have created the SQL database schema and inserted some data to play with. Let’s start with the entry point for all email on your system: Postfix. So we need to tell Postfix how to get the information from the database. First let’s tell it how to find out if a certain domain is a valid email domain.

    - +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Let Postfix access MariaDB

    In the previous chapter you have created the SQL database schema and inserted some data to play with. Let’s start with the entry point for all email on your system: Postfix. So we need to tell Postfix how to get the information from the database. First let’s tell it how to find out if a certain domain is a valid email domain.

    +

    As described earlier a mapping in Postfix is just a table that contains a left-hand side (LHS) and a right-hand side (RHS). To make Postfix get information about virtual domains from the database we need to create a ‘cf’ file (configuration file). Start by creating a file called /etc/postfix/mysql-virtual-mailbox-domains.cf for the virtual_mailbox_domains mapping. Make it contain:

    user = mailserver
    password = x893dNj4stkHy1MKQq0USWBaX4ZZdq
    hosts = 127.0.0.1
    dbname = mailserver
    query = SELECT 1 FROM virtual_domains WHERE name='%s'

    Please enter your own password for the mailserver database user here. It is the first one you created before.

    @@ -84,9 +85,9 @@

    The “postconf” command conveniently adds configuration lines to your /etc/postfix/main.cf file. It also activates the new setting instantly so you do not have to reload the Postfix process.

    The test data you created earlier added the domain “example.org” as one of your mailbox domains. Let’s ask Postfix if it recognizes that domain:

    Terminal window
    postmap -q example.org mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    - +

    You should get ‘1’ as a result. That means your first mapping is working. Feel free to try that with other domains after the -q in that line. You should not get a response.

    - +

    You will now define the virtual_mailbox_maps. It will map a recipient’s email address (left-hand side) to the location of the user’s mailbox on your hard disk (right-hand side). Postfix has a built-in transport service called “virtual” that can receive the email and store it into the recipient’s email directory. That service is pretty limited, so we will delegate that to Dovecot as it allows us better control.

    Postfix will forward all emails to Dovecot for further delivery. But we need to make sure that the recipient actually exists before we do that. So Postfix needs to check whether an email address belongs to a valid mailbox. That simplifies things a bit because we just need the left-hand side of the mapping.

    Similar to the above virtual_domains mapping you need an SQL query that searches for an email address and returns “1” if it is found.

    @@ -96,7 +97,7 @@

    Tell Postfix that this mapping file is supposed to be used for the virtual_mailbox_maps mapping:

    Terminal window
    postconf virtual_mailbox_maps=mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

    Test if Postfix is happy with this mapping by asking it where the mailbox directory of our john@example.org user would be:

    - +

    The virtual_alias_maps mapping is used for forwarding emails from one email address to one or more others. In the database multiple targets are achieved by using multiple rows.

    Create another “.cf” file at /etc/postfix/mysql-virtual-alias-maps.cf:

    user = mailserver
    password = **x893dNj4stkHy1MKQq0USWBaX4ZZdq**
    hosts = 127.0.0.1
    dbname = mailserver
    query = SELECT destination FROM virtual\_aliases WHERE source='%s'
    @@ -105,10 +106,4 @@

    Test if the mapping file works as expected:

    postmap -q jack@example.org mysql:/etc/postfix/mysql-virtual-alias-maps.cf

    You should see the expected destination:

    -

    john@example.org

    \ No newline at end of file +

    john@example.org

    \ No newline at end of file diff --git a/ispmail-bookworm/managing-users-aliases-and-domains/index.html b/ispmail-bookworm/managing-users-aliases-and-domains/index.html index d0f780e..0201f87 100644 --- a/ispmail-bookworm/managing-users-aliases-and-domains/index.html +++ b/ispmail-bookworm/managing-users-aliases-and-domains/index.html @@ -1,4 +1,4 @@ - Managing users, aliases and domains | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Managing users, aliases and domains

    Maybe you already know what you have to do to create mail domains and mail users. After all I tried to explain the database schema in the section that dealt with preparing the database. But if that wasn’t clear enough let me explain what you need to do to manage your mail accounts.

    - +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Managing users, aliases and domains

    Maybe you already know what you have to do to create mail domains and mail users. After all I tried to explain the database schema in the section that dealt with preparing the database. But if that wasn’t clear enough let me explain what you need to do to manage your mail accounts.

    +

    The following sections explain the changes and SQL queries you can use for common management tasks:

    - -

    Insert a new row into the virtual_domains table and set the “name” to the name of the new domain. (Do not forget to set up SPF and DKIM.)

    - -

    Delete the row from the virtual_domains table that has the right “name”. All aliases and users will automatically be deleted, too. However the mailboxes will stay on disk at /var/vmail/… and you need to delete them manually.

    - -

    Find out the “id” of the right domain from the virtual_domains table. The insert a new row into the virtual_users table. Set the domain_id to the value you just looked up in the virtual_domains table. Set the “email” field to the complete email address of the new user. Create a new password in a shell using the “dovecot pw -s BLF-CRYPT” command and insert the result into the “password” field.

    - -

    Find the row in the virtual_users table by looking for the right “email” field. Create a new password in a shell using the “dovecot pw -s BLF-CRYPT” command and insert the result into the “password” field.

    - -

    Find the row in the virtual_users table by looking for the right “email” field and delete it. The mailbox will stay on disk at /var/vmail/… and you need to delete it manually

    - -

    You can forward emails from one (source) email to other addresses (destinations) – even outside of your mail server. Find out the “id” of the right domain (the part after the “@” of the source email address) from the virtual_domains table. Create a new row in the virtual_aliases table for each destination (if you have multiple destination addresses). Set the “source” field to the complete source email address. And set the “destination” field to the respective complete destination email address.

    - -

    Find all rows in the virtual_aliases table by looking for the right “source” email address. Remove all rows that you lead to “destination” addresses you don’t want to forward email to.

    - + +

    Insert a new row into the virtual_domains table and set the “name” to the name of the new domain. (Do not forget to set up SPF and DKIM.)

    + +

    Delete the row from the virtual_domains table that has the right “name”. All aliases and users will automatically be deleted, too. However the mailboxes will stay on disk at /var/vmail/… and you need to delete them manually.

    + +

    Find out the “id” of the right domain from the virtual_domains table. The insert a new row into the virtual_users table. Set the domain_id to the value you just looked up in the virtual_domains table. Set the “email” field to the complete email address of the new user. Create a new password in a shell using the “dovecot pw -s BLF-CRYPT” command and insert the result into the “password” field.

    + +

    Find the row in the virtual_users table by looking for the right “email” field. Create a new password in a shell using the “dovecot pw -s BLF-CRYPT” command and insert the result into the “password” field.

    + +

    Find the row in the virtual_users table by looking for the right “email” field and delete it. The mailbox will stay on disk at /var/vmail/… and you need to delete it manually

    + +

    You can forward emails from one (source) email to other addresses (destinations) – even outside of your mail server. Find out the “id” of the right domain (the part after the “@” of the source email address) from the virtual_domains table. Create a new row in the virtual_aliases table for each destination (if you have multiple destination addresses). Set the “source” field to the complete source email address. And set the “destination” field to the respective complete destination email address.

    + +

    Find all rows in the virtual_aliases table by looking for the right “source” email address. Remove all rows that you lead to “destination” addresses you don’t want to forward email to.

    +

    If you don’t like using SQL queries to manage your mail server you may like to install a web-based management software. Several developers contributed web interfaces for earlier versions of this guide and they will probably still work because the database schema has not changed. Your experience with these projects, or links to further projects, is very welcome in the comments.

    - +

    Homepage: http://ima.jungclaussen.com/
    Demo: http://ima.jungclaussen.com/demo/

    ISPmail Admin screenshot

    - +

    Christian G. has created a text-based program to help you manage your mail accounts. You may like it if you just want a little help adding accounts and setting passwords but not provide a full blown web interface.

    -

    You can find his Python script at Github.

    \ No newline at end of file +

    You can find his Python script at Github.

    \ No newline at end of file diff --git a/ispmail-bookworm/migrating-from-a-bullseye-to-a-bookworm-server/index.html b/ispmail-bookworm/migrating-from-a-bullseye-to-a-bookworm-server/index.html index 53ce4d1..7a8e64d 100644 --- a/ispmail-bookworm/migrating-from-a-bullseye-to-a-bookworm-server/index.html +++ b/ispmail-bookworm/migrating-from-a-bullseye-to-a-bookworm-server/index.html @@ -1,4 +1,4 @@ - Migrating from your old (Bullseye) server | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Migrating from your old (Bullseye) server

    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Migrating from your old (Bullseye) server

    I recommend that you set up a new server and make sure that the new mail server is working correctly before you start migrating existing email users to it. You may argue that Debian can be upgraded easily using “apt-get dist-upgrade” but that is very dangerous on a live mail server. Automatic configuration changes may have evil side effects and you risk losing emails. At least you are causing a downtime for your users.

    If you follow my advice then get a new server and install Debian Bookworm on it. Once the user mailboxes are migrated and all works well you can tear down the old server.

    Once your new server is installed come back here.

    - +

    Follow this guide to the end. Only then start attempting a migration. Inform your users about the migration and set a time when you intend to move email accounts to the new server. The change will require a DNS change which takes a while to be visible worldwide so your users will have a period when incoming email is delayed. If you proceed careful though not a single email will be lost.

    So you have your new server up and running and did everything to make it a working mail server? You really read all the pages in this guide and did what they told you? Okay, then let’s start.

    - +

    The DNS “MX” record for your domain contains the hostname of your mail server. When switching to the new server you need to change the MX record. Every DNS record has a TTL (time-to-live) that defines the period of time that a record will stay valid even after you change it. Usually that TTL is rather high like 86400 seconds (=1 day). This information is used by caching name servers that they can use the cached values for a day. Turn that TTL down temporarily to 60 seconds so that the rest of the internet will pick up your change quicker. However it will take a day until everyone else on the internet picks up your TTL change.

    - +

    You need to copy the database that contains the control data about your email domains and accounts. Log into the old (Bullseye) server as root and back up the mailserver database. That is as easy as running…

    mysqldump mailserver > mailserver.sql

    Copy that file to the new server (using scp) and import it there:

    mysql mailserver < mailserver.sql

    Obviously any database changes on the old server from now on will have to be done on the new server as well until the migration is done.

    - +

    If your users are using Roundcube as a webmail interface then you should migrate their data like their contact lists. Dump the SQL from the old server:

    mysqldump roundcube > roundcube.sql

    Copy that file to the new server and import it:

    mysql roundcube < roundcube.sql

    One caveat though. To distinguish multiple mail servers Roundcube stores the server’s name in the mail_host column of the users table. So as a last step change that column if your new mail server has a new FQDN/hostname by running this SQL query on the new roundcube database:

    UPDATE users SET mail_host='new.mail.server';
    - +

    If you have been using rspamd with the Redis backend then copy over the Redis database from your previous server. Details are found in the rspamd chapter.

    - +

    Fortunately Dovecot uses the maildir format that stores emails as plain files on disk. Login to the new (Bookworm) server and use rsync to copy over the mails from the old (Bullseye) mail server:

    rsync -va oldserver:/var/vmail/ /var/vmail/

    (Note the trailing slashes. Type them exactly as shown above or your files will end up in wrong places.)

    There is no need to shut down Dovecot on your production Bullseye server. Copying the files while Dovecot is running will not break anything. This is called a “hot copy”. It may not be consistent but it will save time during the final synchronization.

    - +

    Copy over everything in /etc/letsencrypt and /var/lib/rspamd/dkim from your old to the new server.

    rsync -va oldserver:/etc/letsencrypt/ /etc/letsencrypt/
    rsync -va oldserver:/var/lib/rspamd/dkim/ /var/lib/rspamd/dkim/
    - +

    You told your users about the downtime, right? The time has come? Okay. Shut down Dovecot on both servers.

    - +

    Let’s synchronize again. rsync will only copy those files that have changed which makes it much faster than the first sync. On your new server run:

    rsync -va --delete oldserver:/var/vmail/ /var/vmail/

    (The “--delete” option makes sure that files that have been removed from the old server will also be deleted from the new server. So if a user has deleted an email it will be deleted on the new server as well.)

    The new Dovecot version uses a slightly different indexing mechanism. So force rebuilding the users’ indices:

    doveadm force-resync -A '*'
    - +

    For all your domains you will have to change the DNS “MX” or “A” record to point to your new server.

    - +

    Accidents happen. And you don’t want to lose emails. So run this command to enable your safety net on the new server:

    postconf soft_bounce=yes

    This makes Postfix always keep emails in the queue that it would otherwise reject. So you can fix any errors and the queue will empty. Start Postfix and Dovecot on the new server. Watch your /var/log/mail.log and run “mailq” from time to time to see what emails get stuck in the queue. If you are certain that emails can be removed from the queue then use “postsuper -d QUEUE-ID” (as shown in the “mailq” output).

    Once you are certain that emails are properly received and sent you can switch off the soft_bounce mode again:

    postconf soft_bounce=no
    - -

    If possible do a final backup of the old server. If users are not complaining then dismiss the old system after a week.

    \ No newline at end of file + +

    If possible do a final backup of the old server. If users are not complaining then dismiss the old system after a week.

    \ No newline at end of file diff --git a/ispmail-bookworm/monitoring-and-backup/index.html b/ispmail-bookworm/monitoring-and-backup/index.html index 722d569..d40c06a 100644 --- a/ispmail-bookworm/monitoring-and-backup/index.html +++ b/ispmail-bookworm/monitoring-and-backup/index.html @@ -1,4 +1,4 @@ - Monitoring and Backup | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Monitoring and Backup

    You have come a long way. Glad you made it. So many weird things complicated the journey that evolved from the very beginning of using email roughly 35 years ago. But before you take your much deserved break from these adventures let’s take care of some final tasks.

    - +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Monitoring and Backup

    You have come a long way. Glad you made it. So many weird things complicated the journey that evolved from the very beginning of using email roughly 35 years ago. But before you take your much deserved break from these adventures let’s take care of some final tasks.

    +

    For me there is nothing more awkward than having your users tell me that my systems are not working properly. As a good sysadmin I should notice outages in advance. The most frequent cause for mail server issues is a disk that is running full. Users are pretty bad with cleaning their mess up. For them the space of their mailbox is infinite. So one way is to use quotas where possible. But at least you should get notified of error conditions on your mail server.

    I will not dive into monitoring deeply here. Setting up proper monitoring will easily fill a guide similar to the size of the one you are currently reading. But you should either have your own monitoring system set up or at least use an internet service to check if emails are getting through.

    Things I suggest you check frequently:

    @@ -86,7 +87,7 @@
  • Number of emails in the mail queue? (mailq)
  • Are your backups restoreable? A propos backups…
  • - +

    No matter if you are running your family mail server or are in charge for an organisation – nobody likes to lose email. There are many different backup tools for different purposes. Just to name my open-source favorites that ship with Debian:

    • rsnapshot. A simple solution if you want to send backups to other servers using SSH/SCP. You can also keep backups for different points in time on your local server. But if your disk crashes then all would be lost. Also rsnapshot can become slow with many emails because every file is copied as a link. But you can access the files directly without any restore procedure. It’s basically a frontend for rsync which is very reliable.
    • @@ -112,10 +113,4 @@

      …daily to get a proper database backup that can be restored later.

      I also like to backup the output of these files because they help me figure out the specific layout of a server:

      fdisk -l
      lshw
      lsb_release -a
      dpkg --get-selections
      -

      If one of your users just accidentally deleted an email and wants it back then simply get the files from /var/vmail/domain/user/Maildir/… from the backup and put them into the original location. Dovecot will handle everything else. You don’t need to restart anything.

    \ No newline at end of file +

    If one of your users just accidentally deleted an email and wants it back then simply get the files from /var/vmail/domain/user/Maildir/… from the backup and put them into the original location. Dovecot will handle everything else. You don’t need to restart anything.

    \ No newline at end of file diff --git a/ispmail-bookworm/prepare-the-database/index.html b/ispmail-bookworm/prepare-the-database/index.html index 8d4e2c0..3e89486 100644 --- a/ispmail-bookworm/prepare-the-database/index.html +++ b/ispmail-bookworm/prepare-the-database/index.html @@ -1,4 +1,4 @@ - Preparing the database | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Preparing the database

    Now it’s time to prepare the MariaDB database that stores the information that controls your mail server. In the process you will have to enter SQL queries – the language of relational database servers. You may enter them in a terminal window using the ‘mysql’ command. But if you are less experienced with SQL you may prefer using a web interface. That’s what you installed Adminer for.

    - - +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Preparing the database

    Now it’s time to prepare the MariaDB database that stores the information that controls your mail server. In the process you will have to enter SQL queries – the language of relational database servers. You may enter them in a terminal window using the ‘mysql’ command. But if you are less experienced with SQL you may prefer using a web interface. That’s what you installed Adminer for.

    + +

    Basically Adminer is just a couple of PHP files served from your Apache web server. The setup is simple. Edit your /etc/apache2/sites-available/webmail.example.org-https.conf file and put this line anywhere between the <VirtualHost> and the </VirtualHost> tags:

    Alias /adminer /usr/share/adminer/adminer

    Reload the Apache process:

    systemctl reload apache2
    - +

    You will not be able to login yet. The only available database user is ‘root’, but it is only usable from the shell by default – not over a network.

    - +

    In this section you will create the basic database “mailserver” and two users. One user (“mailadmin”) will be able to change the data in the database and is meant for you. The other user (“mailserver”) can only read from the database and is meant for the server processes.

    Use the pwgen tool to create two random passwords for these users:

    pwgen -s1 30 2

    Take a note of the passwords or store them somewhere safe.

    - +

    This step is simple. Connect to the database using the ‘mysql’ command:

    mysql

    You should see the MariaDB prompt that allows you to enter further SQL commands:

    @@ -95,21 +96,21 @@

    Now you are expected to speak SQL. To create a new database for our needs enter:

    CREATE DATABASE mailserver;

    You will be told that your query was OK and that one new row was added.

    - +

    Now you have an empty database. Let us give the “mailadmin” database user the required privileges to manage it.

    You are still connected to the database, right? To create a user with full permissions enter this SQL command. Please use the first password you just generated instead of mine:

    grant all privileges on mailserver.* to 'mailadmin'@'localhost' identified by 'gefk6lA2brMOeb8eR5WYaMEdKDQfnF';

    Also create the read-only user that will grant Postfix and Dovecot database access later (use your second random password here).

    grant select on mailserver.* to 'mailserver'@'127.0.0.1' identified by 'x893dNj4stkHy1MKQq0USWBaX4ZZdq';
    - +

    Now you can use Adminer to log in using the mailadmin account and the first password:

    Login to Adminer

    You should get logged in and see the “mailserver” database:

    Create a database in Adminer

    - +

    Do you remember that I introduced three Postfix mappings earlier? One for virtual domains, one for virtual aliases and another for virtual users? Each of the mappings needs a database table that you will create now. Feel free to use Adminer. I will however also show the SQL statement to create the tables that you can enter on the ‘mysql’ command-line tool. Below you can click on either [Adminer] or [SQL] to choose.

    The first table to create is…

    - +

    This table just holds the list of domains that you will use as virtual_mailbox_domains in Postfix.

    | Column | Purpose | -| ---------- | -------------------------------------------------------------------------------- | -| id | A unique number identifying each row. It is added by the database automatically. | -| name | The name of the domain you want to receive email for. |

    - +
    + + + + + + + + + + + + + + + + +
    ColumnPurpose
    idA unique number identifying each row. It is added by the database automatically.
    nameThe name of the domain you want to receive email for.
    +

    The next table contains information about your users. Each mail account takes up one row.

    -

    | Column | Purpose| -| ---------- | --- | -| domain_id | Contains the number of the domain’s id in the virtual_domains table. This is called a foreign key. A “delete cascade” makes sure that if a domain is deleted that all user accounts in that domain are also deleted to avoid orphaned rows. | -| email | The email address of the mail account.| -| password | The hashed password of the mail account. It is prepended by the password scheme. By default it is {BLF-CRYPT} also known as bcrypt which is considered very secure. Previous ISPmail guides used {SHA256-CRYPT} or even older crypt schemes. Prepending the password field the hashing algorithm in curly brackets allows you to have different kinds of hashes. So you can easily migrate your old passwords without locking out users. Users with older schemes should get a new password if possible to increase security. | -| quota | The number of bytes that this mailbox can store. You can use this value to limit how much space a mailbox can take up. The default value is 0 which means that there is no limit. |

    - +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    ColumnPurpose
    domain_idContains the number of the domain’s id in the virtual_domains table. This is called a foreign key. A “delete cascade” makes sure that if a domain is deleted that all user accounts in that domain are also deleted to avoid orphaned rows.
    emailThe email address of the mail account.
    passwordThe hashed password of the mail account. It is prepended by the password scheme. By default it is {BLF-CRYPT} also known as bcrypt which is considered very secure. Previous ISPmail guides used {SHA256-CRYPT} or even older crypt schemes. Prepending the password field the hashing algorithm in curly brackets allows you to have different kinds of hashes. So you can easily migrate your old passwords without locking out users. Users with older schemes should get a new password if possible to increase security.
    quotaThe number of bytes that this mailbox can store. You can use this value to limit how much space a mailbox can take up. The default value is 0 which means that there is no limit.
    +

    The last table contains forwardings from an email address to other email addresses.

    -

    | Field | Purpose | -| --- | --- | -| id | A unique number identifying each row. It is added by the database automatically. | -| domain_id | Contains the number of the domain’s id in the virtual_domains table again. | -| source | The email address that the email was actually sent to. In case of catch-all addresses (that accept any address in a domain) the source looks like “@example.org”. | -| destination | The email address that the email should instead be sent to. |

    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldPurpose
    idA unique number identifying each row. It is added by the database automatically.
    domain_idContains the number of the domain’s id in the virtual_domains table again.
    sourceThe email address that the email was actually sent to. In case of catch-all addresses (that accept any address in a domain) the source looks like “@example.org”.
    destinationThe email address that the email should instead be sent to.

    As described in the section about domain types there can be multiple targets for one source email address. You just would need to insert several rows with the same source address and different destination addresses that will get copies of an email. Postfix will consider all matching rows.

    - +

    Too much theory so far? I can imagine. Let’s populate the database with an example.org domain, a john@example.org email account and a forwarding of jack@example.org to john@example.org. We will use that information in the next chapter to play with.

    To add that sample data just run these SQL queries:

    REPLACE INTO mailserver.virtual\_domains (id,name) VALUES ('1','example.org');
    @@ -171,10 +226,4 @@
    doveadm pw -s BLF-CRYPT

    …to create a secure hash of the simple password “summersun”. Once you have installed Dovecot you can try that yourself but you will get a different output. The reason is that the passwords are salted to increase their security.

    Remember to remove that sample data before you go live with your mail server. Thanks to the delete cascade you just need to remove the virtual_domain. The alias and the mailbox will be deleted automatically. This would be the SQL query you should run before taking your mail server into production:

    -
    DELETE FROM mailserver.virtual_domains WHERE name='example.org';
    \ No newline at end of file +
    DELETE FROM mailserver.virtual_domains WHERE name='example.org';
    \ No newline at end of file diff --git a/ispmail-bookworm/prevent-spoofing-using-dkim/index.html b/ispmail-bookworm/prevent-spoofing-using-dkim/index.html index a2d15f3..885d9aa 100644 --- a/ispmail-bookworm/prevent-spoofing-using-dkim/index.html +++ b/ispmail-bookworm/prevent-spoofing-using-dkim/index.html @@ -1,4 +1,4 @@ - Prevent spoofing using DKIM | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Prevent spoofing using DKIM

    Email sender spoofing is the act of pretending to be in control of someone else’s email address. This is a common problem with phishing. Often scammers send emails with a sender address of something@paypal.com and hope that the recipient falls for it and trusts them. In fact SMTP does not care which sender address you send. Many mail service providers enforce that you send emails only using your own email address. But some do not. And spammer and scammers obviously could not care less.

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Prevent spoofing using DKIM

    Email sender spoofing is the act of pretending to be in control of someone else’s email address. This is a common problem with phishing. Often scammers send emails with a sender address of something@paypal.com and hope that the recipient falls for it and trusts them. In fact SMTP does not care which sender address you send. Many mail service providers enforce that you send emails only using your own email address. But some do not. And spammer and scammers obviously could not care less.

    Spoofing case without DKIM

    So roughly ten years ago a new method was conceived that added a cryptographic signature to the header of an email that the recipient could check to verify the authenticity of the sender and the integrity of the email. The signature is created using a private key that only the sending mail server has. It can then be verified by the recipient by downloading the corresponding public key from the DNS zone of the sending domain and running a signature check. This works very similar to PGP or S/MIME signing – just on a domain level. Your mail server can sign all outgoing emails automatically. The method used nowadays is called Domain Keys Identified Mail – or short: DKIM.

    Let’s take an example. I have just sent an email from GMail to my personal email account on my own mail server. Google uses DKIM signing so the email got this additional header from Google’s mail servers:

    @@ -84,7 +85,7 @@
    "k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwXNZF1j8sJPDleRjf9SPBNem0ik58kF1ilC1nUgKAttl9v7FX9hXJXPmLNhVtSKVZ8yruaeOZLeIxtgtk1s81zzIE5Mj0AiGn2wlFt4kYfqlDfYe95YLQHjynu4i7vj1Tj" "ksf62btcCbL+3XhbK+oD5PlqYhXHWuzoKoEp5L4lCihgkONvU/oy7NNeE6quqfF/y0YSLwF2WVA2Kd8L6R0Ar2dYT/3wZCFknI7xhvPqh9HNcIWBELGPwtXcsHbX1wvBlCgNQAUcdJrf2YWzAwqmZ564/1ipL1IMk1nafPJk75ktumVNz6ORuIn3jbZWp9rRpnaeI9cu/8KfSKH2EY9QIDAQAB"

    That is the public key that I can use to verify the signature. An automated check can be done using the “opendkim-testmsg” tool as described later. I can run it and paste the entire email including headers and body into it. If it doesn’t complain with an error message then the signature is correct.

    Sounds good? Then let’s implement that for your email domain, too.

    - +

    As explained above you need a private key that your mail server will use and a public key that gets added to your DNS zone. rspamd can create DKIM keys already. You may want to install “dig” though which allows to query DNS records. It works similar to “nslookup” but is more versatile.

    apt install dnsutils

    rspamd has its built-in DKIM signing module enabled by default.

    @@ -97,7 +98,7 @@
    -----BEGIN PRIVATE KEY-----
    MIICdwIBADANBgkqhkiG9w0BAQE…
    -----END PRIVATE KEY-----
    2019122401._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZ8e4RtsvuvsgXyo3Jr63twdx3Zm2RtnYPf87wba5ZnFP0sQIagjJ0R3WL+djKhM5EteBeboTeaflLR+AUKWJdQnL5jzGil+yWThH5C+ixhkdFZPdabkxBji+3r6uRxJKBsN0gy2/+Gp4sGs7lmFgioki9OLgQnzzFh2nE/MSACwIDAQAB" ) ;

    The first part is the private key. And that includes the “…BEGIN…” and “…END…” lines. This key must be kept secret and will only be used by your mail server to sign outgoing emails.

    The second part is the DNS record you need to add to your domain’s DNS zone. Let’s start with that.

    - +

    Before you start signing your emails you must make sure that the public key is properly present in your DNS zone for the domain you are sending emails from. Otherwise the recipient will be unable to verify the signature and may incorrectly assume that the email was spoofed.

    Take a look at the TXT record. It will look something like this:

    2019122401._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxenHupkYLPmFMbJjV9dQICKUl2xH/aexSRUwCuw7TJ9dkddqIN+6tyw4VKhnW8R0/UlbzlSFLmVgMU0uUkwTtVqyDHhtSU7LV/SkVYmUst4dTUF1r+8PvhAm7vobMYKdwvRsOq27ABtZc8P4oU2XXHqqa6LU8s4sNxs12hLW9swIDAQAB" ) ;
    @@ -107,32 +108,32 @@
    dig +trace 2019122401._domainkey.example.org txt

    If you get the TXT entry like as follows then you are ready to enable DKIM signing in rspamd for that domain:

    TXT "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxenHupkYLPmFMbJjV9dQICKUl2xH/aexSRUwCuw7TJ9dkddqIN+6tyw4VKhnW8R0/UlbzlSFLmVgMU0uUkwTtVqyDHhtSU7LV/SkVYmUst4dTUF1r+8PvhAm7vobMYKdwvRsOq27ABtZc8P4oU2XXHqqa6LU8s4sNxs12hLW9swIDAQAB" "" from server foo.bar in 24 ms.
    - +

    As explained above it is advised to use DKIM maps. It’s nothing fancy. Just a simple file defining which selector you want to use for a certain domain. rspamd will assume that your selector is always “dkim” unless specified otherwise in a map. If you used “dkim” then you may get into trouble when you later want to replace your key. DNS is a sluggish system and propagating a new DKIM public key may take a day. Emails signed with a newer key may get rejected while the DNS record is not yet known everywhere in the world.

    Using maps is simple. First we need to change the selector_map setting of the dkim_signing module. To do that create a new file in /etc/rspamd/local.d/dkim_signing.conf and make it contain just these two lines:

    path = "/var/lib/rspamd/dkim/$domain.$selector.key";
    selector_map = "/etc/rspamd/dkim_selectors.map";

    The configuration is pretty self-explaining. rspamd will look for the domain-to-key mapping in the dkim_selectors.map file. Create that file and make it contain this line:

    example.org 2019122401
    -

    That’s all really. rspamd now knows that whenever it sees an outgoing email from anyone@example.org it will get the DKIM private key from /var/lib/rspamd/dkim/example.org.2018022301.key and use it to sign the email.

    +

    That’s all really. rspamd now knows that whenever it sees an outgoing email from anyone@example.org it will get the DKIM private key from /var/lib/rspamd/dkim/example.org.2018022301.key and use it to sign the email.

    Reload the configuration:

    systemctl restart rspamd

    This method works well if you just have a few domains that virtually never change. If you are rather serving random customer domains you should consider putting the keys into a Redis database instead as described in the documentation. There is not yet a way to manage DKIM keys in a database like MySQL.

    - - + +

    Take the private key that was created earlier (the multi-line string including “…BEGIN PRIVATE KEY…” and “…END PRIVATE KEY…“) and put it into a file at the location where rspamd will look for it:

    /var/lib/rspamd/dkim/example.org.2019122401.key

    The name of the file has to be  DOMAIN + dot + SELECTOR + “.key” like above. If you name the file incorrectly you will get an error in your rspamd.log file like “lua_dkim_sign_handler: cannot load dkim key /var/lib/rspamd/dkim/example.org.dkim.key“.

    Make sure that only _rspamd can read it:

    chown _rspamd /var/lib/rspamd/dkim/*
    chmod u=r,go= /var/lib/rspamd/dkim/*

    rspamd will automatically pick up the files and does not need to be restarted.

    - +

    If you have another email account at another location then you could just send a test email there via your mail server. If you take a look at the received email it should have a DKIM header now like:

    DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.org; s=2019122401; t=1519400838 h=from:subject:date:message-id:to:mime-version:content-type:content-transfer-encoding; bh=kpYel1IlDvqXEUc0SyIpXbMte3XpQOCXHl+zTyHQvGc=; b=NEUyWUoeKE…

    DKIM signature verification failed

    To verify the signature install the opendkim-tools package, copy the entire test email (including headers and body), run opendkim-testmsg in your shell and paste the email (finish with CTRL-D).

    If you get no output then the signature verified correctly. But if you get something like “opendkim-testmsg: dkim_eom(): Unable to verify” then double-check your DNS record.

    You can also use websites like dkimvalidator.com, isnotspam.com or mail-tester.com service to verify that your signatures are working well.

    - +

    Adding DKIM signatures is a good first step. But you can take it further by telling receiving mail servers that they should not accept any email from your domain without a valid signature or from servers that you do no operate. There are two concepts that aim to help. The older SPF and the newer DMARC. Either of them means creating a machine-readable string in a predefined format and adding a TXT record to your DNS zone. Receiving mail servers can check those records and take your advice (as the domain owner) what to do if the criteria of the email are not met. It could accept the email anyway or flag it as spam or reject it altogether.

    Let’s take a look at a typical SPF record:

    "v=spf1 ip4:157.97.194.11 mx ~all"
    @@ -151,10 +152,4 @@

    I mentioned that DMARC is the newer standard. So why use SPF anyway? Because some email providers value your effort if you use SPF, too. Technically it’s sufficient to specify a DMARC entry. In my opinion restricting the IP addresses allowed to send is a little dangerous and a little inflexible. It is far more interesting to require that emails from your domain have a valid DKIM signature. Such a record may look like:

    "v=DMARC1; p=reject; adkim=s; ruf=postmaster@example.org"
    -

    However to create a proper DMARC entry I suggest you use one of the web sites that aid you there and explain the restrictions and extra features.

    \ No newline at end of file +

    However to create a proper DMARC entry I suggest you use one of the web sites that aid you there and explain the restrictions and extra features.

    \ No newline at end of file diff --git a/ispmail-bookworm/quotas/index.html b/ispmail-bookworm/quotas/index.html index 2ad81c0..cc5e790 100644 --- a/ispmail-bookworm/quotas/index.html +++ b/ispmail-bookworm/quotas/index.html @@ -1,4 +1,4 @@ - Quotas | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Quotas

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Quotas

    Quotas are size limits for users. You can make sure that users do not waste arbitrary amounts of disk space but are forced to clean up old emails every now and then.

    The magic happens in two places:

    @@ -81,7 +82,7 @@ forced to clean up old emails every now and then.

  • Postfix needs to reject new emails if the user’s mailbox is over quota.
  • Dovecot needs to keep track of the quota and how much the user has already used up of it.
  • - +

    Let’s start with Dovecot. Find the file /etc/dovecot/conf.d/90-quota.conf and edit it. There are several plugin {} sections. Take one and make it look like:

    plugin {
    quota = count:User quota
    quota_vsizes = yes
    @@ -105,7 +106,7 @@ requests from other processes. You surely recognize that we put it into the jail
    systemctl restart dovecot

    Take a look at the /var/spool/postfix/private directory. If all went as intended you will find a socket file called quota-status there. Otherwise please check the /var/log/mail.log file for errors.

    - +

    If we stopped here, then Dovecot would reject emails for users who have no space left. However Postfix would still happily receive new emails and attempt to forward them to Dovecot via LMTP. Dovecot however will deny that. It will then keep the email in its queue and retry for a while. In the end it will send a bounce back to the sender telling them @@ -127,14 +128,14 @@ address. This is pretty much the default behavior if you do not define any restr

  • check_policy_service connects to the socket file at /var/spool/postfix/private/quota-status that was put there by Dovecot. It will use it to ask Dovecot whether the user is over quota in which case the email would get rejected.
  • - +

    If you are curious to see this working, then set John’s mailbox quota to 5 KB:

    # mariadb mailserver
    mysql> update virtual_users set quota=4000 where email='john@example.org';

    Send him a few emails using the ‘swaks’ tool:

    swaks --server localhost --to john@example.org

    After a few emails you will see the rejection message:

    -> RCPT TO:john@example.org
    <** 452 4.2.2 john@example.org: Recipient address rejected: Mailbox is full and cannot receive any more emails
    - +

    These are things you should consider if quotas do not seem to work properly:

    - +

    The last step is to inform the poor users if they accidentally went over quota. After all they do not necessarily recognize that on their own. Let’s do that by sending them an email with a warning. Yes, we will make sure that the email gets through even if the quota is reached.

    @@ -171,10 +172,4 @@ lines into it:

    Time to restart Dovecot again:

    systemctl restart dovecot

    Dovecot’s quota limits can be configured in many ways. If you have special needs then give -their documentation a look.

    \ No newline at end of file +their documentation a look.

    \ No newline at end of file diff --git a/ispmail-bookworm/relaying-outgoing-emails-through-postfix/index.html b/ispmail-bookworm/relaying-outgoing-emails-through-postfix/index.html index 2948544..7cbeb2f 100644 --- a/ispmail-bookworm/relaying-outgoing-emails-through-postfix/index.html +++ b/ispmail-bookworm/relaying-outgoing-emails-through-postfix/index.html @@ -1,4 +1,4 @@ - Relaying outgoing emails through Postfix | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Relaying outgoing emails through Postfix

    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Relaying outgoing emails through Postfix

    Your mail server is almost ready for use. But one puzzle piece is missing. Your users can receive emails but they cannot send them yet.

    Please note that there is a difference on how users send emails versus how servers send emails. For comparison:

      @@ -81,31 +82,31 @@
    • An end user with a mail client like Thunderbird, Evolution or Mutt cannot do it this way. The mail clients have no functionality built in for that MX record fetching magic. And the user is most likely on a dynamic IP address that other mail servers do not trust and reject. End users are meant to send emails to their provider’s (your!) mail server, send login information to authenticate themselves and then send the email. This is called relaying because your mail server acts as a relay between the user and other mail servers on the internet. For security reasons the user also has to authenticate to be allowed to send emails.

    I created a couple of illustrations to explain it.

    - +

    When someone on the internet sends an email to john@example.org, some other mail server will deliver the email using SMTP to your mail server. Postfix will determine that it’s responsible for email addresses in the example.org domain and accept the email. John can then get the email from your server.

    Diagram that shows an email coming into Postfix

    - -

    John is on the internet somewhere and wants to send an email to lisa@example.com. Your mail server is not responsible for the “example.com” domain so it receives John’s email and would have to forward (relay) it to the actual mail server that is responsible for …@example.com email addresses. This may seem like a harmless scenario but your mail server must deny that:

    + +

    John is on the internet somewhere and wants to send an email to lisa@example.com. Your mail server is not responsible for the “example.com” domain so it receives John’s email and would have to forward (relay) it to the actual mail server that is responsible for …@example.com email addresses. This may seem like a harmless scenario but your mail server must deny that:

    Diagram that shows an outgoing unauthenticated email getting rejected

    Why? Because anyone can claim to be John and make your mail server forward mail. If an attacker (like a spammer) would send millions of spam emails in John’s name through your server then other organisations will accuse you as the operator of the mail server of spamming. Your mail server would be what people call an open relay. That is not what you want because your mail server would get blacklisted and you will not be able to send out mail to most other servers. So without any proof that the sender is indeed John, your server must reject the email.

    - +

    So how does John prove his identity? He needs to use authenticated SMTP. This is similar to the previous case but John’s email program will also send his username and password.

    Diagram that shows an outgoing authenticated email getting relayed

    We are making sure that his authentication happens over an encrypted connection so John’s password is safe.

    - +

    In addition to using SMTP authentication you can tell Postfix to always allow relaying for certain IP addresses. The mynetworks setting contains the list of IP networks or IP addresses that you trust. Usually you define your own local network here. The reason John had to authenticate in the above example is because his IP address is not part of mynetworks.

    -

    Make Postfix use Dovecot for authentication

    Section titled “Make Postfix use Dovecot for authentication”
    +

    Make Postfix use Dovecot for authentication

    Section titled “Make Postfix use Dovecot for authentication”

    Enabling SMTP authentication in Postfix is surprisingly easy. You already configured Dovecot so it knows all about your users from the SQL database. So let’s just make Postfix use that by telling it to ask the Dovecot server to verify the username and password. Postfix just needs some extra configuration. Run these commands on the shell:

    postconf smtpd_sasl_type=dovecot
    postconf smtpd_sasl_path=private/auth
    postconf smtpd_sasl_auth_enable=yes

    This enables SMTP authentication and tells Postfix that it can talk to Dovecot through a socket file located at /var/spool/postfix/private/auth. Do you remember that Postfix runs in a sandboxed chroot directory? That’s at /var/spool/postfix. It cannot access any files outside of that directory. But fortunately in a previous section you edited the /etc/dovecot/conf.d/10-master.conf file and made Dovecot place a socket file into /var/spool/postfix/private/auth to allow communication from Postfix.

    - +

    The following settings enable encryption, set the key and certificate paths for Postfix. Just run these commands:

    postconf smtpd_tls_security_level=may
    postconf smtpd_tls_auth_only=yes
    postconf smtpd_tls_cert_file=/etc/letsencrypt/live/webmail.example.org/fullchain.pem
    postconf smtpd_tls_key_file=/etc/letsencrypt/live/webmail.example.org/privkey.pem
    postconf smtp_tls_security_level=may
    - +

    The above settings allow encrypted incoming (smtpd_) and outgoing (smtp_) connections. But they do not enforce it. If a remote mail server does not have encryption enabled we will still accept their emails. You may be tempted to enforce encryption but that would reject email communication with servers who have been configured without encryption.

    However the smtpd_tls_auth_only=yes setting makes sure that the user’s authentication information (email address and password) are always encrypted between the user and your mail server.

    - - + +

    Are you curious how SMTP authentication looks on a low level? You probably are not. But let’s do it anyway. Just once, so that you get the idea.

    In previous versions of this guide we used “telnet” to connect to TCP port 25 and speak SMTP. But now we enforce encryption and can’t do SMTP authentication unencrypted. Let’s try it anyway:

    telnet localhost smtp
    @@ -161,7 +162,7 @@ This feature (described in RFC 303

    Disconnect from Postfix:

    QUIT

    Authentication works. Well done.

    -
    +

    Wait a minute. What was that crazy cryptic string? There was no username and password in it. Was it encrypted?

    No, that was no encryption. It was merely an encoded version of the username and password. Why that? Well usually in SMTP you can only transfer ASCII characters. But the password may contain special characters which are not covered by ASCII. So in the PLAIN method that information is Base64 encoded.

    What is actually converted to Base64…

    @@ -169,16 +170,45 @@ This feature (described in RFC 303

    So for John’s case you can easily create the Base64 string using:

    printf '\0john@example.org\0summersun' | base64

    As a result you will get the exact same string you used above with “AUTH PLAIN”.

    -
    +

    Although I have been talking about SMTP on port 25 to relay mails, it is actually not the proper way. End users should not use port 25 but rather the submission service on TCP port 587 (as described in RFC 4409). The idea is to use port 25 for transporting email (MTA = mail transport agent) from server to server and port 587 for submitting (MSA = mail submission agent) email from a user to a mail server.

    For comparison:

    -

    | TCP Port | 25 | 587 | -| -------------- | ------------------- | ----------------------- | -| Service name | SMTP | Submission | -| Encryption | Optional | Mandatory | -| Authentication | Optional | Mandatory | -| Meant for | Server-to-Server | User-to-Server | -| Your ISP | may block this port | should allows this port |

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TCP Port25587
    Service nameSMTPSubmission
    EncryptionOptionalMandatory
    AuthenticationOptionalMandatory
    Meant forServer-to-ServerUser-to-Server
    Your ISPmay block this portshould allows this port

    I hope that makes the distinction a bit clearer. So let’s enable the submission service. All Postfix services are declared in the /etc/postfix/master.cf file. Please edit the file and look for the submission section that is commented out by default. Turn that section into the following. Basically I removed the ‘#’ character on all lines of this section and removed the lines with the mua_* variables.

    submission inet n - y - - smtpd
    -o syslog_name=postfix/submission
    -o smtpd_tls_security_level=encrypt
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_tls_auth_only=yes
    -o smtpd_reject_unlisted_recipient=no
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_relay_restrictions=
    -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
    -o milter_macro_daemon_name=ORIGINATING

    Make sure to start the first line in the first column and indent the following lines.

    @@ -198,8 +228,8 @@ This feature (described in RFC 303

    Your users can now use the submission port to send email. They just use the port 587 in their mail clients instead of port 25.

    Feel free to send a test mail using the submission port and encryption. You will need to install the libnet-ssleay-perl package first, so that SWAKS can speak TLS:

    apt install -y libnet-ssleay-perl
    swaks --server localhost --to john@example.org \
    --port 587 -tls \
    --auth-user john@example.org \
    --auth-password summersun
    - -
    + +

    Protecting against forged sender addresses

    Section titled “Protecting against forged sender addresses”

    A “forged” sender address means that someone claims to be someone else. Let’s say that John has authenticated and the mail server trusts him. Nothing keeps John from impersonating someone else and sending email in his name? Most email service providers have restrictions that you can only send emails if the sender matches your actual email address. Let’s do that, too.

    Postfix provides a setting called smtpd_sender_login_maps for that purpose. From the “maps” part you can deduce that it expects a mapping again. This time the two columns mean…

    \ No newline at end of file +
    \ No newline at end of file diff --git a/ispmail-bookworm/setting-dns-records/index.html b/ispmail-bookworm/setting-dns-records/index.html index f0a379a..7096df1 100644 --- a/ispmail-bookworm/setting-dns-records/index.html +++ b/ispmail-bookworm/setting-dns-records/index.html @@ -1,4 +1,4 @@ - Setting DNS records | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Setting DNS records

    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Setting DNS records

    So now you have your working mail server. But how do other mail servers get to know you? The answer lies in the most important service on the internet: DNS – the Domain Name System. Assume that a mail server somewhere on the other end of the internet wants to send an email to john@example.org. The server must find out the name (and IP address) of the mail server responsible for the example.org domain. This is how that works:

    Big picture of how MX records work

    The remote server queries its DNS server for the MX (Mail eXchanger) record of the “example.org” domain. (If no MX record was found it tries again and asks for A (address) records. That’s a fallback solution.) Let’s run a query for a real domain to get an idea. Let’s ask which servers receive email for …@gmail.com.

    $> host -t MX gmail.com
    gmail.com mail is handled by 10 alt1.gmail-smtp-in.l.google.com.
    gmail.com mail is handled by 20 alt2.gmail-smtp-in.l.google.com.
    gmail.com mail is handled by 30 alt3.gmail-smtp-in.l.google.com.
    gmail.com mail is handled by 40 alt4.gmail-smtp-in.l.google.com.
    gmail.com mail is handled by 5 gmail-smtp-in.l.google.com.

    So as a result we get 5 different MX records. Each of them consists of a numeric priority and the host name of the mail server. A mail server would pick the entry with the highest priority (=the lowest number) and establish an SMTP connection to that host. In this example that would be the priority 5 server gmail-smtp-in.l.google.com. If that server could not be reached then the next best server with priority 10 would be used and so on. So all you have to do in your own DNS zone is add an MX entry pointing to your mail server. If you want to run a backup mail server (which is outside of the scope of this tutorial) then you can add a second entry with a an equal or lower priority.

    A mistake some people make is using an IP address in MX records. That is not allowed. An MX record always points to a host name. You will have to add an A record for your MX record to point to the actual IP address of your mail server.

    - - + +

    It is advised to explicitly name mail servers for your domain in the MX records. If you can’t do that for whatever reason then the remote mail server will just do an A record lookup for the IP address and then send email there. If you just run one server for both the web service and the email service then you can do that. But if the web server for your domain is located at another IP address than your mail server then this won’t work.

    - +

    Many mail servers check that your forward (name to IP) and reverse (IP to name) lead to the same results. This is how it should look:

    example.org —(MX)–> mx.example.org
    mx.example.org —(A)–> 1.2.3.4
    1.2.3.4 —(PTR)–> mx.example.org

    (1.2.3.4 in a PTR record is actually 4.3.2.1.in-addr.arpa.)

    - +

    Fortunately many ISPs finally start to offer IPv6 in their networks. So if you rent a virtual server from a provider then check if you also got an IPv6 address assigned. In that case you also need to have proper DNS records for that as well. Like:

    example.org —(MX)–> mx.example.org
    mx.example.org —(AAAA)–> fdeb:37d7:ef39:e063::1
    fdeb:37d7:ef39:e063 —(PTR)–> mx.example.org

    -

    Chances are that you haven’t dealt with IPv6 yet. Give it a try. IP addresses may look different at first but you will never again have to deal with odd subnet sizes or NAT. Thank me later. 🙂

    \ No newline at end of file +

    Chances are that you haven’t dealt with IPv6 yet. Give it a try. IP addresses may look different at first but you will never again have to deal with odd subnet sizes or NAT. Thank me later. 🙂

    \ No newline at end of file diff --git a/ispmail-bookworm/setting-up-dovecot/index.html b/ispmail-bookworm/setting-up-dovecot/index.html index 56c2e85..8511bb3 100644 --- a/ispmail-bookworm/setting-up-dovecot/index.html +++ b/ispmail-bookworm/setting-up-dovecot/index.html @@ -1,4 +1,4 @@ - Setting up Dovecot | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Setting up Dovecot

    This chapter of our journey leads us to Dovecot – the software that…

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Setting up Dovecot

    This chapter of our journey leads us to Dovecot – the software that…

    • gets emails destined to your users from Postfix and saves them to disk
    • executes user-based sieve filter rules (can be used to e.g. move emails to different folders based on certain @@ -95,8 +96,8 @@ done by this magical line at the end of the /etc/dovecot/doveco first and “90-sieve-extprograms.conf” is loaded last. The big advantage is that you can edit or replace parts of the configuration without having to overwrite the entire configuration. The main /etc/dovecot/dovecot.conf file does not require any changes. Those other files in conf.d/ however do.

      - - + +

      The most common authentication mechanism is called PLAIN. However if you have Outl**k users then you may need to add the LOGIN mechanism, too.:

      @@ -108,7 +109,7 @@ TLS-encrypted connections.

      system users (those from the /etc/passwd). But we want to use the MariaDB database backend so go ahead and change this block to:

      #!include auth-system.conf.ext
      !include auth-sql.conf.ext
      #!include auth-ldap.conf.ext
      #!include auth-passwdfile.conf.ext
      #!include auth-checkpassword.conf.ext
      #!include auth-static.conf.ext
      - +

      Change the mail_location setting to:

      mail_location = maildir:~/Maildir

      This is the directory where Dovecot will look for the emails of a specific user. The tilde character (~) means the @@ -123,22 +124,22 @@ even share folders between users. Or use a public folder that can be accessed by generally to be preferred.

      Also edit the “mailplugins” line to enable the _quota plugin we will configure later and turn it into:

      mail_plugins = quota
      - +

      This configuration file deals with typical service ports like IMAP or POP3.

      -

      So most settings are sane here and do not have to be changed. However one change is required in the “service auth” section because we want Postfix to allow Dovecot as an authentication service. Make it look like this:

      # Postfix smtp-auth
      unix_listener /var/spool/postfix/private/auth {
      mode = 0660
      user = postfix
      group = postfix
      }

      Well, Postfix runs in a chroot environment located at /var/spool/postfix. It can’t access anything outside of that directory. So to allow communication with Postfix we tell Dovecot to place a communication socket into that chroot.

      - +

      Earlier in this guide you created both a key and a certificate file to encrypt the communication with POP3, IMAPs and HTTPS between the users and your mail server. You need to tell Dovecot where to find these files:

      ssl\_cert = \</etc/letsencrypt/live/webmail.example.org/fullchain.pem
      ssl\_key = \</etc/letsencrypt/live/webmail.example.org/privkey.pem
      @@ -146,7 +147,7 @@ HTTPS between the users and your mail server. You need to tell Dovecot where to
      ssl = required

      See the Dovecot documentation on SSL encryption for more information.

      Next let’s take a look at how Dovecot knows about users and their passwords:

      - +

      Dovecot reads the auth-sql.conf.ext which defines how to find user information in your database. Open the file. There are two sections:

        @@ -159,7 +160,7 @@ group ID, home directory and quota. And another for the passdb that get
        userdb {
        driver = sql
        args = /etc/dovecot/dovecot-sql.conf.ext
        }

        As you can see Dovecot uses an SQL database lookup to get that information. And it refers to the dovecot-sql.conf.ext file for more information. Let’s see…

        - +

        (This configuration file is one level up and not in “conf.d”.)

        You will find this file well documented although all configuration directives are commented out. Add these lines at the bottom of the file:

        @@ -168,8 +169,8 @@ bottom of the file:

    user_query = SELECT email as user, \
    concat('*:bytes=', quota) AS quota_rule, \
    '/var/vmail/%d/%n' AS home, \
    5000 AS uid, 5000 AS gid \
    FROM virtual_users WHERE email='%u'
    password_query = SELECT password FROM virtual_users WHERE email='%u'
    iterate_query = SELECT email AS user FROM virtual_users
    - +

    What these lines mean:

    • driver: the kind of database. MariaDB is the same kind as MySQL.
    • @@ -197,17 +198,11 @@ This leads to the directory where all emails and various control files for this Those are the user ID and group ID of _vmail user – 5000 for both. Dovecot uses it to set the permissions of files it creates. As all users share the same system user “vmail” this is just a static number.s
    - +

    Make sure that only root can access the SQL configuration file so nobody else is reading your database access passwords:

    chown root:root /etc/dovecot/dovecot-sql.conf.ext
    chmod go= /etc/dovecot/dovecot-sql.conf.ext

    Restart Dovecot from the shell:

    systemctl restart dovecot

    Look at your /var/log/mail.log logfile. You should see:

    ... Dovecot v2.3.13 (f79e8e7e4) starting up for imap, lmtp, sieve, pop3 (core dumps disabled)
    -

    If you get any error messages please double-check your configuration files.

    \ No newline at end of file +

    If you get any error messages please double-check your configuration files.

    \ No newline at end of file diff --git a/ispmail-bookworm/success-stories/index.html b/ispmail-bookworm/success-stories/index.html index 9be894c..fa3a137 100644 --- a/ispmail-bookworm/success-stories/index.html +++ b/ispmail-bookworm/success-stories/index.html @@ -1,4 +1,4 @@ - Success stories | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Success stories

    I would appreciate if you leave a comment here telling others if your mail server is running. Perhaps even a word about the purpose of the mail server and the number of users you have. That allows others to see that their time is well-spent and indeed leads to a working mail server. Thanks for your feedback.

    \ No newline at end of file +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Success stories

    I would appreciate if you leave a comment here telling others if your mail server is running. Perhaps even a word about the purpose of the mail server and the number of users you have. That allows others to see that their time is well-spent and indeed leads to a working mail server. Thanks for your feedback.

    \ No newline at end of file diff --git a/ispmail-bookworm/testing-email-delivery/index.html b/ispmail-bookworm/testing-email-delivery/index.html index 4c2c59d..01801e2 100644 --- a/ispmail-bookworm/testing-email-delivery/index.html +++ b/ispmail-bookworm/testing-email-delivery/index.html @@ -1,4 +1,4 @@ - Testing email delivery | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Testing email delivery

    So far you have spent considerable time with theory and configuration. Are you worried whether all you did actually leads to a working mail server? Before we do the final steps let’s take a break and verify that everything you did so far works as expected.

    -

    At this point the /var/vmail directory should be empty or maybe contain an “example.org” directory if you played with the john@example.org account previously. You can get a list of all files and directories within by running:

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Testing email delivery

    So far you have spent considerable time with theory and configuration. Are you worried whether all you did actually leads to a working mail server? Before we do the final steps let’s take a break and verify that everything you did so far works as expected.

    +

    At this point the /var/vmail directory should be empty or maybe contain an “example.org” directory if you played with the john@example.org account previously. You can get a list of all files and directories within by running:

    find /var/vmail

    Although there are not actually any emails on the server yet, you may still get something along the lines of:

    /var/vmail
    /var/vmail/example.org
    /var/vmail/example.org/john
    /var/vmail/example.org/john/.dovecot.sieve
    /var/vmail/example.org/john/sieve
    /var/vmail/example.org/john/sieve/roundcube.sieve
    /var/vmail/example.org/john/sieve/tmp
    /var/vmail/example.org/john/Maildir
    /var/vmail/example.org/john/Maildir/subscriptions
    /var/vmail/example.org/john/Maildir/maildirfolder
    /var/vmail/example.org/john/Maildir/new
    /var/vmail/example.org/john/Maildir/cur
    /var/vmail/example.org/john/Maildir/.INBOX.test
    /var/vmail/example.org/john/Maildir/.INBOX.test/maildirfolder
    /var/vmail/example.org/john/Maildir/.INBOX.test/new
    /var/vmail/example.org/john/Maildir/.INBOX.test/dovecot.index.log
    /var/vmail/example.org/john/Maildir/.INBOX.test/cur
    /var/vmail/example.org/john/Maildir/.INBOX.test/dovecot-uidlist
    /var/vmail/example.org/john/Maildir/.INBOX.test/tmp
    /var/vmail/example.org/john/Maildir/dovecot-uidvalidity.5ddc842b
    /var/vmail/example.org/john/Maildir/tmp
    @@ -91,13 +92,13 @@
  • …/Maildir/.INBOX.reddit/new/… – the “reddit” mail folder below the inbox
  • …/Maildir/.INBOX.servers.inga/new/… – the “servers”/”inga” mail folder below the inbox
  • - +

    To check for obvious configuration error in Postfix please run:

    postfix check

    Did you get the error…
    error: open database /etc/aliases.db: No such file or directory“? Don’t worry. Just run the “newaliases” command to create a new machine-readable file from what aliases were defined in the /etc/aliases.

    Very likely you will get this error: “postfix/postfix-script: warning: symlink leaves directory: /etc/postfix/./makedefs.out“. That is a harmless bug of the Debian package that can safely be ignored.

    - +

    It is time to send a new email into the system. Open a new terminal window and run

    tail -f /var/log/mail.log

    to see what the mail server is doing. Now let’s send an email to John. My favorite tool for mail tests is swaks that you installed earlier. In a second terminal run:

    @@ -111,7 +112,7 @@ Postfix assigns a unique identifier (8BA46A0A3A) to this connection so that you
  • postfix/cleanup[29233]: 8BA46A0A3A: *message-id=20191126153053.029243@webmail.example.org
    swaks created a unique message id to the email which helps you identify specific mails in the log file.
  • postfix/qmgr[13667]: 8BA46A0A3A: from=root@webmail.example.org, size=485, nrcpt=1 (queue active)
    -The sender was root@webmail.example.org. This is logged after swaks sent the “MAIL FROM” line during the SMTP dialog.
  • +The sender was root@webmail.example.org. This is logged after swaks sent the “MAIL FROM” line during the SMTP dialog.
  • postfix/smtpd[29225]: disconnect from localhost.localdomain[127.0.0.1] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
    The SMTP communication ends. Postfix has now received and queued the email.
  • dovecot: lmtp(29237): Connect from local
    @@ -129,7 +130,7 @@ This is the one of the most interesting lines in your mail log. It tells you wha

    Dovecot has now created a directory structure for John and created a new file:

    /var/vmail/
    […]
    /var/vmail/example.org/john/Maildir/new/1515485447.M404984P2636.mail,S=510,W=522
    […]

    The file will have a different name on your system – that’s okay. It is the only file in the “new” folder.

    - +

    The file just contains the email:

    Return-Path: <root@mail.example.org>
    Delivered-To: john@example.org
    Received: from mail.example.org
    by mail.example.org (Dovecot) with LMTP id iHHHEwd5VFpMCgAA3BOsLQ
    for <john@example.org>; Tue, 09 Jan 2018 09:10:47 +0100
    Received: by mail.example.org (Postfix, from userid 0)
    id 30B4B41A98; Tue, 9 Jan 2018 09:10:47 +0100 (CET)
    Message-Id: <20180109081047.30B4B41A98@mail.example.org>
    Date: Tue, 9 Jan 2018 09:10:47 +0100 (CET)
    From: root@mail.example.org (root)
    Di 9. Jan 09:10:47 CET 2018
    @@ -149,20 +150,14 @@ This is the one of the most interesting lines in your mail log. It tells you wha
  • Dovecot runs through the user’s Sieve rules
  • Dovecot writes the email file to disk
  • - +

    Now that the email has been delivered you can talk to Dovecot using the IMAP protocol to retrieve your email again. Are you still logged in via the Roundcube webmail interface? Then just reload and you will see the email:

    Roundcube showing an email in the inbox

    -

    Access the email through IMAP (desktop client)

    Section titled “Access the email through IMAP (desktop client)”
    +

    Access the email through IMAP (desktop client)

    Section titled “Access the email through IMAP (desktop client)”

    Your users are not likely to use “mutt” to read their email – unless they are immortal console nerds. So of course you can use a graphical mail client to access John’s emails. If you use Thunderbird, Evolution, Apple Mail or some other IMAP client then feel free to configure a new IMAP account and connect to the server. Remember that the user name and email address are both john@example.org and the password is “summersun”.

    - +

    Aside from talking IMAP Dovecot also knows how to speak POP3. But let’s face it – POP3 is dead. I do not even offer it to my users any more. But as your users may ask let’s quickly review the differences of the two protocols:

    • POP3 (Post Office Protocol) is a simple protocol that lets you fetch email from a single mailbox. You can’t create multiple folders on the server to organize your mails. It saves space on the mail server because the email usually gets moved to the user’s hard disk on their computer. This variant is pretty antiquated.
    • IMAP (Internet Messaging Application Protocol) is predominantly focused upon leaving your mail on the server. The inbox is where your incoming emails are stored but users can also maintain folders and move emails to them. But users can move emails to different sub-folders. IMAP is useful when you want to access your email from different locations without losing mail because you fetched it from another location. The drawback is that lazy users leave their mail on the server thus filling up your server’s hard disk – for which quotas are a good solution.
    • -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/ispmail-bookworm/testing-imap/index.html b/ispmail-bookworm/testing-imap/index.html index 6d0c5c6..27c9ce0 100644 --- a/ispmail-bookworm/testing-imap/index.html +++ b/ispmail-bookworm/testing-imap/index.html @@ -1,4 +1,4 @@ - Testing IMAP | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Testing IMAP

    You have already completed the configuration of Dovecot. So fetching emails via IMAP should already work. Let’s give it +

    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Testing IMAP

    You have already completed the configuration of Dovecot. So fetching emails via IMAP should already work. Let’s give it a try using a simple-looking but powerful IMAP client: mutt.

    mutt -f imaps://john@example.org@webmail.example.org

    The connection URL may look a little confusing because of the two “@” characters. Usually mutt expects the format @@ -87,10 +88,4 @@ guide.

    warnings:

    The mutt mail client showing quota warning emails

    Very good – IMAP connections and authentication works. That’s all we wanted to test. Exit mutt by pressing “q”.

    -

    Congratulations. At this point your server can already receive emails.

    \ No newline at end of file +

    Congratulations. At this point your server can already receive emails.

    \ No newline at end of file diff --git a/ispmail-bookworm/types-of-email-domains/index.html b/ispmail-bookworm/types-of-email-domains/index.html index 5219a98..a3bd392 100644 --- a/ispmail-bookworm/types-of-email-domains/index.html +++ b/ispmail-bookworm/types-of-email-domains/index.html @@ -1,4 +1,4 @@ - Types of email domains | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Types of email domains

    This is the pretty boring but at the same time very important part of the tutorial. Do not skip it. Most problems that +

    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Types of email domains

    This is the pretty boring but at the same time very important part of the tutorial. Do not skip it. Most problems that readers have with their mail servers are caused by a misunderstanding of the different types of email domains. There is nothing you need to do on your server right now. Just lean back and relax and make sure that you read and fully understand this page. It will spare you frustration.

    @@ -91,7 +92,7 @@ server and sends email out. Of course you will only want to receive emails for y
  • Relay domains
  • Let us look at the first two in detail. The third one – relay domains – is not needed in this context.

    - +

    Once upon a time users logged into servers using Telnet or SSH to read their email in basic text-based mail clients. Their email addresses were often just a combination of their login name and the server name. Something like @@ -112,13 +113,13 @@ and john@example.net. So you cannot use different domain

    To tell Postfix which domain you consider local you list them in the “mydestination” configuration setting in your main.cf configuration file. Example:

    mydestination = example.org, example.com, example.net
    - +

    It is common however to use the server’s hostname as a local domain. If your server is called “scully.example.com” you could set “mydestination = scully.example.com”. Or you just set it to “mydestination = localhost” if you rather want to use “scully.example.com” as a virtual domain. Some parts of your system may send emails to root@localhost so this is a sane setting.

    - +

    This is the class of domains that will be our workhorse. Postfix allows us to add an unlimited number of domains that can receive emails. That’s what an ISP does and so will we.

    Where do we put the list of domains? Postfix is pretty flexible. We could put it in a huge text file. We might use LDAP @@ -138,20 +139,51 @@ MariaDB database.

    Postfix only understands mappings. They are much easier than they sound. A mapping is just a table that has a left and a right column. Postfix always looks for stuff in the left column (key) to find more information in the right column (value). Like this:

    -

    | Virtual mailbox (key) | Virtual mailbox location on disk (value) | -| --------------------- | ---------------------------------------- | -| john@example.org | /var/vmail/example.org/john/Maildir | -| jack@example.org | /var/vmail/example.org/jack/Maildir | -| jack@example.com | /var/vmail/example.com/jack/Maildir |

    + + + + + + + + + + + + + + + + + + + + + +
    Virtual mailbox (key)Virtual mailbox location on disk (value)
    john@example.org/var/vmail/example.org/john/Maildir
    jack@example.org/var/vmail/example.org/jack/Maildir
    jack@example.com/var/vmail/example.com/jack/Maildir

    So the left column lists the valid email addresses. And the right column is apparently some path on disk. Right, that’s all the magic. If an email for jack@example.org is received then Postfix will find the entry in the left column and can figure out where Jack’s mails are stored on disk.

    Before checking if a specific email address is valid Postfix first checks if it is responsible for the domain at all. That’s done by this mapping:

    -

    | Virtualdomain (key) | Whateve (value) | -| ------------------- | --------------- | -| example.org | Kittens | -| example.com | Puppies |

    + + + + + + + + + + + + + + + + + +
    Virtualdomain (key)Whateve (value)
    example.orgKittens
    example.comPuppies

    So there are two domains in the left column. But what is that in the right column? Kittens? Really? Well, the truth is: it doesn’t matter. It can be anything. So why is that column there at all? The reason is that mappings always have two columns. Postfix wants a list of domains but it has no concepts for one-dimensional lists. So it uses this format and @@ -166,15 +198,52 @@ one or more other addresses. Possible uses:

  • redirect emails meant for a coworker who has left the organisation
  • As usual, Postfix expects a mapping for aliases. Time for another example:

    -

    | Step | Virtual email address (left) | Redirect to (right) | -| :--- | :--------------------------- | :---------------------------------------- | -| 1 | postmaster@example.org | jack@example.com | -| 2 | abuse@example.org | jack@example.com | -| 3 | jack@example.com | jack@example.com,jacky@workaround.org | -| 4 | sophie@example.net | hr@example.net | -| 5 | hr@example.net | rick@example.net | -| | hr@example.net | tina@example.net | -| 6 | @example.org | jack@example.com (DANGEROUS) |

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    StepVirtual email address (left)Redirect to (right)
    1postmaster@example.orgjack@example.com
    2abuse@example.orgjack@example.com
    3jack@example.comjack@example.com,jacky@workaround.org
    4sophie@example.nethr@example.net
    5hr@example.netrick@example.net
    hr@example.nettina@example.net
    6@example.orgjack@example.com (DANGEROUS)

    Quite a lot happens here. How does Postfix interpret this table?

    1. Redirect emails for postmaster@example.org to jack@example.com
    2. @@ -201,10 +270,10 @@ them first.
    3. If there was no such row then check again if there is an @domain row.
    4. Still nothing found? Then reject the email.
    - +

    Did you get the idea of mappings? Two columns in a table? Keys and values? Good. Now how do those mappings work when we want to put the information into an SQL database?

    Basically a relational database works in rows and columns, too. So we can take the format of the tables shown above and @@ -249,10 +318,4 @@ for the email_address john@example.org:

    Instead we will make Postfix hand over the email to Dovecot which stores the email. Dovecot has a couple of nice extra features (like server-side scripts) that we want to use. So Postfix just needs to know whether an email address is valid or not. We just return “1” because actually the right column is not considered anyway. Postfix just needs to know -whether there is a database row or not.

    \ No newline at end of file +whether there is a database row or not.

    \ No newline at end of file diff --git a/ispmail-bookworm/webmail-using-roundcube/index.html b/ispmail-bookworm/webmail-using-roundcube/index.html index eccbe9c..18ac38f 100644 --- a/ispmail-bookworm/webmail-using-roundcube/index.html +++ b/ispmail-bookworm/webmail-using-roundcube/index.html @@ -1,4 +1,4 @@ - Webmail using Roundcube | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    Webmail using Roundcube

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    Webmail using Roundcube

    Power users may still want to use a mail client like Thunderbird. But most users nowadays seem to prefer reading their emails in the web browser. Let us install a web application for that purpose: Roundcube. Roundcube is the software that was also used in the previous versions of this guide. So if your users are used to it… just stay with it.

    - +

    Start by installing the software packages:

    apt install -y roundcube roundcube-plugins \
    roundcube-plugins-extra roundcube-mysql

    Roundcube stores user settings in the database. So you will get asked to set up database access:

    @@ -83,7 +84,7 @@

    Choose Yes.

    When asked for a password just press ENTER.

    Debconf asking for the database password

    - +

    Do you remember that earlier in this guide I asked you how want to name your mail server? Whether you want to use one common name like “webmail.example.org” for all your domains? Or if you prefer different host names for each domain like “webmail.domain1.com” and “webmail.domain2.com”? If you want to use just more then you will have to create one virtual host configuration per domain. The following instructions will just deal with one common host name.

    To get Apache to serve the Roundcube application you need to edit the /etc/apache2/sites-available/webmail.example.org-https.conf file. I suggest you change the DocumentRoot line to:

    DocumentRoot /var/lib/roundcube/public_html
    @@ -95,14 +96,14 @@

    Check that Apache is running properly:

    systemctl status apache2

    In case of a problem run “apache2ctl configtest” to find the cause.

    - +

    The main configuration file of Roundcube is located at /etc/roundcube/config.inc.php. Feel free to customize the file. Fortunately nowadays the basic settings are already as we need them. However these two settings need to be changed by you:

    $config['imap_host'] = "tls://webmail.example.org:143";
    $config['smtp_host'] = 'tls://webmail.example.org:587';

    So now when your users enter https://webmail.example.org/ in their browser they should get the Roundcube login form:

    Roundcube login dialog

    -

    Keep in mind that we are using the email address as the account name of the user. So when logging in please enter the email address as the user name. E.g. ‘john@example.org’ and password ‘summersun’.

    - - +

    Keep in mind that we are using the email address as the account name of the user. So when logging in please enter the email address as the user name. E.g. ‘john@example.org’ and password ‘summersun’.

    + +

    Roundcube comes with various plugins that you can offer your users. I recommend at least these two:

    • password: Let the user change their access password.
    • @@ -110,10 +111,10 @@

    Again edit the /etc/roundcube/config.inc.php file and look for the plugins configuration. To enable the recommended plugins change it to:

    $config['plugins'] = array(
    'managesieve',
    'password',
    );
    - +

    Plugins are configured through files located in the /etc/roundcube/plugins directory. Let’s begin with the password plugin. Edit the /etc/roundcube/plugins/password/config.inc.php file.

    Oops, that file looks pretty empty. But it refers us to an example file at /usr/share/roundcube/plugins/password/config.inc.php.dist. There are many different methods to let users change their passwords. As we store that information in the SQL database, that is the part we need to set up.

    - +

    Remove the empty definition line of $config from your config.inc.php file. Let’s go through the required settings one by one:

    • $config['password_driver'] = 'sql';
      @@ -134,7 +135,7 @@ The SQL query that is run to write the new password hash into the database. %P i

      Make sure that this config file is not world-readable:

      chown root:www-data /etc/roundcube/plugins/password/config.inc.php
      chmod u=rw,g=r,o= /etc/roundcube/plugins/password/config.inc.php

      Try it. Log into Roundcube as john@example.org with password ‘summersun’. Go to the Settings. Choose Password. Enter a new password twice. You should get a success message at the bottom right. Now logout and login with the new password. Does it work? Great.

      - +

      Sieve is a simple programming language to be used for server-side rules. Dovecot executes these rules every time a new email comes in. There are global rules that are executed for every email. And of course every user/mailbox can have its own rules. To manage sieve rules Dovecot offers the managesieve interface that you enabled earlier. So we just need to tell Roundcube how to access it.

      The configuration file for Roundcube’s managesieve plugin is found at /etc/roundcube/plugins/managesieve/config.inc.php. Edit the file and again remove the empty or comment the $config line. You can again find all possible configuration options in the /usr/share/roundcube/plugins/managesieve/config.inc.php.dist file.

      This time just one setting is required to tell Roundcube which server to talk to:

      @@ -144,10 +145,4 @@ The SQL query that is run to write the new password hash into the database. %P i

      You do not need to learn this syntax though. Roundcube’s sieve rule editor is way more user-friendly.

      Try adding a sieve rule for john@example.org in Roundcube. That feature is located in Settings/Filters. You will find the machine-readable sieve code at /var/vmail/example.org/john/sieve/roundcube.sieve.

      The rule editor looks like this:

      -

      Roundcube's sieve rule editor

    \ No newline at end of file +

    Roundcube's sieve rule editor

    \ No newline at end of file diff --git a/ispmail-bookworm/whats-new/index.html b/ispmail-bookworm/whats-new/index.html index 37d7461..bdfc99c 100644 --- a/ispmail-bookworm/whats-new/index.html +++ b/ispmail-bookworm/whats-new/index.html @@ -1,4 +1,4 @@ - What's new | ISPmail Guide - Skip to content
    Skip to content
    -⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie. -

    What's new

    I try to keep as many parts of the setup unchanged. Many of us are happy with their mail servers and want to change as little as possible. Email is a boring matter anyway and we do our jobs best if our users don’t even realize that we are there.

    +
    ⚠️ This page is part of the ISPmail guide for Debian Bookworm. Please use the newer guide for Debian Trixie.

    What's new

    I try to keep as many parts of the setup unchanged. Many of us are happy with their mail servers and want to change as little as possible. Email is a boring matter anyway and we do our jobs best if our users don’t even realize that we are there.

    A few things though that are new in this version of the ISPmail guide:

    • Newer software versions – it is a new Debian release after all. There are no breaking changes. Just business as usual. If you want to check the changelogs here are the version changes: @@ -93,10 +94,4 @@
    • Fixed links. The Dovecot wiki has moved around quote a lot of pages and I didn’t notice earlier because it did not lead to a 404 or a redirect.
    • Dovecot now uses the “count” backend to compute a user’s quota. Previous guides still used “maildir”.
    • Two chapters are currently not published: the part about Thunderbird auto-configuration because there seem to be problems with the newest versions of Thunderbird. And the part about firewalling and fail2ban because there seems to be a bug with firewalld and fail2ban. These pages deal with optional features and are not a showstopper.
    • -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/ispmail-trixie/anti-spoofing-dkim-spf/index.html b/ispmail-trixie/anti-spoofing-dkim-spf/index.html index 97dab7e..af37398 100644 --- a/ispmail-trixie/anti-spoofing-dkim-spf/index.html +++ b/ispmail-trixie/anti-spoofing-dkim-spf/index.html @@ -1,4 +1,4 @@ - Prevent spoofing using DKIM and SPF | ISPmail Guide - Skip to content
    Skip to content

    Prevent spoofing using DKIM and SPF

    +

    Prevent spoofing using DKIM and SPF

    Email sender spoofing means pretending to be in control of someone else’s email address. This is a common problem with phishing. Often scammers send emails with a sender address of something@paypal.com and hope that the recipient falls for it and trusts them. SMTP does not care which sender address @@ -83,7 +86,7 @@ And bad guys obviously don’t care.

  • DKIM (DomainKeys Identified Mail)
  • DMARC (Domain-based Message Authentication, Reporting and Conformance)
  • - +

    Each email that you receive actually contains two different sender addresses. Understanding the difference is important when it comes to DKIM and DMARC.

    The envelope sender is used by SMTP for delivery and bounce messages. It is not usually shown to the user. It @@ -95,7 +98,7 @@ will be sent back to as undeliverable.

    The visible sender (this is not an official term) is what the recipient sees in their email software. In an actual email this is the From: John <john@example.org> header. If you think of a written letter, then this is the sender as found in the actual letter within the envelope.

    - +

    SPF defines which servers (IP addresses) are allowed to send emails on behalf of a specific domain.

    SPF is essentially a TXT record in your DNS zone that provides machine-readable information for other mail servers. When an email is received, the receiving server can (and usually does) check for an SPF record for your domain to determine @@ -122,7 +125,7 @@ address that is not authorized.

    Of course SPF not only helps other mail servers. Rspamd on your mail server will check for other domains’ SPF records, too.

    - +

    DKIM can prove that an email has not been tampered with on its journey from the sender to the recipient.

    DKIM uses public key cryptography to automatically add a cryptographic signature into the header of each outgoing email. It also uses a TXT record in your domain’s DNS zone to publish the public key.

    @@ -144,7 +147,7 @@ access to the DNS zone, this proves the authenticity.

    Obviously your mail server will both receive and send emails. So if you want to use DKIM (which I recommend) then you need to take care of both parts. But luckily that’s not too hard. The rspamd software on your mail server can take care of both signing outgoing emails and validating incoming signatures.

    - +

    Let’s take a look at such a signature in real life. I have just sent an email from GMail to my personal email account on my own mail server. Google uses DKIM signing so the email got this additional header from Google’s mail servers:

    DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
    d=gmail.com; s=20230601; t=1760017775; x=1760622575; darn=workaround.org;
    h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
    :date:message-id:reply-to;
    bh=HmztzLfHhgZON2788h5cwCX7liAbwFqnFGISA15M18Q=;
    b=OKu5D/Ejp7tGy3uxydb7qDccK03OxrdD9vxEKiAXk/y9T5WViCqpg3HrdeB5Izkzdq
    MXvQ+SgGVzJmy9ZgV1A930RRqUIoR2wmlr3GDXPDyRfagJMRV/3v9J71lfSduOFE8q7t
    AIw4oWBm91QAnC5gW+XS7h4lNmRd4pVILkoe09qkLz+7WrU5Xp/WGIKHRK0ST5+EAR25…
    @@ -158,11 +161,11 @@ my own mail server. Google uses DKIM signing so the email got this additional he

    That is the public key that I can use to verify the signature. An automated check can be done using the opendkim-testmsg tool as described later. I can run it and paste the entire email including headers and body into it. If it doesn’t complain with an error message then the signature is correct.

    - +

    Sounds good? Then let’s implement that for your email domains, too.

    If you have skipped the previous section on detecting and filtering out spam emails, then just run these two commands to tell Postfix to send all emails through rspamd:

    @@ -183,7 +186,7 @@ you stay flexible and use a custom selector.

    -----BEGIN PRIVATE KEY-----
    MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALhyevPohneucRGQ
    LXgqtajXhDgOr9kvoX5igRuChC+j7Fxvwh4SuUphMKLynabAvcUUF951BgVB4PXU
    Qoxae7cEkjWATNSiv+Eq0w+AKErdC+BFNDSTk74GZDBBhlroxyudk7QMCZ2nhiOA
    /rY1LypaDQzBiRSV8zjcHC8E2Z5lAgMBAAECgYEAodSn9isVGBrwz8Udb+qhOoPl
    WT3hogA9hGMu/hEUo6wCrNPNkI9DDXSatM2D7xP7LNhFXQR2BNTZaTcUMIsPMXZ9
    157tBVUAcnoRES6BbPyKC7k4dgSXxh687jhSgQWy+OZIU8IbJcoDXXsGjx+6Sb4W
    Ilo9NMCF/QqxRFIne70CQQDhNC4YasFOdJyWACxIbFBt+/HhO5+UboUIrZU5nde7
    N5HEfnP3Ow2C6vdNnGWiv4YpobN7zjz+lFj19rlWvmHDAkEA0auDQVfIiLEUrKvW
    TdhbscpEoYHP+AlM48C+QltKVk+eAnJJHNbBYMVmCmXafgMzFh8QhgG5WXKSlvtz
    G/+UtwJAS4QL0PQ7TeucdlAoiUCI19icC0LLCCLnSTmryF49cPH5V0Jv8H9E0Jmp
    w8Sl8CT5AAzQ+rr1iQiFrDTHgWblsQJBAJGEtSMrts1QAaZZ2PHMQM+jL4DcZKek
    ZM4JXsMVMwG2XlcaVK4EStBMEKcUy9D7jYBD7SbkmWyAPUc2m0yKVP8CQB1zxjA0
    Z700vkWGKhwY4DznuDGjpU9rvQw7pyCJ3TYDT3ACQePmGmVeCtyETJ5XvFV2jSqf
    o9J+GsdbljSnnSw=
    -----END PRIVATE KEY-----

    …and the public key – in the format of a DNS record:

    2025100901._domainkey IN TXT ( "v=DKIM1; k=rsa;"
    "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4cnrz6IZ3rnERkC14KrWo14Q4Dq/ZL6F+YoEbgoQvo+xcb8IeErlKYTCi8p2mwL3FFBfedQYFQeD11EKMWnu3BJI1gEzUor/hKtMPgChK3QvgRTQ0k5O+BmQwQYZa6McrnZO0DAmdp4YjgP62NS8qWg0MwYkUlfM43BwvBNmeZQIDAQAB" ) ;
    - +

    Before you start signing your emails you must make sure that the public key is properly present in your DNS zone for the domain you are sending emails from. Otherwise the recipient will be unable to verify the signature and may incorrectly assume that the email was spoofed.

    @@ -201,7 +204,7 @@ verify that:

    Run this on your server
    dig +short 2025100901._domainkey.example.org txt

    If you get the TXT entry like as follows then you are ready to enable DKIM signing in rspamd for that domain:

    "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4cnrz6IZ3rnERkC14KrWo14Q4Dq/ZL6F+YoEbgoQvo+xcb8IeErlKYTCi8p2mwL3FFBfedQYFQeD11EKMWnu3BJI1gEzUor/hKtMPgChK3QvgRTQ0k5O+BmQwQYZa6McrnZO0DAmdp4YjgP62NS8qWg0MwYkUlfM43BwvBNmeZQIDAQAB"
    - +

    Take the private key that was created earlier (the multi-line string including “…BEGIN PRIVATE KEY…” and “…END PRIVATE KEY…”) and put it into a file at the location where rspamd will look for it:

    /var/lib/rspamd/dkim/example.org.2025100901.key
    @@ -211,7 +214,7 @@ get an error in your rspamd.log file like “lua_dkim_sign_handler: cannot l

    Make sure that only the _rspamd user can read it:

    Run this on your server
    chown _rspamd /var/lib/rspamd/dkim/*
    chmod u=r,go= /var/lib/rspamd/dkim/*

    rspamd will automatically pick up the files and does not need to be restarted when you add new keys for further domains.

    - +

    As explained above it is advised to use DKIM maps. It’s nothing fancy. Just a simple file defining which selector you want to use for signing for a certain domain. rspamd will assume that your selector is always dkim unless specified otherwise in a map. Always use a specific selector so that you can later add new keys to DNS without getting @@ -225,7 +228,7 @@ that file for your own domain and selector:

    Run this on your server
    # Add the mapping of domain/selector (use your own domain here)
    echo example.org 2025100901 > /etc/rspamd/dkim_selectors.map

    That’s all. rspamd now knows that whenever it sees an outgoing email from anyone@example.org it will get the DKIM private key from /var/lib/rspamd/dkim/example.org.2025100901.key and use it to sign the email.

    - +

    You could either just send an email from your mail client (or Roundcube) through your mail server to another email address. Or you could use swaks. Use your own addresses and password of course:

    Run this on your server
    swaks --server localhost:587 \
    --from some.address@example.org \
    --to some.external.address@example.net \
    -tls \
    --auth-user some.address@example.org \
    --auth-password your_secreet_password
    @@ -244,15 +247,15 @@ should look like:

    service.example.org for your domain. That’s totally fine. But rspamd will strip it down to example.org and use the DKIM key for example.org. If that’s not what you want, then add this line to /etc/rspamd/local.d/dkim_signing.conf:

    use_esld = false;

    eSLD is a rarely used acronym that stands for effective second-level domain. In layman’s terms: the part of a domain that only consists of the rightmost two parts. For mails.hawkeye.example.com the eSLD is example.com.

    - - + +

    Let’s take an example header of a spoofed mail:

    Return-Path: <noreply@evil-spammer.com>
    DKIM-Signature: d=evil-spammer.com
    From: <service@paypal.com>

    In this example a bad guy just sent you this email. The SPF check for the evil-spammer.com domain was successful. (You can’t see that from these headers though.) He even added a DKIM signature from his domain. So everything looks right. But in your mail program you see service@paypal.com. So nobody checks that the envelop sender and the visible sender “align”.

    - +

    That’s what DMARC is supposed to solve. It works like this:

    • (A) SPF @@ -276,7 +279,7 @@ sender “align”.

    You can find more examples about the alignment in the RFC 7489 in Appendix B.1.

    - +

    Another feature of DMARC is reporting. You may want to know whether your emails had delivery problems. DMARC has two tags for that purpose:

    \ No newline at end of file +

    Please note that the DMARC record is a TXT record like _dmarc.example.com. That _dmarc host name is important.

    \ No newline at end of file diff --git a/ispmail-trixie/automated-installation/index.html b/ispmail-trixie/automated-installation/index.html index 5371b72..766b331 100644 --- a/ispmail-trixie/automated-installation/index.html +++ b/ispmail-trixie/automated-installation/index.html @@ -1,4 +1,4 @@ - Automated installation | ISPmail Guide - Skip to content
    Skip to content

    Automated installation

    I have spent an extra couple of days to provide you with a shell script that does all the steps of this guide +

    Automated installation

    I have spent an extra couple of days to provide you with a shell script that does all the steps of this guide automatically on a fresh Debian Trixie system. The previous Bookworm guide contained an Ansible playbook for that purpose. But although I know Ansible quite well, I have realized that it can make simple tasks very complicated. So I thought that a shell script is the simplest way.

    -

    To use the automated installer:

    Terminal window
    wget https://workaround.org/ispmail.sh
    chmod +x ispmail.sh
    ./ispmail.sh -f example.org

    Use your main FQDN instead of example.org. It will become the main host name for Roundcube, rspamd, SMTP, IMAP and will be taken as the common name for the Let’s Encrypt certificate.

    -

    This script is something new. So please report your experience while using it down in the comments.

    \ No newline at end of file +

    This script is something new. So please report your experience while using it down in the comments.

    \ No newline at end of file diff --git a/ispmail-trixie/catch-all/index.html b/ispmail-trixie/catch-all/index.html index f7e5378..8b23331 100644 --- a/ispmail-trixie/catch-all/index.html +++ b/ispmail-trixie/catch-all/index.html @@ -1,4 +1,4 @@ - Catch-all addresses | ISPmail Guide - Skip to content
    Skip to content

    Catch-all addresses

    +

    Catch-all addresses

    As explained earlier in the tutorial there is way to forward all undefined email addresses in a domain to a certain destination email address. This is called a catch-all alias. Those aliases catch all emails for a domain if there is no specific virtual user or virtual alias for that email address. The drawback is that you will get more spam @@ -81,21 +84,46 @@ of a recipient but the mail server will forward the email instead of rejecting i

    You still want to use catch-all addresses? Well, okay. Let’s do it then. A catchall alias looks like “@example.org” and forwards email for the whole domain to other addresses. We have created the john@example.org user and would like to forward all other email on the domain to kerstin@example.com. So we would add a catchall alias like:

    -

    | source | destination | -| -------------- | --------------------- | -| @example.org | kerstin@example.com |

    + + + + + + + + + + + + + +
    sourcedestination
    @example.orgkerstin@example.com

    But there is a small catch. Postfix will apply the aliases (virtual_alias_maps) before delivering an email. So the catch-all alias will “steal” all emails. But we can add this to the aliases table to prevent that:

    -

    | email | destination | -| ---------------------- | ---------------------- | -| @example.org | kerstin@example.com | -| john@example.org | john@example.org |

    + + + + + + + + + + + + + + + + + +
    emaildestination
    @example.orgkerstin@example.com
    john@example.orgjohn@example.org

    Postfix will consider more specific aliases first. And john@example.org is more specific than @example.org. Consider that someone is trying to reach john@example.org’s mailbox. So to make a mixture of catch-all addresses and specific addresses work, we need this little trickery.

    Postfix will lookup all these mappings for each of:

      -
    • john@example.org (most specific)
    • +
    • john@example.org (most specific)
    • @example.org (catchall – least specific)

    This is outlined in the virtual(5) man page in the TABLE SEARCH @@ -109,10 +137,4 @@ that. For that “john-to-himself” mapping you need to create another “.cf

    Run this on your server
    postmap -q john@example.org mysql:/etc/postfix/mariadb-email2email.cf

    The result should be the same address:

    john@example.org
    -

    Now you are ready to add catch-all aliases.

    \ No newline at end of file +

    Now you are ready to add catch-all aliases.

    \ No newline at end of file diff --git a/ispmail-trixie/catching-spam-with-rspamd/index.html b/ispmail-trixie/catching-spam-with-rspamd/index.html index 5445d94..7ed0912 100644 --- a/ispmail-trixie/catching-spam-with-rspamd/index.html +++ b/ispmail-trixie/catching-spam-with-rspamd/index.html @@ -1,4 +1,4 @@ - Catching spam with rspamd | ISPmail Guide - Skip to content
    Skip to content

    Catching spam with rspamd

    +

    Catching spam with rspamd

    You have come a long way in this guide and your mail server is already fully functional. Now it’s time to deal with filtering out incoming spam emails. I found that rspamd is well-performing choice for that purpose both in speed and detection. rspamd keeps a permanent process running on your mail server that listens to @@ -80,7 +83,7 @@ Every time an email enters your system, Postfix will send it to rspamd to have i checks on the email and computes a total score. The higher the score – the more likely it it spam. And the best thing about milters: the check happens in parallel while Postfix is still in the process of receiving the email. If the score is high enough, Postfix can still reject the email right at the doorstep.

    - +

    Let’s tell Postfix to send all incoming email through rspamd:

    Run this on your server
    postconf smtpd_milters=inet:127.0.0.1:11332
    postconf non_smtpd_milters=inet:127.0.0.1:11332

    For testing we can use a sample spam email that comes with SpamAssassin. It is called GTUBE (Generic Test @@ -108,7 +111,7 @@ communication with the sending server. It just hung up the phone and now it’s to complain about it to the alleged sender. Trust me: the sender you see on a spam email is never the bad guy who sent it. You would complain to the wrong person which is called backscatter.

    - +

    rspamd will however not reject all spam email. It computes a score that tells how likely a certain email is spam. You can tell it which scores you would accept, flag as spam or make the incoming email get rejected. Rspamd checks incoming emails in various ways. Take a look at the /etc/rspamd/actions.conf file:

    @@ -123,7 +126,7 @@ like on infected Wind*ws computers used to try sending an email just once which rejected the spammer. But even malware programmers have learned and may try again after a few minutes thus circumventing greylisting. Your mileage may vary. The problem with greylisting is that the recipient has to wait a couple of minutes for the email to be delivered which may be bothering the users.

    - +

    An email consists of headers and the actual body. Your users will usually only see common header information like the subject, the sender, the recipient and the time the email was sent. But there is way more information like the route the email travelled. Mail software can even add arbitrary extended headers that start with X-. @@ -136,7 +139,7 @@ not necessarily mean something bad about the email. For example R_SPF_ALLOW< score because it is something good about the email. There are a several symbols with a 0.00 score. These do not change the score but show you what rspamd has found. But if you consider certain criteria good or bad then you can define your own scores for them.

    - +

    Your users will not realize that their spam emails have an added X-Spam: Yes header. It is not shown in their mail client. Nor does it move the email out of the inbox into their spam folder. Such emails just appear in their inbox. So let’s be nice and move spam emails to the user’s Junk folder automatically. Dovecot has support @@ -170,7 +173,7 @@ directly into Dovecot using the LMTP socket:

    Click here to get more detailed logs…

    If you find that the delivery to the Junk folder did not work, you may want to increase the log level. Uncomment the line

    log_debug=category=sieve

    in the 99-ispmail-sieve.conf file.

    That will give you a much deeper insight of what Dovecot has been doing. Restart Dovecot, send another email with swaks and check the logs again:

    Run this on your server
    systemctl reload dovecot
    journalctl -eu dovecot
    - +

    One of rspamd’s features is analyzing word patterns using probability theory. That functionality is contained in its statistical module. (Yes, the name is misleading.) Essentially you show rspamd lots of ham (good) and spam (bad) emails and its detection gets better over time.

    @@ -206,7 +209,7 @@ just spam emails will not work. This is defined by the min_learns vari
    Statfile: BAYES_HAM type: redis; length: 0; free blocks: 0;
    total blocks: 0; free: 0.00%; learned: 1411;
    users: 62; languages: 0

    (Don’t worry about the length: 0. That seems to be a bug that has been ignored since 2019. Checking the actual contents of the Redis database reveals that there is actually data stored.)

    - +

    Usually the training database applies to all incoming emails for all users. But you split it up so that each recipient gets their own training.

    Advantage: users work differently. Some have subscribed to a sales newsletter and now believe that marking it as @@ -218,7 +221,7 @@ of spam training the detection will not be improved. For a friends-and-family se

    If you decide you want to use per-user spam training then add/edit the file /etc/rspamd/local.d/classifier-bayes.conf and insert:

    users_enabled = true;
    - +

    Now we are getting to something really cool. Imagine you receive a spam email in your inbox that Rspamd didn’t catch. You could just move it to your Junk folder — but that wouldn’t help Rspamd learn to recognize that kind of spam in the future. Luckily, we can change that.

    @@ -274,13 +277,13 @@ are going on. Some relevant lines:

    The /var/log/rspamd/rspamd.log file will also show that training:

    rspamd_controller_learn_fin_task: <127.0.0.1> learned message as spam: GTUBE1.1010101@example.net
    rspamd_controller_learn_fin_task: <127.0.0.1> learned message as ham: 20251101173211.068172@mailserver

    If you are happy and see no errors (they are highlighted in red), then switch off the debugging again.

    - +

    rspamd keeps a verbose log of its actions in /var/log/rspamd/rspamd.log. If a user complains that a certain email got blocked or at least flagged as spam then take a look at this log. You can match the /var/log/mail.log with it by comparing the Postfix queue ID. Those are the 12-digit hexadecimal number like “95CE05A00547”. Those IDs can be found in the rspamd.log, too:

    <40985d>; task; rspamd_task_write_log: id: <undef>, qid: <95CE05A00547>, ip: 12.13.51.194, from: <…>, (default: F (no action): [3.40/15.00] [MISSING_MID(2.50){},MISSING_DATE(1.00){},MIME_GOOD(-0.10){text/plain;},ARC_NA(0.00){},ASN(0.00){asn:8220, ipnet:212.123.192.0/18, country:GB;},FROM_EQ_ENVFROM(0.00){},FROM_NO_DN(0.00){},RCPT_COUNT_ONE(0.00){1;},RCVD_COUNT_ZERO(0.00){0;},RCVD_TLS_ALL(0.00){},TO_DN_NONE(0.00){},TO_DOM_EQ_FROM_DOM(0.00){},TO_MATCH_ENVRCPT_ALL(0.00){}]), len: 181, time: 16.000ms real, 6.385ms virtual, dns req: 0, digest: <69b289a82827c11f759837c033cd800a>, rcpts: <…>, mime_rcpt: <…>
    - +

    Andi Olsen pointed out that Dovecot has introduced an autoexpunge feature to automatically delete emails in a folder that reach a certain age. This is especially useful for the “Trash” and “Junk” folders. To @@ -288,7 +291,7 @@ enable this feature, create yet another configuration file:

    Run this on your server
    cat > /etc/dovecot/conf.d/99-ispmail-autoexpunge.conf << 'EOF'
    # Remove mails from the Junk and Trash folders after 30 days
    mailbox Junk {
    special_use = \Junk
    auto = subscribe
    mailbox_autoexpunge = 30d
    }
    mailbox Trash {
    special_use = \Trash
    auto = subscribe
    mailbox_autoexpunge = 30d
    }
    # Make expunging more efficient
    mailbox_list_index = yes
    mail_always_cache_fields = date.save
    EOF
    # Restart Dovecot
    systemctl reload dovecot
    - +

    rspamd comes with a neat bonus feature: a web interface. It allows you to check emails for spam, get statistics and fine-tune scores. It is already installed and enabled by default and expects HTTP (not HTTPS!) requests on port 11334 on the localhost interface. I suggest you add a simple proxy configuration to your already working HTTPS-enabled web mail @@ -313,10 +316,4 @@ configuration:

    This gives you a password like “sae8thaoTaengeo”. If everything went as expected you should now be able to access the rspamd web interface at https://mail.example.org/rspamd (of course you will use your own server name here).

    You may miss the detailed history in the web interface. /etc/rspamd/local.d/redis.conf The content is: servers = -“127.0.0.1”;

    \ No newline at end of file +“127.0.0.1”;

    \ No newline at end of file diff --git a/ispmail-trixie/database/index.html b/ispmail-trixie/database/index.html index d036fcd..98e0683 100644 --- a/ispmail-trixie/database/index.html +++ b/ispmail-trixie/database/index.html @@ -1,4 +1,4 @@ - Database setup | ISPmail Guide - Skip to content
    Skip to content

    Database setup

    Now it’s time to prepare the MariaDB database that stores the information that controls your mail server. In the process +

    Database setup

    Now it’s time to prepare the MariaDB database that stores the information that controls your mail server. In the process you will have to enter SQL queries – the language of relational database servers. You may enter them in a terminal window using the ‘mariadb’ command.

    - +

    This step is simple. Connect to the database using the mariadb command in your shell:

    Run this on your server
    mariadb

    You should see the MariaDB prompt that allows you to enter further SQL commands:

    MariaDB [(none)]>

    To create the new database, send this SQL command:

    CREATE DATABASE mailserver;
    - +

    In this section you will create the basic database called mailserver and two users:

    -

    | User | Permissions | Purpose | -| :--------- | :---------- | :--------------------------------------------------------- | -| mailserver | read | Used by Postfix/Dovecot | -| mailadmin | read/write | Used by you
    Used by Roundcube (for password changes) |

    -

    Create the database users:

    grant all privileges on mailserver.* to 'mailadmin'@'localhost' identified by 'MAILADMIN-PASSWORD-HERE';
    grant select on mailserver.* to 'mailserver'@'127.0.0.1' identified by 'MAILSERVER-PASSWORD-HERE';
    - +

    By now you have an empty database and two user accounts to access it. Now you need three tables:

    • virtual_domains
    • @@ -120,18 +140,32 @@ limitation.

    CREATE TABLE IF NOT EXISTS `virtual_aliases` (
    `id` int(11) NOT NULL auto_increment,
    `domain_id` int(11) NOT NULL,
    `source` varchar(100) NOT NULL,
    `destination` varchar(100) NOT NULL,
    PRIMARY KEY (`id`),
    FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
    );
    CREATE TABLE IF NOT EXISTS `virtual_users` (
    `id` int(11) NOT NULL auto_increment,
    `domain_id` int(11) NOT NULL,
    `email` varchar(100) NOT NULL,
    `password` varchar(150) NOT NULL,
    `quota` bigint(11) NOT NULL DEFAULT 0,
    PRIMARY KEY (`id`),
    UNIQUE KEY `email` (`email`),
    FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
    );
    - +

    The first table keeps the list of domains that your mail server will be responsible for. Each row in this table represents a domain.

    • id: A unique number identifying each row. It is set automatically.
    • name: Domain name.
    - - + +

    The second table contains information about your users – or rather: your mailboxes. Each mail account requires one row in this table.

      @@ -149,12 +183,41 @@ schemes should get a new password if possible to increase security. can take up. The default value is 0 which applies the default quota. This is an optional feature that is discussed later.
    - - + +

    The third table contain optional forwardings from one email address to another – or several other – addresses.

    • id: A unique number identifying each row. It is set automatically.
    • @@ -162,21 +225,56 @@ later.
    • source: The alias email address.
    • destination: The email address where this alias gets forwarded to.
    - +

    Too much theory so far? I can imagine. Let’s populate the database with an example.org domain, a john@example.org email account and a forwarding of jack@example.org to john@example.org. We will use that information in the next chapter to play with.

    @@ -191,10 +289,4 @@ chapter to play with.

    …to create a secure hash of the simple password “summersun”. Once you have installed Dovecot you can try that yourself but you will get a different output. The reason is that the passwords are salted. Every time you will get a different hash. That prevents -reverse-engineering the original password.

    \ No newline at end of file +reverse-engineering the original password.

    \ No newline at end of file diff --git a/ispmail-trixie/dns-records/index.html b/ispmail-trixie/dns-records/index.html index fb48594..0254aee 100644 --- a/ispmail-trixie/dns-records/index.html +++ b/ispmail-trixie/dns-records/index.html @@ -1,4 +1,4 @@ - DNS records | ISPmail Guide - Skip to content
    Skip to content

    DNS records

    Todo list for receiving emails
    1. 1

      DNS records point to your server

    2. 2

      Get a certificate from Let's Encrypt

    3. 3

      Postfix fetches information from MariaDB

    4. 4

      Dovecot fetches information from MariaDB

    5. 5

      Postfix hands over emails to Dovecot

    6. 6

      Dovecot saves the email to disk

    +

    DNS records

    Todo list for receiving emails
    1. 1

      DNS records point to your server

    2. 2

      Get a certificate from Let's Encrypt

    3. 3

      Postfix fetches information from MariaDB

    4. 4

      Dovecot fetches information from MariaDB

    5. 5

      Postfix hands over emails to Dovecot

    6. 6

      Dovecot saves the email to disk

    As shown in the slideshow, you need to have proper DNS records set up. Say that you want to receive emails for the example.com domain. If some other mail server on the internet wants to send an email to your server, it looks for two records:

    @@ -97,17 +100,11 @@ know how to reach it.

    email delivery (SMTP).

    - - + +

    In zone syntax you would create something like:

    @ IN MX 10 smtp
    smtp IN A 100.64.17.3
    smtp IN AAAA fd7a:115c:a1e0::17

    If possible, also add a PTR record that makes the IP addresses point back to the name smtp.example.com. Other mail servers may be more likely so flag your sent emails as spam if you do not have a PTR record. Preferable the forward (A/AAAA) and reverse (PTR) records match.

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/ispmail-trixie/dovecot/index.html b/ispmail-trixie/dovecot/index.html index 8cbfb9a..0803e72 100644 --- a/ispmail-trixie/dovecot/index.html +++ b/ispmail-trixie/dovecot/index.html @@ -1,4 +1,4 @@ - Dovecot | ISPmail Guide - Skip to content
    Skip to content

    Dovecot

    Todo list for receiving emails
    1. 1

      DNS records point to your server

    2. 2

      Get a certificate from Let's Encrypt

    3. 3

      Postfix fetches information from MariaDB

    4. 4

      Dovecot fetches information from MariaDB

    5. 5

      Postfix hands over emails to Dovecot

    6. 6

      Dovecot saves the email to disk

    +

    Dovecot

    Todo list for receiving emails
    1. 1

      DNS records point to your server

    2. 2

      Get a certificate from Let's Encrypt

    3. 3

      Postfix fetches information from MariaDB

    4. 4

      Dovecot fetches information from MariaDB

    5. 5

      Postfix hands over emails to Dovecot

    6. 6

      Dovecot saves the email to disk

    In this chapter we will configure Dovecot so that it knows how to deliver incoming emails.

    - +

    On your disk all the mailboxes will live in the directory /var/vmail. To separate the mailboxes from the rest of your system, let’s create a new user and group that will own the mailboxes:

    Run this on your server
    groupadd --system vmail
    useradd --system --gid vmail vmail
    mkdir -p /var/vmail
    chown -R vmail:vmail /var/vmail
    chmod u=rwx,g=rx,o= /var/vmail
    - +

    The configuration files for Dovecot are found in /etc/dovecot/conf.d. All these files are loaded by Dovecot. This is done by this magical line at the end of the /etc/dovecot/dovecot.conf file:

    !include conf.d/*.conf

    It loads all files in /etc/dovecot/conf.d/ that end in “.conf” in alphanumerical order. Let’s edit a couple of files for our purpose.

    - +

    The /etc/dovecot/conf.d/10-auth.conf file is dealing with authentication. At the end of this file you will find a list of authentication backends that Dovecot ships with. By default it will use system users (those from /etc/passwd). But we want to use the MariaDB database backend. Please comment out all include statements:

    Edit your /etc/dovecot/conf.d/10-auth.conf
    #!include auth-system.conf.ext
    #!include auth-sql.conf.ext
    #!include auth-ldap.conf.ext
    #!include auth-passwdfile.conf.ext
    #!include auth-checkpassword.conf.ext
    #!include auth-static.conf.ext

    Every line starting with # is disabled. Only lines starting with ! are considered.

    - +

    The file at /etc/dovecot/conf.d/10-mail.conf contains many settings regarding mailboxes, like where they are located, who owns them and what is their layout? Create a new file /etc/dovecot/conf.d/99-ispmail-mail.conf that overrides these defaults:

    @@ -110,26 +113,26 @@ directory. used that schema in previous guides and make sure you can migrate your mailboxes from other mail servers. This overrides the setting in in 10-mail.conf. - +

    This configuration file at /etc/dovecot/conf.d/10-master.conf deals with Dovecot’s services. A service is a part of Dovecot that listens on a TCP port or a UNIX socket so that other parts of your system can use it. We want Postfix to use Dovecot for authentication. So we need to change the service auth section:

    Run this on your server
    cat > /etc/dovecot/conf.d/99-ispmail-master.conf << EOF
    service auth {
    unix_listener /var/spool/postfix/private/dovecot-auth {
    mode = 0660
    user = postfix
    group = postfix
    }
    }
    EOF

    That way Dovecot will put a communication socket into /var/spool/postfix/private/dovecot-auth. It will allow Postfix to authenticate your users which is relevant later when we set up relaying.

    - +

    Earlier in this guide you created both a key and a certificate file to encrypt the communication with IMAPS and HTTPS between the users and your mail server. You need to tell Dovecot where to find these files. Also set ssl=required to prevent that someone sends their password without encryption. Again we will create a new file 99-ispmail-ssl.conf to override the defaults.

    - +
    Run this on your server
    cat > /etc/dovecot/conf.d/99-ispmail-ssl.conf << EOF
    ssl = required
    ssl_server_cert_file = /etc/letsencrypt/live/mail.example.org/fullchain.pem
    ssl_server_key_file = /etc/letsencrypt/live/mail.example.org/privkey.pem
    EOF
    - +

    There is one setting in the /etc/dovecot/conf.d/20-lmtp.conf that will mess up the recipient’s email address in our setup: auth_username_format. So let’s override it:

    Run this on your server
    cat > /etc/dovecot/conf.d/99-ispmail-lmtp-username-format.conf << EOF
    protocol lmtp {
    auth_username_format =
    }
    EOF
    - +

    Let’s tell Dovecot where to find information on an valid users (userdb) and their passwords (passdb). There are suggestions in the auth-sql.conf.ext file but we will add our own file:

    Run this on your server
    cat > /etc/dovecot/conf.d/99-ispmail-sql.conf << EOF
    sql_driver = mysql
    @@ -148,7 +151,7 @@ make some space.

    Dovecot can also read the path to a user’s home directory and the user-ID and group-ID from the database. Our setup has a fixed schema for the home directory (/var/vmail/DOMAIN/USER) (as defined by mail_home) and the user and group are always vmail and vmail.

    - +

    Later, we will implement server-side automation using Sieve rules. By default, Dovecot exposes two TCP ports to the internet: 2000 and 4190. Port 2000 is deprecated anyway and can be safely disabled, while port 4190 is the one we will use. However, unless you have a compelling reason, it is recommended not to make this port publicly accessible. So let @@ -156,7 +159,7 @@ us restrict it to the localhost interface:

    Run this on your server
    cat > /etc/dovecot/conf.d/99-ispmail-managesieve.conf << EOF
    service managesieve-login {
    # Listen only on localhost
    inet_listener sieve {
    listen= 127.0.0.1
    port = 4190
    }
    # Disable the deprecated listener
    inet_listener sieve_deprecated {
    port = 0
    }
    }
    EOF

    (Thanks to Thomas Gauweiler for spotting that.)

    - +

    Restart Dovecot from the shell:

    Run this on your server
    systemctl restart dovecot

    Check your logs:

    @@ -164,13 +167,7 @@ us restrict it to the localhost interface:

    You should see:

    dovecot[13309]: master: Dovecot v2.4.1-4 (7d8c0e5759) starting up for imap, lmtp, sieve (core dumps disabled)
    systemd[1]: Started dovecot.service - Dovecot IMAP/POP3 email server.

    If you get any error messages please double-check your configuration files.

    -
    \ No newline at end of file +to the last 10 lines:

    Run this on your server
    journalctl -n 10 -fu dovecot

    If you prefer the old way of having log files, just install the rsyslog package.

    +
    \ No newline at end of file diff --git a/ispmail-trixie/going-live/index.html b/ispmail-trixie/going-live/index.html index 46774db..671e7c4 100644 --- a/ispmail-trixie/going-live/index.html +++ b/ispmail-trixie/going-live/index.html @@ -1,4 +1,4 @@ - Going live | ISPmail Guide - Skip to content
    Skip to content

    Going live

    Before you take your new mail server into production, please replace the dummy database passwords by some actual random +

    Going live

    Before you take your new mail server into production, please replace the dummy database passwords by some actual random passwords:

    Run this on your server
    # Create two random passwords
    PW_MAILADMIN=$(pwgen -s 32 1)
    PW_MAILSERVER=$(pwgen -s 32 1)
    # Replace the dummy passwords
    sed -i "s|MAILADMIN-PASSWORD-HERE|$PW_MAILADMIN|g" /etc/roundcube/plugins/password/config.inc.php
    @@ -82,10 +85,4 @@ passwords:

    # Print the passwords for us to write down
    echo "mailadmin password: $PW_MAILADMIN"
    echo "mailserver password: $PW_MAILSERVER"

    Now you are ready to go live. Congratulations on making it this far. And please drop a comment at the bottom if you want -to proudly report that you have your new server up and running.

    \ No newline at end of file +to proudly report that you have your new server up and running.

    \ No newline at end of file diff --git a/ispmail-trixie/imap/index.html b/ispmail-trixie/imap/index.html index 99595a7..50b2e8d 100644 --- a/ispmail-trixie/imap/index.html +++ b/ispmail-trixie/imap/index.html @@ -1,4 +1,4 @@ - IMAP | ISPmail Guide - Skip to content
    Skip to content

    IMAP

    Your mail server relies on two primary protocols. We’ve already covered SMTP in detail, which handles the transfer +

    IMAP

    Your mail server relies on two primary protocols. We’ve already covered SMTP in detail, which handles the transfer of emails between servers. The other important protocol is IMAP – the Internet Message Access Protocol.

    Email clients such as Thunderbird, Roundcube, mutt or the mail apps on your smartphone use IMAP to retrieve and manage messages. The good news is that you don’t need to configure anything new on the server — it’s already set up. In fact, even Roundcube (your webmail application) communicates with the server via IMAP to access emails.

    - +

    You may not have heard of mutt before. It’s like the VIM editor but for mails. Very powerful but it only has a text-based user interface. For testing IMAP on mail servers it’s still a good way because you do not have to set up a complete account as in Thunderbird.

    @@ -90,16 +93,10 @@ you used the correct server name. If the authentication has succeeded, you will

    Mutt showing an email in the inbox

    These are test emails that you sent earlier using swaks. You open an email by pressing Enter and get back using q. Mainly we wanted to check that IMAP access works.

    - +

    Mutt can not only speak IMAP – it can access an inbox (or maildir) on your disk directly as well:

    Run this on your server
    mutt -f /var/vmail/example.org/john/Maildir/

    That way you will not be forced to authenticate as you are working with the file system.

    - +

    A typical account setup in Thunderbird looks like:

    -

    Thunderbird account setup

    \ No newline at end of file +

    Thunderbird account setup

    \ No newline at end of file diff --git a/ispmail-trixie/index.html b/ispmail-trixie/index.html index d40a568..03a1e74 100644 --- a/ispmail-trixie/index.html +++ b/ispmail-trixie/index.html @@ -1,4 +1,4 @@ - Start here | ISPmail Guide - Skip to content
    Skip to content

    Start here

    Good to have you here. This is the 12th edition of the ISPmail guide. A free guide to setting up a mail server for +

    Start here

    Good to have you here. This is the 12th edition of the ISPmail guide. A free guide to setting up a mail server for friends and family using open-source software. Email on the internet nowadays is in the hands of few huge companies. Take back control and host your own mail server. Get a cheap virtual server and read along. This guide is comprehensive and will walk you through everything you need to know. I am publishing this guide without any commercial motives. All you need to invest is your time. And thanks to Debian you will get automatic security updates and do not have to worry about anything until the next stable release comes out in 2-3 years. And perhaps you come back then to upgrade your server.

    - +
    • Receive emails on (multiple) domains.
    • Filter out spam.
    • @@ -93,7 +96,7 @@ domain. Or send out-of-office notifications.
    • Mitigate brute force attacks.
    - +
    • Linux experience. Preferably a Debian-derivative. No godlike skills required. But know your basics: navigating the file system, editing files, watching log files. Have some basic understanding of DNS. Bonus points if you have played @@ -124,7 +127,7 @@ parts even if they appear confusing at first. If you get lost just submit your q throughout this guide and help is on the way. Or join the chat channel.
    - +

    If you just want to have a working mail server and do not care how it works then this guide may not be for you. There is an automated installation script that does all the steps of this guide automatically for you. But that is no replacement for reading this guide and understanding how the server works. It is @@ -136,7 +139,7 @@ if you like. But I have a feeling that we meet again. And you will probably not easy route.

    There are also other projects that give you a ready solution like mailinabox, iRedMail or Mailcow.

    - +

    The last updates to this guide – up to Debian Bookworm – were mainly minor changes. However this time I have spent many weeks to improve the guide. Most sections are completely rewritten. Explanations about SMTP versus submission were added. I dived deep into RFCs and reference documentation. I have used more features of the @@ -145,12 +148,6 @@ visual guides like task lists or image galleries or foldout sections to help you server without getting lost. And I have replaced all my configuration examples with blocks that you can copy/paste into your shell. So this guide is supposed to be shorter and faster to follow while at the same time trying to be more comprehensive. Please leave your feedback in the comment sections whether this approach appeals to you.

    - +

    The entire tutorial is split into several pages. You can find the different chapters on the left. The navigation within -a chapter can be found on the right. Let’s go.

    \ No newline at end of file +a chapter can be found on the right. Let’s go.

    \ No newline at end of file diff --git a/ispmail-trixie/install-debian/index.html b/ispmail-trixie/install-debian/index.html index d9efd8c..6b253bb 100644 --- a/ispmail-trixie/install-debian/index.html +++ b/ispmail-trixie/install-debian/index.html @@ -1,4 +1,4 @@ - Installing Debian | ISPmail Guide - Skip to content
    Skip to content

    Installing Debian

    +

    Installing Debian

    You have a blank computer or virtual machine? Then simply install Debian Trixie yourself. Get a boot medium from the Debian website. The smaller network installer is sufficient – it will download all required packages directly from the internet. Make sure you choose ‘English’ as the installation language @@ -81,16 +84,10 @@ searching for English error messages on the internet.

    Most of the installation is pretty straightforward. You don’t need me holding your hand. However I strongly recommend that you use the logical volume manager (LVM) for your partitions to stay flexible if your server grows. See my article on LVM if you want some help understanding its concept.

    - +

    These are the relevant paths and the minimum amount of space I would suggest. If you use LVM, enlarging partitions later is very simple.

    -
    • Directory/ (operating system – 5 GB) +
      • Directory/ (operating system – 5 GB)
        • Directoryvar/
          • Directoryvmail/ (actual emails will be stored here – 10 GB)
          • Directorylog/ -
            • Directoryjournal/ (systemd saves logs here – 5 GB)
        • Directorytmp/ (temporary storage – 1 GB)
    \ No newline at end of file +
    • Directoryjournal/ (systemd saves logs here – 5 GB)
  • Directorytmp/ (temporary storage – 1 GB)
  • \ No newline at end of file diff --git a/ispmail-trixie/install-the-software-packages/index.html b/ispmail-trixie/install-the-software-packages/index.html index 6eff010..677716b 100644 --- a/ispmail-trixie/install-the-software-packages/index.html +++ b/ispmail-trixie/install-the-software-packages/index.html @@ -1,4 +1,4 @@ - Install software packages | ISPmail Guide - Skip to content
    Skip to content

    Install software packages

    Let’s install the necessary Debian packages. Run this command as root on your server as root:

    +

    Install software packages

    Let’s install the necessary Debian packages. Run this command as root on your server as root:

    Run this on your server
    apt update
    DEBIAN_FRONTEND=noninteractive \
    apt -y install postfix-mysql dovecot-mysql \
    dovecot-imapd dovecot-lmtpd dovecot-managesieved \
    apache2 python3-certbot-apache libapache2-mod-php \
    php-intl php-mbstring php-xml unzip certbot \
    roundcube-mysql roundcube roundcube-plugins swaks libnet-ssleay-perl \
    mutt unattended-upgrades mariadb-server \
    rspamd redis-server opendkim-tools bind9-dnsutils pwgen

    While the server is downloading and installing the packages, let me give you a quick explanation of each package:

      @@ -121,10 +124,4 @@ Not strictly necessary. But a nice tool to verify DKIM signatures. You know, for Provides the infamous dig command for an easy way to do DNS lookups.
    • pwgen
      A password generator.
    • -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/ispmail-trixie/lmtp/index.html b/ispmail-trixie/lmtp/index.html index 2f5783a..bc86877 100644 --- a/ispmail-trixie/lmtp/index.html +++ b/ispmail-trixie/lmtp/index.html @@ -1,4 +1,4 @@ - LMTP | ISPmail Guide - Skip to content
    Skip to content

    LMTP

    Todo list for receiving emails
    1. 1

      DNS records point to your server

    2. 2

      Get a certificate from Let's Encrypt

    3. 3

      Postfix fetches information from MariaDB

    4. 4

      Dovecot fetches information from MariaDB

    5. 5

      Postfix hands over emails to Dovecot

    6. 6

      Dovecot saves the email to disk

    +

    LMTP

    Todo list for receiving emails
    1. 1

      DNS records point to your server

    2. 2

      Get a certificate from Let's Encrypt

    3. 3

      Postfix fetches information from MariaDB

    4. 4

      Dovecot fetches information from MariaDB

    5. 5

      Postfix hands over emails to Dovecot

    6. 6

      Dovecot saves the email to disk

    Glad to see that you are still with me. We are very close to receiving our first email. If you feel lost, please review the slideshow from earlier in this guide.

    As explained in the previous section, Postfix speaks SMTP and receives the email from the internet. Postfix could even @@ -83,7 +86,7 @@ well.

    happens using LMTP – the local mail transfer protocol. LMTP is a lightweight variant of SMTP. It is meant for email communication between internal services that trust each other.

    - +

    First we need to add a UNIX socket where Dovecot listens for incoming LMTP connections:

    Run this on your server
    # Add an LMTP listening socket in Dovecot
    cat > /etc/dovecot/conf.d/99-ispmail-lmtp-listener.conf << EOF
    service lmtp {
    # Used internally by Dovecot
    unix_listener lmtp {
    }
    # Listen to LMTP connections from Postfix
    unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
    }
    }
    EOF
    @@ -93,7 +96,7 @@ will be adding. It makes Dovecot create a socket file at /var/s home in /var/spool/postfix it can access that socket to speak LMTP with Dovecot.

    A socket is similar to a TCP port but it’s only available for other processes running on same system. That’s why you also set the access mode, user and group so that Postfix can actually use it.

    - +

    The “virtual_transport” in Postfix defines the service to use for delivering emails to the local system. Dovecot has created a socket file and is ready to listen to incoming LMTP connections. We just need to tell Postfix to send emails there. So please run:

    @@ -101,8 +104,8 @@ there. So please run:

    The syntax looks crazy, but it’s actually simple. You just told Postfix to use the LMTP protocol. And that we want to use a UNIX socket on the same system (instead of a TCP connection). And the socket file is located at /var/spool/postfix/private/dovecot-lmtp – because /var/spool/postfix is the Postfix’s home directory.

    - -
    Todo list for receiving emails
    1. 1

      DNS records point to your server

    2. 2

      Get a certificate from Let's Encrypt

    3. 3

      Postfix fetches information from MariaDB

    4. 4

      Dovecot fetches information from MariaDB

    5. 5

      Postfix hands over emails to Dovecot

    6. 6

      Dovecot saves the email to disk

    + +
    Todo list for receiving emails
    1. 1

      DNS records point to your server

    2. 2

      Get a certificate from Let's Encrypt

    3. 3

      Postfix fetches information from MariaDB

    4. 4

      Dovecot fetches information from MariaDB

    5. 5

      Postfix hands over emails to Dovecot

    6. 6

      Dovecot saves the email to disk

    Finally we are ready for our first email. Using the swaks command you can create a test email to john@example.org and send it to Postfix:

    Run this on your server
    swaks --server localhost --to john@example.org
    @@ -122,13 +125,7 @@ on your system. But this is the actual mail that got delivered. You can view it you just sent using swaks.

    Don’t worry about the other files like maildirfolder or the files that sound like dovecot…. Those help Dovecot keep track of the mailbox. You can safely ignore them.

    - +

    Obviously the previous examples dealt with the example.org domain which is not your actual domain. Feel free to add your own domain to the database and create a test user. The later -section on managing users will explain that in detail.

    \ No newline at end of file +section on managing users will explain that in detail.

    \ No newline at end of file diff --git a/ispmail-trixie/managing-users-aliases-and-domains/index.html b/ispmail-trixie/managing-users-aliases-and-domains/index.html index 7b3bc8f..5fd8a3b 100644 --- a/ispmail-trixie/managing-users-aliases-and-domains/index.html +++ b/ispmail-trixie/managing-users-aliases-and-domains/index.html @@ -1,4 +1,4 @@ - Managing users, aliases and domains | ISPmail Guide - Skip to content
    Skip to content

    Managing users, aliases and domains

    Maybe you already know what you have to do to create mail domains and mail users. After all I tried to explain the +

    Managing users, aliases and domains

    Maybe you already know what you have to do to create mail domains and mail users. After all I tried to explain the database schema in the section that dealt with preparing the database. But if that wasn’t clear enough let me explain what you need to do to manage your mail accounts.

    - +

    The following sections explain the changes and SQL queries you can use for common management tasks:

    - +

    Insert a new row into the virtual_domains table and set the name to the name of the new domain. (Do not forget to set up SPF and DKIM.)

    INSERT INTO virtual_domains (name) VALUES ("example.org");
    - +

    Delete the row from the virtual_domains table that has the right name. All aliases and users will automatically be deleted, too. However the mailboxes will stay on disk at /var/vmail/… and you need to delete them manually.

    DELETE FROM virtual_domains where name='example.org';
    - +

    Find out the id of the right domain from the virtual_domains table. The insert a new row into the virtual_users table. Set the domain_id to the value you just looked up in the virtual_domains table. Set the email field to the complete email address of the new user. Create a new password in a shell using the dovecot pw command and insert the result into the password field.

    INSERT INTO virtual_users
    (domain_id, email, password)
    VALUES
    ((SELECT id FROM virtual_domains WHERE name='example.org'), 'john@example.org','{CRYPT}$2y$05$.We…');
    - +

    Find the row in the virtual_users table by looking for the right email field. Create a new password in a shell using the dovecot pw command and insert the result into the password field.

    UPDATE virtual_users SET password='{CRYPT}$2y$05$.We…' WHERE email='email@address';
    - +

    Find the row in the virtual_users table by looking for the right email field and delete it. The mailbox will stay on disk at /var/vmail/… and you need to delete it manually

    DELETE FROM virtual_users WHERE email='john@example.org';
    - +

    You can forward emails from one (source) email to other addresses (destinations) – even outside of your mail server. Find out the id of the right domain (the part after the @ of the source email address) from the virtual_domains table. Create a new row in the virtual_aliases table for each destination (if you have multiple destination addresses). Set the source field to the complete source email address. And set the destination field to the respective complete destination email address.

    INSERT INTO virtual_aliases
    (domain_id, source, destination)
    VALUES
    (
    (SELECT id FROM virtual_domains WHERE name='example.org'),
    'melissa@example.org',
    'juila@example.net'
    );
    - +

    Find all rows in the virtual_aliases table by looking for the right source email address. Remove all rows that you lead to destination addresses you don’t want to forward email to.

    DELETE FROM virtual_aliases WHERE source='melissa@example.org';
    - +

    If you don’t like using SQL queries to manage your mail server you may like to install a web-based management software. Several developers contributed web interfaces for earlier versions of this guide and they will probably still work because the database schema has not changed. Your experience with these projects, or links to further projects, is very welcome in the comments.

    - +

    Homepage: http://ima.jungclaussen.com/
    Demo: http://ima.jungclaussen.com/demo/

    ISPmail Admin screenshot

    - +

    Christian G. has created a text-based program to help you manage your mail accounts. You may like it if you just want a little help adding accounts and setting passwords but not provide a full blown web interface.

    You can find his Python script at Github.

    - +

    You can also use a basic tool like Adminer to manage the tables if you don’t want to type out SQL. To set it up:

    Run this on your server
    apt install -y adminer
    a2enconf adminer
    systemctl reload apache2

    Now Adminer is available as https://mailserver.example.org/adminer and allows you to login:

    Adminer login screen

    After login this is how the interface looks like:

    -

    Adminer main screen

    \ No newline at end of file +

    Adminer main screen

    \ No newline at end of file diff --git a/ispmail-trixie/overview/index.html b/ispmail-trixie/overview/index.html index 9ad6ee4..8e97707 100644 --- a/ispmail-trixie/overview/index.html +++ b/ispmail-trixie/overview/index.html @@ -1,4 +1,4 @@ - Big picture | ISPmail Guide - Skip to content
    Skip to content

    Big picture

    I have created a slideshow to help you understand the process of receiving an email from a remote mail server. Hopefully +

    Big picture

    I have created a slideshow to help you understand the process of receiving an email from a remote mail server. Hopefully it helps to get a better understanding of the steps involved in receiving email. We will prepare the necessary configuration in the next chapters.

    Use the arrows to navigate between slides:

    -
    • Slide 1
    • Slide 2
    • Slide 3
    • Slide 4
    • Slide 5
    • Slide 6
    • Slide 7
    • Slide 8
    • Slide 9
    • Slide 10
    • Slide 11
    • Slide 12
    • Slide 13
    • Slide 14
    • Slide 15
    • Slide 16
    • Slide 17
    • Slide 18
    • Slide 19
    • Slide 20
    • Slide 21
    • Slide 22
    • Slide 23
    • Slide 24
    \ No newline at end of file +
    • Slide 1
    • Slide 2
    • Slide 3
    • Slide 4
    • Slide 5
    • Slide 6
    • Slide 7
    • Slide 8
    • Slide 9
    • Slide 10
    • Slide 11
    • Slide 12
    • Slide 13
    • Slide 14
    • Slide 15
    • Slide 16
    • Slide 17
    • Slide 18
    • Slide 19
    • Slide 20
    • Slide 21
    • Slide 22
    • Slide 23
    • Slide 24
    \ No newline at end of file diff --git a/ispmail-trixie/postfix/index.html b/ispmail-trixie/postfix/index.html index fa295ae..586834e 100644 --- a/ispmail-trixie/postfix/index.html +++ b/ispmail-trixie/postfix/index.html @@ -1,4 +1,4 @@ - Postfix | ISPmail Guide - Skip to content
    Skip to content

    Postfix

    Todo list for receiving emails
    1. 1

      DNS records point to your server

    2. 2

      Get a certificate from Let's Encrypt

    3. 3

      Postfix fetches information from MariaDB

    4. 4

      Dovecot fetches information from MariaDB

    5. 5

      Postfix hands over emails to Dovecot

    6. 6

      Dovecot saves the email to disk

    +

    Postfix

    Todo list for receiving emails
    1. 1

      DNS records point to your server

    2. 2

      Get a certificate from Let's Encrypt

    3. 3

      Postfix fetches information from MariaDB

    4. 4

      Dovecot fetches information from MariaDB

    5. 5

      Postfix hands over emails to Dovecot

    6. 6

      Dovecot saves the email to disk

    Now that other mail servers can locate your mail server, the next step is to make sure it can receive and process incoming emails. This task is handled by Postfix, which communicates using the SMTP protocol.

    Postfix knows if an email address is valid by checking for…

    @@ -82,7 +85,7 @@ incoming emails. This task is handled by Postfix, which communicates using the S
  • Virtual Aliases (do I have to redirect this address to another address?)
  • Virtual Mailboxes (do I have a valid mailbox to store the email to?)
  • - +

    There are different ways for Postfix to get that information. From text files, LDAP, MongoDB or PostgreSQL. Or via MariaDB – which is what we will use. But whatever kind of data source you configure, Postfix needs the information as a mapping. Consider it as a question and an answer.

    @@ -103,7 +106,7 @@ MariaDB – which is what we will use. But whatever kind of data source you conf and dbname definitions tell Postfix how to connect to the database. And the query asks the question if a certain domain is present in the database table virtual_domains. Using SELECT 1 we return just the number 1 if such an entry was found. In fact it does not matter what we return. Any answer is fine.

    - +

    Now let’s deal with aliases. As shown earlier an alias redirects an email to another email address. So the question and answer game goes like this:

      @@ -119,7 +122,7 @@ and answer game goes like this:

      Run this code to create the appropriate mapping file:

      Run this on your server
      cat > /etc/postfix/mariadb-virtual-alias-maps.cf << EOF
      user = mailserver
      password = MAILSERVER-PASSWORD-HERE
      hosts = 127.0.0.1
      dbname = mailserver
      query = SELECT destination FROM virtual_aliases WHERE source='%s'
      EOF

      The query now gets all the destination email addresses from the database for a certain source email address.

      - +

      The last mapping we need is a query to find valid mailboxes. Without further ado:

      Run this on your server
      cat > /etc/postfix/mariadb-virtual-mailbox-maps.cf << EOF
      user = mailserver
      password = MAILSERVER-PASSWORD-HERE
      hosts = 127.0.0.1
      dbname = mailserver
      query = SELECT 1 FROM virtual_users WHERE email='%s'
      EOF

      Just the same story as with virtual domains. The database returns 1 if there is a virtual_users record matching that @@ -128,7 +131,7 @@ specific email address.

      saving the email to disk on its own. In our setup the email will be passed on to Dovecot in a later step. Dovecot will then handle the files on disk. Postfix just has to know is whether a mailbox exists. And that’s why any answer is sufficient here.

      - +

      You have created the config files for the three mappings. Now you just need to tell Postfix to use them:

      Run this on your server
      postconf virtual_mailbox_domains=mysql:/etc/postfix/mariadb-virtual-mailbox-domains.cf
      postconf virtual_mailbox_maps=mysql:/etc/postfix/mariadb-virtual-mailbox-maps.cf
      postconf virtual_alias_maps=mysql:/etc/postfix/mariadb-virtual-alias-maps.cf
      chown root:postfix /etc/postfix/mariadb-*.cf
      chmod o= /etc/postfix/mariadb-*.cf
      @@ -136,10 +139,4 @@ sufficient here.

      to restart Postfix.

      The last two lines set the owner of the config files (user=root, group=postfix) and make sure that others have no access. After all a database password is found in these files.

      -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/ispmail-trixie/quotas/index.html b/ispmail-trixie/quotas/index.html index 43a64ed..75ba004 100644 --- a/ispmail-trixie/quotas/index.html +++ b/ispmail-trixie/quotas/index.html @@ -1,4 +1,4 @@ - Quotas | ISPmail Guide - Skip to content
    Skip to content

    Quotas

    -

    Quotas

    + +find a solution for that.

    Quotas are size limits for users. You can make sure that users do not waste arbitrary amounts of disk space but are forced to clean up old emails every now and then.

    The magic happens in two places:

    @@ -82,8 +85,8 @@ forced to clean up old emails every now and then.

  • Dovecot needs to keep track of the quota and how much the user has already used up of it.
  • Postfix needs to reject new emails if the user’s mailbox is over quota.
  • - - + +

    As usual we need a new piece of configuration to enable the quota plugin and define how we want it to behave:

    Run this on your server
    cat > /etc/dovecot/conf.d/99-ispmail-quota.conf << 'EOF'
    # Enable the quota plugin
    mail_plugins {
    quota = yes
    }
    # Set global defaults. Keep this outside of a "quota {}" section so that it
    # can be overriden with data from the virtual_users table.
    # Allow 5 GB of space per default.
    quota_storage_size = 5G
    @@ -103,7 +106,7 @@ even if the user is over quota.

    if [ $LEVEL = "below" ]; then
    MAIL+="Thanks for making some space. You will now be able to receive emails again."
    elif [ $LEVEL -eq 80 ]; then
    MAIL+="Your mailbox is currently using up 80% of the maximum space."
    MAIL+="\nPlease consider deleting some emails. If your used space reached"
    MAIL+="\n100% then you would not be able to receive further emails. I will"
    MAIL+="\nhowever send you another email in that case."
    MAIL+="\n"
    MAIL+="\nThanks for your attention."
    elif [ $LEVEL -eq 100 ]; then
    MAIL+="I am afraid to tell you that your mailbox is now 100% full."
    MAIL+="\nNew emails to your address will be rejected by the server."
    MAIL+="\nPlease delete some emails immediately. I will send you another"
    MAIL+="\nemail once you have made some space."
    MAIL+="\n"
    MAIL+="\nThanks for your attention."
    fi
    echo -e $MAIL | /usr/lib/dovecot/dovecot-lda -d $USER -o quota_enforce=no
    EOF
    chmod u=rwx,g=rx,o= /usr/local/bin/ispmail-quota-warning.sh
    chown vmail:vmail /usr/local/bin/ispmail-quota-warning.sh
    - +

    By default you will probably allow all users to use a certain amount of disk space for their emails. That would be the global value that you set using quota_storage_size = ….

    But maybe you have some special users that need a different value. For a power user you could allow more space than for @@ -117,7 +120,7 @@ other users. Then set the quota field in his record in t

    IF(quota > 0, CONCAT(quota, 'B'), NULL) AS quota_storage_size

    That’s the SQL way of saying: if “quota” is 0, then return NULL. NULL tells Dovecot to fall back to the global value. Otherwise add a “B” (for “bytes” – Dovecot requires that) and return that.

    - +

    Now that quota restrictions are in place, you can ask Dovecot for the current status of all mailboxes:

    Run this on your server
    doveadm quota get -A

    You will get output like this:

    @@ -129,7 +132,7 @@ Otherwise add a “B” (for “bytes” – Dovecot requires that) and return t

    The current configuration just cares about the space that is used on disk. So in the above example he has 22,856 KB used of the 1 GB limit – which is 2%. And he has a total of 19 messages but there is no limit to that.

    - +

    You may wonder why there is a quota-status service. If a user is over quota then it would reject an more incoming emails. But Postfix – which sits in front front of Dovecot – would still happily accept more emails. For a sender on a remote server it looks like the email was delivered. But it’s now stuck between Postfix and Dovecot until the user makes @@ -145,14 +148,14 @@ queries. The protocol is very simple and you can even play with it as a human:action=OK or

  • action=554 5.2.2 Quota exceeded (mailbox for user is full)
  • - +

    Telling Postfix to use the quota-status service is suprisingly simple:

    Run this on your server
    postconf smtpd_recipient_restrictions="check_policy_service inet:localhost:13373"
    -
    - +

    If you are curious to see this working, then set John’s mailbox quota to 5 KB:

    # mariadb mailserver
    mysql> update virtual_users set quota=5120 where email='john@example.org';

    Verify that he now has a limit of 5 KB:

    @@ -161,7 +164,7 @@ find a solution for that.

    swaks --server localhost --to john@example.org -tls

    After a few emails you will see the rejection message:

    -> RCPT TO:john@example.org
    <** 452 4.2.2 john@example.org: Recipient address rejected: Mailbox is full and cannot receive any more emails
    - +

    These are things you should consider if quotas do not seem to work properly:

    - +
      -
    • https://doc.dovecot.org/2.4.2/core/plugins/quota.html#quota-service
    • -
    • https://sys4.de/en/blog/postfix-dovecot-mailbox-quota/
    • -
    • https://www.postfix.org/SMTPD_POLICY_README.html
    • -
    \ No newline at end of file +
  • https://doc.dovecot.org/2.4.2/core/plugins/quota.html#quota-service
  • +
  • https://sys4.de/en/blog/postfix-dovecot-mailbox-quota/
  • +
  • https://www.postfix.org/SMTPD_POLICY_README.html
  • + \ No newline at end of file diff --git a/ispmail-trixie/relaying/index.html b/ispmail-trixie/relaying/index.html index 0656a67..a72e953 100644 --- a/ispmail-trixie/relaying/index.html +++ b/ispmail-trixie/relaying/index.html @@ -1,4 +1,4 @@ - Sending / Relaying | ISPmail Guide - Skip to content
    Skip to content

    Sending / Relaying

    Your mail server is almost ready for use. But one puzzle piece is missing. Your users can receive emails but they cannot +

    Sending / Relaying

    Your mail server is almost ready for use. But one puzzle piece is missing. Your users can receive emails but they cannot send them yet. This part of the guide is a bit longer than others because forwarding emails has security implications.

    Let’s begin with the difference of how users send emails versus how mail servers send emails.

      @@ -93,29 +96,73 @@ expected to use the TCP port 587 which is called the submission port. M
    • The connection is encrypted so that the password can be safely transmitted
    • The sender address of the email matches the user’s account
    - +

    Let’s compare those services and ports side-by-side:

    -

    | Service name | SMTP | Submission | SubmissionS (S=secure) | -| -------------------- | --------------------------- | ---------------------------- | ---------------------- | -| TCP Port | 25 | 587 | 465 | -| Meant for | Other mail servers | Our users | Our users | -| Used by | Mail transport agent (MTA) | Mail user agent (MUA) | Mail user agent (MUA) | -| Transport encryption | Off. STARTTLS optional. | Off. STARTTLS mandatory. | TLS all the time | -| Authentication | Optional [^1] | Mandatory | Mandatory | -| Accepted sender | Anyone | Our own users | Our own users | -| Accepted receivers | Our own users | Anyone | Anyone | -| Your home ISP | may block this port | will allow this port | will allow this port |

    -

    [^1]: -In previous guides I recommended to set smtpd_sasl_auth_enable=yes globally in the main.cf. That would indeed -enable authentication on port 25. For a clearer separation I now rather suggest to leave it out (default is no) -and just enable authentication on the submission service in the master.cf file. A possible scenario that -required this setting to be on would be if your server were a relay (smarthost) for other servers using -authentication..

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Service nameSMTPSubmissionSubmissionS (S=secure)
    TCP Port25587465
    Meant forOther mail serversOur usersOur users
    Used byMail transport agent (MTA)Mail user agent (MUA)Mail user agent (MUA)
    Transport encryptionOff. STARTTLS optional.Off. STARTTLS mandatory.TLS all the time
    AuthenticationOptional 1MandatoryMandatory
    Accepted senderAnyoneOur own usersOur own users
    Accepted receiversOur own usersAnyoneAnyone
    Your home ISPmay block this portwill allow this portwill allow this port

    I hope this helps clarify the distinction. Human users must use the submission service on either port 587 or 465. The key difference is that connections on port 587 start unencrypted, and the email client must issue the STARTTLS command to enable encryption. In contrast, port 465 requires the email client to use TLS encryption right from the first byte of communication.

    - +

    All Postfix services are declared in the /etc/postfix/master.cf file. Most of them are used by Postfix internally, like pickup, cleanup, rewrite or bounce. But submission is not configured by default. Let’s fix that.

    Run this on your server
    postconf -M submission/inet="submission inet n - y - - smtpd"
    postconf -P "submission/inet/syslog_name=postfix/submission"
    postconf -P "submission/inet/smtpd_tls_security_level=encrypt"
    postconf -P "submission/inet/smtpd_sasl_auth_enable=yes"
    postconf -P "submission/inet/smtpd_sasl_type=dovecot"
    postconf -P "submission/inet/smtpd_sasl_path=private/dovecot-auth"
    postconf -P "submission/inet/smtpd_recipient_restrictions=permit_sasl_authenticated,reject"
    postconf -P "submission/inet/smtpd_sender_restrictions=reject_sender_login_mismatch,permit_sasl_authenticated,reject"
    @@ -150,12 +197,12 @@ can be.
    Run this on your server
    postconf -M submissions/inet="submissions inet n - y - - smtpd"
    postconf -P "submissions/inet/syslog_name=postfix/submissions"
    postconf -P "submissions/inet/smtpd_tls_wrappermode=yes"
    postconf -P "submissions/inet/smtpd_sasl_auth_enable=yes"
    postconf -P "submissions/inet/smtpd_sasl_type=dovecot"
    postconf -P "submissions/inet/smtpd_sasl_path=private/dovecot-auth"
    postconf -P "submissions/inet/smtpd_recipient_restrictions=permit_sasl_authenticated,reject"
    postconf -P "submissions/inet/smtpd_sender_restrictions=reject_sender_login_mismatch,permit_sasl_authenticated,reject"
    postfix reload

    The only difference to the submission (without the “s” at the end) is the smtpd_tls_wrappermode that switches on TLS encryption right from the start of a connection.

    - +

    Whenever possible we should encrypt our traffic. For our users’ passwords we make it mandatory. But even for server-to-server connections we should encourage it. Do not confuse it with end-to-end encryption of emails. That required using PGP or S/MIME. What we are dealing here is transport encryption. It encrypts the communication between a peer server and your mail server. What the peer server does with our email is beyond our control.

    - +
    Run this on your server
    postconf smtp_tls_security_level=encrypt
    postconf smtpd_tls_security_level=encrypt
    postconf smtp_tls_mandatory_protocols=">=TLSv1.2"
    postconf smtpd_tls_mandatory_protocols=">=TLSv1.2"
    postconf smtp_tls_mandatory_ciphers=high
    postconf smtpd_tls_mandatory_ciphers=high
    postconf smtpd_tls_cert_file=/etc/letsencrypt/live/mail.example.org/fullchain.pem
    postconf smtpd_tls_key_file=/etc/letsencrypt/live/mail.example.org/privkey.pem

    What it means:

      @@ -171,18 +218,18 @@ The list of encryption algorithms that you allow for communnication. Default is
    • smtpd_tls_cert_file and smtpd_tls_key_file:
      Where to find the private key and certificate for encryption.
    -

    Please note that configuration in main.cf applies to all Postfix services. So the above configuration enabled encryption for both server-to-server and human-to-server (submission) services. The smtpd_sasl_auth_enable will only -be set for the submission service to enable authentication there.[^1]

    - +

    Protecting against forged sender addresses

    Section titled “Protecting against forged sender addresses”

    Before we can actually test the setup, there is another security issue we need to address. While Postfix is configured to relay emails only after a successful login with a valid username and password, it does not prevent an authenticated user from impersonating another sender. For example, someone could log in as john@example.org but send an email @@ -216,24 +263,24 @@ sides. Let’s create it:

    Run this on your server
    swaks --server localhost:587 \
    --from john@example.org \
    --to list@example.com \
    --tls \
    --auth-user john@example.org \
    --auth-password summersun

    That will work:

    <~ 250 2.0.0 Ok: queued as AFFF12292A
    - + + +

    So far you have set up the submission service(s), enabled encryption and connected Postfix to Dovecot for authentication. Let’s try it. Our first test email will be sent without encryption and authentication:

    Run this on your server
    swaks --server localhost:587 \
    --from john@example.org \
    --to lisa@example.com

    Postfix should tell you that it will not accept an email without encryption:

    <** 530 5.7.0 Must issue a STARTTLS command first
    - +

    Our second attempt will enable (STARTTLS) encryption – but still no authentication:

    Run this on your server
    swaks --server localhost:587 \
    --from john@example.org \
    --to lisa@example.com \
    -tls

    Postfix will still reject the email because we refused to authenticate:

    ~> MAIL FROM:<john@example.org>
    <~ 250 2.1.0 Ok
    ~> RCPT TO:<lisa@example.com>
    <~* 553 5.7.1 <john@example.org>: Sender address rejected: not logged in
    - +
    Run this on your server
    swaks --server localhost:587 \
    --from john@example.org \
    --to lisa@example.com \
    -tls \
    --auth-user john@example.org \
    --auth-password summersun

    Also give the submissions service a try:

    Run this on your server
    swaks --server localhost:465 \
    --from john@example.org \
    --to lisa@example.com \
    --tls-on-connect \
    --auth-user john@example.org \
    --auth-password summersun
    @@ -245,10 +292,10 @@ STARTTLS to switch to encryption) we use --tls-on-connectthe sender has authenticated successfully with a valid username and password.

    I have created two illustrations to explain it.

    - -
    telnet localhost submission

    The server will let you in:

    Trying 127.0.0.1…
    Connected to localhost.
    Escape character is '^]'.
    220 webmail ESMTP Postfix (Debian)
    @@ -335,10 +382,15 @@ ASCII. So in the PLAIN method that information is
    NULL-BYTE + USERNAME + NULL-BYTE + PASSWORD

    So for John’s case you can easily create the Base64 string using:

    printf '\0john@example.org\0summersun' | base64
    -

    As a result you will get the exact same string you used above with “AUTH PLAIN”.

    \ No newline at end of file +

    As a result you will get the exact same string you used above with “AUTH PLAIN”.

    +
    +
      +
    1. +

      In previous guides I recommended to set smtpd_sasl_auth_enable=yes globally in the main.cf. That would indeed +enable authentication on port 25. For a clearer separation I now rather suggest to leave it out (default is no) +and just enable authentication on the submission service in the master.cf file. A possible scenario that +required this setting to be on would be if your server were a relay (smarthost) for other servers using +authentication.. 2

      +
    2. +
    +
    \ No newline at end of file diff --git a/ispmail-trixie/tls-certificate/index.html b/ispmail-trixie/tls-certificate/index.html index 5f995f1..e639ee9 100644 --- a/ispmail-trixie/tls-certificate/index.html +++ b/ispmail-trixie/tls-certificate/index.html @@ -1,4 +1,4 @@ - TLS certificate | ISPmail Guide - Skip to content
    Skip to content

    TLS certificate

    Todo list for receiving emails
    1. 1

      DNS records point to your server

    2. 2

      Get a certificate from Let's Encrypt

    3. 3

      Postfix fetches information from MariaDB

    4. 4

      Dovecot fetches information from MariaDB

    5. 5

      Postfix hands over emails to Dovecot

    6. 6

      Dovecot saves the email to disk

    +

    TLS certificate

    Todo list for receiving emails
    1. 1

      DNS records point to your server

    2. 2

      Get a certificate from Let's Encrypt

    3. 3

      Postfix fetches information from MariaDB

    4. 4

      Dovecot fetches information from MariaDB

    5. 5

      Postfix hands over emails to Dovecot

    6. 6

      Dovecot saves the email to disk

    Your mail server can’t work properly without a valid TLS certificate. It will be used in three places:

    1. the webmail interface (driven by the Apache web server)
    2. @@ -87,20 +90,20 @@ an important part of the certificate. It must match the name your users use to t

      Wrong: Your mail server is addressed as smtp01.example.com. But the TLS certificate was issued to mail.example.org.

      So choose an FQDN for your mail server. For example I use webmail.workaround.org for my personal server.

      - +

      You already have the certbot software and the apache2 web server installed. Requesting a certificate from Let’s Encrypt is as simple as running the next command.

      - +
      Run this on your server
      certbot --apache --register-unsafely-without-email --agree-tos -d mail.example.org
      Click here to learn what the options mean…
        -
      • —apache: Use the HTTP challenge to verify that you are actually +
      • --apache: Use the HTTP challenge to verify that you are actually in control of the FQDN. The certbot plugin will add some configuration to intercept HTTP requests to /.well-known/acme-challenge/… on your web server. This is a fully automatic process that does not even have to stop your web server.
      • -
      • —register-unsafely-without-email: Do not ask for an email address to send to Let’s Encrypt. Before June 2025 +
      • --register-unsafely-without-email: Do not ask for an email address to send to Let’s Encrypt. Before June 2025 Let’s Encrypt used that address to inform you if your certificate is about to expire and the automatic renewal failed. Nowadays they do not need an email any more. But for historical reasons they still ask for it by default.
      • -
      • —agree-tos: Confirm that you have read Let’s Encrypt’s terms and conditions. Let’s be honest – nobody reads that.
      • +
      • --agree-tos: Confirm that you have read Let’s Encrypt’s terms and conditions. Let’s be honest – nobody reads that.
      • -d: The domain that the certificate will be issued to. This has to be the exact FQDN of your server.

      The output should look like:

      @@ -117,7 +120,7 @@ certificate along with your own for clients who may not know LetsEncrypt properl file to use when a piece of software asks where to find the certificate.
    3. privkey.pem: the private key file. Keep it secret.
    4. Well, actually those are not files but symbolic links pointing to the “archive” directory. But don’t worry about that.

      - +

      Your new certificate is only valid for 3 months. Fortunately the renewal is happening automatically. A systemd timer checks your certificate frequently and triggers a renewal one month before it expires.

      It is important that services that use the certificate load the new certificate after an automatic renewal. This shell @@ -127,10 +130,4 @@ command will create a file /etc/letsencrypt/cli.ini that

    # Adjust interactive output regarding automated renewal
    preconfigured-renewal = True
    EOF

    Perfect. You won’t have to worry about the certificate again.

    Click here to learn how the renewal works…

    These commands will show you the definition and status of the timer and the renewal service:

    Run this on your server
    systemctl status certbot.timer
    systemctl cat certbot.timer
    systemctl status certbot.service
    systemctl cat certbot.service

    Systemd timers are similar to cron jobs. They require more work to set up but have some nice features and make you -look cooler.

    \ No newline at end of file +look cooler.

    \ No newline at end of file diff --git a/ispmail-trixie/upgrading/index.html b/ispmail-trixie/upgrading/index.html index fa9c287..36a1682 100644 --- a/ispmail-trixie/upgrading/index.html +++ b/ispmail-trixie/upgrading/index.html @@ -1,4 +1,4 @@ - Upgrading from Debian Bookworm | ISPmail Guide - Skip to content
    Skip to content

    Upgrading from Debian Bookworm

    +

    Upgrading from Debian Bookworm

    Did you follow the ISPmail guide for Debian Bookworm to install your mail server? Then let’s take it to Debian Trixie.

    - +

    I always try to keep things similar to previous versions of this guide. Most of us are happy with their mail servers and want to change as little as possible when a new Debian release comes along. Just a few changes that come with the newer software versions:

    @@ -88,7 +91,7 @@ authentication) and TCP 587 for human-to-server connections (with authentication
  • certbot is now using the python3-certbot-apache package. Getting and renewing certificates is now handled magically by Apache without any downtime or additional configuration.
  • - +

    A new Debian stable release comes with newer software versions. So I checked the changelogs to determine what we will have to change:

      @@ -98,10 +101,10 @@ have to change:

    • rspamd 3.4.1 -> 3.12.1. No breaking changes.
    • Roundcube 1.6.1 -> 1.6.11. No breaking changes.
    - +

    Do not try to upgrade your existing server using apt-get dist-upgrade. There are too many changes especially with Dovecot. Start with a fresh installation on another server and then migrate.

    - +

    At some point during the migration, you need switch your DNS record to point to the new server. There are a couple of options:

      @@ -113,7 +116,7 @@ server as a mail server already, because some companies attach a reputation<
    1. Add a second MX record pointing to your new server. Assign the same priority. That way you can safely switch off your old server and later remove its MX record.
    - +

    You need to copy the database that contains the control data about your email domains and accounts. Log into the old (Bookworm) server as root and back up the mailserver database. That is as easy as running…

    mariadb-dump mailserver > mailserver.sql
    @@ -121,13 +124,13 @@ old server and later remove its MX record.
    mariadb mailserver < mailserver.sql

    Obviously any database changes on the old server from now on will have to be done on the new server as well until the migration is done.

    - +

    Please check if any of your users have hashed passwords that are considered weak by Dovecot. Those passwords using a PLAIN-MD5 scheme are not accepted by Dovecot by default. But you can enable them again using:

    Terminal window
    cat > 99-ispmail-weak-schemes.conf << EOF
    auth_allow_weak_schemes = yes
    EOF

    Your users should change their passwords using Roundcube. That way a new hash with a more secure schema is created.

    - +

    If your users are using Roundcube as a webmail interface then you should migrate their data like their contact lists. Dump the SQL from the old server:

    Terminal window
    mariadb-dump roundcube > roundcube.sql
    @@ -137,13 +140,13 @@ Dump the SQL from the old server:

    the users table. So as a last step change that column if your new mail server has a new FQDN/hostname by running this SQL query on the new roundcube database:

    UPDATE users SET mail_host='new.mail.server';
    - +

    If you have been using rspamd with the Redis backend then copy over the Redis database from your previous server.

    Stop rspamd on both the old and the new server. Then:

    Terminal window
    rsync -va oldserver:/var/lib/redis/ /var/lib/redis/

    Once the redis database is started again on the new server, rspamc stat should show you that the training data is found.

    - +

    (Hot means: copy the files why they are still in use and potentially change while you do that.) Fortunately Dovecot uses the maildir format that stores emails as plain files on disk. Login to the new (Trixie) server and use rsync to copy over the mails from the old (Bookworm) mail server:

    @@ -155,21 +158,21 @@ synchronization.

    Another way to copy over the emails is using Dovecot’s doveadm-sync command. It may be especially handy if you need to copy emails from another server where you only have IMAP access but cannot access the files directly.

    - +

    Copy over everything in /etc/letsencrypt and /var/lib/rspamd/dkim from your old to the new server.

    Terminal window
    rsync -va oldserver:/etc/letsencrypt/archive/ /etc/letsencrypt/archive/
    rsync -va oldserver:/var/lib/rspamd/dkim/ /var/lib/rspamd/dkim/
    rsync -v oldserver:/etc/rspamd/dkim_selectors.map /etc/rspamd
    - +

    You told your users about the downtime, right? The time has come? Okay. Shut down Dovecot on both servers.

    - +

    (Cold means: the processes have stopped or you made sure that there is no user activity so that the files can be copied consistently.) Let’s synchronize again. rsync will only copy those files that have changed which makes it much faster than the first sync. On your new server run:

    Terminal window
    rsync -va --delete oldserver:/var/vmail/ /var/vmail/

    (The “--delete” option makes sure that files that have been removed from the old server will also be deleted from the new server. So if a user has deleted an email it will be deleted on the new server as well.)

    - +

    For all your domains you will have to change the DNS “MX” or “A” record to point to your new server.

    - +

    Accidents happen. And you don’t want to lose emails. So run this command to enable your safety net on the new server:

    postconf soft_bounce=yes

    This makes Postfix always keep emails in the queue that it would otherwise reject. So you can fix any errors and the @@ -178,15 +181,9 @@ time to see what emails get stuck in the queue. If you are certain that emails c “postsuper -d QUEUE-ID” (as shown in the “mailq” output).

    Once you are certain that emails are properly received and sent you can switch off the soft_bounce mode again:

    postconf soft_bounce=no
    - +

    If possible do a final backup of the old server. If users are not complaining then dismiss the old system after a week.

    - +

    You may see error messages like:

    Error: sieve: binary /var/vmail/example.org/user/.dovecot.svbin: read: binary stored with different major version 2.0 (!= 3.0; automatically fixed when re-compiled)
    -

    You may need to run sievec on those files.

    \ No newline at end of file +

    You may need to run sievec on those files.

    \ No newline at end of file diff --git a/ispmail-trixie/virtual-domains/index.html b/ispmail-trixie/virtual-domains/index.html index 4a3321f..fa0ae6c 100644 --- a/ispmail-trixie/virtual-domains/index.html +++ b/ispmail-trixie/virtual-domains/index.html @@ -1,4 +1,4 @@ - Virtual domains | ISPmail Guide - Skip to content
    Skip to content

    Virtual domains

    Your mail server will have one fully qualified domain name — for example, postbox.example.com. In this case, the base +

    Virtual domains

    Your mail server will have one fully qualified domain name — for example, postbox.example.com. In this case, the base domain is example.com. If someone visits https://example.com/, they might be greeted by the Roundcube webmail login page.

    But your server doesn’t have to handle only one domain. You can have mailboxes on multiple domains like:

    @@ -87,10 +90,4 @@ receive emails for them. Your users will also have passwords that they need to t even set up mailing lists that take messages sent to one address and forward them to several mailboxes at once.

    To make all this work, we’ll store the configuration in a small MariaDB database. Postfix, Dovecot, and Roundcube will all read from this database to know which domains exist, which mailboxes they have, and where each email should go. You -will create that simple database on the next page.

    \ No newline at end of file +will create that simple database on the next page.

    \ No newline at end of file diff --git a/ispmail-trixie/webmail/index.html b/ispmail-trixie/webmail/index.html index c17d18d..76d7220 100644 --- a/ispmail-trixie/webmail/index.html +++ b/ispmail-trixie/webmail/index.html @@ -1,4 +1,4 @@ - Webmail using Roundcube | ISPmail Guide - Skip to content
    Skip to content

    Webmail using Roundcube

    Webmail using Roundcube

    Now that the email has arrived, our valued user surely wants to read it. Most humans nowadays seem to prefer reading their email in the web browser, because it’s the simplest way. (Don’t worry. Power users who prefer mail clients like Thunderbird will also get what they want.) So let’s prepare Roundcube for them.

    @@ -101,7 +104,7 @@ users to the HTTPS site. So if user accidentally forget to type

    So to get Apache to serve the Roundcube application you need to edit the /etc/apache2/sites-available/000-default-le-ssl.conf file.

    - +

    Set this:

    Edit /etc/apache2/sites-available/000-default-le-ssl.conf
    ServerName mail.example.org
    DocumentRoot /var/lib/roundcube/public_html
    Include /etc/roundcube/apache.conf

    Meaning:

    @@ -115,19 +118,19 @@ users to the HTTPS site. So if user accidentally forget to type Check that Apache is running properly:

    Terminal window
    systemctl status apache2

    In case of a problem run apache2ctl configtest to find the cause.

    - +

    The main configuration file of Roundcube is located at /etc/roundcube/config.inc.php. Feel free to customize the file. Fortunately nowadays the basic settings are already as we need them. However these two settings need to be changed by you.

    - +
    Edit /etc/roundcube/config.inc.php
    $config['imap_host'] = 'tls://mail.example.org:143';
    $config['smtp_host'] = 'tls://mail.example.org:587';

    So now when your users enter https://webmail.example.org/ in their browser they should get the Roundcube login form:

    Roundcube login dialog

    Keep in mind that we are using the email address as the account name of the user. So when logging in please enter the email address as the user name. E.g. john@example.org and password summersun.

    If the login fails, check /var/log/roundcube/errors.log.

    - - + +

    Roundcube comes with various plugins that you can offer your users. I suggest that you enable at least

    • the password plugin so that your users can change their access password
    • @@ -137,7 +140,7 @@ email address as the user name. E.g. john@example.org an plugins change it to:

      $config['plugins'] = array(
      'password',
      'managesieve',
      );

      Plugins are configured through files located in the /etc/roundcube/plugins directory.

      - +

      Let’s quickly set up the password plugin:

      Run this on your server
      cat > /etc/roundcube/plugins/password/config.inc.php << 'EOF'
      <?php
      $config['password_driver'] = 'sql';
      $config['password_minimum_length'] = 12;
      $config['password_force_save'] = true;
      $config['password_algorithm'] = 'blowfish-crypt';
      $config['password_algorithm_prefix'] = '{CRYPT}';
      $config['password_db_dsn'] = 'mysql://mailadmin:MAILADMIN-PASSWORD-HERE@localhost/mailserver';
      $config['password_query'] = "UPDATE virtual_users SET password=%P WHERE email=%u";
      ?>
      EOF
      chown root:www-data /etc/roundcube/plugins/password/config.inc.php
      chmod u=rw,g=r,o= /etc/roundcube/plugins/password/config.inc.php
      @@ -167,7 +170,7 @@ hash. %u is the logged-in user and conveniently matches

      Try it. Log into Roundcube as john@example.org with password ‘summersun’. Go to the Settings. Choose Password. Enter a new password twice. You should get a success message at the bottom right. Now logout and login with the new password. Does it work? Great.

      - +

      Sieve is a simple programming language to be used for server-side rules. Dovecot executes these rules every time a new email comes in. There are global rules that are executed for every email. And of course every user/mailbox can have its own rules. To manage sieve rules Dovecot offers @@ -181,10 +184,4 @@ the managesieve interface that you enabled earlier. So we just need to

      Try adding a sieve rule for john@example.org in Roundcube. That feature is located in Settings/Filters. You will find the machine-readable sieve code at /var/vmail/example.org/john/sieve/roundcube.sieve.

      The rule editor looks like this:

      -

      Roundcube's sieve rule editor

    \ No newline at end of file +

    Roundcube's sieve rule editor

    \ No newline at end of file diff --git a/linux/renaming-multiple-files/index.html b/linux/renaming-multiple-files/index.html index 6d7132a..39570d3 100644 --- a/linux/renaming-multiple-files/index.html +++ b/linux/renaming-multiple-files/index.html @@ -1,4 +1,4 @@ - Renaming multiple files | ISPmail Guide - Skip to content
    Skip to content

    Renaming multiple files

    If you need to rename a larger number of files following a certain pattern then you will long for an automated solution. The ‘rename’ command helps you here that is (at least on my Debian installation) part of the Perl installation. All you need to know is the basics of regular expressions to define how the renaming should happen.

    +

    Renaming multiple files

    If you need to rename a larger number of files following a certain pattern then you will long for an automated solution. The ‘rename’ command helps you here that is (at least on my Debian installation) part of the Perl installation. All you need to know is the basics of regular expressions to define how the renaming should happen.

    Say you want to add a ‘.old’ to every file in your current directory. At the end of each expression ($) a ‘.old’ will be set:

    rename 's/$/.old' *

    Or you want to make the filenames lowercase:

    @@ -80,10 +83,4 @@
    rename 'tr/a-zA-Z//s' *

    Or you have many JPEG files that look like “img0000154.jpg” but you want the first five zeros removed as you don’t need them:

    rename 's/img00000/img/' *.jpg
    -

    In fact you can use any Perl operator as an argument. The actual documentation for the ‘s’ and ‘y’/’tr’ operators are found in the ‘perlop’ manpage.

    \ No newline at end of file +

    In fact you can use any Perl operator as an argument. The actual documentation for the ‘s’ and ‘y’/’tr’ operators are found in the ‘perlop’ manpage.

    \ No newline at end of file diff --git a/linuxtip/pipes/index.html b/linuxtip/pipes/index.html index af62d7e..69cae2a 100644 --- a/linuxtip/pipes/index.html +++ b/linuxtip/pipes/index.html @@ -1,4 +1,4 @@ - Pipes and redirection | ISPmail Guide - Skip to content
    Skip to content

    Pipes and redirection

    Many system administrators seem to have problems with the concepts of pipes and redirection in a shell. A coworker recently asked me how to deal with log files. How to find the information he was looking for. This article tries to shed some light on it.

    - +

    Pipes and redirection

    Many system administrators seem to have problems with the concepts of pipes and redirection in a shell. A coworker recently asked me how to deal with log files. How to find the information he was looking for. This article tries to shed some light on it.

    +

    Many of the basic Linux/UNIX shell commands work in a similar way. Every command that you start from the shell gets three channels assigned:

    • STDIN (channel 0):
      @@ -83,39 +86,39 @@ Where your command’s output is sent to. If you don’t specify anything specia If anything wrong happens the command will send error message here. By default the output is also displayed in your shell.

    Try it yourself. The most basic command that just passes everything through from STDIN to STDOUT is the ‘cat’ command. Just open a shell and type ‘cat’ and press Enter. Nothing seems to happen. But actually ‘cat’ is waiting for input. Type something like “hello world”. Every time you press ‘Enter’ after a line ‘cat’ will output your input. So you will get an echo of everything you type. To let ‘cat’ know that you are done with the input send it an ‘end-of-file’ (EOF) signal by pressing Ctrl-D on an empty line.

    - +

    A more interesting application of the STDIN/STDOUT is to chain commands together. The output of the first command becomes the input of the second command. Imagine the following chain:

    Diagram of STDIN, STDOUT and STDERR

    The contents of the file /var/log/syslog are sent (as input) to the grep command. grep will filter the stream for lines containing the word ‘postfix’ and output that. Now the next grep picks up what was filtered and filter it further for the word ‘removed’. So now we have only lines containing both ‘postfix’ and ‘removed’. And finally these lines are sent to ‘wc -l’ which is a shell command counting the lines of some input. In my case it found 27 of such lines and printed that number to my shell. In shell syntax this reads:

    cat /var/log/syslog | grep 'postfix' | grep 'removed' | wc -l

    The ‘|’ character is called pipe. A sequence of such commands joined together with pipes are called pipeline.

    - +

    Actually ‘cat’ is supposed to be used for concatenating files. Like “cat file1 file2”. But some administrators abuse the command to put something into a pipeline. That’s bad style and the reason why Randal L. Schwartz (a seasoned programmer) used to hand out virtual “Useless use of cat” awards. Shell commands usually can take a filename as the last argument as an input. So this would be right:

    grep something /var/log/syslog | wc -l

    While this works but is considered bad style:

    cat /var/log/syslog | grep something | wc

    Or if you knew that grep even has a “-c” option to count lines the whole task could be done with just grep:

    grep -c something /var/log/syslog
    - - + +

    Instead of using the console for input and the screen for output you can use files instead. While

    date

    shows you the current date on the console you can use

    date >currentdatefile

    to redirect the output of the command (STDOUT) to the file named ‘currentdatefile’.

    - +

    This also works as input. The command

    grep something

    will search for the word ‘something’ in what you type on your keyboard. But if you want to look for ‘something’ in a file called ‘somefile’ you could run

    grep something <somefile
    - +

    You can also redirect both input and output in the same command. A politically incorrect way to copy a file would be

    cat <oldfile >newfile

    Of course you would use cp for that purpose in real life.

    - +

    So far this covers STDIN (<) and STDOUT (>) but you also redirect the STDERR channel by using (2>). An example would be

    grep something <somefile >resultfile 2>errorfile
    - +

    Many admins stumble when it comes to redirecting one channel to another. Say you want to redirect both STDOUT and STDERR to the same file. Then you cannot do

    grep something >resultfile 2>resultfile

    It will only redirect the STDOUT (>) there and keep the ‘resultfile’ open so “2>” fails to write to it. Instead you need to do

    @@ -124,7 +127,7 @@ If anything wrong happens the command will send error message here. By default t

    What does not work is this order:

    grep something 2>&1 >resultfile

    It may look right to us humans but in fact does not redirect STDERR to the ‘resultfile’. The explanation: the shell interprets this line from left to right. So first the “2>&1” is evaluated which means “send STDERR to the same that STDOUT is currently set to”. As STDOUT is usually just printed to the shell it will send STDERR also to the shell. Next the shell finds “>resultfile” which sends STDOUT to the ‘resultfile’ but does not touch the previous destination of STDERR. So STDERR output will still end up in the shell.

    - +
    • grep
      Filters out lines with certain search words. “grep -v” searches for all lines that do not contain the search word.
    • @@ -142,10 +145,4 @@ Useful at the end of a pipe. Allows you to browse through the output one page at Shows the first ten lines only. “head -50” shows the first 50 lines.
    • tail
      Shows the last ten lines only. “tail -50” shows the last 50 lines. “tail -f” follows a certain file.
    • -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/pagefind/fragment/en_13f7bd8.pf_fragment b/pagefind/fragment/en_13f7bd8.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..ac52edfffd51a0fd58315f5de36e2a074401cbf8 GIT binary patch literal 9774 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 I(|Kk90Gt{Pg8%>k literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_1410a2d.pf_fragment b/pagefind/fragment/en_1410a2d.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..d879cc229130643b1a6a39326e74a8dfec8589e6 GIT binary patch literal 3593 zcmV+k4)*aMiwFP!00002|CL$WZXCxE{guul24jFbYf_T!EFs9UMA?dEi>By{Vj4v6 zOz+N^Gt=Yl9g*y*v)7Z>m6Q2oR`{mUMLAtqd%3o*nyt-(zi53?ucpqnb(XdZGn?#BQd?-1Xk+9a@KPSgH6I>6O~5DNQitM%nmq zqMk0*#z4ZZo(jp|cl_%v13TlnYgftF2MN@ntEd=U`}HvX z`k*T?V_Vq6m1WE$3VjfBeP!sG6uB70Lbjpk;yWP5w<{!C;0w}R*DKNDu}#|w!8)~;3SCV~&bPmv zU1>Kfi^Xi{S53Qs#us_0kYf+wjBie#NriBRl3#qz2+j&;QsmxdR8rK+((kP0e0I$O zxN#<7B;`eJiQWdUAO$%Uwgo?=>ZY?ya)hm*n8fV%gzax7=$}()yx};K3Uo*#ZY}Pm z3J46N)#4&N)4C#T`dTqZZA;5Gi_sW-A#q`6LlXd3QG#07d8 zILXZp1SK|eek;oUuvb*Nxgam> z{iyD%^GPUg0y)xjesK5B`Q&Ig>8mh0xp(`)dmn$acSQMAQ}vGpuWQuETPS~9a^d(a z_C0Wt$Ux{XKs~o@nQ_6|E>NXKkEI%3&D9sia1K_21>zSba)YkDGtr^c;)bUs06+=k zNnPxiY|G>aX0QpkWhJFnHNs!Tl3PV`FPA!doU9U{_b)%$y#8dXZ~c{sD5O1;vU@X=V8;zV2tP>9f$y~|{Jn}TwAI_ktXl79m2@;f;9E!*G%A_cs z2OmtmFNadxRX`t|+-UTUVC4{KAg%*Ps8hEAAxe!4#gbYBRS8G+uI$QP8jFCrsXoJ% zerBAr&L{XRH**h`?=T=RZ5k6KqTOD483Zyn>=+l@yNN8^QhOiajhYKIL+dj&=P z49PR^oj+%u+edEbLI7ecBHg12ibqY%us|m6oReQruc$Y$YSchC%u8$NK^S7Za249H z(iOs?gnv^LZcIvkrT(5Vw{1~LP@z!1Ac!3mF{B=@sETd3;@b+8_?hrV?JAOX)4Or2 z6f!q3HMMYlsCOYsN`F8+L|5BUfr&qJkV zwBqsy%T{@8yIon1ZFI--PRCIj?%=yHlv0c&f%wkt$G12$ikx)^Zt^aMQrq}_i95TS zT#zBiVM6? zy{bPy21Y-Jxnh+EB_4=fmWOUQ$a15NRTYvAXSB2igd9YiwhQbx=6|p*<_q|Ot)yPv zh^G#<#7QImB_Dro3t@t>_Y=d14)|}Ji_wOQ%z^bfY1|k+sXZ4`LB8=4L>j|+uYn{_ zZjgY&Ra9+tQJQ)ca+Y*(ctrFXj)QXtccD=`>5Ope!6CuR=`_S*48a~DbzL-ubBqdR zwnomfpwR=Ivul7f+mhKWU{G9$pz_44v7K=wKB|3_MTlf-E<8pswgv-~ITE<=1ceB? zHAwb08g_?rxfN{_37u;%4LOo8n2Rq>*>IA>->yRirZskBM>Trs5Rp?DotYYR3*OH_ zGFy)DAlS4yDpwYYB1}dIlFrxl$_=4V>vB*OQIGkMR{pS4vs|*op4YXCIoT+W-*RV9mxgsU|2gT&b z!th8%PU3Jbrj~-0eUvq&>YjKI;YCfA2(n z_xbVZv2dvS@3l0doW(}OqWUI8Bjcc{ESh&Rt*Cb_NE9w8s1!D(PEF1Xtas}*0Wwm* z*LFRRh6IyM;dfc_;z!tvB&AI)xEq2BX6&yI4T<_vW9Q`CuGKPXyB5LBoLU$vfpujz zrO}YM*_;v{0C3oZ%-8Gnl#Unt8 z)R6IH zLhnFCs@yKp;&?*PMt{O!?4-}(CxSKCt%ZHXO_%FI5j@wSs4zx{I0cDEz+x zDR@hI=7!x*mlC5>*RrCYB>KTi^SI`A>7jK>#w&TeqlQEk2YMrCdC5h4ZoFsl1&{Sx z#>soGp0mDlhIohWG)6=Q%B`FM#*U|^9!Vz`*^Y=_kHs2PA@6n-^s_E6w@1a10;9!J z-yoT#4geyw@-V_AOv{`MK>JM{^ebiKK9%nqc>idyVqlT$J$rC_9QR$#p^ai3z2yW$ z9AihfYU~!b?cygi?0M$`^~3puJVy2JeDdQFHNzZr8e-=3`c(7Vp-DV;KB3(kB%V(a z^;&fY@#WL6K7IcEOny32Z#e#$<>KFg9y<&dU%5o%G1Xx-NOmASq#v&c05c-Dcq7JC zn{s)&bZAW(?QN)rqZ`R<%F#*6lxr0nJ{Y~?JL7S8c<(xz&ASRdds37GU1x&b?`tdU zt^oDEtHs-yR_eInzoHn;#%n^-X(r(9p`GyGlJsMB3(bP+7+7Vv8F9fI~J97~jx$^7txH~U+%4m(-J=)LM7 z^Xc}tgP?=MJGV*d*F96&^bgW@UrBCD{P5mw5=(juFqMWd4R+dBmqGNcFABEqxO4aJ zZFj_iI!HX}zZlNn{pjPJ^LP65kypg`#ek&*|>-`<>G> zkFJtQn#Y&%IR5iiU1nQ@t-aLFXHlBQ>9xw)p1#rWg8Osl0yXY(u_M^#$n zwr`##)sH{?m7TBB+$_>+DznAuWRjFgjwNCKX|Zq%5h~rN*d1G2dDz;pPMf|t?ri2H zsm9a9$`sFk$1N$!ShiFqO>C9sLYavR^vnI?(J;jZ=Sr)LZK60X6Kl<+EN15M*^qk{ zVNa6`v|)!9({w!T%w83yin43`W!ofYt74wy*wfq$pI^K*;Eg;P3jx~~k6xO2fde?a zzk>#`tV>B30#?_yNVClFB!$^Hq|!M{qP&td+G3WFW0H*gb6RPaBG1rzJWl47-&rtPuRt(tRZvUcljwxuM-ScCV#^Da9&$M9CyQ};0#Ob?3+0r zCozxO3shSAZLOwdQD05nkMpv)fk>6YQrkyMNb63UmVt_ARO3%xQDTxHALyPH6qs?D z#C#fMR%m70Ff)$cT4*OP&1Es>(o^b#ECZEZE$s%`U9PI1XpHlTghNy4t#X#cX;d!J zp;{!EE9^OE->{#BHj%zL70VMcqSpmbX%=c=x4lX-KS(T-Z|fAR!%R5+q;t5SzF4$& z*$exta1hv!qH`Kt9ES)}b^pP~PDGpiU;|r^M1z6~wgabfc3B2ECc`O|ee)9fc#^&` zGxA7VfP&PCR)~b+U6W3J{NaBn^11^2&u*H_Y;zNZ`S`HHH|SB-41B)RZ^me|g>CdE zpMlpCvrXkybE~U*K4`Rt7l0klE>QB;E+9=hcuNCeU!Z`?<(yk+Rd72!#H>KJZ8V{5 zRArRgSz4jFj>WSfsZQjaE_GTdYBVv47Ae3cLSbOfWywyz55p!k)?!@D=8-T(VH4rC z6s#>v;zq#+K(czHWsiRc=B*iO6C-=`R>yza8oKjkXtsw(!lTI!9=tWZ4gcKo^PQgF z{#d3XkG>>7yoK(^|H!Iu&4(Y|m#5EzK7VUotP31|3}(Ok`7PxG^0ee2>>>vyj0Yuw zF}I&z9Pjvt%4P2NSMU5C6o-)<$LN;6m`re%7suxp7te+;b*j+&Yfon6^r|SAe8e9h zj=~vLD#!KK9C!5t25^I!Km76F8==h&vGN&RMKY7vvm<`Vmo$UAJHf_n_}=R5yr+%L z!g%4sTXnvsFu3M)NLHJ{B#*LU4C^ntSdUjsi)gdE{LG~eX!7P|a+4O24ROk>ITeFA zn{k0oE5ants(E~ABb!}PSzIQ0G|G~rCE8zQ#Yn7Us@j>ZPJcXc9?YVsvlx%!1cPa> zRsHN0*5Q3s=n+hL0)eEyfnaK*Q>e0q!58wVt*@@&UXeJogd0lV2QKJ#oJ^uRtEg@A zLbcMLs8w&BctvqK;cu2=siDUcGfA_AKGM8ELk?xf7_&^BA`A9Kb{HF0(YFA3BhmJ{ z3HY2&)F^r{E1`99KGwFK!9#`)s&+&m)&6-&tm%fYET9k90c&7sXQkTqF4 z$Co~+DB!+%T0=4%n~ACMR&2xi@i9qd{$Sof5tN4N;%m4PEvGtl9#Et1Z8%hRh4I0s zIu8b5H`t4$?e_^)prls1f<%)Wr9%JrC-YQ zYFeqGWsgZ(f|k*;l8}J})Vbev^Qg!t=~Z2>Zr>m5H^F>>Ss-@av^PejWMsfIN@CAt zd+j<0F z;7{sXE$7KmT--p<{U>EKloCqf_+hK5w@)OGAET8t5+{79^VR+itas=-|WMo!HFPL|rz zS#&Md$`ZIBh5(_21o4p=s&O%2?#)S}j2IRPDKDI;LCwSKc}*fPP@KjL2i_xFeba*- zf2a6pllMqStI;MQSbf~)^VMg!vU028&*WA(gY=c4(h}=~t$}%ljd8(^I*$mHdvFr+ zM308%IcNOa3Q)X~6&ylhC>tUdhOGpyJeLWxIL=cuDPc|PWXfbhz^N9~lW6{D=)PTG#DvpZs2;Iq+d*A?09N`RHC0ORN11z*KnvIT&#h`!( z@QG1z~ou9B>td&dbCvR zq3FaTV|5w5U+b8AMZ{ORNFA)lD%0XRv=s8nGJtACmQ<{$hE1GFy{Qc8kWW8H8w>+C zjjt1@p!aT~au2a&kp=y~S>>EWCA`B@WhQm8kkibVFU(UAB#T5lgCIAR=mX+8h4&EO zrM^_~-3SWzv~^fV{^;8HD0 z2kj=Ttu#X(rbQRHc34d~v~{b$p|^{eC3YoZth51E%c8Ukh`pZj?6~=YzVYC9n|*J4 z+)&|)ALr)BAO6$+_``o02P?2@Dm+ZyY9K#pX|EYyZEm5E+YhWww4N>;3>%m>_)$s`>sniKMdFa$wQ zQ67UY+yd+vmtuxoGfX0zy{hOrDQ#=U&dittAR@-nEPsjJ0Ea_koAE2 zP6E;+3Vk(k;^r2(ywx-=f)a%<19f{76=zkXC#hT?@Pb}mbx5zcPwaK z)=%CdGg!GXX=m<6~9BsPhNay zshhobpYOoD5SL2u?lzE36jhPQi4oubOZ~xs5u~PIL|IHJFL6Cahr|8-2kln(C|ja6 z5BCoq^xwfSx6tUG4#Ws#sp5JqZ4_l!1@>$@vrRap>!3DN-O+%Mj~l3)Y1Dew-^6X2 z>tAD;0d;vPriaxgs#(-H3%JW(93!1*s+a_{727lDgxr}U|Lf;OVoNH=am1V?$)~e7 zk?c^>QhqM=>_fWQysp|M9}-)Ok+k((bShkMw4@mer??HIfN*VmYVC=XgAVCwX15G!82JgtzA~$eK-59?DslrxZHr_B(Lamk4H)W z2{TrsXngHm111RG_*H1CTMX5V1rL3%(usG35MF>>m;cVg6mSv{<_KyKZGfi*U*Lq% zi2KkT#z)mHj-3dkjH6sL)m+Au35V8i+l_~_)0#2>7VDvJQ&Pgja8iZhn$1|><}44n zEa^*TkJFG_WV+A6#l+5aK7_;4BLiQ#a9Uyo z`B9B0*@&i-^AG08`QN3A& zVwaz^oq644OJI}GP(S|gA3jCosuLVE(ysTQ`$_!}~+fIL= zohIen256W*sYo2llUVu!1MTW&TnW<+T*9~;nR|bCSD;$DYvc`PT)Ed=Q7815bhvCM zz#HsU!TK?7Q&<)ENBwGN*>^)BmV($s)j$%s;7`Rg|JROZSG&TzP*=j30og*uFvsM7 znS4~%IW{LwLU$>)c^zEtCKL2T1QIMWugf{hC;Wc8f+SY>`E;nOi|IsLE~JX)IFKhk zB0#i-fwg}M=IgJ7xjaOf`P&P0$KT17Vs=cLu`pv zCw;I>WjwR zMxKaLO4@s*LKyN3qQyP^>hDD{8*DfBqdD}HCAB*&F1>Elnl3r2nz>zd>n#iR$`2wJ z$L8k&O&b6r@iJSWWaCYJ<#Z*hWhyXSr>arK+Cxv3lN(lDd$2Vqyhc(13fo0=ZB@I5 z0ioA{t4|U)^zCA-oqOI3BuJi7Xa+0|`TA=-xy9&E-^p_(i=a%x1F(a80MjfVsPTHT znl+8tJP#*pYXpU*t#e;lsC24r6LgHhx3ACD^InvN9L?ej&4mwkUw!ZoF zFXr(6zBz<4*f%e(`)q&y=;ejEcrjR4#%TR(bN~K5bHD#_|G=ycH!#C)>7&Q;2jWaX z2WY*<#^v|T85ki;s$lQP;$;CLY1fwi2Hk$~32xr{zv%0 zSsp)m^5o#~@RP%1Da^s1z*%FM`nh8PxRKNolc{~L(RSFFf~n5JjCN4{A3$tUY(u3IP=}wHy=8k-IlxV792KCoQ-=l zO%U!1)BV$I*&e|Kw_|A_TEFwyJC|v`9!xvkZM9O%)k}CMoX{xs8Se+U`x&{Gdj#mk z>M=yN6UDgIxK6tNDerjHqe_c77^$XOo#;gc%*v332=!Uf3ZZvF%W730gK+X8iIAEU zt5E#rz<1m3>~4z91;SBO4G&sY+vhUL;Hxuxolna_T3MW`#R3v>DMR?2qNNGhkSmvz zWM|;NscMP3x;J1NE>ldOMZI!mfN&>cwa9*bCD16phGxFEFPeGZJa6g~qxB@e?33nb z-*><-WCO-T=_6!zXLCoE12DGz*gNfQWyCEZT%{}chwZUEsF*bIdo9E(UBPDhh`^(I z3&L0vsb1_>0VFHt^wU*BK6|G<{dAQ)HgDV0_3_?gQCmLH%3*F`?f&0=+kc_aJf>Q^ zN^jOv=^8No=-HhgjYKReQ0TuayIv5;M!gRWtx&bQg((g|1}iDIutYyU82ZB48|nOEb2+Dl{BXxIVg;DVZ6*)oV#m>(-dj`x zywwYLAN=tfczlP4`w)$hFye^-)ZUtGKTbwzL_lqbC9vGJ7?@<56=tKM7y1CHiaQd8 z#M%U$Q|ko)mlBF@FjwS70jn9%s`N+!y_>##dwKfuDd?heR%r&6LYYC_~AbO z(VxCNfAW=nI=MJMbIn3Yq5OXK^!V)2$z%L_@oMT3PkwB35&)wp~ryxfN-i^_1(m&Y$<&Lgc=A^F6t zqc`cSp20AE=hDNjkme}{=S)7;YCe=9*@A^VGae45Q9iiAI7pNK4fp(^xUNcKoI+3O zQgodQiZZ4~ya)T72pM~br^fiUyLdSZ{N?SaNL(Nn@_Fi;kh+y%*>J#`X_3uCszT3Wdo?@Z1w^nF@^f>`zac|CgEg|# z$wvLcC~Z8YE}|kYK;X=}M0lF{Y+UPo6K=A_G=H`_QdW&Bs&6BG_(pBOxphItSC3 z94At+5vmTIe($V-eTSWisGy?w2FR7v@7eA>0418W-l0y2)r`%nEQCqo0+RRFO7#Vk z;_%O?%_8sPhYo^p(Z3H@_5J>FY;NARs}te(9qlA}|K?J@-FPNY85?ZAa)qzopQ%|Y zlcX1?S1GlEq~ON|)1>6K8(t`_B@wM}p`b!fR0Ewqd33mc??ZQkR5U0v+-Tl6-m8!o zSma~9<%qz>`aJ{n?tKlQ`r{s7xe`1w+d6LDNU3F{6~_uin6B#b!5V!-K^A62>Rd}M-%Uinh*O2C&C}tF z2M_Ll(mNn|@Tz)ntKeyAF{T~`zFJ-u7KOMZpH;P>g2lwYOlHUF#Kw1V!Hs0frK+<1 zRt(#{FQjpcRaYQHX5%){>t^>?YAUHx)0Y*{6>PtZgmZ>X^uj?)DGmMVTc-pKJVlhj zVuCcu=#F`xQd!bF5!eDd21czZZm^iSw|{ScN0g;)bmK$~u-|-P;~@D8k+o=0-Sp#E7f;R0XUC^!=GlucPS2zsVbx_Tn%cjW zDj+$D>h^b1NG#=wdnK(Ra6!Cw>qhjN+`G|h3(1>mMWaO;MlW2oFkyM1E~QqPDM%J@ z+0TJyMF{J!5U_a)G{b(2?pGFv@_s3vttfHn)p8ACP-K^`9DKh>_>!O2 zi(?#@c%=?ukFHk>*@GI_f~zdbuWH&64b)kEX0@Yitxtk|Tc_@ZOKn>=^tZ20FIx7~ znHJ{(_>5@=T#OBc`MeaqfWa9KpOH*n!6#2QubxVpqDcU11ARr4g#&x(uA>J$r~%Si zAb(G`kJuA)$EvCoZA}Q&Wx}cSUgkC7dPfO;_HjERU$vP6V#k|M?7Ll6Bd20x;9tI&o+Z3~w0&%m5KefFXo!IO)+5VGbceFzWeAR46^bfDL-ibb$&ua&L(1!4QT zQn`EhZX|p^mY3`-9C?YmqVGYVO(N`9EE>i-4cLauJhw{b-QOu((L+ovQfw4Tdx#9# zM<4dQC1@09YkkLG%x|JE?jQgDchl+UcMt9Fhxc#Bv+?ox-j~(r^_NTht)W!%jNw8^ zJ;A8t1jBzL@y%atQyxJ^K{%$jqxljrEhOM=6%WKxoT{}1yTdEhyso4$4)5KE{$Q?U z<=$cgAcCLXjNxdD>G^84Y$4nPq#bQLvOJ@1@tYP=x%bO?k9+NGaCwc*D3uK zow4H-0ljG%B0(cJ+F9eU)Yp-`axPH*IZ~Fpj={D2${iQ}iW6s8q$@631@|66zXj-h zJ=GZYb6uW)(^~4@VduRaG3>!HJsv(fJ?*%N59^h;NfG_@Dc%i!teTFdP+UDRL{>7i z-m_MJL8XU`Ubr|p8i+ zo}8Z@Kj+8x&%V@5Q^Ig(gBW(o){!7jIZsm=1xXtd?gcxjTw+4Uyes>F-9pTefl~!4@@zs`FXoW~;TCmF>{=AiBQVWl^(*um3 z#`ttu6?1&1hqif)-7SA%cWbc!{cdNJLq7`5Zckqx)@$r?Yut@57we3D@8IyZ(L>2` z4;$JV-}Zb(S2NRH-a6Bn_x>lh&TEsZSI>Km9Je=W<=$Us%mc)rw+%WEb=^IOPWH5} zyQiU3FVuB6v)#QGyi3Ntk3PDM3}X4cv})#Xl^5Ls5FxG%aL*5r7p;xy;agYDHv_+~ zl4E7Yj}C5|k%Dr^Ip1Gi(4F;@d-v`-D-`oxr`?bUUzzrkThHeTNwA(v)%A+Wty8`` ZrPrD6@ZjG4@4xx}{{ZRUEfPIf007C~SH}PV diff --git a/pagefind/fragment/en_16e535c.pf_fragment b/pagefind/fragment/en_16e535c.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..fc7f86e0349dd1b0ccfa649375faa81a2ef329dd GIT binary patch literal 3488 zcmV;R4PWvfiwFP!00002|D9P~avR4HzRCoa%A!L6BqPZZVmg*(xuV3f7?FN(MJd)` zcL0pIyR+JvC5R}j(hc&Emn4-`|*(&r1BsUz|Qpa^v~B{_ttu8 z7PiVy^DKWiYMWv-8%?dROKpqs+_|&0Ys%@{)&=dSquo*Fs$i;sRUiKPkAMH`kLqM) zy{aKa@!uvWw@_ha)bryb5~7x^&5c^PMtx)ER#)olD0QNa3ZuPIE&kDt%B)Ruef>#e zFRYoU->?!B^|B7uRk~0MqeI)^3F{EQks6sR>%s(6Y?OJ)Mr>jx`mYv@>JzcRW7Kt_5sHC70|vLTzrnBbMH z-3nTkZMNzpLq8a^XpGJ`^h3^G%;O!DdDy|L&|-&r-2+rY=dc8w7SlW7rgbsAjKK+I}h1Q??HiNV1 z**8CY|NYA=PbXb2i^i3>AVVL!1u#-cFtNpAoYHm< zRUA0**N6B2q+`7yKLF4wb*_un2(Zv~W8809+`@gd9tp$7Ep62XB*ya~&j5r)m*>3A z#wX-$3rjT%GX6b|A87O^*smzu+t$JjYupe1^!Ni^p98omcrK_j01Y(VnW!fSog^{p ztdoiOjynCEIY2wb;1;A@g^{N&zsX4V$top*UNB|t*bSy>90Bd%qGF>er_EH4Hrt^a}=Za}uF|8YW4$Dlh92cRclXJ-$i$ck^s#{4jac+*OmyLbIoJG;ue;cBYTTHuvIA8{ZmNhsn9{$HQ}TKkH{H1 zcZD-0U$0#YG7|Yi?oVEJB}h>3EUi16`jui z2wzU)Vz6YF)Mg6|35I%1VDcD)mYxtO0I;NxKx>V45#{x;FY*s0i!i=7ONN`(1#X!*eVh-x)D367TtQ3I<9q@tW6XhtCm#7 z`E1Y1#Uq1F3M3~k2~`*lxI#xz6k8_DL{%>~Vk65wL?T)ckc>jF#u2WH)Sl2qqMmH% zGxB>Qj0KU2vQBr5HJ1Pf4@>I_O6{_R8kQs-6Wi3uwp_M}{v*|z!Ol5|@fibSE=ZIL zo-iAZm17qhmJ6bKVArUV*if^loUp(SUpNQXE5j(KZ)VT*yyCFbeUO8205S*=6UAK- z!f=_7afHJ7>gmymI(bRuv0hQqN3MO0s0Y?)%5{=HkWAeS;mu^IrspvCWvKJh4hBxQ zVL%P6DgnSj1)4KauiB1(l_mKnh8g;+qL^{fV4D506AlGHPTNYiVRZ^J03N`n?W)(W z!C_g`Q|SUuQ+=UwHoK{05o_fjLQVDD`N&OY>eh3TEt1ay_fUO=MBWK()`TGazC_Ww zi?P$9FY_F?^nFCvzz~p=t_cE@)@=cfYk-p0F$dXj_%ZnqqRpIq2+KE`16HnZIp5*U zRsn&}{?~FZH5X7)3o?Nu&NqE`l^~PQA*L`|)~+0EneRH$qtE~>;qsY|{eMI*#{VVr zUvdzo;R#WEs?J+YeAYJ1>xr8hBVh-6cLqF-b%{9fuiUB{G_7(tHa$?k{(7c9!Gp%? ze9jBR!4p+({M+J7WLi!I``k96)y1jQF_Owc4)5>n?a?h$hjjSq8=Ur)xzIFzm;f$6 z{kb|Od|O%S2^M|zYJG%#WbmK;TAz6+39THmguklsI7VCHfG#U|2|q#Yt4Dx-Grt^& z-)aj?jL0`aBSE3PN3PD)_)8U`V|HEU7oUBm`d;zs^O<_pafBGxowH{DM`sBKH?9RN zdjK4t~lsc8Z-ETeF-y1V~VhCGs(f^UEhr|UH6dpWjUM{6^BgdfBrXHeKG(H0y0-)0$dJd)|ym!X^gwD$- zN*1YcdsE7{!Id~A12{Josn;bEjTtag+@>S8LSZV!W3J=leOP5kCK!`Ki#w6+Sd8Ez zym*uH47G(|q_NjKG{>%jf!(_5iAx@vuKA|x&4u$;3H4=85U+y}GJcoZ4L0 zP$j5H0X&u~8h=))agQa2U`Zp3P(q&3RF57F2Yyl!mzt>1lRS@XCSqkw4{6a6n}Du3 z;JGy#cdicnPLqcYsdZ|QU5Ae!+`Sw7xAgGw19i8Z40jxCZF#hJZOfxQ-g0?mE|4By z84Ms+EjlHc4^Ty!&TTavY?=7g)v>@;k+JzdXBbpV*uCz*mNeWsRC^B}?rn_)k}bPI zAsCqM!Z(s%IUt6wOc(DBY_Y?k+}P!kx&HQeMm+3c!n=bp^CWgkaC3e|+QANyAlNk3 z85zti97C0a0A!ZP$rCwK-7^zJC2GT#6J`2!A~oYKPwnio>gV6{IQI-|9!)L=^HGDh z1vE3TK_<(l;l76?#Qs8PBBdMn%BFVlLc-*(j9QBh=?QFr-$2{AGO|@t{iZ-6wd2Nu z+G^qIFfx9ShqM|kn?xX85{=jsk^Q)7otNRUR9IgB&ytrrWk${B+G3_4O9^evD}ny`}I zIyGOd&74zrP+N}MIWf7Jyx{5z%vjxty5H?V^~cmaQ=OzinyaX#4^-i`yb+_$oZo4Y zzfzTY+BVT6GLz^<6JzWuI-djDwRbnZ&Dxs(L`FF`a$L^5p*oX^lduh*Qv}WBWe@|F>yl#!1P3gb#Hi2{A`ts&WtUouK_EtH4Z;#wxg zTin&xAm7Nxh%-b zd>REC3WK-1@^*8CC%VGB6P3F+?cd;_{r&s5ofNy=ao3rTx0~qxtdGw?2dCZNe{kDr zn0tk>4ZYadzYg|4eDv_v{lji(OU|_iy}ZvKe14m}uHL3F9!nDSf^Q>~gA*P--n;zW O<$nOYpfvn4AOHZzAhWOl literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_1f3a149.pf_fragment b/pagefind/fragment/en_1f3a149.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..fdce321b98bec28bbc64528e0dde18e232104bc2 GIT binary patch literal 2446 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 OF8>1|njO?JAOHZ{bJN}c diff --git a/pagefind/fragment/en_26c431c.pf_fragment b/pagefind/fragment/en_26c431c.pf_fragment deleted file mode 100644 index 5fa9e7fe1d75849be662a50c5732b6a816b88d6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmVxMZePak zo}DZq;6M1Hzvq{Dx@R}hn5VgP^{I1Co$ir)>C~HZ)0(Shincjvjx>#q)jrBmFIA4z zr_9zqGIF8pkD67}2A{=e)SfPD>U(-wm)CTrBb^PJXaqLl8NA(56f0ZynY5!_m}pjO zX^*_$TK>l*wp-I_EsA6~Gqq?Xkp>223|lo~_7Hg>1~Qx70phGurX+DIaYbLJlqqe% zC?6QD=@a%2ycO)duQ zctrU&X@ngkw;O0nWboN$P`zoa#XNLa(>vav=M*brYKIV#0Q=`F-&;+?@9)0|7B71$ z5zZPs!J>XDqm(V2!1zD~{5(X~8F`e!%tP5>c#Fk3hUvn}GOGf;Oy)KME`X2KjTFuZ zA`N0knycx;u?(T74ujdVB#9AUPEx9ZLGX^sfRTspe;sB1QF7i<%8|7nGGJ$pW=Vtz z9u8y-1AaQ8Ay`v-SB(REl)VYF6!ND9A%IVbHNxWryz{`-5Srj>X>LQWEt0eib^@Mb z55kciy#4s@VO3O-M~+zwKR6$N%do-9r54k4e+u@V^)bw8O&aUw&2gcAb67{tLn5y7&{e%UgqmHLd^I^C zcmhA>Fj<3a^%zOMNkDM|+*Tysa_kF*zvN;pOVXijx12Cp<8r}KFz0RQ(3~7Uf4XWq zwWv(Z$<_6$agrHt4N$DycL6mhVvlr}9iOinNO8+uH5>z74c^Xk81bIv^4>cPOE$DM pHO(xIXPYxjCUk2WSz5n;`Eza??=ht7Z{{W~*WXx~{002G@XFUJ_ diff --git a/pagefind/fragment/en_315c6d9.pf_fragment b/pagefind/fragment/en_315c6d9.pf_fragment deleted file mode 100644 index 35685d66c18b2b6cf4c35f28c6696dd335394880..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3450 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 diff --git a/pagefind/fragment/en_3d46d68.pf_fragment b/pagefind/fragment/en_3d46d68.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..96f4a03fd231a38a2e88165fb43c326fadb249f3 GIT binary patch literal 11859 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�-ZCbo&Fmn1i{?V8AI{H_PDn#}S25 zvI}6-VlrVTEVjc+G!(6t$a-WeKlc4++JWMZV~E<){rNZ|_A%5XMqLu=7Cs#KcRI@$ z-xLKi>W_=_QK&*u*+#<(torIP0gWv(v#O`a*y$-sswKKj>GD2Me~e`-EPlE>z+=nRo9*A_I~Q}%MK#-x1XRn5K)9!$jr7V zxUP-WTzv`K{-W@Zxcwl}A8r5hCWM18R8W1__n_j)V1eFgr@ui=icvjVc6^m@ zA7pYbydxnh6(2M#&@nMOhyz;LN05x)!IvO--Q8tfSa|NP_7CdXbO#X=X*l*E2!urR zeZ+u}!n9Ogsye23?k(U7vQHBHA+{H|!gA0ixcF+PSxita>7An65RmXwP{z?vw``0) zMeA;+oJU3jaN=6X9+~7hG0(&y-2zEv6G>` z7p#Xm%BL8~MdFRT`6De3nI&OgRK>G&s+EfMqvLwHsQsx_E1pzKC;JX!?e>B83)he4 zrP8loGjZQnEzY1w{|fN2UaD2<90vX`| zChH;Is`!w?ea!B+P*M?;;{J+mX>!p#OchTh%Q37(cM|b+3^FnIEprjBu)2c4yu4Y_ zm3}%XEZ7F9mM}|~H(t~^Qr{QUHT+MmJ~(k(WO4d1qFv7JQ#37S z`TP`rym|f)+xyN!@DE5B-RzFEi75(7McRETBo#gY)2aursz! zhFq67&38`|#9$+B8MRgIdmQWwjlJfsMN@ zty->~;^&5k36%A!H4CLe@&*-*zXkN6UMU2JizV7m9(&yJg!0NYr?Kg#i3OGs)O#)D zdwc@*eitf=Z17H;86@R2FY-}w>X44k)9wRQFnQI>blj&eyRZtiwX=}LcV{xVje7Tv zA_GhV6H`ja%mmZ=;TsmvvrC&~62K*i5nn_{_;#ln zVFE5N>#G4E8Y6&;Avvw zT|hr#f5?`GY5LrxYTw_<8TO7duvQ2@p5FR^lf|#6z)n&O3RrS4IU|p%wL^-c6vMbX z=Sy5v5Mh-Sq}7~yGJSd>ifjatN)Gj6;Y}gF0NhmO_{rX71zcPuw&Irr2zD;y;6(&+ z&WEy=z>M+6xF!G|W5s+uk9j@Dz4##v@>4P+zCL&95ea3JBLlUhrba_2>MO*dXBmprO_=+X~mefli z*gTAViRx}!grQeIJlt$Hg(bcV2H)?5e*KWBa0u|Dg%TMSAozpu1RoFJdHU5#Kbi-k zc$7;V#!um_P^xnEB{IyJxv$Cd8|#hvM)p}|GT)*{K#1W`5EUH~gT#=6HWcswaN_qa zBt}AAzTdeSNb$gTF+3B4(rqX4L#k;g{T`{p-j_YZUcb{l*}eKvtyuc9C+<%Kd-cEk z^~)ZBXAJ(@3$4)RKliG+Js1XM#f6J={Oe!#xVZBHgBK-O&@$jJ$TdCqI|QitCnx=~ zr;6@-_2OT@WTrh*(<(2Y7w$Um`g!TVr!F!EHCdOBvZY=(UYY^sZ{%HT1Gt{ zd63w==xM~+v8cxKhJ)4y2Qrv1{a6ZNippnGfJ4h$VV=^OWR`S-l%1+vIr?m>IJ`{e8K=HVO;V{H{e)WV b%IZ58mz}g)uKxAk{`&s`b6JOp&r<*Zu3*B- literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_48b7eca.pf_fragment b/pagefind/fragment/en_48b7eca.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..62483f17d0f29d162a471db66f55d8f0b49b5b6a GIT binary patch literal 7523 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 literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_517a855.pf_fragment b/pagefind/fragment/en_517a855.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..83bbee9475dd89fb2f5d0a5598ecffcbe78e8ca6 GIT binary patch literal 4511 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 x%=(>0>o+zRB9yOx3>va(nMPZD{ zLvbQ%hMgHoD;Ng+4(&~W_O=h^C+T<2kd!FxCPonW!dhwO{C?m0nMN+8vUGBcrBYg137H@Ajnu@2Lmd^DxWb)?zkY?3=0$wnN0{q2o9_%TzjUEx%1LR6*m z%2Q5eW9(89iwv2%P)}dp@b}IaK{d|UsG?Il*LoGmZ^&orQhiNP=|jP)^lq)brT8GI zXEyh{CT8lPx^^L!=2n#y^NNBp7FyRj8fVju7up;B^l_$stDd?Iw8oD(``IA3(iT?Y zqVF7FTRTCS`h1WX^ac`RMd=uyDoj{q>aXmVe3hJ2xwaqP|2wL!^DEVO*O0GwYHMQU zTK0LPYg4F`uwLPYscW?$)dnhHJhXWt)zmttFc;lhT8JvdlzfTr)hC5F8?tJ#lLL<$ zou_l1IiF^OtDnGTN|9AJFJ51(+^yHGW&Io>woo|;8M%YlSdlC$EwZ-730UPqFpHWX zzYo!&{Hqs_u4mWZT|XQv`Sgx>^!JwmVfg{9*yK#}dq= zFe(!ey;j$VxCx;}9QmeJ0SJZo=YM|s64+glSdh`JUN<#m&M$%MN=LC44qLqzS=uVI zZk&%AAa1me%9Rq0xZZ!LJH7b5cXs&^D#JQ9=NH3WL?;D4-lO=(bly0XSI!|4h^i!l zQ?olVAyd!sZFf;!N#r`zXUr(=U26-Lm@u(Z;8$=~?*%-8Q43}-+(Rfl>0$?-Z)nKe zf(h-)xYeGmDdYz&)VVz14lo~(vYLuay`q1#6e1V8yUP|hKNK#BBcf--34HRcwR}~u zLAMEKPz>x0@Vc%^!&y&4_>%zk4423uY8=b}@V#o8pGJ6kP-6!_r_yd3waHgX_>UCBUXQZDv|+@ek^|NeCbv<2Kx3x2!uW33MIAb^ZuNYy=Gdb6L6zh;2DjX`8g^|P+Iw8=h5M6UB64CmJ^vqFcMVbz)RMqUbOp0)_ zLcb$Gg0+Mzr2f=eQkUnKpPfKfnvR%#ATD)K$&4wJ(MQ!*FSx65<-cvrA)AJfc(Sww zJxiF%OnT|Iy3jjmrd-d(Crey#28U4S*DyB~8}=0ekIqAD4S6~+&g426$%*eGVj{Do zpi;MWl$Z{Ho}oCSuU%lZsb3|fM~!3Xd_&djkX303{vweE49sJqy(`CK6e~dZ8w4o;D0QJ~=T_3- z=ITbvSXR)YUE=$tfPJI=44-E;#nAQY!_OIh`>|T*{9T2;%^CBF3TYmMH=_>uWDFV} zrjTwly%|Qeu`#$jJJvB{*`TGdSwm<+-_Y)7iD@t^t!S5oNT?6JO9+-i$_$xaTud)7 zCCDgWCBPf@6IxT?M!~a?JxQwoJ`81sp5Fb)Wlnoq{FgWn}Tt$ zz3`o(TOZWcezxJS8&4%+Jt>k{xF+K`7d@>SgHq2D_mgy3g>F5>QNhE>u5?g>=ba9- z;ke+-4h-KAHQdSr0g!O>d(3BN`>8NivO_=#hbVz;!5wh7UN~S~lG!~xbd+N~AKw2* z`@8~%KfM1hc6VO7oZqDp1N7^6cE9Uq8tLP&()7~ptz4Ur1|Vl)Q`+e{jSn%n*jNSG zV`9s!uG8S&&q31Qn}!77qvD^bNALn8;2ME5YaZe&%Hhk&;8n^5Ya?TiqwLLc$$O?A zv|u<%mVnwa`5~ZPgX{6T-)v<%;i1Ch)XlDKpcAgvP8Zz@GY*3;!BHOHPNu#NPoY8% z`=uw9i&SiQgl1@+6dTYXLk&pA@FNYU*`V0oyYJxKAMTg)<(KNgv+tfi$keZqQ>=CV zz~f}Un0zwyWc<_-rxg!YUv=rpBafjHj;4EDDY{3Hu79$c$CT@|z6x4feuLma%)8jP z;iUw@tFoqBvoN)ZyEA@QN^c<*v6%Gmf|T|vPcH(5&QL0Dr}$#ZlR?`An0U^Y9u+_E zi-g<-bAbAOP{fv@eQ|(2uzN^W!_RhUccNn2W9cjP+PAO;@xyBp9-cs*v|VpI-t@c8 zm_K9m=q1;fJKIrTqkDzieFL|lG<$Wp>Bg_Xr@8C!je;LHWjGfiAg{3veVI!f>T6st zyvzFiNZRMP6W0Yk6M5Oe?~J*7e>}R}slD&|@bk@K0Z82m?+BQ}JjW}?!;SjEErQIY zJK1D;?c!}I4K1<+%CN~rF%4q86XOXEm;>Beo^d%SYrUd088NnV=V~~Bw_k`U-k^>1 z^Y8C}_r=)+3@#UcyD-tL z*3uq&zqfpkNo=>K(^?eCaAs=JOCk*n$QZV2#OxvRKn!Fyy930>%9)bHt;7|5n^LB< z(UJ0j(V9ME@4#EZ-gC=-Lv3*5R9b{cTa9^QOOD$?y}W=F@s!k!5OIg^zS#}!*OCip z2$`H1og8&BIP{jomRZh|W+@JVr2`n+ddYK$n*%()fNPq%PFsa``t#!_X` zQ;Bfa;0YG>QyHaf;RMD9D&XfKvd+k(3}zn64#Qh4&M{2qR+d>6=w&iD5pV%~tZt-m zMiOZdJJMWD7mj5JJ#`q&o+U|)cyp3c6%2xRR0fPZbpPup^N*7Aj#7@S{g44Wb2LjL zOz?0ZV;Jz$2@S!T(z|LL*rV)Cn5B?EEeHX8N~{qcC*Yk2u7=PAS4(pndTo)UZLkyY z9D5Ls^x*BMcMq$giac`6TKK{F09=L*RxY%dru$Q{_pFa$PHXxg0NYX7*P;l@fOvhZ z$`MPU@Gm}2-be(fuTnH8WZkzi!l(C###pIw1Z|EB_3OhravlDEuQAV_A|8ZM)@!$r`r{j)FOBONZv<`1#XS z)2T&eYECY%R*jR)cxr%R<-QxJK@oeTyX^RK*+7b0F00`f=xXqEmcxkWEEo4)Vpy`F qt*L2F9$&3)fjl{YjQ<#T1NQ#**BhMUXV0&`Ui}3IqkAfG1pol2Id~QT literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_6fdd883.pf_fragment b/pagefind/fragment/en_6fdd883.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..266c63ceaee45b7f716b2cd7774a130e89ae8598 GIT binary patch literal 2674 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 literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_721a7d6.pf_fragment b/pagefind/fragment/en_721a7d6.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..9eab2e4db4e259f3cd415b4ef526a408feda9a81 GIT binary patch literal 2930 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 literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_72ad384.pf_fragment b/pagefind/fragment/en_72ad384.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..79786a1fbca6c25f48675243afe28fe3a6b02c26 GIT binary patch literal 1994 zcmV;*2Q~N~iwFP!00002|CLz(ZX3rDew8hOB2Gb_Y}ZX&0zxV)3hdO5Q^|$f6os(7 znA|*!Z^AraGEiyXvj0k8>UJrLL+YT^a4kA5W%}+%|!lfc1C(`tSe$ z_Yd`YX}oG-Psv{wlr2?Ql6rpm4VzPo&J?6d>(m!CH@ZN_aB$stv|Ax>6tww&8qw5Y)0~Y4bV2*>J z2+3Tlo@kY+r(KYI6;Ahaov#EO`^K3TMl2|(+QK2<>RQby*UU?PQv*v};|ctM8RL`> zU0F)@n)LvmsV_)ll)+EOjx2S{@OU$#TALe$s%r&K>ns*<{Hux`g8>bfa?=`iZk|wY zvr~W!5#$e}%ck*x5Pev1^cK8kb0(y;FRU%_TqCBLy0qA5nw1K@$qBBO>~`mQ$58V~ z^Iy3J0-x4vV1cU~kS*E`Is06_0sN`5E4|Lt3kr9)-+9DzlH8x6<9ZLIapsVgu70UmAUwwAE=lq>?!P@-E-jhL0SwQ80)-5%t45WAj0q&A{hdS2HR_5+*KknxM9N9qM!aV5L z9*!*+f}XtvXp2Q~&LYY?^G@1Ge zkxfmF6;FhWMJateG!E`~{it}T=*TLQQYvD&jV=lOS|!6Be0Pb+qImkQUWlip@w5((&3^|DHEe1N>Qjx2na)PCI_7LUV2$zSzIeA zSxGdE13bhSps%eej!40i#J{ za{TD^>C+eI>hk>b;_R7vb@9dd1(yZav$Rw+bJ3492ylCoOrUx1P>{QKREW{N-2%qB zQVp5<(gF-5gXi;}wHJBP-r$|aObr%9O_GJzhZzb&pah4~zF>WO;v__x_Z{CkwCV&3SQ z_Do`+MF3BbjTh%gf7DZzY_wpNueblu*^atHL0+^LPvN z9FPQacAzhOZTp>EgFw{?UR*b$Ntr8Hke0iRH?{MFgo^$_mdgXf$H@=+m)6F+@{x>7 zc{%-A;Q)(3uXKG5z1?USI zlKCkP`h|f?gkPvr>>rP126%9Y1uTWE&`^E8v;)%SLdQKpZoS-qja*QBgP_OW90M+# z&D2YlU(d=bxv~wm1F*A}uMJzN`IrL6Po?fyAyV_9y^{8#gSzBmpF literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_7355b72.pf_fragment b/pagefind/fragment/en_7355b72.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..6b7853f6380130a35f4cfe87926f048ff3d951b4 GIT binary patch literal 2153 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 S>FDK;mwy4jOgt=H3IG7hFIlMo diff --git a/pagefind/fragment/en_6360c5d.pf_fragment b/pagefind/fragment/en_76c2567.pf_fragment similarity index 70% rename from pagefind/fragment/en_6360c5d.pf_fragment rename to pagefind/fragment/en_76c2567.pf_fragment index 4feef38637f0fe8028583c8f382f7a28a0e5ae5d..633a61e4d7fce6bf4203ad30b5f65a5d5d8d9f1f 100644 GIT binary patch delta 1006 zcmVds$a zxAdABp#y$ISzGQW@pYOcVPFr$7T^o)QuhUrXH00qdlFv4ZB#Hr3KX)zbl{+~o`Eyh zI$AvOz+Ds4$k(#=WC-{q%$h+$xM?H1zRy4+ngqi;S_NYL6sms+l7|>TsM#kM=fr|t zTVUE4#*ElzxyvCmKy9rJHchdbxUiPS-LPNoH$WIbM)OCIFHzj3$cs}X^{djWv< z;C-~F3Q2zumsR~R%{!V{``M+tj0oang%(ANw!H)+dsDGvx8iiVsGRN)r;EB<*I1KH z8^S3pZ03_ajALk;g=IaLIkpIXW|91B3Xbjq>bF@)im>=hO=vG|lu&VlBQb&VRv#9B z+(rb;976wX5u~fOqF-Oi=-oI^)uH3O@n6CDmE3)W3C)n z&FE6{RE1V}-toDuK#|ENH->ZW;c{&NBbBu%$6-B}qa2q;@=iF6!lAVDR80nOD;}W6 zFg*RvcH6K|-+$JqzZD`k<;IVxG$g#_9|U$zj*jm?*xv~YNw;(I{oDPWN_mM-J6`)z z;TM0`JAVM(!C~}Th=QBne7~bghN8H#IszM=ZEF?Sl{Qq!tnKNR|G< zaR1TKgS+kr95+Mtm?3@#GE=NMrS|aXE^20>?G9A>@5Aj6AAE4vZSI%D<@9yr5sXH6 zniVZ)xEsHXum0xFc!*_uxIH`=6L|FSE&{Ov4g{X`4@Lxzj_>qhtPdme_YcMd9^5Ix cjr<&`vh`v_@c8iI+i&0g7wT7T7F{6#0Bh#-asU7T delta 1006 zcmVyl99)sF2z&G`$g zmR>U-G{BE2Y0Ld2y-tH9?CSy80(ya2>c0N*hzUh_O~O04jS5ysaY81T&Kq>rGj8Tm zM|&rpw`&3#`C8VV>;RX9Q8P#gFKuMkw;4!8gJ5_^n?P)zLJ@yK?hpeAHT&e^oLI1D z3k(~>lo7iuH#tNGsI9fZqA3;=7q-&48`jJH0toZRX#5EBC5pQgcyWkn&_grbNV>9C zC8M?I1t*9u1^m`#I&^^gHqL3~+8-S{8}DjSiUao9W9-EcJq6Em8hRK}@PtCfT@X&I zgOlR$LJc@xgh16Dm5PocnQK@zBv8- zG8BNV!G~m~$!BjXMIt{MYUUy>OC*<&SpoFa5{Bk6hS_GN<_e6HH803Cw`O9x*7SXJ zs)xRmH_)*ufoMLxI)66m+UxP?lQbOI1*^D_KD=-RM9Y6OGI>}u^to1qr7CaZxjOML z3lo`d_Ig%1&Q2p>x{+beN#Ucy&;%2Vb}w;&McH?HK~uw}84B4Q^G_^zE|l6du=UYA zAnzNaSX>z-2!G2E=cdb)Ej4=u`!&y5O(Td-@FexQT_0d!SPfi;g;Q0vb^N_xFW}D} zyN|Y1AqjutuBxAh_ERugr!O>kH{Wc3p5%!*`2koVW5-M(RBnEI^>cirX z+X!HpLukJ(f^^kZ^y5nzy&ET~Duwqf6ku42hz@@Xq%q*8AAVd5Fb$eftJqXHkGXPS zGowq%LlrvVdB^9r0!1d9+?dU|h0C=8id5F39Ea^(j&fWY$t&S735U|oLp2$|t$2PK zqww@I+ikNxeg9dL{#JIXb@oV1FmIiIfj!!SWY4F)&MfyKU?eAa_z!|l3a(wu9 ze?sjzQ5zkP6fbTgaP;uQJ1Nl2I$Td*hr16xJihDhbPgJbOvk7RwGTeHlUfAGBUSnb z!~I7`5AM1jVB8GVV}|%0$V{Q;l-k3iyQpS`wmVSizYn)ReDJ|tx4B;qm($mgM=%-P zX;!qH;comkzWSRx;~|#u;r8%gOyJSOy9mSzI1qT!KNt}>I=<73u|AB<-#-`=cyOl# cH}Z3&%GQe!!Q;b+Z@+!}Us#Bckz64F02ndpb^rhX diff --git a/pagefind/fragment/en_7f26324.pf_fragment b/pagefind/fragment/en_7f26324.pf_fragment deleted file mode 100644 index 4060c6bb84931bbb67a2970930aff97922329fe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2927 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 OJpT_`#Gr$d1poj%>57^F literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_96b0ea9.pf_fragment b/pagefind/fragment/en_96b0ea9.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..9e9fa1e39a28c89ce487ecc5b9fe2ec1dcb176a1 GIT binary patch literal 3379 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 J<2;xl0088Oqp|=1 literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_98fae4c.pf_fragment b/pagefind/fragment/en_98fae4c.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..826c42443a365adfbca429c7bfa86dab01386266 GIT binary patch literal 399 zcmV;A0dW2wiwFP!00002|6Nf{Z`&{o{VRmdwv!I+4ms|$orhtEq6k!pwh73hAklWy zApgCT)1ql_0>$^i_mUm3r|6H~`LmgGFbA`vk|s-`l}s;$J6Og7^Ni&$;id;&ecr(w=kh-1ZHzh4C0Xp`!e4*r!Z%I3`LW-Qu; z1`VcqTM^@XItR^j2=$tpO38kM2TlUeSXH1!2fMp)v!nd>=<{JnnyNwm)>lX~ZJ24ePEk z)c+5zLuo(i`fgfBb90P_-2Rx?uuqP649CV1)|t16?Au;76;$Y%_^EXR4DVcxz`URJ z_DbCFF6!fdAvDuj0kjjiW%@xtfmm`P$G7rY2Fr~LGsAEd90m_@Xbe;fMC0A(FONW; zGDvLmczPlkW)OepEQX_o1g&swO=@_~G0cHGM2b)y3mI}cxje%^)2+Zc9Vn|e(cBu$ zPwvnTl?q=L(*1YVrIXImeZ_;WjC)_61oexAG{#RWxp|}}D7Ts^h2+YU5J{p}J!EZ6 zh`YK&rc#!QMK8lhTVAu0xW$rr;;k*(f;t-R&=n6Z73Y5j+_ZG}qSCU{Y%xvS8hyu! z8|Ij8xjN^SW{9WHFq4=@Y7@v4ahNWd5Bd6T-X9k3Xes&8jBh3#15YIdM!*~0Pmc+F zI{~$rcZI3TiaPd1P%p+a1aXXQbaress*gW40xB zqFFq<)UOZ11|Ed$#YY4UQ2y!%)`Q}417*m8uH@!BMC_j=0}?mX_9dGonf1d#_1 z4<_dXoja;DM?;cXg{sz|T9GM;<{Y|Fu189PE=YbrKu1mayiceV(iDgJ z@J-)VbTGv~TA2n7raq@%>F~;U6RpkyB(ezXKe&yZaD$2ubTuno)DQg+C{XZDRg&}u zzj=S0JV}md9{9yG^QHO1Jl$7(O!y@gxri-vJytnJG-LU#5)x=tV^2y^owY^XUAa<5 z4O3svEw~ZKke+IAs1+AVE>3B)3bzABZtX;X9Y4ZIM&l7D$CQ2(GMXNJc6c-%$q%L6 zX!`T}@u)CfzRmFI%2zc$(`0Zr zjqxbn_l>5H58sbB$UKf@NQA7X6K?i5H$VGgYxk45JNy8EcJ(xdzY5qQ^yRM*A}6>* zsJj{4AoTR;*9p<6dk3j*0=_})^Uogt3Neg5?of&&stqziGl@Fb zp!n?Z(S24!jE0aJMCcvz|1gv{jypPh^6b9zFx@*CU|WC07U*pfeEQ_^`~Q0XcVE&6 Ii<>C`0NbJ$-2eap delta 1090 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 Qzxmz&13w*7kM&Og0Jm(;+5i9m diff --git a/pagefind/fragment/en_a37982f.pf_fragment b/pagefind/fragment/en_a37982f.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..2144de2117cfaecd2ff3f75957a8480c5d74e816 GIT binary patch literal 2069 zcmV+w2RTH+Pda}S0QM#n3l#*ohqy={e#KDq_8F^6R_p( zyPtmjyD$t)y3?!#~<# z)LOZ>*Izn)qg5s@qDA8A^9zwI%EYr50_HfaaD8Egv1_rhomk41q6;T*(lza3TfA~B zU}6YmL`=9n(e6N5>$z)#RgHyy3S>BjZD>D(AH%8;@>JhbsfOirwwCCAjmpdM2R7u zAyJ^a%!XY!TCA74SPpc=xk`i1F`TF@{0`dD}fI|j2{BVFH1~~d~fMW(Y{&0Xt;(c48 zC(?7;d{=|EiZk{|l)9==lO}BG1Xlc0B4?3@jVP!vJZOv?QW%uC(}ifAwoZo)bBy@P zY2$)>yS|_cJLR^vU0sS+gKS)BP`!;<>#&SSda+ah8;;ofJKe7Bn(o4YoT`P+#c!F{ z+AoQF7tb!w$ylQbVlT0hOOy=D#2JYWB9>~ZuU@hvkCHtc_oz4XeE~hIB1BqRFp{x> z&`=x2QgK*J>IOITzz@sW*Wp0Wcd!Hvq-5Vb^xVY6)%CU!z$+*{ijF&iT^m-Hm)3C8 zLV;5#QYYDn)v0EN_)<5Wvl_Afi=2y}q5>xPgpVL&>0t+;WBR$0ngLpN|#=gBGT z-|9NWWXxewHd;zKK?DI`0(G`V~n`n$SsL8@i|3CBlLaPQ*2NB?WA5D(=8%a zFKIbIHB@JAR1Blq=+>bGGxsb2Ep{jW$SvlgO(da_PH*l81;+2ZWebwqGe|zU>Q< z(NL~H{f7uAUur}Tc2;`PIWAXedgU^2776)9Or%2VMJCqO zR-3l*=+hl7rfAbhf@JU>bZ9CG);YJ`G|u2o1?418m>6NL!hFUf8#~TjmI*E@fWlLR zo^N8{D|lAKIwo9cEitX{@v!@JJ8hnYC>|?K>Vs$Mrmc0M0|La7zB5w}#82%%jgaHw zOF@J2uqKdVvBk7=jSCfLF6rYa826|7=`9{}W`QuSy&7{jlH5;IqXJ9q$i&$(4URN+ z4n{E^X&t3d$D5`CDkdu?M-Y4ps*XB11+2)Y2?Af(ys<_dj?n`}=5ShJQ0;2x(HnLay@t<)u) zJy?R<^mre2Bg>xRo;Jks!S4>jC_umD{zYk-?+ng&x8LkNd$Et2{YW%7+4#{LKWXJ@ zTsX@Pv!m>I_@5q~Uw(EU3Z~(H70tT>%X*Fwqgj7J;$y5h%x0N3Qwnn?T`RMFP~v=b z!ulIJgOt=1J%kYNdsMrI_o53qR&-0F5^qVA*AAUM@GAf}Y8?s20%W2M_(%fn?%LO(Bh&mm8&liXZEJPBPmdyR{tBI;r6TgovXLMAF ztE*t?*nold9Uuo2mNzu^$^7u)>w_Jf!yX6TrS7vu+kXGp1vz>bNdLw<4R$Ku#=E!K z?LZ&@_2gaHNe?L{Tf~vr?%+In{7xL*u1>Z9#NC~pCx^4w|9kyAMQLHC#}WVlv2FRb literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_a3caa18.pf_fragment b/pagefind/fragment/en_a3caa18.pf_fragment deleted file mode 100644 index 3da0c928dca446d57ea58ed3b669722913f612c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8647 zcmV;&AvoS2iwFP!00002|LuI~a^pyn=BvQeV>Z$%Ns$sMQp{3K^A;sh;;CzLEG-BG zL5Ls#;UGn|^;*5d{#vu1zx!bIBZ@E#TA;Jliu+=_YOnMpQ`?g>tF=QM z{%4PEJs=J&LF8Sy9tZNU5dOtApX-)qAv@;GhWX~MuUR2I82UiX0H0drwQ+wk02=Z@ zb6iQp&BD?byDKB9qX5X(cYzg>bpG1XIUa6p8F&Ehz%shr1&&Cc$aR3FLL`U_?#9`r zTLYMf=YtL5cJf*shR>Lxnb8&|n5`{03SgEr&w+|gN-BClIosA2-1g)SLM`%$B;ms6 zTyX^W9Du|H$X{4+WuHjVBp%8zSTNDNX^Femj`(v()%qJcJEwq*jmqk@z&hp zhSrA@;UoR}sHvXG%~*gx!69*v^$4~D&+823`-?W>p6iE57-Ub=MJleCqjQ+2?X0-8N$Cf=si$?)Piuvn1$zK;0>TS21r!x@j5VDOk7@uava^4fAwpWrwnFq!E)8zO zUi~eN1r5fPR)SWrpJn+wj6G#>LoK?4v6u!T-;z`{jM`)DcJJ#rcCz!HrD(>A^p zqA>x}8FK&2``t+T3+0CI)BunRH?v*AHxJYtC?+nlSNTPU&9m?A{t8Pk_Y6`(@o$k`aky4X`z@U?w4J#G)S>dxnuZh>ooX;%ky z#`o4R;G7%*d~5kqYXWy3Zpf7M9GplfO{`MM89KhZs%e+*!qI+thJVLgaeebw$;ST- za~Rs`NQf!XOl%~k6i&HId~~X4t_<|yJcz9~%59+S_Xde_A86zwZQI=l;mew5;KG90 zbFt;X1Cjwf!PcS$6KlY3aUw8Xq=!tKJWPMz+>pJd7kru zNXSumo~#^NKr#X@oXbxf3v52G-6Nftaucw+G;78e#Z~x}Qd1qC-A6T7mI58yfu=7w zh!rjZzvDUNmhl_fvp6GC#Na4Auu)0JH2DPez;?U7_4XkFEpV%XhCM1XnF%PU}Il3KzwZ`XhAGQTk1GyZ&38YDpA)K_z zG<`Nm9*5|Zh%CSV_BRy7-+%jeoP5RnrQ$J|t-xa|F^LG>fWKUrUL9;7_bo47=V)X6j7(=apngyz=r?nFErLB5~eK>rZsJ8S&G9rk*rd%jOBj`mlh=;W$4AcFs7rLg;yv3HJJPKX3=(_L@ zAoDE!42%ja(~+5;lMQ~rQgMu9A%8R7n7G2}WAE%o z*+4JFjW6_o!^y}ApOYvP$u9SO!%eSI1&EXkj#JqNd^d9NQEgXTt^XC z8%F~vQd$}GkX!;L;TQ)ZR!u2{2xtf>0P50Gn7GL7-H!C7MP`t!sgmCQvWP23nG27D|evy5PVy6 zObp-vK+I>tp^zc5l_jC;_9;~Wx46}S{Q)6d(#`1LB^-1P_#-B+se^(Bx~^$+Vcv)b z>X3n(@>M2M5j7c%swDw5X*k9DGz*<8?Q?20Wp1nvRnykz#jhGW_XCy-7VNlu`c>1< zeQvW?ZXC(~e$|X~lhh38_*Dzej|;~qh0_9z49|;|(?X$GsZ`2ewO9IddVE~QPY_@_ z=LnE6A9EPYiN0!!bI|Z0nmuzptjU}{XBjnM6|dpeYb$HTb29W4-@pi6SA+7Jcs4cG z=bpXIh3;2vwm837y@hYr^NWS~bbE7Lsa6+debaoX*j9bE>AX0dZf{&Kmixu(@Eiu5 z-(E%K)=~S}tAyR{N%XokW|fzgu3r^SZeM+)b+&$OUs?5s<!=0J$H1xS=s(cxAib+ZAWuvUiL?K zM*e58lyzw|8|hx+;t(<->M;bX@-ZxBmyCNt&4w0g|J%&v7xfx8_?J<|%Pd z*h&Ddg&Rp$9Gg$J<8na}AyQM~kpC|1DVjr*R!4z>7*6PU>Pd|2WTs30gxkPb_mgBG zYknC9=zmLOkfz5#8BGKlu2p1*7HBrkOrfalB9IoOBl66Y5?jUZ$hM=hrMz9d`Q&uC zeFA4xwyx4CkWuM^(O47NaTjD`ZE0sH7{_xabgXHkNap{__({8GSf+Le2@9wsJ=+u-^^+OFZB=C^+ECR^>)^I z9Xa0m`thyubU3>mU0u((UuNBv+3B2FESd)w#kayC+f;}AwGy=$o4?(=m$&_+Q@cJc zTfM@iX+Bxg<;#sX8eU&lE>7E(3w?dtZ=M#NOZ~Rw7Y3W_*3;Fd&6+{goL*QjBj;#5 zKH0pqpB|3S)<<`@(>uLaYCN;sw{LqugWKjcd#l`48_Uh=xiortDJ|LcaOltG-ZKk| z4jbzilltmydi`7&8Q$S_aecS#TH)%@FiNL|fj;SVPX^9m=g~KZL-%;Tb|!k)>U5$$ ztLomXIlnmZFW@v*}f*Y}&tdy_v*d@Jg0qt_{$b&b(5s;n24u75k51Q)B`#irM) z59t&kL=-f@Yx+LuiZtg62}^4{)qnt;K-*85-z4*MQmfz)C`tNAElh=bbS|l6 z5~X{;4uQ{!uM;5*A=-!-P~JgqpE4-poXzz7>-G(Jkhp3wmxv447CbKLWRifGFPgM?PdUqVj^Y%$iWqRwZeFo zB+W(S34$hqA%aw?>El@WJxfGM5E;{^I*|}mmIB2gA)N_RO6W?ARa5k9IZ9$RH&yY; ziv*3TCrCw)Sw5aU!a4vLOygfrfSlMKTPO zKeDaaks#I)+QcJiCmC50lv9AaDC!3JT|wF`lN8z^0EJ5wekdbm^4-tLj*#Lk3h8Wd zty3lInB)FQp$ekD=2JKXp~q?oA3of19>#P)7(9fhsZIr9hE9dB?@|ine?J`_0~r7S zDoxS$KieZ9srqMg(FZ^#H2nA-rZPdKbB2~GhiJI~Lzr^0P&k7iMi_Aw_wDBZ%0fNEVm0 z2HCTfAtb__!tHITsvalCu~=aSYO^;1`amttg>sya5>Hc*r@-bU(iGw`F@9?M8R%EaN zQ!xmZlP$#^6tcR?Y29=go)N@An5qH`5Z03d6kw8?0t-aJJ%oqnHh-m3ohZf-*a8+0 zJepcuun>$RYOR1jMTMFsp>%%-hQa_hhyQD|yS*E2FzVgaCvEMj{Yc+x5Xd%-O|MaJ zeH84DoAp(DW15#n-E7zEZnsgtUTpb#0A)NL>7(utpn(VTC1lSJi%;a-VRKl&YWqg>u+h0`jVH@Wsr%GwG#0k+zHTF9SsC`5Psh%}x~=E6Bmc2@4XW81 zzBR1T_^$f)tY0*%?c=AiT{ruUdcEB=AKP`;7&~WHaMx}4o44xJm>s?>ZruSuWA~Gj zg=^N&7Ttbyv}jM=(@oRA8Qd&;XRX%5n1%i0R^@e2xxQI+9)_di#?9o3P4sEM7YzCj zPoO$b)d?GS)4J}sqxSf;F&k{Jnw4eAFvkzCi_>c5c`-JJ_uIqUr{1*Mn_cQ|>)|2j zKEEEGj%THNP#xPnyXiMON5hxbQK#qdN})L%wiY+d(jyBxx5nl6zTSN8%{q7#$pnGli@nUdTxBI1P^KfW~S9i-pUUx1pFK%Xy z$Nt@_xq4u8v;WpvREG<*TfTp|8r$m-!o2R$;WXS_*2kscbzv~9Oh8Z!yY5=kX0Lc= z>CM9Rb+dWxj3+C9+bNytgNyQA;c{KQIBOR!S6*J*RL6F;IVsocZ^J|1FIq#Z%u1`CMk8XQry2G`5_^QvUJ>K^1tH(*xs(Qz(&GkvA)0lH(_}Cfp zRfbxjN#n9tG}~`e*FRcZh5doqTwI+D*XC$4EG)~nhmF;6Gkknvr+wXbo^A`R z`pWQ1kI&}d^!R36eYrOa{mtWYYR~(nlg4Jz}OQ6 zCh5hY-{YP-QQyUo4kfa9Ry;l~eJGK;I7=#4fT-TdG`S(sWMD`PitEwp*t+X&Wu_|9 zZ32S# zJ_RB_(bKVF3IUXDi3@B3q|ix0f*;U|LXS+5EaTG!>AQf}OzXS<>jZg#*7zObBr;BatcvQl#WuRVVSxcuoS91)Z|+Ga|NG zeEnz9-S={vPv=hr@JgzhJTYK!7=J756t#7llNbQ#961RtENiB&gmo>EC(acD zFE&v7Z>|{mj5AGx6RxC)bQQM)-sLM& zvCtTbCw4+9@%zC$55S~jko}Xc=pV*DT%TtU3vz0r zgj13_v~K%#IL{%7O$h%Ux3AmH$?b@2#^3VN?hE-uNGKL!nlhd*?ae9W#(krl#}Kh{ z9g;V;Yl@LHH7sRE>^tEPDB0h!+rZ|24HZ+gt1^S&31Z>Kjr3 z3xb#eG6zK?8h@to8Gz>FUHmVEaaJzOdhUNQ-SbbMN;5dyX+r>&Y;s2u30yt~%2nZh zhL(ZCLj;XugOSeXQD)|mpKd=wv=*#L7Mh5S$cG@HK%JSfwj@XqHy8+fp%=FXP|P)F zj=q(5Jg@>!SUs_tzz+%%WK*jIE_Rz2()gihn^3TxLPIjdO9hXTSqcz=UE2Vm2SRcp z$Htx-*$N9sapOo9V;MXRoL>wOAV=Ia8&64PeA$$bA|oK64AHT39y}O&Mg)sN31k}s z0>M7TM0sr*hz1&uT0RAl@_+~;1h(NZk9E)klV^~p?=T3jLC~a9rDMIJNnInd6^^cA zK1nddgDo@iWuLBvG1q6p{wHmMu(ccsn;|n4dGSsH)$0j6@`zU!t_x;N`&B#Qp{_(8 zO`Dw;qOZ1@CusVYU$lR2-*)~P&}s&O#5wq^5B24rB;)@n#+!iD-}b&{sY1h3>x%W% zZu9U64uSO$J{<|&i3LB{LXm6*225#H;zbsGhj1yDeQ2kXR4Ny`IkZ@cL@G3Xw=+q+ z7)Qohh9%pEcJW-%10)9jh<|m%kacmfI7o|_;V6M_e}ETrFn1XYIECwG8T|e@qAp5y z0c=`KCTxVoZdi$iqSX>vkL={fw*O2wP~30~QCqq_A4kMKhI+)PNh00BhXemkXBp$0 zqF_etadAEhRVXUkXjp(%Up*$Eu|;N9wG}c6U(;4mPs&LzDqOmmiu9up#-8lo%7mTDe-$ zzI}sV=wO&^=jAFH4$&h>MSOt2Vmb>}VE0K(aq-Cz@C6!y^~@Z(f7Y*#(VHUT|H2>@K7c4R2^hOo@7rJN-c&d|MC8-)b2$GmddZG2di8>D-{aW zlWJaDoKw$~YO&hwl?vT#gO$9knG3fbPd?!7C&-g>9D*_oT&c5a={<70*t1*fmxuOL zFO0W6?_t&t`N@Mfylp;Q*oSYE?Zt52)v2@Uraj%>PhEc1Mx=i737P{DMTmvWY=?sD z+E~rim$2Ht->s;#~ zlY8M62~nx|pkINGiP1qE(8@l7Wc&`k1i|a>E^ETVb9c3WP}8P6h?q#ju?ImQB%JxTe}dl8ivPNO^C(aY8vuAUZV!dt&HC%EgbJ47I&r zJ=9S?#YpZEZ{)=vX>rIb3Hzcdp2ah*Sg0MJ)Jg^IPsM8Cv{F3XcMxm0542ynempN0 zfBl+?`@U*%21WXphmW;lwOkYVjTI!FBAE5&|KV$u3YD6`P$-Jn7Ycn4NAuETroHb! zehwG1VT;etdy%KE7@Vn)%?_==}tUV(7l>Y~_76YW5Y#2nR4( z5AjmPhZOE%cE5#^il7wtS9D2}i{4?Xcq&Y&P{YsAMCvUGhai_`0-<&-=2e z2t9Tnm@9+B^raW5U6?*w$@f*nDw(1Y&F8q(YD*_h-J_Rx!Q(sRs6&Q0-03n3Tzf693(%N!nRLH?K#agJ4xl44u_?~%yUs^1L!k8( zIuVHb+6V8D*WEr+s*q;iCqajjE&cnl|McL42GlG$Kmr;Ef`>^IC+-mKa(17hX*tX1 zr}*Q|^MBahcNT(w@V<7a$s2FT5kzVl;=X_AM?8I(na+dOWo}~uO`0B@2e*Tru{AQ} zy1Zz1%qFyf#R^y|K$m5*2*w5WtVvU@lZYNcSnL?I;Xv)M;v! zQuPc!*F8+2tXHj(FXodMs9^jppbzy%Avjzt(SGvSca1QbJ}XnAQ(pumJy%HPVu|#NaDBWIMCG%MK}!^uM3o*(8$yE=i2|B09piJJkpi zAUdCbWOeh9){}43aN~Py0+Uj04CM3P^)Lj&1Ari)kR&HpU7}X1l8s&I)<*|V6BDlj z`Vsp>w$x42=O$JA{!Y%YcbtK>Lh$kQ(g&O@emezrl44N6l55Esc~q?(QWT{a#@#tz z;-Z2GtE?cc=G2qv)B8|lBZyRTs22-w3h@QtrZUG*_AV>n;wG^bzav1fb0G&WB8YQ7 zl(htAj5o$L0q__r=Ic4k>oM-d4`GlKN(sQ6AE-MK(qu@eh*KXxi_a{)=Pod!6j(qh zeC85B+~V`WEm!eYCOk?Hq}enPS&Hj3h6@;yXqBP6>!};ss{bYlh`GR5Gy$-r-T}ep zVeCs(ciSQiz1q>yX0ypJ@l`PRdMEVjM?{4qfFCWC$S@DVAA~3PcmU7SuU7ie91z8$ zT;eEx3TK5RYHzjh%p z66)^#&c#5A2fmBpnHZEVJBc4sO+)F|Nagpw>>>90ovz95)sCx$;+H*feA~M2K+Qin>6blK zbl!N!I-1mwRQFES{7wx8;4m^ zG7t}&8CkAWc1E7W#}sT%9VY%F8DD+3ay(v_3Y%j&c^4s>>ivzLEFFr)>Sxn3>hZ{d z#O6d#BhHRRHI_3Rv^FTO$x1)fUzuIJRQRdIMP*5?E|Sxa*Zrs!CA;M5>FK9zki~iN zPDZQ`gNb;z+>c85*`+Ggv(J`7kpwbgoRA}zl#;mJLRWUuvv-pw0*Iy|C4p#VGJ}s# zDy2V=!CdjjQV3I&Kbry^TFwe{l-4A(q!Xm*Tg diff --git a/pagefind/fragment/en_a3d48fe.pf_fragment b/pagefind/fragment/en_a3d48fe.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..0ddd78d14f8003d199fada40e2c0594fc8716a57 GIT binary patch literal 1206 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 HW-$N&l;K$V literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_bb74427.pf_fragment b/pagefind/fragment/en_bb74427.pf_fragment deleted file mode 100644 index cad6831f617dd226fb267f84009b90d05515063e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2025 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�y9Hzl)HZTQu$$E+$ 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 MH+VSo1FU-h02qqaH~;_u diff --git a/pagefind/fragment/en_c34b71c.pf_fragment b/pagefind/fragment/en_c34b71c.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..f3903bab4f95ca6cad8ff072e3cacaf38fe82063 GIT binary patch literal 3786 zcmV;*4mI%~iwFP!00002|D{@uQXDrDeidb1S2n5r1OKuYk`RLvs%+x`Ip0;1qQs7N zS7v539%)!OA6I#etGau+Jjs3ClICYw2q~9cusb7lxBB<%7KNOvna-2bWSV^HRb|?n z^hVkinbhgPmHJYvQDQFC)VNWv-)z*obDMhKKN?+)FE)u6b`?fFm~F zJI5)-py(WNx*+z0Bfn_kH*^H4$IH=h7$&>VWX?}ICPm!)J00XgAeMR&hAlhboW z$%7S8$M`}QmiZ0EcUKT#CaaV~o=L)kL;SEaTk*&(j1BpZk5x!(m&pcpSB`Uu^f{Dv zlDHv>i9|YiCh;)Hfs~di`i>luK}_h-vGt;btwWU38${kdsh&gb4^{b~b`g3O0?*q* zUBW9@-+xSRf0-t-xc#j^Iho-0HAw8!b6yB%x>1wBVz;2?g zJWEwV88!9G?8>??I4VKVYB(`1g_bxsu$D$*dwURTY5mxHD?1fje_EDBrLll{ylorp;)1&?9}yyp3HAN(K!rp zgTTm(%b7Yg<{YLpFpMMBj9x2WohQ*cm@@YtuNqe%z?u6?YJxpL7Xs64VF8;C&pzR~I4;hWuqx1*nq z_m8|+GldIEMu?oobsK<$LJinpy{CRKi~L)4DKn({p(*E{hPo_h31!oc#e^+V?MN-Y ziiM}ZD6YXI9WKC1I@75v5xy(77EYcAZGY@A^t-oq{dEv@K-9?7Yz zP{=|Yb^(?YwmNH;qu?Q8I^Npmg3~)JG5!E3T6;Ly*>Clk`?eo)2w*y z5GA|P0kC2TmT1S;VWblKs(@JPo{Z?P;ICst5s)jgsiF2MpR1s0e+JrsFH>6n*(IgX zVk{~hHlIY5>&sKG98l%dXA5J}QQ?m?Dv){MLy^lM>_g)~^=JI-+1Pg|_!71ZL%6ga zT;pG;5tIRBjqiQj6_tm?Sq54My* zRH?ckQ>K#JS*#{I!TqTZ#anrWFkqjzb{+hQPl39Sk2N>8-f|qGJ|-D?AiWp@=Hi?X z41?{?P=F!>A}c=;VBhGfhC|`t&F;Hn-u}bM2|k@Ew^XW0p*|v8Rji8lfCTt!~ujR$GwiZyOsKjvCqa*FjvuIqxkr8n&mZAKy)!J{zSL7CHqh6nl9xPzcT z+1tQX#e@U+G=iJc2=kCk<2;5NuEKsBGl`o+%)CXrbv>a<;)?-VHXqq>p$RjmBWPn$I!NV&omHcB6Oo zad%cVD2)bBq(Fkoet7bEQSxy$NH^g*TQ@~9v(>p~ zM?3^n?$yB7(7EVjAzd^pCxO)6Pl!6YI0 zeXOX9*b&G3ulHY`L|3)Es4sr`MI5|(^szF4v0saEU%Whg`*QchKk18y-#y&ui?=_$ ze!U@fj|D$HCH#xo^r_YVR7Bv_(cv3$p-aNrr{2czNo3D!=b>-su5kj53WZd8dY4RV z$kCa+U#ve_xG{#Nn$9?@G&Lrn%=l)w5RIGuQ z2@U>LJ#e1${JnMr2v5IJ;W1n}21&5zcP5H`dkX@ghtkh`8zY;?qGwVaf=WeUJ- z!@Qqfg+8ol&Z`163&XS@OTobWgkoVc=NqGO^U%8F56Gsx}N z8i$7gDp?MY*hR68NOoX#lt6|0yEPtt{D{UEAL1A|*^3)u-KYFa+thaLVwrv$PJc7hGBL37WW zB>?Z*jFHw_(xM@xR*1gm2r0`*7PqT>u|=G07%-W|Ss96&^bMF%|k@Rbw8 zc_3`aKmeW`P87b)N(`bz`AZ6~nl+b$G}h&=%eN4DXzHO`-=E;aH*~4II@nsq`4`Pf zh=C8XIbHP7*nmwP8-4PKcqE=pG7Jba$s7FYq*24+IbX;H)%iT*xr7lOa6hF1#TSyx zQag$;s*QdJmz&@ZG}d#dN_^2=mnTX^$Q^uw_WZk#oSOsE@1V(d8~1azmal<@BeM-= zQ9Wn@W;-)OV~~wM@4HbiJS;n_>{Z+lFZ3)!D!xW^sCxCGLluL~nKe6&A8}b95gF2b zyxU7LyLN3Y#}talz?{WjNZn6(noM?&5Ih&|G*iAt8$=>i8)zMcfnti>h@G=9K2)5s z5pLn{2};ssfbL+_p?Z=UJ zxDltl4aN2~d6&?O@g0QdaI|GGSh@1NLH&=empe?ip54uqYU~=e@$m}dKfcT8Fn{vm z*&WO=qPxL4JnOK%dz{>1_;maEZ4AS(?FPsAuwi+RSzp)pwl{BM+U>@>Y}Rz@9kS0K zKe-3l7Ph^W{3<~1u-SfbYv=^bH$c%EP}*yVuOiH@pO3d+T>pCge`1IR)>tS20PA^M AS^xk5 literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_ca7a997.pf_fragment b/pagefind/fragment/en_ca7a997.pf_fragment deleted file mode 100644 index 997c0f93c5e8f90c05504cdd2843ed6b142c79f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6953 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 A#{d8T diff --git a/pagefind/fragment/en_ce30b2d.pf_fragment b/pagefind/fragment/en_ce30b2d.pf_fragment deleted file mode 100644 index bf6047b65a7dd008b3a63a22e7e5c5a68d0253ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2090 zcmV+_2-Wu=iwFP!00002|HWACZXCB2eU*y^3d_Z6?6qA5-9}B^?WA_t^dfvr=+b0{3S}MTrlLxwQmvI< zkYo`yp$Q#*d%@pLm02o{(vF;=t*I-rvRcb3p-1$MbR;O1l~cJ&g_D$5W<{sc-LrJ8 z(`s9~gdS5=OSyFEQd&|PT35m;qr-_aQ7LisG@&PSWY*B?K4I@)TDeQ1VI>Y$(E+wK z3QFjpm1)Hq65UdUZM-W}_9~%o%?6)^BZI|?{9$kKPh4Ly8=k$stA=2;P{Y2lZ z%GIJk*lvqA|A+x7sk6F36D5tB-03Sn^J zRAU4dgbpE(pZb!{VDH@A3}uOE_9`s02I7bzX9ou*jn#Q z6EKKdNEfisLtaA97Rk3k{92dCiJ|bwGs_f>HWL^ z$MnJZ4a?q0+Nh#H24zA|Yv;d81~3wlk;y3&PLKuQQja?%Ugv57RE=9>wUk+abH7Lg z;*0QX!m}slKp6ZlIHZ~mvsF6S;EMx=+M_uL+GWjb_2r4=d;<# z>BaH+_s8e^FJ>1PFQ1v8MoIC{gS5S_@lu_{&qxNy!|{BVmfY=`zd zW_-H2O6P)$cm^2}Q1BZtvjcp2685bU_CyFX)=RJ+Gm+8*dFTXOE<52$=-;04+n9nz zD(UJ3aBX4ni=%0mj@8A81mLRdRQ4X4$<(WkRm<#RzeqM z7}CIC-n0ehZo#e;>Pq@@*&!7d=)Y0Sr2kr^SO4fyUB@V|%~JPQx{kUrb>S1OL)+vq zySB6Bbrrf<@ca`@*im!`sm;n#aKkFL<4&7KxWTQ+&k7B&4NnM~?=B0&(Y){+#ww`WsPx)I~UN( zY|i!ClQ}>u#QAA;P}H39js#+J-vRlp=_lwfgl$^_mnZjr#*~PbA&Gn=7*0og_$4aQ zV8CdhnVH|ErToFk-03H*y-A=CXg`1dYPiv|SRNOdpaVzk3>6{RZNdTx+Q6ov@O;dN zYQr^&2{c`{?c0_zx$zUUs%GBECX6wx8)6PtG4O0BJ`Tga_b4Oi=(Y` z1YL1U<#ZvRy(XT}e=vXgdqgu?uw7xch~|Z>4I5m^mH}gnYo}LVeVmv6gn<9o)_c0T zyTZ7vSYHdF=wH*~4_8}zT}(f7s!Q&c%XRuWLStQjK%%F~PnI{J`~=OC`+sGOo5m9# zrkOv--75pE9sbgu);?d6d@mLe8aR&WU)r6a5n$aBr!+H|A0uK3aq_UyI>F60;3YGm z({^`RELW}rRm;zA!;dN&a;yvm45yKFli$YK9&^Vb2V_i(%GBjywClb%sCz`{-X&}> zfd_*$4P=r#KW%_tI?`%sSH*cR4wp7oAlHQTv)?!TDiOFPz}&YJg{j8zj_!GZO~W4A zzitD)cTF6nEL4nV=lj15`zWA)xBLxYkJ5H$IQo2O_NDENO7v?A=hBBd@JEc6ZJ1$5 zD-9GF(DxZyp~?Bcg^k1eKx|I{U|l#KshQt-vYry!=IuFe;xFaQT72CGQ99qBB$_HN zL4{<&VT#3!(6hM*Q?cMG!6PCg>QxFj;T`ddgM;x1>j0k}P2ap7k5UK1J_;x%v`nWmTq#$CW zld|*pGmtiUbnr2GaUi@cZ`Lk!@*Y3=sD14?c3a|EZ>f{{(A0Og1kZ~y=R diff --git a/pagefind/fragment/en_d2b1826.pf_fragment b/pagefind/fragment/en_d2b1826.pf_fragment deleted file mode 100644 index 6b4b81e311e127929731edfdac97ae97af94cb80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4555 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∨ACOaNO9 zt997RChnuMS*EsLf~Qu#LUhI5iZO>dgG4?KhqZgi$#1{#I7WSh^ z_Uy)`&nEPd1B+tkg5QSFqIvR^QFSQ>kQb%^F~2`%Oy*;^^zbM2R$@ysYY|dnM!<<5 zEpgH{+H`J9f`D6f_PxAwscWuihcs=82v6O|KgPl{`f}srnvjO>3PDURmpTg~`$h_I z9TTzm-YUA%(dkSg%>)d+OX==TPj9Zq3+*@j{&7A}I$6v&@w-to#%Rg-g_#Df?w-s~ zJh~Mp4D){~knZjr!YV$(CJ5qk#sF3O6|GIE(ZSaUr2HsARO~_S=-t8i{1O67cb@M; zgNt9dM!*4)sa(g5k5$Q#?(rfSv`T%yh*{$!u~Zy!=`lr?D9f4`4YW&_>7M++IVQ#ALrIbkti5A%xG2M-VZydZ^)4=7WG=uqdF_#0o%87}If zf-?Ixbd72L7`7;;1gefsj|iT<yB0sw!=C&1IX#L`5Qv%|PbXVF zh+7r${q)(mF6_Jaw0g4T#lJqhZ_k(+?CrSoQfso`XPUH2i=e^g;OjTh9RIO z%4RKzDoI5)ngDr+{Ti^nT%Kg#k&G1t#3!bD8PN$aEXxdMpjZl%DQU&+kl+S)2Y*g=Q)wv@3-RZKU^xC(w%7S7^8yAI)D6+V7D*d!%J)Kd{JSfiKW z6x9m$XVOuwVat{xr>TquwEIOajSVtZ76~I#hODd7)Q6>5wI)dWl$!=VxMQf4W-dw# zpZGA~=4y$+RHe^QX*2}bu`FXYK!G3wFG~ex(X?`2%=-afZy@V|v}kA9{vYWIxQ3(`VinQ3bPxCcSUAUe zVHv7U!m%#Blxe-dZ?%y0aR2X5aw+mMlaV&Fhx`8!tE7c)8{8pTlIpq6$>Nu!JikWqp&uv%3k;hl_ znZgImaZ_-*hr@|!=5tdTdBa@iYUCh>%zP<^Uy9{d1oL*6Mtiq$lmcShP zvInixqusC^jQ@ibufyT%MDBsH-Qy=s-tF?Q*vBP$OAVZkW zG{At-d|ha&1AZv11O|1E7v6*y?2K`oMoy3BDz`FA*<2G)Ke|Fzbkh})#L(VwFp9l! zs*tKf>EgpOWa%(p*$>&sgM1!pJVrhyRS~j_a`Q8+88?sUG^lR-?FN_@NyLPrAGXX0 zTs@NMmLYoilExQjQRvjio~pr8gzQ)gx+U0tbMnji<#_V@crto>a(Q`${ES|YC*z24 zdvF#K&z`@Cp5o_OM9H)ex!h9rp#n9rcR4;EpT28yayGem({kdP5m>rnwc+*g<8SQa zD8PF}XCSm6(bD9~TJXZpcb^vyDx99rOi7Ku`&n50YTt=;8cEv_0Ax49)mhQ1} z>?w1!7jz>%^3o%ZC{Bl;Ind_=TAhc~-NpDC_A6-S8(F`S{JpKly(8SK?V|IoyC?Ex z+h54qK8#8NSwBs0MhDO|`mo!PzQPGk05Db=y3*WV6sDnKEHkrlV7KW-^qa1`uLRUt zvTB>n*1ScI@TtPpaUJW5zgE6`@nSeY_V86<2S*?8hJ#!>fv15}XwUmUX9f@xMLgGh y=Fg7qiLK@+QmGaweRC{+RpK3w7t>V7-eax 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

    AGHFskxYrE+sdiJ zEF(@PX{JY!%)J`XicU)qB;KteGyPx|5FIzJ@|4g6!MZu#UHP`6K$WHY`AI~dhD+?O zerQZ@9B7abU5!J9Sr*kfCJPWqP9`+5flLu}fGxitDrxedUDN>$BU7#>tc@xB^|O1p zu5E8Ma;*&mN(DJm`y=s&TRL!r^k7@dh3o_qH60(H!wJ98DS@nlonXTo(A@K83Anp9 zW2Ci`^jT};r$}-7PwNNlSPxBD-#zRd?OhZ7LW5qLSA2Nz= z6j$oDJBG2H!|-?O-#7FVm$D^^LVQ;wUeUzeZ-!3q8SQ?+=Uk>lWH7B70@P-OA(d6| zf$-qxji*o7w|}LnCbj0{TINd{eQpf4#FH1v%gMTW_Tt(0S~HDDE+A#-Ocs5Ho&8|B zClkucNtG4NKp#r-S4)200IL%s0`*7PqT>u|=G04$jt-BW1`rWp(E(3BeC5P!9tayU z5P&C#6NPWH5`!pF{vCx^&5Cz}G}Yy<%eN4D=;@(b-=E;aH}p<JV^>+(dY2)ToA&>nyHk#loE`W^K6ZtY>t*77y5aAdZ@G^z(J zz;tJ7XbQ6S=Y2Qog=b~wmA#G!;`=Nq=wTngU- z{VMRTbY1jk%|`|uEu_(I@rg}qz<=Mi<}FbBYN5vnJpyAwes9uxFYHTiX&-p=$6umh z*tJa#zzn>E|8RZc9|8TeJR+#&9QpH>;(Gla0pYU=!Pnk+qYb+*+djG|~?5 z!|7~8vHg;~OX%hLJ%s3TbYw7Cdf|DC`X9Yq?l9eaem_$xu`Afd#)6lnA~CbZ2QGs48yGL7RR{QuzbL%uj_l;8+S47Hsf73D;o6<*%wc@ z9zeDQZSN$%jE_5PwqM>EIsx(xP_qV<_8Q{L0JH1o>)S7He!clWW@2z?P$&QZ^h#E} diff --git a/pagefind/fragment/en_e85dca9.pf_fragment b/pagefind/fragment/en_e85dca9.pf_fragment deleted file mode 100644 index 47bd6b004b378e487c6be6c49d0a876e51399849..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmV+r1MmDFiwFP!00002|8-Qsj^s2D{gqO#^rROgE`6KTg0vC~3p*STLL+xl>6mt0 z#x74Lj7H)&_&vUaXD8FsT4@h0In`CKUcGvDFee_Y@9+Dre`<1c&7s-b6eeTcjYj)u zd2h1HWR&|G>ysMij9T&gX4iD$mA#_o_9cg|b6R>&qj_LT0cm7B@uNmVo#fz{WT4(G ziBu>=d9XdxBAI5ZBN<8~J4dODHYn+6lzQPrz{VFKl|w2JI@(01T&g#wwnNfF;(;TZ3qM-UFqEJx(gAaSJ> zatxBVrMDULIUOaRMofM7GGEI6%2t_XjI(RGr=pFTbWZfZ zaRC)XFcZ{m>5~9rZL_KJnNkp=%2Q#I(rlKp28|gXMc&`=o6JH-G~p?fonZm#Y(p)? zqHN?BL48kumcm|U@5J;q60@(V*Q?&zzqYE}Nd@6EW8xA^lPd& zDHejBzW@2%kCg{wfAU!>beSz?Ix=jwlCMRhKyq&;uDbkEh;{kMJBlfoso&A34|gA7 z=MT3Zt0y)P`1Z`WcdH2jIl&qim=gPe^}m1qP4u1b;)1Pr9Mulh-sMKV+M%3432Vi2 zJkW^-@N&D*9_LddZ{@) zJ?|Q{G&nVC)$tdfwg#ETccYZD-=7+GJgraR_%&MC9;bVifV1M!`!de1anh~F!<*+n Op8p3@m8S8M1polQ5PzNk diff --git a/pagefind/fragment/en_ee16a9f.pf_fragment b/pagefind/fragment/en_ee16a9f.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..1a228992de90ab2b0c1b0c58854637f7b06d4fca GIT binary patch literal 6949 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 rJX{nHE%f~9gR*I3>%cxOQ1E2$FMQYLCpta77H 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 bn72&h0)Lgn*5>y0FW3JC3u=Ra#V7y(CXqiW diff --git a/pagefind/fragment/en_f12a364.pf_fragment b/pagefind/fragment/en_f12a364.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..0ad201e451850712b0ee8ab55c967d3fae7df73d GIT binary patch literal 4231 zcmV;25P0t&iwFP!00002|J7RWa@)qWf0ezoGq!R?NTMxUVna`4Tgg=;TZ*ORHdA#p zOJFH(1OhOyFvY5x@jLWOJJWvcgZWANJLl{IASK0~>8Fk}3JLC>J^#<|oJFB8%*1BN zc@ihry}C?$!`_CiikY@)-<9^tnvM5$?sT=$Tkpkr=1k_W=0|=OsiVT#JkzO~813rP zMCx>EtME5)HstaRPGl?>R_T4d95^-7;sQ3m#Yio6j-s<)FjGHO{S_#Ti_Fj z6j-EmmZ+Itj1AE=YOLc+m1<|oNFC?Imjxf=(&$TCJ-2SEKG@RLIz88^)s+FiuXB~< zPSus6BUC&!@#T4ur#4=kSEl@6V=&z^S64Q>xJ~8681?%)wI=)Y@$W3+497?6|BcEF zai5bUiPEad)0%`@$H5Q5Ln0#gbY*cDz)>XU!Y?UDY3r>%924OF;hV)1~t96QV_0&(BuabgAo$ABFdM>z*;3)1x%23*>RZW z6trh`JmtqE2dF{?DU6jY=t06PO_X(H%*svdRZF=vznYj%ng@>Uq@lzXpr_;fiu?_1 zm2z?vc#PD3rpIYu$lEzmdle|auxjq@rumG*8mJD;z}+YIqAoRC5R4ch)5=z)^#$}o zA|@0^h9w2Lxy~Gfp-p2m)gR1Iy{j{EX3&CvmCOftjbYjsYQwmABN2W#=-?>X*xl`i zP!xgax%%cC^=SX-yGN0F5ae2AC}M@2%a=-B`yWSYLEd|VjVB1Ui!>iYcrdQ()ZvF8 z*n-Sr?JAqF60|z&$@c4;vmTg^SsPU@PDuuPz}||uB;A+Tmr3*`8oMTCK4S($6p0%< zVw|?_r72Xlt-gOrr-|DZP>W|P65h`%mzN0Za}Jr2+WwyQ9yqeNofUcMNa4`7W^&Mc zU@&+Sv6z_DlFIRs9SIwV%($c|Z(LK4A&1)9-293-64~ntha=r#Q8~BB9+V+U3N$_> z>?La82v2r*qut#O0g6Ogl_GBa;oyiO8G7@4kq5$)kO(VPxjMdN=8T&gXf(({D;mFk zn|oT-G_MiRV>+PZggVvYZmSBsC`rT6;N}}5|61IZB73gO42od(cOX2Sw7Y#<3G(Hv z_fr)j4SsR$ohr{vAf!?x7SgfkGCZaK_wgjSWy2Y)9wUuX@*dHaNSP}W*UtNPKM=S^ zN&}a?MtyZndcRROjazFd6;`^<1<6EN*60$&C`cPEGq&>?zIHy(*3K$dtSGoema8<+ z$U5C5wRC))CHUp@nsL+8z~(UdNb#P}ay2#-7+uD0TJz7ziJL^xoLe7g zs)|cnIA7I}1CY!eR_jKh5M!P2pt6!_RBxYD0-x}pI4>bnk!MLoXOW8JTjjCw`9owt()S~8Q zK^Gm;vpgZ9o6nxXG_1Fg`aqN-by4Q1Y|U5E`d$)hOb16HWdUfz-?^yl#)6wZ3SRxr&_7q*VS{h%g4wNVS5YxN5{ToCS`s zl$hQD0wr-x2^E%1^`a7x=hsSY;kAltLGjh_R%v~PmDJqLD$h^zN zl%AfiRMZ=VlFa3-D3DzE*e-g2ITldbEOsg2Oqy!|hLFT5COWZ1c20Gj#e{>$i?+Bo z4%Yxx0OQg)w*ZhNkR6dnR0aXmt#C|0PbMhb1hY5{4;W2~daA<2gq-Jk!RS%g>ZgfT z{oE%alQDuEWkfBnFQ$#dcEeCk1ei7Hgv($$CmXcY4VgGwN-rxe{TYb#Wx?77NdLnt z$C^U;0se7w;&sh!1)SD{)q|5`smjY{3m^lhrjUTq%ok%d+D=vUZkvb(x=`7M+Pf}l z;kx-i!R@)(krYl3MVePrAP|=qQ}uruaQYk1z_)RD-k;)ml$aM-{4-D&0k^GaQ+@jQ zS2friZ1=YY{U=CShxZwKh}4_CgTv8T?>oplvFz+DJE_Nn(udODAi&@;Ggjit!awwnOPiP0Erx1qn16^8=yr{DSRCLDPRlyoV*7n&`O zEov<}Q%D~+w`t0)5weQpF6u{O1CI{Ph`!KBCv+|xy>oKkyeBMh>(F0Ff=~Gw9 z6TF=>r1TJVRrX0;GRkVsU`?&iLo-CZCHueh)E=ApOp!?ri6O(PWGi1ghGJ2)jyC~JdKgGiVeC?ngZ|$W@Q57F^g>@ z<&?Z_9@;f>4c~}=&}nTNXN0kxPY8E*z@I+;3k;*Hl#y6taBpj=>7G*}=?5H%1rlI5 z#K%SIJ1~g30iz(UNJJ@S_C(@YUV7(|rjjI*DE8y3Q=Zis*C}KZYp@?Wp=6Gfk(Wup z?01X-q@57)yX`9~(@E|@8cm|SE?3W>M>J{}QzTi8rZ&|KLoR%9G(hWU7))|@3?1!~ zP9sFs0_cN)Oj==J6Q&sw!4O0^e2gQ<3v@bbJn%!@^Slx&7B0~rwe>w2tLlB)Oiifu zw5A-YgYO=T6fe}~x_Wi=_SN30JXu$dUOrk|S8snhJX}+ICwFp6KE#7BI_Koa!vNkY zy#W71DuACp{)2aZ`uI;uXE=ouJMdy%W=uWeznliEW}HW(OY(6B9A1#Fe|Bden%fv0 z^pXyFOyQ*V1K~s9?`#r|FLRCSs;L!G^UZ{4QqE1ea-tB$AuLgsi z?PsV$Pj|MTKT|+uzqRSj{>ce#+S*lp3Z36$Em^+eB|wifZyte%Z&nlWjLA=!$T(|q@_XK77(oM49KvFfjNMF@a=1A{j| zC2P_RV{gVSSW0P?Q-TkA8Ps`oC_JD;2ZMD|+7B=NHbGHaG+&fvl-zPYwHQW&^Z-zL zj|SATS;OTWTphch#u@54E+m?Mtdc4b1`Dn972P^OlR(uliu{G# z!8LdxlZS9{cA5@ZDuZ!s&^_@<;Q*;2gigpC5QJc9mb(CYh|@IB0W5r&_?>i#(RPQz zrwR{z8}vg` zi95rKO7Xpp%m!F*AxUx{P6HB|(?c@${b@bZP|v9;;XX7Gz#SHt3y|-uhe~b>8p(`S z6A?p6z`-mQKBrJ|7zXXhrBW+7xsxCDF#|(566qg7vj^g9}+*vUfj0@Xo8iIfki42XMSWHprT02KADqE2e1 zl4Q}W;wHW6G{pvFtxq5SR?YP#P}biebe;|se^vdy_pLSt`+aET7HsG{%2|68N7r55 zGn%$Xv>)17GMul5L)Cww-n}|LRi{V8+pK@{_1Eg@_CP)5uv`5d(Gc9cX_!N!JXCMm z?wewfQ;Ud}i_o|B^e}iA{|!d0gUX6jB*14kxTxx(i%?6c&g&(HIMN-cSz*Y-(x>dy&74I)T+@O{w+3EDM z3Jt*B;N%xSQz|RQHT`2M+1|Wf;O?`9d3>C7(2I_u+Gg4tZdr&1M&K+`rfCcuFi(=lH6>X; zpZ2*kL30(;2$6snjpyKil?+UE`KL;D%;!9DJQ|UDafmkXR+>@MTOp7v%ha z>%KXSDqGNtloQu!;Hxv+!|jUebb?`Br<4v?GNUZIFF6`kZltEp71eM90U1Z(HU&#I z1`)Ck!m~6R{?phqWDY)tl zuW#0SGvhQq^_+F7Y2LBw;TMg|pq!Td@w$g-n#ns@(=E`n2|k@;*pJT+7isOj^&V9L zvPN&Xd9%K>a}aiV>DtY&n+NUgt*zaa{ZGPvc_XI3q|=tzU9a6NQyy&IM_GmreHqa8 zxuCU#@0i{#(S81G=RUfXOd9&W8|`z@x0LT3L@d$X9X!8}wv$G%55HbkNk8;~?LlAC zG%o9Eb9?(fGkOnfsUJ5Fy2>65ev9+Ib<6B2yW$6fXV2~>uv~{bgl_%NA^7B$NUfcW d=~I|@OydK8nZ)+i&dr~0{tY`Inv}>W002&~D)9gS literal 0 HcmV?d00001 diff --git a/pagefind/fragment/en_f23fe7f.pf_fragment b/pagefind/fragment/en_f23fe7f.pf_fragment deleted file mode 100644 index ca9ad7765b22572aee5e35442ebb4c88c58702c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmV;A0dW2wiwFP!00002|6Nf{Z`&{o{VRmdwv!GmFyy$?b{>Wuh9OWT+GZh(f<)U1 zg8cVVPK&0!2^8N4-%EDDo}xc`=Pzc?!5qwvN}4Q%Rx+Ikcf4R;2-lryjN>R6MYn#? z0EwK;89Vp|qg@bOMl0ySLJ8!tjJ$#{j2IG}d4@T9%tdVUAR|J`?64Hz9x^(lh2j7< z0#mBkz`*TzgJR$qoDZK)RXOhfyYd3$q?yZu8~ zmO-hut)mUKoZnRd9&{=s0YBGel-fo&a@F~FF&J>VbvjlAd3_y)Q$_1(U%-tC?6&*O tVSjDz;hvUvye*QsEvfowzn%SQ|MH#pAB>-9o*u9NudgfYB3p_A006RNzkmP$ diff --git a/pagefind/fragment/en_f87fe2c.pf_fragment b/pagefind/fragment/en_f87fe2c.pf_fragment deleted file mode 100644 index ec25914649f01da6ffbd27584f9ef08fd10554d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3843 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 F005|2UR(eG diff --git a/pagefind/fragment/en_f926575.pf_fragment b/pagefind/fragment/en_f926575.pf_fragment deleted file mode 100644 index 36a55ae12f540e6677b9b2572c6068a5d36a55e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3811 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 diff --git a/pagefind/fragment/en_ff621c8.pf_fragment b/pagefind/fragment/en_ff621c8.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..b0555a2a697cf1a751f1cf62659c4ea710b66935 GIT binary patch literal 3842 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
    KOnl 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

    S^a~t?Se0vr^s1bn9Hc;b)=@@EPTp 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 literal 0 HcmV?d00001 diff --git a/pagefind/index/en_2ee8b0d.pf_index b/pagefind/index/en_2ee8b0d.pf_index deleted file mode 100644 index a545e80a2b4cac6d36b3d86fc9b6515d5f794182..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33376 zcmV(sK<&RDiwFP!00002|LwhJU|iL;FsgITboIWryCqqcZP~bC%XAE;V|p)Uq!~$L zk2Lbk$d*l$HF7VQVh}YzD5iuKN(g~K0t5&pB!Pq^)DS{R2njWTkhj*_YmEdK^4<4- ze7|0DZ#+6@?|pVzd-c*2?TEK0x?@XXZLu|%dN<@c+T!VKqCK%DS2556#`{-)e{O|5 zYl~*%$#^ys?`})4>dCIjK_j+-v#?2OM3c-L{a3EZ)lzroTzuC~?^50JC~z%4;;;0? zy9RQR96oaoh6Vk(V)_}Jj6eHxZEbNHziE)>aBw7qk6PQ>H{=S|)x&((ZGb)db43@{ z8TV}0t%uLx4p<29_r9}f!30WStcSf$frFZj^CIA=Zx>gLPAeQ+59{HF z@Chu1CY)3`?&I0;u5sq`hPB5MnPs^CS-go=_$=Pmj@vqzD;a3!$rt6CX$raioDZMy z*!Zt|6>n6>T6{Xu_%7_vmEk!F45vTmt;MApT-XWlJMPzs zr@j^&odR_*1WEpEXEf2hHWyiogC7npwD2SFsPNC=H2yOx&AT5%~cy|Z37{pVmz^?zoCY$hh&WISd4LA4QW)nCbyM!La z4&B-zo=q)_=KtpHeZfVcan!wqD2IrG~N)t+eq*Hup8_RD_{!D zhe7DHP2e!&EVmznc`(g5e~_bF11}Sx(3JLtE(9`~?D58VsilwLG3RWcSF7Q$n%YX^ zEHsgy$;LUi8K*^de4SktOos(!vT*lyy9(nQfE=6)`$AoL2}}%DK^sCaulWo(#W?@c z?Y%;#;p}I;i)FlZc$?u8Y2iJG$C%(_j3-kFLuK@7y!tSXek^Bf!*A1gp%&2M&WCe` z`!KSC34GBW)W+TMTEH^iSp29# zK!L-(np)%50myhg*?4*@UP)SaMm9$P2xiJ*c^`%ZFufCXvrdyXK)0Jv$ZOj8`jBk{ zqh%ZX8~bx1da#?kcvrrij<#ht+hOkO&qeqHd*gx90fsI!&V~Lmm}#7NP`*+8clqJ` z2tP)kTWzb3ApA!T#J#7epSKA1lVRQU^64%+72}*EH!R(elRJu+F~rB&WSlY5 z{BoUXhH-wwV6*YAGL8$|@x?NE(VJ~=;g>X_{M#75&90S`8nS35=#%+46BIf3e@>qb~*!fj(y&?Y^Z^E173z^ zLi-KI_nRh|V0@3zh}RhJe%OQXEMDuiboeLJ@mP3{mgq+Q7+MtCr|FN!^<@|~3e@AR zK)ijH-m_Z*(j++AXMe#P#yJ*WZ)rB6BdEzz_yueL10NdSkKlLE2)HhHGd5frfYHW5 z>`)5N8D|e@g@o}(bmSo1tqA4FGUGiDj~j0@Aqk{2FVUQiwXfmdwZ>_LrfU3ibCYp9 zp`Q9&3RlDUY8Q6U=j{GpA?VH74+hKeHz8BUG0xF&PsBKP!fILKGx%4l0Kd1p&gUe! zju0?@{T*zx7V+0T#`j0L8cBS zjc+sDQ*8XV%U7J6EG~nij8hNS8Ru@}j7NlZhzy_7b65m>%cJx45stWr4nwpj!w|8g zCzVXJty+?ar&lD}1}vH-h(P23+zs zp?kZaccgDBv)R76UG~>&2mEM&9v#g8Za1zXxATP}U2fc|NYSp6SvvTh3HdF?*;gmL zP`>0HU~vz!Z4L6xOnd`>fcPf68_q>?%5UgBeG1n13+g^q8u{KAmdCA<4GZtXY#WW( zJzzQK&;`N{Ik(BzR(5Z({oQ}dQS}=41wE>I-SPoFn5ly7eJ>cdNDt`-IwU)bI|X4q zX?%Z@DSCZ^UtOQ^5_&+d@BtycOD8hfL=Hu^Gn7d|iapGTx94 zc0+o*m#ww1C5t&u@88Jzk! z!hq))rxZ??rkM;OkTStTK?bxvm|^C3?FrofT!RUY<$2fO&oB;ZiEc6;?auM$(d_}C zAN$KxR@?EhMQ@MH-tC}C6H)e%ov9kYUyl%YAzGhVsspAsFyO#60Ziv62*Rg z1x=dbZL)FRI0b-H?W+>~d^(=a+0Q$#3-1#umtpQ=kfcW0cps79sr0(+AwJquaTZe)Lj`_ZE4q{fDKCrv&XecJkwuiSd2ZIU# zyIbxCNvHi}BHo?7*miBO#L!_P|BQ^cT$bymGK4G2RN}UMU}0B>z6E81Qoa zaiQSOSpyTjoV$Uj3e9d$0E#lGl{cI7*)#OHkz?2BZoEt*91YJbF1T_{t|nmvE!%vq!*;O5`45JRos z=)cqoh47+t z4A~nap`n4~2+Que#}i|NT7zTl6=ul(8}qHnUYrqQU*8M%O825}g%QC-YPEu~O_yMs zRtE9zc82*T>x3)KoH=THZ^YM)Qsq@C{2Pd%KWA+D)FT$Rp1sKTu><9f7MXjW_P7BFhDsP{ugz z9`Uai)AK9CVdDJ8!2Y3%A{5-5D~f$^B20v5U^FrdlZef-koTsFQ>Vdk^g&c=;3LLJ z-j9`eeU$e;)pc>scODYEk73Uy^DQxd2N zG{XU4%27-tX&c$Q>+zrUO{GOJ)@iOK$Y_GQYG4lj+SX_SS0I<#WC9yuJd8tq)?Ana zW08};-nfWKy&7g_Ch`ZT(RlY6|EBULgx%0Y_@`Tr45rhDV$%}X31f_J9{fcB zZvrAjV#5dPkPB~yw`n3c;}7T}H^Iv_&_~>Iqlw%IS;YBMaiDNZ4erwt6j?&X-C%rk z2w;9syMZ_aB~j->9QS$S%*OWJq~k(9xH0I5v6aCvDktV4PPvfvO~H-W;glv=VEhl_ z!y@DRGs;aqn${wm)_#QU>Wu%zCisoxVuLT~8})DkVOP9F$Kv>eleRa&EkXPb?A`?5 zX@=_@`h!lZ2}s%*LS5CN_@T35LKA6dX2bQ(xOr22jsr~&{?G5B2^Pa1@I4D-g}mJs>T-HbXk1VNAVsqO+KN{x^+z5`H_ zEG$8w&A>E3P-vimtqgHJYBuf8J!rh2$d0`Z^JHX(>$T1BehZ*Z=QKHA|1`yeo=T=Y z$a$i^RrfwBS}ZpOXP^d+Ki)O+<3bngkKjyIsYD3o@t)2jZVdHFrEmmuWsHl<;cer5 zE_3`hYYJEhUxpmE@fR5n#qAT6mpV^>kfv-iH9OX+hOJ1cr{NVC2OEr6BTzP44(M#% zlph&~ln00`Vb5S$4UDQOhU0^%ux!Ee8jt_&DTP@rJ7J#j<_k#B=_TpnRMSZBE0UbY zG}pe)?3yRV{~XbaX))|Z-IgjSAb_2pE1*Z4M4)?GmfggHvL_Ol1?HDkzcflu?KU|F ze_UzYWcd-Au7t}K(erc}Zmb^ZMS48SsRoNhk#&cqPB_1GTf%CU;20tM5xnOmgU!%k zrCUc7^FppX!7a?yR3X<~RN=5ygdZ)*WTV;MObP{*Dr#O-q0Lj>7uogSBQi;!$ZX-c zC4vy9!vS)Rhv*7+6SC!=3O`Whak>hNmk7m#AHyu2=Z|EUcNH-l>6|CB!0Afy&ycT7 z5!S#(4bhp#nIjkALgT({oReh$!~xo*m;DS%td~G|Bb5l)#XGEiRFs zC?|Q$PaI*K58!Nsa)c1MD8JFEQ)8At#|BYZ?Y~=@^*zEh!i>52fVNFX5M7H;e@^8BdV(jKR ze-=FJd|!W%PLf`pN)oI+pDDQ277Ti#>2F;FcG77>U z%0rG{mh^2z7`5_J_nB$*)0jn4t3b!NlM|r#|XIpSOC~S)PfJ1W}cP4 zgd)Q9=xMTOI0r~qxniW|b_CbtXWS=N0WG4b4Yb>wUFSSQLT63a#?=(QN325RLh)_3hgDbgijSRjuPN;?-M+NTo=mLK4dIh z+jqQ>g>w{!((%rCcP3|{cwgh8&Jm_E!6*sK@DmgY(pFR%&p>+@j%BY-Pde3=pcnJ_ z+wbeLdb6A4I{jE?UQcRqR)IM`hJ7GwK^)e~KKeuU-XkOB{uT~_UPXED!$C5a*95VD zDX4RWe9RJ@QKZ6{n}2lWTHI;moBQb=;tic+!aM06Ho-4lqO;ie=|EXCb0R@vbSK-c z-DuFxG0*I+u)MQ3nUsIX9UoxVOf6bhk%q$X0uQiTM33XBfw7e9T)8MgWHF$gPu0rF z+-`YqDjOXT7+;~lE@0N(7Ei1gAk7x-mJqeK^6z@G8*=6J=t{L7^(f-&maYC$6^gqs zlH3mG*-ehv=SBIk(l}qfB}d7KJaKo7#A*~u-j>~oCGhhR<{>vQQaub680WeI<4vT$hxSHm^{>g4 zKe3>w06r^#H3e{b0UT7|6~HeG8sOdnm{R}~3*e6h@LWM7Tn0zE^dDqVp{)tlq4wWd z*bG+|;1q6b8HY>|ya6e+&rX5QTAJW)IMV)2bgCX+DWF-Rxt>fhXo_|oE@>bO>m~$_ zUpJ8w6Ia*3HaeG-a7&GY8bJ4wI#ax+-uQk{0EZM9-@UkkU*Z2J3s7`?3{88esx$r= zia$$?_keMJYjvDBzW)s4;$It8y0an)=%OV;!SENg-n zP(Sl&GyH{?^a&d1+;?zY-lZ)p%Jsp!@DNEf?4{5EXBXgO+ouS=>fjG_#c(1B2mT#(rmP2l=kQLTIEQPA!d<9kgc${JO99L+Fm4%k_iizP zztEkRfTXAa`&&`&=Y959cZXWvjrk1n)u=Q1$D%F zyLwdTi64J#pwQ$z3Ce1eLZtLl!?qkISO5QsB26^vjM?8~2 zRVk06ZG00+tp>J{nxB?LlO3saBHP)8A7hkX2B)gZ{Uhoy{@Xe%L0ZtB=+l0cWc{rW z6?%WJ_iNo^txIB=Zf#rxXKCY6Y(V>3<1}GD+cXG`I-l=;(*jU7ZHq6-MDrbr$+?wigMm*{^k4-WyLRw5@^f=INpE^+vZbQ?3Z2F4-312>iwaXk89j$wL{PcgVVrqLI?h(rf5s|scwpk6 zwy`_};{wnCb!Cvnf9@$qtxU^yPZT8AA{ocKv0BLYcB`U55gL(6A*_H)NkMp|Fvq`Q z*D7W{k0&mUU%bzgWT4F|!H}NoJY-=%X03fW@_5LwpxSSI8DjSN zs0sP2^f+2PX->vz?iWPN2m2W(R|zMRow!AnJf~Ro?K*4yos8# zQ5k)xu!dZ3c0d5|7BVLC#|E`?D&1v04Pl+4^4`oQyZ$?sg*{VEaFd0jAk4zd`xewu zgzgd{%lD!#>OaE$?Atfwmg3p`b z6Cp?)X%ya3JYs!CzsfH^6R{B`ce~Q1z1?kjJ5|x;@}=&0TXtx)UC%AT@?HVItqKWC z^pf?4Ky`XOTnO`FC8+u661kW^uBb5XU3!4THV@S`ncx>thc8cq$Bh$$_kv}SDmWkl z-L-IX0FBCM{zhYXaVU)1?rp`P5G*b(6|V-`wrh(+Vn9FA1a39%*~Yy_zu<`4@?m_8 zyX$_;5-a<^ISHKOeK6fP$C3Ts@^C1nIzy;Af|zkO8)pIB4#-f<{h!}9&QJ}ir`08a zyrr1X25M13yFoR93zd64Ox0gk!tt=2HjFRBeAo+S2|jQxLR4^u4|etC=LoBe<5r?x z^FibLSf~9aDjZLPy@|`1Pi~*s>~lEK!)tRI+D#@`;{H{`q^ba3ng<3a6rkpnKlKr6 z;U`(-g@zL2TvKJ7{RK)hiP(@4k>nCoLFncAz&N|>3OwbaztAPGlC!;8U0ZxbDpWqF zf}8p+uoED^S|D~8=XN*&o*?}~m5g(-TmwX0dll&v#*youMPc{xiSw8GP2dPUVlhLq zs~Bq@3z1hc&JlX;??>@njM0^9c++ova+^?{Y)a0-6B{2 z5v%_&9+MF69NtZ(`RS^Feo!xZOsLR1`k{pCLXJ_m6NrHq1YS=^ojgoJI}vhOaz?4- z`n)}^i2P>D>E8zCq%6iDPc^dSzF{dIe*$%$vV9dbLXUBzcxyCcwVynUSgzjC^=G5q zSux#_a#c2CG3C0pxNC7YE*T6m>hS2hQo&b?-wX3d{&6{1;#&GeOAizBlnRSkd7ao5)iyk z-zBd6Ucg{cDztDH1p-&JNWNoCAfON5>d%838Q+Tb4O+pMo;{?9 zXp*)*PmlT-*)no|v5L-D`|~~$j_7&(IAGZ))M_uC?^EO(fp$C6#2I%hU4u56`HFaV zA}0>DuPA@LRC(CKe5*97nMgYcn~Zn=@Ka=(c~=Ynp(>Z7M0*>+NnC92 zq*Kf4b3Zw{K1jsK+MZqF&bHJ0*O0y40ms5Tq>MAlDk>`BkPvL#DNZnqtQk2l!4t1ZNk+uk}d#MmPxCBRxUQ zMNRCw<=@(DN-GL!OR9~twA6T0E8s#eQb_jECRojZAgoFAzee3#;Yu=wB9FDV4((GK zcfTU>y%c#Ir>|C9l-si^)x9#E$fHmHYxd^!tU_4~HF8$#s`P?(4jQcY5#ObrRp~@W zCtcJDqGz>EJpw*Gt5`m=&o(QY`2%}Q={PC;P$Bby>Yp>>?&p8b9(cN&4&2LAKzh`Z zBKl{!Tfr6SG%|l%^X`OfPTD5d0_BJxqr#7jZ!sLIzB=;u3FRDKRJdQR=>8JpTQux( z#BLkDbre@%gDW0_Kk9A$uH8wTMF!Q%v2`-xRaRmowYGI*>C_JYmM4K<{dvf{%W-H{tabln@d-qVe@R!QL(5VuE+3-3lK zV~i8oMTPP$cIW9ODx<&oJ?$FNsH$}nP0`(?K)cjWFwqPYL-JDv0KaVKG6aMT6HS?m zE&adp({TS0EGFhr(v?{@@p!n#I5#*YGDV^*1G%a}`VJx-RD0J9(nu)qykTz(HCff3 z99wo-_hER%Katr)J$%KkFv=O>W`B6XO{Zn2;83juwUSDWBdtx*cHvTb<$V)3$~-owdih{ zYnhv0ZEr>#i{Jv;=bq#?KG2}-*lo%%Ez;|Cf*PtusVhajZ2YT=Al0xOyh)MQ9Wvb0 z`8WnKGq&TJQ)`W?AI#Ch@k$5U{tjdznkVPU&*f1_x}=%h3%Ao7|D65{Sh z%o)=ipW=tefs9M-0CRMJGt|j=9}yVdMlRPn0q{z4cA`i=*YcA>A(@45C=peu#Q&z6 zOWg}C=0m;MGV!M|-p}Q2HG8l1h~b|iL&%4!C&B0(mwXF5x7h_VsdkeFlFMp*TcdpvwwqYw+>u{Hb)bJu8mck>5yc z5Q>)aE`$0%7|)N|MMVoM<=yJU+F?f*<{t`g(_JZ6j1iG1&PTRaJenP9vKoUiiqujf zdY%SR6kF#YO+FRQh}4o{?p)L$T?D%tN9=4q!8<3zPf^88N^J{+My1gPWDYK3smS87 zy-1|AxT%-fbB@n=*N0lTP4HxYUY}y6fB0#kICy&NV7_tp4x#-1Gvh2KhTge;g!_ui zYQ5*-PBaA>XV)TBaDRdNi$`HTYJq&Go4{#ypi=l5GAliBQ%fK68^ED7UMaOcLsHh6-Xe%FduBud?7oaP`YZ<%EkL+2T>6} z1@{6LM`-1Za2CRgbBl4`fG^>oa0v=ov&c8UwW3xQwvVnl1qty$J{G6b2HR>8T%E1t zQif)vJMk!I!#S`O58f@oWzd1H6~Us8yrh|iPU6@KhOz0SeImj}&>fGx(SL(5y)3|V z@Z-b^aT6Vy`K+f&^gvTLB?Tg3wAH1c^b)If~xCfP1#zo=D zj+e-y0zSGM> zSodtq3&l{c%lS4_pe~N{DV$YU*i0ro{QT#{;UKlHfK%CFkYnlw8{pGM)&WLPbZ|dm zg9Z6nQd}=8F{{xkjdI(4LOlF~Xe+HmaM{n!4?mY^TPrl`W-+}M-mb{3M0Ri=6#(wD z$A#VUu7FOCt=9Yu^`bqU>nvOQ2UX?t2v6!RA=+fk7oRCJbBGYkRctL89wZ@W?w*V! z+fL#NdnVY#?%NbJC4PZ7n@~KtD3BrkT;i!GvJ_y|F}`#8eO3rUjOjx*F(P6E|4a_B z3ETg!6}p_G`Jl6D6!>i1PK$E;ztp(S8Ny-xg^vxJ#{PG0Tibd^hNL9gdb?UtZcTLw zAV4=ysW-h&=(JxM)W_&YJ-HVNwe{hl`_|RLdG$cp;$F5>>^7yZ(I@<-U*jPJPqINY^yp&@DNStrx!vz&&K-UWnMhyIKKZH`M@Mp)nB~n)=H4o>h4TwK#qv zYJnRZZES7~A5v3t~$D+~p)xu$MJajCI>s+;35<>V$ ztZ0u#<6WulK?Kfq4JOptXhN^kbvOs*Y#Xdisz09^m_mrj-0$Ki{)o1TUi*;*#p_s} zi>3Eb#A$dFt80R8X-y&8w042F0x;QrERkF_Gmkuv$v>Nye@3xco%~GDEJOQYFoX6o z7NzJ9272#(+nJ)l2PG=%P=(>~aE<^|P$hn}A>bj!qRT1Qg&bfknqDS$9yrjBpYEpJ zX(Feu{@il7F%NTL$Z*-XWKC%W~XD9;STf z$cm;M))~e(3r@zq{#FIZ9m*7cN+~+Xo?2l7KZAp5F5BU5coXqY_yBEmpBkNiipYRC zHM|t0Iz;_6nZ%6KLp<84N@ghi0cyWW=wUQciLCNMv}2$OU?CX<9pz5qwCBU&L!Vk$ zM@k*d3{B*dC{=~<36>KKqe=N}s0)-J=hO`QK%xry1Z3SWfw{=+wd^bys4K9#=2yvh zc7|fU%m^8hMRe~_I3iqCtC7%+rN}t$gSN4G!lCboR7>o=^9Fu%96W;mYpi*|3UFg0 z923B{*}$2_g(yDkj#uXP5|JE|Fs}xge2djL^B61b2y4|}e2Z~MBZE2{E-Zm5FtHNu zP)=_%c|yACM#zlu_Au&$kuN?XTn=LgCWb6$>>g&k#l9Mp9*zuol`tm+&Ea4Tnw;^h zSE(5Bm=d*@bsNUnDWGAy9+~R7Xw^Ec40-;&@VcWdaSZd}26^tMVSITh+94(eU^H&} zbljt5Xo#dz=Bc~OB&%`XsICaYzJ8_m|b7uN8^znCo={A|3f&; ziu2_tn;5TGM3QG=5SbsC?Ni8N+{By?-9d{wvK+1@A!m_wWU#0+UaY}*aZ<&j(&nya zQ#_R@aFcOcvy-U0IPJj5SBRlvz)Xh;h{xKHRXX|M#&jw8r-l9BBN9 z$k7-3^#;FUf_tb=?%)b?aj?(#WzXDvj0FF9S0_G-jK@FLaO%gc0vq-)-i82Cqt;mK z#du$v$urcqu{i`y0YqoJ!ng>9^Gub0AU;KGYW|UHRAw5icfQFpuw@V19e``+0qETh%B$* zgcZ#wbD?0nPXxY8ZJVrmZ+$atgtyC4mFezd4b=Eiw6M4oZ5BdAT3p%;$Y1>&roz~8 zX=TentdFN~EZ+-O!~R>QYOUSTE)8h+Dn-rj`0y%S0(rCgfX4riCi;&8g9h*tp=SIU zm}D6_7&6XH9JA4Fhwei9N?8r^uCC0E$J$1++p)H`5!#v7SZqM`JL>mZ$jzu1BHlXI z(czzcGRW!Ni!|_qsDb}`Bm3Y4G*bf;Y}_WkI`L>skvGTa(v##4rsZ%yDk~J8CM!Ih zsCu#aBIZtK%djhc;&vC-Ddx-HpFyD+e^sN`?-aYJx_*fy7TDhe50*!>lqBvAd4GT^ z{l+8u@<#Ftv*BeOXxU#aEc0l-ak!f7pqQkWi07=U5~46Ddu@mA!e>ee?vhYw%2 z`+Rg)8mtFi2fihj7xMq>A0SWKc6^eEcB6vI6|Z+Y)^0*ti}2wY@MlE2Fqz|QG@Q}0(;Xm`i#WBYs3L6hqKKmMUK?LHigm7hJMOngF%mMq+hB?DB`l$e zgb=OoYWE`&`i6fgb&Bs>-VO42&TNa=>E|WTOjO}2zQ(9tvQLTdT#TDj;KTp&H^)Ge zA7&vrRPKx|{zI^0moBN zBGasX6F5rK`=}oZ((60$_LFAE8zLs_jTZ1%l)?eX!5xN&GLCgZd!yoTGFttPg;m8c z75S2N$Yr|7o7f1Uy;%{`H_CzmDci|j9z!jB0)J4xpfxtki+nPd*;cVQ`(lRG-_PDe z=KBv1`d#SD{Y0xv64xJg8Z z!cAiLcbX_jPrBseySwDG$*AT)pm=hd17VEDhg@s7jHAf%q2UxHX(vVM5$RkQ63aqp zqH4Y3_M0)vAyK1g8wS`L(7xzx6U&tUR{3)HSv#v3noRQ19rrLkLhKqxeZIB3o^6}O zdnmz%-Ltn<6}QT`H|gsnDf~&sgX`>++oQe7>=0NU_9hr>Ex;@#Jcd+o2u=%%*7rHe zHrB&#V7@`}!lyQ;k95Vqg`Du|>DgAr#5~1&u#R;C`5+i;FP~++?~uKmob%}g4qRt^ zqm18y8^|C@9)O%mf&z!E59P_oo_>gYrqY7})uCK#eA@(3e?SZevpuMHN0o2~;?1T? za&5Kv{m&FC=qFb9b>sdX9!7o_mAO9SZbTFqJdhkMHTsdIroCAOYx{0ucOR?LFiOJi z(P+3TWLZZ;eclC@h_v0^OeSg3Jqx_PzuU8Dk5lZ1wNInjivggWUAD%MFh{=58Gf>) zw>#RK?OYOzXR_?VFh&B3ZI?v%CHC+(q3-xZ4WB;-Rw$8Ms!l3fbAmS$_F95 zCEAFS>S1&Na)!545dY7SL-8ATF_BU`^QTmP?2uDI<({8Fu?aS!4S`Q}6H>Cp>|qPP zf!m7V0#x!ItwQbJ1;!KIiR?zf1_Qbs`AkvcMg;EKIGKZ$0AHXkKf!*Ruw*&3REzkH zAoBo;-)k+lLN7Vc6H4pa0i(#SHaEzS9yL6w?W5+?kdKkvD41n$QR z`*c|a`O%QPNu%C?qi)AhH^GlMsTkw&n^er1VsSsNATG`-$O+A~q|vLDXW3*xkw%$Ijf%P7*(v7!sv8mxFDP~7@0r}-0m4UjdpCL!WXD~3J8nk|Eh zAIhNBuT?bY{;1kVR_Uevjkr(wUu1cQ0V1$KOi`NV$3I)|(rV)!EH6J-jqxZud6JJc zviyAsOx;~xB|5t0RS++n<%^!Mr$z59mpV_M#_4H#KtgbR>r4=DQ`lyWKI}#jRrY}IQRV^%jR9^uvb)`y{bG=K3kkrm$l?i&VZM{o zLt+pAP4xT=1a9&jZI)$>tx!t5E_#Mnw4FM@Hti=saA$%c`_Zrk+7I}fIz8hVIs_KPNPi$$3z#&spSB^l#eI@641AMVxMEsk91(C@_?`vh_W zWR=1Sw2#!0Z~Wp~vZR*|HR9p^14+zVc)*_r5k^)RXI(e|bBwbWHVdMLYcz~L5ai&c4}!fOf4C@(V3hj6Lg{}qX-x{VTGh$cy63cVZcja!jG z)C04aPk5n-A}uXr{uHO_<(4V^dX^&ks7n%W8s`j2Nh}lbvSbH}ujq>Qpp3MlV^(rS zC!2k(neiVor%a4;<;-H3526-*CoT^5D1lvMKk)r5((LfCJ}6MgSE`rA=`)@Tfp!5jPiXtw2u!Dx7yO} z6(g6&tm<3UK_D5hOJ8=a$}A^=a+Vdw!j_Yxclf3|N`7Lz=l*>dn(|%SQ>o;N)@WKc z&fC>~vM)->7tpe%xi)Lm4u6L|N6A2s(0Uy!6x#>H4v%-VYAq_yKZb*8rfc|ZhqdDR zPq8YB4pMaDVX7y}64)ujJ4M{SbEL-^CqHWvGZAfIBHEFTcCE8qYxqi3x#dEncoTal zB|o=+5@5ZFb}6y}7UaUJoJ&NLsgAXh#&a5MLBQjr4Q0Y(3%1#=DB^GZ(yO;8uOS$e znPj7ViT*VMiCE&N*U)d$A#cr+@wI7MCRF`R z6xX1)D@TaNJ`MD@*+1?fQDwZUM3#v{xv7?83HU=l0r9z{jIb=H`EP}f)nYbHZ`(HE z?*3YZ_B}ez>T(^PgV|kf^lUc zF4V`jy5C+!!TO1Il&FWs$%xa{l6oa4PJ5_Kxvp_SMn8kqhB!`FQa$i7h{B$|=*gLD z7Mdz4ce8t@aV}?Fl_in2azq#TIejk~aJ@^c1GfJWJ*nT1a0TQ~A0QNNFP1)es~4ES zMB}TH7eD7jW{x$uI14=TZkJ{3>O&RDOwxHi*$ni*|`Om`g{JsL+>8cU4<2DQ4LVW>pTgT8|QVO zJ<*Q1O?yic;E&b$xY&YbM+mVqix`-nhBUXCz_e!w_)GdYaZRs0q z%8xKsq(Kk?w8be+uO(Lx<;m4?jGq!+@$QT|ur*Vt7cU9*h*gyK^h26eqbYip5>`=^ zA8p?!cJ>sJaK6y526gFu$|}!Lx*a5avsLj)`a{yPS`_h9rF)~LU+CEpaY6Rl92k+34Na!GBT4#Y$y!b-D=TT3z6y|ih&iV_Ft$D6+dTA!d{T?sXDR|CWPQ}wnhdu zK-21*&Ncp%1ekp{!$|@7oC+{-UiG`+i>j(3xEAil|NjGr@bV-!s7!oGks3cMN;rE#zn}yP}Oj;j;Z5AW3)0 z&4mJvoR4MS?S$@Q3l!VM-Qyt#TVNZU2s@ay(Y=gk+EdAxYFi>r!$*`#uX>~Zio6R& zM1YL-71+Ab6xRxa$u8zp)g;=Q++gjuU!V#Mh0?th3zq3Rmx*k3mAZCOj0mxgr_mqJ z3#RrxtOSsJ;8xh7<4ZU{6$R-nAvLC&DxK4qalkgQ718c&v_r0N=sR+S3y-k~B!diF zD#5Xwb0mq5%$qZ4*sLR#J>zF-edw&00VL=&!L^CYs(Qi++QXtrp1FQ!Qr z*Z+tdOHij>C>{|#&<*QR%YUBa9{wl0>6H#=Pbh)C3X9O}GD*YWIjN4-$~D5Pa2iFy zjg^ny!cNkhHoP<^6r)&5$v_U#4$xymy9%s+fZ za26Z_qsvQSTn%c!+%@F-_`Xk=lQ(7D)ruGHhEt2l1$(ls_JS7~buTkZ;6yK20v%;Q znO*|rg=Nqv$Ga?(i76&OA#XVQr@SS*js&9l3p4=vb9srdyh@xpDQg5wS5Ht&yZ2Pf z_%G$C`ZzxUK`X0O3iANG)IL(S7)j7n0Vd8dLg{iWNpd&{x|v)b{5eToKG&e4Rc3p8ko%71M5iq=-L#&F26f=FSHv}M+gTcs`e&tKePU|A zhMD`N;=s%Pp7GeSSZw*%{X1i^Wr?nB)(`qsa@$73`)_^7eLYc5>6?zJH-VdBasgZg zi^;hNC|6Vn=ECRU!bo8;9NcJpccXF-rOkJ0J>%RA$26HBipSn5WCU`T!B3EPnFICQ zJm`nz6lqBycx@FDoC9Dy>|P1SQ7(ZJI2`|bD4L;;gWb^gC9qomfQH>NRj1 zjD;}~AdAPoh;a^pQ<3ANyZ)<|owe&H6ckMKaK3yaa}s3wYlPzW=-T{D0qJ(}h1`vS z5f5dF%@eK$;g=bN>3N)mJAQbGN{(;ldo7Ev>d2RIpwbGqT0$Yq^wc1OT6rRV85HlO zS#Z62jCL~=b2C=>Rgm2&c%*Tr%Mli7OL87f=Ud{A4b8h# zL-XEaB8)GoYc$(Sc35U%PcgpxxcG&QoCw*-37*i3Xfnb6IA~ix$tJP$ll8qP|1ye; zY8&30lXP!BWDYYKUz3-j=`wUh)2J<}7?GK}$wc181Am6yfuSD|vD}RcU|55gH$(?c z36{g0Skab^DCY>~-3alIfob$M;M#z3|C`MuxAf=w8u&x`vMQ~fgXv9K0tb6q*iAXk*xsPt-tUCSU2pBV>LjAtSK@T+@N(T|iqv-Jn(&RLhvmvlBi zf}>!xaTm}PK2EfuyBlZ7W@EjOS>L!5 z?@w!e6~P;MKZoLl z^86?StMkr(ico#X(R@VNI;5rxY=sA!g@g<z^$fmi*74czz18Hr^bY zf*KnY!(?_g+r~+$a^#2b1r;;;4_ca$n30R>Xz0=+a+DL&p=xI9(0;v?N**pdbkAo_iZy1E-?OXIG*_P7ZL$Yxw{z`|;QO0=fJMujvOIXxp)v4#)lr0Sv{z9dC6kDfi&Z13Pn=hgs;=c^;sl(tQD4nDTOFHmYcktE zNQK~h4jZ8tk=Mf%u6H~tAkgA#+zOaUVd$=iR^08+bZ?|$lBVxQQ{BJd)gq8uWNcDc z%PAZ<&X9!A^-UG5i-)7BipI+_=s_~*r^FJRs!0hyLCJ3)dDBv=CBVEo_Pn*Z%AUd- zb#Xav6CsThRiKh&29=chW;e!lskUC5gxkvYNYw35MFSE8L6TFBEn=#h7&N%Hb zy@YBiy6jDB{0T01VqH@Hg2>}a_Fb?UnvcO7{)LQ3>87ok>U3FN(})zK_AWiHjQ+du ztnv0jGgokpux~@sX_5w&yvyWIR$=Q6aZWy-H~>*VuD=UdGPQuMXy)0?h!2hDfhw%i zC80Ivm+bo~DFFU7(nXzTr8VRTu5IFi!w@$b=X;z4fo<;xk~5Keo^d~wt?+r!hB{cP z{AA~SwO;6A<2}W>kFA_Omhz9;;dkhde9D5K8K-Nwo(tvMw;)hs+;U{E6zVm7gS%Yr z(=i=Ub+ydv1L&2Ns8V7n_oo$Ok`J4cz>MYMpaa<|01TS0aJx&Z(fxk-2+YFZ8X~!xB=rF!^Ds``90&3A#`ZBdJ{~c85E@+ zB*tg^OmMVu%8JW*KsjESgW+LZ)ltyc zveP$E=MxEMk>XdM{ty!q@GidHdb%J%#6Ad2>410R` zmq$a86|Z62xOP0kg9r;@e^CMo|01I^T#6;AvDyCc=kjW&Y;j-SXAWt zT+ee$;l=<$C*`=T#f^Z{YB&QaYaLRh{o#+e+@r#Xi z8xU^xVi6e{P!)MXwas1Z1Piz@aT9E6hO1GTy8K9(kAt>g2##%;NhQskp^3<& zUmZq%^#p_{*p9j#(nW8D8HI2!g7CaT*sC0V+rp_^4?zgpzbXtL<5c&9y^!@J2MT9s z90`voB`&2TT9xJSII@MkxQG)|KPbX+UxK~hs0fTJMZHZE>`$RZwZwHbP`(X1 z(QaHl)K%h%HU&|8NhgXYaU4R%Q+T9tXlmJsN*6p+A33-8bCfmw0cz0;dxugh~5+0ZRsLhir5%^aU%FD+b-6nr#1j<8Zn7x6(n zjQdf>A>!#h0FThFz`^B$PJe^zd1QFF)~JXQY&u$MA9iw#gB8YZ9d3&PD#?|U&YaRW z+=T$L5;^EYY>kgf!VHs1m32JY7|z41aim37(v`Kd6-br6Ye?sUf+B9qArvD^PNdvQ z1zh=d@QUFnW!QJy8shh4nTH=!A?8&o3+GhAU22&PYCu_8te8H3cp*5}pm=7r^$P|6 zK5@g=@cI+WZHi&idy8eMR2RFYPP9$}j8wa$te&1eTs4Rc$ox3g+qR7D@>Y4quj2Fy zby$)0co&LMtr4ORxLSVK`GA!=sqXlN*3)CV=!gn$)X6j!srfx5EBE)*XZA*DfQ6s|DDFPP`~?&G*NAbk zlg|#-kut>$$p63X|5vviL7fw??ZRLElf^fvnajp|1~@na zZej_sChvxd+!;y>jHm+lsDkUDd@@l+5529)^=!Z;cl;v6j{#&E52h2P638RGI0G73 zMp6z^LNeen1Ddp`5eKq$q6Z~Zf2|m;LPw}^>m^O@{fx3flNuo;0C=R-asL%UP42dec@1fL-ZI~@-4;Fk@^TFgPF=8v#-5Cc{ z7m_?XG!502C64RX!z=JZRE)c?+R4IHhp&JKh;gMUPx=kw|ja*%d45WPMWz6&8MEuRoFu`>kGAlS>YKWU+{%VjE zEU0hVXaeIn4J;d++h`5@A=4CPK9}lT6d32h0rUoQn#$ z1;`)X2Fu7@6sFadhVYPgtto&HQDt)+%nw9bcGgf>qC14Ub2j`Ebt9C;U~oMuBviPW%3CeYlxjYUHAdY zfM+$DU=1`DHkqPd;0cBbNstWOi^n(7s|LjFwW!kC4@EV+k{xi0hZDF6(jJ*t+@VIi zcpp$9kIGuO5gtW;^1ID&2dv_%RYz3dUS0yTDqynb1(4M~vJ~1-UaKWZ)0qX^knos+ zI)BbNANSPHMX#Lic_9xk?_6Nh^B9yfib_OYJrgAs5``{8Hng-9MwKE-t9KlNB2rMA z;>v*Wibzx4Dp>kO%g-|InKft5%mrG`s?)Nt_Ql*ebLY;~FckkQBl^sqGkextP4x8Y zh!<3HBPKQO>L{xaA8L#74zakI8zo~}tA}iuFl9h0$1T(MUD=*|G|TD{qtgqtOjb); z+*%3q5YRc047y}tu#JbycgTDi^7A>(Mn>qc>|800CgdBH8gKcCMm-(Y1Cx`aUOMtc zs%H*IhHjGavk2@yQM8s)u8W7+?&SN{^_8#OkP~8dh&bMvlIPSsdA(&1R(5Z&X;q{y z5~af{VWgZzfJUg&1Vv%WWJ@CYT4JCU!r=tYe&gmV!T+4RqtF0}P2yaFBP5P@%yg{m zPNt%<&Gs9|O9sfjgw@%Pjmq2e<>^3jE0LFvUqOkTwKm}?XDWV`qBw}s>=rWKspQYF(((?gDLau3oj8qmr)OD5J`2yE z`)$=MUxpj^EML{e_P#pnVbe;M?~1h(jX#Q5*p?ek#Focfqsx1v(Seb5h;x-|$zl!z zc?_4L>$_jF=Gyc=_@*`5wk&5Wg&kx0 zCW<>?4pPFjj!uPj9@hnFgcac;cz{x{?+gso1xSvhu9EJJ zigL0r=vFddHGy@lrY7mNs60koH51qk8})=uQl5sTM5m6rKkCm)5n~ieGmfTqGd*`WZG|RhJ6eU!MZCaF_iPTVYm%4t*{<_viGh{ItI4;I z;k%5cw>?tR+kTHBBa>C@J4YbFsXp>S+FuIsw#G(gX=5?{>k@ohtT&z$H?7CD{M$1o zaGM5LpJ{t`wW>OxpCO>Pt1B_UL4PH5@-Uw-`}e}75ozDERuCFW+!5Rx*M%K4_BM@* z_`53YP!nE0SZ~5NH<6Rsyo_c!_46d5pOQEp+?4+ zWURC*lTC4QS3U-N5mzte3c_Rb&ab9a0Qp3GF{uk{2)a*|2UptEd;vC_Ak0!sRWv>z zNB?&&rwO|f{(YLfaa-e2TmIa8&^T98Zkt#<+SWNV)~3L6mls2GNjc>v^hr7`&+6Cg zS=^#{eHKw;u7A3jk$pZ=gWczHPCVDWKE7&j;7V!SqJRsJ+zi&m3b+VfOWeoM$TV}+6c!!Uc@i;#o@zKvs!`^(M$xp z4CjcpgFd4_NK}r;k;O>c#NdT;qJ?Kjke$>zCP$!R&IxKt)HR)8rY#;#3(zF&P-%+x zw`-vES{?i(o*pv!jOTXG(##Whn)1LEs+TV-^^Q*QGYhEQyLq+N;nnUQMFzFg zWGKa*Ppz4@?i^L?DbWm*7DoTA&69~uGD3wGIXXpSon0Zs`zai2>_;#+ zR2Sv)hGKRS_<>dI9V5D9=NSt_*)^JY`BUD*){fMgk*oyWa_WQTiqLn&eTwGWHoJY+ zEPBpPy!jWD*@KcdHVvZsz|>Q;9zX0%t+Qd^%Y8~oK45fW6)D%sZkB}06vX_Jun2z5 zb3my8#*(At7&=iLxRwWwCD4Y>pmZyRT+_&f!!?VYhf0x|?AKHLp7p>EQG(ZEJ<{-7 z`9dxn_Q!hMbJ5_S=H6RSxsS4>=-s{~)7VsYYqv-Hq(W!0zyT_U1Dl#nA-VJfUE_Ng zZmFf*Qsp+;5#xs4$WXOOhzy0S+fPk|O>h8jFRm*kxxgueoP%S1_Yh8C&Ajg<`iWE! z^+{uBh%tKWp0eB0D>+Au?+=vAB*$STP8%Z%!qHkP=n8HgkF|5oMjMyKxFg=zmh6p* zb2X>yYmHN*U8rp3wGIPMdpqjzDe9VSq(wxU>P+BaUO+p7NLI46hNo-9f@&U5wCjNT zOynkMo@h%93L}#f-l@1jS^U@ZvOXrQQye=z!TO2X*1;3?YMpIomr!rHGW&P8kiRG| zremA9Ty&}guu(i0ysOAX$W7+XS{0lT z<_Z!UTOfdMP}4`g+Z3|2!?vx0QDIc4QGU*cP^>-(A4MW?TNw3h2THc~39vL&;=}p* zORA_Y)}JX4O(VPud)h&9+D~w~r7bNGszjcu3VYJjX`{M2h~`9x&TG7L_u)@S)U+Wgj5H{Rikyi1lnPauYk3< zLwh2^ZNZj-(gGNZdfOJLt||_cA_57+o@nhJ1*2=w>V&)TE>7oYeKbrCm63K5Y9qLr6X1wyDyLKvD2DS;4S8%?G3p>|@TmS> zQCJMqVLblb3_q=cx^f)4&jg>K01woBE=Fl<5~+}X?#DwK1I+{iW2lI514S$iq17Gf zD@>_{#-g$++MPJIn}f?3TUZ%Dt#o4zj0#l4tYR30W&>z1g@!7aUll3F9@TINs=pVb zW?~^8;|nm~PbC)i@cEz{;zg(uo))2PXn+TCE1yP{br!*Ae>j7bS?r_PRs!`XSd($% zaP`cjXkP0IcrcuWdO3K9*nL}|U_S2tvE;yVKl}!sf`z)1lvbJ@LnqZ%lAGUtRF`X3 zZHSw@3>UfslBHEJsjL|0mgCOs0u9BaX|I5EA-q~diYiLLIkaz`i8Rpg%@uw$vg}q4 zlPV)6;Xq}11w!GWfO6vbD1RZPb3Mv9N8kjFa}Z*Oql-v~1Esh=gG8 zAcvG13MPb&*nIB@<-TpL#M8-@R~P&7qz(%dm6NY9nonkx7MGCiWdfW`snwl=n!*4W zF;eiiXW~_zQAUP+<9K*IP8PlR^RT8+4rMCz;>UU_kVEw$fh(;f@1h^5{90Qp{=c)a zcL)3x#*!6b48ne60qjA7%?0GE!pB979v-5|tLgBtO(w zz`i7QBJVne5?_s@YtjI174Sh(30@S6F$uv8x?Yp9)2Ij@0I;>huc5*d@N5@zr1(%1 z=doH)f!K2t?%955nktXrO+Tg(Ee}UQpAVV}i_5Ait8u#yz$T4_!D7;s?!_6u%3(&! z&T5GOaqNxk!5g`Vz~fJT{Lnbuz&g2+llVr)o8UKWYMfD9iW55;zcQ(iTz<++@b;2L zu&%tU2!U`yIm)}0h4^r?+)>0&4-h3d8>Uym{?!q>yc?>}683LsK@tHIi{a(6BG{#} z2CwL$rN!Y8EG?!SV7LnbAT!h9xP)1#_Z$aZ#bj(LFT>Ao3>TLnR%)ZH))Xg4WndN- z!LhaEKK3xqeQ^n5LZD?osE%4gvsi&!87?jlR(X|?a#&vkr_jkxt}eq<+YL7}RUWB8 zgs=<3cWBu8YI7KoSThP1VX>LnlByC;c%pJR+b75d70AEk+p6N zv{SO^D@f-|0eobj1G~MSRL3);DOl@cL|7wc32vKgEBz8#@Rhu?;ms7C> zsZd_u=&!t6n(FKx&f}18N!q~fuQbe$5+EsHIltrok@o|Vnn8{H4k;!x+~TX>7!(ab zu`(x%H5Bbh<=lJnUr$p`kC^ownrb~8i20;fz2a-^O`vS+B~~5^sq}pa^Do?vJf67W z%qr$}=pk}7nso7gO}hAoeH%}A#JTtpGm7sT?-V`IVGZ-lW9<(6+5W^y`QsXvHTW~cSl>3=UX6L zTWg%Dh`9Uob3bPW2+1`{6O?evIU`7^-X|LebvC{oNT9Z`E#3L0aVQS&Fk2GE`CSd( zwvS+(ac-@mlHU6ncMaFNUT2dXKWJP+Vq8m$#P`4|ik9v(0rHo;kWxpY@cuXBJBL#R zM9?e(sM_@b|AOVL_Uhb_8#`h^QoX60{zC;0fn<$O-$zdw(XElmv5&x1@ z{&1CaSSce;7}6OrM&4>*hhmz_pnFNmWr**6_Tva zwP-Sw4XVi$#^};7D5Z>+$CAUfM@nXc%7RTzCh!Qs*v0(vc$m^M6YbRO;bGi2TWooo z5Xn2=XVCAa8fnoEacl9_GXQsUdeaLnH2u(~C_wJ^7)^R92`VaW;1e|>klun{I0?|$ zQ3Wj}uo7DR$n9Pun!jJ5tYX`e#4M*H(EINaYSgB0Y}6t#?9_`HEdbl+NjNgyJJ9CF)M&JV*KI_h>oD1f~s4^yOUg zTly2ONk_J*#sZL3?737b zLpfY?C*B>~VUKZ@4m?qkm0W^ymiioZau$7rEZ@`ub_B75V^NXpl?L>mfs3n)djOzUF;Y2xlJ*@1x8VBO;M@*+Yayl z3tH~xklF1_X}?JC>*s><7ONW7Cz=zl1D0E$j-}eAij9rMAhJmhZSH-wr`4%FZ4P5{ zsuz+`)zTTNhn*p64$tc6Xz*-`GrHOvGu8G*wNx8w^QkCR8R=At7}227d{ICoe#8S` zXpqB^#+@R8`rdR@9U0%R!lLFq)?WOMME82mY43ZvpYu-^pGV^~o8ZeVmr*?|No`M| zZ#L&i**OwGP0>*s8emg-BeF%iapZ1)F3F?D6KF<@k&&r^r)bAuJu$z|qo9yyaY08i zk?G9k%4rRUkX4V%gSvOsgo;~sQo>h0*< zXp=UGZUDYx0qqns=Unywrw_^ws~L30?ZL_ql(DA(iWjyg4P{MQo<^r$nzleBH=W>JexJq z!X*?hZY!uzsWqJ62RpU!bk|BF>y_$%W-R%{Hu zMp;H89k=<3L_KcjnNDmJ4eS0oo1?WJLys1SACJPz?P^W`<>0LPjQpYJs8}k{Z@aE2_e(g<~7J9GEQ} z+ejr4Y?DNqsz7me@xS*Er@1Pp36(DJ`vny|EX}EatB%;f4nTH96i+$uHl7kaXe-l= zRQtAE0Rh-yrQ`<7!FHG7#^BnXwdr|L(^dRZ&z&>FrxHwzuGp8us8fR07w{1qcHpxKHEC~pjZNPdfS?-4m#{Ox9|w`0p5&miI=JIZ+jtT%gvj%h_~n0qbDq#M9A?+Gsvk z=PBnZp_1@kGD1O(~)6gM4BK}E_RT&miy7u6mz z4mC1SThHG4oel1`xIjvr!&52)9i*e9_3{ZxA^Az6LrFGP!LAX#=1a8T8nUB7~GBX;H-3FiE((}Gi{Wfg0WBNQq7tA1s{Hf0%j_Z(1j$P;UTd0mTcgsEp5?rsZ zC_h;Q9WEb%a^N|PD>4~El^Z07O|_z6jj{=xs`mc5YTvp*&u||uDqy|rFBb~u{2cMx zHm0S>0kje~vDQxVHMN5F_FET9&Aa9Mi9pNW?bc)yU22ZJl<($O%1p+yZ9@}s1sm#N zrr&kl2J(FN2JU)JYO4E6`1Rsxek#0eqXPiS2S|^gWrxDhmbUe+0olTT#6!rfU(n+4jpTQldlX}PJ zqrgraYS5!(dYkh)e^U7uW8X^%cDL3c=EBi`M(TYS>tXv-;2@L&$-07allKQiK)*%~ z@CAJKIHez4r>Sk82P$YiG?irL|Fb{3_n7fcM487p6Ta$|Zrl=Bh@V|z{1;jebtHw} zMF=Ek7`GSY?|KvXmmgk7`r&&LW*FxhAg0GJ4ODXZHE^#>;x- zXO7ao*9h;xZ1yk5tIWuVG-8|bT5eKuvt0NaCC&$@!h+!wy2i1Utx_-4hkD#ygVS$6-~dnJOXT{UV=mj#ZCPZq?m+TFBu`jUPh6n{mnY zL4OTeK@Ns%kplq|h6zb!+oH(?DXs)bjc0K{p2jmQ4%jz-DpN*pdZKNe@!7=uW}+*i zl&_;u{cdc`46(<3)4r)GsWN8HoGC>yl5r`EF(4Av<0|<+OkPcWW4>*Ok)<@Aq?WV3 zt>wyiE2}2+`o_*|wnw^i2+kSgwSyzf{(m(B<&$e4l(gY5Xv9&0IBESs9+dU4kn`1n zNwsG8t6BGpvfTAe`5*0A@AD12r6u6jaJ`^!?ly9VKF!Y}n?aQhVs*r{*#XIk+SYG} zb9ZN17@PHGQ(ZQ(-U7+sAs~S-dNZxDw3hO8r}_nkTBB*=5-t18Y<>!#QjO&pvL)Hp zR8}SvUM`d2cWFv9oaszu^CQ}_&D2@E$!Q_60V{W{BQBAvqQ1Z)WuN(4yIC_Sy`Wt? z_dq1Bfb`XN$y5i5v>j4{%d%zP|K=fW-eDdxpHC6h=Kr%6`K2I`wAaX)30Nx|*(NcEoAB z$<DIalx+(Wh{;;{0##(}i!csinQ$%SLpx#A5uncC-;KIqQ$F*@*q8iK7du z%@6Ya`v94dm)E7F>Ak~kM|83Ggw)lHVUP*=+CBfq7#r5pG2cS^m z03(p#)n8jE_esX1Y1Gbj$r?!7jx>@7L6xkcxEzlE=Ff3g`kZu+^XFtEBG-GAe1!&h z+4~x9{%UXeGVO4r2(7{UlHiA`-WqyR^cM8MsmPQ4l*SnQtz+1QT69zJH9+B})})wU zZKr5}3m0ho3(0bQ_21r07uu<@GbiW*OIp0IA&+nBJN(H}^2y>)zUhWFlEz~xALD9n3 z-X~W4PbNvoePBqK#t~iGk_nvPfOTJGxyc$_-`33<(Uyt~eSP4FBw4`L&Hty??Y+rl zTW2)U-4pK;vh3cb<~2>?&bm>q;K1wASH(A z+vR`JVdP2%EbkilSH6gdM`bVirvER-8D52s@*m2_Ye!kBglNPlsUE6Oh8F*%Wiu@{ zEfj+h$?n;NW@n)9ue zQE5BmShIN%q?w%vMl?w$qOn#U%X(LOs&2T%Q&#J%ZAZ9Bv?*2DQymRfh^mVPYdy)Y z_D9`n7FBsH9T9&*-{wJfSH;OrLF-CUzpWCIi z;M{8zn|wq2ukVs{VjcKb4&{IL(ajO>lybES%>UZ-zV%B*VpZtRA-953N-v5qy{++K z;8*eO*HWd%VG#pHHl}6?lrP$PI#JihRSeweqyZ97eNsfoapn8;Bzrp&DjSl5$Y%4I zskrHD4KrWkB}aUYdAPLJ(D_U`(ytG|mo}A-jqEKqVy2c}@KA@-aZqrS=Jf^1NT`^G!>XG{HA3_xiOiBbI4fhT8Q`b3?K@Q)=|K5zrU>hb%2}iNLYO z+S?T81&S6k%X<^COq{qMYa2(aZ!(i*nP5JN51Y!Z{yF}YOyyJoOk=&hX|~1Ek@1)D zY`R-);0ICCa(&ngOz27q6oLOyg33mG4z(W|eoZ%s#L;nF1uVB_3Z9P4*6G z%Zr9CRzK=Vl~H&=7=`7k8fj}wa-Qsie6N+>pBzEXm?nR=;E_t+wqMx z{)r{>P!rksD>y}j?R$pCLGC1j;Tc-s@+#x}0q%xd)xzhcOyGbKu?g1fHz}VH=T?op zxu!&;q#iA+(O8m;M!18piRVsON!~Knz+9_uTZVI<+96PbyB}8raFl(Kp-BlFRLG*mc>F7w#3xiYIUiqRBU}gJ&QiZdH2*jr*@i5#MIq zt5vNjstm>gtnXI1xQ6wY^dc5rrS%~2tG0Hdw^$A-y(-ncR%#}ErnN%q;Vzv;pB$5a zBIS7Cw+l-1eY2fgtpm@28i4w!Cbu|Sew1iwt-xEd1bG~uJs zgmY}AIF%ePXr*wOmWw!0!kK*2SmOM~I(!{$sa%mt_GSk~_Ptp`>U-7ib&c-K>lV&a z$rV~1VvK~lpDcb+Q^alU9N0*Bi?Hg-7|RUx6jw*nU)j+iX!c|tt`7-l5k&JP;*_yL z7seJBIY=IM_>B`ooyd4wv2qbS3tgmwqLk;G(dcy>8r1v~T(n4~sCKY>CRd%=(FFa_ z7=kS@rzB7lXodp_g3gCd3U7r!SCHSIGc;}@!knhvGG5qm9S^N}?rShUMCFW^z>R26 zDldiO(Z<+HJ9fHm9o2rhaM&&i*BfU_6Rg0FWiYc0ZlDCRTp;FRYbEvW!gj}#74wWH zJiysuXoZ^#;VjCh)eGdWN@d-htxfPc>~PCUjkC9}rWx+8wkaJqH`zW_TRt)Ns*K$|Z)z(?%1x0=K<3XnY4X8Q%%UX$iw#g>b#+ zhf$$Q{NG6-I1>$_9*nN`{P=&y$s#4b-cn-!Mw|O6pN8kZ+F&>W$K^4r0x1p~B!Sb(;>jjN}IbE8oOUd_|l5pdP(QfVb z2F23rylK4kIKh|c29X){;wE^Qj%_^D!FX*nq8Q(0I z4OqySaWX&WLTfDc_2TSu2#*fpq9*tWd`wlpUgJ<^Dz*16=l*Jd*NyWQ)wrLH*aEl3 z>2h2+HBbgajspk#{S@-#bN#MAi2vhrgXONz3&UjBheF^y(o+=STrR-2AHdCi)HU}~ zHZ>&f@Cw~mcM4fs1?M-gV>djA$Qlk0HN&IC$~fE6{EV>sPdEor!laM`sb=HPLKB7i zP~NufxReX1{0rKS?=;@)*mffxPqA^6oS7QlV%HESR}Z@u5D?Eo9`(yQ*y8YijI+KT z23)-O_@5AE)!71HG{73yqj0~4#<{W)`pItH1;2rrO;kK^EW8HKdu}j{(k)?vPi=ZU zr;=iWV0#nX4=2G-2z)nEhG1(QkIXB@`@g^x2Z$fM1kZQ3peg!ilP%!w`>S#GFzzpK z#zmZhgX)dB7YRaksKg0!1E1rGMQQkHg=9I01#l*AJ^~5c-3+(GxGI}R=4`T?H=E`DcDt#Kb>FrK4s zRZFNw{M92qh}zykt5kYYlK8ss7pa$VlOB|!0XM_@bU$p3czCoNPOMb+|DSNC9vVS*z9gId=0?dMV_`tj%tvdC^C#SWrrK@s zcucaR_-up=K1zyrR^d77&H8(7O-gfCR)&5krNWJOH1m0VsGIHXuxXRYq+X`ZqFh;w zmv1ww*v83df}`xoS>6_g^#4UZlI%rAswDsVLBCDoMk)>pBsSiEN?rS(5*WvvP9I5_ z6ZmUZdgzOjpuV==6ag(_8hKvUtgknv^ZkA@F8m8-Ss@!6{x2;PMIbgG8pBRA-qxGl z#3f)j8zBC-DNF(?TM~S;wTNoyGcDm=Z31soLP7S9ot00HKt7aDs~mBPihn;SBT<+5 zEu>Qaq-e)ODJP7Zcf7-cLfL(@`1gKZ3tBdlVs`?X#KsZ7XB$4C<Nni4_TUQ+(iG?cOHHZKBcU7PJNoZ&H9+?7p68cPtxi&0Ac4YB#C}6;|8r zOnxYia8|ATZ-9x{cOz)PB}WI3Ejk-xvxtvQR)fK4Ck(XC@o((n;f zk=9Chzc%joksCQ%OS(T6R%~{^to#6BnD<991sN*+)Q^ob+7zEkcw-j9>BiXwA%k`FFToU|gmMd?kO30xw>eL;fb(VJ+LIRy*Gskj(C3Qyx!8EK z1u(|z@!vz$gu1l2{YkK!aeG9XA5~qhWtDFdbfZP|G<7fhk;^o?f(fW-oR6ZioEs^5 zeav{jP>9?rgU;YVxfZi=#~9~T{HuRpq9Y)EiL5Od?cN|FP*#&hd^%i2%AUdB5cd#n zZHFe9i5AkCh+f-ehQY@K4SiqTD<`o0+eeww7_@D|=J$tl9@#TUX_|QNkFuvW#?$(_ zEXPx5&T;Xl(K6NE?v9-7_#NV(T3k1rdz%p#mF#PhJY@LS>fuy`_%gdT7ue7U?=i09 zL`{|F=RE|`yd%%QfMx6<*fNe?jl&EleUT95`bT!>U$lsiZMHt=clHWrXKUT^z^~=W zT=IolD_voe#0Iz@+r?z#-H4H^D5~ZOn*M1JqiDC9wN1u<8?CUP3h@ysoJUp3#}EUb zX6-(AjmMS{GG*PR)!ID2|3pShNo35WPrpLt%6xRUkpXw zNszB=K1HgAG{ZBfeeiw>^<}mu2lEcuo^*=Jt5agYW)uD$A=F0phbzawi+*FlD4UM1 zXOIqv@a#RLIBJ;*5Q9I^#09z-R&P}<>Hxvh!CP6|x$3LF_^SuMlH<}L2+Gy){{}S; z$geix1zGFwzgiORc@I)jyY@}?0`H`x=Ni1oH^KLq`Yz|R)Y@%U^#OC0 zb2*y!S29+;#ARS93K@Q-RSA4#9Byl$HCwVxQkpqLjqURn#9QL?<8w7-tN&-Tu=eNx zf-T~ME9iU>e912^)*fw(t2NYjpFGK~vy(ksvPY8Ryk#2>5Xx54E$Wpmnr58rTkX`B z^R)AIaIUoDC6Zf3Gos2hsy)U*NWLE$-`f(j_D>`_gteL_?V-_HtZlHX@h#%$#XoA= z)c+_6`VsL|TtkpU*qm}r4-`;u^alMXd2MylbY{0w)oqx;yByH%bP3Qq=zS*It~lTQ znO#>RNl{p~2H>tr-_8hD!Wi{-yg>_Ot%}f7UU@Pp(dgb5RYUzz@asNO_IGbPsbrFJ zo(@=c?+Vfv687Fip$2csSQ$xYAFfx{VBWExj(;!|2jYMkB;lv$Xgu9UB3^Ij9r2CmW@RkCwq^cwVy6 zwX>6MK8DO+XnU_nr4!lpvZ8WXT3~-cvCckRO3woHPC+`8b+$33!?Ssnt?j81*s86) zE&Y{D!0kw-f)xDIWOJ^0m-pM)4f5ORZja56&YHDrTXa@@=B)W^#E8(u1I3syeXU2V zJr-~MN^Z9vdNOBzY<|3b&Vu;Nd2_VF1Lx6Q{`I%B@~^MuJ)^42npe<$gTKJpDg_Sj z=RJ&5)zqOe3=6KS)aOXyTh{7>^&{es8D+m@y!Y%?^#l)vZbfaO>f6ggcG@-;6BqvBg*x=#fIRg9I#=PRaAEWnrQ5nsje> z8IdQ|Di9{qQHwDj z`Y=DueGaCXTj}sD5njh@w%|7)q3JZrMVpi08g^$=NZFyv<=Zh8+} zC1SB;9&aQ)OJEKvy91_Zz{)kzP`-((QqvRt5A}sk!eFSSC^KGrU7{;xdl$N zJ=>XQN%ymlI(l*6t^1PurK-2CBM7htNY38So=A+K1+n%-GCnj-46l0;8&a-Hg43Z} zIkU52m#{}KNYQ$$N4dGf6@k(qB`E?_XRZQM3GpBtZ=88GR9)9r7@Z8qlB(bYn3lKg z)^Z%>CM(rmROE-5B^6=L!>}Fs{&7fz#xP=o(UqvtUkL3*a4l8i^K(fVN^i6Uq9~zm zhFj4{vu71d<%|qfseRokUl*dcUBiMTqEGmPE?>-V%XQXHL$1z zI?CZv_?K~Bq@uZ{9_#}DEQX`tZpt2Mr&oct6tdzEjYgXT>eYj<(gz+a4_4qFqCF0- zhSSktJ)ZXjPR0+6LR()Q4l>0S8#KpC%xH$+x}h3Y)}sS!~T90;V(r)+n-=u zEgIyC%kY}ahKv1@Lh#8V$idS^IKnh|4DKk0J{VVlst6yYHrj@g)_2Hz0zSc24&a(6 z;ocl#oYN>zN6_M(WPFweH#=A9quKdK-(lpAkGLkHpj*QDOX*=O8t+PV=Oe(r%YJb5 z;=hCysMEt?tg%0Y6peITz9E zE|d!L7{RRv8UOXL2EI=L{Q(00nKOSy9ts<&S(?nE12Cto5YC`9`cjmgrA$WItGVj8 z-Phw#na^rt#(X!C?4#+r^OfDbYX#aK6=CF1SWzoHDe}R6g|d=|Sqr@v9K$Qw!r4^d zO|;SP4W}6A4#eBA$arz%yFaYL(Sbxg82XOUM-QEt^Z_2j)Os3EyYk1#=*4rFE z@v$d*oC&=o8^6pr zN65MPu0u03ryQ{WCn6_&spq;UECF#xgM&m9ehGPch z(sV}TJF^2jBT|kqC@+E}k$MaM0fg3*bvfhd8hzI|Pm3+y?Ka^L=-DVP0M45;+4vgt zCf$j0#d|XE+w|7WHqM{r*}1wFb~SO-Je9Rg%he~%8PaykjCWnRa`c{Yo8Z}^P=Ejb M1FW$eOEdHU08*GM)&Kwi diff --git a/pagefind/index/en_31c8595.pf_index b/pagefind/index/en_31c8595.pf_index new file mode 100644 index 0000000000000000000000000000000000000000..b7ddae79f5f521cb72f8cac3a05a8cda8d9ac196 GIT binary patch literal 33951 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%0AA=lYw7pMbn42?hy*ljz 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 literal 0 HcmV?d00001 diff --git a/pagefind/index/en_833355d.pf_index b/pagefind/index/en_833355d.pf_index new file mode 100644 index 0000000000000000000000000000000000000000..cf12b8bc9fbea543fe8625b4c34c5d05dd6ea46d GIT binary patch literal 32588 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 literal 0 HcmV?d00001 diff --git a/pagefind/index/en_8442a8c.pf_index b/pagefind/index/en_8442a8c.pf_index deleted file mode 100644 index 0ea59b346ddc0109858cb33201ef8a3e1f8abbed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34117 zcmV($K;yq3iwFP!00002|F!)Ge4N#>0FLS_+tiz-IqsH>EsU_`hGm;(y6M$)#7bI8 zYp-^t-IXkxW=n3^xL^#(5NarDn0)*ZYIs`~U2#^q365h<5nUzeEd;h=p z{_o}{UVY#BPMtHobVb`^ZSiDlQ)^4>%I)4C2im*R@!n`leB}Vl>~93)KD}baKpQ{I zZW#y;Of+tN^@;&^O|5YTC&Cvn3ogSyxheh#tgAKdR^uFx?S2bC#HaqPD+atx^m-jk zhQGi!@Ss;_oCyU!{!e3{39h2gCz`-Z+Ksbfz**f0aEl3CVw^c}jcwqKqG2Z*=Q!i+ zGs!q>;azOF3J2<~g57Ws{`j^P1HldW@piZkV(^BKLwyFD3VeExQ#)$KfR9sjKE-}c zuZA13pC4i`*u5LTg{JL7W38#)SW7CK=*)KEM$}W!*lxu@2fdFcV(kM1dH4`c!S49w zoD~Bwet>>`3=^>-Z{w2Kvb6(28um_Xw+e^7y56{hG#>sQN8i>Mzk9_%cy+A_eh2T> zn@}$;w$^w{X~H$eeFZyPES+`5I{OFmd70Qr5&gjSJXoqZ+ML*E_rMF`9?)Fe5yq)m zAz#q0(vRQ~I0C;t$vD53hfWZWj=y~nfAHH|;T>6=+pIq(VRL#J-e8>ND+WUR@HrXH znPQwKolPRvd9j^M;4Ynwfj{dJgY+1=8kdPLVXBFIE%S0dGR|cDy}sT!?eup$EP*3o zp>Ym?mw~3RiY9s*%!7w%TdBzhu#a(!EXMz*uIgy}19q2jox^1T?j3+&>C?!&n~-NG zVcZYkI^CSJj3euZujRG(H{-sh+w*g{!oH5+l3Q`fEeI%cdH7itP*N?i)}Hjh0F2|I z*Q^+b@D4vFlPUc`HmfBTYh7($x-n_x{1SJK27gf=xPR3B{zLAwOlBLe0gw3tyV644 zf?IUO3-!ln`vdlu9sh-iv`K64YuSr~;YiuBjo6xZ_8sHgZi2_i^>X&qt&Pc#z&e?i zQ!CeY3j7kzHx3?g@B;j^3qCa7%Mm{i2pIqO@FU|9h_Asn_jrXc+c*d5nH*zWoJb)} z-MGsv z9!s^wv#SQG`w_T)Vy^~dxZghGucs}l0|nytbhPt=fdbyoU1gP#RkCik&Mw#ZpP5kA zhMcGHm&SWq60m~<9$W=KnH7+!J_jctY|*c%@y?NEhsrK>cHyQo zBs?u|?jj7w0}E`yX)6ZGcy71gM=|^;)rR{$n%mqX{d7g!@!2js^O5>2mcG>9sKCjv zTrOFofaNUX9-v!XEJG&+LW1`iH>wc+hTPP^rN;kCfIRodmv=U_aNRB;=$G&Euq`z^C z2`rLxFM5e@#ugJfN3MudC{R^;?Fwp)Pp*(TWm7Gw#1>v`xIC=L_gyAdmX^L^kpQfK z$;NTzpa>PLooM`acarf}x^NOwNHbZ?w+@Dv)f zaIx%hPiw!W)LU05L-V}6>Wx{X3-8-&fPe=ra>mZDWJjIjR}7T%kBxFfz46w;kqlD> z0$MTInE`<-XKSfK$O#HwUkZl3*Z3dX&noa0VZmdKgNSi6oN4?~`q_T=G+-sXr+wB1 z6{Fc#{AG-`r@iH7J~))Y-7QcLle z=kT&m#YQs(<2@eGj0nkpg&szh;iw=o@Sg- zL;ob`XZY!9PQ+U_+bijpC}DWna<~qnuh3>@&0uVC0qj!|fmLukybHgA$w;6A{T7Oh z^H1Z=qy4Xk%XKQd(@|m{1$uiG_S{ZEqu&ZB+y?D%G#q1`U6GNta1NhXLhi5QobD{z3k&SGMhb?eZ-274LzAZ47FFx&pD60flZc(-AUUVK+}|1FEFaEpzzKkQL*rF&&&L-R zBlmMD(zVCn_b|4EA-cCE9gAiWn5NURoV{Ha88&zV=S7#Gw>6&WN<^2@d!BIIIKSfq z=p~G^%c=>+16T-ghQZ!Wq%PEyVQ;=|m!St6=-WmZ6@;I`=M{kB=cL9y_zN#&>G=bB z8z#auzYfOx^>AzuM*D)FedHL6`zNq?#(4T|*n`dl(dl0anf=R!8Wj|J6{H`qvIEp3m{Yud;0jDPJ*BDC_=N&F%` z>_sd+{IiL?@TIM|@J2-)F>bI1JD^n}uI;Ba$g1`>4pO%g-r%$Ih4(7G2^#PxpUM-k zvBI9@(R^r2WjKq{|7yp}GRHZAm;8(U^<%b6|6+%>1N(XMDqM?W*?^c_R!WNa4g zUMm2N%PnAV{DqtE`+8S?t-`>Oav4I?V1lLbh@X*AJF^9E5L4aUjZ98Cf?MDm7=#2Z zr@Ljjtk}JTTOjC_uf`T_)ww3IKD%NBAo{Z{*-txCW4zG>Ew#j@(U+E4uOakJe|E?= zoz5S1w9B8({4y?owGtxkMiTM;d(hGyZxw1=c%x9;k}v4o@I|yc+C2Q6+PW7vM;Esb z>$ACgNk6Z{iz5=|l?+s@rbR-(jL_VjkPljTyhL``3|qT9X=C{B)9l~vX&kbyzs@+X z@Yl)V`_|H(q^rF9ivIC=)H=ERd)u0lEqsVOOSSa%^WR~lm=!e0J@$EDbl9MMd(nf~ zoR-*<#Y>~vWG3Dl>uy*YT@p*TwludTTQk`ub7r+KZ*6YwNDzX=%d=U$xNd=f0P#B= z-Rb7GuEo*Juq8Ejv+RL_@wNO{mg#aW$vgCC&#}>R!BHk8t-xFQ)2fFUVeIUvT^Rf`5kTlM7|P5IOFWW z6Q&JXf>>2p4uG}B{gh9$Czi>gx?`P?0NenN$lPuIh)OsH_6n7Y_!PLChn&Fp*-R`b?(#Eq>K7Hmm_k}7ZsBGtWJi8P`~n{SuW8Utwt*G= zo+TZxW#&FszPU`bWq2emb`$s&y`E+YZj%;)gDoWD6bKiw;>3SO_z3UUc7BMuHdr-} z`*%I-hgGq=QZV@u$`ie&a@fU6aC@Xb>X;du&|@a_p{n~9DTMvrPK9`BLPIPzI9+xh z&E#5ph_c1uY$+eR}A$21X1}oU%|lwD?c`+ zC3-6FNjvWsG9T|}`r}U7hU|34j@*YlVid?)AGh4jG=T;-&#_@I-{SPxG8wMB<;p)fMotR|k*7UN9O=6+8kTK^^Q1BaQPpqKAoK z@IN($A=m|V1k);w)91mxum}!=eV~u74(tw4R_zzT^dhKrU6=!7@KsF#908LM6}(vq z)1am*KOBN4*bfd0zycVBw|QSUJmMm=g<78-jXU!CYx1n_%{>&}f|^RwI3pnLhD)00 z(VDsn^UDO<5h_bBK=3L>&|OHM9E^AJe7uVZXeMLG;QWbj4m^(*4OBxP2p7PMeD-9zG?5k2LK zflm84lZ|G3GEFiHklwp{r#Hz|Pe$KfhHra!dW*btnjdHr0

    %O)@<#qz=~xml9j5 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⋙sjsvP~aYadO@uV531_1*cU_4 zx1`+D7%OSjAeZ8D@zHso$YFDaLR%;1OxN+ujE3oZOmCPmn+T6}CV@IqY|x9j(`U?> zMZvDTvT(I3NA8p_XUuHaqhb0=5g^ZG-o80AGiMNdiv+TcOjApO;uu8NR#2eM_Z{4v z1ljSc>R=DfbQdv;2|cG^Q?GW{CYlB75>@mpT$V1 z-b7qgu56>QNsA0LL9L_NZbKP;GFiSH&*9y!hOP6wkC2gmsv`wWL6gYkpK+3BPn}a; z$wOc@%nxYlL*tJY65wXwSXL;Q%@Z=O-xb#mHPrF-Aoj)lf`{;awAW8=GZKaA6(cb3{>@s3r+J z!w%USyV$Dsc9q*XMQGHnM7_7eA3}P!-(t3ab6g`wSHg*uQNk)BOD3P#uE=hxqn>)l zP*MSw-KPi|34WzEN%xVV?2kUlhrd$1s~E%EtbE-`#=SygnKh^JaeB$hBpIXgfN{%; z&_XdD>g`&WZ4opr>3B7o&bS}R$6@tC^eeVPty;nvSOiB+jglt3(weF0bFF5ft7G?TPMqkL>9fN_r~Er!>EbW)!Uv5_O5d=5*_x zX1kBA5l^r8fm^cE#pwuvXL6PX5(H)`x%Q_f0ze5o!vzG?huzC213I=_?>SWx~CpOE2YC3uA7GX7jCtO=9_ ztBtoLWCGi0ws^U!E~YdW*!mhDb^0YJ^o>E)$r$A8xUKtmkqLfDyS#)+B`3QW3dixz zmZzwYO~(>BiX7y7)Y7#|xV2)XT0f!vuIHm>rYUlhJ?eBcn@aVS3MWtqi^LTPm2ab=lQJ+{UhYAKE3$VE?t+G{fbstUBk9n$7Ng>4 zGk!nbcstw@nCyFSP!%jJhcTi2@(PHTmKB$kQgW>Vl1M_FHsWPCH4-9EWSflr4(h+o z5;h)(go8^6lRabt%TdqV45K3jc(n7;?t3uQmY2c2NQn#AyKum;AQ~IFwTkIUgyJ63 z1vVBhSr`mWlA+ zk|MqASjJ^f1xp$Av<`?B@&>`EZ&_VBV!KE|I6qRz>2orzXnTShidQ(Y8qi``Lgg$% z2$UmX2YgB%F?$xXZx%Lf#-`IL(j<(U&>Q)B`>4!zit6E03g!)z*mf=2E+5<7U=z=w zn$vkPR0cP&7Jw!Ya(u2yf$gWOqQZH|_CUG}>cKCq2#m0gdWI?D+cL3e`;ZyTIY*wQ zTRPSWGCW8W9JxXj{}QW+y1KhHR*Zp@DV6xTiLkzG5;U3>R^jCs&T2k!#4H5q9lF6jYUeG!my2+6qgJlXLdV0J{RBQsqmSqb8(# zjW?(~6lx*@TG?bhWz@6Z9n2Xe`R6G)Z&>eJW#-RR1o@DT-=rPZ(U*2N9#E3rEnHXV zTN7}&T81mp1tN#W^vMCrIS|jqSo#e(pVSxpeISIFQE!ry&vF58Ng~!uc#9c-UMZoY z7~vCUch3d33uikcZnykUKf&>0ggqjg68z; zLIk~+G7X0)+jNf!+^jrCT6tSic-fmRB}Yv79rbJcgmPQ%ApGRy@+Hv4T?3CAw+p7K z(&8o)SQ#l{V~E|2T{VpQaEe&8OwuJPl5CctXR)r0*_jtj=vCE+98H#-gb>j?6*Yb= zTb50wbJ;OCaTq@9Nnb1sQ$0Ca?qQq_!feMlSpm=FGj`bXw;>Npaqce~XS0hu<5UE% zAe=#|1>jCdAzd-fQXqAleoTWl3X0c5qTV_>J)|Cr=?^$WV>80rX&;-8k=wyAB7K-^khG#vuZp8yrf&O}ZOM<<(OH z8?M>%H&lJmO3x;TiXgeI|5)ADdB1LzsQ*2x3=#`u^MY(9oPgS`8HH#ea!NoG*7)SF z+R6JE&o1N8FO5ypd}|!u)sl%(5eKf-L-Ab}KRjXI#0G0ETz)JHL9{zPQjUaVAq8Y> z=AQYK8$*X}mpyBsRGI2};C&?WU;bFi8g9YkCt6VfE>y}n!UQivY)Tq&R-gV0Z5L-6 zr_T7RjdynhRX`Ug61dv9uWOvgn}paEgWRRY({E6x*o_+RrB%c*$)?}0*XCXuRn3-N z+;_K>{`Pa(vUbX)@{}y}CnN+Osu*RJ=0Pf#Wk~7`9P&Xp(YRwti|4YI{OK~|&Lx@l zQ1S=&1hu+%D;Qr(XUW_471=u}jEM8+IKM(mk>S8Go=EP_F4JYK8WvW;S^V+PIyVUO zvd9vTDsj&XPc`n(6#K>1b2v}8<|tXl;mY&ArcCH=veLg-*aAX9_>l~iOU~vA_KR6j z!$>wheuk7jd$H{8zM7|ETxFr+?&;R69d)z2qhfgl?5C)DtsHQ0JbV%o#m{FHRl#`M zUjUu2m02BJR|+sKZImd7Rp{v-~wKe9HAr*?<;=_6F{7sHzl zWGs!h!#8zCyTtrLBXRsByJ6DjmX_IuNj8bw!a)Ky2{hcmcyi~ORch6deye=a7VAUq zA)d^A(kg3i6E~>ww)Rn}?I}sA#yCy^_4j+D)_MlpXc@SEt^`i9NTZHqmEQgfU@dvQ zJSFt#Lex`F;YhRrL9X-U8`MotkW(P3cW^9Kz<|*~)Y2bWMtMn2MJk7K`YWZVb$9DS z$YYO06@MMnL{MtEwH$85mQy54t%szb8aZ}Sub+p8myf&7)cjc zv-1Kekt2++fQw7ur={d{z%&MVw_eJZbOvZhJ2_(Vt6hnJ99B&VRG&gUXTX>+N(^{f zbBudEVu(^WmkJ`Sl!6w{{xFJ8jC{N|k!ujVikkUN#uMBD7eRO~AD4SPyZ{G8V4pCIt**c~V}U}puQs0GeK^cGPY4uz2fvl< zXwNGyn`sd)vNC5-Qu}#Tg_hk)wnm2>$ygF;vzZt#$i)QP1eSyZ2FDG{A`on>HNn#; zW8w914=TBCWe$N@igM$;g1q7cc&HSC_(_DF-=dC{w&!G=)*x{B^~g%JHjOTYDb;xI zCmE;4I6pFh%|47Qj1=WZaBb^6)fZC9#u?%Vw^><=cM3UM!6m46n+T0KkH}-lYBn>! z&bH?n#;bwbkTaZ$rn3FQBPh&s1xavxC&pB9;2JOcEk(UmrN&*Lbo3b5mnFPhVoKx^ z21qfGN5*WD`SVzG=l5v&78W>iE8BuQ=s9@{iqAMj_;6vG1)9EloZy6vI@=teYBd#U zoUOUA^6TZeGVx}$F64Je2idLmf_$NhjsunMNs>&8i?_P7RwdDI3p_kdd0^&|Vbug` zbmeHTovP}@-$|zw+hD_mK7{ddBmZb)%-!Q)Dh>OgQqZ(=-S4U2*9RK8{u>Z@M?JvJ z9O8i-ZC5mH75Nl(XQjJ$ha$w;%h_F2rkW+RQz^yL`fH@Y4@!UlML@d0t5sFrE_gc7dU$$cqIzDC3PciRr&SbOcri*<1JKpq!H7hPj9lTZ@(cHt7k7&>!6}Z(yY4~>( zdVD&XE$@K?&;r>o%-TH~_A3tK|FXTCl2sPLJ_Th+2&UrrV{oWrE!r+b_<0oZ{XQ;Q zsL9BLs0%*B8Q~2NV6zj@YC94IpBW)A<>lD$c$iuq!ZmGS6a7}|cp^Zg2&Vd_m61Yn zges-97AdxxZ>=YUd2fh#zbHkJjHn&~rm_@F6$>uwbrzEX@DR>GZ0STJee8EssSuoA zH0F~AeQ*x44CC_P%{-S9!p#nhsDSxZl?AA0x;8|<@W(^1?^nUg!3wnNpX-*v6c=uD zVTKFST^Qve=4xfv#ZfRhToi)CDS_wJEOQSwpaAq{9o&`|Cbd@$?$gT^h-P+$QAHtt zL@{DRQ(g#*i^{P7-SW#}Hu)3G#XYWp+124v?297%NYFEZ_sus`XLoxvIkUxz*z z7luRf^Kgrg4&Yu+D@U90B$!eHr=an=yOfIM4Y&F4U*(eblga|fQLSQkh`}-Bp+;qL z5T?3dA-qh~`Wrg@2&`u7e-`ODzz@l1>n-FIuQbl@$pHXPEhC$AJv4ea0+RdE5b_~M zS5`8A#+Gyf=bzCa^$2FyAwvE$YW3Q!Yr9KA=MP}t;)?R}NMT_m%nHEFDxB|l1d+eE z70BeC7a8oE!d2kQpO}`{y z!OnIGRlwfm6$N;DFmePyd1+-)puDUQ4g6Ojyo>^J7+fdE{h`>uDG+08y5`$z`w~`apxjR7K7)Hka#mC5lTQCl{=XO zm%v$N2(60{W=VIlx(>*rC=JR8PAnpM*4bJMA5ex?I1m=$RU8ZZk%-!W`?VELF2KXy zN3~?m`4)mlQQ!gs)u*_x?tEZfa9s`M;}U<0-oco zn>n(|oL+1JGK32#bun3tFJ|6gcQ|(hg1|abFQ1Dz>nXS^pVAA3tKgatXKP@i8*`+C zW2nm@j4UfG^6|@qJQ(9gU~B{q!P_yqvJC%QRZ$dStrA{6WaHjsmK`iq!NDbkxa4Eu z^a3~wf6T{z4=O^;1A7+W%P(@a2FcrkWMzphqvIV%0hR762!(j50*Gh4 zJU*uYlFcayorl74`OqFhsm_^Nluz!`f60UGbQZ_S;wf!5ni|62!HMJ%PE{eVG2uHj zf7~47QB=jIi6*iL@A>Q0`*W}hMcBD*#`!61g1QJ7XlIOl5mIl;n6jbHxE)YSYB@M# z1i5RSf~)M2gxjGjU;)haQ2uO#wh-Qv{cKVJ6j7`_jj#3dwvH1?35(#+3RVhQUDQKm zlH>DOl6k(O`~Z|xo9oCvCH(Y7&<}G9Aj4Tdx$_w)ar>hGdKs}lBDW+twJ}ThTk_Af z#}^y!_-UPNzGK6XecKgX))h^#VaSRZi#UzWVtLK}MAfLH2)yH44P|z4s=eWdA{JXH z+rC5){f*F7MFr}|QTErXiqyM=-2MKnxnYaoC1ekFM+?dpwye|ls%E3Y4z!|5xD>5F zB_tO+l5~&~UQy(a{{;Cd!B>Tdu@1^d_F+;nDlSwWrB!5&n*(x_tauIwir%^B?WK;>nZsHZ?Yw0S8+trTH{h3s(=-}Y!JM#5;diNGT~E@QQ?ea{KaTJ zqqE_)?`2)RiT~B?Zx$A+DUq-y=0XjWBwJB;R#aG0exO1!9_}s{$$#jqzf*vEn9?Zx zT~)H*acx>ex!EkGiffCLhm@^z{)FcFPFONvTW~&QTkXNj>fq9xoW|Z-fCp$}PsdlUMSfJj9ctAlebmwb&Y>nf}m+i7rETW6IE#l2u zT+9;;Uu`Fd7<#Mp@B{s#f$I+V!xABzu*MHNe^teQEvN9cRP9~S>kQ>^FD!fUkXDZn;JjP^_DT>xgooZ=>~#vQN^nbqJp|Y}6}| zT>EzC(3I9j*hV4`tv_i$yHk-#$m#{S@Btcz%9wOhchN+AiTV%r+m*yPYgoMv{BOm- zTSX7Su2eV+wxdELooH=9L&fNMB5^UpL5arglWTyhsqXAiYu+PQa)**Lvb_~rk1af1 z2;b|RL4;6$WTQvI3rZK`xFYBP<6TO}Y4vffsEUpZ^Qp+i8V7}46XoucVww0m%v0=^ zG=*oQ?0T#?qN4WnGgbM7twx{%b}eRq8$?UhE-XSj0n~;))Ti!XKPucZb>ed#6OSGa zf5$C}C&}qz`tYRG>_>{*8t;-4O;2e6%Xpo5pH6%~tpHR5W9?U|u9bN3bwIhw$UCNM zIFT-}4v{=^DxF<#olu;P@?b?!4MfKaz<574?p>hN3dz9ayHiKTplr%dMY} zJ9;P;66v65q@jFxPbjF}#Vj?wOvHONtuKB{NU9^%lV}~Rx9Iyx;qAUdAmKFhH2!T= zSXPYSH{rBUm!f_LN1T==$o~LRKKM9b-5~&Oq#rE)UIES(r_Ot z9NstHzm!n4p)|8ar|^jJ%MD81o7DB-brU?&xVijBs7F5!dZ@CIR8o0_a+#vmcPgNr zo5Dc%fVXqyoc|zH_hIArs*p@xhEEmi;NOtAS}t@g_ySOO?v{D*a6`mu&Akdc(Q8(O`c70`3?je(aqPlE{2MJQTAw zsAmXr)9;3ZVZjMYlVU~jek-)UL2vhI!m4^Lh!c0N4R3tSXCJQ6C2pbA`x57N+mJ^s ziR|8bTx7k-_Vp~Y!%Z+VjvBKt{EQw7(%+m4z~ZQ_zkD|6f|g4{aL`-n@+GRwD65v=i~xo}^77GGNh^ z4Lyj*dU2-MjZY3N-kWd~r8f$!N7M9kG*y2W6r3pPu1s-0LY+U@gzxVw%Y(Vad2mP` z?44JgXZ)}7ygXEjF?Tc_HcmA8g?TVCuRITS%d5hF%JW<_x$U0^V<(wlwP(E7jB{twH)&vY3RR~8`p-fhf8na_yd#C{J zLakfApwF{W265r^N=1}bzlEn3Yl^mU;2}>|TeT-r&CvukMkAdzd`HUg6+Q>2G6%s;LASU5CqO%-9=ysCY@IMl-WsIIg@zv5!cD1qK;#5)$gF*j-|~34+UXf!YrxN-tb!uR?orjqp$FP+K-=C>-B7KSp4E3a>UE z;nC!pQ5z}9FDNQxzdWRUb(EaykMJo<2scVjv@g;8YrJtP!$*)j=WnG*bu=+I;Y~Z3 z>OL0Wfq#gKiLvl!v{6tv-UQ82d52w7doouMk~MrC{3zR#UTu*F?sjBw6e5jNQDnet zPBS_a+Nc2En33hGgPBom{u8mNQ=AlLSk@R`q&} z{kpTAN&zmi9hC|->T@B;GHoNrI1GbK@jhNP&T z5EIQfa@T{SEj^s8oXK~n0ta<*xts%utl)gLP|g>X{iz#9N|~T7%H^7YA4_+kGE|s1 zYF57A8-EN+G@>GKFEZ|LDIuJ-b-OoMv4qC`$oiAn%$~5n0PSn=sPU(0nCl1Z>W-4& z?z)$6h@)G0H?&X~?`QB>6&Hwd#MP)*@X#C&Vk&^8R4S1O*pqd%d za}|g;+<_9>j8>+NsNcQ^!I3hoY>}3)Nwk``gq2G?yO6I*`(Lm;PgV;$?PC{|jcrDy zQjKwbNs31N_hCxNu^Wj|vrEY^HNN;XyV=WQThPi;H@tkdMNVFS z9XoMyS&RMUJdv9WQr<{B=S>9S(DwRFqlLF+2@YEVCq@NJwfYs$yc%!ShN=AJWo4xAXojiFa+W*IqDIsVXpf z?BY}z6iE)Vu@2KY7aL!a`xVM9Q(u9J!=msd2GWA)*SU(0Hq2wPok{QVow5mL62mey zwPq60E{(HxGQ7@2G$TP##ydk(CvM;^p-P0-lrj;<*~YP0m(W}H3j2h!OtKznHpf84 z`4P!j1N>OBDTBzca4-XBg3>7tXnfRxvRk2U$s_IF0$vOiQ$Iwb%0$P({|-vh(CNHjZo*>N^qhlMoS$Z+i6!>PV6@CC%{&w0#dD=qI%}PA zEfFltJ?-kCsx*$s&JUe@xHt^AQ zX1fN*aOZ_X%CNxZI#@vtEEmAc;$T&fi%9L^_@Yxf0ZvBijMxfagU8A$tbhKhNpQWE z?W_~Evb~Jn;3!1x!|oL^ry&gnt4x0wp#U4)7x5|uuH9+uO|TaG)p zMs$G(K}%JRqu`hWTTX`pINw8}qLiWxY9sMXYj-3v7VOJze-e%Y1tdi+SIRuKAbH!+OOId{=!-Lhc_HsC` z$hZNW?={F}4=V-DTXzIJXuSJje{$(@&z}glgz*1hzSMkK!$}f;8#3-RIAevTGbM2k z&#Ynk@DMz<`dn`zBHPu}FMN=}BQ0Wf@x6S`m(ww=*sxgh@6>^0AJ zQJF4{l0ZO{oo_uK*>fs+Jdq1H6b{bWIZz+gxW;*$LY+K`*EepjgzO*a`lwY8LO)#+ z_f<6NqbxQpTv_bG497)r?OJwUjuo)K<1y?tf)F$ho@V!LG~jT-i2)pXGbdD-2oJdw z@TckG=@LxFiM-^Z{sS6wDFEPP^1ln@xvpzd0UYE73gFBCoJZb$-2{3`7hAXrZ^T9U z6l3qM#U*sP_&3_IoGljp;AZ6Da2&;OSU~&`CC^&Un87WYG`W1vHu)T-7PBvH3XXqo zat3QNxCt7UQvcrIOqM~p0g9V8Dt(Hifufpu!(Sn99m`IiF{hzn`t<2DXU-T9`|f6; z2U@<5i-Pxo{WMqSG&i=0F68B2nA3E#uePnqN*_=AZy!@;{g#ec%aW$96iOq@nyj;g za^j@D>6`z*ecTmGcgC|#lpdlYs4kf;8YdKj!mXILg^70eHT-Wq{;&1u+J^07 zu3>`85Ndb1qj;K{PWa!N;>cXVd9(z&^PZtH_vba*jTnjvJoRI5|6evb7jdH{J$-2GQ%LnlJ_Ywlgw)^zHZmsIz}dGrezOF2zK-?;zQ?tA=D=P0LCGPj07_wWgv$S{v97R;(mS=QCd#T#>O$`Cg%Hd3$_<+IhOE!D;sBej&ooUL1T$O250%PWBXe8|(?UbBw?m zo2Bv~_!k^(lP1s;l(~LWj;cXTKY(J`MiJ{az;D=gPro08Cpq7~dKa@>;%th&XdD4M zpa%9Wgh${-4((wI+Dl)0|km1=K(aD9SNt9b7VOs3vdr9w4sU=dsBmFfa>n|$gASF zunReB&Bmj!IX2h}^9I!;<$KV$*bp&eWgk=NXfmtiuB zrwN=s#aMj+m%*Lzlnte$&7S~mIA$&~_lJ5sRqPTN}y=Ih(c8TcLWy3+MTVYP}4XXrtwd@7RSJS#_8u1Nrh2VdCWK`!}V|& z{#;5Y(@l1?6qS$vm{V-hXxk7R>UewBa#X8(88qTnU&vvAYdFH;b~w`IumGzUUuYd^ zP#JM>7@jMmgrKLu$M9n=rpzXox8VmAZ_BLvjpBQIRRO#YZEzkc8E0xjYIX-$gus7Z zShwg0##S?e!uZHrO^>{H@R8TaI&^H^)ST)`w%|7$#{U61S)^^fRcg7#w(J~g8B3-#QK2T} z;!^dAVNI54i}l)KHKSr|(Z&kRlV8!Q)!%COkj^( z4#AwiYWM;fu_ae2b%}uboA7cuoG-86nUfzvoH<+v!Zdwh}_JwV)I-?F{=~|Ur2Qgro*jxf$o35}d*Xn8B8r!BbHaMR3!{xTdwsDuCLS?@q*az{lnvr(M<}VZvFJ~OIBYC}w zW4Q;c8=8BX6d7>eFm9vqXQ>@{e>jxVfp7=gZIR*7SCdTWi!k|iq3}xH#Jt*Y2bcP` zLy(_7{2j5>WbJ4dN;F7yn<E*viX4XJ1w$9qMy^HO4mF31mI;a_w-O5UW1$OgZ zN7eEqspp=cR`#=mNbOFJ76)4l(HUz}J-$}s2~J=!5MM=Gsm^6)r-&1Fi1{LHQA1~} zIn`?IvUTtvi%Is`vYpbClhu}A_l=?V!lfTKLF>ulBVFQgE#5tFM;!curwL z2zTN|eyVW`#c^2$@)H&h(>!9a1Xs~pHOUl=sxt-Ux_94%U*m{x|2+k#+8KH|QKXk4y=+pAa;#0y7@`mo($C}ACVFb723CKt^l zsWRtTzW|u40FsS&4%oT`E|UB<BZ090${88A>3*Tn6J`|-pf?15zY_fq=I<1cB zs42AvpZ|cxjcGDf*E0klGAU+>WWXt6Hi7E$QVrd(8r(TUni@<^Xo+S?+^jz0gVKBW z#TDYLI9B>ew_IesxLj0nUpxXi>0b7vB=(Z?V_l7H^U4HN9?%-4Bl9SiAj%ZKqs~so z10ETuAYw~V4fDkU^PwgZIxtVNi|ivAgpRaMFYj1wc}vbOms|_hAwO{wd&1yln+TJN zsaOx{!}BD05RWugE_wcOoM91}-P^4!=Hc~o$#8Ru1u-gM+!;eXXC^uXV*OJ6@^_lO zE6?u6u-vX!@sqA-3poN%LY4zy1u^ee!>9-{)4Reh@Gwa``>DsEx2Mw04ZL^M$<1Pl zzDZy!Fi!aCeUKOb#yG1hT;#xQPg-{O*C_&PJ* ztgb9CrLtC(qc2qyAUSp%nNTU5{ZnE$Uo!p`lnMjU`Hm43z2{g4@>GOIrZ>T8 zWXmZ&lASL$v4lXCp70)JGVDD{@me8#_jEPYgF#c;2>S57YDRq6v^m-;8EZoi%4O>0>E9w}Yq*g6wA zUMV^Gm<1)nn5)iU_C`qwUTD?uxdZjEZ)N=#cAiZw?ny3bW4@cm4Fq-EA*a^jO|rOj zY?WlSZIVIHQHa`CL$eQLRZ>^;aF-OSq#j*z!4Sj9e&@%NQJZOO{)hQCOB))(&*H>* zOypiGqCzn{^lBd=Y3@AafZOv)X=R~0si8{$qZs6Fx$B1uhxiR=;ccgS?kGY_8Dke! zBV#mq-5N=^oj*NPLV*Ar#2i>)LQfQZKf#WFp9D4pHc{I_8%fJ=rjS{u-V{7nq=$1D zh2oKJsEWBLJAo$3mt!4|WdwF%rq763qDF07#I#o>sT2=^he9JN0@dnqcBlzxjyeju zvoieylwfnnSMq$;mAnG!5X|LIJ#i?M4J{ZJM{JMgZsic3Q=#e(!Sm|h;2j_W;4M;c z$WAwYz6G_L#9JyfMN-Lm|0I)=edy-0xn7?OMKj)o+H;ADr%O0An+7?piobvkZkW! zND0*Pgg>FQgKJ51fg;=#0=UOWZjO+L-#k0l1l5cVs+*n_NdG7Y7Cu=q$11%AGqueR z?BSyfKg{H9(>ivgmQbok%Xi#ihe@T{1+lr;vDbJ`g+vgjtz0blPe2g8yAOhx6~TXheNzc@Mq)$ko1J;n^CA|m|WI4*0^sf zPN)|V$BO{+AEXvpRS#RNC%V6m3f`5$s!|TE;#}Xv#-WsT6;QDKe62pTwZyh|ZYx6; zjYG9rHN6e@_OHfy(3?ce4^q}82&I<>X}nJhD`0ySypOZ-wksMsTG9L&aIgp0@$yWN zVs!%BQEj*g8PHDHZj(1p;#8zG-A@`DG*X|_II$IAJh|l`&8fB~K~FuLmJgF7h~9t7 z)kH_5a_atkWWWx9_p5Q|PCz(?-?Q0*!l_=Oz#gh6RDufP2IOiQkQHl#dR+5SDhs?y zHCG4fVI%vgdmC|yMJ4rAwCOfj#Gzwh#=qHesHv3{HRo}eg*Tz}+Lx|DY?%H#LV(M+zO z@6miAyA$uO*q$L@JjxTy9reUw%X8Tb58~_C-NW%_bGFpLVR@7lydF@@ZD@oLs?+&$TLcnwA(zc;Z<8$i*)11i+FDIIzr0rD3-8qpx zIPu5VD{O}TYk0nF*3*Eq!|W#=%6I%i3OgUCP=rTRym1nsMrL_IJ!Hvn|r-3d}y6shq(m=CDk-( zGKSvgEbqab%QPNGf<7Zk9?g=rOa0zQYeJ#7*lxR1Gwf(s%dy(>9lQC+H7}#8!F7oB z?;>UraqE~uSyn9BPJTqye1qRW#TY?;CPDSvtLfsek%h*);wjO{@H0H>L^_6WuQ$?N zVLwIdu3C1rMpMAnXv#_^h`23K(w50an^~L3#lXFH_6GqGv=tc-`g0$WjgS_Ks{nV+{`tHhffW zoh&4s9UN-~fu&MY;;WGHlKC3F6qd}ru4H5Jxs>2E5<-7toU(xN@{O~Ja*}bqJnCRH z-Y-<0upnS{1Yc21kt9St(|DIayRgCQI8MrDDsfEU66s+Untx)({ehYco)Aj46lvOQ zEm!ysDmLu6oRQkGM<*9t>)lZiqoGthyrQc#Lk~}F8|Tg&;OzB_R6YJw#Q5WFxUUKC z3v1zp3a)OT8dy)$RM@VM)!gWZ!O7%58CuPr*Z0F}iW+l<=?++x-p<>eO{})A2NaES zA#ybL(R9}Ma2x!y#P|mlQiS@B5%8B1*t0^t{2wH}sfU!_A4TJhme|zL z+Hb`{vQp{A)7qM$r$tzbJV+raR^;p#NML$dM>E<_xcQ(bAe4Wf&CDYmZlGFne&Bk#C#hwoFJu|+5)a9!>@q(q0ecd?ckaLYA}{8)mX zI#XCi(O1(={#$ab1E_^ZBagoc3D!|Q^UrR)4leaPSXfV47B!ny;C2ONd{VF`mlD?< zD3aKsgA~=^L<&h*o$CjJK}a?B!2>M!@#Mw&TdB$4typo8pdf5O@qM-saH(!r51lpC zF~l9mW%u~8sx%mW1jLqIV1p|*=(G=(+jJoXCwQFo>o*kv)V4tvsv{_CK`y;+z?$L( ze(o4npFpZ0FwootKhd2y+@e1CDg4g3W%httV^mTd=3T%c+HMVMzh)vEi)uq~NqM)q ze?oxayOq6S=dG)Uuc@9U97`p?{7N_RHZfPISpgD*4y_-h$g9&NGx z#b9qT?Ki`&l`ygd<_D{(@1p(*9uFRisyzIb#`*4VcQDp<3Gc`V!HC;oU?||pX0BUI zrDjJYEq$D98hdYgi12*UxpR?bG1r^O;?pKw|KU^ zDSBV&POTg)d8+e|Yf7}gLlw`TOqwja;9f3chSHk5&E{q!H(h$XleMp2EX%yrv86~4 zDXosg!W?hAinmbk*=%wqxp+iDX#^$Tu`sT2M`3?WAwwoMU?G}y7tR;*RU(0e&9Uiv z#JqX1Ehxb|N!l$QW!6wK9NCqVhq7w1h!whQ1kO>*z;bY(CmtD=Tx~6-J0ARvoDvRm zifrTUsdOtA$=He;n^jthg?Uo9f_k*o$5DD2tzlR~ql>YHujQvY6F=zsqIiIg-Xk9_N=qUGanZ<2_NyllzYhQ?KM4>UNPMU-p3Q34C}czhGUK8a@Q+3 zRNVeFp4xP%pp9j)2GkPepQvtxh@A2N)e|nCQr`Z|I0LBMEK@7fPoXwv>2yxly{;UF zLb$8(j(H?I_TWp@=bVPdpk|ILwJX}BClDVHzC2)^Nv!it5o1_JLFp*5!)>WF zVH*h%%t(mfOOnXTvBgxdZL(brwvKQF$he>#*^dC~aO5Pr~P)Tp=aK;f&O3xQ^s3O7i%qzQ}LsYY~$y}3HKPs*cI5-qJ|VhQ1Y-;{0YY037a*GR1YhvK~Bd;#Z{ zixfpAS*>5r?yPSQ3K+eIj?&ZIoJuE^a`-mmTehcV$vTUD zzhvWpBbs1a_w|3&A&a*k2In`Zrrf0xv zOiv~5c_=MoLBE*9TQaP=AweL}$U2>#=GJ(cE7{=XvbyezSJ;XLRPo+c2mO|DBR1tc z%TgD|yTJsGFiwSP`j6sM>1ig5S-;lSogh2FqtROm%Q)Xw)mEnm_be@3eMOMus|hA- zYK+&KM*xf}{kv!|bw=}-DZyVrN%Kghe0MF~X@nwF=6_6M#n||7$7({OM5Za$*OG|F zI~y7rgj=TKR?IC2K9-4fqHbfg7&<7!-}hq%ZL}aFsvs)4*W^Wz_sa8v$l*VaY|zK!Ry$BVI0UCDz;sC(IgW- zo)GB|kj{k8{qvP zy8XAfE&b#I8&~(=KKb7xu1M|DH}SuIJS@sezt~J)H2=ph{$GwCvf~ZXc)S0n@&2!n zR`-1N1Kasa`{b2o@Pn~){H2VI0OGfIHs5qQu^1CS)Q4Y-Qbp@u+R~18yluaDEO0*4NWM9 zbf*^9T728m5~Iwuj;7tRk20Cf;*kB2a@gCTUXyzJ<>H7F=rQgK#+xlvIF>@Wjm$!aH#Qig(=3@9J}tFstBl+CzQM=AZl^z=6Alb zC|ag3uqmIE)KY7a_&_TzEG4tHZF+^Wgvhvim#g%l3PeiOYSq&%T#^c*qqQ}b6x(z} zOB7IsS(XO_2gsZbRSl%g9Em&;v&PI>2m0*cwxP`;u4?rr`EZ`FMd5vfNBM!MVKrlE z=uGV~-lv&;4pau$);mWg5HI^?;jcbZp5ksz^7Mgpd8_&i{!)3%*NlI@CKL9g)l0H_ zr%OMf%hk8Mz!YA`6}IeF{#Dg7n#4AEkGlEoVHvGXn|@>qac;bb&dz9>lQ+}%*IHmA z7p6>4QVK-m@}d1yJ#06!>w%AU)4~W1av_-@t6_}sx=|6j26des^!Qohb{Iz`L}K5c z)?Io+R;F1m{2T1_kTvFKgx`!g_^N>ei8L4DjiXg+~wEb2hL!UT&L<|%L~98l3}m-8Wc zQfw17k#0g$@ztrO=sQ((QQ8yhfOR3_8x%cZe7T~BsRYB`#Z(cGx9vIOjnduuv(~8L z8^kjITA0s;OYK@Om8Y|*P9E2wWW@EMandGGW<%X1EZ_EYya|-+$3GtCl;8-9XfDO3x5#ZKrrXBzmNs6UWyz>64`D& zwR@Z6NlKVm%e&#Ptu^`ABLyuaZ|3}a$O2MpLRXvMUSx|d?qaG--v|{&n{CnkF5lN) z6s7}QYoJ7P>@V%tkksMA9>LU7^(cg|1la{9p*}OP7Dbo!Z1}5$1evc$Ic9=Ag{Y6a z0}XRC*@v5r!tWNVM+{QICtwr@snEvE@2e} z(BYB9w4q#k53g`pXLAaziPoiGYco@S7EgTv)0Aj@Eq;Z;GS1P}j-Mvt$t44_JNt@l z+5eXEmZ~yrS83UmWprqBp|$YoEK8y-u5=Yjwb#*S8Y01gl!gTOTj+iQ|<&$3KEZc>d2Aa-L9f8$#gcUguLo~;qV-<8~5P5OCBE`=w@ z8Cr$jZK4C3Yga`K`@ld6U9L5#1|XFH?%7xhfhTbuIrF>7Y>E~`X9Vg(+ltWoLzdDU zr>{vh#%ee}B^B#4|5X&wWFyaO`{QLIXtbp|C#oZ%bJNM za(F)e@hS;Wxflezi)hxpl+0=+$gn!boyR##`A&IAN+!W=BZdNrM-{MR6OD2rEWtaj zVRV#N_Y}3WaEyy9wk>|tY}|uYYyjnJ7h0#twd|bWRDj_~$fWUZ9Lhgy`+kYD$x=sq z82>7vnDdRJDH~?k;u9kv7J?>dEHDo0dLl3b*1$Emb-0a$W86n9W~jCi&?C^e`60AX z87x%ZZqhJK+B&XV9z z_J1BF{E77s<>&iG#Chj4-FlQb0_0Q@2$8Lz4Gkv7nHBVm_bFM`+yz>**SR5L9q`)i zx~Xa#BdcE2e5pqDF-ja5lnBPqdWNq$6FHA4P(uYQ2x;;N?+Urx)YEizMD3MZM-MrB zsC|6<&~DqRSpC!|V?b^Nwf*%#Sy`i$hGLp1MhW}E&uor8t2#zAXLkDR>2qf_G&Ig^ z6kUE8L;?@oWgE=dqoHB?oH=u5iw51J{F=?#=t?SyKy)2Z|jBk~#b$gF-c>;f|* z#jq#T!(m~VPqsxXL5+L=vs(w;uOlvB%W3u7^hdmi``4fI?onl3zb^f(Ay{nzZSk# zAC(>CaKOBLW5i~U6zhJj4iC9=sn8^}VLfW{;m5XC8>MnU&U+l{uvf!3&=1`R2coCo zx+H6?ae%T_>|z2Jkr~V4=6W4KycVd2Jpl?5?q<|?qrviVxDtMiKj*<*DyI3ULhG+& z4=-mYcsr-f#)U8!UEwnw=J$a7BOMKL-mc`@wfe2ViE4&9${t^0$!1ZntWb;SG61U& z*<#CJ_H&AAo4k9G@x~is;K&E8gmQ{}2@k6bHX4qU`0&%I+>?tU`81u|IMoq6DE@?Q z+z!JKR)Y7SSL7TgMX5|Jwfa_k?X8^`DSS5C*+rTaj=iQjQg7K?&?QbjksiCOu2?Q# z&Sal3$Tq%~05?SP3-Tk-j;#J2zG^ur8cE^HkxjaWmnq~ z@?X(#)AJNfT&!HdUdkRVwzJ4A*{H=_5b8OI*)05_ z%D9yxmmMTE)y}j^gc9-?D7?^kXRZ()`dfQTmqzI8%D9y*UelR*^dkJAMO;!J zqKxpggDqW~WzTQr?0j~X+mzh>Gbi7YhmXB43%CT+I+hf-Lc4KpM~!2Fbw1`8ps-4& z|56p+QiW!c3g{Nai~-~X8~cZr?{f;+rE)T2!N!Iwvd&#p{YFS5DG|@S$v86kaUDCTG7ELZ*+>vZ< zUe?*$+0xk;ZENpb-qz9B-O=7YduiX2T%KU+y_xS;EZWk67D{F<-sJ0DWE0-n+UxlP z6#C@`rEOb6j>El#0V75XudT7}-B0fO3<_7vJJOJWb9^j}UNcvN z=Q3i(f0}6)wMZeWuD0kJfz@y9ni7e@aW=5h{RJiDnNq1v9ZOj~MolHtJTisfD)>Dr zxO){lciD3vhYT5$D>g=h2shUS*gv&ImEb!s1UW%mcS%1yB(R*J>l_uN~!1` zfjVW&F>)>wL?ZW7I+K;KsBs6&#D}RT(^BJ(7*?w4Il@i5DHnOV@Z?{jZSxWPCvnv$ zlK;>tlvC+y6Ih+gslx2C6ukPo@sE{7A2+NV73-zv7us@5d~eF-6cl+<1`$gn&xFOW z0`^C$)|PMlmyLHHiIZG6!TAH+26G9aHE^C6)^;2Jm=PA!RLIDpx&xKZ-M=xaizUz+ zA}K_}8zd2>_mW2VAwA;b?nEVGG>u9j>v-9ua_AWQ1!cNXHNCr>**^Uw5f{t;Q03n< zwUVW0?+Z%eLbr~TG~R^sERgTV*eaG>C4kl`{;WwW&4;xXO0d{MUXlVhIODzFXP=}y zMU~*RD}PvO!ZmW8g6|S!TMy4S?ADanjX^V6QqcKUbve3*yvj8TyH!{FloE+^xtt7p zmLh6=nz#*KXaTZiocqr4p^?G??Wg-_)aDUnI$=EWoD~0fxCq&6V*Yq^x?rnh&sy~Y zx^boG$FO(A4s!6b3nedCO1DsG|ITCwjlE*aY1(+R`lxX83#!ZsQpLb6#y?!I-zn;f zUJS`fxE}T+pdv3os^WAbt^X3PHp}b2KO~{kfhOZRWTW3-9)u?wcOs4zdR(Gae_mD% z&rsFi!#M*1L+IzE65z1AU_M2t1^$&^$=lY)$_5@IQeq3((eQ`S@bhSRie>svujnom zg@3&2d$+;vIFZ1BjB$IeUaPyc1}<>u|7u|as&U5Cw;k{#EpV@)R_j@{jk6t1m0dmK z983*x3PDCiZW?S)`f^|-&=E%0Qx0wL)t!{nGkI?KOX?4HSXX4=W0 z1QjMP8vhi^V^={{iJ#yw(8bciGTysTbkkD(P%0P`)P^hVI6W<`n%}?0o_b$)6Q`Q! z6|R1R+9`g-TW6guQFmH+R}E^pB!Fr+b=s^~N4TKT3zE;JEZ`|x=~U_z`#9Y8QJRPP zrJNfsG7MbH+`R);cs3!+&mfpon z>xd>Vl`^$1YDKlkPR=2i?sq`k-7Em?VuA}Phv^VcYWb7Rq7nItaS?zjE8qoIg7dc* zDh&+};3%pyA(N>U1~~K*nyW-V4F6J&_YqJY ZDcCWrNQNU4(SPZhd@Xf%PQ`ca^e){kj{;ZWBmPQHqH7=@ z$>TG3A6V3%FQK2oDfqKL-`19(@tX!|4*Ntx_^7q5eM7!zT|F#x-3Hj9KOa4(&bX(z zZasVnx52LPp3m1{oZ3d?4til4_09ggyJ?bf&MT@n&h7YaaY>_bPWEVG`}gOav+9ih z-Uj186UKS?;w9L-+4z=}8F!)adr(J{UDuy4-aN^;2jUR!{08F&aQJg+1lI@0z*PLg z`Z^QA?!j-3I|ZK?m*cb3>W%*~}3cPQeg}hR5|UCmG-P{(NbElJV|0&K3Q5pp%Th3)hX0oD-e?ytfuN(BQ(3gqOHqC!YFR zY;-Kt!4RbQvz@VI_u719Ee?JFw9vv2#G}GLgVXuX;Eeu!6-~2rZ~Pkl@U6fdz_WyJ zs&Ir(9$~~;<0yL8ID)iDr4rp8*kTY*sS>+>g-tfrnZSt=D8UX~~T))6w_?zX{v4FQg`UCUPEt;7`*m?rQj>EC%cG_`lH)%G1j6Z1Zr@CSUL zJWFHT$8d-E4z$uK(?bt-gOgw)q>VGvj%wUZ(kk+Id~!Apa(EeR2ts|Z683_t;Q%-R zmce_lU&|KQ4lcrxsBv&#Y`hj5?`oXKTl(Nj{F7$vLje5RIKRPWynsnCvr;}3ehz<} zfn5%Tgdf^rG|Z_)ppU_;a6G(SvQ}#ryK@Osp+;x*g`8{(OW#uoE6A9bjm*anA9V!z|+@g7S@$f65Q%m-sOP z9q-@9*<@RF1mRUV5cjTVKW`E2Cd0bx<xwUdmLl&t7eKH$oq5{a+ex_yckey8; z)`MqDaL{6$Y5n;cZvBP;{#(WwFYQy>o@UiT7og7Hveg-=bL{iBWkU_T7w`%+6Vh)m zz89KcqVYXMBVK8|`(S&*vUsW2638Dzhhw2RR;t_hD`-(zpRPY1)t6y7O<*4H1Y+%z z^_Fc3NRz`Un0oO*$oCO@He4S$1%5jn;xqVHtAM_@ozCZIxSG%} ze*Hacvlg+}UB>q}xfm&nnc=^XOq>cQAddY9KG}j#&I!PjFuaZH$DNxDhZ?5`#u?w~ za94@(-zr~muD6&B4mM6bTy2~?jWYq!)xI)(TF+q**hwCprH^pL?R6NUJXwZ_B|Yg> zvTfCpY$CHF**0L2EI|aK2H<|UPuRMPTld7W*_G)`d>|hfXoOFQkRmT|xrMuqOwWKN zs1EK>lmX*x`>HD)Khxfw^A%*i5`@0WxPO!j>^17kwK~yL6kFUZR4eeN>~rL&aED@< z+qK_$^22wf9?MB`wf#NVnEI8x49D6@rIT&zEb{H?XIw|n9;AOCvu)v@@LPL13EA5P zy(fLs+0*TtTV;Q}cEFDY=+Qp>?-t`KYCB8l(Z$A{hV<+*nWcm8nT+3PoLzLnyULfm zJuT)zrmaD~nN4iq4-nU6cf&bXPWcVJr%%HAenH$XOC#S$!tl7&vSHz!nQ5aDy9X@a z96DQ=A?FtP+RE-TY=8IPa#X#>eO`~MUblQezT&?@P`&SY<3{z6uBAh=v$$Ol))U6} zmQJxxu&e7cUQ!R}RX!l3c9~>0myF>I?dkb+6CgmeftWX+=Z!5GSk-EwPMijpYwB>qZg7N?yoEi8sFjk z<)v#Z7v0WZO~sO3gZVN(t_4c-4p2U3i3x?_2)PRN{Iygp!=e>;an6%LvRRz^c*1~Z z8mA0SkfzxzA&_#xLqP_#?U`NXckM~s|9pc9jx!FjhBf#zj1#sbHz=7!kn9lXa+g6#=tA%C? znlvSwW#hc@3INC1SEc&-Od^xFpD+HIa6ZA0Wtck{B&ks@(MRNW8oe%mfR8qnSYdfN zKA87dT1+KLyg<19pqR#LG~svcypwIq)}dH|V}4|uy_wOb4{Rqp8j1_6?cr_A!=M7d zc9yq6(rG`LOmyeYw_O`7F?5*7KO^HUm*u({d4LRok0?_=61A!2#(l^5UzeQ-{z0y@ zFK&XnD{4MfNYO8mv)|UZM;q@QBxk?FgW1qzLObA_Oo?%`##>?BljS3O$iL4j2E15* zoFlk%_P``B?`|NfLbKb!xZ9N@D)k+UpIwKGSm6*6*la=vtKhQ)+HsJL^s^1dA=_{U z><(?v3n}CfJr+`G!!R1b9oxX39tstwz%mqEgM^|lVxEn+Ye_5~&*;%PEAT~1UZj#; zNjy}0w;y7pVqbK}x(Xdu;`6?V_C+e)7E2*|wLjwNE|e%|&sjKY)@;%daP!M8#8B%u z`Y*I1A^ge0K)O4D?WWU{BjgF;ekKRF)yo7HeCNs!w@Xj+Ri#t=2|N&k!Wi2h==f-8E*rDX$N#=FP(H&!$uP=_YLzuXGs zJe@XN;u6>jV~uYC{9Pb&B4SG7&j;&}J#U70X(Bk|kLiXt!7IhgSZ`@Gk#&$mVlWK{ z3fI=)4lY4iCS=?V##c%F$j@n`5V@d$>YRh)K4_c>w(lm@*KVkD@Z4x+FpMgT1&C|T zG0qx22n~HO;tpQ+n3bOB&OMKoZH|MxI)t=4}!^ddYyGGfdON0Pr7(1rB zx?;lQ7+(Zt!%fn;E7lz!nqW!gHjt|=h9gJ^XK&~dMX_N~QN3u~5;$0CTvFsp_jJ^( zAq0A7($jm9ST#c4`1V2xv$zytHVe}ML7{;Lwz9=FsPD8pcfav|Ej#u)ERc~SFVpEY z!$&QEnx5n3eEriEKYA*$_8>=U+zGn(G0|>jO z0^-t8%TxvjGPlM!x&q!c&et->f3pUGh4W>|c^iM!cqoP+sXW%1`h)amr&F`ToKdg| zDfo1}0^?zW@oEIh#>fGkqMPzdQH|Mx=QRQU(^CesTeiXi z<1G}Bpwmmy#Ti8-eWd7f0n=jpIy=8WqW?9b7t?6imbxufP(T1XD_=y9Hj1G4v@E-c z1!zwsGYibGsMcw;p4u&P4*rDFzA5q}6jg%eib#5b3^z`X^jtk2n5N0}+&JN(Y;v!%Dr5sOyD{d4gM*+o?uwI$G(lt%M&f$>w6Y-fS8LmuhMr zt<>h}?sM(>?-E(1Ph`2!ouz^hW)RWhbKF-~u&war?s0IhGLM0Q+nZ2> z>_PMl)xhi^Un_e_b}p+R{E1vN93hz{!yAmHq4zMs4TZ50B3W0`s!-RHNUafB*RPL~ zsXWRBffeJb19u$SUH;Cq9gGh6}Z4hcC>(AZe?e^jDF@VyRXFpoX^3-a__^kLmhT_l3w`l zu>$VD5&$+3v*3dUn`fmjp@=X&dYbGU&Ysd$t{5r59lir&*2%WK9SOCGFphpq*2X93Ii$NcSxE5RGD`2l#mdb;tk>%EQ8K5LLVKw!;R}U~ zg9UipdjyXl*M%xsA2JrM?K?rp!cP>2GKtPacQ$XKco*ZLP7tOs!6*&O@DmjZGFF6{ zz(9Kkj%BY-PbS@!q!$bL+aKw&dUG4)I_)SkuP1dmtHzvP!OoDgAP#F~AN?VF?~##m z{|x&=ucEwvKe1!tLfLV82BDrFKG+wk@Le$ z!ND&5AF`;>)&%R&D&Xwe43`$+6s~I-k4zA}0co__PK7U9n&3`2$o@@qsvce~qFJI5 zpG-7ppmrWCZ6LerMg)#OHj#1@SJ%LnJC~GmOO10k{=A^hl&q;YzI%&c-y-9?8&~iL z{BNoV1;CU_q8HeWQu-)TvoquI`V57*^g*us)rAG{9_kVM123k`5e5kB4% z?Lj1mIyh(d<|2Z9Tw4(?YA(KglHjWj{z6v_CxUR`Kd;V|_u%h5-U$@va4j*o1GSGZ zvj}c1f_X*8EywQOjVADSy0f@RxNzq@9J)B)438UUmM9o+Ae_oFLU((d?hDa%lx5vd z?Ii7WYG*hYu(;_`tAIyomT^>fdoqr^BWV;`7}o0q4%?F*>yV+WCmU<=P#wy;@6{X6 zgE|jqgA1L3g2Eb{WW)=2Fd+&%RpNXO^We5{7zKCOA0^^9X)>J*lUCN~fE`E{4Y4G1 zH_}wsAbl7bk5IUuaUQ8hD}`}(_TVI3aRP3{b=-ufK_feB@Uzv$a4>TBuj0@X*}{V6 zdo*VtVxoy3P*_k$ytk`Ibz%OomTRQv$*x$>l1|pX^Ccl2JyQ#mtyx#Wjk?=8s*3-VI!ySn z4oi?0v?u$tUlrMeD@C>5pYQ!%w|MK4c(z*`*TBizcr+WyOW;e*X~<-U8cN9w^24nsvQkwt^IeLqH+TmJ__9i2l3 z+4~zr67yZlrp7{7qE)h4{xz53gdi) z$fOun!i9tdREPP8f`3l%2x605a!&|fWxV}ibtnqE;C-Gf1D&oC45_)!L>Bfl*5+3r zkB1Bk>H{Z~BW7QSnvf5r$06cha|}*%w;*CZ(qQGQ;25$Wx2TfmSgY1uXRX3hP_0^T z{LfpBIsS1pj(uMhA_5qP`*Mvq$~YVFJ1?Vb88yx*zv?s-u#E^myN(cTJ{0ctRM<@X zhFA(>WU)}Wopm9T;E%=|!avTY_pd`kNhkj5$*gZ#INWn*2o*;VH_qwCSp>HN@)Ps^ z`?t}~Q-jKB^;94iDyFmkXHY-8K^1|!D)YL(YQHW;J>hcNFTM*4VMkJHFgkF~MNDv_ z59a#{bA(mKajQ_RdB5>}rqg~C^^M2FPJ~_-k}oJW`x^H0@YWoU=9DQ_xPPNya&-Xj z%r6Ef7NO#mKlLf<;3r$$h4vHUTv=_L-33Uq$@q{FiR1#*KLd`sWSun1@fy!VvKQag(Kl{QZ7`>Fz3r1K&(|C)d`FzZ$68^?&0%h zWZiE9em!8ZO|thGs~wAt`xYX1z4P~>>@Gs`EyjPH>Q&V1&o{qH=lHrnK5hnEX`8H| zZ2>=<%;wIJd;gGCei)DG2X_u{tD^i2)jr>^26&a(-_s8zRS|NiLY=@1JTK6C0xIMI z4JE%o7E4YjomyWo(nZOYwu1g`U^dF43vyl~^X?m#-0>$+;VIi!StG<4M@qEDvR3uU z!-zTS4PAdO)}0f39%)u(1A0?A_3I7XEe~_7L}H7Xdj=WGRtbaY{DZ*rFNJ2wZiFva zjL??6E!8tV8J<*^sbW~7+o#%HXBO*8*mM@S+4yeNgMU*H%Gt*ED|i-70`m8Z#F@LJ z*=V?)|Mva~GXV_)U%*K^XchTx6>g^8p%UX)-&o(C`r~zhoi<{m`0jY;mcwhLfZ^-z zCE@QdNpuni85hmo?nd4KVv&*mMn+=?I0F?0a2elp{^ngON}?hn$m+n?OX2f!1>wms z-niTA=AneJAzzuFWJ0D$&_)tX@g`8CYUBMCpngRbQM9Z6tVqe=vvN7lHvTc{$5K%k zxsOzUboz7z-U#&$3MJjWdDQ`|5WO(nXRFP*+BkCrTymKhapPqLKhz{YOt$vs){9>4 z8vXKTs-nI|fYzHW`+Jt^o(o#>a8Rd`NvFztDkjoQ!baoWH~bVCX6t2=QFY6~qB#wBslopy zQ3Rf%-B5zk5QZJB79yP*w0io`zpcUqmCr)A1*C(Y~N2>3*U_)*{Wuh%NN~ugKb-2ZzA|B#Sf4D=VvD-w=K9K{Zaj zVB7ADN6SDY9^fl^DI8V;f7B!G z(`z=QM>cSQboa_kvVcAPf3-KKXBEm}sExB4S0xv;bI@Qt zlK3w5tjZ)iI_aWL6dkK|^bzpsS;exEeRjICnD^Ra$|OkHhsv0bRrj0~7eN1W_P{gU zbl_fr0MetLG?72c*$S@6WRUUORB$n5Q_^O+7M~*wF)I8NDL?F|{yXyaapfESq;S7n zvHbhjc>VffVgZwv2DJG(Uxhu8J`M+&a;3fs34L2P8f^!72_RE+A2nB zfyYhw?}EPL#+{?i$Qei&uTlXqpycZx>_N<m!D>}^89l2J-)}4^$J;8Wul@fjf z346r2@NR@M#yH_yRUkjZ?mWFjMf4B9r(Gi&RlRPKiQY-dvkUzM6U{(TCBIPs@XK~C zLqOOt$&|a;(*FlP8E5_@SWHZ#q$jgn;t_DAajtbrWr{>s2J+Q|^c_SvThX91NF$-J z^M<`G)MQnAX24=RZo%`U*L~;7`;OLjRO~NFEMJo7UO_)+&6>qey3e3VONQFoNWKXcR(Aat&_gW zU$7lzuF*SXuH|lFwY^z!HiENdpL3w1-}=Bh^SXTHPq>W#eB{1UW;= zuo@NJ+hn+>3y}?CWbBYDcC36qlieaX^>VpD#CY-j$5U`e8Si?5!s2%0zMyEw=%h4K zAX4yD5*I+?&6w`^6hB1vVq9tmn5zSvsE)@wi@fkIGP%|PfLD^Y6Gig5mY)<0$t-SF zBC0}({~|S&y60HThdQxk;!DHc!TfdP$a|_M$>~>kI=y+; z0@$-EyNXD$#rfQ-t!;U$IL0Ly9WC$akUkyu^>TTAB7YO1I7FVI%Zg}g@bL-!sZ6Xr zC(hcD7bIE;m0~4-*jg+;pPnBUqJchyvioDkSxoG_ zbIl0P6_+)7zk}P+3S^x5QPgdJgQ|;%VIeAjd?%Q|@phmxcno=!9=N`x57~{wk#MkQ ziSb=h3o~nRol_&E8E{tw%iua_h*ZK!6)?d#zd+?pzl}SB)o`2fHp3}6=eGex?L9;^ zX)QPItHx~+rQkC-4_)iAsNR>gzG8f@q6x`(%R#)9;dN~`+PKQyxT;s%QB@1ihG9&p z&uX~vP>v75Y}5$u0gsR$f^!ZvIS^*SP9fBSPJ}pIUJhf>0`okqg}X^yJCA&L##zP< z&W9VJAGVE-VmnC~mx4Pt9yY_{)byuTxFSL74&yWj;Zgiw(IwWyGq5eJfE#cJW2jfW zM|Kc(@KbRwU~z<2-UufnxHvZ&_YL?K_70b#h&7ws^;;`zWnnw(s?(4Zr{u$MI&HAI z7NOPIMBZdL|J(5>=fF>36CS)?grUAaIZ! zI@M19T_X(6GR8HTv|4XHw1ku(ZyR1tlze`OST(34i`FM#L!2`tvbU1cF7tJ#ARKLH z_lsZHz(aOo_iPvp1y!%h`%b6GT^#2R(B}6eYJ7w~{{k^MNUSU2IQA9fAiKc^_@a^3 ze-V@%+|SuoK`xdQ=-XtxFR;UV#<`51e@)^Ann|k=Tz0eb!_Ot#)(VN5FILy$Z4{T4 z$`0tD0(A0hu;yo|67A_+XSv$Hs3NCFSWY9eT81GVnfOB zAW1oM_ZXzub`qD^Gr=Zy-=?A!@f*C^gyG3Mfo$-n5=%Xag#fFJ@tw-=b3zZ|OdfK{ z5kVaIXKH}0*Z%jd%;g-y2c65Hyk|psT9n!Uy#{*D6b9?>d~Db>{=aM6+SWTVN+sFW z+trFCMSt9M1Yz1w~ceV_>B3D2~On@C!gI20gZ{mCGD%s*97(LZXh26iu1OUi6eSx zPo{`>u!yIG0kJomOLuJ$Upp0Y+}Y~Qy1$Au*C|hzl=!ff##KEmc@b5zJn$?b6~A+t%8)a=`K&?R4UkNFb)CeQQ|9#ixI_Z(G|c z!iwAU4@@kgCaYH>MAq8B+S*pH9w-Fw;~nFWeQIUFep`Z2Vku(rjlyYsW^WiO(9})F z_pFL523lQHRQ?#j@}xL}>`$@mQ>VwJ=y5ARUk4 zI#;ch3=uw(D%#_*L|3|d5P@@Dg9+``XhILtbwF;Q+(vJc;?JkHr4V8=_ow)YzoA{C z*M1~PAv~7lavvm?i#QE$(x{rCTUJwy=B#bt?Ep-%A4{fI%_<nBr#!(-%P zLt`z&xJ0yyKi4b)0aE?EpmORJ#<@@VzJ!n3;)hk+cDW__XhlZO;3_zW6h0C?TQ0*z z7Ql`rqHqmlVR3n&40b?0)7Kyt2=b3}*ESm89pq7RobsGokQCu)yV5;tvW5&+MO{wb z=$7TUhn!3K&XEC4Ijj?n_Z1w2ef=uOkXM=IiNBzn9b`(aG=axpADYV+xD(z){1e_& z8{MP!=HDPPAWjW01!)dZJ5AOw;hu+kh3{#zr_AfUUBDlS+zFc-Rha%&ny&IHX`f4f6OFsh`ecth6JnRZsCVj5`MT z(>ZWXDNKb)RdAa!dOhR=>8b-E^Tk`js0~K8_`q-lj2oB~vW&62zwvy&8WbK53VBs9 zHw4Y$U=13Z@u*eX>^`D2?G@dI@pcMm(ym9IdLEjzjxR@+e@Bji85+xMxIvctX_!z^ zhDL}<0T_dOJ_Gk?8Jghh;1IIbUq-7LBBTAdmaR2-kLp}8UOiZ)fa8-5orT-=PucF^ zv&HZU+=Co1PF_ThEofYKdTPrk9Y6(HCkcL##a~p0Qb{A+4K0;0pIH4#!mTgyqvgnt zlbMSD{RH;6!hD5s4l-V^NF>j~Ao4yi$ESeBsEHXJx`GySID(cxM+5+ePwqbb@UB;9;qi@mIzZYL#ccPzc1591J z64`95BauXoyC=1Z*gK1$5;E09Hnu|C)Jvw>tFj_V2y3qRC$p9u@#3m8_;ACj{NLF+ z&l=ySu$S@gD@R}A*9-ir32v_%xqT|hxxqf)g?(}h(GmRPeVzDdvK#+O1FRpl>TB5E zcpCylj9TNZ=i_y4CZAB>Y0V*M3LrL{591@8e+3n4CP2eG$U=?|*ia9H*5M~v2`JA{ zV_+SToORqj?YAEH&2TOo2odrY(CPcgZ}fEI1qj(-pV3GYs2PV0QpB2LLkte99jNp2 z&KZr+i@0(VWw2;Qtbt2HbOPi8jlaCaz`Cr zi@6!~LbO}Q3Of9=PX;-Gdy)Em5Y_MhY-Hz~fTnI>a*f->HzyH`E9&N;U3!u_k109a z$0`B~PE!<|j?xQpw+Oj2*edLbgSg#=b&B{3*Jn^D#)rCd`o>XR{SwJEu)7KFBadb) zLEMS_cw7w=vEO(|UtUKJVK%O;1Fib2g<&4U7Y%h0<>q3ry{R8Ae+m26?v2N5(x#I3_$J$m1YZM=z2=5@y zg()2H%&$X}EG4KN6-AxE7&x(It2;m#7g1_7S{b&9QbbF6w~Z?t%?ek(9QRqA7zr8Q zEwIG+l9oYTr^8#olqHr1CVpJ~Kr$l$o$IU77 z;eYs>W1-0pvyr4VAn_iHBye`i)=@nDADhRIe7kPMBfC6Q?Tjn=u@2;IFTeI5@s4K? z*P#djM^H2(ldOIdI9Rj&s0Rv?>)Y`5lU~OgA{Oh77VuY=!Jf#!?T?2to;5-{q1tc? zn*0ufRV6SD*^+h0W4g$i*wCPzSPjxQ+JXUT+R0cRM-_Y$e^C0MH8#GBoH3W#R`CQo zVTRSw&)!7m7tD2Yi}s8JIJ@^Tlgke~x=H@E@~dz7vGvVgP;e1LU~ld17!;o>w#GG^ z5V;y`sW-)^H=01L@&AN$6?wE+mPCS~;xM7K8pNTc_sA@JJC<~%%WuetFx84pb z5lq7|%dWOxYh&EOk=J`O?o6~Lx>Y;uqGb-IZ~zUwY;O>~%}CTU+l*<9Bq{-_nP2iu z;1xv**Nfm#yitt)P7_7vNtZ&vcb9xN71N{$54XkYZUiCN0uEME@aY-bfmdr2Xz<1WTWh+Pw? z%(q6@Q*5(D4`tl2d-kp>;#L{=dVQTDZ9hqPaJ8Lsd#pE=8v@J1UJv7}`Ilvc+mH&L z2FC|Q=ldKbAM0T^6W<`Y-&30tM*862NZ$9H71s$qYbcPL2EPpt0i#(fzcM1B`_xjy5bhBz>|7r9t!+#?H3JFy1V_T9+7 zK31b)l!o1pv)lp#WROSBND)W7I#R>vM7GzE+$%PXa1y$j~#LFM3opPeC2%(Ccn?vT_MZae$?jzCG(iUgx*dhwQHA^{t29DpAEm%&tHV#Q z-=;8G4lScZ`bLoX1xep)ExO~6pbneF*M&6M!@v7{jy^x)yU*w9^CRtnredqs$ww~} z=60qd(EU47=HP-4a+psx?rx6wnY%p}xnl1TIXT>ehM&$}AmW2FbHu|I^^A4dRi2+_ z$tXNxkb_6OnY{pC=|J0ze9^)$WU$?3EeTY#2%GsQeU#grFQTh;yk7%FhhSIhN^8?f zP+~qSyBsabGhef>B0^z@q?hQcD)ZoyQV%wvT_y*2sQ-qE{(%&-%xgla2QVp?2%wcZ;s&J$t1Q zyOO>}lm@N@%~;CQHL8Zh0iT4AGxnqic4lw3lK9Eguq!=~uj14iqRFn|j1~%x*rGeR z9w8Tnd5zq38x_Mms;KU0&Bd}?8OL04XhF%)B&2PRG?QcJ^QiNfAHr#U3F88&`52A1 z!SSU?N5=V4$J63NW^Xji^-xDK-GezO8#+I;aMQhNNwT}0_HyBR>rlo6ZLtk-O+7JA z<1pHqA>^Dcrc@Y%jga6(m9`yHj`gBEZP9?|^9A8X7R$~CrU`KUOZ~YtN0EOw87Gxq zwZ{4=IS+Ui9(vMQwgj>c*S}aAW)f|KD7_-MZ%5zynB@A1j2#q*e#>h9+Fk?XO|3OT>+Z)-J0=g*@; z_~y!u-;+$EHgl+R0*Xv!fe`7&_?*RqpQ4x@Gy%Bn$mVuyx{E<#DF~ZQR2=aW4O+gP z^F(3~e}0JQRQTaSX7y3^oaHGYPD86+iyCo~*+d9*%CL!+CWG#-|v9h|s&vUbGcS z#5gdU*@Ne!oVJMh@h3T3FSktV*K-uYM_p2Q!8l1sT7s8|g(d4xVntW12W6ub9kWv_ zI@#E3jf?*!bIQgkInHc``5-FKx8mYp`%>6O_5nZSi$5o#3B*rt+-Heu%~ZW6&J*IIj=9kPwMutofiI+L;Lvfa7S5k zy<+6@7@xd7DhMR|b?M8lRoUevNY1u0SlBXf^bX&2$H+O1_uRiTLsOw^dpez3(HhI> z#(DGYC;MWQZ2|3Rnsl>9t?#$lbCg8%2(4GMBC&lytnYY7tJk8={4>~xX1a#oc39i3 z|5&S<=pY3r9;W)AEP<^uyc6a2og>}MI15^n7>8&Bld+CWtZSWRR>PN~sx2QPg_~GG zDF?d!lK|^Yv__HTuP7f@rCc(WN_VW4e4f*RqS!b~L%Fclf^D`aiugyr^y=*?Xa)vl zCb?K&vVYA$GM@a+mGql*2lEIFX3!l^#?KN;*eSj;F6!#HA67M47xin6uTAqXp~`QP zI0U_`kw0#SYK&)Tx{td^LYbhdkY%DsZmQ(~0{+miK^!e9H7tu~{+r-4HIz-)+qPMl zx(}<-sz*ngjCbdBZ^P=K_mql#2abr_a5VPM6_*pjj7jT<`~P_a+-U3XR3^^PypIW? zKEBoc_9_b2Pqw2VJv3fMoT2v94TSWau5x9z#*3!!OIU4)(R3xZ10TbH{JWEcw9Pio z3QFSao@|_pSx03_WUU<0xqi;$OJ-Z|0-EEs#{ZC>)XO6r0Qu8<3WeK|g-+h;MJ9lX z`cLG=Q=GZXv33?`k;hR3b{X@1s2O=w8SV4PH~S26>2^06=O>iYbiMLSpG$Th_a-+Dj>-Yy}M9n6;`N4s4nMq9u3Ql^SaNT zXh*{4za_!%SL$(GVnMSbnOkSs&j&2m86F}rquE5y6JF9MMD1;qsmxTJmYRZ553C*g}M4zP$RTSAr z+xNMhJ%u5hCG@L7`P(P0(hP;#LDDl@)t>kllXlgjh~FsP8zcQf&yENNve)(qrPY$m zm@;^W)Dy`H-M1R&e7H&X`0q-=XWMKl&dGKYXr8gQHk(z3g#v!lY2T!Y8*X7VvY%$G zVr^zp-zSHR%;Y8;|3db*TC~wZWKvzC6)zwkB3hu=J{)J<9c@i5`6uuy;HqXjZjvaJH zx}x$Ov^e(}3JMQ{y&$ktJ=)@9ENJWu(OGtaECQ9dcW*o3hd_}A~7weEK9J*YtaPgrQfnMb7W=+Lz#(fq(U|5$NaWJCRge}CeE#5n^ zh8;;d_cHj^a2p;4t)O3(6f_=`Kb;3Vhh4aBRS~hsQ^GM%!r3g9m__h9*+TqlXr-Qm7l{uSF~0wg8Z?D#y?KmoEw@ z!@e-4q725@pwi1-Lk^E0`Gh%nQ^sAbc;QYsu7n(~r`Vz|c#%=%GOHAh@`9z%Q4W;a zB~VdZ4vliW%d*+HV)7#k2D5+3Te9a!^qId%gO0zJmk7(N#FdkbLNJ5jUNgpfJE%qc z_i|KyoREN^m9;6w1pr=ZA1PamBxsrd6DJj+{5X~*IUM-hOdb#ZykxfFHyi`eNga~i zZ5qbpT%eY!59NB{+m7C3wo}|#og>uqcdKHvTQzR1RA+yfYQ2xO7(8o(UnPCsrvwT7 zKG3acCeM>YIaBp8XK^ViT4k=c2f6QfUR2o<$4%>rXe0+NdqqMMwVkYCsP8BZ>k||E zmCW2P6}MgX@=U~+#pBDr@6{QPFH3f9w%*ULk+U`$-2d!D?(6Xi%GY#gy$Rd^Q;Og+ zSWG@eK*^y(sBZZ>TpTGbfqfc{?@rX|p|ts4t!JDY;Ls)$MDf@=mTW)nGWa#}E_0!t zn+N@{oWd&!1h1+_g0m+~fbFW_a8!##OW^?g&wkJWhr@Pg13nA?J)sZe*eS&tAg!9_BK+d*x}n>1O!iuo_+LR8>N(O$Qf+{nX{YWO5&7*KnpG9%+G{1l5fKa%3}Tr(TY%*-=rlQm=tq zU>uB%02w-VL5#B}9EThq-St1TY^_~Cv8ZU0hx6qdnU~1YKOz)=K-cCm1*BWW19Dpi zMm&@yHet9Lf?r_}rsoM3?)c%pDmlJc=(Q}ds-sZPfod$+vI)g3(^G>iD&vXxWl_AB zX2JF9C)&+W%*|NOS4rlk;6cWjAx9Y1mLxo63N7*GqtsaWFqh5fj?tHuan~fAY!=_^}etMF>ih~*lB2>WL12Vn=x8@++~-gQ#ctpd3h|x4 z$0va*-u~|F*$n7GOX5Q0tHO?^bY+pL{jFZ!dUDF+%PqB{g2F*8RzK7IjW?Q11Urki z*yZ4+!(c7a=DG@)NiHaJQ0dhO^UEOtUm6Ehj3*=h@T*%?^p{GX+316F=QK-aN&cE& z!oe`cxQpltA1>O^?Tj;I)32Vxta3M8S_L16@#b$=4vXPDl+&JukD(3L6OK|guRJ1L z?{8{-mBw4fI)c-YXI;6M@Y=Wz#!Fr$Zj0wD;Lc&DjRF<2Mx?f%*Zo!40LHNIZ6WQP*JmWXtrKTwT~Lg;dOYC z>{)xDA%8k-pwI{Fm3s?Z3CE$zXFky(Cl5H}ReXS!{rIr3z~MYy_gbU)NVG^BaktPx$pV}Mf ziKe1(>vck7;bqlPgmARis5pw9M2uXk8cBWPyoOYDEoToW;GBc{YEIJX*c4k+*!Dpx z1m|lw4SErIJxD=%N1y@%4ZX&#gjp1O?uux|-QJ;lbDMyS{9y7Q)X_^4nS7w3KNrFt3gsZf$b1C-Fv| zUxC|1NFz<9s3e0y6{Wk`mT_IWt=DGVwz9pFP;bB*_?_RCTN9HBp34=^7;9W@oOYN| zN~INDcA_=@B-cH$o+y7u zwC4PteLf}b|E-ap={zefCPyJ_tlILPqI9v&&7ApwP40V<50QJOaleqQ@OjXNI#?_jng zcIdkb64_`{lEED1i)l&6~*)?C|Z;i29*}jx~N1G zQ+3Lj&BWa94Dq8w_4%T~dRWv9apIuIqCE|zaI%M0!T5?Q#MeiJ;DG>a4VTakA6i}l z+XUf$=!6L^+p~K)*Y#;f8i1V^@)9(@VK2m?p9&`M+5%LX$2&$4<|aU`^RA-=Op?~Y zo?dK4PJALzSj2f$ShuL2DE`Y-Qnwjp?inzhl6VB*@KMl;q@oW_wFDwk45NdQXff=s zKEH@2YQR(@&Rb9|74y_K}vjz&jiO9 zryN-uqN&J#>>7b_Xb;0*b75?8h$=Tu#wDV54o<8=VJ8Czm!bSH7iF<}=&3LcBJawQ z2+TnCs0!u;!dF(2SZbq?dIS_`WfSB(OQu0u^{)_JId+RR=?3%U0h&olnG@ zJruc;s@gf%+P;4a8U5PE55UyQc&abM#iE4@CYM=xgbfDe1c&Mww18oYT z=8_H+58`kHj3@C#6VTMM6%{Ucq&{+J@8`ID$^v>zvGLxJ6IcXOYp5<}jAO!xWdD@{ z?5~MLYza?quDvbKSwurOcnP`uvcsqAw-*+te-DC58QsDA@gVL)*@lRw_fxos>ksWx zA!zgkT+2hlL$$_4gkY1=Qv0xzV;ZawcGGZM6ii8;q`c*ntlxu{WG|~Ukt9-gL>Gwj~nl8 z7NOEz?1VbW`UWsA?T)cldd6^dAhH|t<9Kh|GB(Fsof*GM&?{73Mb_grC_!yTh(6$I z@m=R**5#zT6X#e5k1e7aDxRW~X)IPH(eE^Gq1N!BN;Q_0zG`a#@tU417IOKT=91C8 zTvTo^sMN-#2bFi#M&#KUb#5^?Pw%?VJn$h7fw@{7ob`k5x9#o%sSBS$) zgrq;lt2aPNyey4bYJxiu_pUyNl$6kJ(vdd72mkg{l75LMJ;r!%s)b1%xjhYQ{03e} zOeIeqVOeBuoGZ!4}RYOcO!>43H}B<)xxSqxTuKBH{dySmQ$Eq zu^WZO#mFlR!j&O3IZcD@Aqh{QfS)QZ4wPfhagkEw?zX_msxsry>0%ONho+;Jvea?i zdSp?4Zk#^10nqpcs1J8vv!lZv0cZ$7b7cvP^CA_sID9WY{cQyLJRJ0wB*n4z2S$L*{q_jQ4QIH^FPj zu|02m3t@C6Os}b|bSX2#cvPdWHNF!nVM8TC_^WgZ8*ry5AWoU#!HQ96G^j+?{Rg-m zyTa*ySXW#MhZezvA~@3XihQKoY9q=1^k$goIu2PA956M+NHJ?QNO~1iGo5Av<2i*q z+nL*F4ZESXBgPyq)w3uv&izGRQ6s!p1apdv`ytn|psF-f5%E;iyDdW2@D^Bx|2q$+ z*OrCwkmuJF!6&GxIUE)SA}w2MC<@UX!reIqevc{RWuLfpSdhlW~fZvZMBtNC?y%9HKH&oi~Q33n8a4$-KCpVg44Kx-v zndoov1VhCnLI&=}Fe>cC3e%L`z3B~0 zVCg?uc9wC^?74GiEz+`8otA^OFXqjiH*b~(o%mlJ(Pz%wIkV?!R;SlSyr9w=aj9ij zM=6B(P+N?*uf@&WC>7V5JY>3rsRL3WZkfLC%JmdtS5}W0onD|pa+IXNt(Bk-0iC_b zj!T9G+jzK4hs>v;FrVXX9E1+bK9$mFVxdu)@s^Kh)YD-dFF7IVg(F|2d**T+821`) zGm>=4OIyQUceiiE^l&taDYK=SZSZ$!#2z6hbea&ykB4iM*-X3d>8<&x5Yn&)YpKf{ zvk2@p5nW5U)y1)FJ92sJ`p#Fb%?mNxSN!cv>2qq8yvDKzE4w$?94b9Bkth1|rHqtw z2+#;snvEz-S!+o+UrP+su5bW>v){OdO7KsSQxw`Au}OkUZG^<%j+u^?-Klgee!Bg} z5t8k3M`3k#V_Wi;LK!-cL`vk`<5y5(a@-7Udg*^N+|XNNTSt?@>Y zUguSu%37P;l(Q1QMll;iX|@d+?>KT}SZR5O)s%|J21*>yyVJ9*qmXjvoqk&#%a`TG zJa>E~^Kays(~_Vt~~H;K3Qdi0CM#VQ-7<8)` zu$sVnR8y18TGSaMu9^kxeU0kDCMiS1QX*9-V-2hK5hAu@Y+eTrwrGn}Q44GQn_<_Q zMohuLxq){$OV!w$P58H3>hB_P6uen0{k_ZMWD%z6IXMA)g*+8L)KP>eKqmYQ{72nb zDL#w>XU5aiZlLE5C#g_>j6+n|+=CaG?ViJ7bWQToKAXRAw%Ao^yqZG$IKInj^ww`R zmF>+88QGi~-8tR}j`NZ0(e6@kw>3U8B^!(B-4V)MWlVtT0v+?og=t6t_$bU*qb#N;-9Ln!zEP= z)|>DR4JLe+9lX1nBB;g?;kwX+R^Fgqs^O=3O}z{4XEKR1B=glCHtd*Y_>hLEK4<)2 zjP#x2ADZEpoYA7{78z1+CT98f;LO^_G4%ETW%DIvHfPa`$5&8XcClm=i?3L2Gj4=N z+cahVJ9+yxzs3^&Yn9~a=;Q%bb<&p3up=bmtGZ)dHmV#h5%K068(3s~DaJ~xvbi)T za^+*N7jgAct`t00@BC_t{4ZqPi%b1iL(qMkJh;^6;R~>}q?rmn^yg!V0Xh1Aa@kCn zPx$v~a>8v*#BBLEao$X4H@mHEQ!kv%T@Oyo6!0^nhlHe$mD99qC>7ebP&*%@5 zloJW$Ffuj=c(EL4@re>qCnb%^{ilTUf0|NtNGFhKOT;n)Gf6vChGP5e8Yq=k2R}(< zhD;&3x!tl1vji6MkCGAh8Bsk-*#oY+EIf_fqkn6?LM=7mXlP+TOS=0t7|YvFHe{Mo z_s`W?kZXBxQkbJDWBJS~7RlAAu1W(d?5`H54JCPT7OHn^$PLUG45sJWxALhSJ$tMTG`8 za8;gC%_eC<^xxV%mE0(w`$%gU?W`fl144&))0Kaz0c5ced<>VLFy0y)N>w3mC{ibh zA6UgcF`_wkp0O~LTcbIazu-M=?MSZ~$w|;9r#@(?2wg5tQ#9YUIqkD&({sj_g%^~^ zgAz414WjnI)KiQeKkQ7evoYVxeM(3^W^BTgD|nUcW@)%wLCi1diQtbs2NVim9Jxo1 zr4z-0YkA;!5-sNpN;gq_HH}<6T$vtV`kJ4Z1k%r$clx*Q(KUU+O zilzoN^4@6tN1!MvYPWC6CN_;L=h<LZP!n-~e^QfsM_km>hY6uJJtxH`Y=nsS2Cg zh;hTVWTDz9G=}2S?WZQeM%a_L7uS`RwBHmj&XKUby9g(+Ufy>!{X`;&>ZGwW#8|y` zPugwil?)@s_ZP}slILI&r;QN>p=d1%bO|?4#M?PPqm9O5+>z*OOZCRZrJ7UowI-<1 zHdLMRDu;omy&YBf6k^TB(I`=-Ium%17toF%l9P^k5c6S-cRC)<*P zk~qZ^)~TdHIsCusWqm|i+j{pCt#_zx9Xv{})+u&&N%fH{w|{pF^^5UhIyQ@=MW+e? zr-{FUcNsYbx#~GGGGyQ9AHIQi>zsDfQ$2vgGkL~=XBF{OYL@pQ#VVSJ3XO-ec>6n3 zX~|~pZZCH4Py=&A)>%EsWtE~DgXtHKb2>}xI-D)>Q(k9hAFW$hheWb1#vXaiREWEV zFyObu%JXyfFXW05?+Q=JFVhJ`MYB`AiCpKRu4HVUI_H&J#For;CNgIW8r)9(I<6Rw z6bnA3H|k?ktX^u)=Sp&tic2LUAl$F8dzQ9s8{t=N$;)=)1mJth6kqh+aA)IvW}&K5 zF7Ic=99i;oJ8#m`1lNC~{G;$zfH!Gr&&YK3iDgR#HjcA@c6|>AY9b4}50CNQL%7 z?(@2!RZ1nVlPI3Rv&Owlb1PDU7u_1`L{~Q=iJBcj%X_(>GaRI{iItt4bcSQvqqkPt z#bp!79$GCu&CM@%Lo4|;@(t?Z0y#LV3N>a;Bo3AbVSEW{7XJhXRzy*6xV03Y?p|qKBrp3!SQ;wz;q3gS)l>lM9ZEUV2=BuV zc2J!3<6Kwij1~x0AxBk?1Lom!RF57NWk1ie?6+{*DD=MV!AzJJhFL|mFh;#Tjt*3E zc95Yllc+u~qT$<%P!3yMR8mByCkRK8=D_$-6bO}oxxOOS;12D8TK;>nq5sSx7>7FB z78q4s5-3CL5r!RL0nTGg4V;R5@jg!G&1&51I-J3bQka1w?2ey=qw&XLT;gohf9?!F zFDn^^dp`x0&;hDl$$X3TynCNqMo`CiDa;%NQ;Ta!>G3HkDi`4N!557}y&p$G#dH(e z*vG(>P&p|kp*DhBIS~#VMOBk(0wr)JY9J3QFG2NV4Ib3LD~n5D228-eo8dRrP*;IN z_nF}16w-l8&&4QcO(yN}Q+_<6vCvEaFqY~BH&Bey5Zc?3w!+j}XpELumqI&k&v=-N z%NSQ&6+ne_V-1WBjDp!EFcxJIXfK0?YFJnuDZw72U|-aHFGi)ru6T&g!$LomQrO<- zgKkJfQ5!rxLfg;)_v21JjoRuQ0?+PnBI&W%E3>T>>QSa9yT$?Pi%Idj*7a zY0f799JcJi(JpMRaz^=}&WBe9kI8V}jiG6Dh03BZ*$?%VunP&C$hD58{8r=Xk~BbD zC43w$#cM(_B_Wtemum`k8Xdvy2R4)VH8gl4p6p_d3?FLZbXAKgk*geyTech8q$(nK z&krp|lf%K#=Yyu=lJe@RQMg@uVw1+=U}9>nMr%aO{2T!TY!e0moZ@ z{LpyZz&g2)lleX-n&1VtG0v3TQ*GtE9032kTm1TlKUZL!BWTqPn?UWPx5>hr(z#i;v+=*~d zG2AJ-O!s$?Bn8Vdrn7VSe>D?an6jMNWUxzOsMEBux}182-EI5EeCOTLbZ7T)-iAU; z()DzIr(t0f|NDh6+jKPpmJfJCxl&S7F6a0BKhl3dQZ=ac-yw}X}25xVOK+WIwiuJlWS1m6+5i|v!9b@v1FG>bjMm#XIUU!TWg$Y zh}Zk{b5AjIgv1=>49dIZoEW5p?^BF}+8p0`NWO}#k^OKJJ`jo1Q^vW6(;T5yeY|mQ zswT_tZpK|h(&{TUVy+*es=+Q{Ij*Qhl6_zmg-`dH069^fLn$OtuK$Pe{e*J|L@3_@ zDt&zv1G=)tIDeqj0ZG`O@^f!$FupI47d@1A_C<==+ej(rjtNtNKdWmznb@0@vd(+x zW>a3+Ejal;xiD;uM(bN-{uhOBHl92UufLlQ~F8N z4_s(`KciDPltO8)LDt|J_r5a9Yh{KD=Rdw(o&5lo+fUpN}j3{nj( zrLYoO{m2SmDN4cL8dsvANthX$gP=k(@S(;z(?xsCag0ZhW*!}d|0;)j(MnzJ!nOgV zkRI%5++(U>Tr~_*Q1Ce1%CpdjjX!pzVo&?RIF7e`6wirDO;c$}8*)$-afwWhMTK{L zZM9d4WN?3^;^Qg)dMl)u@0cH={7xqz7#~ErQMVfBIm%PNeaqe^FnwT>FYl5&YbSd) z8fQ5Uu>$I%TnoIxgy!Q(E#kam$X_lQRa#mJKQYceKQPA$ez*%B3M1*<4#v{?KcGCu zAE{Q52-H6V&E7>GV}7)Xk){)Ma~u!q%qCH~?cN>8 zE7UQQB&kC#HqO^V1>Y`(z7gqM{w#b~7tCQzvR^doHr4zYFq(2~init7c6k5a(WW<- z400z)`#to&el0jpYj;!bZC0vy9kAR2bv)fJ#cXVF22nS9XmjwZrL9gaZF3owQ`wNL zYMoA0741x|RAN@s~ zWo=^0+I(!=<`Nm328Jxd8~`^uN^Y075akjy`%umj)(u4t2B{ed$LrNOUGpwnK;h%I z+UiVd#`o-Mc$WtFtEh#pmf*f^qQ>bRMb_X#F-oZ-59>_%zRFYFDib;yCtE5$^UwLo zGS8NV+ecY=#}&NMf35INk%NVI3e2=)W(Ywo^KmYvMl@}HpgZ|5cTJyGv! zPcs2fg>=tG&oWBz{)(0-F1Bph4lT1cMtA#kCD|8h7V12w_CH_Mh<`Bt!^HUDYm{Xq zGYOlnNc84*o|)un!sPC*vsoyc7UT%l%$x8#g8@u_z&8ow!rNQ8V_-bJD^ z9*#v3fgFhii{MuCZQ`_hsC(SRXNM}E5VA2L)EPu;NT^sZt*8>K7LRS@nqangETYAi zq)9SErJy*;_&@uHvtCuugvu8A{elS|l;%{#RYz=K#~?c*O0OJ;n@Ed-w3Vqwx_xuL zhyZN=GIEdQ*t?5R48XNLYm@Y%60R0ruY`028c-8}Qs*md(PSria_zE&JfdG{&JW2gcA&=kT#RG$i0B!*k_zYDEuFYDy7vh-?;6N zhC@P;Fs!RAsf3-wRCRHV)@V*s_BBqb4)59ob#0Q6pjq+}G~4*~R5om869nG4LOGe4hiyg|ju?pr#^qMcxs%yxM29eKnUat;9 zBU=Db(ExQM-fN}R=L)7~-}Ul{!`wH^ex)-@3i*}_`}G;)2zoipH`r1iOZjO>I^99f z7xMaEN3B3(p$8|a6BCWY`<`v1Y!!@sh%2`#RKMZF&r%>wB@(*uB%*o^cxkvtSFT4Y zkB~zwqrK1s&DQKH#-lytbKX zDRKa<#7(TVll-fiM|=CNYo(^)^8H$%<)3zIa>*{WQ(nk-^E+0{^Z6*$ z6Neh~D7W6}1#!RXLnKA>pPF?wGyhpJ$Ml({S0|*pH*+XoJaoW zDC>KT@E*)zzjM6GjEqQOwy~fBCk;4${an7t4HR+boQ6C3ylaBZ){8v&t#K(>Y%`t) zbwO5VXAe$lplF91alhu`$0_^6x_aY(jB=jLZRU7+do9i(7;XeIL!Lpwn8s;^!#E%l zK8K~y)F=t#>Zr!5ljmeR#IBR(gGxx@SVZfF=GU3>p8wH#+?VH~#K%(1$Q{Q02};C2 z;7M+r$M8gNL{)IaxI3Vp)_4bzTRE%>HB&i6ykF!ij=)0vM5E1OmnQ~aO8pQDJ{^}_ zAN1FtiDVzR3ONwm)+i&XTw5%aB)yd&sR=9%$kRlYr2+fKPsPgUO;46V!6{ zkF{KxXl2c0LEYGy%k@Zi<|VIp;TAv@-EiDAMhRX*1aJP{=^hIG7xhyJl5UV4m%?(J3)V6** zoVy)M!q}`gm+rE8_7+J(4*>~$(VK0JXSANDJIyaJ)EdhWmuT5%X7khdlnO1!kuAx! zrgJix@N$_9zspe8;cRC*R~XUOZl=!SWljr;4_LWt9dU_V8ufV=Df`U#+RdIt*#_;} zxd$R~1*Gq`OQkzdr0tMOT$U~S*$)qC(-8BJh4hN3RsZkJvN=jV-QAv-h99a5;bxWp zNDJLJ{`+0$(-&IPeTnSI=@dWwL(`cvi=re(wu`2JxE;ki*t=!Zy8RN_$;Lv=1;fqA z4vS_{*jr3SCcQQnR{DW<6cv%s8E`0$-}o=1wo|^}c2P3h!!`kgoJ3zwZ+Ayx1OP_~ zF#9I|SSMQOh;P|U!S_;^rXTAN-V;(*GloGX!5mWfz94LOaPaPSysUHk8C5^My^r70UM{>G<;i-^3&_pa2BbXw8M zp#h9Qf>(TRq1-2xh-FYa*ClHpX*<$L?giDdijoRA;)g%SUFmbuJ;9%ojfh<1Q7#r5 z;1%zCxcR%i<;%3gktiCAcOk(K6}>g|B>Fb=z;Vcv{f5RE_oHLjg<5n|^gTe~rq-fZ zSZ$~1e~TAsTnx!_ef2-yOBdRyF*Qf(0!v%G?;(#L>O1_&(elZX&wuEX_WbDfj68VW z9%QrkVn&`#!MQf7Efpu6+g_mIdkADA9nXq6K=Pe>k4n7}V#X~{j%XCikiV#H_`ITp z@4Zj1`0q@Tko&-pFpVR+w55_b!2#>n%5synx4x^JHKHw*8v6dg5lOy)t(*T(t=oH3 zskY8ovb!hIC1lyXMU88k)5&38V%q;{te#AA#j?bz5hLBMBVC~*P0*A3-bg>TKS4?u z(YMY2qQl6Q3|QVZ@KvFvh(}d0`eytu#u;9Pj`AN$&ud3nsf1|6DCr)mQtgG(o=QA$)2)W-)%d>gQ88T$`0yhaIC1hSg_WU z{BD2Lt>#db$I=n;C-iL|WII)yY*h~B2RjO@C&^q2y%$M1-It0_|EJF1`R+pf?)!3i z3q6@@z-DEVRBdl@DYoLV<-)Zw1+lgfwiwO(cy0kRk8JRry&I4{TP)vq1IlBJ?DF5Y zODn>;S1LC7f%f0uCF#UE@b4VTfA6E4BhD+2sa0U%_onxwUy6!Vp+Aq@3Q8%xD8lr% zCWe7u#kW67(He(E3>ev%nk7-bXzS@jT^|=UaA%MPNL=_y5h2G_=+l$x?MSL@ND3mG z(XT8Y6!9ag_hX=~Lea+3>! zo5%rHc)P(kdkRLdL{3S}D;fgh`%LJ8eIILM++ugtN})?MTgZ(neb}Zyl<}9LIinfc zjcKy@ z`O0F9>^m~IuldA#P+x5mJ-g8n_c$sZcz!SywWJSA7X(t3tM51aIv< zQh>}6%`*v`9$#CP9`r*CM#xykQb#V6PNfnVoP-=vX{pxR_`CoO)DL-;OeQ(J;m;{9 z`_Ajc4{fFP34`*y-|O>3OO&j^Hz@b|y)Gk`Xf=5qt!Q+&9O|dki>_L6;}V8_)g+-DhQ@A;NEoGV(G}Z z%tS8JEjIAIDTg^)q86fcg0{vb>vhRG3d}SvMPB({gJxEF_sZ-8JCP|sVqOx76|q$B zfW{I}QFO2ke`ZCZduXz??<`hx+!(7vrrB@iteQR>ZYX+DO}6VyRHNPgHKL2psj>4C zY~K?#KyoV?3{TWDmzNpmFK{Q^q!vCeZ326a2wJdazsZG6IX7uY z&XuJaKJ{>UjRu*VJHi=+O+2^5O7fMleKl&4OevZI)eeCg+}*f1fTQe-3{6VdpmG)u zQ<($}`m-P0QQsYe;)peK&ZAA?kDo^sbhHMO->0K~p!rfI4Co?EclVe4b z7~WQysx#H-vd|tf-prwK)^Jt`NIpR(@i|pbE(G4#$k#!*z09wX&T6lTND3;n_WNGY z7?Gcd0kB1C`qr8PY#%3DOL=R zsMTnJd_l`1T~A&sY-mR7!(_My9v+bn)*2drF9yhmjC&EBTq53syTPf({VEdW+l+g) zsx?i8!dQUy-2~^?u>O)>#ABdue3q!x|QQiu@?m_^H6#vgG%S^M*DrR*>CWGN0~XT!rTf(2AFi zLSZ9C^pcGmF2lpql~bgTfR+28PW%C3eSKQ#Fz~(wLBit}C9aVNskLaDY&79R(1deX zl{l3gA!wy|nO2Y3OX8e-(^=yD!LocEY^hw4PW9#nMfSZxLhXCi?RAar%Z&%Y6K+PJ_XBH}B<~bj3yW7nGxJ4*P0&thS}D_LJzP(bJTsf%VvbkKH^aqb zX4=$feAhrH%s?yMlW1Q$ptKThr8QH4`_L3Lgsq1K_-?-658FE){wEYb^CjYxaX}Zx zl|&sR54~uNqco-yYyrzz@GIDpK$h(6r=!v97Br~&C%R~nN>c@4_arVtb6yklLt_Ze zfVriCnm{w`Nf2}vbW+?ayi-YDf6mbONeFYAj>~vq$8|ik=DB}`2_Y(KyacX8ds0Oi z9Dz2*R@$)>bnB=T%sIn$QMkr9Q=4D~b}WZkhbiZvM7vm9H+UK3yV5u zH^F&jrNuDCal$2(DJ9$tzl13jT*H)ejD3W7J}?%yy*6lkd*e3$2`_6Hb}WW#JU@&M zRpI|m4#7!i2=!phD9?}oZ=4)b;>ng0`@?8prS;a^)BrKG(QWUpbuM5^-S>?Jo&J3 z-$F2Xojy=vyp4ip7jlpd+iRVoh;f#|m$f5owzqk34_pz1^(C+h9ze_OU0ge)4}R;% zQ$GeS3BdR;G)LeUq92=78)C4%LLj_U=De>q*6E6T|8nsRdEhtY2B_6Eh$ z>%56DjuU)^ZV;JK&u@YU>Db0Y9W*-*%qW4KA&zJF4x}Pz54AOLH&93u1tFb_6M3P6 z6BG{BvGEtJzMaM!AB3(Z_!zc@iJa?j2fAHepv0v#y+@+G)Il36ioY9-uiRw=7BXhW zPcd5OSYxrT7iX6zt2*MMCipdcMn%B>$}!GVdGCGB3Dy9w8|P)$H z%3%m6zZ2fo@$fd@8rQ@BaU8GQ^?6~K;`&eqTtI4yC{E>UZ2B>5cHuz;hjC2X;Z;0p z;}(&zRZxBddv(M8h^yg%P%}JCoQ$&ttei1?r(9%QBKW4)yLd( z1s^+9@C2EGukpZQH2m~pGMvLAILSCZgb}#28E%E~)i%A%DP%UuyJt4RfyOO!{IDIG z>ZuUH*RTt@oq;-2y3^rcC6Ap@8 zvUkwxl%9~(zV1g+buo_7bz;4ce@S>mC)5v~ZMm|GmER?gjzVVkR`KS(lk;(KuEp~Z z@mcihBiCF;Z^nr#b{no#W*7fq!1(*bm+L|7I()k=?-DWL^T|QEh0}b`ga3lfcnP!Y zTukiU!xeB;m2&@&a^gy!B|&zfK%4#MX_8jP!hj^5kJT9GE!f2p?Y2ZBE?HB2HogTP zrPP`ATXklASzD9NoOP9x}X8ZKf65I2B8B z^gVgX+cJ^7& z*VdaT5Kl9m94~9u*PF71em~h3zJl3S#>R&KOT$DI#N)EtUB$iy{Ueca)3GPzMfcjJQr&%7+ij1H>wBqRa@*#elC9Hmr9+_ zTad@`?WTPH-nu6bnBoiIMNML|9FC%>;NR=koXlvzW|j5m*0CdLcqY}SwF2JHjJpvp z)+t)x{gJR@v-@P_dkVk2J2F1VPwA(AWt=glchT*|I%22pSafcAP=2&nsoW0);Q-R6FvdJ?0*&ryAjn*#l1C zvNk20`rt*FN|aD;;o~wulHE2JNOEw#Y+Q-*?BVLE)*bp(kv$Fs8=9| zdRyxLXxP@cJtEAH9#x@5mai9dGga}vC_LbAT(r>@Oh6^%eDM~}9{!AR;>P=}LgXeH zbS4kVm6?q@);O=>U;P7<90BPIWNoQf_Xd%Ga+*xyi{X+|_6+`kxQB3SJ2b&8G?30h z^x7^n3_c=g=x6F(Ig!QRK1!g*pl$Owe>9v6$(})4lgE31lRdQ&p4QD}Ii5muo=ZWE zk*W4}cjRTqZxi>_lDgrP+>E%WfM1iOC&Ry14`(REm$|k1z=lTnfN>osaH=}1;2>z6 z3*`AXu#6o9TgJ1eahTzxFA|~(0LboqMT_{%Ch>D#vR61aN2{0z{wPo8kt@_%=?WVq zG{F7LE+&`gMvPodAvKTF^pA%)g}T+OZ8H8_XodY$mXAo`0;*9ymiYG!EBCo;BEE!> zDXT8EI@;q}9qpFFC$d^#@=4k+6tQ2YHcck_JA_Uq`d(Erh3wk{uV70rcO?Ba2ce*r zv&ob+7ltHVta|{m7%+*;OXE^tn6I%U03|ogWpMg=@10vYxsYInx157Vs#>eG;Vcl zb)lZDb@yK_dH6ia?xG3v|F?*XK40uGH)~FI0#~}F@8Q*&nvGy+$K9I0hvt&awTA8&C<{RH09J=^7&8GSvB|*O=o{B39 za{QW8p=pBx>Wto?A0?-)PMXe~R;s}bGkKQ-x}7codI!DF#@ZFEYeDMbg?f z+euJ=%I{?9`#-;#pYeyZ$mf8ZKu0EzA!d>_WZWk?8L0u3)hGZp@|2IGhzB(k9d1L(fXa7Z$0#6 z?!x%OMEl%DiCGKgYT*Y?ue<#FZ)X=?U&VVyHJCNup!)`YfwNc&9Nx!!n4lV}Lt_~h zTvw@2v+ylz^}+fP!N-iUUo_qa_NsbR)fu`JLdg=YTalPr2mSl{Fh9+G_Mw?u z>F{I`UMFZ0;Wr?u$uufNo0H^HJiX?8Z!K)rY80O zp2B|dj#6qmA9A>U>isq%iG~_PC&w1spqn607+X+!fc*p6e`dtGn4p9ldxY*0IU`yK26!Cg8B9NzUrfo=lD)6Y=(BDls%&OtL!? zhf<;XgA<@znYK>YChXA*(!t*3Q8w>zWuPob*^K}-ovXl9K_Uo87-vBZmEpCeNT38MdHEFdpgCSjKrUrV4fayFz;uuA<6)e%9qt zUZgW1hQjOVa1)wucBqDFoQcA!i%|ZcDxqhK8OPT^N_^*K*t-}GfqGJvBuEwdI9etA zlO;P>jtmB?P*1rL#iuDXunX*0g2zP(>?l;(cL$YEd9EK&NA z6unwe3~%Ag8x;^Kp2Ed$hExlkV{FU1YKmkgm}IMxyMpuea@ zt8_7~x!gFHAjq8q`$wpv4KW7`D(Psc=;3xj<8F`ok{fYP_kfNd&T|Y7{b1=RJfHQb zgx)W}YHG%mJD_QOdw5JY9?c?S;15Cs`n?L{T#i~eyQ}aTv=meE;AvqTc^w)vB9UU8 zcb+!rL3;tCupMmEvel*JbWC?vaFR#9)OU+3!wO3GM!HaXa~^K{Pbuj^1?&#H`%%2V z5N&X8!T4IV)s>XvJ(&aN`z7_@6H&;+(@`8@Iy?fmRX`t%uS7M4k8&PuMk(xaa;$*Q zag_tO=E=A>`x@tXO5qW-h$oept#QxJW%_7N;nC%c`0)`}Q4~~6)LmP>Fz>s z*iYF-j$Zr^5eJ3frf1kG{Kr~rm_VWVFPPiG)>IO4(6TMQ%Y&jC@?R9BvS%z7_;w45 zDlvFauuK=w9Yei5%pp3dxjLLD^kp`|a=<#SQ|%%qt)U~lL)V#Ig`xsQBQN3$@Clsb z*Pb@p{qSEOI?F+G`BjRx&SV0j;oz(6q~x{H8QcPw?5`ydj)} zGE{e~nx#Y-81E*Q&@9PmKGm0Ka}*+ZN`<|#71+Y}>f{ugQI8#kgpvz7e!K^&R1 zne6*OBMed$59FPL$BzJrF;RXCM*(`6dBjTQJhfm5I9@QV^u(o^R#Zq1qHuQ zzd9EI6awr0(d#ypMDkF+4hohpORmzO{u1D=Sz-;-+f^foc1E>!O(Z8K6-$)WcK$2kgAD{oCj>- zAzs5rHtOD{{~?z>OQ)8TbA#J1Z;)%6C5M{WSV-wF62Q@-k=bm#g7kB!I_UZB9SmLs z(~W#=wd*p#`8rv0A!WK$u%U!<)}?JHT?5!JW)kh`KFvb7QlG7irAX1n4}CKBpIJ$1U$Qr~ zeO+d6aweM_suwNA0U|S95E81tBa)MS;VWgnPmxJ|sCCVsf=7(+K+3}6NEoC@RyMtl zJ1i*TtrMW zTk@|%Q=xH=f|-I^cMO92&_`p+qe_x7X8#XPm7t}?Ka_$ z>Dg%Go+x`W1$kDzNVlWN@qx_y7QJ+HjPs5>J5|@hPAHCAu5z|%MU~EMNZTzl-qjV# X(R;>if@h`W_R`u>V?v`X*HnOd1%cf(%reiS0G_%@W ztyWs?u69?=1dz3Iuh1S$1CelNG#*+X3Whdb?VON}$D-*>cqq`DjD>@V-i_IkY&$5= zHaK)-BpZrFGvU!J)QvX4?IT&wSiSO}+Ms;*;Jq;2OKr@;v{8J(RV9})vE5k-{s(~vyrouo{_ci1?K9ndJ7YX9srdMI7kE)QeY@ zb#?npWk1kfuk8Dx_?=x+%M7iRw-v2tg+!sC9-N?kOg%=qZdh8kKwTQU?&tV!72FJ6LG{| zXoe%HL)EYt-iNpGp{sBaKFq6A*7;N5%kTug>X$GV4l63CfB~2RKlGKi?^V`P*g+q{ z@wm+tpNNBv(qNmHH@7UqiKyoZ$4@X};*C%?TQ$}IwfN49MzT{z8!Kr{9m1dLuTrZNc{vaFC^JCmXS>A}s8p9Ra zgzaCeEWybw%mm<^-A1cG~_we{biQYgoPRm3qaw9T>EAcHvgLJnmkFCATsiZU=X_ad`z8GT z7JN}R-TOnKayKb!E%m8JIn${hwX|;M(sbZUKBQj$3}+J`u`B8MW%)SKVeHM8iBVId zA^h~NdR2;Jv)h#8al75B;5fRoS$UqKu8rVPW2UC5simbE=WZcW*TMgBuZ8Z>w78FP z|HsYNQN68-o*cFLG> zv0Q`JrEPc|(hcvQK69h3ec5QXWHUXHTM(gi9_Y~2T+>OkqB~_claNa?*D~GT(Hl*t z<%b1iU+yr!+-3G< ziR>)*QWggE0_RH?N{8I?n{_h`nQ!8}`uVjB&F(*-`C71Nvj`6`l7$&GyncDewR8k0 zu>pQ3T+6vgo^>CG&vw$YymMRVq2J-9U@Q?CpMi%Y?(kiC6?ycI^I!$cE`xUJ6Yh-? zml?!#+Cg|g?ar%LPBmTGiC2)f*!%Mul=Cy{<0Z*jwN5$Tz^2>h z!9bpJwc}?XU6#-6ig=T6un1q^`2jxUOYotLdw4}2H0R+4o}%2Bz{hzoy+IY;L?4~1 zTyIwb9>OP8Qvv}vS8rY4GpPq*jAAZ5Ql*t6 zo+`X9uPV=#2mj<*DER=NDgFo^_VUO}P~7xvod^4AR*!*Wlyw018``F)e|npGapkhV-MD zrXIy>U3e`L4n^ama$X?MESH0WH)|vs+@cBIITfaxZFsRhUT8}44Yhl>&?bbP`T5W@ z1?iandMb5YSq9qpnJSt1M1Mx6*rm)A-yru=iA*+|&vRVp*DFrPEzILq*RmXyh@^ita+{IM zK9whbHF6z(Y1SxFwElEFvR`-Gb-SFL&Ji*Yf0N+^okHWz70P}>{|?ht(aUE39)%Z- zYI3<=a+oGE{~ruT`nq}9VS4qTMdg28x&J1*%@4I;1`*}_OSh~v5B!PVjguve(Wl1} zkAzd3MI=5>i*L02yz?$Gde`G4ED|E0f)(cIi|F}@M^J&n$!O;_Tc~Fv(K9|zZ~eRA zY9p|$RaSu!zE=xpSO+(0kqnuOvJSCf0gYHQ^{qL&P*ydbRLc5PCS|`l7Alm74x2rA z?T>JovU*{qvbTES*YFU`f=w_|g*)R|5&9m7m8h5OrYX{2ycAwn-rXo*qExD7Smhx5 zu;7jX|;kZa)u6yMR>8xy%S4Ece;gS^_x;|Z6Ww!AbV5OOTTFo6L zu3;vTh|yzB?QI)%OW)1^wLxp+GSlFW|K6ZE*WiKA^d;Az-Q0iVzus>{y|bJ-&<~4v zYWsuHjkp!-VY&R-W2V)8I?ps-!4^!a&MrPd=}Ih`71^X(Hl!cVV5ns>`aUbP{lVeM zpet>6{s>NQm=)tXReG=fL_F9vDhlki_?9{RmXn!8>0Tz<%M204S;Z?ikj+93H!mT{ zDz|po!YlD3Pb0huF<6GEUL%|b2*@mkb3D)m2baShs6%0TNO>NoBkT$O{6I$_#e+s| zr;YKAfnXv&5Ka;KG_hcOcOj2_AeagV_$nWmF?dv2|1QvvgrezWEHG>yu^(U>?1~M9 zhce-K$XvI+NQfTM>p)kcmuVQqbo(D(xSgJg!{M+@zmRTgrML<4A^RgdiGIz~H_)5S zmJw^*Ttc!(*$({mHzm-S@6XS#KzRgDq>`%|0Qp`qtcM@NiOM<)Pv9f))=BU;_&4hE z|0vII-|JJ(aqS1(n^9JE*SKl*2YQ=j^0I_xC5edV6BS@jyplAlTpExxB5ZBQns@njGpEig%yOt4U1+ zEdN>)7zt87BZ1@bo{Hu|xu}>>_6sO9S>zVl?SGvTg=3l})0i1TW9M~5zphWr% zpyCg+==AxmpI+V@KvuAcc&D-+fpNeSvEs96b+9*ph&DpA@DR--{?!$YZ$p6})tev5 zK{Ag{G-Rn~E8lOmI_JKVdV)>*#6+-F<6)j7^-qg-AwJ^0L3tR!)9(!hTb{5)CuWj9Edi(94TA%f^yjj2y~sy}?jFP#Ua!D;UkSsw$L~jSXmq@e zQ{{z4%0~3`Oq!7k;8M5(IU`y{EDu^mESDC%;e;t}Jf9ciX*~m0(>z(@fD~MSkdQ*2 z^CohqvtbeLhQnb6Hvf{c_IY3`GL)0tUO1Gn)MxRT-H4)`+zwL^wY9E*+2wFHtVQ|$ z+h|hRMB~kwp|Hb0u18D9EMF-!mcnh&gfDG`IYrQ1O5@wZHY#j+rc)1>p!uW+?kGTr z7~mk8!6vts%^f%ePj|g+{nYJQY|ug^`mA$uM7~wX!12+`@O!_=L(~dED;()V?N9nU zaLUJUxx&{Lt!}P;IcfYECh?Jy*Ttk z^9Vx2fg|1yi*V#OVaGnfai308y^9bvB$)RYGUap1`nR$oL_}YdHK`$W%i2be8=j&i zWYkjDk$yOiMz??fIE}v{T+&c6r3j{$R}{cO`8bJCjx#gUU0#fX!@J9ASV!Uq;Cfh4 z>?h@Rc_C~@Z8E18x44QRjn*O32JwSMbP28@TK7pG@=5i9CO94DRIp^qeH=o22h9jl z>QMxT0l?KIs3Q=y9*b?K5-ryl#io$>-xk&Yoh+*hY*Wf%ZE-S_5 zzC&3^TPLH9<|0%ocNfAc(tJlo=h%8FYKuVeG~hw-Daz9)5H6^!pWtdW;AAbdO9>yu zt$}S9L$VwcfFI%|u*OwAr4Z_gNKeMbR}@0hg9_`CQcY1%$0T(K!UjZAA#B-*a`r*c zNnfkMbzM%dBBF{_F8HVB%lM^!TnL+W@)ZThJYWf#xL!a6ZaMr|IVdfKlyfDlvz2Az z!R8tj8VRJdmz(*Z}n4$sQBGGLYah4g?(CWp1V5S4B{jj0u_^+*)ouI(O2~BQv;^uFHB3a3n#c`G~SUITAvJLx=gR|NXc~otqKGQ^Yt$| zxvxue?$`=AMLFZSfhS}A2;OeiI1HV4D6KLKMjX!IA8QOqfNNMnZz&vf*~Yl@F4|ko z_xmSig}R(H7e7B`_n58)LcP)WrflAhI#`ld53|u!=|By3B}JAC+z=(OL>nsMW9|On zKpuR7ObO1-h`o-9#n4$mcf~$vtwTiacNJty&wV3j#LDu)PZm*^DAb}_+m&WH_<>{~ zogPf2LS5uu;^G;_zL3aGO>hy$r)KlAwXlpFEyxeyk7P-~MMVblTV)j^VXtJkgCIWp zc9`phbBl4#=saJYUk-QT5r>$Yi#8U6wqa%eUWnmiUAZ7x`;<16^NfVyG)=Vw&I?oYHKp4M_hTBrFyfaYT zZA89u8(O5`T6iA*1ZTKVpV`L%RSm(m%uB|M47i8hP(#)ggg|kqTM%RYOFe8?7QkcJ z@cYmWBPgZxwKu|<%Hrb%`SDpalr_cd+v4K+odx)|Yy1-@$(MnwTx7i}c%ohv-sd=e z$8oR?8f{8RWKN;(0Rr5N~()$9r;|snif!Fo6o0)^JWW*Fw?M zUR)%kh{eXQhh<=Lbl6s>+%?akYQrWx7MF7vS@1gMK8W(>Uv=aEo zr_)(l13NAL2iKN<_~7(9*jxoiDf?&hfZP%6XW=#40ktZBDM1DJi#?ZUm?`C50~x<> zW(o)2nTUnZYCc9o5nB<=9>Y)7qSA#1G-<}HG8GPmqQqO}96{uhOyiTA5XTLt($RP% zFsU6W@^NV^}zoR=G%$O%G%sr7oY_Z2Y@pbMv z6KQ-%uw4B>&^(||TSG_oQD*Rc*=#A>v%W?GEZZ8Kuh6d=BQH0jAyU1PPsIOG=`*{DHnD4W@iVvRXT~&^;#y%F!M@&a%q5SJlwr>J7P;z~uPy)f zBh&=3VHX{$m-$QKe)ze+3{IuT_n{JSwZ{)>>|zsr?Q|5{&qJka1|GdrVLyHOsu68r zK`cUV9@j=AwP>cGy=6pXIKzkxN9RO_CL=QF=94}4nEyM3`KKou|28cbwFf83* zlGL$DzP8E;U*#hr!to**#(0UDlqvY8-ibFMC^)K#3Rg&I3g_KO%ev7(G?nQOkmwv` zM8A%Sh@4x7;6GdCyv^!ZLcAIc+n*V}Y1cpTDl%dWaEq?MU{82BJQ;6hOwfO%A?^&@ zO~_v3yO+SH2JO$=Ywn@ZCDAK5zVBQE{QSjiYO@!4VFt`ghZFs|ZMefo(R5LFIi%4t zZJ;1AHGa9+tlT0<+~7CM{)h+%8Dqn`P}abns~z*~y-58igjz2vC%;75OKEsh#jS!* zRi?3vjalq`0TFj9_a1ZYCGkUux?K9DR+$`y10t*a%pCV^=DdDfu6V2D6p05raU$73 zY`QX{fl>V}JvZ?T{ySz!`Br0?Tqyn^V`7{|3-6J_!sD56&Shy_^RDhhO0*R>h%bco zl%C6;@c3fAb4F$6+C^Snj!2cVes9KHZ4AgSqDaeV3t!H;IMkS5{$*yq$NchvtkR(f z^~*eMGp(nIE!zI3vMxkT8(u<@51tY8ziZkQI7c2iR*SjplZ^1qNeFPD@`a!S`9#t6 zla&1iY*21o5!{E3o)s*l9v(-npbFx02ycdi35~E$ zL`;-VW*+)p)D|9>Ct69?{i?F!@QK!^QQ=2)Izc$9^>uiL?A_<%(w4&j321F*G7>Tw zrz`I&!$2R9E*?ZJ=a{RPOUnbwx>-INNA*7iAHw&|+nzVN%g+cUn}hIH2nlW*%ReYI z!y4t@q3oY1`(Sa_q%}lH=*LyYR{sOTqt?iLJuGeuZU-mRIxhzeu9r>@0-hD0%A1ti1QTa>jBzOU)BCmafQvJf_pjQvcPJscH4W-6R`z7mTDjTKe< zGt(t4)v?U&|Cio9h$5uMw0Lj71;By|4seMftEJj-uUw6IlQDEuV2kDvSwntWaWR&jx&0BWD_BF&KjAEG`{2U?O(yS zw;!m~@764IRJylOR0LF>>?Z}8Kj0dzaj~F-BMYY{8=w9-lDkgMY@4#4&9%xkhy2A5 z>~>xz!omwF`ovR!3Spue^;;L(EAz)1piWy;e5hr+N>OI{1o7iJ^x9A0AZ0y-?4yF% z==sW-r;l&*9qpMWpo43!J}Kg%Kqiqw<7mmgI^~MkwvFn{M!VdGl{UR}N0CiF6Rxwx zA;9}v<4o#aqZwN~IzCJdf>#+~S61nCzcn8v{%tSF!gYbfDn^YN3->rNEE9h|{(1R!pc#r`7cPkJj&N5IG> zC&{Te?VH*8&hv?Kz6jGi#wT!rJV;lxNOlw~67x((?){65o%)FQxv~b0N7lc6+U?1K zR%H*OBF86q9M6ufaBnmeiph!VyrZ`p3h2hW0nU_5$pC2z&2;Hj;`Jl0mB z)nO)W4-c9}e7jN0?#8eE+h3+d!{0!2A)HV}9U%`%?H{T9KlDRG30aZwA$$L4KpUF3 zGoZzffYFhNU7vycy%?4fJ>rtP$7kZ0qj|6v2W>AyJf@y(3TQx?!MIQ(4B^oFZaPdFkO9LZ zENt->BbPUYINA?AY?9U6j;|pmb1Zub6LROn2YYbu&5`(=9m?^DyW1ESF*51_sFDScMpL4m{-OID<7^tR4rZv>xo7^a>682bY{d~u`R@7e(!^@IPg6zBD2$tf&1=jN;ymavn9YPbvKi+dXKxd$eG} zj#8KDEs^R8BY2JAK4Wn**j@@d7@G%Sj!EQpq$nX4w4HD?T%X?)Q;w2J`CYOGBFpw~ znn&K4tC4;`VdVscuAKtoeHHD1vy_brb}4Q>if$|#t*6KzRvB0a>lC*{e3*A%CfId_ zph=62+_TOs=_G%9CcxVeYc!`;r8w|et!!#=SXTcfdZAFCf;M8u`to4!6-Jz%kG+?;6kn`W!5H)rLsBy`MCr3i$&U#HiX)FA&e z&WrYb<02Zsr6GyvBNUWM9Jmz@5;Y4aBZ|k=?5viaMIp6r(Q`$|9XTRRk#k-@l8O!) z1?q9Rgs<5yVAzQ=C||$nw>wWZiv2X=|HjAR)Jb6=e3HLsdOc5kCYBmy^Gto3Aug9s z&QsL}ma~4YDQzg)+utibkfauHNBnJ~w7O@Q_aL+j(|N-4;a_@-454(@5eWA5GD|uyNGBFz2&zqS3nMlCQIP!;<{3Mb%$TazNJuxzA8ZMhhv*`j)c(f=G>W&;+{H z_)_nJsT2tWMp45{b0G~^Df@nfnDbJDZR=~ zPT(hTP$x@FhfwoQ)4_vHU?Mpw{GLaGkh}dnn@dhs)<@8+obSVvGQz`52Y#n)Ge}$9 z)8SOap$>;WWl<;_eQHG|g(R`BHATR*p^?8AARq1`jYnVySS~#nL^Y5?Y^-u4qiOp) zYiI>%Kre(R{ism6uTsvh%r^M4ncoLwLtd>1%Dd`x4wL54$pCIo=+r0(FYVDL(5jx` z`Jb4f#LWE?&G?2pb}$K7DyLL1HCj_55BH?ud&Q#6!tO#L;+y6ADKbzcT|7uRk7=L| zI2^gRW0ST*`WKZ{AcJDM+DpHB3}80d;jmPTk;JPy0)g-(N3*Wpjx_E_vgTCbQF{;% zA(*02R(#%lF?)y62SWsL;CXf&ae8bSVmc26C=^z!T+}LjrFOhtDoow?s0?sWel9jM zP$VNfj^iNdkc2Cc2g6~^IX%XCn)Qg|3Y5LcpajV1bM99=<>yc3?J;v`nj1&Sy1KqW z(zBM-=aCDvrhp%4qC@&2COTU_cQxs{&yyjk9jb~^yt@R=Z$DC&;Gi0y}@wm4T;}v(wOB9fhbcP0vEjPx+#L6VviZv8G35 zeTPo@aiR%37XZf`z*g3LTuxXkduTasn^iNFHSdphM9>*0|iE zqz8(ZaIPCx!=YwHn)L@m(f-~siF3GBW+>-w|5J$_+NUWloY^GSrDpMov>ie4bIBXL zc}4@Q*W*WMR(_T%sgS>hITSu~e(qsa=AC-grYvTUT&9JMz9pO|~ zf6nv1eAgA>;h`~n8(S#YXoO#lXQGL?M(}CKI!NQ5+=$RdOR?zeRHED$!Lrn?@NR6)+J39I=ASoasu0 zHcL?VdzxOz*@3s2ceUX}r<#rT133-S5LC|7@`@A#s0#@Vb@aJN5e5?{V35+hI-S%4 zpT+raZW3AB^#wMmMMLXTUFr3#pR6Ync4K3s#NyMNs&hFpG%7_XkVbBWZ{4nMMY@oG zb6~^_AyI!9;njSE_%ttA>7&ZH00EuCZpdyCNo>G%0vPG$n2L&L9xE8K|1cB zp?v2kp8IGd707H6Zd_rGz*kYOVo~wXe0Uemri1&Z6dZK~9j88W!)rr^TZfu{6Xz=# zg@;kAx&jeh%AKND96`N25CS#(fScHg(#17Q)LNlVWo4r*)xr zsE9^`p}}YeQeV6y($m+~6OAk%Z0rd18M5UU3?1>mZW!(i1k%AkZ+I{g=?>w}2n0yM zh;E|KYu$N%{9od`o;}XVe)Gj)z%Iiq~x-&o2Tf-?hS8}bFM`T)tZ}= z4-joi{QcGjRftDZ*(AmbPmsz+8?*)`f(BJe8+>Rvy={FYkq9A|>+O$aqRBuilM2UB zj}GPj4p6V+flPEDoCyzQlCc1Vv+L!()$H0|FmI;UrGm+f+@@ae?NZ@5^c=-otb{x1 zPJ_zdub+#rN1{o^Wz^dxY&!|b9@=d`3Ie4xYZ}!JS;S@IE0JNDV1P^B~6OG8~TX{Ly z=59^gi06>#4Lu?u@6}%#LVHG5tRpjwi`7eVVB|l-hjzC_i8ABv=w+mmBe9Uw(ZEKC z1^%RjEB>(>xLjGcQ>ZOpYo(tQ8pa(Yj8Z$Dk+&{?%k`WQ*|J7dyjzq6+cvo8vC6{< z4tje!IffP`82j&{)A5t)J;B@#l&^)b??dv&Hd5C?7wPMi??xy8lmKJ<$aPTf?gQbX(gER`z~iHNsxLnCf8iwod73TTY18abAhtA z>h@?c9mY{CrQ2^96X83$&++iEcqLkEVMwk~&Wu9DNp|z5r@uoT8#SStOVJGRHkd^K z+$|o2(f7hCkxY0>?Z2^=E)h>86XaHFjQOX^Co)}IWp8}VbogNd26;F7VXDy(cZ)vp zd-hRaUANEpwYM4&VIQNcdQLBL(ind0L;!VlneR!65MjBvY$g>9>$84 zhkW>0(OiR4_O!|hH$22Jk4g8U)wgYUGXvk2FI|Eb%9NKujxl!muumXYHXgX^i#9yR zeV`8h425wxRYweMlJprR@DF8wL;7}-ph%CAdxGxv9^XX z3fcXja3q)alYbs;%qMPTqc~JB#x@mLM0mp<;;sAe6<sr><+e4W+knbPz*vF4%u|*O^pl=D zbF2>Dxd@Mx-vW&4A8Q{o6Om{tx3m5c4VHsR3C_`9UqY`?L!3qfS;#H^ukaB4;0$>XMX>hf*5;;`r6^L7!+ewW_x1?_giUL5 zO$jn-#t*eE(>XAg8E;gRUFl7p37Wok9?2TV;jv``f;w9LA{3r2vcC6g8jOQK>xN;i z@A{@{eb;?Izfm$%xG(s8W{O_QOrd=(H@JCO`UC58y4!L3O0a9MwnGODvOh!FGuabT z>lUjx$6jB4V{K z>`>O5$|^0Ov<5Gj=`awvYqR7ibDcsv`2~@i?8`j{k~ze9Cwz+mLCYi%G+ciu5Tn2#oz=>El^Jt?I^5rDbfl@8IMSKjno-^jXNesc zj3L8Wp)>lyr${nr`*f}=hLD8k zmy-GrEs>`f_3;k0`&>yG;&eV%pDI`=%HwG{+Z}f`li8{x)EA(c^r&(;2NWLC=fS-? zyBZTh!B^z4TuP=YuNcJgsb|erIm9GI97`?_STFW6hIfwx3Awcb$n1&Cs~N_qPY z2%`)0UxT9*%sU%J$E|b?AP>g#AeP5BhjwJW)W!2%h<+UeM^z(-KQ`xca;Vr@jv{Y3 z?Q^#tkA!1Eu{*au+P9O9(!)245kTgM`g~0zczzvX4uZ$bUfo3PeVgmy?E*N62#OGs zs}OQN-$EH^1^$Pm(0r)J)9XxV_LjqD=!7HN_fDaqy9k~cnrx4NMMMttGA$G0RN#9K zwurwB9o0KD(3g%x1~zo}4lmyj8E6VDZ)r@W`ud}ZRP$hOEY%VT4JAXvsm?&8yEiq^ zGO)aRSyQYt9qLbXhTHp=Wdu`mx_H8d$7iBO-2lxn)0;cxoChX+cui^}=3LH7JX)WW z>GXU>gw_Y$FgG7fb}lg*D&LSi-y_i;R~Z+F{3o?_!829lmowpAIuyy~1e9OV@*_=2 zax(asgiw2oT&|@E)$(~sC z%5`r8sR?&c%1Vk}alO<))O1djafdc}>~=7VCO>W)Qq^#)8_B1Y{Z%CE1-Cp#XSua^ zyJ3mn#St63@gsY&qbI>(B%DAkrG0zH4?WO9qKZ}{&eu56FohdZyx=lk@!VU8=MIO$ z=?w8)K4`o%kYu#G{}w+S;b(?3j6%a;g3~Qc$6h#h&`Szn0nzSXnfDB*!?8{SxT6{+ z*XZno<;)+wd{}l)sMA|fd^`eLSm`FZUZg)owW{~psRFiP9f=>~0 zs2W$|+v4R2A~=RPL4GCDT8UAr{1)*Z9iBvMA--wI%qc8_yn-ei(4rcg@U&Cz%?6ld zl|mg1PynhSfrsIE<9^Z#K@O2(ugN@eX*?Cp2=*M5X6|+jLnp?WCFe;>P0G4pb_vVgzH9b*$E5?}Agjjt+x$y-Slw^ob8`!M}-4k+j;}E?Kp{7>a5x z#Ivo9oNg73Cg$Ym=0emaBxz1;jJtr|)%w|Y{kL%W@PBzl0dH$!CmRO5ZQIc=V$W}kL(or=w_3$ z5pFLsXThL$?x%Q1EBuClIMbB%b5t4NB=|Edhv9PN zV$ZjF?DQG%5J^`~nejvOtW#dJWIE$D^~(2qJS!r~PSMGUfSbFd3}*OI)@<+=Rl*X4 zFmVKh6{Ro_+REUaiuOa4{US;2yUYxnO6ec9AJbiwk<-~D_P4dLiy{RH6QmeZXQiTS zOW%W4MG|QBKtU1Ah5JfHta#0(+&N6{P&um~60zcoc{&-hX9o878X}b;haJ#xMqPi^ zkr?gDnhl4bfvudJJT=Qtn-j}Jg%Ef~zKKBJV|2?Yqhv{2DEmMOuFD{i3BSB!~dP*H8R!7d^WOHGF&E_&(qS?(+Ni)A9iKE$I&~S=36@@l^2+WBO5}T zh-@;1P-qZ@$#)XuNy1@zoutb$A)WySFYwHeB%eGiLXPOsbTFLCL^~PRz{Prz5D>l| z3v{p%U+XyUk+8zolYyXEN8AS+T!(^!I?1jEGi}q3N$jK}9vl-;?aSoHgO?F?Egq|fr36n= z|74p6(KaIwvb7}6U;q-|G_Ceq0favu;Qbs9Jq@rVboCrOVtGb7B;fde*gUX&|m}eI+k$EPDPie;@ zw~3>@H|y zzgOZH#}!i|tLe}VXBCme={3)vBHZi=_ymrCBR$HVK}jGd@)x&)coMPIDXYC64>bvp z-$7IZwkX##vd1rlA5zM+{j@I!CIV$yLbpfo3nx>g=ZMALv#ivzViz>l+!EIyH77dxg1~7VX`Lw2(DAk-O91xZEi#}^-ol-5B0!r z$>c`BXs|Pt2B?IP2G{F~a3xNoh4{J*@Ks%LgVuRD zPE!^>EFphLjr-%SS%XRvJYbxW%V8X@g&IKo=nHUTDaBZ@v*ocU(SAdg{B-3#3cifQ zLTRe&$@@B>>{E<+;5U#a4`z+s>@#l4ry^VFfIpStN$?f+r)2!*YUGFbr4yjFnlrKB z3*3k>NKzIE!H-5Jk`xlljgn_;DbC1)$QvnCkZ}*f_NXss$ZYSx_VAl(jyh!$eh0`` zKS8v=K9gW|3oT=k*jXFp;^9cZco?|KOg`X6%(=o5gv!Ms(Epl2?m!TH_cFbuqZ)eG zsZ)0`PYL%Kk5vna(QI7w*(!X9aYJ@Z})cBpBNFiO&=) zGcL=F)(uRc&WMhi8}Sme6dX zj8H3?kOP#*3a4g0p7vdOod+lkL;Jz}i*}Pf)=N1|#WG1Ew9vJhV&iqk$E6>xuL@Y^ zx*RSrc+j^^mKAY}hC0pA@l)hvB1GZ3S}*88YNE;(F6SUghs5YX08W+;>F1*oUG-y% zJ1N(3?zAr+Rd$D%8qb5r;Q$$7$WKS-i9}^OUs7W_rjvW};+Fh}_AmI=7vagU2Krz%N^i$P6D)N5p}rgekgaeQ%qoRxxbg=Y#(ClDIsgF2jCdxx{YjCCa;1uUv}ajD2AWvBiGfLff2Xe4@NPhMS+dGpWoO5A&8Cq>gdf*w! ze~0|Tb)d-FLTId@RG>PC>2oG2i6xo*DdpjcD)s>67p71F<>_gLTPZSczfOR(s}@DO z^XuSs&UXa2KnfbYq{vUzoSLSjy97}$oRSp?TnuqC{Jk_Kh#t?S!MOWF@q5e}{AF>TJ5*U@5W?JfgKFe;?-JX$#|KTsKj zU7Y-}(+Am7oKaQmLU8jT4j84Qc1;QFR`#uMGA9N?0yRlPv`=fP-bRDr)cEvlDW|YN zBXpzQAEMj+|MdgMQKDRk*h)0a|Lc3QlvH%p=P!F`^c&zF@~ym?&d{G|zCwxI$Fi`P z*5IE8CjFhU#~fdlOBbSB>vAoe##q-D!E5Q!oXJMJn#W{r)2Qg9_*gE2vcwR^jZpr9 zaVK43G}|}z8;3G`h3BM%+!u-Z&?kStD&3MWJUYJF!cZ#;wd;OZM0s$80q)SK7CQxs zdDpoak8@$vo|y9FPUFKS#lYLffnQsM7b|-<3(%b#jrS;#OC%Z}(r$8%WE?1Eq{2E56Wi^@cJ!XEY|j2x&d|SQ&eLF=ay#+O^LXlWiJ=;FUZ{?E)SSPi zJZsTlc&kLPbqSC#k)&mv%&_-PxkcFuG@N|5D09CiSE1QOM+j$72U zXQP=j`YT2z(i-gp-4XAdoN_zf8|<8<_5|aU1^u%zQE^l7Pop4-@wr(CRb9Ij-lg0C zaKeP)&APzY^>$8}&h(*PL^-%uYr{G`SpW}loirVkOq8pU_TMW2P(ZK0_g(Oca*p&n zsBLu*BdqZSvgxzg_q4}?$)KZeCJUb477Lp9TOTCt>klri8z5c3T&R7 ziiU>xxI;%_4(We5SC))w|7pGI1oEELFLA#NYbkAvK8}fD@1l5BR5=l|aX-d@uDav;#&Rm_f-`X1VbQB)20z27Zk99iivnXxxXtI+QEA1kdtr zN^~Sb(JhkGC@$V{{%t0h>~vDc1cjg|ZS4(sn~BX^G$Pp_^l_00h1uFb-UJ6R>q~^= zorzSCJxP)52bla4@oh+Kb;@-a5l$UE+910SfA;ChUKU||Xwr#rrj~pXXjAp%hDT+o zV2zghoNYP;|9OT$67ltEs>r#Xe4%sR(YJDJ#%FJGcEGR{^y9LDQd)sKBr;jGIF*zB zornh$y}jWSRc_Euz!Bb8sB1`25JKyvTZA}o$L=rU;1W)xWTD#S*(NLfRs-b+cWzhy zg$2fIwN5WYypw?vjy8MVTuOy=r9!Thu29;hRDjagk@w?N7R?iJif78zu-V3fX(FCX zB|4+Ipyh8!(^MisA8Mozt&wY#ioql~ds(ksoWW>Qh@wyTsINcVZ@eE03iN8Gj6xMQ z3e_I{)>JqdW8OVa`A?%L4t;4jJb*Ydez2EQfSJT$r|B=GdIK>$DG{ji-QX|CFDNRc zo3|PF0P%jMTuqg{snA|&oui#n;k)`3Y0g_aL5A4J%y_fjvH^r9cjt`$0l^(+019`V zXw`zjN|DyA3*j1%yU^oyxytB2F2joM&^a_U%1!8sWpJuBBK}3;XK)p2xL@|e7-cEA z-k73is+Y%b`>#)Y{Llt3|oDo3dV6527BhmN1Y- zunL9Z(}*!&gHrP`9Gb}=!E+GpOUnv$vT+*a>6Cw#GEAT){8R*MXTa!$?_`LdY4s~k}y#3@=3&czv)MzbhW%L9}=NidPe zVHvx$!ew0M_j1l?dpSglanipDNBLp9vMrv-zrx90W#585na!E3_(UHdd4`TJT-NQ% zc^1|w`$RaW2-*rnV#RT-Qq~VxEh5SL>1qTp>Eg)h3? z4`)iIR(``;q|Om8<3@kIi}>3q>|D5?Q?on^90+b5=5fR8Op%bKA2M~vp#-C>pHU-J zSdjkigX?iVF9D9o<`X%NDw*>Yc1fir{sMvpdWnHg3F`)2+H=ZKb@`UEep!vn)PlB3 z9Mok~s_^>_NIA8rK$qyKIyzZiR@T)ft=QYxIo%X1yGOU~PfJz!dbmb2^uh5OZRHrIs8G_8mAwSv z;a5<_UBJQgxWJTAA6_Uj()?#7`Z>b7v#2VBf_SFk3uWtd9ky@f08x z{|y<@HsnG7Fg(-b*|XP8ax`X8=M75q!u>$WTn~Wv*H-wu7D|ckPE>9N6F6Mv@9-tP zL8mC|M%>Z=h9iyd#HBEd>#RNFQGUD?KEz|ILwlqnOzsWPQDP?uTK*OX+O8BLS#98l zRm!;qO>zqVHL3qzlb=(K5d9!D@&k+y{}#Wo8*axZ{)7x&885}-;5{7GDzXf+)M;Ne zg@>c*s-av<6N7PSJknn^zITPhzm#N$5?_<>{N#(pq<0U6*BE`PIWJ_>3PC;xr80BY7zjUeTGuJxe z=`80)%|BH~;+de^eDcKPbjR_uu779(F0GgObN!txyVWZD3g!g;vDjwqFX#-FSUPbO z9%b%wJQ}8m++vczp+v0;{_LWC-=Mr}@fY7twxhe@Ek01T(Ro6%jc@H3&WJ;jJVKPd zmVHs;{S-WZx%lqCXRJA2z+=l1D(*)ybW|HCi6C^y z{pETVGU+b1f9kY{kMY6{OkVC_e26f!xs!c{L-FC{;3Qn6BfeoY_eeHhL&BlBu7jm$ zy|oL$q%v6jlRX>)iOm8+l~B~5cK6+^*`BhWx9K0hiCD^L@k9Aew{!n+U03bXPm*~& zvAjEy4t2!3)A4vZ=l?(|O-CXy32W&{bQof{XsQw&v1r5uWt>8Ukmx|uaohy+q~wzJ zGSOuZDegLg*AlUC&JyZ*Q(qj2B4ghsw$!MB+|D(J$drjn3j5`z?>4h`kD73}ITO(r zj*f?2}Sz^ZrjNUt2w+jd2 zqg))!`VJp!4LZJkXgm>&1vV@jXz%D5?Cow%_4T#(1Y&)CsgBNMcOcyq52S-#nLzJ` z{#bWoDwK>h4GauNqM6=MsC8*$GMI@*T9Wb3;Z&rrFVWmN5YGf7(az5P-avaWITY#a zYDsl($aFRhcZR!SgM;0J5d;WR(f;Ug|4@IRBN9sW^)DOfS{6wqI*@XEqg{j1P@qp& zXQQd*d^;33H-QBuLZO^>{&Bt#CMTX5qvR(?YIZFx1U=R{zJhsr1zHPE(d^w<%)<2e zboRKNT8JpmLDew52o;u3QPN+J(&s5CMK{9|#|txxQ3fVl{}f~st(sB6Y&xNvs4i5@ z%Y|$H2**5WL5eXxe8i) z>fzINC`4sv7uqt~QG1z=!u?`AeO9npdn?CMZ9?VY30P4|+4cC+2~+ zEz60?xrv9PBF~8D=Za)Om0-TA)uR8^B6WIdu7p^8NV*T;OgytG~xVJ?!=Q zVJliD{=r3(blwg$x6UWfZ9VeZQ!C(!Lj3q0lvHvKPTV{=AE)sdINJ+Qjlz5_Dm5pf zwzLX9sYKht;v$r}QlwuU#_?-g>w$C@)PG=^n@bIm=Cp+D+VC)mUN4dbe>QuF^5nT; zsTZebW@$0%2ULD-C8{DP!%+yO0KJab7kc$*sh(hVeJEoO{SsYb8};Jxp2OL`pv1yfp%k z>4H~3z-A|~j6GgUH)dD4;E)Q3)S2?ik}6W&n()hWP)%M?g35WSuoO*S4HfwHRbJHf ze*nwG4n%$nXhW}p!>e%c>)->}jB-|OVWCzA-S9P>X_V1DxN_IRbbl!vS3qX2{kYcG z(*08arl1(M3>T#t+e}BgnS->o6gS9~npE8IG%os#f3 zq;tZ!anl?J^L>CnoQn9HLsyJ>jj7+o&JYT0y zDJE07ZhB-TF7ySC56*SqFfL%mbM+)l^Fj|27(y8^x3n5}+Am=B6gbNb2W+lM$os1f z_e7!B2T$eukPPSII?gNuRhI9EB+g_TPt=Xb@Dy~G;TUHkIjzG*UpP9);pr}b8HHRO zkyPtd#Ypnq6e)t=JRg5Q(m|N!U}1YT+KGURzxDER;V$#rIG))!`4JeyneB&zk#?cn zTLu@7&e3E_UVFGMHD$=? zTHz0{atg(+(C6?|hhT#fT_x3YXuMa65FJwEG^APzkG-lMeuKvbzW;it$@k{ND*P@! zaSGDZsW^Y(%Ju`OmRsjx-%!9#bRt}xrch>%*U@2j!9=IHh;jG?{@J-z)b;`6>2{X! zP21!$=-;!7vbVCBTX=!-YWSt(=PE(qykrZ?d7RT1!Las2C}R{!CY_z(oaX?7_vTVM zhhMXwJzYy(roC?MyOnjDbRho#pIh8;x9BkL-ze8TCfuylBu8^|L+Q!Nx)u0MX zMGVfr(X)Y%|fi1;23kNv`}JgswvpG=wjXd&f_#_${8>C3 zu@IMUVQAuGFPYYLNb?iy{<)VuHyC=zd8a53)eh>$Cp!b_u4p1IJcd)v($z`M10$>q z#X?dka9f>nUUki*!U8`+`{g=#Q70*~U&r%oGjcmB89ylP!>Mp4h?-S891o_38Fyfm z%_gh*(6s+Wt3WE)wNV?VoEJF?WO75DmRr|b568m6Od>@A4CVn!G@H(~9|)vk(T-F& z6gBs~^g{Ld2Dx`ibrI)PqvcTnufEC6xxS3lx{=}Y-rUT|CTRAw=G=_t!J|v{0^!I^ zwwCXS5vt$@CfnZNWKBE~A79FDSfCTy@u9q+8U;T}zp>so3B4kTbw6?IVP);ZvuiE1 zyU>Dio7}n`_W1GecKnq{;FM_O3dXkU;JYmOZ-m7pUvJDA~=RVjooCW*@shU4hcTfX9PkP#qr1*nSvWEx~rR z>}5<}?IsHZ8r zcU<^%Hd{OD@!#W6N*}=aMmxkbT)!^t+v$kprr|VK5g9Sw_TcQ@01pyIKG`^v_ncd6W&qQ7@X-s z)y+@4<}T&xr{Ii39UM+vcI43}!$d)~cM8gdM^OGgwzHj9glm2>(%5h=nWr{rztUxUZZt|fJ=t10K9TMfyrM#po zQMF!-)Y(gx+{dIlwerqd?8*??N{^on>V>FHAIv)bCf2jRLy<%ang7Lu`vp9Fo5C-IlpYen=LG@4x0pmPxWuOPNxsQ9 zV1Fp?;X`GdJXTAE%M2ku^|{!a7qkyDUaB@o+Yiil-!Njvp^}u$buxRMxWplrPjUBQ zy655Xg}D+qmT|_`tnOp@7W~FoIIncfKvXQ&LsWo16BG3UR<_Q^;#7w z_pxN|BK1{)&6iCb-Kj1+8$~)*&nVnoSM> zw5NA9D2GC^z6u|fp>F;=7usvzM;0_kcJo#$(cLCelAUKHr*q1MQtpL|@h_LL=bS}< zHoCaryfJ)dlxv}x(et!p9yO&f-p%6ELS;XFqq6!Ba_tz)I2&mKnmWl>cazSfa0IGv zq!(zn#1e`Da0y^6ddfS>-Y(O`93!`LiJTua6#i#(<)8^COiDL{@7$^E3lKpG zAS6cxf_vd5<@^AdD}rI|dayo3hMZX-If*>7<&jUm0^Q1W2q*etI(FI-Z*ymiFCBtH z5kxGE9ql4zZ&R)Zg^;h)J}BHU3|~~vm8OeVo2^Fn_MLU)!;A!k@}%!E+FHH3Z!0*v zu+90Td<5#eq+G_4&N3;htUmJ#=MzDcdm8=G?VH;L@w~sAVd|vnNua zWD*t=lak8^6N#h=owX0)XOrQ$6#U{`b`6}=fd0Ij${3@i&91^f&SB>zPSsKHC0Omz zbzlxQdP1==&mACxPJ{BSui||DRtpl6a$0qgTr!=JTbwQp)c|h_`$XYll@Ltv&k^UC zX?9%7C_)!g!VT;i+^v(rQJoumSUdx7Cof={92^P>=UGly=e&q)nd)AlfPDyqX{D5x z?_qLkO_-(>+18tm;N&sw;v?t4G#zkAVXm$L#L3QABVU(yb2lF*k2PwX zPV}dOo3)j9ruG7$$?_Wm;%6#k(L9vXt8jR%MbQh=s622zfdboCBq`)P>wQJCW~uG+ zvfs$tMQ4OpjN+e*1~HPCeThlJevlZB+r+%SuTWEdwf=fEjx1})snKiN_ds>zUw7#`L9Vd+!T*; zK4gmCTa9~isp!=d!njSOuFDW}J>IaBYKa}OW|g7R(gZgs`*@kgOHG?U^M335yd||G zks5E+9B(1<1#P51S=n*J7H>n~z__Ja|CW{f*W@Y}beR5=!u>koAvnpIlpC9m$dik7 zvVE?wZcG2CleI|X%Q0o$1jmqP*EpW6M<4(Jf5!$tuNEHoys|Hcs~|QhpU5uCzeyeX zP`OUSvoxQO=DqM8FJc8b5u@UJ~MaV6zn=2ivvGhZB5$1PZA>w;e zISRT5p(gqPDm7mvo#$cW^mhgPT-i^eaqL}VjNb>(Q89{WPd5?h8pIWTUEwdmJ=i+9pxoxdjCi@`1>|JaEN29KY02)}?wH zXjYqC*s0xqn9;tPomhGNw^3-+c?e*mCOwM#g^+@+4M36cqlghxjl{pRFCo+X`^;NX zfnY4F6BwQB&XqG>r?a->Y0TjVQEnDS^kh^E+^0`!$!|fNOM~515>=yyt0?}B0~P;f z*6!bwP?6bo;d<>C0`JooWHln@MDsI`OGU=#Gnhbb#O%kTWA-2E$#uk6t~dfuIdK3U)eKtQ0EFR@C~=ZId(qk^W**ocnVsoVLt1pHOiGh3EOiE z`CqwCsaLMEP_Bek1@I*w)KvJ;vVta_R+w4ktMXAMaC|4uAc?f&s#baKKt1Po%36T0 zzzw(4M`65FT+M}g{Rt?J{YKdjqY!&_KALBI$mppvb%1&Yf$}HAF3AUBHBe#%>ne&a zQSQGM73F(<1%4d6w@wv34nx>@frIb%EBhT(Sl%Q8z_ypLbs2xT5W(ksW%a-(Q?OHi zcf*@F_b%K#-+-IEum$l7_znf$6X5ck8<*iP$f(eojI&jVn)kafRF13sdyjIHMzMnn zrr|1PC_%*AisDo#p*LClpM@K3JY-IS5KiPDVW@?Kny?|-F?chwd6 zrk8MjyjOb*RE5st~LMRWo`o5j_p%IwY< zrO?HtLJIgEs$k2M6TlHzy$B>&aJ-w)2$vVyJXOkZk-D)D(V#n!f%g-D;To%h2z&6N z#r)e;73U;h13bY=l6KX=&k>&(L^7Z2vmil9nwb6U!Y=GXBw#+OpkGtYn@AN@x4lT& zFy0nb5sN!5{s)D(JH6W5Wvy#p{duKhIqU;i# z8?Awa;(w6+6-8KLMh<1l{1uu^N%TrZ0`X{iOd=Dgin>-TpPQ&3ebA(+U3p-GcK1Om z^rFf0zq(b2+FXftEznz*==lw`WTRtbF#%JJB9p}OXg?~P#!<4+|H*j1PRik8(lcKKwriaQo`Wj$Re}qa0Y}TCq zOk8;KKN_P9DkNCHZqzVSbY+~gB<7pE%3c->Zd1;oxUcIpckY=4kCU%)S0HYxy>m|J zjzpSjX*B2zBDK0YQkb*Nj@O$4Qo`_8=tNf5-SoZtNx{FtXtOsWe7r!;(&JIaXvVX6 zOwP@3QN+L}Mv@78$d$sIOP+Hodu%bb(5UP$$gejPi%c{RHOMyDL#`?_X?L9u(@f$T z>msg6#(8VcMdf@BqzdrhcXDA|=NV9O7m6It(}+_bgT9ZxhR}8y+=s{ST-Z%c<_#21 zumJ)5O>lly`vK+jPk>R*Gs;O)c#cS+wKA+96hp2!VMxyQt59G*2zEd-<*!iX%6pv1 zBN^p1D`$<2`F(Oj)k3p_0P&AKFhb6;8ok+#a*m#8`$kriS)KQpY&};K`onWH8>X2q zUIS6~a^cR5NE!$yga_ITLJxigPmy0gRW!Q748xRbJ6buP$P4SJD1z2PDmk)G=kW=U z8!`KH4j=+hYCdzi!D;5|6x6KutYbNZs3*-<99;n-kCjlmIv7pw)Y{>%I45YqWCC+t zWo+DtP;E9Y?fZ`8|w)>N0NSoT}8fs4XAD6{cp zWOV=1q*a9nt?OXrdKsnUz2x3hs1FeB1HgT`6lL;>aXPuOJM|{{>7A^@w#h0Cv&XBZ zr!TSetD#@A{w@}_b1l0j6mw|;e&|FPFlg8^QszA zCYIg%XPFDn?~LmIoPlgiu7CR{CfMeuW?iyec~sv$Ag|58hLSGH>f(MazLJuh7NFq} zdBQ^Y15jq&?P!dt!SiG)%pqXC5YB5qK&G=-WsK=)Xsg~}UokiC!n`JyfhQBNXKL+;Y`CLq*K@^YhnosxC# z;LZFJvi`&IOha|@*Jvm{mIB;N=71cMF~&Bo1b1K0>#Rw4`PJhSCNU;X|9iN}X0pzT zSO$kX;rRy_pgC)(G2wU0 zIfp*PJ<>#Qy!Ng#Ed@83wMs@XmWR|CM5oImPC4`@~=sb9z;b+eE6E>1%y3jKq z<2i`WKIU)EcFkZvKw+aAK7=63T4m(R!&C1%TDfMTL)xg^ zjqo%}IGS7L1e_DtCOX=Fz&~2!m(s12F6DT0_?m)m&V9@h2jk=;#H{ZZtgMVyU66ZI@QegIU`c_$)dtroykD3he}Gi#2ZToLb%O*{Y4z! zL=<87Sgu-A%bK3{GW$r&**-WtzY?xA9u~QhEzHqM<&Az5n!V9%rtfjJyBlRCZ<&by z)*RCS=T@5$nP-<3mnqM$IUG?lQz}VJT<@VWWtYR*a3iIlzOVg2HFd->VI3RUSAAU-5SP0c-Q@yg4?Ww$2vHZ(z}& zZlu_0I@tU4?1j^za7Q!{*EJHBj^Q>hSLWV6IMM#U{@_;56%!XIrW58X*SA$+{^xqp znrojh{dvmxD%ziU1I07CK8156X*^+_bk`Angd6RKGQ@0ai0tk)juCHH>xrl0p*l6h zZ+TPi)dfHBPJANS3#HcRN(NGaSS%dVDH|z7r9i4gBZMXnZxgt4J4VyQ)7%vtvdWLfE)S;vB3c3C4R_=Yd_&uI~1gEZ|?VK?zW18m7 zF4B~yQ;}!SBl-cCUM?4bZLTvXu1&sWFIHZ$`@6W94qv9|p(k=z@0@r>U-*lm_)q`i zrJMMBt0-e(jd|Ir3{ZUL4PQ0CvA^3U#3-Mqzg(~V#|z~L4G{Upb(66Y`@D%Vj>o(7%mWHS}Jg*XbDtCdqP>zj!NDU*=S%&|$9H$wtK8J%+5 zC@nl;FJ%;k(+>ASO$p4*w_PN~F7W%k4ot-cXf7)uZ=+?!1+WP5m~K#qSPYUl?vp1;7gx34-TTJMS$BYx?%}gY8f%}n&$?|vzBTj&x1cw z8|3HL>p9cutWm$s+g%Hdb+E*REYO`_gr?&;K3OGF)0`{o$^Np$Pdbb%pAtz-gS}2Z zOrKIj9*T`Hvj~88$W}yu%V`i>P%_1L5|-~CZ$c}>dkB*`RYeZOs3fH0abQ*<9A1v? zy?%csuEB})*iH(RsjWa%Wm-vDd46eOQMJFQ5DxOXD#$QPJa{|yC6D|#sWXV0U5Xm0ogYxVp$YKiGl;~7LQ8-D)t}t9pz5lnekA>&`u)3;*orD-P zILrsNq{g(6eXU;k@*0%)-)#3KRT-zSmOK|ryf7OfqB-qD>=9?Jo1eqH=`5>I$I2 z=PuV14AVV0!*gYZ=jp_Yo;j@RD%Y=w0k}z;-B*PI@f+3bHhTpM@HbJ53P=>;?x-cN z6rW2I#7bqgmQb}jE+uE{{0xF*+)A@o$7R;x<1#OrSP+RJ4PCr3Rq4%MpVwEMUo^$h zAQELlnT|a#E`qy@C|>7J<)Ek{&^GNYu@82aSK#KHT4vDdZ<&u#CemEe_Vs=J;S_ng zC)Z2?O!O@8KVEW>#GZKE_ErVjmmW*9i|Nk z7Ham8K`9KCv1)GGY9Yq!F44WqbnVT0w$+nk>@f106=;*t`N!@yl4rjW_{p=^V0Lo95Z-};5FJr~>z|Y!=iA!X$8#&8srdMSt`#6#>p5M1 z#M6ieXf@q=OSuZoho_mY)ENEs9Q`tN`xP4$j6a zsmgRSs^yE)3{m6jaC~7IbQi*pxN^Hz9Z*=R+@{?#k14H$cp-eMTo34Df*kd`a-UYMxKufwDiyMZ+Ik9R6 zlSeq*Bl#hGV{#!S1;boN`SdfrTTn)4<22IZcD5@cksjxQMLsJ3jRre1Ba`sX24Bj` zVC3P`2( z{#`j$_(XwAsx&8=M8m0|&iFiy(Zp&vqr8Oox4zM23L3k5beH*RATo;jeLcq`R~zDY zt&|sbhJz?phC`C*){^*c>|1T37b~_VsIMo$MihG;M zSkWcE7OtOa>!vP(T%?6W*}WIb)6qmoD!aflWF*pz)U(Pc1l7ulk-3E_F@?HERkj|1 z%X^7=)+_&vLR}IZk<5sxgnOU7I>ru;&6-*1OT7Ww@0=MNr>8;}(nA1Vj8+L{S4jDK z_=`*gm0RAf)zDwSPYh=`&cv`?X3SIzDE*5zAiOBJQ2rOuEcgWt&A^k&^#~rT?yGf0 zd$hff*C#`$Mb8U$TxYsTl5fd&sWM%|4k2rCzx}+OYeHv>wo=9ETIK6RhI}U#Pco(A z?T_&lN&SlTpQ*9L-M)ijo#bvhkd95tDXtsbDWgv7lC~_adLNcXyV8 zaxfi@6DGEpI^)dx4BEh7ASA^l0GQrrvKgtU5dZw6$!UYKQn!(@2ZYSAx0D%B@>-mt zIYO!*ZMd8*5BJ($-ez0}61UP`+Ctn&3O?~%XB_65os*elN0OaACorJ_mA*SENh~#B3wVWANS8{tc zZ?u+PSFp>7@=$}=+3|H$DRv%g6a%}?BJEH#=eByNZ-9lCMJ}}#lKL(ZQI++iky7EJ zIugO}tY^5Km7yP-?7LCp%f;T1JGpF`avo&=dB3v$>Vs(%OB3aK-Uw)L-;?dl8%?F1 zAu|3F#dRe+lf9DI5#PY1*_DjO$;d-BUO6J92QT$@q%)~#JR+A5;-eWa4|C}s^9I+w z^46hV^MVF_WjGxTj%A^SsrLL*v``-@2^bfPd)$@qYqC;JgEmwbJ~Hsc*LlICIhZ8D z%Nh;#$a(cAbI2I?4cEi$H=%8gu`)?QWc`(s*K1==iR_ABYw-~N#@?k`ENtZN;`=Fy zQc2G1n=WPgQ(S=KfJM=smgeiCn;)pAYj)Ni;aY~=$8d0`KFBs2(R+{nurV+feQTod zw#KWMDfd!kA7do+x5OebSNXzns+MjuFWWC1b*-`wE){2ZH0r+wO?rxAF(F>xF5c*P zLD!3&xQMNi;cT|@vU$q?F|zu%;2P3S{m-GDYEK2Kja{CNAnu-t}HQjeYki zk}Q<(dx)5!38;ur&}zj_7p{f+S{W}|lNawY#q5HaXfFGRDLJ}f1J_qY-StDF;sjrr zTvL`sDSfjeNfFg`hV687nyoS1YYI2oS==C&H7@&l+Ka{|9JF)`e=imYhIi?OI8!Ii z7mooxP)y!ur&p*6O(G8)K75VgMkWv18gu7f;ll1RSy=m@#_l2!SHKnA`RiSYSZGWL zw7`Uz|3n^ipKHX0^QF7dxNMHgbfr+0e`PgXi;C?=ot&5iNos#MNlH|&imI|2h$d!? zY0VYdPNUo(>!-8ybnzI~w4&;*69qVky6CIDp*D%=wU3j&Q{q`hq7~(VIG>|UI2u_$ z!Rf1bmlaME5#GCj2{T4MMH)St%li*6P&TM)@tmg?!`np~xYp#S>!*6LeoybzMBd*mkqie+Pz$QpmYU-~-Skx2Ap^?j7EV8K`eoTCHKc#mJB z=RO=rkJodwa6ztk`D41=rF|tgrfvEr@-=1sUWD4Cm6bcSUJ)DG&$L;IY5#H9LXn;k zLppyItEuY@xMIQ@Vz(J*pPQ8baFc3sst4fbRW(YIVmsyk6hG**HKK{%?M4rZ-%L_{eJ@@tuWKfl_|+?D>xexR1Y| z_WwExXlsgp3K><9Rij`e+}_*yd79~m`CJen!^MlU#>xi?Z)0y_4v z4I0pC^>ZOWrJ5M~BT*F8dMbb1o)MYkQUzNh{4jr z3Qs;lJZXZ`ZX*Z42IZcsTsKe|M}Gh=DA%Do)IZv_Yeb2%H_szl2N=uea36bo>VHTN z^@t2v2O7wO{u)Ndpv6;&s@k^+#+t8i3ioo(-J%^0s_-Hk&Z137Zgz8#>u&){2)YSB z`M%vQ)e$p#)NIhEaQjdcWyG9z)XxF|w@7ob6;9qwIU*=yVd0>5VYJ_sxu*x`(dM{; zS#YnE(x&obo90N?Vja&BPSVH5XY1tsZ4%Q&$9|Ulc797-x1q9%x8Wg(YK+dwBNs@n zHueAX-?0WSIa}}l+~sV8SGfxQ=jW&cM^Fd;myPf(l=@-vHD_}}A^DR3wS6raIS~?j zG1(i9boK@sBf)fEBpvN&3H60L0)72~Kx-r(2n9Q$eLWqKzF=!Gp4zZ9x}hb7mgJsb zQ)^FZFwxZ7*Ba{E5L?>S^g4h@>)ojXiCNj^4h(zTpjlrM?+tJ0%jJ_}j%&&X{GX3< zC>-zVPxcJQlD(b19o^jn%R_x6pv9Vpy71Ufr}_tj{e#Og-OEEgA-ok|ni(E!9q8$b z54NWo`(qs&V(HFU??9xtzp=l+XE2i)=o=1ob!F21%VGoRo`GR1xZN7c^mjI;+LHra zf!<{UIM(5w(BJ@SWPQ!c0v(wR!S-ZpqQ7})sH?9pur$`+o^DOYhtf^WU9rLC>0H)4 zn9JUiCLC$#`Tx^lZfFm;rZVY){(*F4XgJZ*om$$G84L}zZ0K!HW#Yrh&h}*phqi5q zcP1OtebGRqySp*fG8hYW_jL8Pg%OPmcO)|5KxZtL3g9@qLw)gBTla=YG&Ve#>FR0= zMu)n3LY*5lnuSZbZ0c$nWiL|;aGn%+}b-3NHz@*B|18XQt{+KY0O^eeq#to4K8hpcLx)#sm3JE--e#Sa3Gj&kMws%`%>|Ax@E90 zykV$$`M^M;e;^ob?dT39HkgEnl&Y|U9L)}Bk-dMbAAcF+Dp?x^j9|$Kl#KO^`OeE9O zlx}a@upt_5>+Nm~L?iL$!B}UewFmcdEYvw1Ufwnw>+9+sj`z1lmko3`Wx8_-Vc8!f z**mmhav_jpd=eDekxa14+(3o$NQO^z#l!sqmb%YjmYhJjZhVH|$5AZ;Neb=IXoSpFoOe+_&5*lwbOH3CfyN{hxK4g4{JvP5UEPRHU7-D* zc|Alff^VC^;d3X4{^znY8(hTF8ozO&(jwR@7KZsl1veU;?ppJO9mXRaQDhVP?YeQY zqX_@9*d!NdC3Di*EGQ&mXm;Ji2*3NII^}w$9u3fx6sttgJR4DaF3fH1C1?A3%0^y` z3UG$(qG(2Xn-XDDVkw^XSTv)fl@W#=8WEp+Tl;q;60uQ%bqQ_rvWIc4-&F=*LbK2` z)X(Bhsh3Xue@Xk4K~0=7gR9-fvQi?slZ_&-i*z`_xe^ri4*PLzYM@LjH|T7*x=!R8 z%9D3_F|-tu`z-54@0j@^?U$>2-S0sI<6bVf$!OI+QT*d5S60K40>oyiSRh3-TV+Mc z39@f)fpU(N)p|?!JK3^T&jELb4PBGJuk1d99R81=-jw_F3gbWg`H$g@C;MZg;#0BC zgub~o2$4t;?y+nPt(|0Cv5t_dnLXkc@zqjgKV$Nvv#+@hEcjGe?|KWWp;km)c*A4b z9ECk5@6q+J&s*t%#Q@Ohc2~hM1?BL4IG)fA>-PnIc2Z|bzE%7qJ^xmo^JI&-QNp{} zaZ4s-`|^?sm{rQYN?fGD$tde$euuJ(%KU{TRnY8)y;BO{aG$RbrWd$S2Y<;8Ysq|i zu}sIi#*=)@h_=I9S><_3dH-m#f!k=&J`cXfneihu3xST9k(v>l;frZJ{$l$@Tb*m{ zPYXZmo<+%tG*I>r#ENBx)+v{%vzIG$>KMme_e|sVQZTvBjZx|7`71bWxuEo7wK6r^ zo6MFL^8`Es#*Ag(!+L=3xWJuDwG%wAHC6wj?AzqAPx-O^uU48`jjswEf3gfc(~&>} zQqgFA2|Ib|3j$hjMH6bREf07vn22}okq*CX^x3P7Tk02ViruhtwTQUhhP@%*`0TaI zZ!nb0=KMVqd9jUa>+!FjDeX{&YUBq{=ag|a6&hbPZK?5Db?|3AC9bI_ z--|1$9W>`db0M7VcPMvUG5cZ9h3RP6N8|j6kGSH6T2-ztq*73nm}Yz)DpeQTb}f9u zd9mJexe$__GEdoKj=zDb(AM#*7g84DnP`VN0oI|8OEo6ulake;VK7Z(+E7!3a7yWIK6;E;5=|7wBwNXRTohF&m6q@u?J2lf!**d9E$MG9IEHQzS+N5&P@~H zF_eSlay(~V!nvC66p$6J7#d4U;R1L_Ii)!483&oVkmsX)6N+JMn~@hE|kD!i|;v%VMNX@@KdbtpwdT9rmd>-Z?nR zyJK+sw1Hbz+vt*X#us{=E@qdWbIm z3`ZjL2xD`+H7+EIdNi|^QI6vlPE9rop623{=i+Y*VQvMo&NJ}1JrfSXsXGI%_aP5| z-wzvLWpO?dMl(>Y=OsB z^TP#2IAa4af+P*(()uBJ(cqgJOR&jB#qcUnVdUAc8LoqfqY5|C9Gu6|!MFH#5KKLZ~3KwSweq0TO%*2~f0A$`0G7s5^cV(^;F>xaf7r1WJ)u)tTK>~G_A z*O1eshuuMGmk>;_6OVsO*~`fVrh+19UUMsp-s>2t?Ipu)>ha@^?5CpHOc3$6cz?2~ zrG05z)AEhlenn)>Ho4EXS-!lrE$30tSn{7OnwK}XwB!mfe3zYNbOVZt2vR*PmL)!9 zbD+Kx>&@_UOU-j=j~dCw?2_ zPAVHQe^NjCdLyZ(mZeLVP91uXs+wUpo7)%+=WGV~aQdVXru#d{C@a`3x!5o^ z>$`_h9^Hn6Tz#hc2m|KcsV2(60N?IoKJ&!&#u#T!Hz!?ZCOTxUy60)3nd&``WeZXA z+{^Z3t_QGaA>0680agU5`&Z7@=KZ=tWL8HI?IoK$d74goK)I%H zxgUNcIq^s+6&+xY2ohD$J}&+0LcDiWjQDwCMWW+f4z*}!uGiL=&Bfk8Tx*Fa^yMxk zH)RX?)PABcS6G8)tk6W&@yY95OwM(j^2a)?ki7GxAH4w*G8p_?&z=VJbWj($5`GMa z;Gu9QN}AfRi~`a;<=tn-M~{Y6p#%bGxg=Navkf8XyOYf(Fq649zSU5nZbN9D#`@QD ziqMHWgW(QB=RWh2X%crP6OistO8!pQkBs}k_w~&Tn#H48ZCTN&f|<%_pBIZ{$TIjK zCE&5N%Z4}yG)YX_eC}R8B7poxKNCPZsUrlcF)jIJKtzjx0q?#3mz*?BZ z>0+9_!Vi#Ss*8o#e_~=zkv!NN%?yjFuCRiIP`VuNj7IuX8@0?io89jwE{8)Ys=m8X zh<3JoJrwSY<`N8fjuCIUT<4HHm^zqExGSZ1o#E6Ti6G47@K{6s@_OQo^QOH`~Ai@jA;0SwxtD|JIm+w*jsxiH-?KdcAgQmo+@p~)~ zw?yYtm?4j(aVu=qM!TEMo(4TxB;Wq`4!P zn@kVNH(mA^7p)mrTFsqfLRFtv_IE@9Tf>$TZ8VbbnF?rPE3p>S`%JgC3sJ5#gF3@F zM4u~~7d&l(+g^d^Cjz;XxG%-elVFOLMcNlPHk)Hi%Zy*&N<8OOStg@Gc=@B`xtT#-u z!*P_3FW0-BpNi$&LY%a`EFO&FaU*%~7aG(2kM%n6-Iy+I3X7y`@yupj6fP=tX(@Jw zRe1Y;6KwNGWg7_5^@#QWcOIb|oyz(-Tx`CbAvexy9Ye``1238KbcH@+-;PLU5~*m0 ypg}q*g2Ey<7nwkx?~@-Xn&zw{nBIE_GfmQ1 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 z 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 literal 0 HcmV?d00001 diff --git a/pagefind/index/en_bff4246.pf_index b/pagefind/index/en_bff4246.pf_index deleted file mode 100644 index 97965171c9d0e8340d16baf3125b54dc7bad1cd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33456 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 z�-bTvfN{FU9nz8#Qm$vfVNm0dIA!jeh-mHl(i)f^x-VUIJ3kXX#30@fTK41H5jI(y_61dPIKgxsaLsF|Ac;i zf@7kKQwr_a!f8u8K^zb9CQ zm#%r o_c(nY-T_7M3a&P09L`hqg@O(gmm=zQv{~o>0pr1ZLig$b0P%h9YXATM diff --git a/pagefind/index/en_c22bfd2.pf_index b/pagefind/index/en_c22bfd2.pf_index deleted file mode 100644 index a2dfb16a4d4d572d0755a804cc357923bb3cebf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13098 zcmV+_Gu6x=iwFP!00002|J8hFd|c&~x9`2vXVlwyDcrVO2B3` zGm=J{rYUM^vc@(xq1%8+>;QonlF*XCQW6M+gzS>A5C};&3mX;^Hl!@su%s+W_Whry zjK+lD`|bVk!Vh%kspp*M^z+=C2@k~j)(Zvt;N2k=_;P>@lr(>$<-P22S4gIZ7xX#rx+*{3Jd(Fcy@lfQ4 zj|%sTdYJPO`EWhGf(>?Kl}j6hWtR2=jv&u)_PKPE`^!^BH=5}BY6-~owB9WL)v2js z4A?{lXFB9YRrD<^zMJu=pl&)D1Nn#bNnvH^5)FWThMG@r7<{6pXOo&hMHd~fK&Lb4 zbp7;s2g9z!!+CUv@U{r+U3!Dw(`&ez(Rmd*x6xtx2yLLGusT3idR|z+L)TtjehDq4 zBppvZX1~WZfKG+5^1`atJ3T3E27M2Meg)kttQ&>3!yx^Hez5Px1D2&rggXRC{wS=| z4KVWz-9I5bOU&~%v|1zHt0*t*l(0TWm+5u33u_mFQnv|PV?|eJ$gTTm5$&Ku!u}ju zKFtvCrE$iDt_TS04f?jQ|4lfzqLbm@N{^~Fh2;{~&BA(=<_pWMdp|>mG?@p4vtC$L z2BCT!v_$b2nhpzva}OS`!Q%?rN5d5!I-Sm>nILVe5Vjv(`_Ofcuv+O8^h3InKJ7Cn zey*^7My;AZ60w77>nvTMx!U=o=4$8psiH@o!K1?Zns6Pf$>ns@nVLbb6V_JYc~aBl zIL%@9AL(h~ZqlGWEv#Q*MM>yaXp!Mvw?c^~G{v3I(RK76X6t{|OF7$x&n4_Dl~@Va zyTII9NDmo$oMMFYDsz_qL8Zr6=|rFjp-vx=qiC;2(P}UfoYSB$Lj!N%-0c;%$FIR~ zZ8q#US24J-ZxL3Fu$pOg?>)lxxY_9z;l{H|KHn$oI}P)mB|O&!)Zq$ik+AQbDpvA# zmz#-=!d_+6%AE=*x*EGPal3_mS%rqL*=Ukcb#UoKY`0qKvp6KFgPv0l^z2lT7Rd$w z2VPg=@Xo%m_;j&;x<$BuhW7c>ox*-VE*B4{cNM8y zQbo56$I-Hi_kIcuac;=OqVe!_u~rWIy*}z&)$l}OW}RY0YN$v{a;VK^daq6O_ zAzDh0(mS-5G?zEg<8)FD_0wwls<7^@p%duRYE7GV{Jjx>dzy%-uace$HPTf+Iu#uR)}2oS%sr2-N>FrG@o8Yn6F)8m(-op?|CvRsk?POeY1Y zAgpQH1y;S9*=PgJZ)g%$s1}r*!1lM&DuebZO#Lk$+9a%JYlHMA9S7>}p{whtlLUPn zvw~QEM;)EShkQL|JXT#xm(f}u5O|KU-b~ADs9mDXN^sCGtT`cCOA9M2ffuxQ1zm(b zC}dhdJDBuG+@Q^TSgiwSzX9#K-*!W-VoLuXt)UtJ7{50SS>Jh0=oG@VSNl>okG`AAGikx`v72B z7}5m44MTrIR~p^?b$W!_G(Y|r^N*{iS6whLN9fMp>xK0&y4cL#MlEz+2&DDshVM1f z6CUd3RS)22Cw5EIk`QI+0>HBxr*(m!x`b_cfzkQYg>lzOH-S!qEVKg7lZY8B3%)oH zbe>NOv|#S7#c?vXzleF4%ku^Q9?{_6?gPNj@~JMD4#5`s7!~L~VVz2s)k~gvC_szp z3IK67fO(8^!kP!|RtxI_9Ka^5_y(O{QkwKvqfBiGh|Lay zwEly@WSss%pFcD7)d3oV=x(BA!ouzYv_k6?D?#Uic}IoyBU%eaiPCEdyE-~S+uIW= zg!47EG~MrmtFlfD`3v+l%2RtKNN7&{O}d1BLstmvBCW;kFVSDrK|tryPN;>ru+q}h zvEOqAU^~S_X9;U5*lP@=m1-~*EkeOUufph6;ID-({rKxzD|Iva(_>dFyLCWs#Gc;J&G1mE||i&(c=Z^~tHCj}M#Z zabxg4F6|6}7-J~8MS{uGB%C~LtwJOhgZf`CyDD_c;B>J`+Hp1>^W^m3>Mj_g28IF- zFwK=m`~zXHSDpDmV;L^seulO}6TO*k6V98^4_ceX>2_)p);q#Fo|+*WE;!{jcRY?U zUa;a7;H628@%36v)=96cn~s5~cN;%!Ih-}Dbc>-foh|HzT6HArnxH;%?EXCrwx6Vu z`*;c64>NtUGy`XW??1|l``-Xo8~FUAZVSGrbpv}x_7jk&M|#JF_ZoJPsXo)cBfjnflkp{ezgbAElk+?h&M3!I9`8?ux()#C1)|Dt6S+9FBbloYFlSu{69c z7sPQR9Al8?F?vDR4^b~DWIdxLW&%p&UFe%n!wu+w#LUx6bqn_$e#At>TK!DG7ObLo zH8mjLH=9H4p?hG=7YOT2EypYAdin|72eUp`sz08-48#x1ScmoPcG_AG#Ubo1aPhEl zGeyBy?wCHaRXC4ojs#f8b+eB9vaptD2D?Ek$pyg5+6i7+;V!WgZ0!4ZyakUZ3(H40 z32PFD^dk@?umM7VGuf_OUP0fbyQzmY>}kT;Oj~>JX_N=X>Z!;4*dx{KlfZ4WiD+Ka z*tF9R>%E%M-^Q;EU}USQQRBZ^SV`=9Ic7grXMC+4uv4(#Ha!8ZX$Q8>IVy;un;|FT zu>2cfwYPy73nlMjzgms)mlavO%y?M!L`HKf-QrZ6=nO)$8_v@4#7x`DPKHChA!-L)bhBoT2iefdg}v~>Trw68&?&;H zLwsTV-ULg+n8R9jPn`YIb_?rv`YSKDkZxw_nQNk~BK^$76tyOjG2nR??Orrzv8`I& zCVUE5I`+8F0RMua#y7Q?_xgg3e&Jk-ot%QoI|%C^*g7l7avZxWXd^P}ijVGs|G!wc z!!n#mz(_19E=JfcET!&~iL4so49W?q0)Fnsgip{6CFCT88nt^c;0a+pr5pRl(y3@H zyIbScZp7fOsbZak{IIrD?ytyQ(y9D@Wv}c;lhwc^Y17;44ALpbyVCjm!{FU#@ra z?Nb6kZ)4YeJaj2ETa~a@R8X^9FFZW6LYuM*_RHlVy58r=)Fb5=;YFvPI<#_G1M`D( zBWmIf+@K1$@E~|j@YLkHM(S~A~u>Y05F09|ez1&Ov!nzws zYL~8y&Y_f%gIA5K_6Tj)u9|bO7Wyv4{QRIfxVtq9t}$3NXvY0oH(YA8S{ODJHe`_| z3l!+Lgca}`A-ED|R8P50tKuh-ZQ!VBE$9jJqUpDUcI$DcY1_6Ec5NdI_)0^e4oxBN z?+_)?w;B*WY=d?}tTc~3@vS;(v|QK+O=jjCdRnm+EYazRET$KG)GpT<#4^I#P77>| z;t=Q}crHh19c&$fF+umkBUuE4-Hzb7BcR~Wf9L^C*0sVulg`sWUh2KanQn2k2qvdy z-3vx(3u~w_?Ale}xgqAca5h~?Mfc)R+6esPo9QS`VZ(CagSGG^?>x>D~OQ%80wc${_86HaFn(fuk@VjCC7`ns0Mz)RfHDV#ASfuyx3 zhcVK8xR6&2$%lKCBEUIuri53`#=_BEoMPe4#xw*8c*EREJoY=K#y6%8qj8g2fWgYf zKMex%+++2o3B&6Ta&k?wTRTTQQUUoow36_C$uRB3!aCVR0&wyJJfV&KZ)F<(drD~_ zxKc`Uo-aLA1~>*oPs z*Fk2^kw>z z4;ob3PaI?_zf19fze%YHZez1r-rP5qVgCWnf~DMv5$!rWA%7W1A}&|RhBKL1HkpP1 zRY8+DuR*>1RWeRCo{wEuoWp0FWfaMYcY>%7gfJE-qu6BMu%{}&iJ0D*_+EdiUNlk{2@c=*CinUSU#4zQm+SZA;jnL zx}OtVQlmV~;j-ieV{ct!299bY$*&6Q^9s*&YTyPX@Qz87eoi}Wo*7krlAQ@7ajn{# zzpZ=xUo-&Ts)q#rYNWg0Skp#0x#>K^zzXaL_(&>RjERqI% zv_XobnV1(gw($8c81LPMjz%^#TlX9<|Ix6gC{lOy<<{20)a~(G!J9j)GJ_u1S zwQ#NjHNQqSan2jU4${rY7>=;)$XW2pa)kuEmwKu6cU7CMz9+XDRU+XGBB>!8##tzM zb3z>!wz{s^iJZuoM0I>nQ*oyRY8ITOnoD)>R7c~*#-6`uotn>F6*KenGUvCx;dkuTrgguUoQc<{VTOau$Qy|zr z8}fRL>w?(B$6l}VW{J;{H5c}g*?bYRML#e_e4&L4ya?&&5S5SUnRk#n(^&pS6&TqQ zMxoxW$vszl0ioaMm0cGI$I%CKZLRe0CB1uesrq6A>uLl48a5Y_+68%?fE&GO;rXFv z_r)fma=(sjvQ#i0#zi{oVO$P-o8+DTk;G9tX=3mwB{?yeDYFBSiJ^fHX#D8JP$Bc- zoICu%gw;gi1A3rA@pWV(F>*8zEKOwtc?hdgS^>2nO#y3#qZW@$qzf~figUod4vjT< zbmi+jiI=v)*yTYX$@$Pl?a+M)F8yg3pe^+>*OGRBHQ z{+g+;sgxjD8${N9jRv)+ie5!o;apTn=Fx5>bv_c3sr{LyTq{4`sSILrC-NIxvH7MZ zWZ4%{s}t~rDykalYiV&)O{0rWMUmsOCR!HYf~Z@=@Dz%S^SO?L#BLV|`tt^vjXc=P zWr_1p9j~aR?UnQ?AD!Z=^Ktd&45-5{2_`FuI|v7JM-Ykb9UAa1^tZ}d@II#IHWUzk zM(27Jyq(NlUjWKOki!l1d8qnk?Egy8@24Cs3(<8b`3g|)DhS&utaK(cPqu+phk)Fv zXkQ5gk8AKWV)Cjg)*3VOdMQ}NCH8O75--;gYH5`35P@FJH0h`1Xp1xg!S<#AY9gf4 z@BUzrmQ{NiLrr|!X66*+=V`MKTQA0z+vrP`^jQz>@zb=AZmj|&9q78y?YODU7YNY? zcP*{(HqyG90JYZm=`=UMUW9)SGy?bDU}Zh3+Y9NG5I~r21cFJ<(kiq^)juoxhUh)SBt;rD`8k-ZDzNf$|lV)Pf?)ue~^cr*Mi}=(;A@ zrvYr*hwe*lT7a7NS1RcsXZw1Z(9?>(C#ah{v60I*pTtZ%IH1gkxvnmStO4%F7sVpl^| zg*)W(c&Od&uXi~h!Q9%A4^%`6pA+#XA`HS&bIxw&Bw3AIQSGj(sK+rba?|DtM8RJ| znd{>XzJL$t?x_g+aZnAmA4FSPSyhb+$tFLA{q?lTSLcCAUQ6?wkhcmJ`O1*b@1~FW zgOK7&aN@_%h4S7R3ob3L_0d9)U*05W57mOMkeqEG*JX5wKBn0L`N)I%%14+!!o}-O zHx~X_lT#O@bAMP)uGVYeXv*MXYOC6L4w zG{1t5sjHzcRa06Hn^`A~J)%Ln6e<_EZU;m+0q(7V3d~?u|LKP@`bK7S)F>LEYSz-J zsBs|s5kQS^c?ggkTSKct8i$2d6m9hTt12J{{u&y_ibSu`5Ac`sl8cIq9X|kBfT1U0 zg?V(qi)3XDN%y~>LM|NZnd-G-TrW`=grc@_RZjk+7rEuuYt13Unfm6%KPdo#0n|)kw#&9SZpZ+B!G0e`?LN;86rzO(1?VSa<+? zZUcj~p|}`t0%nVvY68`D6|}vof?7fp@zRAAx~|Z?E~)Y}K#bh6h+zXXG4{GgZsXD)-G*h0%Z5V>P& zaA>Ck+qGU=R0kG4(MGA=4dc;Q4N+Q1(|$SuNx4O}K)A_G%k0vXDbeVu)pc{6(($15 zwh$&f1l`q+6FLD~oun(@bLkpZ-7s(4K)cgDjlu?N&>cE)mjG$?)ug#q^gCF*rL?mK z>&&mB3xfd?yw6N4s|CjgwNgRLy|6rwP|`zZx`VXP?{m3`0(|f+-piZl`arM|cyiTd zW-HfAAStxe1LRL=pc8}c5G`fOt*)$v1fLwLptaD;QCc6shy|$HSA-g9leZpnwTvxC zeXz2Lx+>^ckvcYL!jVF{Lc2x$eYiWKk81VVk0XEVKsL2zXXu^dP9|*w0 zb)wP%(~;75hWFO9@vd%CHl>O#pmSiYpP+sZSlrb}ky=_*A9RBbMQtegK25Eke&hvQ z8)`$e82~Jy!v1wrcYHH5qv*y(fAF<^VTk*Kb*3Q}0zptZv(^^J5v$P0B=MJs(6gn6Ku=ZXrr6ctTx}V3(`g? z?kOY=CB%KLw}!j|wg_nBtt<-JGkbs#I)hNx0r z%YoRO1$8r0L+3Z~eKdf+LP1akpJPcCJKi(LbO_%Zso;*siO;7q8a+_D>^p5_eRUSd zbC4dUwyG*mox73lucWm#?qC(IsfE>vG-06))Z_Eh8c#(4XfCR%hl$<=KQvxL^P03* zx&b9a_{nXUa=f{d*+L!l@Fq~)y9vlH2Pa$^gwuTz?SU;#0C!YFH;3p>_>mJJ7;?R5 zq6o1C2YIPR!V5>>Jn5kERl)sO{zW>WmQG+fDiDH&Z(x;n(0wskw~UD!y5(>EKb zvw|(!U+A?8Xs0PU*##p}T?5MgmIffS`6gP$m+*Gc@m}V|)4(2!=yBQ!=HY_3a%%dq zrNDp9)a9Xz;Dw#RE(;x3Ln~{*7iTcR*<$+5r5E;CI`|UP4!(l3m21GS*Go^F74Tvh zpasI7uL~A-2ffV~y*6?){wjqwi{Ndz*cEzE*8ngV)>n! za4yG}PIUU+H%I3GFd`RA^zYZT>}Qa3E^@@RQ09B?k(nTQ0p&|tIbRF5o-%JNyu>;F zj#^z1vdx{$oAuJjhJL_M4ye{_QDv17<*7{j=cf#H*qCP0edU#x37L>L*_P};Ssf-e zku8K{N2gzoPS;Q5k4_2Yd9fZ<$Kvks@?xV(&+1>}$4_qP>KYv$8yFrOn^+s2OckO7 zLz%+H?C8kYhRj4{Xia`1nqL!+jKng@f#hf`l1B<{Xx;c||7g!pZlvGTqWXF5$*{Wc zO=btL=8-epx3|cgY=8D!+waL*kzUWtX-3CgWw>MBD+j-SN@zVKfuYv2a{=&$!U{4mibtj9tXjbYlp^j$oOs+4<=O{VfP z`@LMJqbL6^2{)NeY0Ud2=IK;ykG{PC_b@1L=3U4x7Tg`KHuTW%_+`5~zC!mk2=rkt zK+K24pC#-UG`UN+^;+Z(8PElJZ3)5PvT@00Q_OnHT{@0r`CRoyPI-dwgjz#F_Vb%3RCAF7m> zduX%cz=h>ChS0$^%08|S&_=06ra0w{_JLSlw&^O>0Gg69dBI245Z4_l{Mhcp~d=9^wUe}H$kV0 zNeqdmM`Ph=Qgz7}$6WuUk&LCHa(D;*haMbD4J6{ZLAhm(D!Hh?_i}Ad4#>x{v)dqv zukeVChm#pjjJJZQuV{>i(t{}pdWXK@iocJjbD9~BWpnvBi?!@#m6t|yA{_}Q2GcoB zl{SgW_jD&0Hi1e!Ro?kBm&$b~R~;pI(k5Nc*LP{*9SDv91qESpGYRJSxvcj|pI zK&wAKUVfg3Sq;nLP6tvjYFIXw#F0hy#x(1A^nC7zx4w8&g9a`zhkML`W(2AZ+s7w!Dw%<($qm+Hc~## z`J0(mNJ3@g3Mol}pd=|AzFLXm`h=O@DIJH1kqy=j_{|Jd&WGwYUn{Gl3zbyfn$P~-5{C}J zbL!-)aK7CgbQ1;-u)To3?BW-e@cVyITDu9!Sh!<*p@L2l))1?w$A$fEeJ_!{&;4)! z3f?y19tJo)oswtwbkI}KL<>2!Vi!C4VhWe*p!O=T(EEHNy@PMaHDi}^rQgen>vOuy z`R7i3=@);uf#kyaGNjRs>6O=X@|_NOD~jK1bzh63?1;0g$$N%Qnx}`EX)Ya9+mlm+!uN37Eb$2PM())S{lxk7UJC`<26{`Vc zH8+-)v5iA-k7PJZc#Y0c{Bo$Lt9yNSSI;`>B4|^P zDr;Bgw?wkQG9_f(x3RmYXKh#av@GJg|H8HuM{s6o(VjJ3>$|$y_QL&|Dy^xS<(lg5 z%e2O>r-$)fDYp?Cm$hndbt7!9Mq!T2g_49rVf-WaRaZz3DiwVw9ErrFaaLDs!-|#Boaa{ns8cTX z4;uY&B0i9sMbdx3j7~r@jM2A7HR@q$NY=}?1!g2$>}hF+-M`Xe>|q%?&rHhXce7x3 zvg0Lhv*sLi&xo^9>eNrt#}&>-2IHeK36QF4->WGcF60NbmlJB%UXFKSwli&r9ei8q zP}$g@QwJmc6nUdU4o71VY{^uMo4Zdp&VFNI*EA#c%w3W}m1DKmI94|(r26>kj=BP6 zfapsUV)~Ax?`q9Ped+Wt0=T4tVx=m!>no0qe1U0^m=@bwswZ8xhXO(~4bbnKUO)(mKud(b%Z!P|*jc6l-b66-Fz2*Y1GpcDYkT3L=UY)i7NlzM7uLCH@(65IM#uD-z zHkCfIz>SDKb9t?etw}RKU21dh)i@5O^V3TGI9E;S>wAxAWCxMmIa-buR%nwDpDs2^ zriT;y-{y-OE)7yVIx7|^6+EZ6k0-+!iBqQtovsPQZMk@CRJM1B%9sW#o*a;_P6thz zk*U7)xLQ|ouN^3LKtH9Vn5x4)RckfbF&a*kAMLLVi14M7nk$`Jjqgw_2UyCLpi6_! zQAM#>$x*`i!ff(7;y6unlTA z^8I_yYsdw-Hqg3SlvsrP=t4)(Y+H~ACa-3D>h(5>a4w%nD*;z8o!qIBO2oq1l#Ita zM8)H_-aG-UW?v2w&M%c~e5lOb1Z3(1B^Pj}RYeE(R$8JD1H17BKe<=hv=!txJlcil z`|QQEt1FC5#l$G|HA13%DNcXD>}Yz*l%wbC`n1rQjUlEi>vOL!O^n8KnM8P^T&q4@ zng}^XSXtI5uevK(2Ghy%CGDRZDvs)is?_CrQwvXGRMV@ws6OlBd_$iHYpuP-rhQ!X z=-{{NpYl^@K)x*?FW{+{;NNE7o3F=#&&PzbQn}=|xma(Vudyl%EqS*#{qp#=8ba=l z#K8GFV201llVR&k)v zjh&+ojbADT{s4nUjqSfxZ^BQusZ2I?ZarKGZ1$8M=FT&oi1-w3u{cc5_%(3swj8PT+)|ej>ycK z>5L{oCZ36vS?S7;n}whq+4(flIM4B$IV!UrJSJb2IH54%2mclZYvv* z%^0#x3AJCp8?MqNR#Jm6N5}z=j#%{w$FC)BL;=&z z^B>Y}*+?c|)XtE-%|t<0sf3_PI`j6~STt%JI_5E{ga%ZH{5BQRu>Zv&Dh_6y28g?| zD6y1+(ThtR(4+aV@lov_O)hw7X*Ocg1rPMd*GrPJ9Tdx!^NaVg5?uMPQRmX%a8jlx z&2iMMYeDa7>Z|-1Cm)oO_3O`oon|KHQc$0R(kWLece~6LN(lLNgouH{|BdqIsBA_M zpEj)pr5_bKAE%a5dw*H`7E~9MhnG|GYhG<_xQ)k$xcfXI%hQXbw`s{nOH9e)&yiTQ=FIEtzM(c^+q= z-ZYUPH!>~eAq(eBH}T7HWa4GnR~DoAK4Ch_c!`bQ%Vr13=qjn|+~CrzmxDhWiIpqS zuhDw5eI^!*nm0V0m4-KRgC%d_>{468yy)Acl7v3TfWv^6sh*%oYz!I*5Sej0n8jm} z&J`6K_sKhuSJhCru-@S>SQ$phhqHNhzI9BxK`Tt%o|Bmtxs(5gW~Xj*tS1^$0sgV7#_|;-x#@DUwXTaZCtLPjXYgyz$^46D~*)Zi|1nr_()~K;k=^B znU}uRK)Fyq5Yp6BiT=Z;f`B51Oi{YFXmQ97hEv1FNpfq>&kvTiw|}EimTY)P5kkJ` zEE|)VazEPyw)u1>9+?gEtUabZ8|HGEVa3p!Qz{k@K86gp#wE*HyJ(5#GBd_7733GW zlsEmBMy|k$SF(mm#XYI%hxV*aB-2ZpeB5S~wSdF2a-B#${i5ux9;1Sh_fKXf&S9BO;lWMOH41 z$kM9yT}>k0El)#=n|#IZsGeD;?#|BNocD?!-ky>(GIXYOe*oZQV^9Fyj z?;ZInmP{GnR;F2xs>L%OsKWh9EJ)$Nr2G^gjF{%VeUsSZ2M0Q@a;;qANh zNuU{LWMx3tL_iXJ)-JZhxZp7uR$4TQzu>Trgjfq%%8;j2Ax9(_*)=sG~Dm0 zY>UgIs!H~oE@VVxJ%_6iRxloGLo_>S8Dqc&->kNC=;7d@p)4=`kwio3)KJr0fq!}4nAA} E0GNvDv;Y7A diff --git a/pagefind/index/en_d51d396.pf_index b/pagefind/index/en_d51d396.pf_index deleted file mode 100644 index fe4f06512e96ab63f29bb5b1faad9cb7ce4d8bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32588 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 diff --git a/pagefind/pagefind-entry.json b/pagefind/pagefind-entry.json index 874b5ca..56d1337 100644 --- a/pagefind/pagefind-entry.json +++ b/pagefind/pagefind-entry.json @@ -1 +1 @@ -{"version":"1.5.2","languages":{"en":{"hash":"en_3d68a5da7d","wasm":"en","page_count":59}},"include_characters":["_","‿","⁀","⁔","︳","︴","﹍","﹎","﹏","_"]} \ No newline at end of file +{"version":"1.5.2","languages":{"en":{"hash":"en_e4a5bf745c","wasm":"en","page_count":59}},"include_characters":["_","‿","⁀","⁔","︳","︴","﹍","﹎","﹏","_"]} \ No newline at end of file diff --git a/pagefind/pagefind.en_3d68a5da7d.pf_meta b/pagefind/pagefind.en_3d68a5da7d.pf_meta deleted file mode 100644 index 7487d187f96e112b3df313af97b13f42c7052d0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 682 zcmV;b0#*GViwFP!00002|1Fd|i&jYxhWTzg;4TZxCa0F&jZ75L)Aw$~NDzz+O@yJk zyV^NAjxv5;Ktb{IlK2BOP$N?lLD58ifCge>q96vQiiwffcAezF)7@3|)?39ngU6{1 zTX{XFe3Qgpvsd2Pf9(Wqt(OwAaiY7&q)-<_Fge_iyvYee_nN6-Kp|oAt)UVo*&Ja0 zkwc{_<4kqQejz?3gkN?JyabGa3vz zhX@PS*nE->rjJKaGUz_T{3WZBItGgH`yobwCb|Oi%d9HM6pV(o4{U4Jifn+{-+Y^0 zw611;-q2^4tQRnQGCuZ2rP|;zMj|h5we=0h$|x$sZ~t=(E(mK3tUY4QBvlH&d(kKa zUs7+oBm6W=pOu2eN%lNZly&k`b}A-~MH={P*JurT)5mUuyUSRcBba{YeIv9v5iD+u zlB#i0!{ooQPLbLQn7-nPDBCAfeS15OF9)Z4SmVi~abB6+J>+dH(kfZ^?VpBPDKC1{ z?PHs$&YA>F4zPYLN~%?7pT;dW!Wj><&n!`7B^APA52K~N^Z^!^#(p%StDC#?)(ZRT z#P)J1&4p5Q6~8*pM?)&Zb{l>jLhSRZ^7*nkoL$mZ>)g~b!LIn|Vm`AyoaV03q+YCk z9h}e04Q#J{T_^NuMZXSCrVAU?{4qp5`c>s2e|d11U6L}EEU#W&(QvB%B8K)|$IT@z Qhvg>y1a&e~kv9YY0L|h=j{pDw diff --git a/pagefind/pagefind.en_e4a5bf745c.pf_meta b/pagefind/pagefind.en_e4a5bf745c.pf_meta new file mode 100644 index 0000000000000000000000000000000000000000..d718fe75ab6978c13c37e6f39f7a078f464ea717 GIT binary patch literal 675 zcmV;U0$lwciwFP!00002|2306tW7}>$8+yJCodt9h~|vYQ4rzm_ijX`QYkf(m))J+ z_YT)bu8V?%xIP-Cf&!IRNoa_gLNpqcgqCPjV&Ber%}IVUo0<9lXU=86k@9d6*D>P# z#EzAkQIc^lw1oB#C3WbNchJlUZT3mV zPFIRT2E!t>Co6h^(&ke4Sw)=@tral4OIc@qiV~WpA}doc>0owgoKSNXEi_*%8p)Up z8m9j!>xB2{yEm0=sg!#MlMggg)=o+VJAV)gX??GtJzPRWT)|z00s;N~M@IJ}PJkoezD84%%;| zhkF!O!t^mU(n$#wp?ObJ*SJi6G^?=OOxHKlq6WG1Qea%=8u9q+`4ck3F@_j!-(ICsWFrmryYA=9v>cZ6^dG`t JCNMh$005+GL3#iH literal 0 HcmV?d00001 diff --git a/reference/example/index.html b/reference/example/index.html index 6a2620b..952c66a 100644 --- a/reference/example/index.html +++ b/reference/example/index.html @@ -1,4 +1,4 @@ - Example Reference | ISPmail Guide - Skip to content

    Skip to content

    Example Reference

    Reference pages are ideal for outlining how things work in terse and clear terms. Less concerned with telling a story or +

    Example Reference

    Reference pages are ideal for outlining how things work in terse and clear terms. Less concerned with telling a story or addressing a specific use case, they should give a comprehensive outline of what you’re documenting.

    - +

    Last updated:

    -
    -This guide is maintained by Christoph Haas since 2003. All content on workaround.org can be used under the terms of - the -Creative Commons BY-NC-SA license. - Penguin image based on AI art because I suck at drawing. -
    \ No newline at end of file +

    Last updated:

    This guide is maintained by Christoph Haas since 2003. All content on workaround.org can be used under the terms of theCreative Commons BY-NC-SA license. Penguin image based on AI art because I suck at drawing.
    \ No newline at end of file diff --git a/rsnapshot-and-usb-drives/index.html b/rsnapshot-and-usb-drives/index.html index a6c2368..bbb8881 100644 --- a/rsnapshot-and-usb-drives/index.html +++ b/rsnapshot-and-usb-drives/index.html @@ -1,4 +1,4 @@ - Backups with rsnaphot to external USB drives | ISPmail Guide - Skip to content
    Skip to content

    Backups with rsnaphot to external USB drives

    How long has it been since you last backed up your Linux system? Let me guess – you tried various backup systems and hate all of them? Let me show you how to use rsnapshot and an external inexpensive USB drive to back up precious data easily.

    - +

    Backups with rsnaphot to external USB drives

    How long has it been since you last backed up your Linux system? Let me guess – you tried various backup systems and hate all of them? Let me show you how to use rsnapshot and an external inexpensive USB drive to back up precious data easily.

    +

    I’m a sysadmin in my day job. How could I not care about half decent backups at home. For years I have been running Bacula which has served me half well. An old AIT drive, a couple of tapes, my trusted Adaptec 2940 card and a PostgreSQL-driven Bacula installation worked moderately well but became increasingly cumbersome and fragile. The server (a retired desktop computer) crashed randomly during backups (some ancient SCSI component started to die). Or I forgot to change one of the three needed tapes (as I lacked a changer) in time so that the backup job timeout killed the running backup. Then I had to declare the tapes as free again because cancelling a backup doesn’t make Bacula free the tapes again.Or I played with PostgreSQL and inadvertently killed the director process. So maybe one backup every two weeks really ran through. And restoring files took minutes until the database finally got me the list of files. Finally one of my tapes got stuck in the drive and the drive refused to eject it. Of course the emergency ejection screw did nothing. Enough was enough. So I thought I could use an external USB drive instead of tapes but Bacula did not actually support that. An ancient shell script (vchanger) should emulate a tape changer with USB disk drives. I was too far off from KISS. What in theory sounded like decent hard- and software failed me.

    - +

    I decided to spend 50€ (the price of one AIT tape) on a 500 GB external USB disk drive and learn about rsnapshot. And in no time I had a simple backup running where I didn’t have to worry about a huge index database and could instantly access any files backed up. What I did:

    - +

    After plugging in the disk for the first time I ran “dmesg” to find out which device the disk was occupying:

    [219991.641225] scsi 12:0:0:0: Direct-Access     Seagate  Portable         0130 PQ: 0 ANSI: 4
    [219991.641765] sd 12:0:0:0: Attached scsi generic sg4 type 0
    [219991.642462] sd 12:0:0:0: [sdc] 976773168 512-byte logical blocks: (500 GB/465 GiB)
    [219991.643080] sd 12:0:0:0: [sdc] Write Protect is off
    [219991.643083] sd 12:0:0:0: [sdc] Mode Sense: 2f 08 00 00
    [219991.643085] sd 12:0:0:0: [sdc] Assuming drive cache: write through
    [219991.644964] sd 12:0:0:0: [sdc] Assuming drive cache: write through
    [219991.646599]  sdc: sdc1
    [219991.694834] sd 12:0:0:0: [sdc] Assuming drive cache: write through
    [219991.695212] sd 12:0:0:0: [sdc] Attached SCSI disk

    So the disk was at /dev/sdc1. I formatted the disk using

    @@ -85,7 +88,7 @@
    tune2fs -l /dev/sdc1 | grep UUID

    which gave me

    Filesystem UUID:          44449456-2b13-47df-bfcf-9c5eedf3b287
    - +

    You will want to have your USB mounted automatically when you plug it in and use it. On a server there is no plug-and-play like that by default. But the “autofs” software does that well. Install it:

    apt-get install autofs

    Edit the /etc/auto.master file and add this line:

    @@ -98,7 +101,7 @@
    cd /var/autofs/removable/usbdrive

    You may notice a short delay while autofs mounts the disk. Then you should find yourself on the mounted USB drive. Type “df .” to see the filesystem. It should look like:

    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sdc1             459G  198M  435G   1% /var/autofs/removable/usbdrive
    - +

    Install the rsnapshot package:

    apt-get install rsnapshot

    The default configuration file is located in /etc/rsnapshot.conf. Edit it. But beware that all elements have to be seperated by actual Tabs. I’m using VIM and in my default settings I used “expandtabs” which automatically turned my Tabs into spaces. You don’t want that.

    @@ -118,23 +121,17 @@

    And I backup the databases:

    backup_script   /usr/bin/mysqldump –opt –databases mailserver mysql | gzip > mysqldump    mysql/

    I have the MySQL root password stored in /root/.my.cnf so I don’t need to mention it here.

    - +

    To make sure your configuration is correct run

    rsnapshot configtest

    Fix any errors until rsnapshot is happy and shows “Syntax OK”.

    You can simulate a daily backup by running:

    rsnapshot -t daily

    It will print out the commands that rsnapshot would run.

    - +

    If you want to access the files that rsnapshot backed up this is as simple as could be. In /var/autofs/removable/usbdrive/… you will find directories for hourly, daily and weekly backups. Since rsnapshot cleverly uses hardlinks unchanged files barely take up any space. You can just browse around in the respective subdirectories and access your files.

    That way you can even buy a second external USB disk drive and put the first disk off-site in case your house burns down, get burglared or your cat pees on the first disk.

    - +

    Of course if you lost the one external disk then all your backups would be ruined. So I suggest you get a second external disk and once a month swap them. Depending on your paranoia you can lock them in your bank’s deposit box or give it to your mother-in-law. As opposed to other backup solutions you can just use the second disk without much configuration. Make sure the autofs knows about it and plug it in.

    - -

    Kudos to Jochen R. who recommended rsnapshot to me.

    \ No newline at end of file + +

    Kudos to Jochen R. who recommended rsnapshot to me.

    \ No newline at end of file diff --git a/squid-acls/index.html b/squid-acls/index.html index ae70579..749279d 100644 --- a/squid-acls/index.html +++ b/squid-acls/index.html @@ -1,4 +1,4 @@ - How Squid ACLs work | ISPmail Guide - Skip to content
    Skip to content

    How Squid ACLs work

    For less experienced Squid administrators the concept of ACLs can be confusing at first. But they offer a great way of controlling who is allowed to access which web pages when.

    - +

    How Squid ACLs work

    For less experienced Squid administrators the concept of ACLs can be confusing at first. But they offer a great way of controlling who is allowed to access which web pages when.

    +

    First you need to define certain criteria like accesses from the marketing department or accesses to google.com or need to authenticate. There are certain types of ACLs for that purpose. The complete list of ACLs can be found at http://www.visolve.com/squid/squid24s1/access_controls.php

    The syntax of an acl is:

    acl name type definition1 definition2 definition3 ...
    @@ -83,27 +86,27 @@

    Then the ACL for that file would look like:

    acl accessess_to_search_engines dstdomain "/etc/squid/search-engines-urls.txt"

    The quotes are important here to tell Squid it needs to look up definitions in that file.

    - +

    Defining the ACLs alone does not actually block anything – it’s just a definition. ACLs can be used in various places of your squid.conf. The most useful feature is the http_access statement. It works similar to the way a firewall would handle rules. For each request that Squid receives it will look through all the http_access statements in order until it finds a line that matches. It then either _accept_s or _deny_s depending on your setting. The remaining rules are ignored.

    The general syntax of an http_access line is:

    http_access (allow|deny) acl1 acl2 acl3 ...

    Example:

    http_access allow accesses_from_admins
    http_access deny accesses_to_porn_urls
    http_access allow accesses_during_lunchtime
    http_access deny all

    This would allow accessing from the admins (whatever that ACL looks like – probably a src ACL pointing to the subnet where the admin workstations are in). For everyone else it will deny accesses to porn URLs. Then it would allow accesses from everyone to every web site during lunch time. And finally all other accesses would be denied.

    - +

    Often you need to combine ACLs. Let’s say you want to allow access to google.com only for the back office. This combines two ACLS with an AND. This would look like this:

    http_access allow accesses_to_google.com accesses_from_back_office

    If you wanted to use an OR and say either accesses from the back office or accesses to google.com are allowed then the line would look like this:

    http_access allow accesses_to_google.com
    http_access allow accesses_from_back_office

    To summarize: AND means putting the conditions in one line. OR means using seperate lines.

    - +

    By default when you deny access the user gets the error page that is stored in the ERR_ACCESS_DENIED file. But luckily you can define your own custom error pages and display them when you deny certain accesses. A simple example:

    acl google dstdomain google.com
    deny_info error-google google
    http_access deny google

    Put an error page into the directory where the HTML files are stored (look for error_directory in your squid.conf) and name it error-google. If the user tries to access www.google.com the access is denied and your error page is shown.

    Careful when you combine ACLs on a http_access line. Example:

    acl google dstdomain google.com
    acl admin src 10.0.5.16
    deny_info google error-google
    http_access deny admin google

    This will deny access only for the user from the IP address 10.0.5.16 when www.google.com is accessed. As you can see I have combined the ACLs admin and google. In such a combination the last ACL in the line is taken into account for lookups of deny_info. So it’s important that you define a deny_info for the google ACL.

    - +

    Usually when a user is authenticated at the proxy you cannot “log out” and re-authenticate. The user has to close and re-open the browser windows to be able to re-login at the proxy. A simple configuration will probably look like this:

    acl my_auth proxy_auth REQUIRED
    http_access allow my_auth
    http_access deny all

    Now there is a tricky change that was introduced in Squid 2.5.10. It allows to control when the user is prompted to authenticate. Now it’s possible to force the user to re-authenticate although the username and password are still correct. Example configuration:

    @@ -115,10 +118,4 @@

    The second http_access line would force the user to re-authenticate time and again if he/she is not member of the PROXY_ALLOWED group. This is perhaps not what you want. You rather wanted to deny access to non-members. So you need to rewrite this http_access line so that an ACL matches that has nothing to do with authentication. This is the correct example:

    acl ldap-auth proxy_auth REQUIRED
    acl ldapgroup-allowed external LDAP_group PROXY_ALLOWED
    acl dummy src 0.0.0.0/0.0.0.0
    http_access deny !ldap-auth
    http_access deny !ldapgroup-allowed dummy
    http_access allow all
    -

    This way the second http_access line still matches. But it’s the dummy ACL which is now last in the line. Since dummy is a static ACL (that always matches) and has nothing to do with authentication you will find that the access is just denied.

    \ No newline at end of file +

    This way the second http_access line still matches. But it’s the dummy ACL which is now last in the line. Since dummy is a static ACL (that always matches) and has nothing to do with authentication you will find that the access is just denied.

    \ No newline at end of file diff --git a/understanding-lvm/index.html b/understanding-lvm/index.html index c1bb28a..f4ba0b8 100644 --- a/understanding-lvm/index.html +++ b/understanding-lvm/index.html @@ -1,4 +1,4 @@ - Understanding the Logical Volume Manager (LVM) | ISPmail Guide - Skip to content
    Skip to content

    Understanding the Logical Volume Manager (LVM)

    +

    Understanding the Logical Volume Manager (LVM)

    LVM is a neat feature that some system administrators still shy away from. But it’s really not that hard to learn. And these are some awesome features you get:

    • Create a larger (virtual) disk from smaller disk (similar to RAID-0)
    • @@ -82,7 +85,7 @@
    • Replace disks without losing data.

    LVM is just a thin layer of software between the disks on your system and the partitions. On a Debian system you just “apt install lvm2” and you are ready to go.

    - +

    Three terms are commonly used:

    • PV (physical volume). A disk. (Or a partition.) Simple as that. An SSD. A hard drive. An SD card.
    • @@ -91,34 +94,34 @@

    A diagram is worth a thousand words so let’s use an illustration:

    Diagram explaining components of the LVM

    - +

    On the left you see your three hard disks. Your computer has found them and made them accessible as /dev/sda, /dev/sdb and /dev/sdc. Usually you would create partitions on them (e.g. using cfdisk), put a file system on the partitions (mkfs) and mount them into your file system (mount /dev/sda1 /home).

    But this time we create a volume group from it. So first we turn the disks into PVs so that LVM recognizes them:

    pvcreate /dev/sda
    pvcreate /dev/sdb
    pvcreate /dev/sdc

    All this does is write a little meta-data onto each disk.

    You can use the “pvs” command command to list the PVs you have just created.

    When you take a close look at a PV for example (“pvdisplay” command) you will notice terms like “PE size” or “Free PE” or “Allocated PE”. PE is short for physical extent. Such an extent is the smallest data size that LVM handles. By default it’s set to 4 MiB. That means you can grow or shrink a logical volume only by a factor of 4 MiB. Using “lvextend” you can specify the number of extents using “-l …” (lowercase L) instead of the size “-L …” (uppercase L). Further down on this page you will find a tip on replacing a small harddisk by a larger harddisk. That essentially moves the extents from one disk to another.

    - +

    Next we create a new volume group (VG) from these three disks:

    vgcreate vg1 /dev/sda /dev/sdb /dev/sdc

    Now you have VG called “vg1” consisting of the three disks. The “vgs” command shows you an overview:

    VG #PV #LV #SN Attr VSize VFree
    vg1 3 0 0 wz--n- <6t <6t

    So you see that there is one VG called “vg1” which consists of 3 PVs (disks). And so far no LVs are using it. We will get to that in a moment. Its size is roughly 6 TiB and all of that is free to use.

    Using the “vgdisplay” command shows you even more information about it.

    - +

    The final step is to bite chunks out of the VG. Check out the diagram above. We want a partition for “/home” with a size of 100 GiB. So the command to create your LV is:

    lvcreate -n lvhome -L 100G vg1

    Pretty simple. The “-n” parameter sets the name of the new PV. “-L” is the size you want to use. And “vg1” is the name of the VG you want to cut a piece out of.

    The “lvs” command will show you an overview of your LVs.

    LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
    lvhome vg1 -wi-ao---- 100,00g

    There is also an “lvdisplay” command showing more verbose information about the LV.

    - +

    Finally we have something to put a file system on. You have probably used partitions on devices like /dev/sda1 before. But now you are using LVM. And the device for your “lvhome” is “/dev/vg1/lvhome”. Right, it’s “dev” + VG + LV. You could also use “/dev/mapper/vg1-lvhome”.

    Put an EXT4 file system onto it:

    mkfs.ext4 /dev/vg1/lvhome

    And mount that file system:

    mount /dev/vg1/lvhome /home
    - +

    There are PVs (disks), VGs (groups of disk) and LVs (fractions of a VG).

    To use LVM first turn disks into PVs (pvcreate), then join them to a VG (vgcreate), then take a fraction of that (lvcreate) and finally create a file system on that (/dev/vgfoo/lvbar).

    Every part has a list and a display command. These are:

    @@ -127,14 +130,14 @@
  • VG -> vgs, vgdisplay
  • LV -> lvs, lvdisplay
  • - +

    You may not be impressed yet. LVM just made your life more complicated. Of course there is a reason for it because now begins the fun part. These are some common features:

    - +

    Oh, no. Your /home partition is 99% full? With LVM this is easy to solve. If you have free space on your VG (check with “vgs”) you can just extend the disk. No need to unmount anything. No downtime. Let’s give the partition 20 GiB more space:

    lvextend -L +20G -r /dev/vg1/lvhome

    The “-r” parameter not only extends the LV but also the file system that lives on top. That allows you to enlarge a partition without taking it offline. This is the neatest feature that LVM delivers in my opinion.

    If your volume group is also out of space then you could add another disk (physical volume) and use “pvcreate” and “vgextend” to enlarge it.

    - +

    No problem either. Let’s assume that one of your disks (physical volumes) on /dev/sda was 2 TB and you just bought a shiny new 10 TB disk (found on /dev/sdg). Now you want to move the data over to the new disk. As usual you need to turn /dev/sdg into a PV:

    pvcreate /dev/sdg

    And now you can just move all blocks (aka physical extents – see below) to the new disk:

    @@ -142,7 +145,7 @@

    And finally you can remove the PV from your VG:

    vgreduce vg1 /dev/sda

    By the way: once a disk is a PV it doesn’t matter whether your system finds it on /dev/sdb, /dev/sdc or any other device. As long as all the necessary PVs are found somewhere the VG will work. Just if your boot sector was written on /dev/sda you may need to re-install it if you change that disk.

    - +

    A snapshot is like taking a photo with your camera. You get an image of a situation at a certain point in time. Reality will continue to alter the world but your photo will always show that specific moment. You can still take a pen and draw something on the photo so it’s not read-only. (It used to be on LVM 1.x.) I commonly use this technique to get consistent database snapshots of large MySQL/MariaDB databases.

    Let’s just say that you have a huge 1 TiB-sized LV called “lvmysql” that is mounted to /var/lib/mysql. Running a backup of those files takes an hour. And while you back up one file after another the SQL database is accessing the various files making arbitrary changes. Your backup would contain unusable garbage. Some files were from minute 5 while others might be from minute 30. Such a backup is unusable.

    Now let’s instead use snapshots. Briefly stop the database and take a snapshot:

    @@ -155,13 +158,7 @@

    The answer lies in the way that snapshots work. Once you started MySQL again the data directory was changed. LVM needs to provide you with your snapshot but at the same time allow MySQL to continue doing its work. That works by a mechanism called copy-on-write. If the original LV would not change then it would be identical to the snapshot. If however the files on the LV are changed then LVM needs to keep a copy of the snapshotted state. The more changes you do the more space for those copies you will need. And that’s what is meant by “-L 20 G”. It gives your snapshot a 20 GiB storage area to track the changes.

    The size depends on how much change you expect while you want to use the snapshot. If the backup takes an hour and the database typically changes 100 GiB during that period then you should give the snapshot at least that space. The “lvs” command shows you much much of that space has been used already. So you should keep the snapshot no longer than needed for a backup. Should you hit the 100% mark then your snapshot becomes unusable and all you can do it remove it. That won’t affect the original LV fortunately. So you won’t break your database.

    Another use case of snapshots would be to try out things on the snapshot. And if you like what you did then merge the changes to the original LV. That can be done using “lvconvert –merge /dev/vg1/mysnap”. But I suggest you consult the man page of “lvconvert” before you do that.

    - +

    Using LV for all partitions used to be a problem in the past. Debian created an ext2 partition for /boot to make sure the system boots. This has become obsolete for quite a while. You can use LVs everywhere and Debian will happily boot the system.

    - -

    By default LVM uses RAID-0. That is the RAID level that makes you lose everything if a single disk fails. LVM support RAID levels 1 and 5 though. Besides the LVM man pages I mainly found this web page describing it.

    \ No newline at end of file + +

    By default LVM uses RAID-0. That is the RAID level that makes you lose everything if a single disk fails. LVM support RAID levels 1 and 5 though. Besides the LVM man pages I mainly found this web page describing it.

    \ No newline at end of file