From 449fc7463f77a75d9acc8cd54abffec1825f7e05 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 7 Nov 2019 11:18:01 +0100 Subject: [PATCH] eng: Add BSP build system chapter Update #3818. --- eng/build-system.rst | 489 +++++++++++++++++++++++++++++++++++++++ eng/index.rst | 1 + images/eng/bld-bsp.dot | 34 +++ images/eng/bld-bsp.pdf | Bin 0 -> 6491 bytes images/eng/bld-bsp.png | Bin 0 -> 24758 bytes images/eng/bld-bsp2.dot | 43 ++++ images/eng/bld-bsp2.pdf | Bin 0 -> 7460 bytes images/eng/bld-bsp2.png | Bin 0 -> 29084 bytes images/eng/bld-deps.dot | 65 ++++++ images/eng/bld-deps.pdf | Bin 0 -> 9563 bytes images/eng/bld-deps.png | Bin 0 -> 14632 bytes images/eng/bld-deps2.dot | 70 ++++++ images/eng/bld-deps2.pdf | Bin 0 -> 9025 bytes images/eng/bld-deps2.png | Bin 0 -> 28538 bytes 14 files changed, 702 insertions(+) create mode 100644 eng/build-system.rst create mode 100644 images/eng/bld-bsp.dot create mode 100644 images/eng/bld-bsp.pdf create mode 100644 images/eng/bld-bsp.png create mode 100644 images/eng/bld-bsp2.dot create mode 100644 images/eng/bld-bsp2.pdf create mode 100644 images/eng/bld-bsp2.png create mode 100644 images/eng/bld-deps.dot create mode 100644 images/eng/bld-deps.pdf create mode 100644 images/eng/bld-deps.png create mode 100644 images/eng/bld-deps2.dot create mode 100644 images/eng/bld-deps2.pdf create mode 100644 images/eng/bld-deps2.png diff --git a/eng/build-system.rst b/eng/build-system.rst new file mode 100644 index 0000000..3ec76de --- /dev/null +++ b/eng/build-system.rst @@ -0,0 +1,489 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2019, 2020 embedded brains GmbH (http://www.embedded-brains.de) + +.. _BSPBuildSystem: + +BSP Build System +**************** + +The purpose of the build system is to produce and install artefacts from the +RTEMS sources such as static libraries, start files, linker command files, +configuration header files, header files, test programs, package description +files, and third-party build system support files for a specific BSP in a user +controlled configuration. + +Goals +===== + +The system should meet the following goals: + +* The install location of artefacts should be the same as in previous build + systems + +* Easy build configuration of BSPs through configuration options + +* Enable the BSP build configuration to be placed in a version control system + (e.g. no local paths) + +* Fast builds (also on Windows) + +* Easy to maintain, e.g. add/remove a BSP, add/change/remove configuration + options, add/remove a library, add/remove an object to/from a library, + add/remove tests + +* Reusable build specifications (e.g. generate documentation for BSP options for + the user manual) + +* Validation of built artefacts (e.g. ensure that the objects are built as + specified using the DWARF debug information) + +* Support building of BSPs external to the project + +* Customization of the build (e.g. build only a subset of the RTEMS functions) + +* Support alternative compilers such as clang instead of GCC + +* Ability to unit test the build system + +* Version control system friendly change sets (e.g. most changes are line based + in text files) + +Configurable things which depend on the host computer environment such as paths +to tools are intended to be passed as command line options to the ``waf`` +command line tool. Configurable things which define what is built and how the +artefacts are configured are intended to be placed in configuration files that +can be configuration controlled. The ``waf`` build script file called +``wscript`` should know nothing about the layout of the sources. What is built +and how it is built should be completely defined by the user configuration and +the build specification items. + +Overview +======== + +For an overview of the build system, see the *BSP Build System* chapter of the +`RTEMS User Manual `_. + +Commands +======== + +This section explains how the :ref:`SpecTypeBuildItemType` items determine what +the following ``waf`` commands do. + +BSP List +-------- + +In the ``./waf bsp_list`` command, the BSP list is generated from the +:ref:`SpecTypeBuildBSPItemType` items. + +BSP Defaults +------------ + +In the ``./waf bsp_defaults`` command, the BSP defaults are generated from the +:ref:`SpecTypeBuildBSPItemType` and :ref:`SpecTypeBuildOptionItemType` items. +Build specification items contribute to the command through the +``do_defaults()`` method in the ``wscript``. + +Configure +--------- + +In the ``./waf configure`` command, the build specification items contribute to +the command through the ``prepare_configure()`` and ``do_configure()`` methods +in the ``wscript``. + +Build, Clean, and Install +------------------------- + +In the ``./waf``, ``./waf clean``, and ``./waf install`` commands, the build +specification items contribute to the commands through the ``prepare_build()`` +and ``do_build()`` methods in the ``wscript``. + +UID Naming Conventions +====================== + +Use the following patterns for :ref:`UID names `: + +abi + Use the name ``abi`` for the GCC-specific ABI flags item of a BSP family. + Each BSP family should have exactly one :ref:`SpecTypeBuildOptionItemType` + item which defines the GCC-specific ABI flags for all base BSPs of the + family. For an architecture named *arch* and a BSP family named *family*, + the file path is ``spec/build/bsps/arch/family/abi.yml``. + +abiclang + Use the name ``abiclang`` for the clang-specific ABI flags item of a BSP + family. Each BSP family may have at most one + :ref:`SpecTypeBuildOptionItemType` item which defines the clang-specific + ABI flags for all base BSPs of the family. For an architecture named + *arch* and a BSP family named *family*, the file path is + ``spec/build/bsps/arch/family/abiclang.yml``. + +bsp* + Use the prefix ``bsp`` for base BSPs. + +cfg* + Use the prefix ``cfg`` for ``config.h`` header options. + +grp* + Use the prefix ``grp`` for groups. + +lib* + Use the prefix ``lib`` for libraries. + +linkcmds* + Use the prefix ``linkcmds`` for linker command files. + +obj* + Use the prefix ``obj`` for objects. Use + + * ``objmpci`` for objects which are enabled by ``RTEMS_MULTIPROCESSING``, + + * ``objnet`` for objects which are enabled by ``RTEMS_NETWORKING``, + + * ``objnetnosmp`` for objects which are enabled by ``RTEMS_NETWORKING`` and + not ``RTEMS_SMP``, and + + * ``objsmp`` for objects which are enabled by ``RTEMS_SMP``. + +opt* + Use the prefix ``opt`` for options. Use + + * ``optclock*`` for options which have something to do with the clock + driver, + + * ``optconsole*`` for options which have something to do with the console + driver, + + * ``optirq*`` for options which have something to do with interrupt + processing, + + * ``optmem*`` for options which have something to do with the memory + configuration, map, settings, etc., and + + * ``optosc*`` for options which have something to do with oscillators. + +start + Use the name ``start`` for BSP start file items. Each architecture or BSP + family should have a :ref:`SpecTypeBuildStartFileItemType` item which + builds the start file of a BSP. For an architecture named *arch* and a BSP + family named *family*, the file path is ``spec/build/bsps/arch/start.yml`` + or ``spec/build/bsps/arch/family/start.yml``. It is preferable to have a + shared start file for the architecture instead of a start file for each BSP + family. + +tst* + Use the prefix ``tst`` for test states. + +.. _BuildSpecItems: + +Build Specification Items +========================= + +Specification items of refinements of the :ref:`SpecTypeBuildItemType` are used +by the ``wscript`` to determine what it should do. The ``wscript`` does not +provide default values. All values are defined by specification items. The +entry point to what is built are the :ref:`SpecTypeBuildBSPItemType` items and +the top-level :ref:`SpecTypeBuildGroupItemType` item. The user configuration +defines which BSPs are built. The top-level group defaults to ``/grp`` and can +be changed by the ``--rtems-top-level`` command line option given to the ``waf +configure`` command. + +The top-level group is a trade-off between the specification complexity and a +strict dependency definition. Dependencies are normally explicit though the +item links. However, using only explicit dependencies would make the +specification quite complex, see :numref:`BuildExplicitDeps`. The top-level +group and explicit :ref:`SpecTypeBuildBSPItemType` items reduce the +specification complexity since they use a priori knowledge of global build +dependencies, see :numref:`BuildOrderDeps` for an example. This approach makes +the build system easier, but less general. + +.. _BuildExplicitDeps: + +.. figure:: ../images/eng/bld-deps.* + :width: 100% + :figclass: align-center + + This example shows how build item dependencies are specified explicitly + by item links. In this example, a user wants to build a group of tests. + Each test program has a dependency on the standard RTEMS libraries. The + first issue is that the ``librtemsbsp.a`` needs dependencies to all base + BSP variants (more than 100). The dependencies are the values of the + ``links`` attribute in the library item files. External BSPs would have + to modify the library item files. This is quite undesirable. The + second issue is that the source files of the ``librtemscpu.a`` need a + dependency to the ABI compiler flags specified by each BSP. The third + issue is that each BSP has to define its own ``bspopts.h`` configuration + header item. + +.. _BuildOrderDeps: + +.. figure:: ../images/eng/bld-deps2.* + :width: 50% + :figclass: align-center + + This example shows how build item dependencies are specified by dedicated + BSP items, a top-level group, and ordered item links. The BSP is + configured after the top-level group item and built before the top-level + group item (defined by ``wscript`` source code). The library group is + configured and built before the test group as specified by the item link + order in the top-level group. The BSP options are processed before the + results are written to the configuration header ``bspopts.h`` as defined by + the BSP item link order. + +.. _BuildHowTo: + +How-To +====== + +This section presents how to do common maintenance tasks in the build system. + +Find the Right Item +------------------- + +You find all build specification items in the RTEMS sources under the +``spec/build`` directory. You can use the ``grep`` command line tool to search +in the build specification items. + +Create a BSP Architecture +------------------------- + +Let *arch* be the name of the architecture. You can add the new BSP +architecture with: + +.. code-block:: none + + $ mkdir spec/build/bsps/arch + +For a new architecture try to use a shared start file which can be used by all +BSPs of the architecture. Add a :ref:`SpecTypeBuildStartFileItemType` item for +it: + +.. code-block:: none + + $ vi spec/build/bsps/arch/start.yml + +Create a BSP Family +------------------- + +Let *family* be the BSP family name and *arch* the name of the architecture. +You can add the new BSP family with: + +.. code-block:: none + + $ mkdir spec/build/bsps/arch/family + +Add a :ref:`SpecTypeBuildOptionItemType` item for the ABI flags of the BSP family: + +.. code-block:: none + + $ vi spec/build/bsps/arch/family/abi.yml + +Define the ABI flags for each base BSP of the family. The ``${ABI_FLAGS}`` are +used for the ``${ASFLAGS}``, ``${CFLAGS}``, ``${CXXFLAGS}``, and ``${LDFLAGS}`` +build environment variables. Please have a look at the following example which +shows the GCC-specific ABI flags item of the ``sparc/leon3`` BSP family: + +.. code-block:: yaml + + SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause + actions: + - get-string: null + - split: null + - env-append: null + build-type: option + copyrights: + - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) + default: + - -mcpu=leon3 + default-by-variant: + - value: + - -mcpu=leon3 + - -mfix-ut700 + variants: + - sparc/ut700 + - value: + - -mcpu=leon + - -mfix-ut699 + variants: + - sparc/ut699 + - value: + - -mcpu=leon3 + - -mfix-gr712rc + variants: + - sparc/gr712rc + description: | + ABI flags + enabled-by: gcc + links: [] + name: ABI_FLAGS + type: build + +If the architecture has no shared start file, then add a +:ref:`SpecTypeBuildStartFileItemType` item for the new BSP family: + +.. code-block:: none + + $ vi spec/build/bsps/arch/family/start.yml + +Add a Base BSP to a BSP Family +------------------------------ + +.. _BuildBSPFamilyOneBSP: + +.. figure:: ../images/eng/bld-bsp.* + :width: 40% + :figclass: align-center + + This example shows a BSP family named *family* in the architecture *arch* + which consists of only one base BSP named *xyz*. The BSP sources and + installation information is contained in the + ``spec:/build/bsps/arch/family/bspxyz`` BSP item. The items linked by the + BSP item are shown using relative UIDs. + +.. _BuildBSPFamilyManyBSPs: + +.. figure:: ../images/eng/bld-bsp2.* + :width: 50% + :figclass: align-center + + This example shows a BSP family named *family* in the architecture *arch* + which consists of three base BSPs named *rst*, *uvw*, and *xyz*. The BSP + sources and installation information is contained in the *obj* objects + item. The group *grp* defines the main BSP constituents. The base BSP + items ``spec:/build/bsps/arch/family/bsprst``, + ``spec:/build/bsps/arch/family/bspuvw``, and + ``spec:/build/bsps/arch/family/bspxyz`` just define the name of the base + BSP and set a link to the group item. The base BSP names can be used for + example in the ``default-by-variant`` attribute of + :ref:`SpecTypeBuildOptionItemType` items. The items linked by the BSP + items are shown using relative UIDs. + +Let *family* be the BSP family name, *arch* the name of the architecture, and +*new* the name of the new base BSP. You can add the new base BSP with: + +.. code-block:: none + + $ vi spec/build/bsps/arch/family/bspnew.yml + +Define the attributes of your new base BSP according to +:ref:`SpecTypeBuildBSPItemType`. + +In case the BSP family has no group, then create a group if it is likely that +the BSP family will contain more than one base BSP (see +:ref:`BuildHowToBSPFamilyGroup`). + +If the BSP family has a group, then link the new base BSP to the group with: + +.. code-block:: none + + $ vi spec/build/bsps/arch/familiy/grp.yml + +Add a link using a relative UID to the new base BSP item: + +.. code-block:: yaml + + links: + - role: build-dependency + uid: bspnew + +Add a BSP Option +---------------- + +Let *family* be the BSP family name, *arch* the name of the architecture, and +*new* the name of the new BSP option. You can add the new BSP option with: + +.. code-block:: none + + $ vi spec/build/bsps/arch/family/optnew.yml + +Define the attributes of your new BSP option according to +:ref:`SpecTypeBuildOptionItemType`. Link the option item to the corresponding +group or BSP item using a relative UID: + +.. code-block:: yaml + + links: + - role: build-dependency + uid: optnew + +.. _BuildHowToBSPFamilyGroup: + +Extend a BSP Family with a Group +-------------------------------- + +Let *family* be the BSP family name and *arch* the name of the architecture. If +you want to have more than one base BSP in a BSP family, then you have to use a +group item (see :ref:`SpecTypeBuildGroupItemType`). Add the group item named *grp* to the +family with: + +.. code-block:: none + + $ vi spec/build/bsps/arch/family/grp.yml + +Define the attributes of your new group according to +:ref:`SpecTypeBuildGroupItemType` and move the links of the existing base BSP +item to the group item. Add a link to *obj*. + +Add an objects item named *obj* to the family with: + +.. code-block:: none + + $ vi spec/build/bsps/arch/family/obj.yml + +Define the attributes of your new objects item according to +:ref:`SpecTypeBuildObjectsItemType` and move the ``cflags``, ``cppflags``, +``includes``, ``install`` and ``source`` attribute values of the +existing base BSP item to the objects item. + +Add a Test Program +------------------ + +Let *collection* be the name of a test program collection and *new* the name of +the new test program. You can add the new test program with: + +.. code-block:: none + + $ vi spec/build/testsuites/collection/new.yml + +Define the attributes of your new test program according to +:ref:`SpecTypeBuildTestProgramItemType`. + +Edit corresponding group item of the test program collection: + +.. code-block:: none + + $ vi spec/build/testsuites/collection/grp.yml + +Add a link to the new test program item using a relative UID: + +.. code-block:: yaml + + links: + - role: build-dependency + uid: new + +Add a Library +------------- + +Let *new* be the name of the new library. You can add the new library with: + +.. code-block:: none + + $ vi spec/build/cpukit/libnew.yml + +Define the attributes of your new library according to +:ref:`SpecTypeBuildLibraryItemType`. + +Edit corresponding group item: + +.. code-block:: none + + $ vi spec/build/cpukit/grp.yml + +Add a link to the new library item using a relative UID: + +.. code-block:: yaml + + links: + - role: build-dependency + uid: libnew diff --git a/eng/index.rst b/eng/index.rst index f6b02ec..d5d6f85 100644 --- a/eng/index.rst +++ b/eng/index.rst @@ -31,6 +31,7 @@ RTEMS Software Engineering (|version|) management test-plan test-framework + build-system release-mgmt users-manuals license-requirements diff --git a/images/eng/bld-bsp.dot b/images/eng/bld-bsp.dot new file mode 100644 index 0000000..4e129c4 --- /dev/null +++ b/images/eng/bld-bsp.dot @@ -0,0 +1,34 @@ +# SPDX-License-Identifier: CC-BY-SA-4.0 + +# Copyright (C) 2019 embedded brains GmbH + +digraph { + size="4"; + margin="0"; + node [shape=box, style="filled, rounded", fontname="Sans serif", margin=0.05,width=0.05,height=0.05]; + bsp [label="/build/bsps/arch/family/bspxyz", fillcolor=red]; + oabc [label="optabc", fillcolor=orange]; + odef [label="optdef", fillcolor=orange]; + smp [label="objsmp", fillcolor=brown]; + abi [label="abi", fillcolor=yellow]; + o2 [label="../../opto2", fillcolor=green]; + bspopts [label="../../bspopts", fillcolor=green]; + linkcmds [label="../../linkcmds", fillcolor=green]; + start [label="../start", fillcolor=green]; + rankdir=LR + bsp -> o2 + bsp -> abi + bsp -> oabc + bsp -> odef + bsp -> bspopts + bsp -> smp + bsp -> start + bsp -> linkcmds + { rank=same; abi -> oabc [style=invis] } + { rank=same; oabc -> odef [style=invis] } + { rank=same; odef -> o2 [style=invis] } + { rank=same; o2 -> bspopts [style=invis] } + { rank=same; bspopts -> smp [style=invis] } + { rank=same; smp -> start [style=invis] } + { rank=same; start -> linkcmds [style=invis] } +} diff --git a/images/eng/bld-bsp.pdf b/images/eng/bld-bsp.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1c30636bea21e940615e084e10dd03b2bbe0190e GIT binary patch literal 6491 zcmb_hc|4Te+mAw_5R$cpIuD&pF@goO{0CGXlEGs$vjv1g*fM_xHcj!T~UV zx4ld&BLjdmF|JsmBY+^e^l1SA0IA}fi5LQ@bVd^~${0JmJ%(0Jj@E-nz@S}deKOvg zcEoY1FxD*@4?S4vdpnt0A`lYN`~rNEri

>57dYHpZ^eEj~g?r~ABX7Am{{Z{l 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 literal 0 HcmV?d00001 diff --git a/images/eng/bld-bsp.png b/images/eng/bld-bsp.png new file mode 100644 index 0000000000000000000000000000000000000000..7a0996e4a420f8904bf170845afae1076363c075 GIT binary patch literal 24758 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ℑo&%)#^Yc46r_*z%*O40qCLoTZ;rT58JC?hyR(fUDxUO#R6 zpG%g{>Pj=;&yn}h%aIZ&Ui(H&pDwPFuRln!c;XEW?W`xhm}7;^J}4w@oV3ZAOVwk> zFxM@Pct zsIoT%6DBpDiKK+c#0#pR8q`)rpHp>bo&ZAya1PqcQ>%ZyFAizJ?x8|MOXpejO8}b4 z2YHG&h3lf9qfGb%_qN5BHs}W|x+iPYbdbJE--Hq0W&ZYTH$2j9>3uZ8NTG2l=%PwNyo14eh_vR>6!pr=kx@F@y z;&x@QIowb3m0{>4af?qwQReKSM z!_U|z>grY*IP@=4!5PgYRm7ieug3A}lPx-ZKHd6;_pcGFe|R5{SWPf3Lxq*#q2`- zW6sapd1qRi)M$9@H`iv2F<+#>+-igG-)$$Ks`Qp6+>teKq5?a5a(=k5)}N{WR~y*W z!os!xTk`Q@smon*5rbZv7!MDRfB?WTFasrdd3j(ED{7PJ4C%D6g2o75*4C}QyAg-M zht6(p0+B%A41=eKA9~x5A6GBU?d)!Df4VZfa&kr;rhhUA+ZwR0?~Urb*8kZ>=L4(Y zxjtO*&y793=wYPTP{ha&#&7#Tn#@zO%KW=;Yx@hB3||<&u^W9S+zc>(6dK3tH*Wl$ zZ5Rd9+mXZfLNej7PK$!Vt5=)fArHg>tP?cJ&~3tBZrytRc?p>Qe_XEM4zjkkZWb7W zp%xg{INAlV2v9e)B&X|zIX=?wt!|~BXP^76m?g*hIJIM%)5gyj6E;k6UvojsBN-lf ztW}2|F!aCq!otT~d4cIFG)VeIQ%frzd^a%ofnmDhB6dR~i%&@C8q8RL=|a9gtKWK| z!TlQ;aQ>4HCcC>q;VFww={UFtajT-z1L7)pb((@MFZ4ubpyAjJn z{IyDfMj9WBxcH-9taO=lN%aPy2GP{pX$&wdciC}~&(M2Nl#4o| zm*_G|GPJ)ivnn=#|`xWhL;S&>A9GXWXx+TB^3BoJPQP_4w=(7p(@zF?l zIRLBlbe5EztPA)O-l4jtgxRSF<3-1{?xLCqQ*7+9U2ZT8jalvBV!`?0Wl|Gwak zlU64t5m0O7Bt&9pD#E=2!mmr_TOag0d30jdYyHh*ggLOkpUBX(5ui^LzJGrXWWl@s zqoFQ3PPty)ozrAE4W)L6i>njr$76^=FW={~9MU`XxcMxbYVY?cNd9I%!%Aw&tCBM27pE5Lu}(`E_Jw|CMkA zZJ>^hPPnGqk1x1)@3sKxa|tRGSxihVIj$|b1-i1Qv`a9a40Szs*NaQ{dxAV>yi*Sr zwbgkIT-2Xe6Y}BUU=E<4+l&A8Rpt)X@z1=AwJUtWiDrbtF(;KlbHYoA!I#8Blp&o& zw=#f3RQ9181Hm8YV7weIUf#j+aXpBX(NP`q8*%j(PwP~!%b+gM2!aJ#iH&9b7~oqGCe8h*(km3zyCUVYZ4Lu@6B84p zq@;tvnE0xrl-vXTu*E&@4jV$vqW|3&V*=j)olMJ_3cU?d+c_D2L!7RxVfk zs+p?(^1axn( zcS{yd&NQ>kJHMu^HK8Nr|Fg3Fn*v5r?9ekppo%Wfb_b(K+0@k3fWrjMh2}GP;>S1g z+219TJ(Eb;H_TckuML~i2pUh;iyV|iAwDpCc`JL3=msC(5I9On)rDM@8ou63_0S7WS)=fn{|HqGF$KZxvy;Hy8tZD z7La5hd4qu)94dl*Bw`Zx={UEv+H%roD=*p8E8a3Sd85s;5tSb%pqhS>XnIjU z>(#vZ=`Ob4frEXj6%fOOu686S;1prfK}ku;@7c3Jutw;Xa350XXt9H)2-58g3^?`n z_F6GKPcj!sXAt*D1AhqLbG&-i$9r^WHn z5qN0zxP4>rwK=pUE#IRsx;vI!d=$|6 zJq?Q$>y>xmJE;3*hBaS@hWL1RG+sHYuz|Ql!cy`<kat>W`qDF2ny=RnO?_uz*;PeQFKm5L(^p`p!r&y{SGzs92p{x8E_b3B9>wY zTP^AS2wZCNe>^VdJKvbd_TAP;*g-OZm-1iC>vtaI$;XUPagf6zcwYcWg%f`-l1O<> z)yk>>oJp;%7a-#NSYBrTt@<{qL>_DhAO!#>h!zUfWxleUz@Z-*8jP*wW5}ylI(mA^9+K}03$J|E4~-I)lfZ*7wYV5cgtL zLH?ee=lq{(uns2r$ivudktP7WFkEuz;&#A#&rd_JE*7x&Yq&(O6ub`0D=Yip@Pmr2 z{H@|AFx-H@0Jc*4B!4pB+nD?d9y&Ns&4LXL4XP%_AYD0>76==t_lJENN?PYZNUBWz z>FeoJdBK|$aj3 zripVTt12r=RI|ZN9IO54kvNQB0AB7*h zuH_^vD*h{z`f#m(puGBHD?K?|iW6RVg&q0zNDy=2w`@Rac>mtf-o8Z0#QV<_znGYq zq@?8a>sO;RHUn99r9n60w*t5U%7BHydn1L&+S@mi^rNDo;Y^u@IL?qWG&~09Dwsu? zgza@ZyW-MS-r+BL!u<>WHr_OiWcjuSRSMbh-AgCN`u38sER)yqc~4W1_4K6F+xu-n4@y z2XLMx;y44EVZpV~s{m>yqrFo*{(6f_ZS@@yLlV2R$MbJ|x8I*uRe?qA{a_4u7JWG> zVsdg8AOb?{KRfd$#0s6s{pof``qItRRMzuDbai#!nqt#vVpm8=Z4BORx_%9P@0e^x zlu~CWwzf_{qX&QP=qtlAK|@35o?coNm6ow_Y8u*|-`b;8c9J>_uZk{*%vW*j&zRI+1anlomy}{(7b@ynUKC3kdJDw zw(8Z$k%GyYACR`Yxgub&X%1Sq$w_b6^iV9qM&I3cWvq60kwz00D{I)zLDF)nPm>!O zC|~(93-4PQ8g7oaXJzd)HkRJzepX!kdZ4HAatS?XMq9+sMg=cf&d|>3B0S-NzjF7d zTA{$usM%THh=_&sbjqsfriB)KpUe5-A(!-GyT_jUytK3*tkDb&b@umW`}!qHi?W_w zO1+cyeKm4_`>h-d?GHod!okOPcX5Hitiyl*5|s&Hv>qC7Fs}^`Is?H1W7yb4*GMMk zN2?2BdI`I`(~C+sY;AFJb0QSI^z_WV4pxa6e6V`^``}*DewCJI>*!Htr;27dCp{E+ zuGe8bC@NHIDS%d_Q#|=^_g2H~%<3EXZ4VP%T!@(IKg;Rq8{FI{cDCEC7uo5C-Amhj zS2tQ*w2kcYI~Cy;^)7n%?)p~hmBo7(FrSiw0)v$QRDXZ0&aTQJAlaH3}|v zF3$6QSWrcdYMKOu7O)2`*DCh&J)QS?>dx`%Q17`Sy4Dx#-B$aFvnsEQ#r@SW6ee??=&|3WU}jB zgRL!L?K+EW=9i^jo6DI=J&{ajj(c`U3^1J}Ix;dv*j^uIJUE0bPc@zbG>2~G%HrZM z#3~4d9U|!r*{azDH|OF~T2}1Pp;_$M;(BZih5~yhtV8aRH?;5?qoQha<`2JqP2=J! zrq0iVf23oQT0OgqC_F#d;y?zGE@T@kp&Mw`lYR^dLq3uL?gS+wns)ONka!O>9RUeh2M=qgAmOK~?b z`2btB52Kl;yuBHy!)lg788a#>YEhCBT)dKiunqL}|G&OG07{`c0vy9CV5wwelv>nE zfB?b=w3jCQ8UBBg!^6V~X^c`o7S=X(EP0yE1Pu(}=jRJ=-Kr@p7&18?`j7KdrfHy^ zouBRURg2kX5AnREixIU63A|CBw>VnwbI88Ycs!mpPrSCb%eydt@G<9F;=4P$EwZ=b zv^pKUg1unw0i=e#ogHz|*%lWU7quS9si}3>c&wT<_*Da01vFLfoGmU5^aIdEpRbBi z=jOgk8xi66qaW$HoTZwF7vMa(9i^Vca~$aVmkl+WEaH50r&~>+MMb8b`NOXmT_J8| zt=R3vfky+$S3UMe%7(<;aWaRA{l(^mh91}@_6|>$MK}3~1oBr=KMLeiW#WA<*kW7auUij&Mvc+mV~HMr=#BH=zRl0S#nq^RzGB9TPOt+p z8^}^up?pzOd)+^CQ~=8g6Dhd$iwtVq^C3@!(XhlvFFgeP-pYGnC(JEoV+!lfpU!Vi z4HxKo6r%Azzjbwe@B9twjDIDZ1Qhn~0hv9U@`qQm3PyV9E*k{sZB74z>qDwyVq=3z zAEg<0U1Xp(t-v_G8Gfwkvo&oiHX8rdMN(Y6$V`^y+lBkf9mj{#rFFj+7XIuSchadD zJcf=v(1B3mNgl2V`Wj9i03#F0z=HvQEmSXzJeYxsEeeYqP~##urUHLc@r|@n_RfE} zlWb*DTX~e?1mEJ%ZvE)+>E$dRV0q8f^nh%|th$+=pmh9VYinzbziIwm>YE+ZNXrrs zWX+*_`MrDh>EziD>o2RHk13;g{CMi)$B&SM|E>&nAvdLP4x_H%E(Wu$rka}W(ZRBC zU*Db7)S)MqBi=}~!G(WQR&L$7>O*598eyg_VSs{$K}7;wDzxeu*6&+9q^$gvBy69E zDLykFfDPdy#VnlPdonW2OM4b8!_RPehwk!hbBm>2-F3RzU(&0pAk`Zb8s@x%gD$sAj%6zqxU@J(O0x`AZ1U2;|{EPC15Yy8Q7#583TFk zl>gsJC?0!2{sPYoic=Lu-AN_F^Ll6WC)FJI5`fHQ>j?FvTV?T?xQ>jr;N^ zw?&PdR<3u!qRU`stUuZYC44jNX}#aUr+#Ts5oIYEO`L zTnh$=gr8qsN{S%}fxyoakIXZNum@(P^Q^3_^z?&(q`)#O(QdvOaTP+qNWJf~!Eo#0 zcz>iexhhDSpwHnB>kpZ@zg$-#Am9Wz#QOSrDpDJ$aT2WoMHcB7f(LQ*mLAG~w53=;p{_LAG-EYN`xioSNh<*Fg`dl0LuW`yYW_g%O2X6=vV4s24 z7}PmjtQyy#F$41we4!FeJbVicqU=6U9QEw)dy!atCX0Rk;~T~p&G+G1#V4C z=d|X31Z)DGBxY*Tt`HJYEFkC3&Q28)D_Ypl+T1}q_>1E{MHDoq?BPLG!gVfz;+^+T z)u@9A6SZ-zr^ieDjDy_5^A~3VO(w|1EKYUhKt%_SDKXUW3-?r>+FOirmj*Pj}aXm9R;fPAypd0C}8uz zRt$ZX5|te2FF=nBl-s*IJKQyMkoh4Ut7vNS{Yn0U&K$I35w-)Rz2&8ZL1n`8(VX1e z_E7bLIMlGx!FISLt$#+M7&LZJYz7y79A3SlmXrzmzCM1(aj4?+so3h}IR^*xZV&B+ zvo3Fqa02pI~|mqno{hx0Vx9%DSH`VRE+ zJ5lN3r6`d#{;lBtK8Xd!)G6lx3jXO+rH%0FAJ&?9s|@`Nz4KWsz~z1e`L2Y-gpClIRW%eikHOx7>36Q0 z)U?6(6H4b95GA^H|EfpqQCa!LqEL$C0-ohRm-Fa_U7eeogWwJW)%HN~25;DH*w22F zrTx-vTmzYSvqG)myGMG}ncjMFNl7-veDTDb1r*>k13nBS_WOs2Ffl=D*%>_z2l_z0 z>s}^?_GfSIR{I4yLXR15CZbCWJbL^H1m6RCkqwHC2ehQJVhBTNk_;(XulhNAs(GPr z)t>7ZlEAj}@V*QxLPUkHz0i{}m8Xd!^Knrt9ZpGApLeVu$~vm1nv^2CT}Jn(g+DTp zV(T`7C3Xp$jAir^4yEYF83l`p^>e`0tXJn03b_?pbiS>FjgBQYoI=p3V zhx4Hg<&S0}yOtEh1ee6B?T;!|P6{PmO)&pMnFe`!d8B+6@Z77&0$%IYu? z^)%B}X>a4Idl_R*&s`2`9JxEN{T3FTr&zxhPBzd`=KsAsw^_FnO|FNeJx0L$z*#zZ{}iAm{u>r`*D#G*I4*uH8k>bK7L%AtObwj{?`O;G;u8+Nh;+S z$#El-d1~XG2lx=ei*)PJ&k}VBmyV3)N5~6A%!< z>;qk~R9F7yHpTl)>&-6BBHszx_& zV^ZKNq*DNp$bk72jF0_p15AXp$sDDS!+{>;A}6hH3!luyd1>T5zpxghz|ZzY=EBGy zn-D1`vchRMEY0{d0rm6ZGEzTE6bU+U9w)+qpJ@~1gvKhQWJsGdNF-RVY=?@H`_B=8 zE`z!HO(G$I^J*XM>a@C->*U+q&`q`YIs5&ZEjO|yZX7|Pa zOQ63(ALCVdk-8mbq7o7jty|t5!fJ8s^*l)+OfgkXkkesUbYBE0VOV%aS?X7^4*z9{ zX~}8S?cnyO<|1Xg$s&I+7n_lUqN6h{KCzUS`@JRx93@NyF*Y)SUXF>Ebf-ttd)!mc zCtvBW-(-?GD9Ss@SedHvDO8|Y9pKd_cxC+%5?pLt98?+Wo13L;t};}T2Gc_A6ylFZ zZ?i0tFCJ|6;PwAVqpz?(2cJPG6g)3p$SEiQiK*|8u=-qWzgeQFrs(Q9KeC+0E;#l9 z)0h&_NfuXJMUK~%lHrFLWT3c&0S9O2R?Ho{LIh;4;YmZ=j&9yg5rCfvGocv@s0YR^_&_0h_3G7vlX@CRv~wYyC#S!kA)T$lzoDc{o}*lz zuCBQ?FB<$RC#7LFz&l+Eruh95sKvJ&iZ#{M@`{Rho4%}w#(R8xP6rY5n}PcQ0h33m zKSgt`aut8pV^v16yoK)NVmo{bv{r%q{$uW7Who4N#d(FDEpK?01MnBLwfRggv$2`% z5in7QK>}>M@n1%x&&iDJlQ2uMv<>-E#t<=LC`@}i?a>fWvb+G?K=X5R47Uoz7er%- zs6MfxSJ)%&06IHc3@a;AQc|>l;PI^(VoteN;0g#l`rZEO!VMrYk0+l^2{Tcj0m%+J zwU?iu->PZx<#ja(7$Db==j+^n94`40?&H8$zYDcW|7O77TCkoe$jL!my~(O2%uXLe zNACgq1v1d0D0Bq|9DHW(H5;8JXE?rw~0*c?dz^#6XW?lXD>-?olj~uw- zJASpu@RL5YO( zg*puRxFsaC3wcOhalp<4SfZ1Iotq(K&h)jW=ShDE!1XfkYVnw z;GU)q2VQ|WfPcE!{if$U^Y{8RGCZnoBgNxQns@GvrWa*d0DSqf8{*e=USDSl;CC4L zY&QRn8zs&GE3O}tkT5uqXSX9jw*w)uC$+uj z%E6p4AcIRq!GTcnIj#HW=@y~J+KM5!M>x4lb$PKTxHX=U=-R_ssUI5XA+k(!&buZ5av5@!bo-!GI|aXscDXD^zkg&rQGxtWFeJ7_7*#afkKdA&MX(v9`p{OkFxU_@ zJ?eO2!a$STd?`|B%V>s-7GZ)uDmQh1#Q#wx)c1}4opi*0khoef&lcie6YZ0pcvT2G zcJl9hkMvFw6L00U49lwD9E+W`p6+|SK*;m;nP3TakwwZZ?9=Y$%VD|vr0F5-&N*wm z*9a)ILZh2{_o}O0<3)5rMrd|%=>z>hcs&En)ei(mc~|`#$T!MHe|2~uG^D8Z8EvM8lL#1RG%lre za#qlZm7veBkG8{rtf)?rGDT@4HM-@1n9g)de9M^ z%MAIx<&;G7oDXXz(M?M4r+=4Q7Y&iJEJ%mWXn#VzZ*ej+bXe8K)?2xphx;4L2_g3t zhTLXz12TV8lJ2ll^v@aUB%;T%_eTf=37RPWNO3UHT6~~z;I6&leMyg;8@u>u^ZV3h zZ~lNn$TW$8cJ#*Ass8d*=^q+#aS7Sl$EUJ7XHk^$y^y2p4O|g%MgGKOLSv4Fa$9Rx z_RYg9vi$5t=2CA6YQ7=&eQXB%pAI0GgqyZsQa8hk58AK9V$1^TcMhrL2Wvwl1C9gj zac`iVPtOV|g`C@FtYR5;g-aro grp + bsp2 -> grp + bsp3 -> grp + grp -> o2 + grp -> abi + grp -> oabc + grp -> odef + grp -> bspopts + grp -> obj + grp -> smp + grp -> start + grp -> linkcmds + { rank=same; abi -> oabc [style=invis] } + { rank=same; oabc -> odef [style=invis] } + { rank=same; odef -> o2 [style=invis] } + { rank=same; o2 -> bspopts [style=invis] } + { rank=same; bspopts -> obj [style=invis] } + { rank=same; obj -> smp [style=invis] } + { rank=same; smp -> start [style=invis] } + { rank=same; start -> linkcmds [style=invis] } +} diff --git a/images/eng/bld-bsp2.pdf b/images/eng/bld-bsp2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4ae6a07fd089a0e5e42ebd0dfcd1d7f4e1ec603d GIT binary patch literal 7460 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 literal 0 HcmV?d00001 diff --git a/images/eng/bld-bsp2.png b/images/eng/bld-bsp2.png new file mode 100644 index 0000000000000000000000000000000000000000..af3818bed68707df809687a5ef324c88969ed61c GIT binary patch literal 29084 zcmZs@2RPP!_%?2DLXnjfvUg-;@9adfC1i)JY?3XT?47+r%1X8nvSrWgk&*RYx99i% zkN@$$ZynE3J?{H^f4`s4^|`L|I?waEL)2B}@o^|{kdTn@6%}MOk&uvm;Xf@b4ER4B zmK#Cv2Zre*c^RZD#P7_;f>rTIjbWkl0@WQZQy3cu!_Y>8w^L+1SuBwsTKJMsmB_@q2q`EcYqgq-8_APVt>wj>%N*ox{z-?&^|X zS|4?8^r!WHzG^(C6+OoxA|i4hjlR9at&Vu9yo?N5d)SmluENZVi3v#uhtUfG0rdh^ zWKM%GGReFz_RE+PyGVUy=%aJ*^76)H%T|*{oE@>)AFz_}TO!FvnTKEfVPiI;);IVz zrnC3gVwIXzTlxE9XH=gPAqM^R?R5Jkk*)p0_W0}HrC>Qm@b7pasiOm(c7`=1wRXzYH&|O5d?FGK;B%;JsRqbi2dSSAyzc#LM`o7r5$H6HeMKIni9tY=kP|=h4 zo@{HKJT+P;aY=7!RdhPU)kezyyAXk|wKppCC z3t^QDKhd;!VWwz?h+RV^;+r>h>m3c<$i%$M!x6izVPz-zYRG8>cge#0V+k+{;vj7 zEz|YrNqhxpdbQ^Pjg5aXO?osWh(nh0=GO*uJTFgI9|#HY*w2VsjTFT*_9gRKU}0g+ zg>f}?X&8EXie`8YCFaPZlJPMGMczSg52Lhr?99J8jqSAZU~xe+C7w-i@y{QtR6;&F zM6~X=-lV4PPvUw0z;&C-X|+G^^~NYuyw6e>Q388%Z~DVG!J(n;qodrjjdFJ#93AKS z1S$C(=2o@u>=)u9f-vSbDIFT_ZBDb5AIagAf|1_>FjsNMdcyogAHyBLU4o2sxIT;t zzapt0D%IaM*-!Hf+C)oGVBn(q>ax|^+Z$&0`%C5XP6FMNRpJRm_T#!$ZQi%An&D%9 zu+qnG`LktmrQzp)OG}uWpU-RBh6Smweg6A97LDw{8WoTEXc9Qr-Ny{~?hQA-aoyb9 z9Iv*xK|qjyC9&~D262)YjAB20P-^zRsHm=f-uL1Dgz6d-55WXBd$htnhZGhD0adVE zPW0Pm^7n}R6l1@4aIpCA?*56`UYJsp*(8=;_}pmoZ@&~?IyDgW%ePRyZKYX&j+tMG9rJjkyuRm5BDgF`~H ztjEfJq>1Q|UXn`GBEfNPlE9Lzv-|x~yOd(MK&`G;s2uG&ukNE8`CQz8_3D-9-w~Zr zf#rC~NW`JiwwP`5g4iji68EOk(>pb^V#&o-ppSkUk9mXo=SPjZqb0fliHV7_&NIzE z86?f;KO##v>Rm2Kc`C6<2UBhmyv0%f)`-WU=W5oHnWa^v)m`%M`Yeci z$wg7y5~V%ze%7Vqy|{KNM=TaWyvK~}a+*6xhc@kj=kxB?TtVYovfaIVCtmlz+mzB@ zXQpDFH%B%{JF^3`K35SD5hlItD{nP2yjq(@d{(1O2IHJ~zJ3uUBF9AaeubjLC15jY zk`Ukj-)FbhJFQv{=i_%q(G+MEYMPH7FWxwKTK6l;ASdS)yQRx(Cds>*W5oBAerL~0^_oUc6pcg(0xVg5#i+x#(}x5yytTc57i73PY!6 zq2}Al;=>d{*Pr!P$YqlZHgEZCr@1bvzgfV3?&#QKWfK2shF*~;&Bhg zzRi8bTZlF8cd_KvRV<*uN>O9J+7Y?&wB9w>Zrn>FcMitKwW|VbX>Dxo|l9{ZM0#7kQGt zF1mX8iVVcn)h=7lVq#<0M~V|`RFLD!ZQrWn z9PzUz`cp<7uI{m;*JZ3lvRRhjI=QMt;*^un45c@sA$i1HWhbUNs_DN?u{(1J-L5s?hTaD#2 z4Tt+S{gC_#s;u^hJA%VcLOdDz&Xi(tT?(-yUSo4=srs zajN4RH%$JKlAXA8IODpoZfCO{$DM3X*8fTU^yt>CTW(zL5y8i;w#CIqnCALbW2?T*e zY*~Mpm!B7l*|XefSg*gjRTLF;VzxGk#q?U^=uLvAu#eFh$|znyS%it5+S&to@~VmE z`hAy-BlB`c-&S-IgUS%4fBd?=VnG8sl6^cqU76Z7##;pmLYR)MSa1>qJUu<#j(@xE z{ry{0bf=6{Rpy*f9$Do3&^vvdAZMm>E#cP(sPUZ-4(uJs7?t9tWTIb>!(I*>5pYPB%K>DbaZrLd*TsgfCu+^XXJ~2hwHbP)mtX>cO~n@ zN<^28ZTTGgCVgzze`ck1iwx!=@?=tKnusf}Nh@099gzesxl2)x!(ie24<`;}Z$0UK zIz_SQMuqzNUh#O%6&jRszCxSpdZ8Rj=)bqvc>sX+S;MZHipuhzk>bFhAjhLkT||kq zv}7hAAW%*gNa;6odk=e(~?`EiS{<1P;9q zPt>%uZhdv#VdCeH1I&4of}-d5SJzk0&S-P%!v(pyxtW@USWwX%mwVdU1@>HH=0EYPp$(=h9U%!eB z4i0)0D7v_~tYr9HW|@2s8aO&V+nMu`##EnuNRaVwP>Ul+`P+M%U^PuK)w7LHH<2xH zxVKV-4mZSq+Wc1^lsmFz!ydTp(!#ZCf}7BBNx8kx-AqkQtJ(^+SOsjxC7|9_w=ps> zRJ`aVMY)`5iLZFn*4e4oI!(o*^^taanQf@35A(!%!~BS)`UL`hDNAW;5N z09n7CUih)5=127`6xVIDRCkp;O&*_1PYgUVV4#NQ8v6a4*P5@6F**hH(l%H%SVgSVvQBj4zdxt3? zAn;L(6$0k_=U0pDrk!Dth$OF=KJn@0O%hhEOz(?-=3_N>zl9qb8rCMN?_FMA#&H^a zkPRa>v9^9xtX+Dt*Gbc7_r2GD6BW>ld%i}F9F+A$NZ!dR?+E=19~V@;9A-iwhvlAl zzP5o3@r*3#cbXN(lGPKtRdmhQ?=po4AD@^=uGv*nQd(Gy5??vmngT$fzPgq~bXP7( z<*GLnab#med7M_1JECap1x}-*qd&bI#?aH#JHNQ-6XV~1B6SUR#sCnc1_xsaJFgj& zUcU++xNg=vg@jFeDJ*2!kjab&0hsO^e09ltT%Za7t#herabW>bcXt|(sc+s><*)Y) zxn2j(dhZKi`^LYdI%WDirz!4$Ft?`a3Je=P;33Cys~88O5%CtomcXvt3O#|c;mJKl z#`(oX>C$I4X7l#uX1D-~$y8u}<5{09z$V18>GYd9#>U1%2a*MweSSEsc52Gumq>mM z|Ktt;`VHkO-i#%^M9T2~$D*pL%5K>36akaGF(FpM&G#1CmD5Eha(SE2wne0*rBC4< z6*ciY`3cuM-p1UYA+9DP6R3FGbMN@r0$xrf>>Moh7AIM`jN#37stq@tZ++{z-+hnC zX)sm9mB7fz$Ypa}vO9)Rg?^X}V)?VrRa5)lKdtTU=(lg*4qJ~+YatG4Glrjh)UW4V z?N7^jT50N@;Cj4m0D*Bb|BmLz5l=EF{oT8#cKvwT<@%CRQdD^cI59L|sHkNaW3ww4 zrD<=$LD3G#oVR4G#+bMxRzY3pIEaGKeys;nbJK*-39eS!|1_;$;-rTzpC$<6FTI_Z*&42`*}7esymmCx)FWYQWv5_(5+&Cw9*%w z3J;=L`s_ZSdJBs0cxF2@ji1V6t%jn-T<@CnWMuOA-B?y+$2%kOzJv1SwX)|w?^5Q= ziJH4Rp}g09Qp{aA>DjJ3Gwv~!t~-VhD<<*x-`M|dP(@F4i|uKkM1L&k*MSxhni56J zNHSB1>>{kR9Lk7RSN3k%K!fReiK`e{SVEdF|KZZmWa#$>M?}2Xo%?ovelT#0Q-3^g zlw8hHlOBDus;Nl+p2QWSx+8NO4MD7+R8g(Oje3H9RFfeZrPK}MT?33gMQ#fb{=xph ztp7lsc&MM9xNmRg+^Nuc)m44jXNHqmdv#ClIC6}DM7FB)s{py!IQ~C=yTjtTTU^Ek zQ~`z2vxw%+22y|X%b{HCva+)JguMxijKLaforcCn6-(WjJp&AlR}QZt_v?P!s0+1_ zZCPLsV$Ut0>8whgNW1xPde)Ged!m(ENjB~gR#R=(cvYh&N=fnRf544Ik4F)YpzDnn zyl|?{R7YOBTy)ZvZ|-63CB6>)?u3zIoz?D(YU?ph0vfUKjEoHI(jE~W?21b)&nW|z zCAI|LkTjEtneg?XI&GZgo;+hsi>FuRcJ6?e{xba7MrKTn4>gmaWaQ)}7^Mo@@sKQ} zSN~L@*dTqiiEHaWvRCb{sW<mKeO|1ZF2*yDX~ zt7Js*(_Ob;1V8iWJnOaB@gh|MPmz@%u*K2s+z zj3w8j96xktddT|psyX~D-{r|=5!Kw;j8d2KZyZ|fjkMQUq*! z;?M3u*2;U7NK8d#gHh}#zcu+fsj&k)_){%Q{eq>NiQ&#kQ1`OZ?e|dbq?D9!{QUf! zH^&Fp8t%%48$()(W7cTJOIVIXR7a;e+j`Hj$pkVrGb$S~lSgAW#QE!Ou1OB|&8fPm zXEj#jjk~=7n-l@8p<*Q26U9y&TUflC)!{o`a{XJ)<>f@*$ML-TMzu4KxwOf@qpNXt zlA`OX&2BSM)oyvL22~K?oyFfjBTRZ+56WfaZi)A*>r1+@1!nL7a z$aSBxy7uU!gQ1i0C z#q-1S8P$iq*yeZS*z^$83@WfZcj@W)v z#VfU|iC@SJr0eRuP*hSvfTcjR3c9d9%~l z35d>ZHO&=I$>;LieX`c}5iA$L3G-S`Hdrm7;FH@rI?TrbF+wROm3~K1^I3%phf6{* z7`XUbm6er&fq_3iy?h*S5Dq;8%j5i~dAn-L$_$Xlf9zBOI|-dYZ>u=wb$U;)v>2d< z+{yB^B2#ibiblM@J?u83&rIg%?SZ!C<842z@0g0xi(yI z13?odJ>=rOris!komN$!)!EsqPX=J#*q{3rpg%zRffBIc%kc`j`&PebA3R6`REn(r zQJpSdEkhMnQMba_uYJ>fFdBhw(0m^yav};qf2z=P^?y*m50(>+h5(@O>0w}FV=E`~ zzJ<_A0a7Q;<8PH}PI63)Kd`K|wfl{u>PyMMruZ&g2|6G3-w|oBQ;)i;EvKS?lkB^7fHZwC*;&g#ahuAwd?Gj@EWerD@*5<>1S+AM+ z*3*MkmM2BGptuR;r|~?;K;YUG4jvvJ=bf2506L)Y3#zWJo^Wpbqku>eCP1iRc%8lh z_7iYi-^y83aB!yk!OE`^-B=)hds}CJTyudHfB*u{uZHtgo}ZuWnI~@x@$=uZx3>o# zvFk@N-$7s85Eq{#*+-fE(7S<|`t^>`9|BL1E%@8#>Z0=nN~saTm&GcYum&Z@Irg2YH#nS2XQ2KO+r_fLTqm>6C9>rA2k9(N!V6&6C}NmC?bNE#jk$U#ol|&&k{l* zHOKswfPo9STR=d+re?WHE@0W~hb>IZPU-s$Kq;9i(o~@~uQU;0~HkY4>a_J5K*m6l3 z$a7%eQPM(t?ew~-i<4JCK%2kB(7^LaMdk>NI=NYe%*pprZ7pU)eV`)m>fHDh)&V5A zED*bg9ni@K_r$Y>0nwf;Gi%>`!2~h}r`=4$OJeu+i3^uQ$K68teqx}a@c=G zEav6q_`1J~)6t>a&@?b7XM{!xKEdp%oyENdLmvZ6{tx;OwYZ3Z@*sgUI!xINo#r5- zqgb2#^166;cb5<{4pVd@)Qlsn*RN~lLPo;OdhHdlUOUx1{bEx%xQg#ZWHFFVl5SNK z+&gcAje#7zBr574)U6OESb%@Zv9z3&;LD7OWNXQ}rnVEDXn~D|;MDWl6g&?kAE-x>qW+=*zm?TdTtEU(FMm z41-caMr>tMF*$-jRqFC#C0{#5_sveg4esnDp| zyKLF46VA4R&C8_<=jZkckAJsJ{C56A$c*l-JIAW@&4}#ho>0edg4%?SbMvdCHERkj zuE%oIql5gaLtk#&nOpU%q0AFxKM0PJY+JYdQ{cLs8`Yb-O@~E8C@ZOjve)c<8eSvm z`}9UOFBVC#;HUNB{X$7)e%=f*5wze&+CTmdC>k_v(aHkec-dINk0&ppB%Q~oi*bX? zXt#48i5nDu$8W2pI^03hP){i*3~t95*TQNeBV?3}L$8#5)AWRv)gMc_KyB>)29l}7 z7k)~~IFxA9`Hj4t^FOioMTYAq9>%>|h{2`~VUcbs5XdH{YzfETuNz0q|P!dZ^cyl^*?Pqa-#;U6QNEwlo z#ep%KI!%|T={N?Kw7aw@vgZr^hjD&>Esy7jcWDUIFe$0CwGx^$Kg-V`dF1xq#Q&VB zRVLqa#1!zqy#T(ns0Zs+cQMw`4pHd+T$s7=*9);l;f-82g$@m|p&hCuijjOq z_C)ba54fyt8Fa42<7vs4$)s?=BtvsXX0?hseQx|WALV=(Y3*249^x^MuKl5N%_wH}>zXLF_GM>$r$6DG2A?aS@9jIFwDQhVjAdE?I5A9qypm!cnwgoY z-yIPZb=%O;(Dd^B)SYL*nCV1?(9=Q&H}k$fN4+vlL<`2Zb?3ceA}z%+6eLN4+{G9Ap3lln%`w_4(eCW6iWeO&}mYNXy|bG(X~G|wDO zoKl16Pm=Svr%nh(zL<9fc?q4E@=JS8|} zTEz}*^>dU!-m-r#)~0Ix!hkOte~%fn9z7U|BI~ov;j8u*&o7(7QtKr&*rE&W)@n3% z%y#cn){kVLkFVX49tfxuSPn{WF^_XvmhSN8ePqC8K*qN5WC0jbAlu%epyQZ@oPpl8 z4qa{8%HlCdoj{a;*wb~(`~$VLy@J>JF!f~d`j9^Ibaiy}ZxySL4K%(XEz~W6#m_19 zkuB9(GyOakF4WJv1%1gST;uA>{3S94>_U(|elgp}8D-ykTG?_gI{qG~;hiSdEs0l! zFUsDNW`15OLmI~KDj0}-N=yFY6IqMZmXQ}pCSPc?Cw-`o7)D-ZdeJ>E3Zb-j4dZc? z&oZYK!u+C!w(6Gt4#}!krGE0Ue_#3fFRKH9fV3P(=xMA+OR|8Ek?YlO_I?P>peewp zQzz4h @r)}Juj3mIiQvm40QWApX?a*Z`_TE~kP#LrVR7B^nd_=KT@gv`uAZcs)} z($ke&#O%cw;it&__EgjuiTpQ}P^B{4z|D^Vn$b(67$gg9k%Z*WvhLor( z*N;)fJXV+^P{yrBIE^tc(ji-cgDNskKNr{P}^Cqmu( zGVT*@`0Xl(tiU{%RHKYHz7c#ZS$N_a-AmFoaqEsFOETCRnYy+z%l5lsbnH%gD&6 zYoEP|#b!-uh@r7T+L$u2y;xV2TQ@V58*K_ZH!G-Q$o?FrEOh1Ny>NbdpeyVP%t;SW zo4QqPgchYzz|REp(&v!Bhk9Lxr1#EWsz`8|YPHiMP& zcoiZE{Q(mrdKj^PYdNWWNg+%sAJi>f>5A6}xE}1daKdRtc{oh zR~KzSo-~_L56pa;9c(ouR6TH+%@~;C&hBaA2EuO_-rEwIeTs7 zk^6K%1us%lpO9!VRlHX)bQztP+cUWvO;p z^=aly&H%g>tU5_NM@QlsR_$9L1a#N1EyyC2kp-X`2E48LDKrW-8D9adL3O~yzz__~ zaR?A*$-`~>d`{cSSw$a-1vYHb)jl5a+EJi=CH(Wuisz*I8$BZL4z?4CWS-qTO8DypoOnk+*}*=l23&xs}-bi?A;=T}@? zT{P@dnZ6D3yX_RrCRhn3BZ(Byg9b>=QLyx5J&*9r`hQ78vY1+_pY%0H}4^IqI6MrDd>c{ zySs0(YGFZ>YGZ55lBD^5{K{0LctklxAVM=wncpumo<%bk3usiqf6pHpko^MV%>GT# z_5hH_WoFV6+!2;>aNvfY7l8QZ_U6rSwk&SwZ7w@oz5_;NWMp=urd09Elf{W9)+a@T zgoM5Y1(!R2?WaHc)zt|CdB@*dWLR$k85NI$KX`onY1$r;4!O|DB7_v)7d=nMzuZOz zYRu3Lj18aN_UK`$=^=w%oE<;6w^xJCc<<;4VR?e?a4~P|*Zm;qtJ2@ypyBoU=ZpmA zlDFmMT=!H{f2Q0M5=sW9fzNsEr+y!i87Ewi+29L*6!pU%;?=o1i9DtF2M%+-p5$E^ z!$OZ4iP=ox`cPFtKYjrXEF}N5mKF)%=Gwbs@13sYL^(J)<-jRo*Q*UL)+t|MKV)2n z5YQ^t-kPwNo)!mwA;;tIpVOjU%;2!F9O#^YeSh%%5(4@0R~OqzDj|B@E2{S-zDs$z zpteFc`i}8Yf&-|#kf@}gi^Iak&H|k3=H|w2`I8nQo`X_bYFpO+*Id_3KC7>U?l?=8o4`CxY9qqSoC!2dG4PUS3TsI@sZgk9u`wGoM_y zr-`<=w-?}U6L`7w2&hGwL1qt3NlDo~IJgObGW)hYb5q zWR8IBV=gvEM?;(2*%^Qk+}+>LhCBOYJCy)U{j(|2SV9^aHSjxu9wwFea3IT%Bd)sdxdkKo22qu{~W6(z`EU3NT|G^T}j0Ouv5p&0Oci8pJJ-PzU1Kblk2kj!)+TZn&Lo)xG8{Oftg0al>cygOJaqC}`xu zxK|Yw+~)nM-S9XZh9?=quR|dkc7dN8EY%Z)VDbO@#$|(pwX0R!wIQjTmpB9+!D(c8 z9g$-aP|bnq>sP5>B6t|*fXalrw0nFE>gW|0tNYgEeNoZ4(*-D8s&II!aupR7v!H(- zh#VjW!TR#@%znn}*udj(O%g0XpBp@qXHmwRyhI?N24c*C>V^~0M}Kf8?)5JYc(KRzjxW4V<}rhA(DcJU z$$3m=60*{W4`|PTXTIqGswTqY35QlyADa9(N4WsCv_7hTo6LWhqgQ8lxHFrPuacsf zr$hoit27hVRiL#G2IXm9{rSaGUA939Ma>@_7uZ}>xP}<4hi<}1H$#FX!svEW{fqNU zv8!_@)pXHrxJqzTQ~|JTpX`2rz^4>=9~Wn4do!cn7X=mdCA7{#t>VCWBBNqdSPs%x zlUza)2MRwL^mO%F8{Pgikf%6n5QKhUCo2$;mW$n~3Ne-2c-r&MZJ@hEv?{u?p*Wba)pb zqo9KmiXlfnY6Xsg=Ru#K%~WlKQame<-SmUj@86MMSgwFKq#jgJddfg^#X;|BKxh|KrY(sR`^#Q3d#1qTMAMFK+&&u=!Lq1IiAP6!lj zt?krjGK!u?>oN8hi87|I^pz4js^#z}>+IDgs$TS!aRE&aWxdj7f)@fx+RBO*^c1jU znp#_j6&JICQjiOt)QO&Y&r@FbiN1(yMAAJT;bBp?b6@MaGL2d@UDE~AkA{lmR~heP zTDCgtlDS`@AZ)cG@^(=1AhW$i)QOW5w;()nDbQ$NeQNPou;@>n2i0X>|3oNzF$Zo# z{PAaXlcFzAmN|Cn++bnw{{>0gqZ8h~-6`np&92vwG+JBxD=Jcs^9GlDvLXtnkZ{#R zf26kU6tB}alrVPsnE%|uV8~MldYfQlV}sb}H%FUUU`5s4H)!%q9>DbOZ+{==`Thi% zB$n0m-Co$FXq8u+-RkdYX6Jy3FpJ^(M-~D5vT}0!Q})dWGp?b}#cMfG2Z0Lq`9RuwF~ldo{W8TvykpbXoeo}OOjyVXdW zvAq1=1DcXC)&RT&JZ#z~7Ig`?IA%JyR-YJMBB2zR9&{fF3**o}a&U1Wg@Zsogn5FA zC1@eI7q-PkAFoA6=uU7?h~-b=MucCV>89qyQ9J6M_BLXt8t;5ctO>OInrahC_(<)cns=*hSK{y#Ue@pzx|ZK7#3 zJ>{vs?GO?Yk_{$CDV_NYQZ3ea$Z5Bwun+_?j%&@=2YoN;2$}GC+JZ-mMonASu*q$d zRa8j8>q~q`*qIPgE-66YTWaZ|JR9zV?M6OVj9T$e{H?XQOb@P($g;epIaYpTmEViOL&~K3GnE zDuhfGFp{t5eX^UytXURJ`|FSFMp*T4>5o0dZQw|CP9MheLV{eq67gq5h~{PhD`lMq zmii3^rsL}FWrn*PhHJrm@%X0^4OGLL#yINa4~(Bxr$^sDGyJu|=vx)TG0IKuYE zk&W(x6zCt* zlihhxA%;tYolFk{2hY2r7`)Rgy3uY5`J?6z-}4o`^)2o^ed#Ec>dQ{rO-VGXfl3xz z-jxq8EDG+I>ll7lqNE%wx7NXJSX@ya{-DxM6p7`>ZT&Noh~x!iMUQ(9k&Do#-IGmoH&ceBY3 z%46h+=u@gp^%^O_U@t;?)R9HM_|SMgV!nr3tkJJVVU(qRL#O3-u>4D*iOgFHxn~iP zpYgu<+42VcpHkFMHkW zA+m>MR1MiK9bvTUOr3;o%boG`0B@hn=p&!|yRm*QLP$m^dA^P<+Qy%?gD@-jhI!1I z%nf|~*1fN=<1jS;jwc7Pljj1ImV{qn^>&c0`iSDB^`Z-EY>H<{mwQObb*BMgWE=-nsJ0%E8%>x zNiyy|i=k{yC&X%=q+Vq#Wul%ZKiNA|(p_i05&@Z218{BpNBz)4#?Mr)tT7W@h)ku0 zxJj0!kuj4e-J(90RlOpZ3TFwb=r;Y|B9*apvJR#x&PO`6GsWf->@x5PgZ6{m{7Y^` z^5CJRqa^xXsrNrt{r7ibmvAjaGei`5MuNp*I9QIwvm8bK|DaLL8sAx=L}}nWSI0^1 ze0DMBCnYiKy#CmavgKaOs?eH!?}7hA3^LP9gAj@Pa|GO2c@pIxA8to!um)_dWz{g2 z?q1;L(Lb{Gd%EE9Lf$^kf?;c763sKSW{+m82`x@(pX<{li?Mi5eHA}2&LG3_f}|uW zD(bcvA$S57PCO40>J}tog*o0tp>D;p_j{#{O!wV?Jpc1@r^Pb+)wj3B`pa1ISoFc= z&Z!!dHiWHOTiO?G?d`8XP6Kbe3IJn3%%-4QwY8c3``9-w=;S4s#q(0d>-#^HW8X05 zwAYk=^%zTcR5~yl!;oFfgbC8dcpJq(IvuPm&^+}1IZ9h=wpeUf{`c5C^3hJO8cpKm zRl($yT0v}L{SDg2%TyaTv{vLcM?xOj1<62*So;X%)5D2qtOed+hOM3d2O-;Dmyzb} zRu%Fh&PXT=%XTkUFb(~?y$d-Dc$h?R%N!z2Ps@cCn8N|+u zT4W9;B+ToYtUJJxXrgAc^3G$acPyKRLm~ zz7M`9Tb%i0leSbhcQaUoJZiSbw+_Ul*8PVZR1}2B!M{s7IRXh`w5Dfo9Q==5p-qOr z9?ZI0qv<&&YwOUoc*KeM%VSXyvda_ZoQz`+FwIifHd&$xV5t^_=|yCQBD=qCx3G}U z@5?I=8;1@d!O33z>Ii?1{r&6H;8iU&J4$+G%(_oLY^#z!9+aV34a;7*o_?A<{ayb* zlJ}fODK9f|-+kgLjWZv* zmMH}hwwSt&_&Wm3T=G7dpK71`kurCVN)_)A{v=<%oWhBdc&V}OF&M6>oC~N}$g=Mt z;N-rd$7dLxyK|DNsSmz^3{TYU&)xd5#Os-z^+2FSkVwx1(LGP5dwfuTOg2VK>l19T zU}&kUitC^fHCH%S>OoIL?9C2Q_Jl7c_F1BV>$qQfo?QqnkG!pPS!>C}F&0va75>^b z&)l@c&t*`Q)#^U;=S$Fbznt`8K^+}+dtD8Bd(AO^sL0ZXbWa_;9|gUU%(uo`%bB;| zI*GdeU2Db9^R36u?b{`e82a+#B`c@&fVACa5B@_9ePz~`cdO_Hd1X4P$ItBNIBw}! zxu)wlZ>j%#K!8-O{%q;DdU}nahcjtaUFX=Cj+)Jk(3>OnI(rMRAzNG9SB{QQt^GjK zIp}RQ`k4B!0gXjo2&wE<1VufS;j6c7150N4z&SQt98J~7STlnYYx=7zSFblXSYf^k z2EUxwhu)67(T>#`Yd)FNE2 z*$({Cce=-%(PuO!kkgs-`2mjqcu@ppOqp)kKpL%tGx8vEn{+8*ytk#E*n|3~}w@UotrUgCB&U*PGY(a{=^dc>Lk!;vMN85RBA^oLf9mi~3B zk@aU^1St7sRkH>r5b#T9{if@=UY*345q^?Dt56(q>L zpXr>5Q20@NV~V58!6o`^(Q}+8U_j!Gmh-c!<<*{GX7Pl${QVu89$K>rc zc}Yd$1XqbgX)=wwH(qo#j#7S<=onQ)FU4Ok5IvKyj$KbQ;h_Sf5wH@wdwV9p&WO72 z2ZCjDerqdj>qlg-uBs%CW{A?Se1ZN4s~aDRd#2VTU=WMqBk2( zpAC>{2w-(EAa3EaiDDVN(EI4Bxh&;p(x;b6|ANq$!&G!imF?qF96tHEKh!ucE6+M% z$FID5Z)gldY^RA0g}3p-8M*RVr(SfPf8pQNqk!DREzu-aWu!e>u?E9@JR;hnIMx@V zb#oKd7Gcn}gh3P4_)_!nV_A)N+4Kh~9yl!I-aE$c9NO1)1ax%HNnA7?iJ(#}}mmAD? zJ?h;(h?}f+f^bY@qe(&wD{C+LOKjiO{Iy^r&x>^@uMqrwd2S9~TFmLb2C*m)~wy!t|#yvMqsLjq$zu0Z)Y#m<3ux-Cu}Zs+fZBA7KV$wXXiB40vR zDZ9`pllT2zLHV7CdTgT(N^MMf{k4V!a(#(XVHdMv@=^Nu2G4UeH{_e@&vLo=^l(YC zpICff=@KN-(9i&1UieB*(1d@BEKUA+e`1y*93^;c!Q;M?qi2S(u-XzR&69M9adWsKxPEj;b58 z44vGp>&85Fu%lJYXRou`buXG{;Bg5oC@5eyZ1@cP&MhD)Z-E_Uz#NT3yCjKO|8qq} zWhD`!<3T`v`VcAFAEa_3k)%065yVEGdvAed{6xlW><&ThdvxP^O&IpvvG* zuND{zaNfLmlU2N{Q#?XXOFO4K30?DGi6P%!;bH;C>lKQdwc|EKcCyoL;5jN7?gvX) zD6qmQM&(AyXSXBe_8RE{9=y&@WCprLt{;ykGr- z&dbZ|FXsbO0-(U@Ke$?Q{<1GZzr@lkG5EETqY^MjD0R{FtYP%z{wokRYzFdXWalMy zY0Zy*6`r4V(!7t6Dnya%@3H)oqOjJ!|Z zg4i-t`CJ|hD;>a}AXn7Yb&ib0qhb=M1Dn<82m#!AUcOR&)#a^3${y0AeXOZkNFQ$| z*=8U2zr6q|yy&*L*^&W`5xhv;x(rTi^Q6>v)Q49_KA!LXX|@Efp2L+(o>uw;wYIpv z-n~2j9VU;YYiBuwRJ=LU-LBp=Q`BAHp_%3EduFve{ z_@udyYE>!H(81yQ<1l4>w&e+rVdIOw4#y~F1P240RlJxW(eVK-gc;2DBM=xia9?C~j%>#- z)1|L64X|fG7#@7TA?|Rnq7p=Kr>B#~M;RDbCyrsV-{AdXV0vbpSK+Dbhk}kcKpG^U zzg^oc?*M&?hJjIKHNpz4s1!&nWc-$d<;|BKLC)YljpNWufaYa>XD12z6bNDH z;uf$|Oe5q(M0Drp=Q6-;y^V^Bdf<6dp}72LKN8`9Wm*E;B1}+3)>x0lfMXgaTh@Mm z6$D!EQ|(KwGW}#oEY)V+#2`d_dwUNoARZdbPvDZ2EY(iYvj4xy@aw^Equr5FBNT*P zbSWApT&rO?Lc8=?J8&~=)Af8}VqzfGtfo%*!vlrF;(Y+Mp4+U85cV#C&KtB81}3I` z7!LZ-7X%^?g1^1II5tAq4zDhc#Y1n8)e)AqO*c&bULjWG1loci>^9d*RI53CF;y&I@Y>4l05XHK212M`2TCSOHpg9ad0go=e*~3qh!~z12`S&1vg!38d z9BiH}$hTPd`1ey(L%b1BK-LAfeF7=X9Vj?=XsFUl=ifloc%SceQWels@T1B2ojVU z=JLVe2r14NT&1*unXvB&myzgm4#wpw*RoH;X|RF*F_%3G_bj%-AqM4~jRx&G>uZl@VWE0JQCgYG2PE z!22f)zeez!ZEbDpAaa6a=NAwl9pns0#dXFV69$Jojy7Mu5|NgYdfMQ|<8$%%Hp0-k z)D?~3%NJZ4aKJOVuY@?q2u9l2m=-QJJ~agz86{*)X%Ld3e0{17VM3hihJ$_){RTH8 zU-pyXfTcG2;oM{jO#!s8gb7!`B0JIq}@Do9BnzscLLA3O+);5$}e-IJS zpm5iKQEni_WSCBbm^zqwvoi=(d*VNp$5?)0VYpyV?id|SKv;PpA65Z{lD6)1d1`@R z{ecE|O4V#hh0}zvBQ(K~6{Hk0n4j?aci27T7)=%hqhVb4;eeeV&-!f6G^T(A<^;_D zpRsZ^AV4igiby~UuC|&te~F+hfLH$bw2~g=NjDFVKhCImd*3i=)SJD%m{e0OO&+~= z0#nDzK*j)c4&)CUXc0qS;MpA&*m%15ZgU1euSoJ9+Paw#OJr;MNQMqY3&v3_jjx2XvR7o=KG?=FUer85WL8rU3aK` z&i62HGAU<*Lu25{;th2Wdao(??HpLtsyB6eFKXc{AHIRW2VXs)X7Vc~n*$wQqF+C>CL|w4y9;dmsglV zO;E5w-(b(#>HGH)lKA*CvEDdNm5UaMf8f=EkS*1G2QLiEf!&)1ZL+%-_-e$}!AqL3 zQGdKMTL7-L^Zi~fe!J=M$t=>RHa6@K@TQ;*BkCBqIT2P9AneIu*dIzF6UP_S9#1uK zbo9NmT3fgzWrW;wO+09I5i_JZhFr7G#IrQ$PEIR7By$EqW;E=_gNtzsgTRz{tdFcH$s*w&Sy9&ZL!tO$#$1f+DY5 z_u%V77??Eqo2=+?n8=eBRyww;UYu_2{I9CMI~?ox{rk2zWfPV4F|tQyNFgIT*<`Pf zEriTc$|kbOmXWea_9iQP&tzuvJKueuf1bZOba0RBzOL&$&)2#eew)%-DQ)zpV}Q*x z8~PR1%DRh_4WPMR!)LzYbpa$B^xs~)^9JfjT|gi;AD^@6r(mH5V%&XeGI7ZxV`%N@ zQ2fu8zo&l)4|bYL{FUaxJyH1fRa3U@qssHYNrtuN*82|Q+ZX5TFBWl|29Ls5!mjb& z5>31qE!mT+aR-L#ml$(+0lbEYw*SCV;kY0Cc@q>E_kg8Ol<+DO`d*$7^IUX7LV`t- z$|ojn?g)@5l!D@ib%Iqj0aUp)$Bi=$jc=v=KV>pCzou$i8)P|YIM5F0D#r}On+5mK z!jImMoGQvOR9HV;Yz*{hDT)ovdJALNiGq_q(TsnW;NHdwefOZfT!>KDB5)_mVrfr*RK(-+Jr#3waYKdrZf z&(3ODIok1vf+B>}KPl;&W9?2z2T^r=JQeH~b1*Wz5Kd{2Kky3XST1Ejs6G<$VY5`6}43VWYlN>)$)jB^G?i{;`C5Rqjep>hkT{5xr752%x)TbN$1WW2a2nE!NrMoc1 z+u2>tYy97QDjRMjNsQ>?;ubbRSHou`ut#fM?aD=+rTi8!zpSsu2oyL!yQM~(-S+-Y zYd7byFIMK+#r4&9=Ok(v4?376{mxhVj{4A!l9PYt<>{tSduf9bVs!RQ^iSa#Ap@2N-KbvRjH zXn#PcuTH8fNAe@Nf#>+V{yExjb<%N**=r^&oqq(r9$n9n*i9rnqhc8+?poNBRH7BM zme$eHiTDjXAV@&l3k#0lBz=bp|7HEO|VX2(i|L(HuOES5Df<9}~h*!|qSeIlO+~#8)y95DOe}0=59>VX=`QYQo_X z8L!AyQpJ0R6rHiomS+2HS|jn1SHH5aSVlBsiKOJ!3j1%{x4oNR;}O5UWb1KTF*8T5 zYQFD`@q*b`m)_rQ(R{O}y*uXHNv2?!p?b)t>7g5^w2FZrlDOF(AA74C<@~}s>k6Xg zI``#5Rc11OzRK3o9CIYCzTh%$LxAyjO3yvCXO|_I$f~3sd0ww@l=3i z>k%o|WxZnBeo8OejSti}8hvAewz2x7R>Dg$QOh%gy@+}WIzeh7TXLXAIIY9nmm=i? ziP>UpzSnASbKhUu4bs80vdS1DByyb~i6(1wo~7S?aYqW>LPB)m?<>)-!TcfkgoZmG zXz$6Lzf+f-w2Ub|Xk}|=Xf+r}4aGzDDCKIvpuhZ%t4M2tvqasqB!=rlsndK1HN3*b zXRA2&GRKB>9Yd!Q%NM@v?T2pkI0)m~0Pj-?~< z&2sviXydyyI9r)BDHBy8^AGOR*yiS5in3{nhLGQ*3BMq>u$M&3j!dy!JnG&(;pP{B zw{&zPrs00Lr&w)NY6B0{hmbVE{e}#|zYJbK;;%LnIZK*vOCY|+%drOP!hhmzPtKdoLfz9AuZ|h-EE`B#on!sNp}hg>u_j@!1)3`t|lMeqXOx|L1J4 zn7>lL8UBN1fB!f%Wyiexm;K5#PX0!pO`g;{iC!Ucc~oal8~4fY>u@v@OSXx8RfIZw z=BU()NBnx1jtHxKsm7OBxm`pvB)&XCx3-me6L(QhnMo+*`)XHkh>GoyoDI*mwopcOJMwfY>&y=`bZ}EGLxp4bbs&@Y(W}OVK*89?-o+f>U(xVGTOF@xjXeK$=z86k9GCSE#q!&$v%6gtXrQ9V~S2z%31pW29g3pRW>y?7WVrZ zop%_T{f*F~jXq_JV1Fe@P#Bv%y!I_N>Sd^6Y-VZQ!BJ_?rNhz#6gV%N8kA{> zCm3nfv(Ef?%?He5;!8Fk-d*spQr%>3Dq(4w$c6iVO z4u^mcFr2Y&T$vEJva-?>v}={3^h9$SY7Q+7dy^$!IsN19qPanBZLYz1Oq0O|pC`#| zCa@MSzj{P`olK!PP`@6^NlUMBDnz@qmOY?d%-S&X`0hf|{8n%OTyyH0>=H;Jdn1`b zQb}Cg+?IgH?saSO)P(e#y)K>xCm6&fFDLs?NB*uv_eq+$XpnwD|BL=SmaS=beRwTq z%_xBQh=n0QHAjWZBnHch7p-=@M!24*p_{dD+t`P}c`sVArCuZZ$ovC)pCyGMbjB+H zUdkPUjx-qnFmg{hE$DM99i}?r%1aP-Gz#eCAOujO;t#NQ0|S()?M`;~ob`_i_)TV| z3F7S~GgZ;fzj+DZTdK=q7PJ0>Np9&XLmnmHD2anZnL8X~ z)9=4@?Y2a8*Imm`!?uW37+9Is;o;#~KG3q6cPH>wP4nIcDU={UPl$jN+0B&fLwXf@ zT&XI_?VSLpF03i|3V&tg2~OnrkL#@f6y%j1vtJDtVgzxVrAY+g24vD9K#hDhos%Kn zn(le)efXesZ!{^GH#9nv$s(NU)061`_HT$rJvQ=c8DXHvhbp*>xUOrxTr%4P?M8q! zvebbd=-M@eh9v7)KvbQsqI*0lMn)llWMSS6@^pWgB9RCJ=oPV#dvM3=fDHgPPo+*BsJL7=M&1HGgJdh!P?LI1w?{R| zNUZEulc4$w9`k@Y(`Eom8O*Tb)o!45H$WzR+2uO{RE|eTY(V%Rtg_wZ*&(7mfmPMATYP*RVGLw6+=5@bpJub`_rU?w@=K*hwj#c>-dYH7thGTQ}t z2@Hye4j)b%?Z;?q!1cA?F6go#kB=fHB}Je$WZ#O$xAY1ikw&P0Ig!Lf{s7breswek z#HAN(>8XTLu;6b13;%4|f{*>Hi7-hP`6RFSJAW~Ry=CwzwAUWA-GzoVaR3PDiSo;W z@=U~e5f_xHKMNkegI9_!p%WSnBeu8KOo&j|bwbJ6>MOMcU<%Q2-DZflx|@BD~}ISIBEDF_r>0@W~*In>&b| z9H~ZBMxITb0~WE6+X*5YXHMO<-@khRlG*k7pwNEh{T0S&(EMK|BQtaTIJ^1NRtVtz z6>zG5aW)r)*BJr94RjMoq!r*uFmv(jC%mRrK*@x00>}hH`mm0+1_(Ps+!B|k4VUGn zTDsX;S&+4R1BQxtvs9H&3jj|cxaztpJB1rRCUa1`X;&NZ#TSj1bPnU zFS!JOHW2~_5EpWlb1+;yU@Hf}EOuo0D)ofS7w;V`f-JcdPypHVtc1F+%!abO9CSn}|oRomikrVh9ELv6x!{5DQ z1;7xoqX2M<$asN)MD+PU-B^K#8B9<+E&FTTfZK|BdiMY53ZJ+1ssB!1GVILB5b!>W zxq5%IV=|ba=Y(6C1y33`@*eyVL?pk~Rgz8-dG-ojP-^Op zXvvc>O~11yz#}B+>7UYnP!JTOx68;Jc$9y?J>|}~Z{Kt(e7rZ#aTzwHf&S?>x+n!m z2{<8sP{-bqwUC4uEd&hy^{7B(=k!mlajj>h%^6xUJstJtO6dCfBe}ZM;+C#>IG~K7 zK<7j8CV)r-hmnK}fbpy$qzGuMbdU&Zzv*`cA4Z1y?_bKd3_qC4=I-<)ZozZQ747z;2@_)iYRTt@aDyyYIqzwtm_jsKp=XalM4oBW-79ac1w*v|kgQFEK285z5g0UEa?t(QCu$NfaWEut9T;;vK zkQ=i0Gmi|oYb>BKvttTN0cdV@y)_cd3?d*sYXjS~(Ntb^`s#_c;3}bVB z0=35Akc~kh^|?~~fBY=L3Xe<5a^#5U=;=i0sMeeZlrOGVHFJ7ebTO&R@Kex$j(nmZ-(|J>P~f9}jb#KgF|y3%$rHpY2SWgb4! zG7t&79<(m9FNBe`r;eR@a?_uu{^;cmzq3dvfI1@iFZJD50KT&62KtPhr|!qVHxYMB zZ@aPoZ=7YH5NqGj<05dJvDA@9Ddj)PEUOVG;D4B&KCp)C|-C;NaiFG42!=HGVkK(ZV|*dKVwkLz za1KE>Z30$ir<9bH6`lWSVsRskar5zAS_CA5v_9oiM-PYB)I>#i>wUZ^wTcvFJv{2` zyoMP0rj;J{sHX}6XfLy9i{Nc=(Vf)`tS>AyL-T;JGN8|=jOg`o;GlRIPGL4x=gn;U zMdGLR*x5G2Qy-r)y2Fh?9BWsx3_;pTNuLJvU6*lao(nE{#fRn@81vE!w^y9(A2)`=p>CYQc>}7 zI_4i@Wc1W6%5mA5SN&U)r}ZsY3;EyZVx#P+8u2Nmn0AejB*m6*yGwZWeyL4!b7#k^ zSDEm)|GFe=cZJ6D?4{a`=C030W=h(<&$}6P#p?rDW>)%At$dkdI&14A;UQ4Qcm@{)a%?IsABG#=v5HCDIcJ@|jY3`JLcSxw+Qvan?!J?h*e}!Q z?+Q>4BR@&{o_q$6A6VIT4dqHrTX6C5O<_$X*n;Hg1hfh?f^i85@7TDBIb>(erfZC6 z&H1Da%r5+XIzV%m1r3*BSF6_Z8LhB`{fOd|5X994bRH!A+^CRCNhq!OibJw2jYj%7 z~q1N;`a4{)DEAvy;LP+75i9@gzDMh|g%v(Qvp?k;vv zzV7`7m%6QX{{0)QthPGVDrw){g@s}h)zy=$Jg@rs`Gv>cx&u2`0U*oofW;Ej_7(>Q zVjuxK;I{)BZbD{&W@Uc<`@4p-?}Mw>TRLg1YGVjWMMcqa7*45Mv4aDZ7MHB5stPel zK^~~uY#A`Vz~Y)h;N4`8Aj``yNN3ApH^M8<@tTP;S-Iy|FDuJV%lWB~$Wz+7%LAV9 zcpjv`i9QD;oRCiBeKf18UREtMm}KPS_kq>`k1{2@fG}7?o~-(#-JhvdV3L>b6cJy@ zC@a~R75o@+N=x*~RV-?9O1I3G0y=_9MMLB=u(X-{#s{!+Hq54!?2gcFNO*4h!%`)E zInlXG2ct<*((Pv~5|i9UDqYSX*LE?A8e^2BELHh^;4mubx8x1mAw6?TdrKWBV!XsO?nv77i4m3COJRg7|N+)|AP%<&w~e zNP~7_9BhH(1@H0pkbU>05{|znP}DC@e+!4lU4!R>NgOE|kO4!^ z5v(D*6fT5UNMIx|&HCBM)wTovubuUR5@&Eo75v<(jYdlO4A^D!^uBOFYXq^7tsHLM zkbeqVtt&9mL1w*mtXRt9f5kdUugDU%M>n{EY~5<%fx+#P2yDF5$-Yg&@Sa2zJX(fy zMn*=i<|ktCbv3h2R9DB5!^6OE3K?_6VEd}jyVFO8yg2+U&z<@G&GBf6;L`t+0{V$E zaO&nLCw>QUK(d)z8GQUZ8zl{TLLpXfkscV!9h3_YQP%{2@XW*GtF0lhcSti0y=^EG z)0uV`1A1);UX%ErMh2np3tG1ekv8FT7$^Zk!HNg>hc??ma8MAh{TMG2{{WG5fP375 z$3kWy;7w_7+v~7BBey`d2qmbWypTK?*w&z(<%khOsC`hHfXbqWpLr4PUO4%ApxsFS zp{_;I`;|G!b9os0W2Ey1sU7?#es(X6#Tr0d&`p?`nb}NKa)GR*?_lRAoNH&mR zQ42dH4{xkPQkj0GJz9(#ei`5u*)Y99vh8+9&)Tq5vE}}c0cPLiAour_Keb7QB-m%K zZ2FIq^R$xC^!-%L(R-RLh}J`O(`zC_qy*+qUqw)VLfU)mgMx$lExEC(~}6;21> zzF=8)A;NAV>jK&sB<$Yn^Bh+OwKt7xA;(VELou(woMll+j6U zXpn-V_*s|aW(`b{j2VotjX+p{Bj_dwvx`oxHS(?tU;*in3@$jxmBhhdJC6LtK3p3O zgc_QrbF1O3K-x{!sAUZ~`%gL-W0&%1_`?4#C=M9ffm>&UTeH%QZStE-;G%QK^2Z87 zYRrUPRIi~4?XePy2JgSG{GH9Q6OVV*J-3jRC|rgdEEX6oAg3s)H8STRhRaCtDC#a7 z-pyw0H2hAp%$@+Uli%e5IVV!yXi58i(*%P3j&_)I1CCMwQCibjKKoMFZZQRBUI^$U zAl=U}@=XwFOvXqzcsj>#f4fLK&mgIE&6; zi4eaTNIk^9lJYx2eXJHM4mp?Aa5o9qjc~%aZnvSf>y9CU;o4i#LvloxZMBWwPZrjb zO-L1k-5}ceUY$U>Cefh%-!j0#aYnw(g3qjVOf06B3ul^PLo4x}x?We0G;=?-MOa&c zP8tsH^|1N1?TC+&@Jwvvpj=)6*@WuyR;kijBZrAo znKLFI6z9%dkIADmD~nghMV<{m7^VZ*yH+q$gT{#5b_#F{(NGiD#;(RD2#`nDLg%m& zA0ZgSRhFe0JVw(=vhibyx%O2^E#wutzoS3*NtuM21KUhDOZ%pUdHACxljCK*5jfxE zA7EY_sPS+FA&Eh*a4?1<=B#sHuoizE;WCP@%e9{`=1CHR9KH=nGJlzBaMVryYbBRF z%@xXiw_T+g)o5t8?jCC_z1{4V`gfxaTc!H8LXH^3mUyHOkHdW^@z-n7cUCS%a@t0| z_OJIq#$AH&_*>CUcntVcFmfT$hfOVdg?B#Eow`fV%KHL_|ha(Q`|j8*7I4?<(ET5td`0jo6^t% z3oEblBF*$z0N8KU^0nB(M6R2AfQ;ABC0wPUfgflWK-viAZtIak8jjcl9BX7d*mJ|Q z0NO(V5a~h(X1d{&at$dK?hJ4)0SDNFimh30`A|P}&)|JhqYQ2hB1WR*)RBf^^VQp) zr}+<`up`&|SS-k;5G)vKs21D8Y@YyfqtryDq^LlQGEWqnvg`-{|r0$ihCY} zcp5oLPc{PFGK~2^kq-XWs{H()cs+>@E~BzNCt&=K~L!n zd;<+gGr~iN!hdNPSF$3luVD><6$A`+9TAF7juynS*7khfX^Ydp~ z5m1ze$H&L&5KOICX`i^FXo`H)vYjQ@{4Bb&_?VBGBY$zmW(_KI%KV`U@Rs&Y*=Txt zh_m(Wqf_%-2FB(2egok({_a)%p?`lT1B$3XIU>`p4z3?OVWD!B5$(N(XeE3`f>{g` zqfh0Fv{yv#Lw(M8uqvL#qd))keZ_xx22bf9UQNds#Vh_vQqXr{cXZL&ox5*UYEnaD0EpxFa z(LzvD0r6^4t!gpm@1O8q3Ei!4R=8=@aL&+A!oqMrlR32>+tj81l3M^NBc7F<_iQAJ zo}DqrT&n}def;k^&Jod4{?y|JuIo$dK9w($XcN#}yIqa^V&-y++3tiL?z`1u8}w@R zQkqbzp|ey0C#kvit|2H&tzJe!`ah&Q^>m*^^`br&x%yzs$E2rsQ=$~ie-};OxA}R? z;+HltwPThtDqdO2O8LbHK4;DGMz0r*scd-jSZSmm)!(_Lsfy5PC%W;}!&2evf6cowb9=1bDT8t^>TiUQ_^W*P{3uS0- zeQn+G%ERQ8waIGu>3A!|dFW8{CiYV6wx`L5M2iCTEfQtvDwO{gd!L$ zUcX%05fJ76KqiI}HnHW&9(jzM$SLoubTblk2Du2HFjF?O3u83DwXah3QaDP0GDV^ z=)d;Djsl%y*10QKOT$IVDKil($=gTWgN!4tD8V9{5DkxEQxB9qPBTjm8@#V;O~u0p zO5NHxCy)i*)B_I#`+^3x`!BI5#!Whr8!kC6D}{YEib&0p-{kVTKta}MKY t0 + tg -> t1 + tg -> tn + t0 -> lb + t0 -> lc + t1 -> lb + t1 -> lc + tn -> lb + tn -> lc + lb -> b0 + lb -> b1 + lb -> bn + b0 -> s0 + b0 -> s1 + b0 -> sn + s0 -> abi + s1 -> abi + sn -> abi + c0 -> abi + c1 -> abi + cn -> abi + bo0 -> o0 + bo0 -> o1 + bo0 -> on + s0 -> bo0 + s1 -> bo0 + sn -> bo0 + lc -> c0 + lc -> c1 + lc -> cn + { + rank=same + c0 -> c1 [style=invis] + c1 -> cn [style=invis] + } +} diff --git a/images/eng/bld-deps.pdf b/images/eng/bld-deps.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3e75081258b3e33627da9653b5bbb431639a9e6f GIT binary patch literal 9563 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 b(TTsFN(iKxGx9pRs7MJDu&~IhD-ir25=OMI literal 0 HcmV?d00001 diff --git a/images/eng/bld-deps.png b/images/eng/bld-deps.png new file mode 100644 index 0000000000000000000000000000000000000000..c475e6f4da28984aa68a371273432681f091fd5d GIT binary patch literal 14632 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 abi + b0 -> o0 + b0 -> o1 + b0 -> on + b0 -> bo + b0 -> s0 + b0 -> s1 + b0 -> sn + b1 -> bo + bn -> bo + } + g -> tg + g -> lc + subgraph { + tg -> t0 + tg -> t1 + tg -> tn + } + subgraph { + lc -> c0 + lc -> c1 + lc -> cn + } + { + rank=same + b0 -> b1 [style=invis] + b1 -> bn [style=invis] + } + { + rank=same + s0 -> s1 [style=invis] + s1 -> sn [style=invis] + s1 -> abi [style=invis] + abi -> o0 [style=invis] + o0 -> o1 [style=invis] + o1 -> on [style=invis] + on -> bo [style=invis] + lc -> tg [style=invis] + } +} diff --git a/images/eng/bld-deps2.pdf b/images/eng/bld-deps2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b5ad3c83f9de8ff4cd1b77109ee137b362e2bcd3 GIT binary patch literal 9025 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 literal 0 HcmV?d00001 diff --git a/images/eng/bld-deps2.png b/images/eng/bld-deps2.png new file mode 100644 index 0000000000000000000000000000000000000000..53de0757a01da53d55850bbac4a757896d41352c GIT binary patch literal 28538 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 P4{=9T>sEydI`n@4E{=$H literal 0 HcmV?d00001