From 3f5aeebdfb82b395e1e1be4877a55fc0a21a174b Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Tue, 25 Jan 2022 16:27:28 +0100 Subject: [PATCH] change os references --- source/develop.rst | 4 +- source/development/architecture.rst | 4 +- source/development/guidelines/basics.rst | 2 +- .../development/how-tos/kernel_debugging.rst | 2 +- source/history/thefork.rst | 6 +- source/index.rst | 2 +- source/intro.rst | 4 +- source/legal.rst | 4 +- source/manual/hardware.rst | 6 +- source/manual/how-tos/cellular.rst | 4 +- source/manual/how-tos/serial_access.rst | 4 +- source/manual/install.rst | 6 +- source/manual/interfaces.rst | 4 +- source/manual/ipv6.rst | 2 +- source/manual/netflow.rst | 2 +- source/manual/software_included.rst | 4 +- source/relations/freebsd.rst | 4 +- source/relations/hardenedbsd.rst | 65 ------------------ .../images/Logo-label-hardenedbsd.png | Bin 18693 -> 0 bytes 19 files changed, 32 insertions(+), 97 deletions(-) delete mode 100644 source/relations/hardenedbsd.rst delete mode 100644 source/relations/images/Logo-label-hardenedbsd.png diff --git a/source/develop.rst b/source/develop.rst index c3141a2c..7a5f4bfb 100644 --- a/source/develop.rst +++ b/source/develop.rst @@ -5,8 +5,8 @@ Development Manual .. image:: /development/images/ideas_join_the_development.jpg The OPNsense® project invites developers to start developing with OPNsense: -"For your own purpose or even better to join us in creating the best HardenedBSD -based open source firewall available!" The development workflow & build process +"For your own purpose or even better to join us in creating the best open source firewall available!" +The development workflow & build process have been redesigned to make it more straightforward and easy for developers to build OPNsense. diff --git a/source/development/architecture.rst b/source/development/architecture.rst index 60a2d806..a19bef13 100644 --- a/source/development/architecture.rst +++ b/source/development/architecture.rst @@ -111,11 +111,11 @@ socket. Core system ----------- -The core of OPNsense is powered by an almost standard HardenedBSD ® system +The core of OPNsense is powered by an almost standard FreeBSD ® system extended with packages using the pkg system. GIT is used for version control and the repositories are split into 4 parts: -- src : the base (HardenedBSD ®) system +- src : the base (FreeBSD ®) system - ports : the ports collection containing third party software - core : the OPNsense gui and system configuration parts - tools : easy tools to build OPNsense diff --git a/source/development/guidelines/basics.rst b/source/development/guidelines/basics.rst index f5748fce..a17d4a16 100644 --- a/source/development/guidelines/basics.rst +++ b/source/development/guidelines/basics.rst @@ -62,7 +62,7 @@ The different field types in our model system are aimed to help the developer sa ----------------- Ideal Development ----------------- -Our ideal OPNsense system looks like a standard HardenedBSD system using our +Our ideal OPNsense system looks like a standard FreeBSD system using our pluggable user interface for management, which supports both real users as "machine" users (REST). diff --git a/source/development/how-tos/kernel_debugging.rst b/source/development/how-tos/kernel_debugging.rst index 61ec0468..4aeac908 100644 --- a/source/development/how-tos/kernel_debugging.rst +++ b/source/development/how-tos/kernel_debugging.rst @@ -2,7 +2,7 @@ Remote debugging the kernel ============================== -FreeBSD/HardenedBSD supports remote debugging using a serial interface. +FreeBSD supports remote debugging using a serial interface. Since most virtual solutions support serial interfaces it can be quite convenient to deploy a kernel and start a debug session on another machine. diff --git a/source/history/thefork.rst b/source/history/thefork.rst index 84af6027..92ab7711 100644 --- a/source/history/thefork.rst +++ b/source/history/thefork.rst @@ -46,7 +46,7 @@ from pfSense to the new framework to avoid a big-bang approach. Community --------- A thriving community can only exist when people are willing to share. We want to -make it easier for people to join and help to build the community. With pfSense, +make it easier for people to join and help to build the community. With pfSense, this has been rather difficult, as the tools to build it are difficult to use and often do not work in the first few attempts. And since 2014 they are not freely available any more, you need to apply for access with ESF. We believe a @@ -83,9 +83,9 @@ Much work had already been done before the `first official release `__ is an open source, -easy-to-use and easy-to-build HardenedBSD based firewall and routing platform. +easy-to-use and easy-to-build FreeBSD based firewall and routing platform. **OPNsense** includes most of the features available in expensive commercial firewalls, and more in many cases. It brings the rich feature set of commercial diff --git a/source/intro.rst b/source/intro.rst index fa1db226..86c16ab3 100644 --- a/source/intro.rst +++ b/source/intro.rst @@ -13,7 +13,7 @@ how to :doc:`contribute`. Welcome to OPNsense's documentation! ------------------------------------ `OPNsense® `__ is an open source, -easy-to-use and easy-to-build HardenedBSD based firewall and routing platform. +easy-to-use and easy-to-build FreeBSD based firewall and routing platform. **OPNsense** includes most of the features available in expensive commercial firewalls, and more in many cases. It brings the rich feature set of commercial @@ -93,7 +93,7 @@ Feature set The feature set of OPNsense includes high-end features such as forward caching proxy, traffic shaping, intrusion detection and easy OpenVPN client setup. -The latest release is based on a recent HardenedBSD for long-term support and uses a +The latest release is based on a recent FreeBSD for long-term support and uses a newly developed MVC-framework based on Phalcon. OPNsense’s focus on security brings unique features such as the option to use LibreSSL instead of OpenSSL (selectable in the GUI). diff --git a/source/legal.rst b/source/legal.rst index 3226532f..568241b3 100644 --- a/source/legal.rst +++ b/source/legal.rst @@ -52,8 +52,8 @@ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -OPNsense is based on `HardenedBSD `__ -Copyright © The HardenedBSD Project. All rights reserved. +OPNsense is based on `FreeBSD `__ +Copyright © The FreeBSD Project. All rights reserved. OPNsense is a fork of `pfSense® `__ (Copyright © 2004-2014 Electric Sheep Fencing, LLC. All rights diff --git a/source/manual/hardware.rst b/source/manual/hardware.rst index e93f32ab..15551f5d 100644 --- a/source/manual/hardware.rst +++ b/source/manual/hardware.rst @@ -158,7 +158,7 @@ Network interface cards .. rubric:: Supported hardware :name: supported-hardware -The HardenedBSD 11.2-RELEASE is the base of OPNsense. All HardenedBSD drivers +FreeBSD is the base of OPNsense. All FreeBSD drivers are included in the OPNsense kernel, and the hardware compatibility is the same. @@ -168,8 +168,8 @@ the same. For further help and support, see -- `FreeBSD 11.2-RELEASE Hardware Compatibility - List `__ +- `FreeBSD 13.0-RELEASE Hardware Compatibility + List `__ - `OPNsense Forum `__ .. rubric:: List of references diff --git a/source/manual/how-tos/cellular.rst b/source/manual/how-tos/cellular.rst index 629bec7c..46189939 100644 --- a/source/manual/how-tos/cellular.rst +++ b/source/manual/how-tos/cellular.rst @@ -12,7 +12,7 @@ Supported devices ----------------- In general, OPNsense should support all cellular modems that are supported by the -respective HardenedBSD kernel. However, not all devices behave the same way, you might +respective FreeBSD kernel. However, not all devices behave the same way, you might have to tweak your card with specific AT commands, for example in the init string. The screenshots in this guide are for a Huawei ME909u-521 miniPCIe cellular modem. @@ -47,7 +47,7 @@ First, we need to figure out what device is accepting AT commands on your modem. the Huawei modem used in this example the device is ``/dev/cuaU0.0``, other modems might provide the AT interface on another device. -On HardenedBSD, ``/dev/cuauN`` devices are call-out ports that are used for modems instead +On FreeBSD, ``/dev/cuauN`` devices are call-out ports that are used for modems instead of terminals, see section `26.2.1 `_ in the FreeBSD manual. The best way to locate the correct port is to send AT commands to it. This can be diff --git a/source/manual/how-tos/serial_access.rst b/source/manual/how-tos/serial_access.rst index 775c416b..8678aeb3 100644 --- a/source/manual/how-tos/serial_access.rst +++ b/source/manual/how-tos/serial_access.rst @@ -37,8 +37,8 @@ The device name can differ per system and per serial device. Examples of names a * /dev/ttyS0 (serial port, Linux) * /dev/ttyUSB0 (usb-to-serial, Linux) -* /dev/cuau0 (serial port, FreeBSD or HardenedBSD) -* /dev/cuaU0 (usb-to-serial, FreeBSD or HardenedBSD) +* /dev/cuau0 (serial port, FreeBSD) +* /dev/cuaU0 (usb-to-serial, FreeBSD) * /dev/tty.usbmodem1112421 (usb-to-serial, macOS) * COM1, COM2, ... (Windows) diff --git a/source/manual/install.rst b/source/manual/install.rst index add048be..f721823b 100644 --- a/source/manual/install.rst +++ b/source/manual/install.rst @@ -102,7 +102,7 @@ to get the public key from include: * https://forum.opnsense.org/index.php?board=11.0 * https://opnsense.org/blog/ * https://github.com/opnsense/changelog/tree/master/community -* https://pkg.opnsense.org (///sets/changelog.txz) (lands signed and verified in the GUI of the running software) +* https://pkg.opnsense.org (///sets/changelog.txz) (lands signed and verified in the GUI of the running software) Note that only release announcements with images (typically all major releases) contain the public key. I.e. 18.7 would have a copy of the public @@ -240,11 +240,11 @@ If you need to know more about using the serial interface, consult the :doc:`serial access how-to`. Write the image to a USB flash drive (>=1 GB) or an IDE hard disk, -either with dd under FreeBSD, HardenedBSD or under Windows with physdiskwrite +either with dd under FreeBSD or under Windows with physdiskwrite Before writing an (iso) image you need to unpack it first (use bunzip2). -**FreeBSD, HardenedBSD** +**FreeBSD** :: dd if=OPNsense-##.#.##-[Type]-[Architecture].img of=/dev/daX bs=16k diff --git a/source/manual/interfaces.rst b/source/manual/interfaces.rst index 5dda181f..2d7bf9fc 100644 --- a/source/manual/interfaces.rst +++ b/source/manual/interfaces.rst @@ -59,7 +59,7 @@ For IPv4: =============================== =============================================================================================================================================================================================================== **Static IPv4 configuration** IPv4 address - IPv4 Upstream Gateway When an Upstream Gateway is set, packets entering the interface will also sent out on the same interface when replied. In addition outbound nat will be set up automatically when mode is set to *Automatic* or *Hybrid*. + IPv4 Upstream Gateway When an Upstream Gateway is set, packets entering the interface will also sent out on the same interface when replied. In addition outbound nat will be set up automatically when mode is set to *Automatic* or *Hybrid*. **DHCP client configuration** Configuration Mode Alias IPv4 address Used as a fixed alias IPv4 address by the DHCP client. @@ -144,7 +144,7 @@ interface. Both USB and (mini)PCIe cards are supported. ............................. Supported Devices ............................. -While all devices supported by HardenedBSD will likely function under OPNsense their +While all devices supported by FreeBSD will likely function under OPNsense their configuration depends on a AT command string that can differ from device to device. To make thing easier some of these strings are part of a easy selectable profile. diff --git a/source/manual/ipv6.rst b/source/manual/ipv6.rst index 924c8514..009ed102 100644 --- a/source/manual/ipv6.rst +++ b/source/manual/ipv6.rst @@ -15,7 +15,7 @@ different options to utilize IPv6. Currently these scenarios are known to work: .. Warning:: NAT64, IPv4 <-> IPv6 Network address translations, is currently not supported - by HardenedBSD. + by FreeBSD. ----------- Configuring diff --git a/source/manual/netflow.rst b/source/manual/netflow.rst index 32f75186..2fe29a43 100644 --- a/source/manual/netflow.rst +++ b/source/manual/netflow.rst @@ -5,7 +5,7 @@ Netflow Export & Analyses .. image:: images/netflow_analyzer_insight.png :width: 100% -Netflow is a monitoring feature, invented by Cisco, it is implemented in the HardenedBSD +Netflow is a monitoring feature, invented by Cisco, it is implemented in the FreeBSD kernel with ng_netflow (Netgraph). Since Netgraph is a kernel implementation it is very fast with little overhead compared to softflowd or pfflowd. diff --git a/source/manual/software_included.rst b/source/manual/software_included.rst index 095aea08..cf4829cc 100644 --- a/source/manual/software_included.rst +++ b/source/manual/software_included.rst @@ -12,7 +12,7 @@ install them when not installed by default. The operating system .................................... -The basic ( `HardenedBSD `__) system contains a kernel and a base package, which provide the +The basic ( `FreeBSD `__) system contains a kernel and a base package, which provide the bare essentials for the system to be able to boot and do its work. Both components are updated using :code:`opnsense-update`, which is explained in more detail @@ -66,7 +66,7 @@ If, for example you would like to install the gnu `nano aZQI5dZ*1GPv$1X4wz;u4wz07{w%+$wy_y`+H0tO0r)RZ#C0-hi&gyn=mKpNxWKa3zjK;U?-L`4-9 zEgf7PTr3?NiKRqEi5;CC%&lzAKtLoTbJILjRaY^?XL~%n3a6RTX+*Dk5Q%%ZDi_3z zGH?v3!GEx^HAq5Kqszz_~1g^CFyZ6u8f4KN%aOdu{8Hbhra@?>jLcRf1lNl)J; zvhcOZ?|BATT>Gwcfh2T)c6PgJ!UeGB1rY5YNyo=Tm6^PQBHVz0Pk|UVv9f`Q0EPl2 z1qkgQWE0U|NMQoFJcj8&xMI75PhD@mrLs~7up$;9BG-bZ|CmO0C=OSy2O%{2iVrWn zptB57v)uoLMsMuSK*L(UX`UtJi_Xj)HHp^rIYw~D)tLg2?qpFMMquA!IVoYLCo}Bp zkgmvLlsWzUP{+?6H8KYaAdS2N`#~o)Tt-THJ0!9t){PE=PjgEb_Z!Y=4H+ z>0@u46i_$0P@KKK!FsxrbEz69WQaa&TFU%t+oj{B4V9b@-@l(LC?l?`(^WCPV&1m0 zB7Qt-Zh&##Xa6M^>HS->K1lExq3F@K@iW!H3jh+MrDW&s(>QVsSzy8ja`)V~#*PF= zOmnXD-mmdo7l&5>+ybz}Re^vaWKdKWp%(DZc`kn+ZsfjhnB~Zk&TsnD-R42F zeTwAl7oHgg@|YRayJpPi;aSuIP*6!QT160AA@EZ$GQ%IX0RTrR!hS4>AZBDpbx=%6 zFslHhCSid!m?$CGHBk3pYejfmAv8-+Dj{fYM8<&0zq}ow_QBAG5HZ0ghEUz0_s9@N zB&=eA=)`K0@T>t-Bv6MioEBg`iGRPL9%4mirDCoKP7MqFO_yG zj;JxMIjjk)(A8pjgRCVU3+#);mDnm2ELpW-?E>0F-wVj*BTsEzQMypKBkV;DM0UmF zi+2r~v2n$rO@ePn#f*|zY?wLZG@)&Y(;_hpqZ_;%#~Mx= zMAw`yb?{Njqu9ng_lunPbwTS;JYRw14sW5a-3tj->D5-RQl5esKHc z5zEbya3c@G{0WH-p%sDOL)|0U!$_1=rP@FZj?~?UGRC;&zJ+s2d5I$zU7+erG?o-u za9=Q5@LT{a(6MIL$hlKWBtsrv9a7%?yfeAefsG1j42g%(G42tI75hD$Fbpr%U6NK3 zeMtL<|Bv*aKb~IcxWlOx3xRol(L(0ty=vHiJLTBt}%4fw38l_Zb4Xhii zgsiriBAKGBSZ1TtFh7I$#f_9Wm2j!ksSi{U)WXk2<;v0&`--1bEKJQz8O(;vTug0D zXUF5_kh3_a!_%bcigOFL3wzR4(p(Y`#_f`A67iC1Pv}(i~Fz7{2ub>;4ud z6g8+6itZ(nN-G(#XtLMFKECiX&1XnRw`JjYyDi8 z;Su$$zx#P)g^?B2EZrm>I-!+HqZUjKP^Krd%&2l3=Pjbt3)wo!>*jX4lWqDA3c)Hl03xBMANPe(+fJQI`w*jvk z@Cz0eZ7HlJnQho{T#GP0G)^&FvSqiHWqaacWd6tOXH;Z`YS*+_vU-?YnQB#K6?_KH zhQnsi4A#upygU6kt#!Do*&&f45hIo*Ru|h%Sc*Lo zdmb|?9xlNpK3jLA+2}p;D@ILLX(~6Bm(E39U$3--)@?ac^N*(aQ;ZRedXKSxz1mhW_B_yaiRM z)OPEfYOS`*TO2lfJ3lW!MWJ($T9#;6)0TP##{s|EXR7OZ^ndr>As;KQ6qY0IA@=OD z_S#vi+R|Hn{L1k7btpNWm`9miR#q%6F`2bzZgjuYm|?=z>+)UKJW^3wm%5_ujE|2+ z=>O!q_3R=4l6xxfhkN}lcm?TwgW7K7O3~Z?T~_pg_h zjk7GaCX0y~)EUe?J??Z5`zN2#*E9G?tkEu$-$c4G-M^}-I?BJ3c1!8f0Zay$Zf5|G zk-dqtYIh9sJGOlh<1WaX5sXlf8VNOpiO0?^@3%M7F;o{4_r#&y|i$O2-}rFFv<;jRDT) zOTI1FQm4t#CN+&GeWqV`M%_0wuU1DP=VFT`uZL$evz2(W>il^AdAB}(U8fpn2G2cn zzPCdTGkuTKVly#)hkd#)JrAja)kF0R1|G9e(*l0UPv(AgFSUc4WY^f&Ub_B zuXJ>htgwv<^9qU3N&w;^)kQWQb&frM7O(S8;XsLlRTDgUdJ7<>zvuss&!RF@Xn7Fv(9^l(KH8TXjZy5Rbbbo%l zOikUx`F^&`;P4wj4N#H{YX=g5(e?)f%z=r3U_ywHX+otz7|$D9#Li39vKU0-#d@#C z#B61IMC0=~H}Trw12~7m9xp(+eGVNJaVs9q*nN$#F}|7+hPWV%U{>DHP~uY5xjR=5 z{yqQZ!W1!V6|wr%N-evF4Kl1!s$UhCkih7VM5EID?QXYY12peXRq*HglhZ4P21vtw zo9Q}Zif>4L$M_DHdfgdLll7PnInA|B@PC zbgl3D@ACZI&FmlI4-}k`PtDD3%XvBGA{lwNB~>h($QWx>;?HB$z!6e!>Z%cs!9FHr z7?L?{Et7}crL?pi4o*(aT#rJ0p1i_|^Zxk*2c&npK2TE2a3_(Rrg^RXbIQyq-?VNq zah1qqjOENKMiS;&ud8~x;9x;e$HP;lQJ2tEvN0|}tt$ZkJ+Bu1w}Te7zMKrO${CG6 zZjBHdpYdkcOZ8=tF{MMn%7X~KYDjTZuI6hAQHzi%Q1xP$OE$p8#s7c~7z#&fb~+gC zwm2HUofc7#7yRPho1;D>Gl-L(_5CAZ*7>~*M%VRG&Un-kv@sCsx=mv69AQ`wcA+l0 zEk-GJ%uR>;TuxcvvEJeEmglYi)wJ48IrCdB4u6;2^zrmS!SUd6)_k>BbQbFZ-Ho=^WWysu$y^l&KwjzQ)vZi@IBh^I)+ws|FHlz)v6CHg{Rq+B#b1w52GQkQn3&ja?^7yafupcG|SaMcI&2d-E5@QfZzo7i?=c?cRapJWt4` zyu1JC)li<8F2m&Hn}rDS!z1F?TjYqf=W4LQ7Y6b4Z!MrFgeI)VX10wl+%z`pulU}2 z2PWo_mQt@uAWT(brjium`wj;MWzt7cI#yZzRGuvhsd|!AQZz|4CW#Dckp1$cUQTzD zcRZt$f1RJz18(f_>bvFbHn{Vi+wggM^;1$?pGw$+F^~VfMXcRE3?QLHhxfG?(obmS zlbLPiAz{X7P@_`CclprU0MxW6d<7ZgbsFBmSV8R&A~ke^S?Pxg z2HtC#dJr>8`VxskSYm{JP09Tics`<+kLuC-PL`hI^XfbObh5Eh%4$q0GZ^Wd?r%@u z-GlqS#Xk2Thp@nc#H=_ba$a^a{^AIFr3m2l?}!=~>})0W^;O>D$R6uS$RugWn$wUV z|mQqOO-Obb|6Cy3&6^l%qqwUp}vtW`bDw5^pO#jFxzyzWc z$(bj`b-|y?ZYS>iP4~mg#0fop%igSW7pjWY{fe_MJ&&$YNg_%w$z!7AO~4aL7hs7c^{aZ%vL>0{=g8s#Gjd$I`Op2pOhT#k7~)%Nqo?h0B~!riSPE@ln=0{7chdm3 zNxU!!Y-EBtFu}4^=bhW?G+!SnI!{Tsk(K0;mL7B%CQGDC6=v4Gc3vP8mI1uJLL`xd zUO`Nljy@$b`7z(&>ZC+ThPWYY4!4FyEU*AsGKE#uruFS^51?c3w*wz{xXmOH7cHia z6HhCnDl9ICA@F?KOBc_?C5Rb1KpFTGZ*E1gez{_1cF};g$?D!bY_-M?Ed{ip2$1EW z4DKy{aVc$Qb2UxZl9fR2*JK#2ZKj|WrvB>$!9|$Z3hxw@;Mgsm@0geSF3B||9l7l) zktg-EyHk>`q!pb^iUe8JMh^FJ<4bU->2-qWeWJy8hXKu#X)5u+n7TSfA{FtKw7_w8 zCRoQj4L6?w!nxlmMhGu>;UA`rObxosX*Q%#40Om+mBN8QSF$=`_GLksh0bS zrj%uMQvtKWBXk^i8IdF}hY52EjnNLQxu4v2#&@2|fv$xH7mv*MesfO^-6%}>!jUuS zha1NDMv#=H2Aa}J0U$r}GscFe4LXm)Y<6F-k+x><4Q>XzsgB2;P{wJiE5LHNTxciU$LbjFP>^9{{$i+~rfLuqC$vP;-4q(w{N7=1 zNQF0#wL(i<$VyT|z@j)35o=YqFn9l<#mDmUv8mtfbDe&D@PxIU_B@Kuqb~d_O>Fr> ztyNX+CXqnlOPd9b6Dm*$Zh+`x-P_Z7)~|^A@O(PE<7|D_crsO^!N><(1WHqfN*%1^ zP!snykx5`2!^EcJUzFSfQfxtsd&n|p;YUZ_l_a)|3_vReV@fKrF%7)}cOWToiGduZ zWj7W=8Z4~D$hQEtMhNa;yu36ohOA6c)5GCLTBgN-4Yj2Z5Ji2au3menSc|xUeXJrw z%>l~1wL5m(3AtbK-P~`-qjWUx1e&Ubqy&jmL@Vg@GJHISl>73F1YvZt6wG7WTk!kY z#h^fy+OYN~&QO-Lpj8zOI(+wK8mzb6gP<|yWV?|@7tom?lWXbwyhM0GsXD#=!H?a3o>lHieu*Aa>zgxRfuQoR>u?SStg zPYqzqg3(mx9nPjn!h&{QoNl#iVM_=#uOB9RY!77(fSM9FjxHE5f-1rwmWm8-8+4^J z?RW^T>Uk5`aK$v67a-}?F1FA#V)#5o24C_!hMa7F;IGu+Nt9Qi-M#j4vY~S`fgiUR zj)n~HRIGBNHWT2iq@EJj5Mu<9Rhnv2m;4LyQWiQD?N=14fHVRrLXq6%SkUcNNDb^CNt@(KF}>*VwvU=#~HmI0--9 zwT7A8Bdg)}S9Cl+4z;*aC$`gx-ZS&(8rnmubV#8X+#ex>Nb@9RModd`*jRIsoRX4C z5uM4dN4yUAef4vvsm2lBRx#ib*j&k$`zwr2+fLXDC0nC-i*FSL2@ffmdCf2gZbRE+ zFW2^O$@cdWI!n%sG6gWV)-@e+bT14H*z#`DvvJy#LBX`RIk4~2Uv9^yxdYhIE4ZZ? z+BB*~IP_348qzUoWXIJqmmA&zNpTL|BLqx6g4c08&bq|2QOPdV54*efHwy41q;?FC z;>iH$AIkLN87-0O%*^bv=ul!tr>tEnQpCCSM-zkCKM45y2ZEtH&PTJge%q5-J4Kq? zR$2`_>5X~Le4MO#O{z<$8d>xon3I+F>!UbsN!I7&RI%!dueTLhQ(&ysL8t^0H!7-h zS*XsTN(&2xH)um(NKs2hCe8H0fk)K1k`z7e73hq?+aPRc#xzpH!%gY}jO_dq!&qyG zaLi{5i%Zt}pz9`oo5bOlhw&Eu5N}Hc16D*$TB$K5wOfGYUXn zP_RPLTSnG)0r3DlVEp@DI5}hbsX774^?=0x%QOn2mC&R4fSxX6T3}R+6>gM5gwTE}+bccsZ<*V~83> z_x)^k7m(>O2Fz?=T3Yb=KBs5ZDy57vDzV5x-v8d=V1%2MB=AI$$2mzjtYwB{p+@Oq z(=L|oiegykmoM;n8q%S!U->CxasDxp)Qn&cHFoWbK41Q=M)Jwzma5eL11ge^xd)&% zBaq?=a*jtd44Le+M$x3ppVW+2kMc@VR#3*3l4h_%Q4y)lY{K_Wx;s>p*|K>QQ&M1$ zU7AzPDqCSsCE-j{#Y<_WMyzx@a?}O~T^W?Em8wEO1h)x?Zp3V%|LD&pdT$v2Z5oG< zMTua`!>SImAnGE+w6O9dMG~31_eHR%`X+M~GgBBSkmV%e-x;HvWxhqM4o5~7bCr;n z67>3Nw$J`^BH(r1#OE1RJkjcJ1z@s5~@!Ajw&HeNeW6q7ZIkVkTRr(N)jQC z1QRANW!n$E?{O?u)GM-y<_{I3n^p!+Oo$pBd`HamqfJ>e{Tgkm;~AYn>M~?gEb`Y?ZYXQ6f>HV3@+#k_)Pdv_F$* z%ez~g2$Ngsm+|OV@$?q0V^;758?qY|4S$(3RIZR$itBJI%Ve(iB#V%c;}ZTP%dx)O z%V$l%EpJE(ToSQ{sPx~~o)cG;%&I`6nj7s%Slp$vW7hti$baQSRjS8r6{8|Oid#PQ zG2Lcgc2&>!XpXS*cgp=jl>&26NSOwcI*dfz<~YqdxJc>q@S@jubD&!Xh*X3V6Xgut zYLH&5^9RA#uMcr2Wc13??))DSGC{H!;$i5;$R>!P#N=vOVsxlS;-fJvB~nAM@x-Q; zD~^>Yxd+^ov2gf)cS@M%aZR_QIFt&bK4Sk4lLu#6X|4Nb^3(?A3%lN9K}_#_IYE0ngVs3xM9_&Gb1z)**wVsz-B zOOsx~@IIvV-CS8)Z0J;s(p0jLOS`jMRtc$UbcPa43lvH0HIC$NtA}(hnn*N(%t;;iCvinDlvA?1D9aJ6 z>15nE;anRguY!ymO7eMxIwB%giQUQZ7;`IjBtmC`P^r9xD;Fa@=LAl`)hM2Sev0q= zKu3?iGh}HNu-98OYt=LyErb8QB~dBhLsZ#X0@X4aj~aAW9BMy|jKxVPD4x|dx6mq6 z+(NnhPaiLOCCwVJcVinn)XZUCEtjO4Of4#EbzW)Avtp0Vq69=X?G4tQ?b=F)NEW-| z?a-&kmKANhmHoqG^CZ-ASomd%wDgM- zsUXfUYDXG4MmkQHpGk(A{$FE(d|R_#Q;|M z{-wJL`*9QX3h)s|N3mAqtmKAkaa zQC)7=#LB*iUMfe)JDHHoa@r9nWnA78;@GJLmZaM3_&_W{=o#SU7MM8DEAMGyV};K* z`jJai(tE<jsm5Z73SBl~?hYsux#)UH8;%9&>q2&yfQ9LL zp^$&gc1}7A)8a7XEm9o{UPBxv)-&yE`v#=pYVu@2+YYk=b#LU>_qqzCk zNB7-efvm_<5g~M*m$dOBhDJ2=*!f-a8jP>}^iG}leQgj+_y01<#&~Gy0;uArlFF>v zBjmXHM2ajcsebz7{YO`enKx9^qqGes@I$}`L@6l>9;H>DirU{X*@ zzVx-qOL8`x&#OzjP_KL%#H)B%HK?Q*Dh&{dD;W@vmejVrbr8)gTcVKOKFPmc8Usa; zm1(f7mTWAC#OF0=Leh6{VlETVRF<2)J~Q8Z4=2tM8txVR0$cmuPF5vpU`oW8n37j6 z#)Z0k$O`6TU`tANV)SSOS?YA7^0k{AbT4rA_%U#&GhR#0HdrO;Jm8~q6NiXPc)T-A zZy|zLx1~MyOagh`(bYcL=iS=p+HbWgvWG_Z6<1z+=j@Mjhu&5P%mh`b(MSk&r456EstGHOX2DxYiKrRY zj=sGIZ)vb3SBJ`3duN|EkYt{61Q=xJ)pTFr9g=d+BHzw==e2S++HOB-|IG&!)_8e> zegF6%;cN4MB2PL^Sn>exJMf1wT|I(MtKG!yC+qL&9}9$DYutWo`+&VM5o(g=3whS- z1Nq?OYZG+u4RMnW}$3le#Mhi(uS;%&y-)+F6>1ql0( zRMv26X*Kw1EnzNNiK^m=*mnoL+*+9;lg7pqqGa^Tm9xP7$cxb8QZ1;*HjE7*Cf3(C z{Wpy8NCtgIm!hSD3NU^;a7!EjLj4gKreigzgBTg}#}^-RUr?;R7) z)9@A%3-U34udNsalqK&&~?jcmOdiX*5ODk>8+kWPu`i1gR;q5i+$2 z3abzVC}~835~!AAK5Ud(3ru7yAbJI+ykSAsJ}sdndaUy53zxEvC%DqLnbEd(8cpyO zC zimGct@S^h(R>Rq5hFv6|%OpCwTDSF3_aJtwwxNc)<+z_7`sK($+P-e_s?vW%YC(k$ z?d_o&q8l%9d^Bj?;bg+($tqLc7Lk;?F11foTBkhbVJQ}SkcuxRL-6WxV-a)S$$eDQAUJ%P;S8;qv;zZc;454t+?6LkItJYDn}s zl5lj+|DNv?v+eyvY6e^*5C3&EY48tKDV0RsTE?&TNE6b{&;ltE=C8A%-Er$lquXX} ze{df4*O*itJbxDKnFy0HsXraa@?yd=$zRF%m&9HMvdmTeffYN!vA8RL*Rw&P+ETnD zG|O5q*Ek_br-e+|0>ZKCILA_H9);?jwp3R)Z5ZDQ%bcjDFco#v6}TApy?i9$?C^Y2 zeC)E8*LBU>u3mQ%h^H6A{ZO34V?0=KE}m3#Atluq20v&w0v8FXcc$K%Z;{(qE9nisyRCmh?Ix+A%B42}j1O z7kxrh?6`#ElKfkJTuBakq3(_;5`cg_YKSYtPUw%W2iT)ymyA;Ccl3`8bPg`U)m0!G3et5Zz_&coHx({eb`c|`RB>}}O zr=pY4c$w;&Vv;cNYEquQ^e%qZqIWd(YC>%n;A2rE02}>a^4J%RMFRr=1N{cyAyWic zZjw2iW?o(mea(V;B4A}$l>>y+oWJn=!Su-S`ow!<{th1g%ed`pt@Z5B#1`Dxj6md56JytOTqEqxhp;9;;sI`Uw$?TG`r@;>+ zOV!5F7qvV{8|aA?I1(fDg&M{Ni)WIsNk}l7M6iAB*f1q>rI3}dhWdOUi+wHSeI%z) z&+^LAPom+<`E5x+lUqHXz7Z|uigu0P5hTH7wx80CC6FbcZDOHvjMZ4zb_`eu-tHj;5f z!^4P0jdCzJrj-)_WmxxBjR+6H5KVs`=Sw*16h(_AMNz{=Ca0JubU|#0OXrl~*E6Eg1uKUwS&ozr8RVKbltS3vw1-oc zRdIQ7fH4321NS!;=o+cNE_9d0r%W$gp#F>Z`iD}6_#Ln86X({~jWwL898kKkc<#GN zw~DW+NzH^2C-t4mdIWNoz4R!o6hOBbr!9vB6^Dn7?9 z)yQ(NFGKg2FMWT`!l!iB5I)#%`V?-znDUPAnKCk}dJ#G{(eCT>!z#S`7W2XU7OJcG z)QPL^2cZ6@uXRm7KtS&%k$_*k4+q!YxQBjrr`K+N@ii>nzmf8_F||oue85~Z=ACHh zu{Je{&yqrv^~4xnWS`LsSjPxM31i{Z%B!CUa&Ek)dzuJD@RA?l?r<1eE@T`R>Yvn}dmExh7yn7O+tlTp<%KvAVa%nHwcdNmI6YL@bc5k@X(DMJp$zF48OrKHi+ z)U889XHaS!9=vOU*T`MqcV~pNGOp_CNOFXvRDa!~3q0uH&pKF4#@G~P{oc8seBpJ- zse7t6xQDRv)vOG#>A4%Xe=Y`&c;D@q7EA4j(KTc4+2-ceY+dDlOV6I{asX%G`c&gL^vy2owZF{q?d+q^6NKZ@ zgQ?lN|5Iol|7^?MKIPwBi-O*r(YUK{{yoh$d%nL?-Jx7ARjOgNo5um)OD6sK@NrN4 zL_F!aImt}MG218B$u_3gZmMB!dpUN?xPo+grnB^bJzEqp#>pPDsoyAISh&W*l1T^9 zmV_Ijkr$dYo3yiUNvtbbc{<{daDn=~!uR8g>^}s~B-gd)XgKYZ9e4vvVo6}gf+}E) zKj&)lFK+<8UiboMA8ecFufO5C(5x&13@&({uImdf)kzrx+T|70)7Vb@z9AKJ z^+1tt1lJos0k+$etP`i{GsZ+@9hZ;yb{f~?yF3)+;V0ti=JksND<_n0^!ch*QK1#J z6%i!2C6`y4Mlo2o$V7fL)c&& z_z%;GPH}$PyqUy2;|>4~8`Zje=K;+2rExUO7RF!m2P^VUh3FN9*VxWBj?iM68O(a; z>lJQWxS(vRggk-fsx9u0uGrxL4TNS}zxal-h1Pe$OyAa7@4EVKFnK3CS?ejn*zmjk zWBvEB4`!7ADkViI%1XKzF>*S{B>eOv;J1&7U)z8{E;C^51`L8cDy~)@O zCt9~fu>4&jdCSGN+wLy$5>KN2s-yG@Yh72{{l67Tr2+`P-tG26Pj2<}J#mpP_7j%x zB)$?BJU%W#=@B8!P{bmLZSgKvH21kl5Wx4zDd2+Hl-1*^88LL`lXrxu*loij?6cxq zeFa<}R2*Am5PpKU?M;6a5XiS(+et84n?wYVt4ZdEuUL-i*`WxBJe9iCAbWtt_|Dcl zegt20dt13+VhsQ(!y87#IiVqv{ljSpmy7=c*ei7p$>hkegi~=iR>@e-(G${NaU=z| z?Z{}&q7zYo>0{7SahgZ#+vyIgPWz{4yoQ?q;+0yCf-bAs^2ZAi5na!d1!iN6rb$An zpKG%UdA)WuOP6^@sdn!CUKAc^@?A^b@<=_0#pii(?HTV%sH3*GnLS%=BgB#L-~{$c z{RSCy7&S~_7%5JpBWSQ2+}R33;peR^63id~!?%ye>xs`%f6yAb*IN z$ch=z_GkWYIL1IWtIszemFfEgOH{j-JQ}_K_z=}6K=+a~!|Z_1$j_@;gBOGADV!wv zi=?g?9^H=>I0Q@sZc(%10UZ&o!%J||XFlH=7WJe#3Y;M_JJZHv6l8R(&hJL_eIS@x zghE{D8)=ekN|v=!H98dH((R`w=k5z<^r`oI)CXy8ja_Uk8!u3k=MGQ z3waN~vIT!xL?EgCW$XXpYFt(2Ro9LM?(x*ZB5*P3X!gK(;?9o-RwvJx`@EV9sa5-t zSMB>4Mo8qE>4MMC>(R7u%oJ$gXe=NS(SL%~$xJ1Wabz4QjtZ1oftIFZh!bd?57Bg0?Fts0&=Tqx4_bHD&LdQ8NKC#U5B(;A=AA_X<5@oJ=5wR}d0 zQOS|@kS+~F5)l;efbIejiVP8`3z&VgHAE+uOGob-L<&qGA*DrqK-59 z+Z#z52J6T9lBb5zK&ZpCnIwj=COLM*7OJuKYd0ei=ITWXJmmTGS}Bd`_G!gm=jM&ht_?h`we{} zrv9gVXHgmQ8tUDf7)BbrLe{RDT*_(`c0^>@$1QT6LlnYDsOWKGAg@)-NRmuoHbRun zBB=ThU8*dtzyVw9+#x)-=!oexVIK3nup3J0G(6Gi6faB!rCC?>YB#ciKw<+ub4t{z zpMXu@Iyns?>a-*dgArVxW;#jRvqe2D5gxV}3_IAZuOl4+m}}#K*%;52%EoW^C-2G@ z(8TM2_Q!5FPMOya(3>%wGdRZLFV!_CP=&oQ$3L}NJ{MLZW0(SAcr6`O627|riQgl9 z0eoyEc>>|S+(?c`%y+hfh1bAfD4%hAo8g(gWb(OCFs}XTXl=8K6-IyWx=#!FJG`It z+@Ksc%alY8)J#tW$&dmz>7Ued>2ifO9KV#i?xJQ$>5+fbK8uCY-6~V_P*8wVBM!dE zIlkT_bIEoYWKTMT&C?k=0tU)#3_rv#)6xqi+7i_32E>9jaYUSuqs)ll${|YctV9jY zCIxh=bzdx}()VXSuh2&Re7n{Oa#p+L7^Z%IP6H-NLd&?S#!lta5HxPPhph|$0y$cG zphDfg)F*e{%8S(dL*b#f#%roU<)_4KQ|$my%DH(xAh)e#@$1q=YZvb2Pn-WzEH>A= z2i~^JL(zSQI#z%`(0rZsMt}}j+06P84*`h&pSY{&Oy8W?ah87jztfj%U$ZA{vo|?_ z>cbg9stlhCGLej)7aBz2Z)Pv6y4t!J7Dfd6^oUu*!Uz#`H?yI9&MCGox}P8ibo4b1 z!G?wqD45zcM?-)H5mH*bg1PXu2i=O8&S51GLAbS@{6NQF*c^Qz2V6l)rz1m-m#|=J zqUS>q%0wkBoc6>+$Y&ZMZ2+{=P~>r9XZSj4E{%EIPf?KDrQO{5K9CoNF0_An+Gg(_ zi9>5nU@n4w^gk1l}FV*ws&V<`QYvA4LuOMF@duf@!O#NlMPsBIuj8~+adHJPm z&e%@QG#HL9gnd~ou|yLgjepDTKU%-@@{XPtOIm4T$Udn)dy$^0C;5Oir;bx`ZLQQa z(hE@t)n~z|&e>G{l)Q>33|H)#Yu_=4A(mqT!RB+VVUGWNbtlU1myOf(l9C#y_@>C?xOoM&DN-DzW_bVgmWE)90X1s`k3npG>)@RcI8Y zh6igKY{{O=P2V?-sV>;I=20=rbnM%_@m0?d#iRrMxcLP%C`x}$q(UNkjVf%#R7VXL zV_nk$n1E-(5!PEHjkD(3aaXjbYoVoM7|cA85;V4K-R9B0{vy zrY6=76vzZVB9gq(RdoJb+6waD3@;D{dF0{dj?EDa(A_%VhzVdHDB6w@v0;O40-NW8 zVHJ^ly?f|I@(l#)+jA1*o#YdMC>i{z>6?II-yZ6 zFu$lGgpBf|#;FoU7^1L#j1V)?rd`Mr+i9e>;pxtO-K6~36e-rCgFgZ}*hUy)+?nWn zxO-L~iG;p$ctHebMG#Mi+9XIIXd}izctgz(S-f3JL;RXW;u;-DJpA1F7qsI&Aeu91Mf)HQYxW6 z`;6`b&UR`Zatc&JDX0Re-#soat=ueP2t1ApacnCXykOm%ni6 zyqRT~q$oyhT02RRJ6!$I06O}^P&Nb`yV&tl26@DfisX)*ZJV0jiNt$f-upKs`g@@!xiv%7 zk2y33pY8i+{=TUH2l}77;sC*MAkCZA;Eigk=X~+C&Pf7?XiUw zKpG>0IU#=~Ho_UWwojc!LXFTLhG*mmJ}~Ds+)rJ^z82>bstgg!E8H9?Yb=&UnktTc z(OvV@Efn0a(o@IIsy0qeV#%pHnuk&AHS^WNu+pD~__>4^HSp@0W-_hIam;1_kWLDN zU_5n_J41= zDxF^As1b+X*~E*XL}DH5KfIyPkti%dX$)D^pcyyK(4gy3kTQzhyl=W|uMfNB6}rGs z87g1MAEM`vHV&riL>HqV5NaS28FuJsLS0s{^884w7> zj0z@GpOWFZOZuw3gtDx$Cq`Djbi-^8Hsu(T~lKsE$1o$}p zo40H6YRCdfY~du*8b<*oq_lIyG(3A%ht@eo(p)Vjvc9jn(YkH0BNXZ%{cavY-^`ag z2P5%zbfv(bNpv={*|2OVy|_X3&1M)8rzNu!B1`&Q4cJh&_;>~W$K2GSxRQCinkLt_ zxgY~!#Y7*GpGY4U>Gpmzh?l=k_qw0|6WLeRfDG5}#`*pwllvoc$mK|n(u0>7nLHcaTAHpl>D@E{!}X*3rld> zEzmy#*S``rT$@QNu#SV5tA05x5LOTl51p*2#3^h$qp`L5PS*QV_aOH@fSBEbP%-q4 zK>w&yVAhZ>RJn3(nbG+Zkh*C#hvynRb$A(Mi8ZrRADp}QT|c$qML))&``@4Ux*R#q zMFd^colm?PJN+rdb6@o~jCrRc8x3jVBCA4a^}_4MIHHRDygn5>lGt>MQ&HF4?&kH` zo-;}ncK^P1_$Q>G@9Hh9A1m{otu0_{bI4s&1oytzr!oY7)K9xa)V?*?t6z+L&NlkP z5iV;lza^PlPT4zCM6?u=#k>l%;tN_G~ufRTf7viQ@{sz|k z|DF0%shgS-m9Rn79fk>kND~)=wURuIg0W}0+xjgq{%jYPtr$~+J$L|`jrJtu(q)?o z%H_-%pW@U_iaq!!;U|6zY9~5oyAW6;V7wjX(=)U}mWCO-{TC^XT)~kO4Q7{95D~+( zpMB4D5B|l^+z)2Um792K@4>vs<;d}M6$WN;e6PEo*>g8zSM`H^v6nlJFw&Uz;-H=c zMBH#Hrd@vu7=MntU3LSEU*8GoRw5taR*Ye3!9DS{)5A*TWEIx)S^MZ`2tWEOUQLDA z!247(>`bdcwihuKBETlgL>pejY+Pn;DM9Mk4$o}=?S+T__H9cq_<0*2x{tYqYTny& zAFSVC~FKxbxpucbB&&dFB*SnDqegF`Tq(qQe07A4&%w*M}KoV@;Ms3aQBw7;2 zGxRUq`|fr$rsAA7QI|0tPHz3 zfVfaoOudWX-oNtxl52Y_1zyZ=`w)RTczQPQiZAjFo(5QCcuH$5M@;YR2mWqI!* z(%m~|qU6Z0zwwd3_&*;26TRT~NFVt1yhr88@l8oqs~}u^>rd&+-tZ0^4Gw}7fpq?o zHre@kbe4jTBE-;;Q(nVEP%1zew9^id61!N%?tBE|l(4#wz5{>P?UBg{f&d%!Vb*Mc z(HkgioItL<8ey7ttaU_Hh#+!H!HY0-j}wKRn`3bQ zdl2afOwi|U;Rw2K6Rg>STzd_{z*Wy zG5`@GlR1n@T&0H6D1@z)2+>)pD?W~_KK_s4(a-!^`n*5f*LTA1Q?)O{MZ4lOsn?R_8!k#j((izbd4usg=o|BGM(SswKjv)1(X2V)4;0VC~(kd&!JEHl@_!lWkTi z1_80wc~8laBPXki7)ru`g?>8uWEyA~SaI%4AOzax1w3=)$no{W(ju>bkRwNq96562 z$dMyQj%Q>v^b9z!vpGk5ipM!}) zmgha>$ni}^R%?Lq3^9psz>qB4W(_33EO0FEYB_S8e`xjf0+YGmzfnV~o>|szb;G=y z<;d~P7X}I+0v3JvSM*A&;KRe-Q1EO*KzknF#i@?h3IUZ@QHc-#TK92IRylHfbCT8R z+A8Uo>MeskYqSeGW_!zIU&(A=iNrER;9Ikz(R9r9tg+tmsB~uA96562$dMyQjvP61 d