From 8085d2f402d29ed146650def208ad5a8e263fb3d Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Wed, 12 Mar 2025 11:12:58 +0100 Subject: [PATCH 1/3] chargeSOM: Introduce chapter for Firmware As long as the mountpoint graphic is generic move it to the includes. Signed-off-by: Stefan Wahren --- docs/source/firmware.rst | 48 +++ docs/source/index.rst | 1 + .../_static/images/mountpoints.svg | 0 includes/firmware_programming.inc | 342 ++++++++++++++++++ includes/firmware_upgrade.inc | 99 +++++ 5 files changed, 490 insertions(+) create mode 100644 docs/source/firmware.rst rename docs/source/_static/images/mountpoints_tarragon.svg => includes/_static/images/mountpoints.svg (100%) create mode 100644 includes/firmware_programming.inc create mode 100644 includes/firmware_upgrade.inc diff --git a/docs/source/firmware.rst b/docs/source/firmware.rst new file mode 100644 index 0000000..37cddfd --- /dev/null +++ b/docs/source/firmware.rst @@ -0,0 +1,48 @@ +.. _firmware.rst: + +.. include:: ../../includes/firmware_upgrade.inc + + +Partitioning +------------- + +The internal eMMC storage of a chargebyte device is divided into several partitions. The main aim is to have two independent systems available, i.e. system A and system B. This allows to running firmware updates in background while performing normal charging operation, and then switching to the updated system with a fast restart of the device. This also allows to supporting a rollback mechanism in case of failures during firmware updates. In other words, during a firmware update, the active root file system switches from A to B or vice versa, leaving the other as rollback. + +.. list-table:: eMMC Partitioning + :header-rows: 1 + :widths: 20 10 50 + + * - Partition + - Size + - Description + * - /dev/mmcblk0p1 + - 2 GB + - Root file system A + * - /dev/mmcblk0p2 + - 2 GB + - Root file system B + * - /dev/mmcblk0p3 + - 3.3 GB + - Extended Partition Container + * - /dev/mmcblk0p5 + - 2.8 GB + - Data Partition (/srv). This partition can be accessed by both root file systems and will be not changed during update process. + * - /dev/mmcblk0p6 + - 256 MB + - Logging file system A (/var/log) + * - /dev/mmcblk0p7 + - 256 MB + - Logging file system B (/var/log) + +.. image:: ../../includes/_static/images/mountpoints.svg + :alt: Filesystem-Mountpoints + :align: center + +.. adding a center-aligned caption for the image +.. raw:: html + +
+ Filesystem Mountpoints +
+ +.. include:: ../../includes/firmware_programming.inc diff --git a/docs/source/index.rst b/docs/source/index.rst index 3934728..3885c2b 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -20,6 +20,7 @@ Charge SOM Evaluation Kit. :caption: Contents: getting_started + firmware everest_charging_stack cb_energy development diff --git a/docs/source/_static/images/mountpoints_tarragon.svg b/includes/_static/images/mountpoints.svg similarity index 100% rename from docs/source/_static/images/mountpoints_tarragon.svg rename to includes/_static/images/mountpoints.svg diff --git a/includes/firmware_programming.inc b/includes/firmware_programming.inc new file mode 100644 index 0000000..4f04781 --- /dev/null +++ b/includes/firmware_programming.inc @@ -0,0 +1,342 @@ +.. _release_vs_development_images: + +Release Images vs Development Images +------------------------------------- + +There are two types of firmware images available for chargebyte devices: + +- Release images: These images are tested and verified by chargebyte and are recommended for + production use. The image size is optimized for production use and contains only the necessary + components. +- Development images: These images are used for development purposes and are not tested or verified + by chargebyte. They are intended for developers who want to implement and test new features or + applications before they are released. The image size is larger than the release image and + contains additional development tools and libraries that are not necessary for production use. + +.. note:: + Before installation of a chargebyte EVerest image, please check whether you are installing a + developer or release image. In order to update the firmware with a chargebyte EVerest developer + image, the developer key must be set in the :code:`"/etc/rauc"` directory to pass the internal + validation process of the RAUC firmware update mechanism. The image type can be identified by the + file name. + + Depending on the image type, the key must be adapted as follows: + + Change to developer key: + + .. code-block:: bash + + cd /etc/rauc + ln -sf i2se-devel.crt keyring.pem + + Change to release key: + + .. code-block:: bash + + cd /etc/rauc + ln -sf i2se-release.crt keyring.pem + +.. _firmware_update_considerations: + +Firmware Update Considerations +------------------------------ + +During a firmware update, several configuration files and runtime data files are copied over from +the current/active system partition to the partition with the newer/updated system. + +To migrate single configuration keys of a YAML-based EVerest configuration file, chargebyte has +introduced a migration mechanism. This mechanism allows migrating single configuration keys from one +release to another. The migration mechanism is based on Bourne shell scripts (ending in ".sh") which +are placed in the directory :code:`"/usr/libexec/everest/migration.d/"`. These scripts are executed before +the launch of the EVerest stack. Please see the initial scripts in that location for how to ensure +that they only get executed once. + +Since the EVerest configuration allows to configure paths to many configuration files freely, customers +should keep in mind that only the following files and directories are handled automatically during a +firmware update: + +.. list-table:: List of files/directories copied during a firmware update + :header-rows: 1 + + * - File/Directory + - Description + * - file: :code:`/etc/everest/config.yaml` + - EVerest configuration file + * - file: :code:`/etc/everest/ocpp-config.json` + - OCPP 1.6 configuration file + * - directory: :code:`/etc/everest/user-config` + - User specific configuration files. The config file must have the same name as in the parent + directory ("config.yaml"). + * - directory: :code:`/etc/everest/certs` + - Certificates directory, mainly for TLS and Plug&Charge + * - directory: :code:`/var/lib/everest` + - OCPP databases + * - directory: :code:`/etc/systemd/network` + - Network configuration + * - file: :code:`/etc/hostapd/hostapd.conf` + - Hostapd configuration + * - file: :code:`/etc/shadow` + - Copies only the root password + +A complete list of copied files and directories during a firmware update can be found in the +"meta-chargebyte-everest" github repository in the `bundles/core-bundle/post-install.d +`_ +directory. + +.. note:: + Please take special care of the following EVerest module configuration keys, ensuring that they + point to file system locations which are saved as listed above. + + .. list-table:: List of configuration keys pointing to configuration files and directories + :header-rows: 1 + + * - EVerest Module + - Configuration Key + - Recommended Content + * - OCPP + - ChargePointConfigPath + - :code:`/etc/everest/ocpp-config.json` + * - OCPP + - UserConfigPath + - :code:`/var/lib/everest/ocpp16/user-config.json` + * - OCPP + - DatabasePath + - :code:`/var/lib/everest/ocpp16` + * - OCPP201 + - CertsPath + - :code:`/etc/everest/certs` + * - OCPP201 + - CoreDatabasePath + - :code:`/var/lib/everest/ocpp201` + * - OCPP201 + - DeviceModelDatabasePath + - :code:`/var/lib/everest/ocpp201/device_model_storage.db` + +.. note:: + It is assumed that only either OCPP or OCPP201 module is operational at the same time. + +.. note:: + Please note, that in case :code:`/etc/everest/config.yaml` is a symlink, after a firmware update + it is resolved and created as plain file on the updated system. + +.. _rollback_mechanism: + +Rollback Mechanism +------------------ + +The internal storage of chargebyte devices is subdivided into several partitions. This forms a redundant setup with systems A and B, where one system is active and running while the other is inactive. This allows the inactive system to be updated in the background without interrupting the main operation. After a firmware update is performed and the system boots into the new firmware, the previously active system still exists, but is now inactive. It will be used for future firmware updates, and immediately after an update, it serves as a fallback option. This is possible because it can be safely assumed that the previously active system is still in a recent state or at least not in a worse condition than before the firmware update. + +The process of using the previous system as a fallback after a firmware update is called the rollback mechanism. Several software components must work together to provide this feature. The main purpose is to ensure that after a firmware update is installed, all software components run smoothly, even with the restored/retained configuration files of the previous system. + +How it works +^^^^^^^^^^^^ + +As mentioned, the filesystem architecture of chargebyte devices consists of several partitions. During the manufacturing process, two of these partitions are flashed with the same firmware version of the charging software, and both would be bootable per se. After initially starting the board, only the first partition (rootfs A) is activated and used by the bootloader to complete the boot process. When this boot process reaches the point at which it considers itself to be in a known-to-be-good state, it disables the other partition (rootfs B). + +The rollback mechanism is activated only while performing a firmware update on chargebyte devices. After starting the update process, the update image file will be installed to the other, currently deactivated partition. The currently booted rootfs filesystem remains unaffected during the update. As soon as the update is successfully installed, the currently booted partition is deactivated. Depending on the update method used, a reboot may occur immediately, such as during an update from a USB pen drive. The bootloader is then responsible for booting the partition with the new firmware image. After successfully starting the charging software, the rollback mechanism is deactivated, and the charging software is fully operational. + +But in case something went wrong during the update, the boot process will not be marked as successful. In this case, the bootloader will switch back to boot the previous system again. + +As noted, a successfully booted new firmware will disable the rollback mechanism. On the other hand, if the previous system is booted again - and it can be assumed that this system also boots successfully - the previous system will disable the rollback mechanism. Ultimately, the rollback mechanism is automatically disabled after a firmware update is installed or a rollback is performed. In either case, the device operates with functional firmware, providing a stable base for normal operation and future firmware updates. + +However, it is worth mentioning that the partitions are not synchronized. Thus, if one rootfs is customized, such as by integrating custom software applications, the other partition remains unaffected. Only the configuration and certificate files stored in :code:`/etc/everest`, database files stored in :code:`/var/lib/everest` as well as custom network device configurations are migrated during the installation of an update. This point must be especially considered before performing a standard firmware update from chargebyte. In the case of customized file system contents, it is recommended to create a customized firmware image update based on the standard update image. For more information regarding the creation of own firmware image updates please refer to section :ref:`firmware_customization` or contact the chargebyte support. + +Performing the Rollback Mechanism Manually +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In some situations, e.g., rescuing data of the other partition after a firmware update, it might be necessary to perform a manual rollback to the other partition. + +The chargebyte device uses the RAUC update framework for updating the device with a new firmware version and managing the boot partitions. Before using RAUC command line tool, it is necessary to establish a connection via SSH or Debug UART. After the connection is established, the status of the RAUC managed partitions can be retrieved by using the :code:`rauc status` console command. The following figure shows the console output of the RAUC status command. Here the board was booted from the first partition “rootfs.0” (A). + +.. image:: _static/images/rauc_status.jpg + :alt: RAUC status + :align: center + +.. raw:: html + +
+ Console output of the "rauc status" command +
+ +The rollback to the other partition can now be performed by using the command :code:`rauc status mark-active other`. The console output should now look like the following figure. + +.. image:: _static/images/rauc_status_mark_other.jpg + :alt: RAUC status mark-active + :align: center + +.. raw:: html + +
+ Console output of the "rauc status mark-active other" command +
+ +After rebooting of the board with command reboot the board should be successfully booted on the other partition. To revert to the initial partition, just repeat this process. + +Development Tools +^^^^^^^^^^^^^^^^^ + +During development it may be useful to access/mount the inactive partition. Then it is required to first determine the inactive partition using rauc command line tool. To simplify things, a helper shell script is included in the firmware which is called :code:`mount-other-rootfs`. It takes one command line argument as parameter, that is, a target directory used as mountpoint for the inactive root filesystem. + +.. code-block:: console + + mount-other-rootfs /mnt + +Note, that this helper script does not modify any RAUC status information regarding this slot. + +.. _programming: + +Programming +=========== + +It is possible for customers to add new programs and software and/or modify configuration files. Customers can then integrate their custom-developed software components using the Yocto Project to create new Linux firmware images. Please refer to our Board Support Package documentation in our public GitHub repository at: https://github.com/chargebyte/chargebyte-bsp for detailed instructions. + +Some general notes and recommendation for custom software development: + +* Develop your customer software on your local PC Linux environment, where you can use a compiler, debugger etc. you are familiar with. If the software you developed does not depend on specific hardware components, you can use the `Software-in-the-Loop `_ (SiL) environment provided by EVerest to test your software. If everything works as expected in this setup, you can then switch to cross-compiling for the target system. +* Using tools like autotools, cmake and pkg-config in your own projects makes the integration and cross-compiling process much easier. Yocto itself has rich support for these widely used tools and provides many examples on how to use them. +* If you start your project from scratch, have a look at libraries which are already required by EVerest Stack and/or Linux distribution. Re-use these libraries to keep the overall firmware footprint small. The benefit is when updating the boards, it will take less time when transferring the firmware update image and flashing it to internal storage. +* You need to determine how your software components will interact with the EVerest stack. You can develop your software as an EVerest module and use one of the EVerest interfaces for interaction. Alternatively, you can utilize the simple MQTT-based API provided by the EVerest '`API `_' module, which gives you access to the EVerest stack internals. Check section :ref:`adding-a-custom-everest-module` to figure out how to create an EVerest module. + +.. _firmware_customization: + +Firmware Update Customization and Signing +----------------------------------------- + +After making sure that the customized software is working on the board, there might be the requirement to pack this with our pre-flashed firmware to create your own firmware update file which should be signed. This facilitates the production process. The following steps illustrate how to create your own signed firmware update image. For this you would need a native Linux machine or a Linux virtual machine which includes the tool "`RAUC `_". RAUC is the framework we use for performing our firmware update. During the steps, the tool will be used to extract our firmware image, re-pack it including your customized software and sign the new firmware update image. Note that you need your own Public Key Infrastructure (PKI) to sign firmware update images later. + +**Steps:** + +#. Download chargebyte's digital certificate found on `our website `_ which is used to validate distributed firmware update images. +#. Use the latest firmware image. How to download the firmware image is described in the section :ref:`download_firmware_images`. +#. Download and install RAUC tool for the host environment; follow the guide here: https://github.com/rauc/rauc/#user-content-prerequisites . It is also possible, that your Linux distribution already ships with pre-compiled packages which just need to be installed with your package management system. In this case, you can skip this step. + + .. code-block:: console + + sudo apt-get install build-essential automake libtool libdbus-1-dev libglib2.0-dev libcurl3-dev libssl-dev libjson-glib-dev + git clone https://github.com/rauc/rauc + cd rauc + ./autogen.sh + ./configure --prefix=/usr + make + sudo make install + cd .. + +#. Create your own PKI if you do not have one already (see https://rauc.readthedocs.io/en/latest/advanced.html#security). +#. Extract the root filesystem image shipped by chargebyte from the firmware update image file. Note that the directory "bundle-staging" will be created, and the content of the firmware update image file will be extracted into it. + + .. code-block:: console + + rauc extract --keyring=.crt .image bundle-staging + + .. note:: + Alternatively, if the above command does not work, you can use the following command: + .. code-block:: console + + unsquashfs -d bundle-staging .image + + But this will not verify the signature of the firmware image. + +#. Mount the ext4 root filesystem image as a loop device. + + .. code-block:: console + + sudo mkdir -p /tmp/rootfs + sudo mount bundle-staging/core-image-minimal-tarragon.ext4 /tmp/rootfs -o loop + +#. Modify and extend the root file system image with your customized software by changing the files/directories below the mountpoint. + + * Install your PKI certificate which is used later during firmware updates to verify your firmware update file. For this step you need to copy your PKI certificate, created in step 4, and place it under :code:`/tmp/rootfs/etc/rauc/`. Then, replace the :code:`/tmp/rootfs/etc/rauc/keyring.pem` symlink with your PKI certificate. + + .. code-block:: console + + cp .crt /tmp/rootfs/etc/rauc/ + cd /tmp/rootfs/etc/rauc/ + ln -sf .crt /tmp/rootfs/etc/rauc/keyring.pem + + * Copy your additional files, software components etc. from your developer board into this corresponding directory below :code:`/tmp/rootfs`. + +#. Unmount the loop device with + + .. code-block:: console + + sudo umount /tmp/rootfs + + +#. Make sure that the customized filesystem is in a clean state. This is important since otherwise, the installation process and/or the production process would fail. + + .. code-block:: console + + fsck.ext4 -f bundle-staging/core-image-minimal-.ext4 + +#. This step only needs to be done, if you want chargebyte to initially flash your own firmware during the manufacturing process of the chargebyte boards. + + Create MD5 hashsum of the file with the following command. This hash is used during production process to ensure that the image file is not altered but installed correctly into flash. Please send us this hash. + + .. code-block:: console + + md5sum bundle-staging/core-image-minimal-.ext4 + +#. Pack your modified root filesystem image into a firmware update file. The firmware update file must be signed with your PKI using the RAUC tool. + + .. code-block:: console + + rauc bundle --keyring=.crt --key=.key --cert=.crt bundle-staging .image + +#. Test the firmware update image file. On the test board, transfer your PKI to the board via SFTP to :code:`/etc/rauc` folder so that the board accepts your firmware updates. The symbolic link refers originally to our chargebyte certificates, so you probably would need to change this. Once finished, the system should be rebooted. + + .. code-block:: console + + cd /etc/rauc + ln -sf .crt /etc/rauc/keyring.pem + reboot + +#. Transfer your newly created firmware update image :code:`.image` via SFTP to :code:`/srv` folder on your test board. +#. Install the image via SSH or debug UART with the command :code:`rauc install /srv/.image`. Wait until the update is installed and reboot the test board. + +Board Customization with USB +---------------------------- + +For easier customization of the boards, such as modifying configuration files or updating to new customized firmware, a USB flash drive can be used. This is a two-step process. In the first step, chargebyte's :code:`/etc/rauc/keyring.pem` is replaced with the customer's CA certificate. This step is also done automatically when you insert a USB flash drive into the board's USB port. In the second step, a script that you need to write is triggered automatically to perform the desired customization on the board. Below is a description of how this feature behaves and the requirements that must be fulfilled for a successful process. + +Replacement of :code:`/etc/rauc/keyring.pem` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +#. Send us your public CA certificate so that we can sign i.e. cross-sign it for you with our certificates. +#. On a USB flash drive, place your cross-signed CA certificate together with the corresponding signature file. The pair has to be named as follows: :code:`fwupdate-keyring.pem` & :code:`fwupdate-keyring.pem.p7s`. You would get this pair from us as a result of step 1. +#. Insert the USB flash drive in the USB port of the board. The following behavior will be triggered automatically: + + #. The onboard yellow diagnostics LED is turned on to indicate the detected USB flash drive. + #. It is checked whether the pair :code:`fwupdate-keyring.pem` and :code:`fwupdate-keyring.pem.p7s` exist on the USB flash drive. + #. It is checked whether :code:`fwupdate-keyring.pem` contains at least one X.509 certificate. + #. It is checked whether the signature of :code:`fwupdate-keyring.pem` is valid against the current certificate found in :code:`/etc/rauc/keyring.pem`. This is originally a symbolic link referring to our CA certificates. Therefore, step 1 is needed. + #. If the verification has succeeded, the current :code:`/etc/rauc/keyring.pem` will be deleted, and the content of :code:`fwupdate-keyring.pem` is saved as new :code:`/etc/rauc/keyring.pem`. From this point in time, this new certificate is active for all later uses, i.e. further customizations but also regular firmware updates. + +Performing Customization through :code:`autorun.sh` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This assumes that the first step has successfully ended, and the file :code:`/etc/rauc/keyring.pem` now contains your CA certificate. However, this will also work later at any time, as long as the CA certificate matches to the script signature. + +#. Write a script that contains the customization you want to do. This has to be named :code:`autorun.sh`. +#. Sign it by your key and certificate. The resulting signature file must be named :code:`autorun.sh.p7s`. +#. Place the key and certificate pair on a USB flash drive and insert it in the USB port of the board. The following behavior will be triggered automatically: + + #. It is checked whether the pair :code:`autorun.sh` and :code:`autorun.sh.p7s` exist on the USB flash drive. + #. It is checked whether the signature of :code:`autorun.sh` is valid against the current certificate found in :code:`/etc/rauc/keyring.pem`. Remember, this now usually contains your CA certificate. + #. If the verification has succeeded, the current working directory is changed to the mount point where the USB flash drive was mounted, and the :code:`autorun.sh` script is executed by means of :code:`/bin/sh`. The changed working directory should make it easier to reference files you want to install from the USB flash drive. + +**Notes** + +* If a :code:`reboot` is called within the :code:`autorun.sh` script, this will not end the execution of the script immediately, but the upcoming lines of the script will continue to be executed until the reboot command is propagated through the system. +* Every time the USB flash drive is inserted or a reboot is performed, a re-execution of the customized :code:`autorun.sh`script will be prevented if it has not been changed. This does not depend on the success of the script, i.e. the return value of the script. This is done by saving the MD5 checksum of :code:`autorun.sh` found on the USB flash drive in the file :code:`/var/cache/usb-autorun/executed.list`. This behavior can be controlled in :code:`autorun.sh` by e.g., removing the :code:`executed.list` file completely or just deleting single MD5 checksums from it. +* Please keep in mind, that certificate verifications are done without time checking since it cannot be ensured that the device has a valid date/time at the moment when you want to use this feature. +* To sign :code:`autorun.sh` and get :code:`autorun.sh.p7s` as a signature file, the following commands can be used - typically on a Linux developer host system: + + .. code-block:: console + + openssl smime -sign -outform DER -binary -inkey .key -signer .crt -in autorun.sh -out autorun.sh.p7s + +* To verify :code:`autorun.sh` against your CA certificate, the following command can be used: + + .. code-block:: console + + openssl smime -verify -no_check_time -inform DER -CAfile .crt -content autorun.sh -in autorun.sh.p7s diff --git a/includes/firmware_upgrade.inc b/includes/firmware_upgrade.inc new file mode 100644 index 0000000..e9b8e0e --- /dev/null +++ b/includes/firmware_upgrade.inc @@ -0,0 +1,99 @@ +******** +Firmware +******** + +Introduction to Yocto +===================== + +chargebyte hardware platforms are shipped with pre-flashed firmware including one of the following charging stacks: + +* EVerest charging stack along with platform specific EVerest modules e.g. CbSystem. +* chargebyte's proprietary charging stack (only available for Charge Control C) + +The shipped firmware was created using the Yocto project; an open-source collaboration initiative that provides templates, tools, and methods to help developers create custom Linux-based systems for embedded devices. It supports a wide range of hardware architectures and provides a consistent, reproducible environment for developing, building, and maintaining embedded systems. To get familiar with the Yocto project, you can find all the required information on the project's `website `_. + +.. _firmware_update: + +Firmware Upgrade +================ + +The following sections describe different ways to install a firmware upgrade on your chargebyte product. Please ensure that the power supply is stable during a firmware upgrade. In case of an unsuccessful update or of power loss during the installation of the update, the chargebyte device performs a rollback to the previous stable version of the charging firmware. For more information about the rollback mechanism, see the section :ref:`rollback_mechanism`. The update is finished when the board is rebooted. + +The currently installed firmware version can be checked by reading the content of the file :code:`VERSION` found under :code:`/usr/share/secc`. + +.. _download_firmware_images: + +Download EVerest Firmware Images +-------------------------------- + +EVerest firmware images are released by chargebyte on our meta-chargebyte-everest repository, which is the Yocto layer to build the firmware images. +The image files can be found in the `"Release" section `_ of the +repository. Here you can find the latest firmware images and also older released versions. + +.. note:: + + Please read the release notes of the firmware image before downloading and installing it. In the + release notes you can find information about the changes and new features of the firmware image and + also the version information which "everest-core" tag the firmware image is based on. This information + is especially important if you build up your cross-compile environment in section :ref:`cross_compiling`. + Please check that your cross-compile environment is using the same "everest-core" tag as the firmware + image you want to install. + +Device Access +------------- + +There are different possibilities to access the device for configuration or update purposes. Please look at section :ref:`connecting-via-ssh-or-serial-interface` for further details. + +Update via USB +-------------- + +**Preparation of the USB update** + +#. Download the firmware update image file onto your workstation. +#. Plug a USB flash drive into your workstation. +#. Format the USB flash drive as EXT2/3/4, FAT16/32, exFAT or NTFS. +#. Copy the firmware update image file (:code:`*.image`) onto the USB flash drive's root directory. + +Please note that you should not place multiple :code:`*.image` files onto the root folder of the USB flash drive, since it is not guaranteed in which order the files are tried and applied. + +**Updating the Firmware** + +#. Connect the board to the power supply. +#. Wait until the board is booted. +#. Connect to the board via SSH or Debug UART to backup all your own implementation, configuration and databases files. +#. Plug in the USB flash drive with the Firmware Update Image file in the USB port of the board. +#. Observe the LED update indications and wait until the whole firmware update and reboot process is finished - it takes up to 5 minutes. +#. When the firmware update process is finished and the USB flash drive can be unplugged. + +Update via SSH and SFTP +----------------------- + +#. Connect to the board via SSH (e.g. PuTTY). +#. Backup all your own implementation, configuration and databases files if necessary. +#. Transfer the update image file via SFTP to the board and store it in the directory :code:`/srv` with e.g. filename my-update.image. On Windows systems you can use e.g. WinSCP or Filezilla. +#. Run the following command via SSH console: :code:`rauc install /srv/my-update.image`. +#. The update process should start and report progress and success via console messages. +#. Reboot into the new system by running the following command via SSH console: :code:`reboot`. +#. Re-login into the new system and delete the file :code:`/srv/my-update.image`. + +Update via SSH or Serial Console and HTTP or FTP +------------------------------------------------ + +#. Connect to the board via SSH (e.g. PuTTY) or serial terminal. +#. Backup all your own implementation, configuration and databases files if necessary. +#. Place the update image file on a HTTP or FTP server which is reachable via network by your chargebyte device. +#. Note the URL of the download. In case authentication is required, you must provide the credentials in the URL, e.g. :code:`http://username:passwd@my-site.com/update.image`. +#. Run the following command via SSH console: :code:`rauc install `, where you replace the URL with your actual URL. +#. The update process should start and report progress and success via console messages. +#. After success, reboot into the new system by running the following command via SSH console: :code:`reboot`. + +Update via OCPP +--------------- + +The firmware update via OCPP commands :code:`UpdateFirmware` and :code:`FirmwareStatusNotification` is implemented. Such an update via OCPP automatically triggers a reboot of the charge point after successfully installing the new firmware. The central system is notified about the successful installation before the reboot of the charge point. + +Support for casync based Firmware Updates +----------------------------------------- +As mentioned in the previous sections, the firmware update mechanism uses `RAUC `_ as update framework. The traditional method of updating a device is that a big firmware update image file is transferred to the device and then installed. However, this approach is sometimes not ideal, for example when during different firmware releases only few parts changed. To address such scenarios, RAUC itself supports casync based bundles. For more details, please refer to RAUC's own documentation: https://rauc.readthedocs.io/en/latest/advanced.html#rauc-casync-support. It is obvious that such kind of firmware updates require an established Internet connection (or a locally available HTTP/FTP server which can be reached by the charging station) - but the concept does not work for USB pen drive firmware updates. + +On casync-enabled chargebyte firmware versions, it is possible to pass a URL referring to a casync firmware update image directly to the RAUC framework via :code:`rauc install `. Please remember that RAUC will use the passed URL to construct a base URL for accessing the smaller chunks. For example the URL :code:`http://example.com/update.raucb` would lead to the assumption that all chunks can be accessed via the base URL :code:`http://example.com/update.castr/`. Note, that the chunk store is a whole directory with many small files inside, not a simple file - the file extension like directory naming might suggest this. From c02ce6c48004c9279d33939bddd92e4c19a449f4 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Wed, 12 Mar 2025 11:20:23 +0100 Subject: [PATCH 2/3] chargeSOM: Replace RAUC status screenshots These screenshots are product specific, but are used from a generic include. While at this use PNG instead of JPG. Signed-off-by: Stefan Wahren --- docs/source/_static/images/rauc_status.jpg | Bin 41176 -> 0 bytes docs/source/_static/images/rauc_status.png | Bin 0 -> 19760 bytes .../_static/images/rauc_status_mark_other.jpg | Bin 47781 -> 0 bytes .../_static/images/rauc_status_mark_other.png | Bin 0 -> 39266 bytes includes/firmware_programming.inc | 4 ++-- 5 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 docs/source/_static/images/rauc_status.jpg create mode 100755 docs/source/_static/images/rauc_status.png delete mode 100644 docs/source/_static/images/rauc_status_mark_other.jpg create mode 100755 docs/source/_static/images/rauc_status_mark_other.png diff --git a/docs/source/_static/images/rauc_status.jpg b/docs/source/_static/images/rauc_status.jpg deleted file mode 100644 index b8ed9f91b083258ed4ddb253b252aac300437672..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41176 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/rauc_status_mark_other.jpg b/docs/source/_static/images/rauc_status_mark_other.jpg deleted file mode 100644 index d8754d416c558a8377ad7bcc6b1e74d53fe14553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47781 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%0ATKze z9JSm9Z^^~L-g|<*qZ?USMz2ewh!?1$=(dzuF z&l`%htOMNY%6VuIouifb!~v4>era%#1b48t2MbdsRJ<#N0&NYA?`A z7}l3dG;+fUsqJ8dot5W9^3BG;TFdPRXFYE+7%F9?H;!3MB-V~Rb+kp#TB4Dz(^H}6 zX43-^aQH{RT8jg7$26fD5uF!$?u7C4ua9m!dHd|TCqsjqd8={<=sK%5k5R*iTb~3m z2R$7v4}z2+bDHCd{KbnV3pnXxJy_`F#{S}r{b(!yt>Jw}xAdz|94btSn(u}Ro>ja1b@+K?Y1%ox|8%Zol zZiMjZmej(ld!BzEx0UwzJ)ZBRBw{yxHjj8iLa#_b`U>HKRqZxX7HGgq!K1>qXW63f#QTi8~p)W+BhX9wiMzASXVMa!Lg1|AseQmjMdw zm9t-~8uwF+i}8=8r>VQVcqG$4W}*#v>}2i2Hv8pTd5~W1K?2wbWgZk@39o>JDXMZ& zYx@QlEa-^L(lBlKam5_+5gpj-5Lo0SrzwKa900E&yt(Y2$J@s{!LHx;IiCByBlC6Z z9!_PrLVB0ZaIasQZ&t#W>brb{MSJnhl=19yoc9W!==S-?JMSw$!12uWC`-fZCkk9X z-R@=pD_N~*+*aUw)GIO%Ky(SKKbcPWRvK%Kp5F6xvKg;%1C!;2YejOx!V2C;NeOd( z<&!mhV*-Cl$ODrMX0mp)qMoi}l7+5*Gk+qyJ~eebpeN>W2lSV+cF%{tSB#gP=pN5% z*;4T~?)vOe^P%nzaIL$lpm}2}QJjz^Q!MwIN1ODokM`z}aH>1qw6Z^Z-aai;`e7{h zl1A(mKbQ2u0pI`=`yaSg!+jU^%x4oheJlBXdYqo4Nyhi1R!dmY-l!|S{lPT3du|5c zLit8tKB5J_^M91f|35!BIt;@tw6Dx`7TL^M;j*b4WPVBz)tL=QkIlLp zVmTU;Ig=e?P0IRyhAgwv-}*D$%t=4>byL7&QDN)ach2prx86$$yKT0av*FIv7Q(3G!9W7S^~Dq)I${c^Ksw0 z&pe%;-y`(i0?R^;G$JQ%hMmzbf<>0O9M;{1O@FJ2E5949V>*1O<;C)qHDJzM%a3od zyq<3Y0q1hKOV+w}cDr^P?)RTEC+R9zq{!ok+j2(Jf`2_Qk5t_ykH0-@4(UKU0`^y`cPCdw(LT*FS!I<^1^#q78L@mw4v$vUaxVZ# zR<;y1y+VVm$BgPs8fzkIIuo)C3`$+HFq*2<>tHi_w7~OZIm42D`UN;D+F*+<n^II3LcT0w(m3!ow^Iu+Grz(v6o}VKL~6 z|0ub|`5u0ET-VEk1}S!+@K!RZ=BE(kmYm|M^>tyDcQD14 z)gvsb(7j}-4ODE!1AoVih9|5b2cCm@#Lwaa2GG}KyO4XfMtS(7okC2_j;O|-jDVJW5 z`zMgYh5K6SX=TyGCgYFsFHOnN^PnbreTMuL%XJt6)&X8 zT)*c%AKCbz5%F$Gxz(JMFmhO~?8xa!PdVg=BcpxguX0tTnx6OU=E<=PCi8wC^~-JV zXPfVjK$LblS4G1Q6oprJGquXsCwNlE`c4L!SzndpO!0rUk&z}MBf9TLo+A;3t`~d0 zqWScxa2%mr>-B?mgFYaoZyubuI@Y&yC3`$E*{#GhqxuPKwL7jGdG1hz`p)cM6&e1y zaCV2WPGU~LG}^n#B;THAxrgaCu@J&o_Tt&{d8Io#L~u1=S&#FvLSTV|Kube>h$jT^ zlJegEU7-dqF_DrVO*y*dt}}`hOS1S4$StuLjg$?$4prLO{;E$Z2zhFgnDr&$LNgTMpAOvN_4dMOCjUa{_LnHYxpdcXhclmY zhoVpMeZ%RST^>BwR}FJ#fp(+{moZ+YnA(+tXe=cdp^y!9171z-o$L<28e3!$77;Gi za&h9dPcrxz%kWq{pR&bb4L>u718O$*1m|R~apPydf!e&44;oL7 zQ#Zn9?@t!RJDv4MyC_6o7!16aBc`mYL79a3trAdoiGIOzmjXPc*`P1^ts+uP z+kp+qX^-Q?2L>R9h9v3n1Vp+-8QL%!1ho?{Z;e<9G?)%z1q^mr`6uy8WqB`4w|(_z zEDGFMj7HgUKmn@KF{y^XrMx5oL zZceK8qola*y}NyXHxxcVu!>SqWa~>zPFVSD5aP!Y@#iONT!$mH>Ndn^w}+K~+?$+X zA9@HQd)bVz{G%_Oj6%~AEZ5qoLHa2YY;W^UbkgS5lh7Q47p?CJ4{k#M0 z@%;B~^#7zZc9C=dB6m2xW$zx{O_uAf!%9%0QgJw5(>>3Hw&_9Chky@oWCK!5Ccyq! zaVsyoFXC@?Sp0wt2`5}p2WSqOx1Z~R^PN+hwEKTW7F9PuEE5u5rRb9}5Ul<+R46a4 zs4@EYH>?8DkF+IszI9Mnfd` zjYcaD(Brn>4aNgiX;VF;S!&89CH_b^IVj}c@(@5$7!NRN=kC?Z&G|5<_;Wdt)sE ziAfslSs>wV0nxiVO@mF4B0jtp$YHgy62t-yh_z+6hwJfXMMB=sWTlZY-Msti6)N}@ zvlJ4jyUHh0JOU`;ToPti_oFA6PW}y|#-UfcsBq4rw{fAm zlwEYWJaHKo8~dEC3Ihrkzm1rNM9aV>vklQ2khGxx2^&2$okR&a1CFRs@=21&znu zK;GtvY;L1TsL15GjvI(Pt>Dh*to_8Js3*QO%O7fjXaZkOx#B-bU7tr*fl$--AK@|* z*7AM>DM=Mff8hhFAo84N-Et);)|+9JA}+ns#a}0JW#OrnWBu`9;CGYZtJF9dk6R?M zQ3F?Z^8mG2)aE`wW9_@@GG=9{$D}lRptZnD(($yJ5>_u7NQLiMF5CP#lBe7?`~&S@ z2x1vFxT3pv>R)HpBK`(p>^!RX>d-23=UgE;j8$Tys9`$i+%T~c%nQFVDq4K3Eur^P zyTemg`bFfIWA$DIgWr_`p!-XmfL0wWNG|N$CHw)==m^%<>?)vooNDj0Oe{jszUy$$;9)S8`7tOb+m z=S;bpPR4po%>xe9ml>d76_QN8*)#_4q1uS1*`?~=e?${s^$7Q`|QgWh^WwIv^W zmig()k<9inQeT#fCH*-WaoFm_-G<`*M=4b|O!zN5B5^#BKMM6Zu`@3HpTIXS$D0qJ zp!n$EBSWOaKLVTbB>=xRi6_kvjAn~8ljoB!DqYb^+w=S@G^%xPAVNtqip*m-#<$WA zO&6l5x}rjfixM{dM*u4t7o8e6m=w<540Go)@?v_``r&oK&&|?UjK*4RM-T~iV39Yx zzvG4tOT5StMSp1fMXNTua*X%sHlIoNav_6>O#TD2p^WRL$J1J$cJVL;%tQ`jvVgvS zN9sQUZum}x8=hix&)8}r&=UHzc1xKGCSNeB(WsS~6;@Zz*^p$L&NgrQz|Jzbt%b>j zZdSchA)Bo$1;vC*FSj(a?1DNo7MQtypYuzC&3i0p{3#jae7f!%y30gx|4ATR4YL#j z19F6Sx6P~&0g_%q(@osj$T9K07+d2M8fNjjLPDE__dVEmn=Xq~KrEt4IkLh@Cd2A? z7)^!Svf~CxEB{eqZrT%ohNf;dZ7P|XhhJ#+)|o4ai~Wud)6Wnl=*7dv``E})XxyjmT%z=nLg$FSMzw}uXBpg(Pjx?!k?TSh>8B=s}$ z4LsF~bM$2Y`GK&y>LjPR#s^q!l25qC;!K8xysK?x8b@``J-^^EJX;lR)!=3bv+)gB zVtez~{)#8niF*KXTYT;z_2pWh|8JQ5%myLXAP>avFDL7dEQoJnxM;(ZezqYulb+zve$zB=(uqM_-(M-^|`?n zxH+v{gMhiZhy}AcnI$KuTa-=0L%(`2g5EvQvsT$+r2)b{B8Pa+JjctMLeHe@yyNHN z`wq#SiEi3QPeZbMH^kRsDvx9bZCn^d@>h1xt0!GW>iQ=Ped>{6d5MNU#FHur2}+6m zL+^1HymbfLUlc73^(vn|;~rQ{xt4SiO`fwVp1*m3n=3Y-hZx;#_Ry-#GKNiu8<;mV zPOLhKJT?bC6M5PDp`UMo3U!m2AfsmiKJPRQd{(qDk8|lUbIZgkUv-#?fUg!l2%1Og zi+vOo?mCIfW9XIcJV-Q6QEJ=^Qp}6w<`tC*))scx#n}|QH;Ohc-V{%$+zZr0D_9fa zwQI+eIkwDH;zjV!iUykE&nBC{SP7_m@(z)6i~9H4y)DlJ%32a^}?6Jp--QxxTkDE>KYc@Sw7#3xT-oI%^2b z-2X;qy5)jRFOU$c{`KY&jqARaif$S=t7kukf6uxGxo*|zE;PtWss z$iCmmQWCMOwAE*QAYE^`B{hP15~&7 zRlhE^ImBmkuW#&Ao@`Ym2V|8iP4oGirc%NNfjP6_IHUq^_aPhPn}xguD{)E}ojK;Z zz97}XJfXmu^K+ujF^|lxAqlmp>SQ0{7}AT3D3rUOR^L+b>B4sq<4sGIRP||aXpo@u zBHQ&Zq!BwV+8tDYi+|YUYo4L`%PJBR8a}N|4Nt@-C=HNwK$^tV8$!>kxb`H zW-rA-Cb@x^eX^}`X1JTEG2Kkv-OEowE+C3A7=AcUnF#-SI*=0^-6id-tZ1nWa(O)g zEt~*JS=aovaK1fc2v6Q1;rx>v&ZBr6&?Ge+Ti;jaz@@I7@3Z8&Sg~WXXD$B`IL{O{ zR?O}OgXpADuG)`#y@=y@<85OqH`qiTyf%*0dp@T3eG7U7v@;a^&3_j(=JWab;)O4R zJ`I1uIjk(mLgImfheFW~twjE66#ul^x(%vYVKzTAyI_t`baRMOi`9BQO}Wn{{r*`9 zq;j~GjkZpg5>k#1FSM7Ogt}d z!>MwRq8WG+C1q2$+`L#%?VU(t_?o|gA#x?gS_EAZo=(eyiA zCNF;X7IAees%^OYhXJX5}k6mk%;EL*tDa>Qw3{`f_%gU9$9=}RXJ-u|K zJof>NmYZWiPjF$&Em05g&qleh7XEh^t+%FA<@t7}GLMpQ2w&WL4$OK>XND z=+c#X(ET79#WacJSdHcE$YD>xIHv|No3xA;hAf!RI@P=sd)Gl;?=HH|`#n^KFyo>x zO84z_fc3gdkOn89>(H9p_(TT+D4NsOb+-$l7B0$0vE?|uI!&+>Xv02yLz@9)rumQ~ zF(i{Cs+2cL!Zer+X|Td}dkdw6`A}X8aWML3n9}X?$xi>938Q6u+XihUs*j_|BHb|D zPQZ*a`Km(kaTI7_sc$Jd_=~O8PR%Kv3a_s|n(<$?rlzj4F*_>rUl-&}3!yljbC^d5 zV=L~hk_&2m@rh^6O4JDa-Opn=ny(^*{hlO`Q+m`=)xMO9r$WSerP`9&dbd>1_q<@L4@mJYu9BI^?%wcjq ze|ST2Y!p_knP#}?QuU2lh!Kek$#-JyGL5@4>R-<5#p^nQedgm%*S+9Q*8zP@k%M)*o`BroiWE3LuKUR-x6qN z$?ar`F+TVQ!7B?Y?Thjl;o(?U$?%EFJrO8U`yOm}#-gzC2U3XkK^-5DA$UN=pE8Sr z5xc{Gb^@P2Ky5JYp5J^MXFTj=yC0~Qi4MwjM>EthSw5>XwZlp+B=>ju2<06y>u_jt z#Si&Vi@aS=xXr#C$9Y!kjzcl#Nli@GsM{2&bDiHcG6w&KQ@jVnzklS2*OU0vObKv3=rHUxVyW1fZ#R^1HlG&cMAc61}B2MySozz4ueZ@ck=PR=iGD8 zsqa_y)vfw||J|9Is=a%4Kdbv$-CcXt>=mu4u7HU~f(8QvgQ=t_s|5oCoB8_lKtXzy zG)eP)hk+61^wH6G(*k-@Ik`Am+1P`r+`OH@RA4U~D;OBBr61WwsmBe84u2NW1cG7C z?Xk{DzWF$12JTr>6x$nAFfR(v4eRW#WzqqvEy}&R=3fH;xL0&OA3JVDbD1#B>-sPW z{P~{a<9A=MD)FZc3f)kLLZK4=PY>)*Ta%TB0sf@-4`3GjK_g2pjc`t{dId_+_XNT}>xq~e#j@PG@z@yyC z&b2?a7*D?U^D9tm=*Il7mpf>2jStJEOsc!YQ+j7E!^=w7R_DEsX@~dSa($;i4s@^Z z-1EtlB!FOha_-wa^OTQV1_e<5#&TVDj!zIhM z1T@9*;LpiO@iT<}&)MZl;N0()KUEJez7w{4zE(M#YT-ZFJ1KrQDm-;;xreHF9e6m~ z?NmHv-bXz=A3WLUU-!M46FcqBCH9Fr>O*BJJBz@(xpj{iW-Dl_)W4@6AkICFJT9&t zyl)B|me}ZfxU#N}KmP)4C}emE;Mi!j@7%jKDRyjvSWkHgc@Pq z<&QngE&jLIafc??m+{esM5h2Y+ZTenMv1_uL4W^+?jz4;}$L3XdQYbPcSxD|`baaOjH*d1*%R8Zn{dC_;n%Y6DlI;q5ll zDwnAw9ccq(_vihSusj|#5GyWdXp>}*^2S0I~Iq&55Y zQFv*8D?5Esm1mOs(7txkv;Ug)43zR-&&a=B#9q~=Fxzv{y>a!{m$UxTm?7J5q_{9U zU=8YdJm2s#liOKkw=rMQ?^x&ueDwu*D7=9v$EyHjdfT2k!U+zVBw2*OYiBr4<* z&vd(buopYeG>>_t`T0<|t~5`0N<2?Q9tRFk59K@+yqkFbBx>!iV*bvtrNZ$UEOaqnjO++ibDTV8X2O~Oj&G~c8Ad^J7SCPIjA*T}u_ znQyR13i;36IBl9s{mVp8Z>OJm%;bl2lgMn6I1!ekjim*nQWhx&T`Qx9^hpZ7xRK{H z@r%||oC=yoCwL61hFn3Bi1t{mmUAATaB^Mbz5D)z_$S-l z_;&K)iY*LZyB&Fg;3ik?{AE^%elDSM{1yXMySuL?N_T>k;TYoP15v^%i z3?J?+U-9!tzb}27TR$FINtw11UQL!u6@r|C{8!`{ntN^>kD!$Z9hkLQ|R5?{O5?tRH>W=`Y zhVHb~3&_EWds@A@y+aN@X{8V=*Cam=ObBHy{o5a&V)cZqtu7*y?5+~^1>Td|H_Eja zLhZ-zE6IGJk8IJ8w$2e_l~8}qFl(s)Nx~TyKT)75le*;g7pkA?*P;th_DB<8X9cHW zu~S38qr3&j+%iOO=Nzm1N8`5hr7}Cf*3UEGGNb;oNt8^Sd!TmGXI;U+uY;4aEa4WM zj(V6m@%w1c2W|G;oU#2Oz@s8OX{~zU7$Cx)Nuub+Z5LL&5#&feyYcen{bwt4>&%qB z9lD-S-~V<1Xc%&=+ z$zqYdqs3ceC*uy{E{oRpj z)O!whl@17Y4r%8@f}1Z(6zhG@2?$~4PYNzcQ77rkysm0sVz+4Er_>L4;+SwlgvXD% zzA=GjF-%e1F8Mu~vPu6Tbw>L+ZW>C`CK!qlJ7nNkk-VlJW$yV{?@gEol?k8kIyrY( zL(vP8tcOwChk4H-)rD-)Lqfz?gfsy90*z#^RQvw6qn8>^{m}ratTCv5uP21@{n3ffQ>(RloA9l)$Cm{-hPtAr3+_abcdVU z-@94;ZT+nS!5Mao@B6AJSPRFoO(&&v3^IIK<#$A|5z=ME{h^oN>+ao(lv4#Zz3Wf0 z^{X#f=Bb%m6WuSm1V2bUMPna09XI0rK%t0RSPqjIQyy>zNHTr!ki(waO5{RVoO{8k zLMupi3ZpP8mJd}{-*W{f_KEJ~&wjhC+B|HC zUtH@z-(50l2OgP#9?=~MRzHKYLf&)Ov!ozY$v9LqWHw4oH0Laa-OKA&Xc7Po)d61@ zLllr=(B5jcFmc%)*t766?!y6#XT#e7PG!+f(w~SvGUh9q92Q&}lL6)iVeV&{Z-1X6 zBBPM#XOpk~{G_75n=zFx#&tL>qkQHk{ULkoB!bCLHL;MPr3_cg28I+?^wvDR%XC{| zZJ3P_8f>1hmLUrnYe)}{5tNmv!f!x-8L#wi@i60f66)nLFKG?j+zC%7jSsTjzJ(Cm z=#6Pt?YOu)d52akF#5USiY*??yrFLCu8lfWBu*udDlKW%-nOOoF_o#J;(d@k|0OZe)%iq zu0bWL$Tt5y%$$yV4O-YOwXkR+8_7yvNI}Tl*MTnaz1S(l?0lNOn2Sw3`-fkq7VM|H zo%xA~1|!cASTvU@MhQi=DG0VFwAc&aZS8lGu#MdtkTvD25yA$6u5dXWi|gs2GuH(x z|8`uOYS>Q*qQ)-bgGLkUTy^j*TC`*tBBh^)(UE@A9(k@ScsVYe<%jf8`@l`w)0Q2a zp|Rq^3?cuBhO^Y8x}F*mGpD~^d}LnL$GVcd@%nr~i+jEyhCqp6OuH}lro%!^=Q(Dm z`%jl;6E^I2w%K|UgJZnfD=BHNm!Rq{f5%>Tr(sD^2^TFl^vgRAs{L zBSjI%FGXrm^oFvMIJo?84puJd{9Nt2>Ch=j0Q>BmSy`PCqOc)&)nWLqGDJ1DXWeI1 zF8!86@D>A;^Eaf@K+}~&QD-7zf#v?ts<1tk#M<>;J}Jy1V`cJpVc&y#{4Q`^j3gz~ zF9sSme>J)D(~Fk2@DSezEq;wf)w`#|Af*Y#xyaE%abQdg{}xI<9)@v2E}uI^6Gh>N z9u~5XA!`&K$c~q}0(Z3jLIm4axH*^myB|hVu}lUjhj0wmFlMTq(@2_B5-C|~^vb*p z(*QX#o$Oyv+%HAqBeN^S6{Ss^nM2yfyOi7bkAN4_bw2(JG zJv|+myrbw-c!I-~(Xseg)>Hj|tGZ zii*h~s4-em0Rp~u(65utsP)it5l#C`37d=AmR)`nu@VoOir;na$7DjM5O!_h8m>p4 zwMLQ6PN3(D?+R^U+IY4SMQUlZ^~3By3MA$zvzAk#T!x8B)?2+wd@X{HS7B>Hia|1%a&X_vrH{b#(g7@@a@oQ+ zbYyXR=7ISD8bbSxh6yRR?kP$959K;=&YzY#2W|VT$Qb2_9$L|v>v>;JBrovu&4J+8 zdNS=2fJsmNt*MJ^E*+w_+QOMq;T`-CgPJ}$?40^WSq(V~CVUg&3P+{DnP)NT%IrXoAFgRKr4x1ZBkw|Z9~C!1$$6orObB`obo z4CqW-hzmXQZx^nJul;yVKwfQtuqjW(05lY2F0xv;&p7{aje*i;xX z%29?ec4=+uu@1pa40aLc=N;ndio8SLAoQNwx30NGs6ktCF6#^}eS8*~lxiAgIk!4x z=9eE3#58f6to|@i@9DOCxY8D1uYXgcKtx`3d_?08QsO;0Dyeml&A8%KJX$ZOr)*Lr z&%HtH<4RN^ibMd|sNKFXc#8A-m?Y9Ca6$=U)9)`0)GZ^ai;CV`#};kuZSi5z<4l%% zsG^7~1;T|Ih2LxHEpcosw^Ci8Z&asug;B{1(q;6y{4w6;^lwh_zNy4-?Fgi^&td4j+;v5j zAAaR4$&&Fr7nnVQ(_@V61}xO2HN&~3mcnOZD0cboG&W^;V_iCBXoETU7m|m;M|c#E z#w${lVQrOHa2%+a_~rES=2QBDPlc=@{WP2XePX*B>UeJ!zI|)So+Cev?GFKHH0(#q zKJz(!7G3WS!a(o$330S_#YfDz)hm=i6?QFPb#odjMaRVs#CEx4p{379a5E>tZBTS^td z$A1myM^J-zASBS?R|d;_^ec8N&g96cDs6U?*Mrz~d>t!iVg(1zq}Q#~m> zI+~$eRD;SG8%h2#;^G`jmGr9~&Yu}(wLf>esDmE(#&o+10d{f6z@4@p_>w@l#AnV- zE7$`*zA`p>+I>ZhkhUAFQEuWFK0R~LzO@_zBW5(*n$-I*j02Jwv4;RZW{egC_m+(i z(`J3yu(F#V60=r^7@}F!0G| zTqOeYLRj;Dh*7>HeXaX zq-BD)?pV-x3$%u$7Z+U~nh0x4W%Y!CE!ERdTXRqfhljqaYG$y^{jK{14xN?&?ieYl zrNr{f9A?9Je83KanNi*#{KbF+A>(HnjAGXU<-w8BcJ?)Rc5t0Q4qlBE9!o@#dn(nq z0MyKTOgvjBDb@fQwFWf8fpAO@D35%acL)&dk>M$0($5MeB|o&E{)%8Z-&S)pIS#V~ z;S8DYHUQ#E$s?uI*WuZItKKVX_s)l50^qGio}l;UAQ>>BYR<5IMGW=61 zhy)@gAi1DDh=xHHtN~H%K|Iuu;$S;Q53JqdC>*m=4#yV)DFpNIqMminH9_rq2Jq;B ze+2gg&$3n}Mq3>`CF?PZfB{q)wx6h|DY`69q4lN~h%`(lj{zfe6Lpni%j+;s4Izii zt3?QoX1>%%1eJl`YtZ9ET;2d&vNQSUZe|}Jrf_|T*l=yMh%+oU0%7J0YEQoNHn(eZ zw{KrYnK_(TL`cKSa~Gg*t2R9Pr>xqVP!?qqNEnplrbzp#R;h-6FqkC5lsM3m5XrLd zX51MWC8I0A&hS^Glm%a+;JIp}W`D+O81Q{8Ok3M9q&}ELqMO?*Zdtv~y=MvRX6xo_ z$lXb&KNo)NZtqG?;5?6YunG(u$t*Z<9xFZzb?9f?PdO+=*rGO*bklgqoS($ z77tE1>13a56eZ`zT}D8pfg!kGDq0+2c6p9;nsB?nnEiW}Qgir5mt7tY>s$teP4x}^ z8I@?)^1J?)N?F?2^o$$`}mKJV+|L@qY&D%H&qO>bGeE%5jU%l zCwS#R)me_GO|Hg_pYEzqMnJ-wslcI6&(^rQ?WCOjS@v&!8eYVvL5>+eikG0Lk12fL zvq^Ib%c^A~(n;$jIQrs+j+B2}_Tbodt;hqNC*R0_7uSogIo>S}FrLJBAeM5@PKytV z11v7^k;w>#Hu9I2;W;Q51?6tG5MW0yRgLnXWRVY+Hyb11EYm6nYS#_}iK@RIu*yzn z7T{lzG7Cq?aTS`&Cx<&5P3P>DOkHu~lJIgdS!ayob2PuyzF4`4_G z;fWi3U_$4)cMi3)V;i&slj`U(ixB6d%&NqKH%`x~ZB73`K@<;aY2x-6CEAfVS z30N65#_+3@y?+GjFw9ygQ29ew;C~{uz_ph;);le&8|vQAHwTfQ5G*?7X?xh`Wx13S z&@C8ytghLcK5keyenFD1IeD7v*RA>`%QzI!TE^g5mDLpG*<6q%AFGwZWTAI9 zk%w)WDfTe#o-{5iSPc1=WQrg^8t;Xyb-MF|>ePFalrtzj6jLpcE&S}`h2$gtsgJ&Q ztkB$epuR*PhwGJoTK|_@1V1+?&m)OlRFjmSW0f>#el^*9;RKlsEd5!E4UD;NA3Tl` z+K3M8iJJNC(U&HE2}6MI9eu@mc)l;+SlNFKq8hZQtba(!(bzLHIUk`=Gpd)oe-Gnv zN6&SgbHG1?{6r*^XY5XetQPrckQeO<>wK&vAGb1tbAtX5LyeYBP|xuF#n0CAHc zHJu9TC3cHptIS%-hHYy)zqY`g36#%e*d-(oiFdn+;k7$*X|PepP4FM-5!&7(;>@$j zin3Z{A_&X6{(5Iasf$20mPOWwXkq8^HM|;wDX;5N0)3jS;?FT6bl$k^*1XoE4=WQ{ zqO(+YDdJp0m2^{=?z2l|c3K<3#Dan($pnP8P0DE0|5AmrCLg;|-OCqJ8oO`O`rfX+ zO!s{0%3WZg8P;6`{bWeRn*v3pt~K873u?x3y8kA**`ZO*fwD$(;vwrA{PyAw?8f0F z=#ug?r_|w5mjMcGLv=SkhDod679)MYk=NtWa|#yWnFVxpMU3>I;bY=HP;c*(F>4g?nUpCPLRlO;BJpPyIQkM}U^(w~q0pI|wZQ<18J`oWkBjLk;kP$c6ko znNC}d9Z$mk)B!>`@(rhrJYFauY&r)@N4Byo5ST)c` zF##$N;iE)b#ERnXuGlT;K6N-jTmAjjE5%CZX=~}$dv6!P>Ah89V<$kgqc`umO5Se3 z02R7?S*2k(qKF}QLZ8?+MrzH>$jvu@?Q;hSt>*;2hcBYuo?`n3Sb~3}p}B%!Wr!r7 zg;PGBjOU3$F!MAW8_>hxU4W(8{b|vcXogMjSR{3CRI#02WW3ptX&#aYZjCH=TVNO6 z^-;+cB(&-v_~2urF04UDgE(5=hlaKU}D;ZQBv?e*^M=C#hlJMCXf~JgsXx zx5hTE#(9Y{8m#asBAi0#VosT|?Ms@r*YeFNoUmy=<8HS7Me4LKD<(yh6`r$Y)hoN% zi*CM;wKlY$IpTp$V+6Z1z6=M|%tcRp`m}5rHXC8Cfx#QLfQED>Y5ORU2_pygxid7uTZ^> zU==qi3{t}&3Zcs|U{`i6ghlfXvE@E{D0-uy!DlBt%|cc{6f3j2bm3=!ti4B&b1ciU zY7Oe+%*lfv2wK+Pp_;eg+_zfG!6>)Rd5ORg{M`>tjrT5N0-_?a(&|w~?rq-8vx$2% zj@-@YpzlTldlbLIk3%#mu;uW4kLU`_0XTWkB3ne2?BBm5MD!Hm97CJl>=~36OlB2D z{lK?%CXF3o;(Do~FXvaVBC)DEF1sS;lQ84P(i;YloklE+x95Vbf5-#3`oC#xscE^w z!UcG$4i@7X+@|EZEg*UL1aP|mAwc8uMP45Jbm`BV^~`zw17bJgdho$-!#}E0TG<0j zbWz5vXc3(0?}}AMQCJhk5dA7>pWr$7icr z&I+WOfVz#+YNW64e8p$NljK~N`cR@o)I-7~%>2j7sHQ9(kM9n=o?8sr$p#*|Dyxrq z%ycJcepH8aFyzhH&>nWAbw_gHuu!^!iT zwjvn3H3wjGb-HN^DTeK|p+Uznf5^np>(u<1>dTObsi`OP*htcsQBfgYYCYBviibA> ziP1abC>e8kd7?F;lg`vfs}2VQ5OMd38yOSB@Y7ecL{v7xYj#C7=5Impe>JmNceAf9 zj-u&4DlX~GZv|>Xl3kwA_7~Xcpj?a?cCvN{jNrYu%)y;Tft`yRIFsQu%??n80->Xx z%Y}CsQM`|3QMURsnWyf*-2^uHSB5q0K#z`T4IY*Pk}urqf3EPuhH4j%1&(NaeP3co zQ0RQ)X;kdbD&r}RNr4 zkF(h5st@^<^Q};jJZ6nk7Bcc|@Z)>(;YkNBfMHTz{nuCKw?-#C1i2^~J+WEenJ1ds z%(T^8NqZwtNYS@3{)Q#ovmq*ZvcY}lhOMV9G0VZU_c+_V(ZZa9GJ zf6lHiNG%UsH3R)^`ft`2r8u1g_9!A^L~9mV3lh>n-p9$E$1b%3`&CQ#hC>8)mnlC6 zSl{${q4-|-xy~%lAqnn`y9o8vGG9Hmr9?X3kjv~+TH|fLMH3$~j%8myNB&Cj9kJIK zQ7*KPn0hgHDGMq$SFm4IjB5B~A3z+fDA|^5>Qv_|v!uD?0Hw!WGlqw)Uu^vFn{fjE z{O8vhCbK0Bhd2qU1@w4$c{7w?VFQBADM>~O$*`^<;_bnsq*_-{>tTUx9>!rc(+$hz zBE{#8K!U>FU(_t;sXJ0Hz|`~=DemNCYX1HW<(n=Kf3j0d#jcGi1b)oebpGzRM_$N% zNb14{-jStBm466pCmMnW!B6j;x;sq<`DQ0R-tx81?iJgSku@xtXIfyI!QxZ$9l6s> zzTEPNg|DcE7IZYx0Eiyz5tn}F&flB5cB_)qa!+au`n)K;WK188z?;@J}_q4v@ zB3~9Jn~%u*U}tIAX#rVbKYgx1*4ypd*h7g&7n{DIk21ySU|Oqa!n@CrErQc-7ZHiP zk~mcGpYOv8)Tw5J4r=biso3U0Vz~gnWv+VEH;ma;_CT-bG0}Z##szUIJFNIPXjRln zQ`?qleVC)IxADZ`9I9Z?`z#3NO-?qbGMGM}Qb6Q$&FkKRW-hkNB_( zXH^KD#h}sq1WGcNKj=Xt_UWLTe1Xc92gOxEu!6KwUn}R<`ejOfb>?#t14Bhn9eY8} ziG4STtDA7}V75m+gJr-3SJpa;%)5eG5F4#5jTUT*m3lZSr}e@vf^7LN)pde_Ccspj zfP(V}oCA>eZQba!;10cL%o+Wz(Qn2|?ml7u*gqtFTZBXaV>Pz-Y?nd^c)MwplV27B zb&xm83i6nb)HwRQTDc@Y?nk4LVpkh9I`sbka&yD0hub)&!C zlA^6*`OG+z6HI%*L08bcOeKqR2mzvRQlP_j{MeC5hWERCVo%B?qe^3Y0qOY&s&TY7jj2%C57*DhW1M? z17_=#%AcE0Vxk8v#}NoD(2IKN{K8q+oDd$euxu(gbTL*R$(@sAjRw4xFY(f6SQEH# zl*e$05sP($HLJ&Yi0DY!79w}yYCW=fiF;lSY`>*d)Da7f64Av!F?}IH)r&xAW92f! z1lL|HJ50T8@G_2E942)6Xg+8PEM2g+f_4r&Bd=10h>B>qq*Q){4JTIrg_o14?XLsMKk0;Kvwit6!VbfxSDNq5gL_U`->E~DTHR$6DuO( zq_U|fWLENv2j^?@8h`bjx5RBzIcBwBe6}JDD+&?1Er7H?!x#SpFlRcC4t1iC=2sFl}IOnqLqG z@t0Sl_m{zH*TZF}%ad-F06f|Ox#XHt!DXb8Z0O3*#;NxM136Nh)XaX$mC$XC9t!SY z6bO)di_1Y{;glu+{+n1~RMMbw>1t-5IKqd1s^F?n=4WNraad0`rK~e%3yxV>?iqke z0vLG_S0_BYVe(Z;7$WE{12wUaiW_R6+*B!-Ddi0EAA`cXO?xz)C4Pio=&H>dh`tqO zJ}pKHvY|#Q8_mgDD8wJxal;S0A~>!K+h{;qg{^3aQ&h$_Eu-hm{vU z*!Z^hMy5;F-XV$gnmX^=NDp7on|?K>rl^GBv@B}xC3r$;;Bs;wyeMB&UX;p;8O!*D zfCp$|wbBBjChae;Gm&>88pN9{NcH_}`2Km$sWMmy3>RS%wpgqnk|mb5X?G|~HB9|U z#ydyTVzeXkh)Ik>5jPvV$B9tAb>T!Hz*WVlZwgnEb9TL|0yOtaXW5zb2+n|h04qzu zzO%MC|CBR4!5p=#tQ<*3EC^7`zm4$2UhKzG+3J!+41UB8qC(yG(NtX15ov}jzw_H= z=Ys^XX5?xc@o%`ggYy^Zomp63nCc8LNYpVSz;f)^B!}3=36b^$lr6`{jE5lRgX6Ho zZi_`8M&qJMf%4yHHp+-U`Qv=f4zIHJ8Vnw`lD80NGs&q&;w6or=ZFivMU`L|_ZDzP zNlvNdVd2%^iK0EV%qKQ4#L9Br2amK1R7X#~QBMws49 z+%P*E9hYJR(0+CG&pte7VG@U;vTumZOFL%n*JQg1b}uybH4GE`oadbG=CvkJhZ?ni!Trq&~8OA1lt2ZwbSLvuu_+ zHQ&%8J`h=vqO>+EYv9KgI&(rqna;44Wn2OCuzQkrN@1~3(T-%9^2iI+abUy~Y4;B{ zqC)|@?yNW$D66ULbBM^{RlertfiC-s&x6&IunYRUjpThfFoVuwmP6gM4|aw|J9ZT! za>#@(YJ_7X+bLMAGrSMI?@ADr)SM{#yWbBIiuy+V@|~DZ8z~pjt{zB=F+tbkS1X}R zi(i0f#B(d5ZdsjM5ElL9GC-B`5k)#}bu)CTVC4Uuq(2irJ+M8wZH*%G8G0vQd?d#RNUc~aa+Lcit>n*ladjePGRrI*CH zMr2p3@(V7snx&joh4&S)^WwTeq7g$r78%+RVI8+aO5y`KVl$$4DihVti24&``? zo~dt^+f^gkO4IkNQ3$$qM9s{Fjn)TwT^YGbqt7}kK@?V3_2=tgMnWgPU~)oW*GFvC z)sJ18Gz;fh%wNS@Hp1LwWgno1v{}W`-)NeEZ$4Q&3?WtElz9OPvnH-I>o*OEgh>QG zh>Q#XkLojSaPXY>QpE7zcDpu4vh@v~fS6Rb*`s#*?|(RIT^zy{d*pyX;VN?{Lp^D_ z$PN{bG(#E4buB`aE`f^@%LKK^SF*gv^R?jAk5S7=vF-0fDjk}Onm~p5xIG05@I7}E zA9_2xW44n~sL(yDRRsIs))C=|8$>fh=LX*}o(S6;2Ty;GWudCNd#C>T=SZ5@MJ^o2 zz<$~F#jNDrVchRXp?2k_Op&*LJhz2njY@T=K{FqGtR7^6?ziChex@ z?pV^amWY@}MeRh;K}*J%9L>E}XpI=YQb|3{Jgf?{>?w=dR@%bt4vKo@y%^J|dyL6r zi6tXicQ@@@iiBq0fT^?!YeFZ{B&(kvTatPysliA4&3}5QLmw5$pBFhA_R0|JTqh^9 zJCd_QN05lqQ=6*@R7C~buB0iZpoCl`eckz9_5B13jB}-v6PO%9ZJ{M4V4kD*jm z%^z|2E1!BZLq0AVT;95_MtTmS6<_gqP_cWV-TZvmC}q9I%aS|_oo0dE?+l6~D;!R| z_2@{V8YV;5V3ahCrqRc17)9J;?M6mPx5tUAuy?De&XvpE3K~y>9%r;~KQoZJj}N?S z*qj!my=tJ<%^O}@L_IJx|3*67v(mpFY&nTBOm2w6n@f{1T;4^?p&Ad{3MLGb@egO*mNl#?oyXE^)eDs^NA2sQ41uY}ognGtp~u32F%Nb2 zsmWN(NQfpdwtW9)OY&hI(4T7W_C6s+j{2Zjs zZo|no*h;70vNKEVQM(U@a8^VyXRU@0^_ws6$M0P*!L56t7MB!nQ-6t5grZ@?j(jTQ zJL6rXk3rseVZC(BtLK>_zK@6r)ueuco69E{TcyT0d_T;!KIj(ytiI&D4%af~=_5N_ zvjZuVX{6$B%70%8J{_Hls4)Tf(s-6CjJ}`x>gyCw8)kOVHVngK8ynZr_|_9)Q`+66m7E`3W~CGIXxB%|c`dB*6=b#9;`dFzWbaXEl|tb=N|Ht8cp^hgb1 zX7?6f*-Id9qi&MoDBiN^WmOba>i{ygWs^M=)wzr`pLE98qP94ud>IStdX!cL#iL0g z0;5kMo-oM22RQja<6V8($>g!D`Rr|>|2Au@^FwdES_)s~AT31nSKY4bhhdv%N^F6BF+rI`SHMw@Czif>{@ zQ~jHaj&OS&R_`DvEPn4Tm%kaK{|0>-M*RS0{i)raz?w(F8UpZSW56>AnB1@aLFM<0 z`;ob`N3y{+ziX*Fu@_oMkDS>KDiTAoGD`Z6hZ`J7emGZ#lZsv%!R;T}UtMc1={)6p zrbF$SIj1usIe!&Z_QaTm8hF_e#R}bby5Vx_KS|fGP8LZ3ifmPLx+^NwS|NoHEHece z$IEengNOK?ea{Pa1h*`@TY$T!?G?b2m-`H&2E4j`Ytfn|lk;B@8H81DgvE$3Z6@t*JyHUwESM3_eT>d7h!$w|8ngl27q3h{@Z~vT*wNs|4$la*dt+Pz{Mp z^a-0jKf`dkJnSzms`=r+h)*QnsJYrAb5D<&<0bSI7jqtV9nm=eACV7tCH0%Ef+ih>x{nj^>k;3?$5l|~C-o2F> zii{)t6&qEs;daUWje&=@KV?5%MgV_8LIuZfg1l%7M)RSFMG5l;P(Rh^jjV($SHm(2 zSMjoBQrz9B>B&4C_wB(En`2xKe@Gh*8BUOH-D7HJhm7~9Z*`4(!E>f>rTXz;Pz(EN zpZTQTKkEYFpHcTj0`8j4F?T7NQiW^PebsO0_13+$?hjkbmgN!rmgEKDj_-DR>_u11 z+JE*2vQI`0?wZ;yQAytPP>r^C?7B!AaX)20E_H4l9mO|^u{B)e6zZ$pM5%okx24DB z7N5?=F3)}p6oa1KBb9V$rPBt)*Ee0;*{wH?1Q z6D99vinL;57ajbA3`e-`!AoXm1NA#R28dU8&EIIUcbwK(EdPy?)viBtkNq*J3l^X&q(pxqJp4^A zFe0x5vqSfmKQUG2NYoDH;6IY@@Q-1d z=4eC3Ad@mdzXhZ-NID(uRpkTdw4cY}E5x<8Z$3XeLAl=ks%2hthQ~NSLzCH(WSQ%w zh&OX5dXS5vX7ZmJZY+C!dfO3P;@nvkt$2MiR|H~ljmRo#&+0%KRNI-d9&RSbL!z4- zx)+umWaSZ4XGo1kffGy{=5TrSrQn|G$h%!#LiyO9@Au@S!(nG2_-_B9(2PvG@z(!2 zFf6!{Jn#+Q%eO(hwb|2jMRdSW!oKT%AvSCXvXO#25jKC(y@qh*mgfvlXc zGJdRiejUD{J7@D1dIm2Y6Z@wSyYBAz{*utx+6t_S5UM-aO?E-17RBg4DrjsLqJk%b zt-kTCo$*u(tO? z_N=^S8Kgm%18M={I07aihQfRPn*bIiv~!{JFeyU1fbEu}3(~!>y>OEl#9wAboul+w zJ*rl^%Pfofc=~{HzZlJiTFRW(Hp_Hv%iJ|yddy9Ylw7lSQ8x9Z;gq5h-pLT->qkwM zBwEnOJ#u0HsoK)`tU|9x{E-a3NIHD`uKUlrXQLI+XG9HcAn1f}`Gp7`u2r%YvJ4$; zSQUkRn(RuMyU`<+yh^(AF+!(=g3O=U+SNgWK7S=WfPS!mtXYHmRDa* zRT$*xzz(!@v;ebvIXJzZ^@V{EmGE)`g6zO&Iu6ZH~)1#ken0jazk>>;kgUSc$V;|jlC|0U+2q550J z%}$I)Urm!r#?b{##mmmi&dDa{W#hq3BaTKT>SAdntR*Y|Pl(q$F`5roK5I3L~8^o3NFNl9&$bwx#E;deXHjWUgzc7Io zj_z(^G&HZ{RR86lgOi%tzu+OR|778n4-PM&69*SNCx?Rr$G=;+y2*LGg8b8=|D%Pg z&g+qA4lS^&qq_?TEaw4+xY7PQgeB--_D=3D_J4Rs!w+-K)Q#EMK7ntOS8pe3pD{{6J1YHeMbS zC-gUzB}iD_(ZvDyx|}u+Kx;6E6U6%OfxieBmeN!bqv2-%hvR=sH0^p>lDu^Kk!d{@20? zzlQTlE%2{QeFgYi{u+(2j0+g(=IEm1=x8rS^Op-$e_8%(Snai-EP-x7S)d#E6_k^k zPneTOn2TG7i&L0SP?(#Wg_BE|^WXFxEp4p4|G%{VDjzD*e=NG9jqB_D-hYe!QB&Gr z=YQP&k9Jluvu|iyi&@=E%=%#|B3GEXyxV!bOB3Qzw-FX)oX(O z%@q~nKbMN>KlMFd-@5w;Wo)n0{2OI79RCcK$MYd{HqoIldr#;&i}>FKiA>^;ta3Q|2xV5h~NLE>woF`A2IMhQvToU`d_;KM-2Rr zl>axo{(qwj?Y}ouV94tekmu`GsYpV&<#n5dWTB!U3-jl%Z(e(0(yIj3NzuR+1_rD5 zuOIB7W0B>n5ZO&hO%C}09s^aFfL+f0Ees45jFPOBj@QyryF?VNQp?Hn7)k=P+_ zimk}%w@8+GTm&pNFD52BcgYMf0-Hia8%fXSEV+oe70y1v&u?4WIk)$N^chOyg5WWi zrBMh51h)rG`Ls0|h8qTiL;?cj3%;v9538npXMTTu8EWqHX5=n&L||>G==L5h2wNJ3 zdOPZ=Qrq@p)tfpl&H+gl^pH!}Q^j&~RMc`-EF|h}R1#9^Y1>^co8))w0-VDF?`msI zOMo9?bK@T^sIdtJ_Po2=H=Gi7vhy)MPA6<$Ef?=>85RUEO;-By@oTZzlWLropnMeG z7lB#NlgOe8Og%1eesJfNr^rR|gbvy`GssjsFj8Zygp@+x>kH zf^>>>gMvt-(%mJc(jg)t4U$6)jWkLsN_QijLr4hHokMrS(9FCWy{`Md?)&*Y@B1Fl z@o@Nur#Qww_qo=0eb#sF-Rr)Qs*`Y7HDfk<)t^}pZH`-?(8h#K>GY)Of*LhYrAO6^ z@5dbHY>dy81+WlhS*2@sqku&015KLf*0NV{u;vQsYcww^_2p(#N)?{=qr05Y;3)BH zbls2v*?QFaAQ<(<)E-jg# zH^$XC^Y`bl28-?|*xo07$@U9l;ko=q<&{Hq88$w;K?{yk0L>fJ;sin&>Gy8_bO>n+C zx2P2--cOC&t~lkoKuqpMn%9e;HX~8;pAF_Ow-=^~AA4AiW}aPCn=?dRGin*G5`Tc>$=n5;X2&P)D6tFl?)`%8zW?1<8=0~1zbWuji~gb#`K2`=9oZ@h!bys}r8kU^u(3FAw`ZJNzPyu5r^ z%Pd)??akQvq&K*oXysy$P5r%!&Yn{(Q*pF6D;jUd^M#m-rQ*EqisSZqx6HMoWbFDC zSsBNNcz0%zaK*BDS&1-v2OE#uL`?1@qUSRcUN(>S!t|=+3?K;?&r?!21j0@RI99FA z%n&y@+1{y;cLSv=yUL%TA*#ludbIYVp+(p`El${>8NxE6R%}xdJnb3F`=L{QL5Z{_{c^7AaMY*@os9w`*PYdcS9^8IcoH=g*$Iaii zd1>m%`$f6BL`TwC6%IRy50on&SeU%=>Wj(E3uob*Re0z!PD?Tx+xdIY2#*a0A*Xtn z@QP((FO|08V=ub#5MLXL6DQi7IU)R}#WKfhS8}9n;TijJYU9`!Zp3HOlB-H2?R26m zWamASt2=#?H?P+4>DEx=V1phT$C3%lI23uE6K#)CQX+XW;{fWmqK%FEc5#+`G`vbb z04*LUrI}6?fe`dgXs2E7HKSwR4?I!T7V|(sMs+9GWzG z5<((fy?x%}e9(S&qIb`=2||#$m1bDNg_tW%9D>zHYDo}-u+igbs)zPWulL1}S5e51 z`>B~Qx)5vVwyK{O)_OUH?iZ78Eu_zJGJ=X+W*Tv38gOEG<}db%xUyNwJ|=AQ zAEr=q`0!*!l#I@w9?AO#_Hb@V$0>0J`of^efHym&>DloIPU_OSZx$&QNe^ac zY?d3^mvtymOljjj57Uzimm9jSb0Z9wT*o3gnU18 zBc~#sPoJ~EQuBA!nxL^)iP_%yrl}4P-2T%BB&$6gZJ6qSy3K2-y+%Wl*aY#^sKHzoCv8!WhvZYV&_cQi=H9b*9_}dCaQ( za?;cYIoh>exkZq%MOz;^lYuTCbj4EToy_P*CsZucV1DT|JTXMF8#~Cv!;JYLRCw#7 zO)bI!{J?D@SulyVd;DMnXWYB^Zif0W4KDLu_{@n?HJmFz-h&IQ zsXtBjZFyd#{=mzQfY&EbJ$i)}u5jnyU&&(yX z)ClWz6ji7?WpudWqh}8TgwgoEiQTpAP9R3RXD>@y5x3I(KBim(4-D>C`)8g=V zTG7Tx_tp_aAtTmG%jxi}sM9MZV-X6tO`g2d>?uvo4M7gZ_xjUCWFv3)O+HJMHzWEYOQo^K&PYjm~u#D*tbJu z-xDHFKreHO`=pP?L-Y5}d2HA|{qJr3&-IaIL}c0h6OmsH-&-VB&Z0-L6JiF#APMrA z9$}qw3YA|xR4C2jdht|_o{tt4C8ASOdx`CZ2Z%R z7#S3x8Xam*GC> zrk^ypx-^^lI{Ed2y=T&T$fGX2I2|NJNw*kiqzFPoH}e7GLuN|np9D4k@a>TGXV*kO zl-=_1EnS;b&e-{$afGS=WupVjB z0p?iRUg<4A0n5bgaLC!V*-4FECdr+t1%FAi5ZlTta>y0~(UJR4SBVAMlc#nDY3E8H zRXVs6#j2CwJs&SM(XYS2Y*;t)f8ul@SQHD)t}ul9Q^aR8dbwdMbaI!Ml8InG&+p^9 z$><}x?m=I$LjKLn3;U25c?omTWYg_;Xk5C-EX!L3%|wM; z?Ve_Jr4UM)9%qFXP?XTwG6w<+X+R~nzNS|N?)RsBz%N+Z0P&3QcUb$qZU(77GU&4! zoneh}OH~=2@y>kA)jQNHPAy9ai-6pd#`M7bDkG!L;6k|TK?K*jylm01kIlTCHx^$W z%5zglW_XUh0#PA64@y2j?v;6@se;|%hAu@eE zl~8J6jaD-)Gb8dalBZdVH;3+f0TSgyQttOsBgG8b=jNiH8$9`>tY8}tL{sW4m}=Z@ zH^EXWz}Jb*LW|u*x%1QeV2(P2x*1dzXFM%P$+eEOBd<+P@KGDxNN%+Jk z?!(j2kQ72uDyi=B3n6#)2@O>*&i!PlaFl3grLLaX&SIK4TIKz+E8n6!?UN%e1fnr2 z;HPSdFTO&gx<{5|qQvyo<)rn9-~^7r*Ur?C_16U4tmE`%3u7|Jr^9SN)8yYTjW0=n z1%NC=t@?m4_pVt%%Y8@D=;vH8j=Lj2z8Lj3gCEYoEq(QX|56|=GqrbrMi+6UKoj_; z@y1P*UILTB_(SaFz37Dw-3S>4Yi7 znE(-_uU{iF`t#{frfztc7jDz%ka5)Ssx{uaU33Il@^P-n)XVcXYE6%nDU1uvMxB+d zV81ehaW<`qSLC~tQ+>tmk1&N_;xcG-5W+3pUw27Djf`|DY_UT=m7F={;5`;3$ov@o z#*Bi~eDoa`l6&Nn`j}E4%d&|OWyV}8#`v!^dDG$$cim+Jsj4<1zQ77aBXYZuhR{;l z_|0_RO+A5c?M025i_UUM8JIQ17t7;MuxuYw!5!{(k@bpyfy?3HYDiaoFPJcu++1_o zVV0=S)QNIQIGh3mK3JA!CtW`7=d)i9NOAwe=M0Km1z+gWjf|@&_9pxqCHuBAy-{Ba zwLLKQzf0vRU=$nBDZ*kLY*CRzQjuw-gx*A!ul>yGM~~90A1BuAReP_@bf@f&RkHY6 zm7dGYK#k_dw_{K27`@dy(Qd@sdh~S}ji9>yp)p{dy~(_gSh41^IQs~Ety;!BQ=iDu z>BQs9_E(U~>&in#8sz;Z#+^+0xCGu=WUg5Aq%@aRA-^~s83Sr5^EL8fUvId=WO}ON zXW5bRs4@!gMw5FIZpQRue6d^c>uZZjSgLLfCkze1I!oglYtJLjhn4dry-bAX!o{EO zGw-};Fc9n1Cx|;DuFSMcGR-uM;`f?LEHuI{lMA<;utNo5*tJeZD&C|2z{$d52OV8!W>t&y^ z=`?buG$4}UmW;MKQ|229Grqi*q#_aZ#P^fqzm?XsBkac;%9-Xn8^1176Ml#i7a_nH3T%(wuxnH?gS;@iUZtxn**7{xvrWa#B~TTl&ZYQPHn9Z8y7idw?f?zO@-X z$yi$D!l#!ZSpP-fKz}*Kv*&X3(&MST@n=;Q-7X=a!f#ki9-2*2{+l~R5VsP?8u`zY~($}fzX5G z6LTO3iFkX_-)r@FxK-jV19|%6QRQvCWxy|EE?oEo7SYB!*|7Bi9>f%_P ze%=}TKK3@4u{?%Sd1+C?cX_K12x*FkHf5tlA6UtjUV~{AUbU%k8Y}Eleam9`)KMXr zGLK6Pe7ztQrOJ&~G?K=q@>Y0x99!$tCkCd`?N&!PC#A7`3N_vQ{U2gEmDY!`@VLUmC`>VSp-?Npz0wZ~poO=eGT%HpY{CHZWD83%Q`l7F}x`=3L1sY>*D-pDj9k!4kv{&+93F)C;hf1ePLxV#|Xa z=g635pSP5v0uM#gOruh>moyqVs%T$%g?v|e;P26R<0LI}9H_7c>?TIkWh2T!QzYjN z{VSY!hgaJkOt{-OADC67d|ujjl0R){djo#b=5O^ZQ6n{%$$9$YD|2>Od!_KKqb%*l zE=Xb^sfxs|fOcRU(brVOn)4_vCOKo~Zb9GJb^z~QLGJsrQy{_&ciIDPO8&^Lb^KVW>)X^Y^PupqO31Fuz~(E$*W+@um+=y?&@1lK*MU~bQj;fkn1Tfs zrV*i8=UZx9@ndNp3O#dHbBn)b>*?~~^lB@~H6~>z;L&?2Z_bI9I+!KbGR|jo#ZHPd zc+*5B#ylSECGuNS^~!F{P3bqBar3=Uq=HK1cI(B}6k0T{*=F^<`qb6n=#|-1@g{(G z_jW9=cQo-G2^pGg-u?sgXg1(#N)u@NIQVZj-6z z$hApwm4du)_Lr-)&>-zK=2w`w|XQc|n!fYx z7=O*tLsn)byRv5;$9u-*GUZJz`Ym%nO-R!^?*dH_-=X2MpQ{cD?2qg!s7Q}!?;Jn4 zr7kG^6%Q6p_BCcCAlYTDUdM42SGG%ut+zHU2KdD+yYnUJZFIjw^+wn8RO}3lpH5$s%N!bi}u^m+o!-Ikg4Fmjde@CjO2mzt>K0yu9xfm)%#XAVmHG&fU9q*F7j6aE-yp zBock~oKSy$sk-@fLj}wW#sf75tbA`XSp*Egs7Glo3dLS*(!!PZ&ju}ewK4YSfEYZI zpHqq=@tYqH-Sfyq7qZ-qhiG%PzPD#WvfPFTDfQ^}NbaID6N{f@_v*DJ@j<|Iz8c?5 zb7b0D*gjXfNeC>^B7Eza6cucF#uS8uQ!r+*<`%-%A%BcwFC>*a7gFKSi2EhzwMa-_ zx*jY2`tzaUnvdf_FTNQ|VTvYW9NI+ie9ZD@%`j5DMl#$Pka+tGHc_F-Wqi)~$)1(? zaFpHn-KzeZ3q$42q;=-_uqu+aqj+PF2Z!#=m{gQGS*z*#C zcSeUoWQJ%mXgNB|d0d|vg^GQxy!IxWXOzBJBC#r-AAWKOa$AJQ#iZgg?x#{u24EEw zD_jKKdE8kPg~?98R_C6n`c}kN;PV$XK(rr~dEtRnp;1mto?G6>`@W{8-1!-<_zP>J zAw&LKB#W+8mLa6F3Xyti>(=xjeefvKGaDE{2uxCFf`{9Gt2PtLaVCPo+{}?mn#I ztr#rQ2!E0OA6`|ZX_5Zjr&_jBDJhjRv?AQ^oRZs>qgy*R`MzR%bAd-? zT7${KG5;|zhUKR==IIFSB+sP72}Pm)Q%`C_okwU&%L3C+e6ga zr7S|7O&-phNtzo<7cU69)uKqLpAHq~lXBBkzkrfW2;bRh#T-irEW3J5Z6&2TUP07s zPz3JyLK=}>S;|f{p|3mgwXVVF*YtYAk&BH>au!*v5#+m(O8xw=>-T06_P=OE^Uy@U zcn)o2iB9Yuzv1XJ^uZ zJpvybW~-UDWxM1WylNlCs6tV-C+IJ21we0~MJuutIDbwfi@lU$kmX{2Zf`!NRN1@Q zbXlhnEhkcDMDVX>!s5B=(5{GYiLZb(ZSt#!)mt9HgC{k4a+K z?!Q)fQh$LuITZQT6cJ2=%j_}Ao`zR-l$7fSko{&3R(hkcL2JdyTp@FfCMHT! zDbbM~u(7dlFv<5oDC>OR_ojC}83!CC87bxQ&K~7M1*=-phq^51Nuj zFJGLz(S(~Pq+;Zr-p4NxIUWRyVyZ&&FF*o7nn9?pSl$>Ll7j@);J%Dt`HvkMzw-$} za!l-rP31dAjI`Hb=?Enm@ea$c&$c#ds03bckXOuhQQ}c;$lJ7qq=#z_q}@RS^F+GV zZWxT2ZnnMz6*XDb@FZED97)H0J8!RjGPD8rx8=4MYI9ghpBjzf@3oEFg`>JQpyrJa zzYpK+_>V+%bnoUms-1cl!m#7%rJwgFi#dT_&m({u520+!4dF{RLsd80QLdB7zdK^^ zHBF+XqW*b(6LJU@GhD0_pZ@JxnL%l&=4gKP%RG{|gf5M@9k!&`L%)*_SSau-^=Jh{ zZbFCn0$E;;kUlqLuG7+Gh8vGTqc55}EuA4SvkG9k{eB?%yrwDi_Dq0$*v4X5$r7bvcm|H2?c@R)E4N7} zbqwd{GW8vNYEaai{M>x|@qrxq_*Gc|zSP;{ZWLc0%V2Gl2D3`HJX7nd?{W5uc~*BN zk404Er7N#oPq%~aj#&jypw2r7sx}Z<6t1tLTqrURY`|uIz7&| z=rjiCUm1u0ik3F)canLlVuDhJB5=cCFeg(wjN6-xzIk_5znOPBG2sK8slkHS{oUso=0L6oKzD#SXGD?3NutG{ zmvZ>t$JJAcqY)n7rpBP|vA?|lnvS=fvlzyDgBtZ7wS(4BsEZ)+@mQljANEq(?u=%$ zfb{(P!^KXlWaisSyqRQrR_u4;siC8b(Ub0*Sr=&GSg5NpP$H62^)Hnwe1E4i2V2Fj z?Fdhx9`1V1T>~_%gQ~W3HWJohiURb6QnI zKB1Z3m)|!X0{0k23H0PG`hvPRMv^C%JvLRvplFwaNp{!2z8J^uaNc!gEtq zkoc2tniHvgB{#!7Gmb9bCXoRV(b--V45ZYWjHafk?$*LtHgGz=V%eK!>6v@IWiPLV zl#4s6m9101bafIlUL!}s4C85qxh-od`MMarb~ek(iQUwa8C#e0WxeI{!>78?n^6xC zxupk`69+J(JLiG(1Z0*`1dAHy?w(j)TQ|O`hh*1vj-mTvO^Dtub-FGMpZ1+Y*Z|c`)uVok1R^i z?EN`Tbz9Qk{)(|?hIAB#{P0+T-RGd z)}2n-W^4e^P9#nU0hG*lT2i|c3oK96l=ZGAf^V&$#)yy;Yw9G0 zeN4(nNB&AK!+par9PQ!!g_rvXtNMq)_hG@|O2gqw4Uq3A;_2R>edzMRFMUPH)2BZX zx?UgWu203)BYve`OlY$q#j-5kyX;;8OGD#}?0a5uZOA)5ZhXfL*?DA6tHuNMI9v}n z#2YL|o?D)cWi$?tRqfkf?6rgWk~2+MN@qE4Wh-MzA8{o1x940e&EH{_^>dW*GiXKu zF+Kdumf_iLW8QjVYe>?=)6dx~j8%t`QI@!&Wdm*pHthLcG*qQ<%q2pg1$j79NGbp3 zN=dL$i`wZ`3NPfCCo1ZU6Rae)wdxhV?7=s)Ca2NT-&+wH zJ$ex;7eb~sRe|E`NK7U!kmP-`NH>_NyZWLuDqOa8pBrD4*!uJdX9heHwrF2LQIO5t zsqj-=Lb$6hl_$BWqpNdf@I5#>bt`v$OyVm8!2)w@Aw>!JnHJW?Px|jYZm$WL^QsfB zIyS+AG`02UL-rVc;)Nb6Lax=9D1djN@cLigg`PM%nFBldx%+^cp)Q62EOUs{$p)AC zRbaoooYSLf+{bogk@Zc>Tf^;d3CC2O4op57ml`YNY0|aE~!^qruCh^%k$! zX#4Q-1P0b)*q)mFI^s`X?Q60kc^;yyHb&c!mm=FmugLYd_ojj_6dKKbOnidVuTjHB;a1zq-GQ%m!^3+RGJ2##tW z`}T{t#Mi`_0E_|DqxCxtdDzptM@~jTfhBV(F^^L2jpb z=#wH8K4O`@hf9aVy*_Eb%gO13j<`Og&&}bjCn@7XP>VNd)we~H@dYmf#XBdx(lNro zbj_H_nxMXdqNKFVKDx^n)$2>~{Fm$lnW<+bv{s#8^=s2n%PwCOyfVP$7X|I`%)Y@> z7NkWf)RN)+o}o0-i=|~Ro%T53)l5sj5po`&0VI`-xxRszs%{(vva9Ov6hG9_#ylJX zIPL!13z0u=h60kJ_?wfUNkUMeRv;CdNXQ#oU2*yYD-EdcOUh@s>I4rN0!MX(2cL=a z)Eq08o?H-XW@_K9j}+R1GpO&{3cPaBZp!tZfq?AAHGc0B1X+U=`+n05!nyd0aklo3 zGP#s2IOmYYcmH6S&d&|lu0$A$rPmK!ahd9-y&jU1n;Oh{plxT5mMUkwz|Xa{VKlH% zN)1Yy_?kcfYEQKor1O3XS{U&JuHv?=kK0=2q2c)_t0|DzGkcJEOEe{7=0G`hemVED zA>QZO(UX7)gOJoaf<{7MHedq&6m-#PH{@;HcHq~#zh&tNg3|x>_zOMnkC1t?YwOQFn z*FwBM&&R|cr#*br=cH8$p>*n)HSS?S)J{PjO^eJ*ZZ0)XyxxgV&he{!5ogC2Sy30l z*g4i5>{KG4>`k1b3+B`l4e0T@rrg%|9!gv+oUwGXha6qcvQN{^M@1pzMWZ$oA77?PRcC&G;5%IjGXS1A3%T+6S2j;O8PwRQ5W^#@1C3QG@FJ1_XA&{D;^Eb4O^8e$x>&DgK6=m5wjjSb-Ckbe$AXEEh=qZiT!yp=Kb{bQ?$;>Y zht-UMgB7|Wq%Yv=zCKN;`A>iKpnzCR#mWr1q<69>cx1$Yx^OVyXNLBBpDv=8=_a~! zIo1camj*-*{|qSgp+!E*|L8aWqn!BNfBtKo+=T+S>83=NwB!dWj=psF$6&sz1f(y*3lT#_LNN0_S9R`?BCp1(xH!i)qbp9(HfD}S8zndP=&mnm!s2W_=F$gV%V!K2 z0eUzrX%?{wfw!K(3=tDnm}T8?NY)YYi39J}?vG~s{G@r+gwx&Z#LPw0bQm!LYVb2U z5^_Fecs!;g20$*j4Ssw3_SA#L|G==WF}MmN?RAN#a~fP02+lsE`>41mUuBQx4&KW& zFUyrY?-3^u&9+3)pEzSOVEA>e4ZY4ZOttsK`pe_S9Qj2Q?hrLECe{5S1OtuqYgr1O zznfAIHgxxoT4sYyYxiJO7iBuB}%ZsbMlEi=o*_$mCzp?8qRM5K%nj$(vOaGqnKx)hsIi_f0!I~p#Y^jYY zLMH|1AIC{|EZ-|&rd!+|wZH>k(EofZ@G)iu`$+VKgp{NbQYJIK*y>-n67zxt+l3NW z_Kd;3y!?6Un}r5z6H6S%nmTRPOsgFiN*!p%g@s#wD16JJdz-H1IJ7COe;of0VXb=- z$9~uJKUH-}@Jp+TJn?**Ts8OoN86U~J$ja%Do+8wu$h%iTx=Mw-d6v$Zp{h3i<`v+ zVvJQ@mBZy`YG;~@rXs3v`^TYp_q9$Be~(hA1BYf0R)!UwDem_%$VT2Wn@0QoVD%4P ztqkXOO=}Hk>`X}bxLr>aBjX{-`_Cc;QAE z#5HpJGXV_RIX3ppe9+|5is=Qq9*4GWYk~N8%4m12?fD_AoA+EwK$)tO;Eyj}p?OS( z7nto_WK^{^_pR5AuG0VEUVV4O1QSRnTZDN?!keG-=poxum8AkjwQ!O6bhVFYiTFvu z#v6Bq0WK2+{Yr*mPZ-!^@jU1v-Tsp&Gw zDBXnqr{<`rRK8}dkCzP9rEwjLq5+i`$7=0~J$z;(%>MX6=V&AxwEZ z`L z!DqF12zNVjjcCaFJY@H|o1+nPEK9f^Abu>PzOu&eZ>nz{e?((1F-~9mTUpl~agbu? zkymKW-zW7?>;DT9N;+uh_L+VsedMfs16p|Q@0-02$}ye9r#E148u@Wef5&|$DsFqy zGBFd*vcYPW@U-u5gD{`#v9O2=y2kE93_9kENO-umZ0#~CdUh{2#NjfJ-!9z~9i3J# z(hM}k{&oF*H^~=n^NZxcBj${!o?bca*+-?Kt{S4@cvk-NFB7gT#P31qbk|rmNC5tI zEm*d>=J~RGNJ(NXWM2rlUQ2V=wgO6H(1pysrMV7Kk(e%g^HgxHfR!P^Bs4(ueL;7$ zP(!b*Fd)H)!qDK;iQJfUDYkhoTlNtjpCNL+@&#Qq}; zq*KK>tFtJ0-@5mbOwP}Lar8yMoM`}FD#`^tOTS&sc5w2>CadvF563Cd=qVJ++gt0@&C@xsfQ#_JqrVUi%r0 za~k>X^vPB!?5^3lJyB9uZyEt;9(eq;5j2^Km@cwx6LExdZiNWKy}>y>ueNz5<1kK-aBc8=GUm_I>-}k{ z%&+;ItlCe1-skMATT+G$DnlF?Fx@zm7J!}iqC7WMrwIZ}tI`E%V|Suu12}W*Z{?0v z?WA?`^}9{FZnjhzjldtpe%ouqpbr@qe4U!;&)0bp_kB}Vx94@qRZV@Q>)9#Gz(8Nd z&0-Vi?g%^RQQ)rHMDlmyy;Q-Ot5hFk){PkNP4kaibQ}-}r;HYRGPi$SMB`2RIT}IB zBItN#wLxeBHw1(1zAe^R=2dujr$BLB6zVRc*Dg<9kuD36KQNQLn$QGYf>m4MA zC2`Ne?Gpn}syrs4$CGTLr>CiH=kF-Q%d0;Dy->iUxWWDZPbvOiYJ*Y}F+8ihZ)|e| z^tBaW6C6hy;1c)yhi(gJfQA=650>9qdkWa#KFaR(3PY{4|$?CPTb@Leipx z%P!l%c29X-47S6q>5%<_K@QObp4zsm{q|IsOn!{YgoUHW6v&uO-Lqlnj@U7Qp38!zJsmJkCC@>KR~nv1ZlmDfh}=)mUTDzX^G+ zX>A;KGo7FloV_%m+oL@`x3<^Z#e7Bn7^ZX`h1uEtsadrax%a8Q;xmkcrUr5g4_(TR zfF0B22N2P(xxG-X2i`P1eK7?=N(>mFgGQoYpe_yYxNm=O^YFlPU;I$*S{PA$$kBXp zLV>J37xuxszSCICxv+FZ1!~z(H9ueP;4(2%^4Yx0DQ>ht1v-E&TpffBh~Ho!5S&Kh zpzEIy;_KxRT%_Y+@7fUziErT5c_r(kg!H*a6+^;nRxyxpVZ=e=dP{>bL9oT2-T|FDeQ zaRP>+F3GchT)VmxU;`>-EyIsVMI&$~-*i#pn{uAk!;Jub*_x4HZ;W*%;N+O;s%6f1 zd9X(Rq}QB`4EO50V?(7$_0ow}j)|;838j@#jc2RUQLW!_=~_}@!|1LcXvB`fHqQYe z5<%&5QvNFh=p)Fg0)2$tyffe}jDH{@F4s!5p}{sfClvKyQ`Dyb+Sza@QW3aUCAWOk zu#kI|e;do(LvSy$In8gw8OV#yzMbuNh#J6oWVomYm30>sYuZmo)Q6hEhpyG!ks|}v zeKi;B1BeEeLH?t5e|7gu~;}!@{!-=tsHedES zqIW7hi0o5B>Rg4#$HBez@S_yNrW2UW#a_&?Tgqe!gjH>@;8Xd_2F$eIr|1MK^{`H}XOCqWM=M|8f~hu(`c){%+ZtB%kh0MXtkx0cKmonkhBS{@5$`PZmsBM*TGc!4}I`h@$O8 z;Kj7V@erCrnQ@U+%>~^!-nCp0zPat~NjHt(l8%ULZ5pZBSUPof{$lxR@cm^3WE3LUlFMS1oU7 z<-T<{ZQWXMFuz4dtf<>iyqx8vbn)yO%MbZUf2r>XU`kjyqG6tR^FR3{jmRH9sq+5t za{_-J-7lA`K%=J6!|NImpAhIYq|>;>*9|!q^z4d)tQ>|EzP9C)t{VM8&U*1~AViaF z9MFQz&`*c7+Ms#En-4fwr9@oT5pIyGLyM-hnU=rWx8oOIqQYDd~2r}zBzkqPw1*{A8!u)gEP5QPxHmCk$a2$ zJO30?OY9ddsu7#0{NByZJ{p@}BO1cT@yeNJ{^ya01BUHrh{P*49k#1O0sV3Nu`mbIpmp^kj%^Gyqg_4Z^^e*AQAip1 z49PN(RBAMQE2)2fg|Z<0)R`=M_?kqKZ2HTh{XQrn`8TO8{tr^Sw(3^Ob6hGta6yCM ztKi!@=HC=bmWt-!R9oT|_8lIU6b3d>7;u z&L6ojvVn7L%$eiv=pD+>h5=fmvU_&{1aNUAPEfSH!)>*(OecQr{So=*6rF5w?ywVz z*|Y*#5H}jYYlHgI;kX~4CJz=Ofg__G*@29;x|0p zqD*huS_{jD_CN(@gAvq(NqouNl)xltSpXM%jiSh($uh&m8FIi%dBHH=PiIpM^T#$8 zqjCv9B9}<7Te0gjr5X!0_?8Z$q_V+SrqDvXi;~ zYX?bp1(Ts10A@^@ZzTlmv-f~r$76S|`sVQDMNzh5&u^L@D77Y~-M1f=m@}G^qk?6O z^B$sNhp!(T#oSfL+%gt4Fo|zVJPnxhZqK@CUuu!Y&wk$`#&y@W=p=1O$Nka2Y3Obh z3{pvVOG9muV^z_eZmEM;Sc7yo3k+i7z#D~gJv8Lc!03=wP>X=67zh`VA_+MeN=ifm zAQ{o{N2<0jqo#^2j_g>B8bjO3_X*!#xl;+!A0T%1&z~$5*2zEUk2zx|cfhe_Q(N0O zHdW{nykzI4yAf3dZ(OP^P98MhkhL-d5Q~!DoXkKWOGE3U&gUVURLDqVr?KESctPdoXURorf79x`~_4kP+k14m5lkqnoRkdX#s%}XmgM}XeMn6^$@ z0u9pN{+!>#1pk;P8JzT@csnf3pvZ*TBJ*h_=JvN~mCu+(G%imtX-lPvq!Xd3qjO`w z_{dMf@BkgvQBHAGT5;q`v778CnBo1+eS4w1*vg`D*$FrxWvN$e%A#L}2zQ$!otu)% zA|5owD$vDkrW0Zx=sBdb6+G09zNe^38z*6V)P-@GEc|qm7AD$2o#W7*5ZNN`I0b?-0N@GMOG?peMCGoMk_-sDdNT1ExxLM!^ON=ZI$9}&Z zq1DJ;{@b?2KYooSn#2xfk<1+8OxzdndBzSWp$2h)yyvw73GFgPY1#9Pi0o?02?>GL zLjwFL0?cxyf%)RexLwQI36Ye$#A`)=TBR@ZYUZM8!dpRqO@)4yow4ee#rN*b(I#%J z;Ndo(2*4%v4?tN}u%gdsSG)yf!*KOsxXJ4|Xb12-g{pJUk*re=^4Z?wK0Dink+WA-@Pm zfEoEGZu{8Vu>i%v!p|YepSMSDhun?2{f|K)g3#ON0^AO~!<%DEv|}^eh+n2=$P@pb zUgZBADhjt^G)~21aa#Hq**c1ISC~agO}$CyLx+i{y!|_CI7-0~RRz z69%|d!i|nC|E-%l&m#8YQ_&>T?Xd^@`hdMk=iv%Vz=wi7R8MZnsw%xfG4M0xQgemU z;9CIB(%rN%^tRmN)rvgL<55B>*I*1ZUeTS3&9N2fa>_rfl*D$VL2)Rvyvrf{nNIjA z7Et((li2SSXcHUg7uJ#=p#cOtrO&V|?K?1qw=pI_7wn)fnuP72h|FaD5>NY-aw9E1 zLz_76`}2Kt(2k5KC6#2gz6S`E4t+uZ&&n)SaPEx>{U95swqP4rGnb({!xZqU;ZKVVZ(-_-PydvukqJAj{c zu_7mTJzvHNq6JdlLujloNf!DoqFq=$91J`JjKI?$6?$giHk!wo;Acc{z|ZoF;>6*; z*AFoJKWBR>OZ8o$6N~@{&L`=!llK=RHLEK|?@47fdDL!{1CR>nB`5;)t56-Z#;_>@ zg2!*)a&s*mF_1ILOa3@X%(^F|dLXaAgx=N|yNmJgiOulQ#|-TN6(QbnP4O;GYw)w5 ztKnua5KNP~1RCq)P1=-F32^jWfTJ5hF_Fe4D_x!9*E=P^zc@8CG!)Di(t6vw&2hZ# z-Hx)iG%F5Ow3?jQeR8;zuB{I>%BBFT0^{q#3iuzi^Qyqg*=ht11OnixX*YS%Zx;M+e-R&2}IDWj6c#)b7uL_H(V} zdXy!%`*s=_{oFe6ZSkjm%z?!-5nKL1PnOJ-Y7@*y0k^B(9?N2?3jTsK4w%Vs-1l~S zYO3S7fS_#PRqIIVT}bkt%1Y7B_>+-ZH30q9x^xd6(EQI>hpxRIKoH-&k`fc_Q6H78 zOq_?)19z5Rd7R`!V6^bAo+xo6Qwkj+CUit?s6z49y=*n?_}_qjMBXA}X#4ZQ@ZT*p z-5&G@Ra}atECLT==9|4woYlL4LBoIY`Cyl$7!ZSJ`-tU=BjdVOiZsCgsig2jqugm< zfNb%x7*1}79AXG*|2H0(Zn?nGL4v%CgF!g4lT6AvAs;7w?w(C~kA`mYuLBc~tP)@uHw#SRuweeC3^_tcRn z;^RZ_Zw|zg)WhghUx??`zl-a;zQgYuM`6n|`-J1-?I&=qbKAvo z_L=M7MK}@ECxrk6IfAiwE{JpbDDE4RMsIeBFB}^~^nDJDq00mi5B$a}_`(y`-=h$3 zOEY$gIP=r>`m$-&+>&DG0#`OG0~{pZ-_X#HF4X-lpan_UovVCsdY)<=&B>bbGvT-ZqW9cf8IJjRrVh-Ve19RE-+niGCBU`H zLm`9R@Ouu!R(gxuV5D2NTvI2|n$l&uw;C%{&nLolMy!88*aVRQR{m%0Of+Q5i{4k( z{R)^7tcsxkEM)vKcxPysR^vu`@s&mXaf1Zd~g}+DYvYz)>3>R1&Gn&kPx=M^o zF)lr|e{Xo@$(K;7^4+fgvPX23^jyF?ZRa#^;a2$k|<V&~$wdR+N56?=!m)1k95yZ$Z-qGUEnh8W>2hQb1XA0=D$DZ$HtLVx5$P06*%->Ny#3{e6Hu$1vN9Df@;)14?h4u%~JmascAKC8vYM`$EKW&_OI2(8x z#}nedn>tE0wN<5u6eU_pCqikpq;#mGiJ^{NE7Y(h2U^jpBhpSY>dJOdHd;(VQzCK3 zG1c1Yp^gz@CM}ALP!TyM>e)Z`+5PkVJ}E>hAk;`Z{QMZU!z3T;e!4*a*> zZyCz5P{Gcx?3diqT%|^`yMCX;uQJOV&Vbv#hg zaOw9EcEV>$z1%9}&C<7|U%iBp9`H5j&lC4hic_k6*KySUC}Tb>MaQ(fPaQFHIWZHk zLv1h`S2P-v3!V)2CmDr>*)?=p1wQDeVbF0+S(wDaU$w)?K?rzg-~>9u_V70W2^uSX zmMut#%4N$jUHbpn3&5NZvZRurJY!MHyvx_h1cwCa9`g@8vfzJRqn%+Q&$2y0G`3zH zeYw%JHDoJj{U`dcLcYW!WW{aa0Vb;_4VGV~R3Swt?tEb$jxptj29f#wI!S)WG)Q;`%R z=Ll;EZKbo^^@Gz=#Zu+z_&Hy*Jl?FN0ql=9efDr+|Nfg=5w+jVz1j~8uld$E?Qn2I z^2cC7V-UX|m|B!xkn_|e8l(}j>1wi!c361!;rGl)t075B4cYP}(tbr%wVQt0yl8gB zNt97_>1J0*NB^~Z5$Fy@F^dQ2I6W{q1Oovs5*(8A-Ei&N*&F7CpKw^Yf*{xFe#iR* zi}-k_cg}B0eK&YFL6SIgLHQJcnf3IL7PA^!^cKDVJ>M5{Omj@z0C0AHfw7Jv_3$B=mEc|6Q9<|nf zQP_+5A(}v&Olidu7GSpKTv4S$`N6EVU}(`U){|A@$Q=Cqi9_jQf(K=5_LYb?#}hNM9B{e#^TeMmT6Uw=}If zvMFUzB~wG_XoOD;qV}^b<&b?-^^2CcFtMX>)N_hu9Dh&O$xdev0c#xPQ-z!0<-6Cr zZ-_9}vZ^b?p?_=p_l{$cjM>JD=x*=sW?!)i>f7douFG!^;XGZd+-?C^q*!I2prQC! ztK8!sNByry-ty6CXar(>}iwJidx((GC|QFL~=pPRb`|9vYpCG6aMPbjCT%_!&mvrfo3i#~QuH4&pP$OD?cl z8y`T;>)9Z8#-?`k#)op`@77_u$Okee+ra(EB<-47sMp^IER`Qh_sZ|K=a6DPny&oC z#rtkWz)#KZyoL&G{hMY0d!Dnd-aSS2W|QDcSU<==Y6~aF=-f+71^?Q>*EEqGzZ7d4 zF@H`Z246YRP~0Gay13djfv4JYiM2~TUKh!Oap8h%0I=hwl`Xd`BERZ8Pc)AmCOx-^5{1J)&`!>MrMDuk~ zpc;gW*HWRV9gF-Yv?Wae0!C#vJA7+T(Q*1C!BxIIH{`5&OHEL&6Y6E1$)h)^j<>Fs zzs*uC7H~*1FvzFW;beA+34hl3`~V(GLMhIW?{xL_z_|b`ji}6By|lO2;hJ@?mD~CE z7B-qnDHzqP%+U0pw*xiDw~-G2x87+-cNGQDkcmza@ip?4{62u6_eDe_9DVaoiQ%1$ literal 0 HcmV?d00001 diff --git a/includes/firmware_programming.inc b/includes/firmware_programming.inc index 4f04781..586b2f9 100644 --- a/includes/firmware_programming.inc +++ b/includes/firmware_programming.inc @@ -148,7 +148,7 @@ In some situations, e.g., rescuing data of the other partition after a firmware The chargebyte device uses the RAUC update framework for updating the device with a new firmware version and managing the boot partitions. Before using RAUC command line tool, it is necessary to establish a connection via SSH or Debug UART. After the connection is established, the status of the RAUC managed partitions can be retrieved by using the :code:`rauc status` console command. The following figure shows the console output of the RAUC status command. Here the board was booted from the first partition “rootfs.0” (A). -.. image:: _static/images/rauc_status.jpg +.. image:: _static/images/rauc_status.png :alt: RAUC status :align: center @@ -160,7 +160,7 @@ The chargebyte device uses the RAUC update framework for updating the device wit The rollback to the other partition can now be performed by using the command :code:`rauc status mark-active other`. The console output should now look like the following figure. -.. image:: _static/images/rauc_status_mark_other.jpg +.. image:: _static/images/rauc_status_mark_other.png :alt: RAUC status mark-active :align: center From 4837bb07c1ca4d94420b84867f3cd124908e7494 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Thu, 13 Mar 2025 11:21:18 +0100 Subject: [PATCH 3/3] chargeSOM: Improve partitioning intro Signed-off-by: Stefan Wahren --- docs/source/firmware.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/firmware.rst b/docs/source/firmware.rst index 37cddfd..2dce4d9 100644 --- a/docs/source/firmware.rst +++ b/docs/source/firmware.rst @@ -6,7 +6,7 @@ Partitioning ------------- -The internal eMMC storage of a chargebyte device is divided into several partitions. The main aim is to have two independent systems available, i.e. system A and system B. This allows to running firmware updates in background while performing normal charging operation, and then switching to the updated system with a fast restart of the device. This also allows to supporting a rollback mechanism in case of failures during firmware updates. In other words, during a firmware update, the active root file system switches from A to B or vice versa, leaving the other as rollback. +The internal eMMC storage of a chargebyte device is divided into several partitions to support two independent systems: system A and system B. This setup enables firmware updates to run in the background while the device continues normal charging operations. Once the update is complete, the system can switch to the updated version with a reboot of the device. Additionally, this approach supports a rollback mechanism in case of update failures. In other words, during a firmware update, the active root file system switches from A to B (or vice versa), leaving the other partition available for rollback if needed. .. list-table:: eMMC Partitioning :header-rows: 1