From da800b6e41d47528fadfe33aa1e69fcc566ed5d8 Mon Sep 17 00:00:00 2001
From: ghidra1 New Features
pack(1) alignment if default alignment fails. (GT-3401)Ghidra 9.1 Change History (October 2019)
-
Stay tuned... + +
A significant refactor of the Composite datatype interfaces and internals has been completed which affects + Structures and Unions. The intent of these changes was to provide a more unstandable API and allow an alignment + to be specified for non-packed composites (aka, composites with internal alignment disabled).
+ +Previously, the editor contained an Align checkbox which determined if packing should be performed or not. + This checkbox has been replaced by a checkbox adjacent to the pack choices (i.e., enable/disable packing). + Generally, this setting would be "not-checked" (i.e., disabled) when reverse-engineering the content of a + structure so that components may be placed at specific offsets. Only when there is a complete understanding + of all components, as conveyed by a source header file, should + this be enabled with the appropriate pack and align settings specified. In addition, when pack + is enabled it is important that the component datatypes eimit the correct alignment to ensure proper + placement during packing.
+ +The align setting may know be used when packing is disabled with the composite adopting + the specified alignment. The default alignment for a non-packed composite is 1 which is consistent + with the current behavior in Ghidra 9.x.
+ +The various pack and align methods of the Composite (i.e., Structure and Union) + API have been changed extensively. Since these changes were primarly intended to "cleanup" the + interface it was decided not eliminate (not depricate) the old methods. It was felt leaving them in + place would only confuse matters when attempting to understand the new interface. It is also believed that + most uses of the API generally do not utilize the pack and align settings which should minimize the + impact to existing user code.
+ +
The tables below convey the Composite API changes as they relate to the pack and align settings.
++++
+
++ + Composite Pack API Changes + Old Method 9.x New Method 10.0 Comments ++ + setInternallyAligned(boolean)+ setPackingEnabled(boolean)+ + + isInternallyAligned()+ isPackingEnabled()Equivalent to: +getPackingType() != DISABLED+ + setPackingValue(NOT_PACKING)
setPackingValue(1..n)+ setToDefaultPacking()
setExplicitPackingValue(1..n)
pack(1..n)Packing will be enabled if not previously enabled. Old constant +NOT_PACKINGhas been elliminated.+ + getPackingValue()+ getExplicitPackingValue()New method use does not directly map (see Javadocs). Old constant +NOT_PACKINGhas been elliminated.+ + + hasDefaultPacking()Equivalent to: +getPackingType() == DEFAULT+ + + hasExplicitPackingValue()Equivalent to: +getPackingType() == EXPLICIT+ + + getPackingType()Possible values: +DISABLED,DEFAULTorEXPLICIT+ ++ realign()+ repack()Update component sizing and placement if composite has packing enabled. + Changes to data organization (e.g., type sizes and alignments) are problematic and difficult to fully + recover from. Any attempted repair to component sizes and alignments need to be performed in + dependency order (ignoring pointer components). ++
+
++ + Composite Align API Changes
+ NOTE! The old alignment set methods previously forced packing to be enabled. + This is no longer the case since the alignment setting is now supported for composites + where packing is not enabled. If packing should be enabled a separate + call to a packing enablement method (see above) is required. When packing is disabled + the composite's computed alignment will match the specified align setting (default is + 1 which is consistent with old behavior). ++ Old Method 9.x New Method 10.0 Comments ++ + setToDefaultAlignment()+ setToDefaultAligned()Default alignment for a non-packed composite is 1. When packing is enabled the + default alignment is a function of the component packing. ++ + isDefaultAligned()+ isDefaultAligned()Equivalent to: +getAlignmentType() == DEFAULT+ + setToMachineAlignment()+ setToMachineAligned()Non-packed composites will have an alignment which equals the machine alignment + specified by the compiler specification (data organization). Packed structures + will have an alignment which is a multiple of the machine alignment. ++ + isMachineAligned()+ isMachineAligned()Equivalent to: +getAlignmentType() == MACHINE+ + setMinimumAlignment(DEFAULT_ALIGNMENT_VALUE)
setMinimumAlignment(1..n)+ setToDefaultAligned()
setExplicitMinimumAlignment(1..n)
align(1..n)+ If an explicit minimum alignment is set (1..n), non-packed composites will have an alignment + which equals this value, while packed structures + will have an alignment which is a multiple of this value. + Old constant +DEFAULT_ALIGNMENT_VALUEhas been elliminated. ++ + getMinimumAlignment()+ getExplicitMinimumAlignment()New method use does not directly map (see Javadocs). Old constant +DEFAULT_ALIGNMENT_VALUEhas been elliminated.+ + + hasExplicitMinimumAlignment()Equivalent to: +getAlignmentType() == EXPLICIT+ ++ + getAlignmentType()Possible values: +DEFAULT, MACHINE or EXPLICIT
To change the size of the structure being edited, edit the Size field in the bottom of the editor and press the Enter key to apply the new size to the structure. If you are reducing the size of the structure, you will be - prompted to determine that you really want to truncate the structure.
+ prompted to determine that you really want to truncate the structure. The ability to specify the + size is only permitted for non-packed structures. For other situations the field is read-only.--At the bottom of the editor is an Alignment - field, which indicates how the structure or union being edited will be aligned within other - data types. All unaligned structures and unions will have an alignment of 1 (byte aligned) - and will therefore not be aligned within other data types. For aligned structures and unions - the alignment value is determined based on the alignments of the individual components they - contain, whether they are packed internally and - whether they have a minimum alignment - specified.
+At the bottom of the editor is a read-only Alignment + field which conveys the acutal alignment of this data type. + All non-packed structures and unions (i.e., pack disabled) will have a default alignment of 1 (byte aligned) + unless a minimum alignment value has been specified. For packed structures and unions + the actual alignment value is calculated based on the pack setting, + preferred alignments of the individual components, + and the minimum alignment setting. The size of a packed structure or union will always be a multiple + of this alignment value. This value is always expressed in terms of 8-bit bytes.
++ This alignment is considered when this data type, or dirivative data type, is placed within another packed composite. + A compiler will also utilize this when placing components within memory although Ghidra does not + enforce such placement.
-In the lower right corner of the editor is an Align check box. When the box is checked the structure or union - is aligned. Click the checkbox to change between aligned and unaligned. When a structure or - union is aligned, additional choices will appear that allow minimum alignment and packing to - be specified.
+In the lower right corner of the editor is a series of pack choice buttons. The disabled button corresponds to a non-packed + structure or union, while the default or value-entry buttons enable packing.
-Unaligned Structures
+Non-Packed Structures
--When a structure is unaligned, with the exception of bitfields, each component shown within - the editor immediately follows the one before it. In other words, no automatic alignment or padding occurs. - Unaligned structures may be used to position components with known data - types at specific offsets within a structure. Therefore, when editing an unaligned structure, - the structure editor attempts to prevent defined components from moving - to a different offset when performing operations like drag and drop which may consume undefined bytes.
+When packing is disabled for a structure all bytes are accounted for + by the displayed components. Use of undefined filler components as padding and reservation of space. + This differs from a packed structure which does not reveal padding in the form of components and does not provide + a means of reserving space. + Non-packed structures may be used to position components with known data + types at specific offsets within a structure whose size has been specified. When editing a non-packed structure + the editor attempts to prevent defined components from moving + to a different offset when performing operations like drag and drop which may consume undefined bytes. + The default alignment for non-packed structures is 1-byte but may be overriden by setting a specific + non-default minimum alignment. + The alignment will not influence the size of a non-packed structure so it is advised + that the size always be explicity set to a multiple of the alignment value.
@@ -192,108 +199,114 @@Aligned Structures
+Packed Structures
--An aligned structure is defined similar to a structure in a C header file. The data types - are specified for each of the components, but their offsets will be automatically adjusted to - the correct alignment based on the data type and position in the structure. A default - "undefined" byte cannot be added to an aligned structure, although an "undefined1" component - can be and is treated like any other fixed-length datatype. The overall size of the structure is - determined by the components it contains and the specified pack value. The alignment and - packing behavior is determined by the effective data organization as defined by each compiler - specification (data type archives utilize a default data organization). When you select the - Align checkbox, the GUI displays buttons to allow an align attribute, align( minimum ), to be specified. It also - allows a pack value, pack ( maximum ), to be specified. The following - image shows these GUI components for aligning the data type being edited.
+A packed structure is defined similar to a structure in a C header file and is intended + to automatically adjust component placement, size and alignment in a manner consistent + with the associated compiler specification. Data types + are specified for each of the components, but their offsets are automatically computed + based upon the pack settings and preferred alignment of each component's data type. A default + datatype (i.e., undefined) cannot be added to a packed structure, although other sized datatypes + (e.g., undefined1, undefined4, etc.) may be used as component place-holders and will + pack appropriately based upon their size. The overall size of the structure is + determined by the components it contains, the pack setting (default or explicit value) and the minimum alignment setting. + The default alignment and pack behavior is controlled by the effective data organization. This can + cause the same structure viewed within a program to be layed-out quite differently than within a datatype archive + which uses a default data organization.
+The following image shows the editor state reflecting a default packed structure with + default alignment.
-
+
align( minimum )
+align (minimum)
--This indicates the minimum alignment to be used when aligning this data type inside - another data type. Setting this to a value other than none forces this structure to be aligned within other structures - at an offset that is a multiple of the specified value. Specifying a minimum alignment also - causes the end of the structure to be padded so its size is a multiple of the minimum - alignment.
+This setting controls the minimum alignment to be used when computing this data type's + actual alignment.
-
-- none - Sets this data type to have no specified minimum alignment when aligning this data type - inside another data type. Align this data type based only on its components and their - minimum alignments and packing.
+- default - Sets this data type to compute its default alignment based only on the pack setting and the alignment of + the individual components. If packing is disabled (i.e., explicit component placement by offset) + the default alignment will always be 1-byte and preferred component alignments are ignored.
-
- machine - Sets this data type to have a minimum - alignment that is a multiple of the machine - alignment when aligning this data type inside another data type. In this case machine alignment means the largest alignment which is ever - used for any data type on the program's intended machine.
+- explicit value - The radio-button with a text field next to it allows you to specify an + explicit minimum alignment value. This sets the data types minimum alignment. The + computed alignment for the data type will be a multiple of this value.
+ +- machine - Sets the minimum alignment to conform + to the machine alignment specified by the associated data organization (i.e., compiler specification). + This genrally corresponds to the largest alignment which is ever + used for any data type on the program's intended machine. If this is choosen and + the resulting alignment is larger, this is likely due to a component data type + having an alignment larger than the machine alignment. +
- -
- by value - The bottom button with a text field next to it allows you to specify a - minimum alignment value. This sets this data type to have a minimum alignment that is a - multiple of the specified value when aligning this - data type inside another data type.
+
The equivalent of having no C code align - attribute on the structure or union is to choose none. The equivalent for a C code - attribute of align() without a value is to choose machine alignment. The - equivalent of align(4) is to specify a value of 4.
The equivalent of having no C/C++ code aligned/alignas + attribute on the structure or union is to choose default. The equivalent for the C code + aligned attribute without a value is to choose machine alignment. The + equivalent of aligned(4) or alignas(4) is to specify an explicit alignment value of 4.
pack( maximum )
+pack
--This indicates a packing value to be used when aligning the components within this data - type. Setting this to a value other than none forces each component of this structure - to be packed so that its maximum alignment within the structure is no more than the pack - value. However, a component will not be packed if the data type or one of its subcomponents - data types has a minimum alignment value specified that exceeds the pack value. Packing also - affects the padding at the end of this structure so that the overall size of the structure is - the smallest possible multiple of the pack value. If the minimum alignment is greater than - the pack value, the end of the structure or union is padded based on the minimum alignment - instead.
+This setting controls the packing behavior of the structure or union. In general, packing should + be disabled when a complete definition is unknown and it is neccessary to reverse engineer the + component specifications. This is the initial state of a new structure with the pack + checkbox left unchecked. When a the specifications of a composite are known, such as from + a source header file, it may be preferred to enable packing to allow for automatic placement of + components and calculation of alignment and size. To enable packing the pack checkbox + should be checked and either a default or explicit pack value specified.
-
-
+- none - The components within this structure should align themselves in the - default way for the compiler. The components are not being packed with a reduced alignment.
+- default - The components within this structure should align besed upon the + preferred alignment of each component.
-
- by value - The bottom button with a text field next to it allows you to specify a pack - value. The specified value indicates the maximum alignment to use when packing any +
- explicit value - The button with a text entry field next to it allows you to specify an explicit pack + value. The specified value indicates the maximum alignment to use when packing each component.
+ When packing is enabled, the padding at the end of a structure will be adjusted to ensure + an overall size which is a multiple of the computed alignment. If an explicit pack + value is specified the, the aligned placement of components will not exceed this value. + In addition, the computed alignment will not exceed this value if a default is selected for the + align (minimum) setting. If a minimum alignment other than default is specified, + the computed alignment and overall size will be a multiple of the align value regardless + of the pack setting. The align setting will not influence interior component placement + as does the pack setting.
+
The placement of bitfields may be influenced - based upon the specified pack value.
+ based upon the specified pack value based upon the compiler specification.
The equivalent of having no C #pragma - pack attribute on the structure or union is to choose none. The equivalent for a C + pack attribute on the structure or union is to choose default. The equivalent for a C code attribute of #pragma pack() without a value is to specify a pack value of 1. The equivalent of # pragma pack(4) is to specify a pack value of 4.
Unaligned Unions
+Non-packed Unions
--When a union is unaligned, the union is the size of its largest component. There is - no alignment padding and the alignment is 1 when putting an unaligned union into other - data types.
+When a union is not packed (i.e., pack disabled), the union is the size of its largest component. There is + no alignment padding and the default alignment is 1. As with structures, a minimum alignment may be specified to force a specific alignment. + The alignment will not influence the size of a non-packed union so it is advised + that the size always be explicity set to a multiple of the alignment value.
@@ -301,21 +314,21 @@Aligned Unions
+Packed Unions
-@@ -334,25 +347,25 @@ bit-size is generally appended to the base-datatype for datatype specification and presentation purposes (e.g., char:1).In an aligned union the overall size is at least the size of the largest component, - but will be padded based on the alignment and packing. The minimum alignment is specified just as within a +
In a packed union the overall size is at least the size of the largest component, + but will be padded based on the actual computed alignment. The minimum alignment is specified in the same manner as for a structure and affects the alignment in the same way. The pack value is specified in the same manner as within a - structure, but only affects the padding in the overall size of the union. All elements in a + "#Structure_Editor_Pack">pack value is specified in the same manner as within a + structure, but only affects the trailing padding and overall size of the union. All elements in a union have an offset of zero, so the pack value doesn't affect the component offsets. If both a minimum alignment and pack value are specified, the minimum alignment will override the pack value if it is larger.
-+
![]()
While packing of bitfields within aligned
+
While packing of bitfields within packed
structures is controlled by the compiler specification (e.g., data organization), bit-packing
order is currently fixed based upon endianess. Little-endian packs starting with bit-0 (lsb)
while big-endian packs starting with bit-7 (msb).
-Undefined Bytes can only be inserted into a structure that is not aligned. A single - Undefined byte is inserted before the current selection by clicking the
+Insert Undefined Byte button.
Within a non-packed structure undefined components are inserted before the current selection by clicking the
Insert Undefined Byte button. Within a packed structure an undefined1 datatype component + is inserted in a similar fashion, although in packed structures it is more appropriate to use a properly sized datatype (e.g., modify datatype + on inserted component).
Move
@@ -442,9 +456,9 @@
If the structure is not aligned, then there must be enough Undefined bytes following the - component to accommodate the duplicate. In an unaligned structure, Undefined bytes get - replaced by the new copy of the component.
+If the structure is not packed (i.e., pack disabled), then there must be enough undefined components following the + component to accommodate the duplicate. In such a such a structure, undefined bytes get + consumed by the new copy of the component.
-Clearing a component changes it into Undefined byte components that take up the same - amount of space as the component being cleared. Components can be cleared in unaligned - structures, but not in unions or aligned structures. This is because the resulting Undefined - bytes are not valid components in a union or aligned structure.
+Clearing a component changes it into an undefined components that take up the same + amount of space as the component being cleared. Components can only be cleared in non-packed + structures (i.e., pack disabled), but not in unions or packed structures. This is because the resulting undefined + components are not valid in a union or packed structure.
To clear components in a structure:
@@ -514,7 +528,7 @@Press the -Clear Component(s) button.
Each selected component is replaced by Undefined Bytes. The number of Undefined Bytes + Each selected component is replaced by undefined components. The number of undefined components will be equal to the length of the component being cleared. @@ -542,8 +556,8 @@@@ -621,12 +635,12 @@-
- Specify the number of elements. For an unaligned structure, the maximum size of the - array is limited by the number of Undefined bytes following the selected component.
+- Specify the number of elements. For a non-packed structure (i.e., pack disabled), the maximum size of the + array is limited by the number of undefined components following the selected component.
- Press the OK button.
@@ -568,7 +582,7 @@ the data type of the array. The array's dimension is determined by how many of that data type will fit in the space that was occupied by the selection. The size of the array will be the array that can fit in the selected number of bytes. Any left over (unused) bytes at - the end of the selection will become Undefined bytes. + the end of the selection will become undefined components.
-The following bitfield actions are available when modifying unaligned structures only and are available +
The following bitfield actions are available when modifying non-packed structures only (i.e., pack disabled) and are available via the popup menu based upon a selected component or table row. When working with unions and - aligned structures, bitfields may only be specified via datatype text entry specification within the + packed structures, bitfields may only be specified via datatype text entry specification within the table view (e.g., char:1).
Add Bitfield
@@ -671,10 +685,10 @@Name - The field name associated with this component in the structure or union. When specified, the field names must be unique for the components in a structure or - union. This field is editable, except on components that are Undefined bytes.
+ union. This field is editable, except on undefined components.Comment - A comment associated with this component. This field is editable, - except on components that are Undefined bytes.
+ except on undefined components.
To rearrange the order of the component
@@ -687,8 +701,7 @@
The DataType, Name and Comment fields are editable. However, the - Name and Comment are not editable when the component's DataType is an - Undefined byte.
+ Name and Comment are not editable on undefined components.To place an editable field into edit mode:
@@ -792,28 +805,29 @@An unaligned union's size will always be the size of its largest component. If you +
A non-packed union's size will always be the size of its largest component. If you
change a data type for a component and the component size changes, the union size will
- change if necessary. An aligned union is padded to make its size a multiple of the union's
+ change if necessary. A packed union is padded to make its size a multiple of the union's
alignment.
How a structure is affected by changing a component's data type depends on whether the - structure size is aligned or unaligned.
+ structure size is packed or non-packed.-@@ -859,7 +873,7 @@Unaligned - If the structure is unaligned, then the new component must - be less than or equal to the original component's size plus any Undefined byte components - that immediately follow it in the structure. In an unaligned structure, decreasing the - component size will create Undefined byte components following it to maintain the - structure size. Increasing the component size replaces Undefined bytes immediately - following the component. The last component of a structure can be always be changed which +
Non-Packed - If the structure has pack disabled, then the new component must + be less than or equal to the original component's size plus any undefined components + that immediately follow it in the structure. Decreasing the + component size will create undefined components following it to maintain the + structure size and placement of other components. Increasing the component size replaces + undefined components immediately + following the component. The last component of a structure can always be changed which can cause the structure to grow larger.
-
Aligned - If the structure is aligned, the component can change size, - which affects the structure's overall size and the alignment of individual components - that follow it.
+Packed - If the structure is packed, a component can change size or alignment, + which can affect the placement of subsequent components within a structure and/or the + overall size and alignment of both structures and unions.
--Union or Aligned Structure
+Union or Packed Structure
The first data type in a cycle group can be added to the end of a structure as a new @@ -897,13 +911,13 @@ cycle group. The data type can then be cycled to any other data type in the group.
Cycling is implemented similar to how it is implemented in an aligned structure. The +
Cycling is implemented similar to how it is implemented in a packed structure. The
only exception is that the user can only cycle to data types that will fit within the data
- boundary of the current component. If Undefined bytes follow the selected component, the
- Undefined bytes can be replaced by cycling the data type to a larger sized data type.
- Likewise, cycling to a smaller data type will add Undefined bytes after the component being
+ boundary of the current component. If undefined components follow the selected component, the
+ component can be replaced by cycling the data type to a larger sized data type.
+ Likewise, cycling to a smaller data type will add undefined components after the component being
cycled. However, the last component is not restricted to a particular size.
-A data type can be added as a component by replacing Undefined bytes. When editing an - unaligned structure, there must be enough Undefined bytes for the data type to replace. A +
A data type can be added as a component by replacing undefined components. When editing a + non-packed structure, there must be enough undefined components for the new data type. A data type can also be added to the end of a structure or union.
@@ -997,7 +1011,7 @@Inserting a Data Type
-In an aligned structure or a union, a data type can be inserted as a new component.
+In a packed structure or a union, a data type can be inserted as a new component.
Drag and Drop
@@ -1025,9 +1039,9 @@Replacing a Data Type
--A component can have its data type replaced with a different data type. If an unaligned - structure is being edited then Undefined bytes are created or consumed as necessary to - maintain the position of other components within the structure. For unions and aligned +
A component can have its data type replaced with a different data type. If a non-packed + structure is being edited then undefined components are created or consumed as necessary to + maintain the position of other components within the structure. For unions and packed structures, the data type simply changes for the component and the overall size is adjusted accordingly.
@@ -1041,22 +1055,22 @@ component in the editor. If the mouse pointer is a 'circle with a slash' then the data type cannot be dropped to replace the component. This is probably because the data type being dropped - won't fit in the structure in place of the original component. If editing a union or an - aligned structure the data type should always fit and the drop is allowed. If editing an - unaligned structure, the component is replaced only if the new component will fit. (see + won't fit in the structure in place of the original component. If editing a union or + packed structure the data type will always fit and the drop is allowed (provided the datatype is allowed). If editing a + non-packed structure, the component is replaced only if the new component will fit. (see Effect of Changing a Component's Size)Contiguous Selection of Multiple Components
Drag a data type to a block of selected components. - Whether the structure is aligned or unaligned doesn't matter when dropping a data type on + Whether the structure is packed or non-packed doesn't matter when dropping a data type on a block of selected components. This is because the new component (s) will occupy the same space as the currently selected components.
+ selection are created to replace the selection. In a non-packed structure any left over + bytes in the selection will become undefined components.
In a union, all selected components will be replaced with a single component containing the data type dropped.
In a structure, as many components of the dropped data type as will fit in the - selection are created to replace the selection. In an unaligned structure any left over - bytes in the selection will become Undefined bytes.@@ -1085,9 +1099,9 @@ In a union, all selected components will be replaced with a single component containing the favorite data type.
For information about drag and drop with pointers, see Drag and Drop Basics.
In a structure, only favorites that will fit in place of the selection will be - enabled. Just like with drag and drop, whether the structure is aligned or unaligned + enabled. Just like with drag and drop, whether the structure is packed or non-packed doesn't matter. The selection becomes as many of the data type as will fit and left over - bytes become Undefined bytes for an unaligned structure. + bytes become undefined components for a non-packed structure.@@ -1248,14 +1262,14 @@
For information about Pointers as a Favorite, see Favorites Basics.
Bitfield Editor (unaligned structures only)
+Bitfield Editor (Non-Packed Structures only)
The Bitfield Editor is used by the Structure Editor when adding or modifying bitfield components - within unaligned structures to facilitate precise placement at the bit level. The Bitfield Editor - is not supported for unions and aligned structures since automated packing is performed (i.e., + within non-packed structures to facilitate precise placement at the bit level. The Bitfield Editor + is not supported for unions and packed structures since automated packing is performed (i.e., bitfields are specified via datatype text entry within the structure/union table view). - While editing an unaligned structure, the Structure Editor popup menu actions Add Bitfield + While editing a non-packed structure, the Structure Editor popup menu actions Add Bitfield and Edit Bitfield are used to launch the Bitfield Editor.
The Bitfield Editor includes a visual depiction of the storage allocation bytes and associated diff --git a/Ghidra/Features/Base/src/main/help/help/topics/DataTypeEditors/images/StructureEditor.png b/Ghidra/Features/Base/src/main/help/help/topics/DataTypeEditors/images/StructureEditor.png index 5b5902d8978c2091b3f17ee01a0327473a9a719d..194fbb1ffd3e0260c1fec02f41904aba13d2b6db 100644 GIT binary patch literal 47126 zcmb5W2|QbC*FN0gw2rnohpM)U4rWD5&2vlD6hnd<(-u`~s<9HGrKN+Z<{?5A5lW0v zLpY_anbu4ss^&zZh9o7ze>*+rdCv2E@B9D0&-P1plI_mE*IM^l*SglaJ+}ZEaveE+ zWZ%AhTt+wat@iEv1-)
S{uD bH?TbZ?_d7Fpyll} z9VCoazX04D@bl>E? kEgQurE0HrBvet~pFOp!28!qoXqbytJhKZY ztn0LAy3eaqF1C*owcIuO)Fejh7Z~3) <33*~;0f8E&qn zy@atG10R&X6iRm-kg$E~$S=KRUE{PB-(Q$M*U)2$v6^yBXE`~m*}B=LhNGlyXB)m5 zx5!|Zb1Bj-rR9A=bfxf7N5!+Fwc(>Sz1Fp4-4=?!ldY_6Erng)5^hm0xb5@q@@Sk2 z7ih64o9)vqHY!_pY_(Bow5)EE7|d#X?9 y@FjV-bFPBCY z yO`96U{w=v)y(MR~nU(m0&e_-k%#?tCd38l<~pK%*scw5wnAzMn+cX!6NVp z9P_?AybX(p!Jt&s#YbKbUNLX)3(xU#+E#B-BMuhczvCOs`hcc5)HmRB#vF+54@tD? z#mrK8f2Ot;Y>qsxQR$4hySWkGJ}` XD2jx=bm~KrG zvvt-(SUINLJPlsd+o42M3V6DZY!|M0cOh#jt9n53e)-gLD6T(jzNcR)M6W!w{AsD? zx(?l;q60VKKK;!xS8mmzW(fDmeYMKbByD9j{KvsZUIwcF`;qF)j*0D3 >Aieq-2=Y=_&U zcwRksrEuI)M8#?7IMGzqGACP>(dN0@s5%l%X5qo&>(04i%F;-ggJcNXwVw5$o|68H zWrBh9Bumknwo^sFc`O;CO7F#Sd7ML@|6h(5I>^&&Gz)s4#>%~e9NZhnPF~WbuS`LA zmDXJwpe^Agwpizq`=dT;)VuyDo+P~iwr*3mT;uF?d9vK57i&J-*E917-!kIFhi1M* zV5i35xF%sv>DkJocdo|TI){F2CmJS3PWW1iB}APOIZwW9bbX91Soq;7m|q(5d7UfM zeMkK2|0-Jk2-V>-f`fWS5>J)*6Y>xSjPf(y$>PD!w=o5Mn_ewMxh4kc{6^6&sTR97 z4bgjg<52z7_C^-3`0Ty$szUNu `6w2 zRmC^Htr&lwB4knPIV_#nX)(zjn`Dh9hR*w**JDOBwBJD{aia(HR8uqkj9>Uk!&{{= zrqN(4gUiU%SMEK}y6oce>Q{7usid1+dV!zk`&L=cp+){D;Jsu2ujrqLv9YR{h@TiT ziKN1-%gKr6rDu@|by(-RkQLI_6&>c!SqSK>@*h9zCVk_`L`XPO%D&Dg=Te4o(P+xA zl*cpCCovoT(#7o4yy~^SyU`@u7;d4k{i%*=k07)d75}u4rz{HjOvMJTx6-C0X>9oc ztrP1PN=99V)>7J}mh{{@YK-<1Z%JQ7s_$+)lkrTOVk#j5G8M5~nx*Xhrh!F! )?QNZ;i~7kmTe<{at EWds27`4o0x3@@n2* zQ4Q;Tx9vng)-Csovs53HZIMfJhZA&micVY{E6KW&Ir|iBbw~(gWbhQML=!A;X3=cv zU$4ChRILqX*O4=$XYhXHcnuO*XZw3;1DnBYx>aI1^PId+pIWpqmLB&rmX<^&Nyqw? z^ipzXw 6kE(pinrwf)&WYKJ5k=GQuJWKy zE1klMBuG#a#QtLeNWY#=iM{OBD#e-iL=ZHNFA_y2@eJ|CAFuV3mellrdgzd4BqKMM z&B a>fwpqz_f@U;#q+xe(Pg%<~ zlND~!lTfLrV9br 7ky?Y)JK85&nCsZZMEjMB7)S08z~IOFk9QPH%RL0iH?nx5jT> z3hI_!nGf5CdV4}{GAn2r(vLbi^ltTj)8N(?-JyWA`&CgM={fl@pJe{#Iv=2&sLQ30 zDJ0#B`sWu9Z;TtMPkQZsGPN#c6eHVR^0SogzmZ2OXrY1l_PCkHCY(|D=S$&;ZwKjm zeQW*xX#&BjVnq>E&Rl0|GXBFcmOP0D^IkGaIKzqViLqD7sDhh~PY+SBEvUWa?W*$| zK?I@&Ql0Z>zPe#?Ht|NuYyGjHf=2mktx_6iYOa;I!p%5UX8oAy&l*K+0hJ_@EWIac zzTk_V{9-*on+< dzM 7h&f zM9q>0`&{tiXMS?iI=l#28i`l@zFN_HRa%O<1e?LK_NIe`cUtI4h3S-E40u0;t$s8o zcgsf%q<5!MsE5E-^7t!e-UQrw#0?cBdDPdakG)wb0MfFKh}@YfEN}9E)XcVZQu^a4 zS{kzWX2B_d+V_2i)@Zo6Yu@@M&yQTyy;br)Dt&2J5B58kaFwZbLsPB*$fy%h?L$-{ zr$fU>wJK?izOJ`a#mei0^R_k@rtr7ODERf_1Z{gPe0TeMo3AH%h)({L9sO`R<%!8k zQ}vB0bAPsP(`A`UNLWqZNdz>6rV!$OHpn_+xRiO7c)dWPH%6q~auljFcC@g(Ox+^x zOsy3ZThkp6U`saOU43TE)aouQ)@aw6N{Z1x30BjoiS3Y9DJd0X5@6b9DpXBb^Z1w8 zmK{6%cu+YvdeZ-z)XboH-CWqOJ7Y)D0NzqxSY_J*0Im t3 zcq&*eygmG#v9Eh8#;#f! 9?}*q-yM1} zVn}PD$P9`VE@d@y7p2J&%O_ecw;e5*Xwr6)wXZRQrv2vm;n^H1m{;HE j(We9 zNxHYhe|V?!$N`b NnYIk^@xh&p;~D66VO_VvANVaJX$oCSNyH9L feOE!|hIXS$Dq$zTybUkX%f1gYH%fS`A4yxNaQVU&&iA0sB&{*ml_|lrG@ec| zDRB!)4RGTLb+wnaR8 ^ej$? zKJ)|0y7#Do)}ZG(R>4nZGi^hsQVBc+n})!2 z%bgZ5o9lHY@cXeADpT7&Ah=yA{A#8jIj8yMP!n=4gs5do%&A^^dbDn7Z#nF6)I){C z{2)K2D|L!xR6e+YOgeHDy){3{U0-frJ7o(*)7NmN!hrzeNF+<- 0!WGjK9d zn&{WX^ ^Z zxfzkZND^DS?eXJ#Dmn5f%rF{2uN(B75efbiAjHmQ9eLtDhXlet7XncY+MHt}(DX99 z^`O3>V{0HvsYNArqGprz*-yIIR8 -p4cD84VUx2}jpmMz0ft377EZ z8psm+AirjFO0uqT>$#;~o0gql=$)}~TSMAXoCTs5N$s|v&SXDhn6=V<<&Od&>oWBl z-ko*}U8RR-Inm1ATh2@$1z>asmjYT2;9XQERX=Eyt-O%gq6karxqyrWS+mJ; 9Xw|P 3izXo|kD4XGdh}d3D zZ=mBs5Ys~rzP*F56Q6(wX3A{JzHDKifCr0wEu0#AO-_P_d+bJ$10jG(4gns1`Y4(= zl@mR?3M<)(AuWX^XsX+Dm{?8^F{nDl(Om6t^tzIdrk;+ocx)00%A=`z{t8k-%tgIZ zDno%`^Em^2H?-~g3|} H=APlGQKd zYkXA_&?qE@lGLJ* S5K+m}J zuN{EUvrXp5fxoo?25`DP4Iws&l<> CZ-hvrgQOQFH4bMXKU914(L9NqF9-qL0IC4pB=J7?~;O4XN_ zVoxPrLMHj4cOQv`enKWu{RypojI$ADs$$*PQss`L=n|(E#bZadYPC=Ofmr-J*AN2+ zmQ4=7sTd!K%^--tOiKgXFgaT2>szfD7ER=J_|}rjaNhfeM2#C)ORP(qt+-IaSaYRh zAn;0s^hjYKFpyZo)EnT-MG81FIMJfdl0ug@kP44e%z#KOPafTxZHU_8;R6NH6dX8i z@@g8LbZf=v6TSre%+RHOZ oPiASEr2INbOSkaK{_+u z@)-@^TXXh5 9JJ7$n{W_dTJJW~&cV(|^MN{DgpY&j59aSmPY;$|Yw{zLPHRLZ0e93Hr2iDG zFb{coq8{)?s$#CXA)JHJJkZx|Qk#wUR)Y~QiY8H!fY03x-Cn&c#q&&fIKUXNq4!fq zWsph276aANUmh*W*oME}YO1#2@zO?Y!Q_z>S=Bkn0RiQ+>Mo$)f#cAHzrd8V2QWV= zg?%su*NY{QzoH%Wrc)Y0>a**f7SCqO(_`}xVoA$E@7|}J!w-w*bpc_bwKXBn?}D9= zD!*tZyIX$U=!fWT^^%lW%MS@tb7{q$w6_!=5wYdVoO?Nh{-H`h&WsgOgq{}KHODk( z#N9+$)A+i@N&YMHH@c=%x@8*$tn>Yh!!uU^@LjUYHb0OmtY!{d_t*Z#htZ0WZ`ro9 zF4w%IfJ}nM02~W03A)|5F%S;Zl$7EF)p}G1^hl}k_X`CWmtXtj3iyswqc;w#r01di z=k_-&BtUMe(z|4G7r~#(8+|IcqX0ksF6+wDIsl;nut8xNenRpp?4&>}RK*SkO$83Z zfgnq*6ZioL^m3`Iv))rM152-;PD#9+S`ahfk`Tvr3|-JZbW|Q>J@cvT%etBBa3d4l zd>K98N624rlSU??B>b~p|6&+IRC45rmjf0NEh0fp3_T=vI)Kd3h$de$9#NWxq{{^a zOnf=9m*PWeJ);8miBj91fZ1EJHUaZKBQ7A$dfx)mOJbwr1)Z*loRG er^yjs&kAhJ4mHNykGE2Er+OIzhWMT&rk^ypG aQ$p;0>XW_HX?W0^&?ouXuOuY*sTy-odHCzn19eFlZoB}wz)_#u)`pqB z01Seogo?*1w2X|F9vfQtYA?YIyqv$7;hN5?3}0E c`SMVLyqVzaPbb%;hUE^|i;!u|W3d z&OZ(L#;&&-kGQESc0?Lk#c{ {bOzm-C$;*ESxT;l*8i 3{XuAEw<8JLKz?adEQ)@21Hh&SiVhvcEuo|pZZQ=5 zO$WN$_7Yp?@X!WfxG~P5>7ijCM $!OE+)x!wW!* Ak~8GCtI+1tD|Wel(qXwvG!03l^s`&WPo9eCO<%79f|0EPD_7g4TxDOwMpDwP zu8YZ!jORP$e{`x>l{X@eC*K}Ru>9QQ+Ntbwb}kxB3kP$eO&{JnpwD;1&A$g@`tnF_ zep)v>)k<|PscXdpLBrBd1@}uqFVRC(-Nsx%nYX$+v ~sChDeIf?9;w?veC0+r z4Q?iBmh~s+Eu>sRZ*cM%hwg9}JwX7dAAKyqK6hco&v;e^$qNMk+cDrWdqn;g!>LIz zV@m^Bl?f#eo=a^*4xp_&+^zz|!N3kTI#z!=r2>d`uT##U*H6(r5aJoUv 03LGj9P|vYY4;^yJ`Hpsw2kbBf~o zlx}2S`eIEpuy~3s-`Fm8|E-L_pF0^yV8v|MKhU{x*ob+sl3044e9%ieGE!9K(hWm# zCgm{X&?(T<2cza`cpkpD1pxNADzT&|b~~lfbRNHXceExF6M2in;rTnllRf8fDAXQ` zyP=Lu3iY|P2YC!st$`?_CTj`%t@9n|3HYNtvg&ux99Kb=)ZWQIkJKJNW9>2K@;Er4 zJetUuQ!@2rX}?{lko766>PoZnCZT6JGJSJk6%oe zJ2;M`SH|%LlS^mkcN8C^y0yysPXzAXB~)g_7PMlv&myHWr&Ch4{m1TOdpo#_{-( nB+ Wij@?8`L}-lr{{gY3H}8ie}c&WdffNStkrL?HVpho9s`K;%>6%K z98c4nPU-o1zVAp x!dNN?&&rctjKB$mHO+-(<(2GPl9S!CXfDnqvKf(fE14h z{d{%S+9L)GP+b}pqBpLEEbJeDhC4F*?cqNE2b%lB&+zH4CI_q1*ZXx28bmfdtY3fR zrSEWP@3VSU;e9&soOwTtG>}_6td+;-^_-g~Lv@w&%MJjaJ#sw5^GKxq7mMuzArOL1 zAJu(zR^FMWc~3G?pBd*~Ty;2f RD;oFHXLnHB&Tid(&%2ox2rVe5aZXaMa_>%6| zV9jR{+cP5MiZ*Vrb*YW@OnX9qwQ~l9kXzq(me!!F_p63*pE~93ADcAIJXNDW(`O;1 zP(wDeW!D-`t4FJE&L$6M`!;8~=j2DboEFoY*u%Jj2jYY@Y=i y^NnG|%xWw-Uny zVc1q1kIu%(xOW|KXp2ta1Mc(8JDO&S*V?zaKE4OFsd*Hxte7N;w`C|GZSf>F1T}98 zI6pk+&GFG@Z1rr!Xt`6V_RbF%`o^GnDS}C~#qaL0LPyL*b=u9safb%@gEbxfJH<-C zXi(^UBjvzHqkNaE+AoE}zP~4z)sY5r4d%LE-pAsV`(XxL?N^K=Yucnj!6#?QrC6JO zo!us1=k@vCVWm;WH}c(&`LB;$_Fy{0sfF=6I}e9(-VVOdQd_Kzx%Os(I=T4GP&kW< z_G#X{TkG1H^ap}aw_hxM&qVa|m3c=#^#lVnx}^ltFLDCDf*;OwM`579_O9{E*c5B5 zG=Zsr$&oW$;=i;<)tBpgU-8V9Jk>fuj^fcSc8*{N`H~2}EoB5dX{ux V`+%nUby(@j0K$-{1Q4iW!B39`z zm3|QekF9>~yZ<@wal`gnH-70kpG1iaw#llF7_rNm0`ebePf}ATiJ{lucAGG^>^ qcrQ% Qh*X=6)9W&_I6uzL){+*M#)1+wSb|ZQ71I5 zai#eQ>%i>C?i>l;+EmwxjIdv`G()Sl0Hd%5OlEl8J(ntrb!x=zoCuhx@vz@qn?sE9 z2jVSR`klXx*c57^9)5ei)fNL(Fd=K(i@36i;1p9r+8-v`es%Z0Ty0Tnpp-W@Ee(P+ zdL5Xr428e2l29`FUgK5dFNPv!Tez`0)^iDz#X@dGGeF2jW@#fD8fM}(n%pGoTjM!G zP&GoF5j{1?Pv@>3xoBT=BjVTe;IMAlx+k;?p4s|@E*PCWyk1n;{_yD${-&Tg)lBsu zfZ-5 n4go}W?(P #d0ul*C_4!pkzKX;fFZ zBG *e`|^JdnQa&WmUkLr#S&*Pux_2=VUNiCvq&3E0COOW^+ z2uWrCN9&2{lrXr6{s37DT=ZkUvj*TZ2L1iUyNOG$uf^ x2VdefJy{i@lBE0z&wiBFFb0h(F^8uOZY{gf z=JG-@IBJE*&zU=>h3Zib_Z}q(oXwBt$c~lr|N58%Hn@UkqIQ%WK{<)^r!}k!guXW) zj>>QA_}aWZ5qvFPi*b`(R%fTOtomGCeE)^a89mr*Qp7Ghbl$MmyUr}e?60LYe^EH3 zdAfPQFE_nyqD4ap*OL>k9z5wy4Atv?{7szd=h>U3^mtYidJ6g;CE)_ Ewr=;+?8zgzE^elfsTz*x>hk)}C~(}1%pluy*;Xqg`l zF27lsPg9n6-IjufS_uBRARvU2#*6o~;Lau98eaAj^~?9?dor_5nMm9t=7locPW5a> z9+ms-H0k!6$0_W4;t4VHq1Cg#cY1)d$NWAE5q&Dd<}e{WSWLtwe@`?Iuv0-mXBn9! zb@1@9?`1OB{r)AX?|yuHIXsh~Lz7L|GYj&=OS6Vg0QWwhEi#NFBA)zh7QD)tP)c%t z{@T+@AbGVzky+^#OBHUkz@f?+A4=a*81cZ1YydX&W~)euK2AC|+1M@&Uu?m{Hb>JB z%6i$uOgb?#18mE~NrIXWE9$&vKE-VboGe&)bWB}h3erW-oCC~iP)CYN;{$@+$#?5d zYJN}eN$_;h^X^7Tv|O>k!-9wi=jP|HDCsWmFY 9jc(dLgFr*!4LTeCmAe?p5n`37(x3qQrR{ICM8;yqCi zF(;FXqtY&TWhuY(dbODG8y?Oa$rYOm#DhU<2KdeSY*H0us^y7UjBEh yv%Iue*VO0yAF~5drofR^m zKHPWY^xvqDK5Y9F^)*G>l-kJFhHd(@O@#c7V@w+<`^r@(q!Y_t46L5Tzb YrGSXbah!7xAIaR? !u$4UjS?;-+`ZKIZ*^a%h2#$ zfxlkLKLP(dd&V_={O8%7YpRF-JbN_u8)(1o?=?Wb(=X14UuaBdScE+YJ6NxP(0oFb z_c~>9Q$ZMnSS99?E87K&*-RZ>coRtxhH4c4O(m39dD2Z6cL90TDAfmU9-@)=u6l}x zO@Z#3I|X(Yl9Sa;*4{1{FJx3 g))2Oz2D7`~LObG3B8n2dfU5mq@;N(V88acea2)8YFT{(w1FZi1WUX8F#3KJ2EsF zMR!~}1GXgS%O;rMNOH%0GkrpCvyM8P5GPU}ojt{a?$cU1p!A*ig;e9H-QrcRN!dRh zDPir}C=1=mr$toY)W1GDI9%B-jJC& 9Gc*oKZr)m^ zHKoOZLnyGqzTT&?jy8e~A6|DA%(iQuA?QHf6!n+7#7mXI;Zv6Q=!ps{OLLUdRmP)# zAeu*G`&WAIH6Ad6gBxs?3pZ+UJ`+0h#d9{J^L6{D7qx`7CLa41x<>7SGyJJfI_>hD zbGpnh!hpSkSuPD2btV@in_I(IsuR=~CaXNjJ?3~fy Qyi>|L-E@h @Z?Wb%D1QwU6G-Z9gn2ZDo!zO*kAL|Ii# zZ#nbrdpIA8tTV#N+^}}3m>FNLziX(c$+Pb{pp-3U3zM$o9Qp;oxa{?}9Ih`bBs|Xw zUb#1B>SR@!WZ!fr%DyHHFCFo~0NR+^eYZZb+g!yn&0R z$62P9I#RtCXq2ZXu$Y%Jjzw@7mh`=_VGc(w3C@A-DLb|1{^mYuE!0HNauH*E0lKAn zX|RX`Qq}%x!J*mOEW6IaO E=&tkKB=~;+HR${MnBtJb$LMJWKP6PLdttEupze9V zx`GMbDmg`29`#KuTH}HpPsa&8^AcU ~+uNOnAI zW$_40M}e)mPc&)O?*$4h=^2TFJoY+|w)G;dCacJ%6IIq}{^OsBJQip4Yndg(K2}bR z%we5R{@a`qOTMMOz;tF0#)Lf Itv+%2=vkn`J1N>~=gtlJ4TFHGJOH zwd0*R2ZbZ5Zlm0Q4k#j)Mf$=|k8oWJ-FHKDX8O1b=yfqC%<53p^RNK7UH_!8?73#k zs`PFZ= cQw zu$g^hR2w-$w~VvRxJvi|3#8~E$*t+k(&lBap@+Vx*wNc9t0xpH-kvd6fP#pLgW~1y zN<2}NU#e1B!s4Fli(?g|uSmc7J0inBWxgU52AI~@wY$li2SINSVrbnt0vj#oH4L=U z=wuZ}oElK~M0tG{^&?h k9=5|StwO4CU3*{Ui%ur99XzIGki7Hq8 z!&|n$y$G9;fF2m5TFZ6IzfF-2dh2XR8XIfTJa}B9vnJ%!6`M~RiO^#T>$4ECQ0N^I zjjHWb8|uc7lWV1>yBd@;?3Ykl(1GzT#0syHP@vb?N>o963Uc+5+tzjmbwI6XlIe8) zGu7-al;M5sA1YeB48;5;Po9ytZz3?}9d4{ZTrt(D>f*AJ#~+E7>Nh7`60|nnnGJAL z*`2B&bIsu!BG4G&;CJB(0)cp5$DD@)QYE*O=V9t4W`_8XKm)eOdGKG_17hblQQuY( zc#|G#Q`ab+R{4q+touOV#E;`Dnml=Vzk~MgdvxbocnRy>jQJ2+>|OVxq>DtC3qW8> z$}4yR2ClgT1YY18J#Enr`2(F8PMSiVs0nlI1`tLIBsr_aBtJ_^-fiHZlE=O%A|@ zhq=06(f_d>Vhkws{(E->5IM{KmkWw{oz_hBJ4ZghzBX)WD3m&&yoqUT5dQOzi&bT2 zrc;`pD@aObzr-2yKTYCkb bd#FLo%tOj}_dyiaiF4LI*Kk z*&zOn9jQOZsCo?`hRkoh$E_hRaK>%{PC>)gd(;IPfRQ!;rn4zDPCb%iZV4f$c2WND zX`~kIY*FMxf*)H;*TwxggOcJC)5op9?cG4?9*?08B)i0M&IK^!!P~qAFF49E?GMHf z*nC*)Xm^@y=?Pi;S=n9sDAbxdQ9JyYL%29zgQhx+0ZU9VB6c>>u<54)kfnjb;r$$E z@;rx%Ux)vg=D_#R9^A(n%{8{9=^uF&pmrTazF)+GhXK9j}DUSoOEHg6XR%|VnA zpa)S7e1GJvB@{tVEpf&-0FCCTx=H*Fq+G*u%JT2ozWdi~pQ^Jr27z{^sJ~`g2FzCF z>_nB@OBFVdUz7l?t%U3}VIz~Yi>pP2?#Xy|r$p}CG #1tu#l|Nu|V3gbaDV`BOO3 bL=aPSQR@m}q7a${6#D{(y!D zAYIbNw~sFo-R9~`q6mBEe1B$cSCAo9gN*yRJBNStJTl)n?28R1-{Sd%NB*8fO+NW0 z0WQW=;#4CBsLDwl(l^Uiwze*Te3?<_JT=qlOakaUE%U4AIp5#y%__vUr8MsTm*{Lh z0o)+pTz;|F#k!mU8;n=EK2`Bc*bC`$v6)Mq*sq<~=^XzqsjbmfE6!)(n{xuz)pyO< zFCV&frC8=@gfL{&p+onln(@LS#^p1}fIiE%7#?O?Bg=fQ;SEFR-*(}qiTvl{$}e_( z`Tudb{k=$ElmQ%a^Y)JXPXK-v`YW)5YVT){TmO0XA^L9?z49FLz@zi`(w%}kfh`wz zA0YQ1x{&H3lN$8+o9Ljo&LGRg7B|W5nj0GfZZkBuNVh4;-(jyHhF`}Bm6uE*TDF$g zg#cLf?Ye`3<)@<>7T;C-EGBdO$sV5DvzergH2DZi)=I>qiLGHQsfkAdkq=_8?9PoV z>nyvN$Z>Gmt7N-Us8?5CEh(ohu?uA!d^oDiKeb_w$~E1f3#poxIo3Iq-K@4I!l&9w z{8LK-c=#a>_aZ-5AUN;q1LW&>_qQfZ$nUd)nwBd0(3D{L$0?c2KiU#X+;bz;`f;1D zjDH-j)s)*y2Etq$;@n^nOI>M%$IHp9eqHp Wr}&Na?5sOn$jNP0hI%S!W7$24LtOCp4UtDoEdu2uLedXwOM>kI=PD^@2}rf9xku zPXrA|aBG s>$yJfmFF0`8yxSfW7Hxw>po?CB?S3K)rB #CGFG@tN#6us3A6wRz9K0PW%3j ze-JfDg{=H;rJ02(#o|dJ7rQPqh6c?5cP{eAH+i|6R9COL`ewYrsqP^?NK0rq{7t-u zAhxXI#35l2Uh!6OiQm#(=={O)Xxt00;k?_5K}H{qx47E!=P1^jFJ%DvuEm8=f^+C@ zq3@>xuy{x|P<>pA@zhHDOR(uGTmC&At9RlvxB4|HRKxgO8EkVOd|mc0X{PdoQ wSA^F;xhr7%&a~H|$-e9#IYV<$a=lK{Kj8n?9{g7alDt0%PXYY@PHZr` z4Hwe6RfITNza9AIE@^ES72F_f>^jI08J;kMQWy_MwRj$O3+k{Ur9&(aDJ=~44^>%b z4 *N(1 mjbN6hATZUjSlPh>2` z5yCCtRD7LpeSPddWyIJi>b0LG fvqwK0y(#objYZWb5PU}Nhaq2X$ zCfs?4<2O~6zOkQg8Td`ko(fIdKmG(TA&IG5-apfW-lL6Sd=kDVW(itLBlx>Bwhfe; zrp%;rQq?3;!~!BlAVtNW$^@v|ADiDAbr3A>iD;G29l<_=T-oLJRPo_jIF!gp(3uup zdH4z(>w5FxW ;aXN`JME~=Hq$!tfd@sP5KKTVGG&JG}K8;J@ zm|5S?4VFKVZq1q1qcF$iP(A7wZ=hh(?bc=*L-lP 3; zP3^f}8SZuvRuGdS9HQ*(@JjZGC=yoc9+C6CtG<$^a5nq1jpgxRTs=2WS;7=$>=5uSPY2`l9D%rM~S{e4-UItsEdm>>rVIM)ka(jFKJ-+ z!4Z_s)e9ndh3!vFM*+xe4t+3J+e|<5ZS2Uzr@Qj$7G|J2|53pGda4g2>eqWR)H~!X z6CBjNRqvtjJw8)azVHbD`oV0ippHg%_7q*}A!El?6J3D<`%5D?%3-vRwg>>A17E)I zt(JfMEP&;ZyV7`zyFE@>?tfaVr1b2WT@xAW)j0QCEfp=3Rb@ND4u`8!m*(YhLxb2F z&vbXFu4TF@9BbQB>FaoGGm-5YB~Dt)Q~6}sekw6;Qu(x!6C-l1#BtMPsKRmvv91w9 zDH~NnuXK25E675>jZ^qPRQ{Qw%SGt{$?t7jSWpKBWb0_H -y9*=;&Q^|m#YQdejXG-ROy d! z7%ll6 ufB_iDlsQgYsXz*G-1KY-&l9)vF5j-kw4 zScHkaQ(r9rL)yf9>4E<-=RKA$5iuL}S}ll2cjxz-eVISWyyF3Dii~!lh 79RjiM{49>Q9+uAuofQ~6hvr2T^FfZks zGY;#yc^eU~NR|}y13=$OhR8tCf{$BIc8BY1?CwnMg43O082g4mOrt&OpY&nukp?F| z2@nK;h?W57f>j4L=?t@(Q`qJo-;RbTm1J03IQ*JrC{}Jd1^tr t&f*VHf5rVBZ~tG@CJe< <5G3I}F@jai2EJ>wer<;G17e zh P+lu>Aeb?yC88xG-zdFr%xGY~W=Ck#mY zLzc%ZQ>DPy_v-QFy^1Em0!VoDsX&uv3xq=?tYRnc9vRptFu2D(Vt@u{FdmpuN#N1| z`O!gc3!oHf0qib}szc^i;S01(1hv0CyD)S+MyRMQ2}qF^M_&SETzj)j1+k5>v1SAu z#nc1#M&c)cO8eD16J~}#wz~|VW9TjDDlE|MQVKTLvZhw|YnK2uRbYFa0jVl)ceo6| z93W XH&K;DB!5%x=uf;^xa=eh%<_G9W#D*n(z(hWj5-+4NLh1Z%!*Qx1 z=zh?+TRKMR{>Y;I2#~6klZQ(e%CB46ISiD~MP+R~gi*@shFW&$@`y7T9)ky^$6c-+ zNCS3~*`>-uoy{d0b1=m&()R=#m*+Z{WiofQ#t}dgX;$XcXcIB!MQW;-wk=2chC;Xm zl}(+1T!iLTl1Kr{;iG8B9pH%!v}b(r{s!c)-_s1WMtF-mC@-3(6jtg{2!`Dh!^eQC zn8^qs2908XEGcw-5)hxOPskX<=P7=~*nrqSaIpI7(<4A0W$g)M#U((|gQO535`RX` zO31(C+}7A-{vfCUULsg#dADO@T`+aG>!GTW%co-q^<2@HR(d=a4cx$Au4BC9H}Br- zOcEp2gbljYIn;Z}Lz^B}lA`lpxIC>532l>{8tAIawF0CBVY8S_TmWS@*?a`wWadq5 zuuhe>mJT`eqH8TFSXOIaK|%Tx4g3NMPVTmBk2d?1lcf>jV@0Uv4>GMEbsOt86RXC$ z?t}pS#bP3PX6zp`37$aBgdxjQ8oEA@0mvB}rugfsQqi|5!bU~;!uOYM&onPoO@R;n zWlwuGB!ICW3K9)y1i;=N$7wGJp|QiZSKB3)GsRf6$9smw{WoI8{~5k|t|aI^5nh zEXtiK-nRWSoq4AVwCMC?bHi>)NoT)MHg slhVo#JMUi1OE0Go-2D* zQ1U1?cMI6GIb Q4w73sh*2?nx%?Pj~cxt|FgF zH8l_d>k-EONyXJn4gviV8yu6FitY_Bi%)tomd9Zh5o%OpVU=?UjhMXl0hGW7syjUH z`God8X9cQxJhlSR`8LTX0Gb)Prs5T0$*hLMmy?3TOz)3Xyl#|SYxZYSngI=ycRObP z(y*I~SKTWxMEL|Yxr>qH`*0ZwO7cZ419PL!t#Mh7)j1ruPLV0WcXNDL@6#{`Ov{W2 zw8D_K^B!o<#uX#K=~^1pPBJgu9(*3p6(XoM*G{v1b+0inUW(Z;S(T1%z*hVj)Q@gK z3lASVnFo*Pc&7#lPH7U}AP<``^H~6Iv9V-JgNxTKhgxa@`{b_ 5d^cGk2pufs;@C;kv8iQ5IK8%CSGB+mn0J!DnVSA^{3#YvgsY zmmE{ebSUt1?aL+_Qei$~#QaSgd{ z7bQ*w7^eZv$F!uStXZeIYvlvmjk5<~?X&Iev4kRes@p zw|sJkipw5dQEOX&u|@y _k|}37sMj9N*1iEV?L6Cg^u)yq+!2yoj!PF}>gR%# zZ)`0B6M?3-#fYF?j%(r6#247>3BqLu6ZWu5Ow8K5#)NDKhNc>|6qKXBC9v|u5odnX zWaz|XmoF VZTQOvUY^Z+2-UWJoXfk;h<+kzP|fL8?w8S>^r?&zQ; z(|QPgr!Ieo2V<($V!4Su!1EWWd8B%_*E8xc*W@@r1j_tLoJzis&f*97)w*w+vhcsi z&f+`Zwd4^A)WdvQGr%bN6vDj<8ijzV)&c*I;N!YOFn}-qL^mJvXM1b5{o@0t(UQ`2 z16s-h#Q6N;d?&GUNMJbD|ARaI|IO9h2*3RyC%wx*PxW~zzC8%9Yn0fvn%dQ%Yx!y^ zIETDr<)j1t*5Ld>9>C;R#M2wO6TRgwhFtdMH!z04 vtj*jHukclOGmT$w&P7@GVrT~Vx@Vz3RQ zH2y&6 Ky-PGG}4ykyqMtM)T&&+~KxbO3CgSScdwnP7L|~ zu=n0kO>JM>s0~q2Q4v8A5K)xgdlOMnN>Dn|300bOLRD#s6s4C?loERHB`64?gCM;r zkkEq=5;}Y jv$z*BGCHH 5utr}%GZhfw+lw6lT(&<=j)T%}?Wm-_^! z$hWb_RJ&%YDlz0~Jct6aS$XPdKh^}J8%8ZA5|c*zqm5%EYiVL9(M;kh?I;nU+kC@; zH%UD4F84CORXS&;=EFKh&EKJ0_tV;(6VBx}16uk~)H@RE!}6sT6OHj+8U0XL9!0Zh ztoib)^lbv;NWAA)Z;aNmsIm9zr_q|tke{86_8F_{n8 f8=5j&)$$00?^u^kMAF GcVK4ClM=UoLcp* z{!NV&`Q!#!Rj}ZnxR3WqSetd9+L9>VV}aQr=|**ac3x&WhD$5O=Y`p2DMTliHs=rL z_s{N1Ft?O+6@Um2(xUnfr_@+RZ23+dA|cN|G%;DwdjE0m*jlNLrOO!Zd3nuBF;|8? zNGd^%{tM_cpKw^F76cgi=40&ra=R?q$m9XeETi0WQpI%6rxL>yI-_;wvtm_BTRg`m zMmimK?QU6^ZP;I7U(l(NfOY_+18fJP+0>BA5(L+yYUn`AwUQt<-r3r9oDRd=4&E>0 zXj&T=h9Z4Fj_vUAYb| h8meueq{PwhUM= zv` HmQR>HPx>l9UHn(5-)BLG|bGG1q$~5Ad?Tu%J7S=0pG% zr11|d$Zq1U>PV1ix{l!jZaA=B86<8n>UyASoLnT&mOFG+-|mR1{u+;YeRfC=`F^-& z>Za`z&XFYnt4fcLZ-vNLmy#T}^@>;6#+;svTRqfxriIn}*$+MhMqGQz;_{p2J%uf| z7ZnxO+*VajOXF1su%1pMl6$`4HB+C)?myr K~e!gPA3I z=Fto5LezM_hnx^qUv>8&8M_}}tMk%#%w<9s@D<0_=44id%zpt8 rE|009&n+pYS0vH{=$3$q{3 z6k~W5zdJdJ>^?Mf7pWHJu+>rG!Dd$8mw}Gf_41?7D4R5i#5?-Qa}D&aE=9ZR-Y#pq z>#l?u8B@)te&sWAydfQ>nE2i&jiO0Ot$YGz`%Tn8=+kwORe+nO38NV5vAmPM@HICd zkq?Md6K*7S9wgS#;%NCF%n0Mkg=4w20tc~kQysbsi5aNt34}`kW-u++9V)MtI*3V& zevEu?Gkrna-J4fWMYD@#lbxeBJJEeb4R}{&mw+4op?{{7%8zmC`&TLrwZ4;u*E4&% zr>`h)Q%gR#YNTW=ii9_KTcoifS57SwE|=;w?S ?7 zBb9(cn <#M*?)?LW29~7?56lNgiOm!c(PN ?zj^=9ky*)U%@CdIF6=bD+t&t21Qp}l;G;jScmbGdSU>C&_%*dxujG~Xknwv1mS zCh~eB6Qhz&x#W{KI};a2 sm-nFNMoWhVCrqIIMB4 zlKdWCUh~pZw&zRe$?kW1T6f7KJdbx2N4LaS5mD%od|!D2*Vh(`lMf0?h-^W-iByT9 z?QpwqiLP1iBstL=;bjc}5zMx}Pp6WXfrnY&Gi-J}pn+Wl2$z(@6Z+>nOb-t81{_48 zZega)7DL7M?t0D#RiC=;b^`Id9Ym!7niR;hd5EKK`UZlbvh7f6=rgkBD}P0>0JnAi z cl_#Si?vnJhS7@q!Te_}=U&T2a8AaOL3c=SOae`2O|DKz<#_(BV7y x-Uq7<$&)5K2&h>z2#jmf@i8`x-)T)!$+eY!dJkPqT zP&HI5BFc3Tncg7bCe3Ya_I;Jha$XBBP^$^16M7h+bBD9K4cEX?pLxPp K(kSFS{hb!!j5W{+D=F^0f9IX@>)+IDKY}UXNLj#XzfN(_^?T|?rOXIZ#dxR zll;^&fo6y$NRS5Nb}bKtOU>t4@%uw!l-z8A#oJS7Xbx)~)1p$<;l3|(j6~=o2dmsD z$*Jqic88^3-@Qljg{I-=tHn1*ULLtdcI#?0vf 3oSs&=)_{u`kRa zhL3_T3&`muib}9ZQkE1wg(OU*=Q{59*&6r7d9;kEUhh(hxt9ARDd|Eqn>pkU@m#8# zo3SdCH<5q -*mIDy@I@gqZS#QTy zkdV~VnkAx^CZ{%30drSInv8UM+S}$!_9RQo00pcn$Ev;iLnY|C6&y8ZB#4_T18kiU zb;Tjbv0}|$s~Gu_C18mEM++j&rq&H0)d4Z$>@3v_*hG7e-7V9`{*+x(=Fd_R=CAn0 z=8Q9S(gNZ5@M4oro#lrFAIu*n@whT9NyH?WsrqCU3FgAb*7WZU0b=nV#J2BI&7?tZ z4SA+BE5;emS29rhijd&Qk5dKZ_h6;cBGnwS&|RI8ox0vE in^2fM`Q*9l>f zMUvicbb41r=lXX+&Nd9EVlp|Msr;y-c*DmA++Y(;Yg01>TK_d~H?7E{&+TTu# D2j#A{DW+ zTLwCnCvmqD$IQsmFSN6KB{65P9u!=vl&jv4P*?9@5$|-t QAoEVvc!mar=Q@6?2$CZNd4ryow{v_o8U0r#$9j^t{YX z`r!7(ZcF!zS?A4W%IsGSPSH6J8v4snNPHEK3-Gqy3>p~cc31uWPKrkMP+{4Xxut5t zP54YkN=R6Tw#$u#i6%ri^|6jW1C91+R~^V^QOgEbKd~2GwO&t %W7T8SryGk5&tn8v`JDe%H zWZ_!`R0j8*3Dp|)VXWxc3R$s;8>>Usx@R5NkVBU6xMdd$T~e0B>Hm0h$95J2hQbT$9d|BCBAPka9fU z-T3*CJDF{l<(J9!NnDUiD=H}7KwX0l@EkEq?ynS0n61Z {p5~j9UqD~> jM5$AoD zoWvu-5VNGrt2rX*aa*$ERO%*Q;H*slSX(05{CE)0!P8T#yHw9|C;#Y|v~oK$O8dU| zU#=8Dd}QO( gd62{sk^~_&@qhp*^$W{XGX(68=BQu&t5ikV;;2 zNaXE*j`wR!1e*^=^<>2@K$(<2!RUMT4)LG!BK!!QOZ jb9Qz zm_yWVZ%kd`_@Ar)>=Tn0U=GWTx#8hlmI<8#J9Z&|_uhZ$DtfV|t#O~TcX*}U9~W{X z7O5FCo|I;lJoQAjC)C|yfrRIBb$x;AzXgQ9dm+M;CvaRn*wy>Nm)qKU&9>6zWtfu~ zAyS>#%3$pzCoh;xsP*VpF0PHu?y~mTXyp8Y;2F>3cJtXcAf6#m{i#8-1buoiuCk*| zediI9sFf{}vbw*&o(HjLH=cfNuCF>2Zr2q1&@Rr(1J)VGrw=0I7EPox^a2=?@I-u* zHl+Q106pu7%hI}Hw7-I+jE>iA&DLzB#`vqY4YzXvUMLF>Cn={Y@$=Cu!7>cB;I~z; zRg$K9H1Z|g(2+uuqDZ@Wmn&NquT}J=;Y|Z$T@`DW26_6|>3z?Jog97>m>@zTXfw_! zOXn1k(>B5mu!)=;E&Xp1U@1aP4{<5&-l(#kk*qA&V6f;;ey^IXt}CkRonkdyBryk% zV#}+MqhFHZW?X)UqK{_t_9_+WpZRjtv_3U@x}>-3ZEGZ(e6Q)vmSi*k^gf3CvYt;( z3k(sf{u&HG29nn9lD?wO)|H 4}CXmGRFJ_xbVl-EkI%{d(id*-7Vzcy>>Q z#hXN@%$7@wWdT>-EI^kZZZo$0Ah7r&|C1^Y>pS#4Aj)swvn4L7i|DlDbsW4kRO1xg z?rB-5
uZU_MPCTb`91roXdPNl6B6P!x8l=JrFX927viZ@ z9!z*xn!!w)xe iMAi2RyAah0Xhe)^p(aj!ZFdjLg8DK6k<9c!mT zqrE~;J>adpowYYxwzKL88}*u=BpP1gYZdP)USw60sIJ~?c`49h7oDw>YxwN8HYU5v z`Ucyypp!H6Z6 e@29VY za~gUH9A ^T1#NL|IJmVhrQBQIg#h>(@)A;noY31|%vLoU|%{@q>+@^-$OxqRm( zQHWmFo~x(7>JOC26Y%O$e+<-L^UB1-T1r4PujX8|*TFoq_L%yr@o^=X_yz~|%k;o58}qGP~KO{ZHF@!J~oVI2bvJwAr?m+Jfirg-UR zFdHCK3s^IqEjonPd`Tx;=;ySgxQaEAKYElJ{K^Jc;#G(z2^ek{DPW%lD9s7?vv(da zn{%-WVj@V`(t(Sc)*i 9G0;D{hk&_&yt?8n2B^ZHPI<$LJMlj+{`)z9e&=EbOW6PZ ~8S$B#%Ct8jz-TMO1dOpYy@-X~52Pi8M z6){5!z0@{nOw*<*w6hm17&X;4D2$ri+6B5ly+@Yj#ieMpkJK@I2nOEQi5BMJH(9BC zjwI)$%ppAL4Vq27g0UG!o4d5u?5OBMyO1;yDr@%tmsblxn-t$-5Q)shO%U#}%ED_r z`zkfY=Y=COVkuha4=16yIM{KR{AdSD(^Js=CT2=C_B!vBVDtvBU}qse;zKZcU8V&5 z=LF->UH8Y4j{bQDu>xkuuQ_V+{-IacVDW**ouhvCjgcBR8tG1@;?fpFKDpxO$7DN& zr`l76>EciSKY7bGw8oCk7KJM>%S2I{dAVb4ZS~hYUD>C7dDbEC%-UA&IfK)^{ivOj zVtezKskHT7iU;_4fz w##qjE zOWS|h_?Z(LC`O|8q*s{QL(l)~$oKgNGMH=3YO!e2TcnMl z+){EuChX8~Lw4xck8Po0%@8i=)Ri|28nmol$+`)^+~vO!&4NHL^Lqu(3hV5qVwa_d z8Q0HWKdmlOE3#~TGdL3XnnHFx8`rd>%ZIL{&?Vg8#%j7~+h&yYhztO%2|~mKijTCU z#|v6B<1Vt>^)?%kOTT?#WB)j4s+;Ei;(NjLol`8}iq1*Hr9Zes{RYadSA8H{VtF z%o;@?gP~UhP1~SOW4in4fZ#ru7k5-)Y*V_s#7pia-m+sMwgl)HG_FHaD2U_m6yh|M zRCit{&ZqFkk8Q?bP503Ezh}DIL$g`3C{;GZkLJtjn}hrzwe(Q=o554bW%Y^jGoQ>w z7YiCr1<<=?Tsd$G@-_3t^X-Gh(vzPdv~uyq4%)CN_fk?O^6c^-n$U3Oo6UnOl;K7@ z1%G#Eu4^H|%`T;_c7E2mc5?I>UfM^~#l6ZK>oq@kwVoh7v-zERp^vLhlZ%G7OEVv~ z&ZJNs#PR-GX#Rj1u8q9cCTq~K&eq8)%X#cB-GTrlPGMLvfV*%OA*i}@yIQo1qABWa zr<1`+KHDIUPhJdvEmdkgm#SWpxI<3UY^W+DZzS|7U^kNaL&j{&WU37{AeAHiu$zg4 zU&V_M&>ExKRRhyG`(T@+p`=^6NV2E4+j+aZZj0om-W#?d<+a~b&^K^uk+=> z2wkknrHBs=r4i^{e1A-4wlztADPkX+NB?^JcBv#tkFE|-$*XIA*&}Q-Lbzkrl__Y= z^ L_H`ket-rI>z0+wJGq;6x9n0$+;1OJ+vh1y5 z5be(nz3eH;wJ4k_S|_F+Jy#OkXQDUrg=cOJ@CVKY1)Jp{Aumt#azf>AbxkecUGjSc zyRtcl`%JtnMo9A=<~4QG7iM`~XfL}|F6C>8fm>mE*4vTWeM)_#LS8t`J=Mb5q`yb| zEdPESH?C>${NhB+Urxe}g!gO}FCO;neC=azwy;bP_#nQdN#qra27gUp`9yZE$xs zVecBb+!T%N0-$cbgT+s9lsi8hTqbrB{dj-CF1%pDo9;*zGRN>>+4+3+iI?;ycZXVT9s2 zUalQX$D0hJFG|)K8!rx?#=)4d@bSFqIF0tpU9qpfPlv><*RSZgzFS(ug4DN{e>NGq z8)BWKfmE#C?^|-~b3h%BtnRJSz2Xig<^VDTA4n0{w}RD7K!kD_&S( 5qysH0f>4U(|Vozi{J{w-Q>?vKTUL%+~1akodbe|ZpC@kq(G z{#c%dgp1XqO0nFLK6Iv0?T A+6eAk=+mcL@YBc xa61N8o3HV4E>iU+ZG-1qaU1hU#-$KEtINJ6)Csva&@@l@tEFa4 z{n>S1*0A9GJWJeK49WMtJch@OACiV2tsMR7c-;{lcyXh>hNtXU5Lfq~RsbBZMT&sm zyLg*MPNG>|iS@w3aJNOi^R5w?;*~fc^bp{ G zf~~?oe1Qi$5AY0TaYR=l*xM@0lBw5O<&$O;J$qs1UeoB$J)va9$vaWC(1y6>#i@L0 zQZHE!SiL9@Ak8qv66%8`|GHN<+$g81DcwQWxW`5m?C+%VR-)c!Q3qxm$dBAAKGyj3 z_XFnZGOyOR(?aEw|Es4>iHRewzC=g8XIJ~E;joF-Nh(8+U1WHz(XN4&IMf1ij~1-U zXxW4J`P1dSJsB|Jy|#6*0|c2^@dlaX(0c9Pr)^s?v4S7m*R~vB4*qlQPSI<^2jZN4 z@tGn{C8!UyH%O5=OY{FvS8q4`MyQAG{vOgmj4H|9{pY{%;0J<#&7}W8tBI)YKk(_= zTmOMba|L29{Kmh*Y3kDOoBw&l&lBeV0e$fnu9B&I!$)6K4vU=8bI5aE;! z>f_NZnMiPL@GvX35nWky_*vY$>W|)^r5= zp{=NeuPY>?t8POXxs6)4c%k|A%hGgQQPq8l 9TB^~N0seUBEZFp{V zbuIScZefXq`-|6&5(WBVk=d&6db`XS@e4w4fmUz*j+pb#=Tz5(GxM@pqJ~{_k`! z?^00l6=l|33g$v1;=58^Eg&h6mW 9CB7URb~9 D6w>tmT$FMdCNLr_;4< |Jh{C0)zK_KmLk}+g-p~uGK=S zE-VdN+N_4=>rb@wf}R|!ct{yuwta`=Nfj$gQ+jl+j#-bUwI9E_<(#DE8L>rfN*~R! zGYSRu*4}nK3#)={1l{e9!V#L*R0c1ndN`%0i+5B{nFX| zhlv=qf|}sI7w&}96*~Qgh6O9i-GNGFOQ|w7Kk77T38BJbX=?x^@7=S-;99v zz12_XNv~ZkdIuSR%Ly&zz_YaYh+Xs}MXC7(g%mjnIO~lLcJ)-YEt!@+naQi;p965d zBqL`Z84|$U+~DYMVHwnI!qy*KHahcsZZP99)M0ey1!?%!oq8xR)quZ)bF5f0C`7=# zyL+@b^fK-xPc#T|BpL^$%8f*-I14Cux3a8P)~=2cLq9AiFL^H~xp+b=oAq#<$A~kQ z&m!ne$jNwmo~Q7KPzKI;Y7$R|d9Lk=?OPWzQbz2cQf)nGOU29k*Tzy?PChKWm`~*a zf(X1ogP%(-uzW^%<#Re_f|S9FpT*zUpQ !D*5(uxMrGfO|WKeQ%hS2H&Wx& ww!fl|
<#A*WSjz=6#u};_wzKHml9F7wnYbyMpYwwk(On1fqvot)rM!_W@;5%0JnfS+ zL#PSq4oTg81Vk6-KoQf$i8}oNlT<4LrG5GO3W`A<$VjK@txy<&qNS;x+k_(XFW0&T zGa}wNJo;(gs+>eK+38^;p0nVz-a>-RYNG8UTL*7f>@4#F;5L1W#lD`tHNRhSd?!HY z(1(dK1(ff@sp1rlAQD1G5zpi9Vi*0P(wW*v$ssnV;9YiUHbjrsr|8bsOr9y`7|ToJ zGSc5WQ-#mdXOo#gzL!S(B+(^CdXkZ9LRpqi>b1*4RdRtv9&sD3swKm6; H>r$APjZkrY&}~(takvC9a4l+Fij_ z8q8vh@ABU3o%SRQnK7qlWITXKZW?cX4`6`POly1Y@2>Y`Yj736B x2B4G_XR*eR^m_qS0YWaHN7ZXHptgY+sZ$*oPPkSot zpuGWrt0ZcIEfcaCy@g*Ghz63vackatI0o3{>zmWQlo0MVu4 $j_ushaJ1KGKG?F@IT!_9n#TjKeOp6S@)L}!qqNfR8f{< zE%o=>f(xIksctM=*1S_hy<6>|t6N~HUPp2 +o;XW4l(AU%2K%VzQ~`jP2o zf}Q*uu0cRO5@96tk5tKla4&2!R4Lvh_*LN?U#D>I>!oc2DGN_MT9|u_+|=mQr7;kj z{2`v-*afd=vIi9!-|mA7<^nJf!pd75t?Z4EmT+5pE48;03Q6!Ir*2i#&_#a@@WRDU zG{0q(fz!lOd=j1mskB#wpM89;rUfzqHSa6}(Vd&iHMkHSZ+hXS28{dx3I8<&E)x6|@xU&iP3rW-l zK;}45%V%To+AzG67$wG)&?Wn8{!raBF@${LHwT!rDZ_i9<@FdlH>6#5VF?n*gpQvW z>(llZ7aGoawY9eINq55N>>J|tRWY+#wa>irF{?gS D9~OWvihP?Rs4wFZzFIO0%ammJwNa>DPqTz@=v6&APC>`mb?Opx*BROyU8fnC z8t$id{dfm`c;?F#!!gWxhrr6lE6_X_SDmAA)OsFjUif(T>9V{!2>Is^#Kp2!qi^#% zy{4M51KBt0Gh^NkbK@@$9TNKT@UFD#ZhY#_rTkh$J?cOcFT# ol)gT$KgVz)d5=LOzitPVDck zKir&M07go2GZ;Fp1-o<$3((*4RUEEE58}GkDUqkXwPVA05i Hs*} z#^Zsmu0VDkQNrP77u!XcGfBLd5}Ucl*lL#iFH^BoXLWc=gjtQgx?Yle3a{Z_xdF2n z&R%WJE=KoFZWqQDW70b;i)Y?l`GAr-(S8GS!QqWalMb|#XMM} FRUef&P9nzn@^T2^Dbjfg;rN-%F!o)9*T72K5dtwAp+BsP1J60lt&E!ju+DUZg z30_1pQPkd`9caTd`)p5FDvVFwEv9@>tSaTMh1gVF`{dRop( zEaf%x4IcGRdD(J!<=1gAP(bY`mv=Hp6>~u$u&_%hBC}UNT+6oRhAoE<>zk+?-gPti zsQibtR&sQKRM!tnNV0VQX(v20G47rcXV3ep`SBw@ChgB?Rc^&uQmz)Zh(xhXo~!kH zqY=~bWei;voV*6G;BZ{0EmV(B>u2=(=J(SSRh$n@AQp4HHH;K&-cjsYlhboFRyiT4 zfzi#~Exi1o16ekl9yWarp;P`ISJOIH&-@K&&hy6SERU3TS%qNpe0GZpZc?`H5RB`m zoVimH-R4;kr)X1BCb*Lg&U`PF65liTt1bDFerHjH ZYJ1bM?M<{ertuxjJ0g z1Gc>6M^^ #nCmp7is!uCz0dRJF;kqiCRW0@28@`T_-5Mi~Gyz0`mN3D- zUVAae@szr*p 0oKE7ZM?s{EDgq*Jpg4BDUNDx9v!FS4C&X9pU=Zs7> zmhdCvx}Yj5{*vMOPy9e0U>$C6RiT%1KR6 F;NXZy&N%8j)i?79-!zg1P7rRM`ZFV(m`PF4Ui9*bX9f ztMO@G<54mIK4hlwHxr28IfYQ9=k~nSZ{}tOoTV9l8BlRxo}C^bf|tO HQ--@aP{iv*P%g)Aw`*`t7fw;`BMQb|-I#x|~gewf7Rw8!W*hcyzRWD+>Z{M6dr- z;}DoXD;r6y3Kt~SM!h>nue>EEYpBXI6l(l7ko2F8tw%{hed(94%B{p8h`xAOCdgx} z{}ELM+>ZHce>ax386GFPBv4$(Wusd7q3N=UXo%{m9BIGbuPsc@u$>bVf#FeN0|)Hu zDt|K;vubXEd%-aXmc0r5_>R-rx`ruJ4;nvqa$znzgjAvglBd``7K Gg-vx*|}l( zB>wSxKomJd4D|n|Pb#y@K_#tNM>)Eb+*Rl=^Fy$1#;*>enq^``Zki}*@_pbRAZ6M2 zt)+kdCj`bq6&puUJpP2y1@C^JxjlyKUgKQXKB1I&<0T_U3FR_h0Vdu`$wx@o0%yxa zjpC}Hjlee=Smu1#=y`(Mp+6CoR8?am$r?f1*wMaaZ{wNq_38L! JZZsDH-b?Kxr -2O%kKJwy7k9A3|mF+6Yk7JBq{R*^lb2@ z?V6mS0u~l2mC>0qy`ifLgA0d$A}%!I(^|iHwXY?%^iW}Wn+9{v6H~k^!Bj;CyO0K- zqlr=S!=?LDq7SMGbkm Z;S8ey|)9eBJERGN&f}xoMXQCog&lkOk(ch;{9>7ZJT ek?0DsvA6g32PBov=1IJuledj%N9T5>C0wdpa`1HMH z{6lH1)ulN!OV~eMxFa cc)#t*7nTDsO7da0r`WKIt! ^sDmd5u!k~YFdxfc%lA6O4YhtlKFi&EO zu1-A4hDhKv6XKsZ&5NR60b2^8&53&1V$kb=;Z)%Ei~A2Y0^E`H=t=i0h7D`Uu2M3s zY=WI&+V<2+s^^Z)#x9cr_;aQj2E`tM*|oNrM)qOq6ILguqbb{yVdNL7XA~oYwaetc z6Y84RH1xu?if2SY*InM<`8?@>p@rr=8=;3S;f0Kw+O?1?qFu|voxf)W`Z)>tMbV>5 zzY}GsWWOWtPb_Hm2r#e@IM*p9#;&D9C3iox*`h&B9=nVu3W!N@?GWNLtq=hfsEl#_ zx{%8#8 nE#GJMVNVaF7{6E{-kz;gZnl_j&p?oj9?)6Te<8uVuX* zl*r3S!HpS|sshL2;5p`_8`Rh9D)a?w(>AIuNtnXJAtqOev|6he`U}fu4`7W=?+ONv z{+Bh~q!;e?qs6eNcDXlXliv<2TDhqqG5tAQi4UxGWi{JJmD(5*PmOPrvVm%-`qQZs zkJu0p@xn}yyuzB9c#rmh`LdEXJv+by ^IjKw0+7jpw=d77cTt=D zoG}0iBEuh-1YR)6R2eP!-iRyjdN?&`O(r2^ KW1F5e%=SiPLa&)X7E3VuVm1CV>e2 zw5MX@GYfJuV#R4Rxg$+4tY3=HAF;QF^a1J;AW2ygD4$fg`VCzfqjTsK;YdT(uE#3& z6^2p`uks;?vS9}B#ssiZR}GNTCyW*pa NsL|V-bHS#~gxw3pP6B=Zqq?2nTK; zLuD~oV3<0Sk 5isuW|JqEkiPWm zSjzp*23hLRGO~49APQt}C~&{(Mi9YEccs6Gl#;GBDtR3TkX4_00E1V>75zG7=0eD) zM0K;>X{%m!B4N7M$A2SEWiV(LkO{&%&uRP|u4aAY)7lHx6X69bmDIobwjGA!h!r=9 z8*(5s*k>tcS?jOA!Ax=dqCy%T7LQJg*0*adeZg=4l|~C`pDVK5)Nvy|r5ef%iMwXo zu5B);hLTh_Z|iz{naAGorQJmh;=pEsQ^j8Lp~P|t04EX2YAp-JGdCL1f!yBTh#ZHZ zyYVW{J2eGpX*o44LSca}D9}C!tOBgy0Q6-@^>Qnr#&}pS9bbQodZzhqTBTR dvd zXZ4Xk&FA^8)Ws8)_kAlR1+9k|K{Q3kc4?$`-Bao3hnL|CeFHPXwhP)DgrZ|UCw4Up zo@EZXKb IJ_1_jILH` z;aXGdvv18Dis#&0-rvjbOz(MAHgltwz?(~bzfxG1nN?}Pw%lfHI!fE-os!h9s^sQ0 zW#wFYym7tnNztI6J-{-8x$t~$t*Ktket==`*39mXpv6{k+bQAu^sVL!ky2pv4f82t zAmB&`;uU^HPAGcf20`>piX4Mj!f1)3#>$3?h~M5?iv(dPr=HnC0NOtQN6U_p(}1uK zt#^P^GS^;5BzXD5phu!^pK&wIQ1S1;{HWoMf=r4`$Zk_82(N# 1I>FXOP*o ygbeU zqB^x&383!LijMRAb#G9bCSg@|w{Hu;kW5PAE52|bI%dCEh>}~!j-i469*+r7p0rqT z<#=Wk&7sXqERiPyK`@w?d#yOB YqYYZaUFf?{(MBF}gB?(bmE zqCf>mq0pM|)h!r{O5Bd5Ww%I)V f0Gx^#rAE=f6%=oe8#Kc+&C?LKC#%{6oUwTq1ssuux &%hH8S_#0;#lC zP)Tw=!ouXqGD>Q%kX^S*6=>UwZ31!1G*IHw9z_RSr_8Nv0oNY}7C &JYWl z(L573`1t(i@Sik2IxP0=+w<=rEC6y?K;_@{IEV7z<1e~ _TJ#Zb9%Wp+_-3e9*_CE3N@3=;|wncm}*Jf=$XVb6d)e@d;0u@q9 zBCt2-p~+Ul~p6Ja625hI})YZ#eT_v9}m6Iv<*RP^BdHV=|u zm`j& *_o--t+yySXOq-I-i@ zVvBYqE1(8c@)BZEYD hjoCEIx8FbX>r~{$&uI)E5??*UzccwyqFHx2`#_lcKOy!uQ>Yd*arp;R12-OG~r8 zohxWPY^+{tK=KKcePGAUbh)&a@a9G*C2@h)@UcyGAOBeMByB$bV$kV)%LX#rqYYEH zUB8}W vuXW2*-9n4cIomDbhjL!--LIKvR9bGFrZ!94o>tGQ(u3)FJ`mu1Ql;d! zSF`m^y=uz8PgnEO>qskg!)-F$CI1U~H^g6VfC>0TJmdk A_AsBhOLN2&P)4zkD_hW z%|0bFwCW>It`Gc(oM$qkF4)nJw8aVwhJBxbc(1w5vHjg;?|788G9Ja&MTC$s=Xj)a z9lzW&oq&UgN9Upll&XwD+Jeta%vsnX=fa9MT^O*wG+o$vg2NVC3l>?4 RcXQrbxw7H!MdfLg@x_fqW z^kyFPC2BAz2ftBg9`K2-Y3k^2lw-+>c>?4jRgU{DWnUyLzSKIv;Z^xrLor{!F?NNW z_%daE((-;pA70vC1{{YqO&a0#O=wLX5@?ni{_^T@P9>zB$ewi<`gE&4#g;En%=uyU z8HflW_>QQRhYT)`G*LHjfOS7<6S8cZ$lBk&`QG4SF3*v-8+QM~iJ=({&y)L2l0< z!wIRI~qNwa-_g177PY>P8%ZN;ms4l^b_`uXD7s?hj(oFSf^V0b5XLQ+A~$!Fmh z?YK6Wo{MSISZX65N!jj+6NGAeTHUuA+Jo`r?v94}oQo;Gd#T%6wVm&>B=RLwFH`3# z -k?WKbhrYlnk ztG~0A*be{bN4^e6h?;1ZFTa}@hlRqJ7>1XnzP0!|xZ_ctLFIS>tHEX(Q|_`++mVL* zODNUsC{+}F1N*`#J{qIwc?g9??evJ$afbH5-9Sm|;1@n9!ym6s3C0mr(($0^j9Jig zBCAFGX~3@W&K6~anV*pT`_qeDKIL_#Rzp2CS`_tJnHu_@eXsqrNMsI^jf4WGd1341 zXG$f0{~HR2cl||){>e!pw1hi>KlIY!E7c6)J-a<*+akNGIW?`Lu-LT$wl3Db!SpSU z!BhL-951;2=+hvLgj v+}R8K6F)~ap4_DwTe}=~;^W}_${Dch5g}J!{TQ?o|Dz9-s3_vM-^wy# zZO*wBy!lA;iqv}U4c@sl4db mQh3%;34O&1U|r5#wCevpSBv=W?e zD%hHHnm>DJ>Rgffupzky!WUs62x@j@VxNIDu NK>I96Jc1-QD@BBgjvrxks*d}&97ACB%l5zmOan+uG3oyHy~uW= zdbMw0;`+*s4YD0w0@fWxjBf?})nLOsaEJg&NI~cDd!$Lt?lxy43S0nDV9M;#7kJ>A zI29g${g~gRq()t7(|a_y!wN|}+IpV5r#IK~^(!_;f3%pjw7Xh|WTuRKuT^&>i(5W8 zjHAjXYn))(#_Py+Vo%?=#AE|-#jb B)`~ ~XT17~A zf!@0VTmFbTIfyDh@463dY2)Gt7$nH2`Z @ZRJC zk-az&O+Fa3zkuz^>!4jd)m<{kZ4wxf5VuKeiB=4VGuy2F!g&DumGp0^0d$yS2dVr- z0BLiP+CsScgUtgP9cUs1M7DEv!k2%+UcLX)==V&C(dVFgZzZ;+9=ti1a xwsS(8S5%>dO+Xh_Bd>xGQfqxW4^$-!4y!-05bOL z9T>egv+&9#o=WviGkRB#1Eg!@{ed<93MTkQ$OD*d6d;>Xc9e(~js));J^>+NfKNZo zwS9($Xuyoe3#%lPMW_;rEFg;BPR_#vsB{i7 2{t}|a|I4wNR|-l-{H6$u>I#UP`{a=t5E*3uN_H$XehPVET}^25R}?cw58u%$ z%lb%M3=~k+pc4{+a8IqMSOf@D7E9W`(P9Lt$4|k@d t9xlB7Ou>T;tkR;!38H-yXy9 zCVH|Ed5wiV&u8ng9s@A>hA#M#80~f*5XH)y8rA#)Z)LROL$IpZbH4F~{*IiT(Ibha zG6AQQBE}pM6LkoO?hRT&n-1UzpQZ}aU30AlL&<{?y~u`W3W~qlp(LS5tSlh1Ijv&c z+ vNeU!qP>~K+kSAZlT>X z`7vLC#Lsk2ac3Bi7l`lLY-P(AHZgBg{+pmC1@tbT0xtpxSR-bCM jgVZL^Grw1pEvO1A? zgGllkeu!X`;%niWkdKX1(JuR6)t&i2)a(1lJ9VlrPCBP-A?gSbp=^WrP|7wVMzUmV zjk3 gHd#mr RS7w_Lj@K6e#(GHq8njDS#cJk>cafj0$l62M)lr&t}r)rOHe z(f?8-$ykurucy*%H8H9pDsFP|OX8^)#i<}qa}u<#NU(Y8j&UA;>(j~`y5L%9i_7Gw z@?4T0%^Vy6CDV4>MlX0T{kuUdhdu#TMRgpYn3&6n=pYL(C6IHY%~G+UiFnq#5UJ9x z-~YyXi5z@s$B+!z_zSSL&Un{Y55i)#%yP!qEPfLKJi{cJ(F9O?R$3_WYM4KN2<%ZF zz3D~Yj__Z6bwP8&f@-4+JS&V92u6vn(H(m!Ee)>tAi2~kB@yNNXW>OT&h|^$ zC9xhVX-wI>Y6vWHUk({trbpD|kNNkOt{#T1WCXAtfF^2I$v7L-^}eNBcWyB1>I*oW zYo9_-QGbvR>kLZ@TLHvxP`lh$1%I)fXj<>1@%e$=1LneLHt=3=&j@%YgI|83U=qwB z?V5KBs+SMS)d8+*9K56SE4SrxrE6c?={NEL+9qX7GeejQv~N=!oJqVOj<(S7`*;NG z=M=B_v`a1wILAY%iXjhXr2}klAQSB=jU7*KX%oP &`yDmpwJ-GP1Xb|2(@5)2g@f6gI5Pkl)pak;}9)sc0bwq>nyA3<8yQ6O-@ z{Z6a6uRI^=3kWbZ^=xZ`t&WZ(k`lSK*irn(sx!z9WzWIR&_E30sg(UB88w<)ZsP{j zvKfmY`vAMXm-@28Rm*JvP}6sOPa>)Y4O_m~Yzjl4UN&&P^yc*0Um@kH-5-#!SkMW> ztClL@I}F&UAV3>-;d{E&C~}-I!Re{>BETXvC%}fxlG8urA|tB5upm zzxqnyBs5h~*Q@6J9%<;8+bOu^^zu(#ZT-l}6LSY`K8t$6QllK&TGq~!C6M=>4RT#! z?`J%5q%@Sk?Qu`JQP2eOR?$mgCe~} z%oW Tu_=zvQyK>47G>bXq+I#HJiCF3? zeDPvlB6{|$&hn@PKtjW%=GHg8vul1(y4%kra^pgJZ^wdCN?;J%q~edO)bvniCx@hc zjJ|RW-kAr>5w$I%PA8QLwpJAz627gdvr}doqT( zJCAzQ z!Tr0 zXHz-brNrF`R+M8$1=rG2?efDLJ|<7yKv-Z(K#C~%a+7by_4)rIekQ#6K!pR6$%fLx z#PiQ@VMw9c2aW=w=6I%N=h1DLZ}0kyZAnKb_W2OIY-0JY+1N3>14ilA 1>) zG7U!(*PE_%uechoysa(03TV&0ZR|8SJl{lV9@WT9HY8=~P;v_Z9sSKba>(4qoEy^v zj$%BWMB*dRk|(&WE`F6cl~P9Mi>U;1_Es4J7_J$6`fUXjG+ 4n zBKGw->aDL*HdRAl8UAmq&8@6bpS%OzNb|t8+YR}QBLT9<3>4YGPKQ{G!ynDsVDboN ziD<9Lr5(a`DS@Z}89_c{Z$1C0f~3T%5Lw{ahhHBVkpfeUG3k`Kk8a(6!s8cGymHkm zLqY8Qb5UZm|B0sa`rfTIp_^%|St4Cv5gdyr;P&7mmZ3>aq%BPQN@P6Y0OUy*In}tg zXixgLpp zbU+YCu#kV~S^27x4qicA$YWqX4}E_$^K`++1`Ch5usnx@j?H*e&@4MWY?k$S68#cy z?Wg&wI>3CTHKxq9;gjWUJFpO6E$0zJU<~dWDYNb7PW2l)w7rg}1B7$~hi5xalM)Y| zc2P%$p)0s;#TFrDZj=3&?fsn`Ejew9WTu#m5!*eyq90#>p`?n=0d7-l;(3>>B|O&| zw(i>F`>?wF;ycYb@13*3^BaVRDfZX5=z_5CP~JMA+UN3W7lSK=vUxMeJ%r;g)UMF@ zp> x zbDe%0qjfmN^FU|e2MA%fAh;y{M=<+tuq2g=cY(xI3k@B)^}Sj$_@=P{!xdp2kQ4~l zSQ&rRrS0$~{*;vM!3O)^IPP0Cdv^W4^HK*$3A8iLNKSKSUnhtKjW!b=4tnpB_z2Ky z;oG!(I@ rus8m4P_=T1Ch_mT6$G- _2$B5n(^*%<>j$W zWVOBYi#y+iuYGoynZVc9M}7-+flK%uTI>`?W-3$%0LvPbeKDfbb}`N#2Xp!YeH$J- zze3$Z4d)s@=axo`4ciVXS0y(;l3* zt| zWmFJs+z^&iZ?B063L_wbz)@#$PiMrS^M^xVM>)5tba-y1)nPxHg|*&S!VP3Fz<@50 zdsPa4jSEDaj|tLUn%+Dje?BJj$k`~JEWpZpe!n|!{>D;vb*q}IkKSlUVYU|D8P{Ne z$~4{GS-Jpj58A*q<-ne;M9#PK^Z=rQZj-aF^hg@_G$CPas)BRY*wtsQGTA%dvKSX4 zKF6BgIkDN Rw-XK7MEcqdBXBY7e2Wn~J_WGgsI$ zxDNyUfg{-)J1+v!ov=XNqkwI*QgE4yNrna?EyXeD=~xmyU^*#fvg;FqInuyfI^`PD ztWS%*J$j2rK^0RoRpa4I7X+(6VfdTzj2efoEbxD&kU&%%aqIcWDPY@FoA(KKb*{(k z39yV NKlne3jPa@kiY(=Vzklp_EJXjqzYK>11p@odM1jBJfY)J%uK?aKPd~)$ zPXouq=)yk4BfuKJWUt9{9Be#>YU6=)cF$L48&Hg*N5j5h&Ya?#9)DIgmN$IfrJl3I z4ISg8hNhOz#OdnGifxCiTi_**M{jM*hEY^8xYMegL@@x2lS&EB{h{{YM~Pzx7yUWz zk%`g*3U=~f@1{VsEP2!rtM8%@1-rMn1YKF)uUogRlSkhDWi($khphrvTG(|`6T5t8 z^IT7JwF?Qif|L5;8HcCkS3W@=7wOws>;}+R``=4*^={U-Vx7E{2&wL!5E{aM|DErD z`>fb(z7^U13~nJB>276DK8AK+$XhohKZyBF*9165@;c~uoxpV`uka+N_A7G`=GC8? zTVD=Us-U@}4Nd|Hz`6M=PB5kFR8BrX)E9@_t9R=QSL7|&RoL4+FOe5X{t@` EvNi9dnz&eOrXsgXlY- z^-qGFuN0c+?c20@$ENQKpL59AchRx$d4s-*stPqK^KGZ z$a@M9s@br5NE$qRb%-(!#8fHiD((WTysE`niha~Yi&`@&wYFG{a)J~TX3!C^8LL0f zO6GaKr1@xGqIDnc=oWHlo=~Q7y{qukP-PMW&yFp5E^ 94^MSdZ?jo zzo(Vop`*e$_q$ul?FThZ{yph%u&N}*VydO7w$rh{ueQBH@2dS*L&OghF`%FW%mXq; z=7f+12>ku^FIuda4Ty|kyqYdCrur@igN1e2kLbyT3 g<7SBS4Gb3R*>S0jbY(v!W_rZA%VvKiW=@;Sp~FuXNO z$vT>sH3HW2 fDV?31~dfqgQKKmCjSQCU;g-|Eod2vS9y zQ%w}_%(+=#%xNo^B7tfeI+Q+gW*pq#lBvaSL (z8^?MXr=hI)qb`=yQz%|e9@Uzb{(u`%d8~(>R6;F0q3dna nsYb;kES-xPn=3vjIp{@li8b7|G1wn~Ek*3`(Ah93 z^)-;uP3gG-Frt58z)A%Iv5t+8Cv=@l*7v&R)PUNIn4AePWhPUC=@w5n@7->sTB%dX zQ=n&JKxBVEo-Qy_ B1%j==|Aq+;RlWLnGC<|vRN3u z@hIifIVI@BK7M$?HSMhG^`#lj$t-p&%eBt}_QC`T?MEiP^yxI0ZkyoFwOG!bHNz_> zzsd6yI1!ZWL$z3IsA75&tJz`%^q7@w#Rs-3IQWT*BW{{ez%Ae1$I=6ml-Ze**~1!2 z!WS9iyDf1I!Ie$>FCns|qbJ1R(iH5Kvd!`_)N38M#;1|}OjES>>WAXVXU)=r(-d4G z)<|ap 5a+po`OXCOQ?1#c0Jk2<}V@Hn)3?JIrAGx!8w~3tqP_M@lI4o3?8PY&fAK#}WkX5oJ)pB#p2i z6ga27<=6$tr3XGnb(!V|$NUujD4(Bq^CKotzNKg4X7}<}PyB99h<{H7U+R!Le!PI& z9A-#%cG40e#Op%9=@gQJbQIo7g!eL2h4#12J745n;J+Hi`4k dCY0#= ze>-kEKFq<&9*4@Fyt2%tL2M0Fj1#}@!~5M1MH45%JnYUIBH!yDj3B#rJX5@9m*~R{ znjPG9+Ij~(%T688mnq=%KR7OR!>mJw^DO%R^Pll_$o#bZNT| OM<&@ m^@cDiA{H+0 b6RJp)j!Hn0-U-c6LI>%cD82Vy zrAzO<-NRGf_kMSbZ~Q-JgaJv;Is2@&_gr($wf0v 0ss{Pf4l_&BOmL 3`mM{gnspI8kgR>o}I g{Ypoz{k{KsN~{%BMFkS^nDwG+|FY9Bbz{Q%MF zapK@_cyT5t@Z0MinaJjV0GSYrAR+xYBv673GTkj9C$RcsNcsKYG$XC;t3`o8kpl1J zK;j)2S}A&+TCS$>cdPk2GXm>n_X5Sw1H$9p!HAd>4o!Z_Fh^`|c%D>IzT0kLjC(ID zl9n*a``u-)KhE(@saKx@=d?ffjNnfD#mzVeHS >UivHbFDx UbzRL`Rdw{y z^T4b;4y;MXJ@bL(yYD)9Gs^czgRYqm1*XZz-#gz)3?j&_ gK49Cy+qI+&vGA|NNZ^ $=AAEap&M3i7*O!_{JJw+%Y1u;!np-J7$hvkfW2_DCV;UYV5 zqAoFEk>BNuGtTEn&!1ky@CPlTAIN^#Y6!W?SsjkK|4i~mktLNvmKtM`wW!c{L~MW6 z>2|c2x-JB3HTGe&m?k!Se{FWDTVMM{Qy^p2ac0+{mwdeJhqdAlLQV;HHjh^r?U$fj zj5bwDwXrtxezQ5HvVTT-+vfx-9N4Du7tf~GO4I7MI)z)D4<<5fs}6LDHt>3|gZ0Fw ztzU#KN1Jsh+uc7(wNmsEn_EqN$lgLzqH33pTYn~m6U5wW+e!Y6@h2#VL9lvw&8uf8 zP26vPuBMRCKJ5Db((c+#a*pXf1^0!UBvi_^-PkP>n*G;5O%qd14mX{zK9vlA{@zF= zS+axtp{NkAVI%vkhr%V^wzD%-;vV|SOz _qlJpSyTmV` zfv7&&XtA@b@b+k>+V&W^YbG6jru(bU tqznZR(->W$^(EM5DoDn1L>HPE4jV*R< zjoPHwY}f8{%6CNR<&qpOXMKodhv+Z$szNkNvc2cq)CsdS?sm0C=+}^G6tgA_WXT;K zuh?9xIWl?Xk$n5gcg0_z+W+OqOu=>UF7;9LUim(gk!{SC1K~+Q_CY^Fy#L1$P7KG+ zy(MNOMBYNCLou+YQi1*vdFS~SBUn1tUd^#N!})&9%;M~
1ul6P=_ABtQtF!$r#e5Rle2NO;Nlg^9r!^KNhCqt *w2jW0f+Ar=0luVCDIL>0#QLv zKfl21K;xV@R|~rurx!!~w_8gKlBT8u_$Pm)oFJg!