From 555294c0a522b783f3b02e82f0d406b97b889f59 Mon Sep 17 00:00:00 2001 From: fgerlits Date: Mon, 18 Oct 2004 12:30:34 +0000 Subject: [PATCH] added save current state / revert to previous state mechanism to Playlist --- livesupport/doc/model/Scheduler/index.html | 9997 +++++++---------- .../core/include/LiveSupport/Core/Playlist.h | 33 +- livesupport/modules/core/src/Playlist.cxx | 43 +- livesupport/modules/core/src/PlaylistTest.cxx | 48 +- livesupport/modules/core/src/PlaylistTest.h | 13 +- .../scheduler/doc/model/SchedulerModel.zuml | Bin 120331 -> 121450 bytes .../src/OpenPlaylistForEditingMethod.cxx | 5 +- 7 files changed, 4346 insertions(+), 5793 deletions(-) diff --git a/livesupport/doc/model/Scheduler/index.html b/livesupport/doc/model/Scheduler/index.html index b19fa7456..9770f83d5 100644 --- a/livesupport/doc/model/Scheduler/index.html +++ b/livesupport/doc/model/Scheduler/index.html @@ -1,5785 +1,4212 @@ - - - - - LiveSupport Scheduler specifications - - - - - - -

Preface

-

This document is part of the LiveSupport -project, Copyright Š 2004 Media -Development Loan Fund, under the GNU GPL.

- -

Scope

-

This document contains the specification of the LiveSupport -Scheduler daemon.

This document contains embedded SVG -figures, thus an SVG capable browser is needed to view it, or an SVG -plugin like Adobe's SVG Viewer.

-

Requirements

-

Overview

-

The purpose of the LiveSupport Scheduler daemon is to execute -playlists.

-

Goals

-

The scheduler daemon is a remotely accessible service accepting -playlists on a local audio interface. Specific goals include:

- -

System functions

-

The main system functions are described -below. There are three categories for these functions:

- - - - - - - - - - - - - - - - - -
-

function category

-
-

meaning

-
-

evident

-
-

Should perform, and the user should be cognizant that it is - performed

-
-

hidden

-
-

Should perform, but not visible to the users.

-
-

frill

-
-

Optional

-
-



-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

ref#

-
-

function

-
-

category

-
-

F1.1

-
-

Accept uploaded playlists

-
-

evident

-
-

F1.2

-
-

Retrieve remote files referenced by playlists

-
-

hidden

-
-

F1.3

-
-

Access local files

-
-

hidden

-
-

F1.4

-
-

Provide status information

-
-

evident

-
-

F1.5

-
-

Log playlist execution for proof of broadcast reasons

-
-

evident

-
-

F1.6

-
-

Purge local file storage of unused audio clips

-
-

hidden

-
-

F1.7

-
-

Execute playlists

-
-

evident

-
-

F1.8

-
-

Play live streams as part of the playlist

-
-

hidden

-
-

F1.9

-
-

Remove playists from the schedule

-
-

evident

-
-

F1.10

-
-

Re-schedule playlsits

-
-

evident

-
-

F1.11

-
-

Delete playlists

-
-

evident

-
-

F1.12

-
-

Create playlists

-
-

evident

-
-

F1.13

-
-

Edit playlists

-
-

evident

-
-

F1.14

-
-

Start the scheduler daemon

-
-

evident

-
-

F1.15

-
-

Stop the scheduler daemon

-
-

evident

-
-


-

-
-


-

-
-


-

-
-



-

-

System attributes

-

Generic attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

ref#

-
-

attribute

-
-

details and constraints

-
-

category

-
-

A1.1

-
-

operating system platform

-
-

Linux

-
-

must

-
-

A1.2

-
-

supported audio interfaces

-
-

ALSA (maybe also OSS?)

-
-

must

-
-

A1.3

-
-

supported playlist format

-
-

SMIL 2.0. only partial support is required, which focuses only - on audio aspects of SMIL.

-
-

must

-
-

A1.4

-
-

supported audio clip formats

-
-

Ogg Vorbis, mp3, wav

-
-

must

-
-


-

-
-


-

-
-


-

-
-


-

-
-


Attributes related to system functions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

ref#

-
-

function

-
-

ref#

-
-

attribute

-
-

details and constraints

-
-

category

-
-

F1.7

-
-

Execute playlists

-
-

A1.5

-
-

low latency

-
-

when executing playlists, very low latency should be achieved

-
-

must

-
-


-

-
-


-

-
-

A1.6

-
-

handle time skew

-
-

the daemon has to take into account that the system's clock is - not accurate. the clock is synchronized to an external regularly, - but the resulting time-jump must be handled.

-
-

must

-
-

F1.8

-
-

Play live streams as part of the playlist -

-
-

A1.7

-
-

supported audio stream formats

-
-

Ogg Vorbis via HTTP, mp3 via HTTP

-
-

must

-
-

F1.14
F1.15

-
-

Start / stop the scheduler daemon

-
-

A1.8

-
-

provide System V init style services

-
-

Provide a System V init interface to starting and stopping the - scheduler daemon

-
-

must

-
-


-

-
-


-

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Essential use cases

-

This section lists generic (essential) uses cases, that do not -contain architecture-specific considerations.

-

UC-1 Upload playlist

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

ref# -

-
-

UC-1 -

-
-

use case -

-
-

Upload playlist -

-
-

type -

-
-

primary, essential -

-
-

actors -

-
-

Playlist editor -

-
-

purpose -

-
-

Upload a playlist -

-
-

overview -

-
-

The Playlist editor uploads a new playlist. -

-
-

references -

-
-

F1.1 -

-
-

Typical course of events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

actor action -

-
-

system response -

-
-

1. -

-
-

Playlist editor connects to the scheduler daemon with the - intent of uploading a new playlist. -

-
-


-

-
-


-

-
-

2. -

-
-

The Playlist editor provides authentication information -

-
-

3. -

-
-

The system authenticates the Playlist editor and grants access. -

-
-

4. -

-
-

The Playlist editor presents the new playlist and the intended - schedule for the playlist.

-
-

5. -

-
-

The system validates the new playlist, and sees that it does - not conflict with existing schedule. -

-
-


-

-
-


-

-
-

6. -

-
-

The system stores the new playlist, adds it to the schedule, - and sends confirmation to the Playlist editor. -

-
-

7. -

-
-

The Playlist editor receives confirmation and disconnects. -

-
-


-

-
-


-

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Alternate courses

- -

UC-2 Manage schedule

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

ref#

-
-

UC-2 -

-
-

use case -

-
-

Manage schedule -

-
-

type

-
-

primary, essential -

-
-

actors

-
-

Playlist editor -

-
-

purpose

-
-

View the schedule and remove or re-schedule playlists

-
-

overview

-
-

The Playlist editor reviews the schedule. If he decides to, he - might remove or re-schedule some of these playlists. -

-
-

references

-
-

F1.4, F1.9, F1.10

-
-



-

-

Typical course of events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

actor action -

-
-

system response -

-
-

1. -

-
-

Playlist editor connects to the scheduler daemon with the - intent of viewing and editing the schedule.

-
-


-

-
-


-

-
-

2. -

-
-

The Playlist editor provides authentication information -

-
-

3. -

-
-

The system authenticates the Playlist editor and grants access. -

-
-


-

-
-


-

-
-

4.

-
-

The system shows the Schedule to the Playlist editor

-
-

5.

-
-

The Playlist editor browses the Schedule, selects a playlist - for detailed viewing.

-
-

6.

-
-

The system shows the details of the selected Playlist.

-
-

7.

-
-

The playlist editor removes a playlist from the schedule.

-
-

8.

-
-

The system removes the playlist from the schedule, than - re-displays the updated schedle.

-
-

9.

-
-

The Playlist editor re-schedules a playlist

-
-

10.

-
-

The system removes the selected playlist from the schedule, and - re-enters it at a new timepoint

-
-

11.

-
-

The Playlist editor browses the Schedule

-
-

12.

-
-

The system shows the Schedule to the playlist editor

-
-

13.

-
-

The Playlist editor disconnects.

-
-


-

-
-


-

-
-



-

-

Alternate courses

- -

UC-3 Manage playlists

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

ref#

-
-

UC-3 -

-
-

use case -

-
-

Manage playlists -

-
-

type

-
-

primary, essential -

-
-

actors

-
-

Playlist editor -

-
-

purpose

-
-

View and delete playlists -

-
-

overview

-
-

The Playlist editor reviews the uploaded playlists. If he - decides so, he might delete some of these playlists. -

-
-

references

-
-

F1.4, F1.11

-
-



-

-

Typical course of events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

actor action -

-
-

system response -

-
-

1. -

-
-

Playlist editor connects to the scheduler daemon with the - intent of viewing and deleting playlists.

-
-


-

-
-


-

-
-

2. -

-
-

The Playlist editor provides authentication information -

-
-

3. -

-
-

The system authenticates the Playlist editor and grants access. -

-
-


-

-
-


-

-
-

4.

-
-

The system lists the available Playlists

-
-

5.

-
-

The Playlist editor browses the playlists, and selects one for - detailed viewing.

-
-

6.

-
-

The system shows the details of the selected Playlist.

-
-

7.

-
-

The playlist editor deletes a playlist.

-
-

8.

-
-

The system deletes the playlist, than re-displays the list of - available Playlists.

-
-

9.

-
-

The Playlist editor disconnects.

-
-


-

-
-


-

-
-



-

-

Alternate courses

- -

UC-4 Retrieve remote files

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

ref# -

-
-

UC-4 -

-
-

use case -

-
-

Retrieve remote files -

-
-

type

-
-

primary, essential -

-
-

actors

-
-

(internal actor, initiator), Media archive, Local storage

-
-

purpose

-
-

Retrieve remote files referenced by active playlists and store - them in the local storage

-
-

overview

-
-

The daemon contacts the remote media archive and retrieves - audio clips referenced by active playlists. The clips are stored - locally for playing. -

-
-

references

-
-

F1.2 -

-
-


Note that this use case is somewhat reversed, as it is -initiated by the system (not an actor), and the main tasks are done -by an external actor (the Media archive).

-

Typical course of events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

actor action -

-
-

system response -

-
-

1. -

-
-

An Internal actor triggers the retrieval of some remote files. -

-
-

2. -

-
-

The system looks up the URN of the remote file, and determines - the Media archive to contact regarding the file. -

-
-


-

-
-


-

-
-

3.

-
-

The system contacts the Local storage and sends authorization - information

-
-

4.

-
-

Local storage authenticates the system and grants access

-
-

5.

-
-

The system iniquires the local storage about the availability - of the file to download in the Local storage by presenting its - unique ID

-
-

6.

-
-

Local storage tells if the required file is already stored or - not.

-
-

7.

-
-

If the file is available in the local storage, the use case - ends. Otherwise, it continues.

-
-


-

-
-


-

-
-

8.

-
-

The system contacts the Media archive and sends authorization - information -

-
-

9. -

-
-

Media archive authenticates the system and grants access -

-
-

10. -

-
-

The system requests an audio clip by presenting its unique ID -

-
-

11. -

-
-

Media archive looks up the file, and presents it to the system -

-
-

12. -

-
-

The system retrieves the file and closes the connection to the - Media archive

-
-


-

-
-


-

-
-

13.

-
-

The system presents the file to Local storage

-
-

14.

-
-

Local storage stores the file under the specified unique ID

-
-

15.

-
-

The system closes the connection to Local storage.

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Alternate courses

- -

UC-5 Review play log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

ref# -

-
-

UC-5 -

-
-

use case -

-
-

Review play log -

-
-

type -

-
-

secondary, essential -

-
-

actors -

-
-

Broadcast auditor -

-
-

purpose -

-
-

Review what has been played -

-
-

overview -

-
-

The Broadcast auditor reviews the audio clips that have been - played in a selected time interval. He may generate reports for - proof of broadcast reasons. -

-
-

references -

-
-

F1.4 -

-
-

Typical course of events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

actor action -

-
-

system response -

-
-

1. -

-
-

Broadcast auditor connects to the scheduler daemon with the - intent of reviewing what has been played.

-
-


-

-
-


-

-
-

2. -

-
-

The Broadcast auditor provides authentication information -

-
-

3. -

-
-

The system authenticates the Broadcast auditor and grants - access. -

-
-

3.

-
-

The Broadcast auditor browses through the play log in a - time-ordered manner.

-
-

4.

-
-

The system displays the play log entries.

-
-

5.

-
-

The Broadcast auditor requests a play report for a given time - period.

-
-

6.

-
-

The system displays the requested report.

-
-

7.

-
-

The Broadcast auditor disconnects.

-
-


-

-
-


-

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Alternate courses

- -



-

-

UC-6 Create playlist

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

ref# -

-
-

UC-6 -

-
-

use case -

-
-

Create playlist

-
-

type -

-
-

secondary, essential -

-
-

actors -

-
-

Playlist editor

-
-

purpose -

-
-

Create a new playlist, and then edit it.

-
-

overview -

-
-

The Playlist editor connects to the Scheduler with the aim of - creating a new playlist. A basic user interface is provided, which - allows professionals to create and edit the playlsits on the - system.

-
-

references -

-
-

F1.12, F1.13

-
-

Typical course of events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

actor action -

-
-

system response -

-
-

1. -

-
-

Playlist editor connects to the scheduler with the intent of - creating a new playlist.

-
-


-

-
-


-

-
-

2. -

-
-

The Playlist editor provides authentication information -

-
-

3. -

-
-

The system authenticates the Playlist editor and grants access. -

-
-

4.

-
-

The Playlist editor signals that he whishes for a new playlist

-
-

5.

-
-

The system creates a new, empty playlist, and opens it for - editing.

-
-

6.

-
-

The Playlist editor edits the new playlist. See UC-7 actions - 7-15 for details.

-
-


-

-
-


-

-
-

7.

-
-

The Playlist editor disconnects.

-
-


-

-
-


-

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Alternate courses

- -



-

-

UC-7 Edit playlist

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

ref# -

-
-

UC-7 -

-
-

use case -

-
-

Edit playlist

-
-

type -

-
-

secondary, essential -

-
-

actors -

-
-

Playlist editor

-
-

purpose -

-
-

Edit a previoulsy uploaded playlist

-
-

overview -

-
-

The Playlist editor connects to the Scheduler with the aim of - either editing an existing playlist. A basic user interface is - provided, which allows professionals to edit the playlsits on the - system.

-
-

references -

-
-

F1.12 -

-
-

Typical course of events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

actor action -

-
-

system response -

-
-

1. -

-
-

Playlist editor connects to the scheduler with the intent of - editing a playlist.

-
-


-

-
-


-

-
-

2. -

-
-

The Playlist editor provides authentication information -

-
-

3. -

-
-

The system authenticates the Playlist editor and grants access. -

-
-


-

-
-


-

-
-

4.

-
-

The system lists the available playlists.

-
-

5.

-
-

The Playlist editor selects a playlist for editing.

-
-

6.

-
-

The system opens the playlist in editing mode.

-
-

7.

-
-

The Playlist editor browses the available Audio clips

-
-

8.

-
-

The system shows the list of available audio clips

-
-

9.

-
-

The Playlist editor selects an Audio clip

-
-

10.

-
-

The system displays details on the audio clip.

-
-

11.

-
-

The Playlist editor ads a new audio clip to the playlist, at a - certain timepoint in the playlist.

-
-

12.

-
-

The new audio clip is added to the playlist.

-
-

13.

-
-

The Playlist editor removes an audio clip from the playlist.

-
-

14.

-
-

The audio clip is removed from the playlist.

-
-

15.

-
-

The Playlist editor edits the fade-in or fade-out of a clip in - the playlist.

-
-

16.

-
-

The fade-in or fade-out is edited.

-
-

17.

-
-

The Playlist editor saves the playlist.

-
-

18.

-
-

The playlist is validated.

-
-


-

-
-


-

-
-

19.

-
-

The playlist is saved.

-
-

20.

-
-

The Playlist editor disconnects.

-
-


-

-
-


-

-
-



-

-

Alternate courses

- -



-

-

UC-8 Start/stop scheduler

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

ref# -

-
-

UC-8 -

-
-

use case -

-
-

Start/stop scheduler

-
-

type -

-
-

primary, essential -

-
-

actors -

-
-

Administrator

-
-

purpose -

-
-

Start and stop the scheduler daemon

-
-

overview -

-
-

The adminisitrator starts the scheduler deamon by invoking a - System V init-style startup script. He may also stop the deamon - with the same script.

-
-

references -

-
-

F1.14, F1.15, A1.8

-
-

Typical course of events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

actor action -

-
-

system response -

-
-

1. -

-
-

The Administrator invokes the scheduler's System V init script - with the start parameter

-
-


-

-
-


-

-
-


-

-
-


-

-
-

2. -

-
-

The scheduler daemon starts up.

-
-

3.

-
-

The Administrator checks to see if the scheduler daemon is - running

-
-

4.

-
-

The scheduler daemon reports that it is running.

-
-

5.

-
-

The Administrator stops the scheduler deamon.

-
-

6.

-
-

The scheduler daemon stops.

-
-



-

-

Alternate courses

- -

Conceptual model

-

The following figure displays the semantic concepts identified for -the Scheduler daemon, and the main associations between the -concepts.


-

-

Concepts

-


-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

concept

-
-

description

-
-

Media archive

-
-

An archive external to the system, which holds Audio clips. The - archive offers its clips for download by requesting clips based on - their unique ids.

-
-

Clip retriever

-
-

Retrieves Audio clips from the Media archive and stores them in - local storage.

-
-

Local storage

-
-

A local store of Audio clips. Provides access to each clip - based on the clips' unique id. Allows random access to the clip - files.

-
-

Audio clip

-
-

A uniquely identified audio file.

-
-

Playlist

-
-

A metafile, containing references to Audio clips, and - information on how the clips should be played.

-
-

PlaylistElement

-
-

An association class describing the specifics of an instance of - an Audio clip in a playlist.

-
-

FadeInfo

-
-

A class describing fade in or fade out characteristics for an - Audio clip in a Playlist

-
-

Playlist store

-
-

A container holding a range of playlists.

-
-

Schedule

-
-

Contains Schedule entries

-
-

Schedule entry

-
-

Contains the time and details of when a playlist should be - played.

-
-

Scheduler daemon

-
-

Executes playlists at timepoints specified by the schedule.

-
-

Play log

-
-

A logging facility, holding Play log entries.

-
-

Play log entry

-
-

A record of when an Audio clip was played.

-
-

Play report

-
-

An audit report of what Audio clips have been played in a - certain time period

-
-

Authentication

-
-

Provides authentication services

-
-

Playlist editor

-
-

An external editor, managing playlists.

-
-

Broadcast auditor

-
-

An external auditor, browsing the Play log.

-
-

Administrator

-
-

The administrator responsible for starting and stopping the - scheduler daemon.

-
-


-

-
-


-

-
-



-

-

Associations

-


-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

source

-
-

association

-
-

target

-
-

description

-
-

Clip retriever

-
-

Retrieves clips from

-
-

Media archive

-
-


-

-
-

Media archive

-
-

Contains

-
-

Audio clip

-
-


-

-
-

Clip retriever

-
-

Stores clips in

-
-

Local storage

-
-


-

-
-

Local storage

-
-

Contains

-
-

Audio clip

-
-


-

-
-

Playlist

-
-

References by PlaylistElement

-
-

Audio clip

-
-


-

-
-

PlaylistElement

-
-

Fades in with

-
-

FadeInfo

-
-


-

-
-

PlaylistElement

-
-

Fades out with

-
-

FadeInfo

-
-


-

-
-

Playlist store

-
-

Contains

-
-

Play list

-
-


-

-
-

Playlist editor

-
-

Uploads playlist to

-
-

Playlist store

-
-


-

-
-

Playlist editor

-
-

Manages schedule in

-
-

Schedule

-
-

The Playlist editor schedules playlists.

-
-

Schedule

-
-

Contains

-
-

Schedule entry

-
-


-

-
-

Schedule entry

-
-

References

-
-

Playlist

-
-


-

-
-

Scheduler daemon

-
-

Executes

-
-

Schedule

-
-

The Scheduler daemon plays the scheduled playlists.

-
-

Scheduler daemon

-
-

Logs into

-
-

Play log

-
-

The Scheduler daemon logs all the played audio clips into the - Play log for proof of broadcast purposes.

-
-

Play log

-
-

Contains

-
-

Play log entry

-
-


-

-
-

Play log

-
-

Generated

-
-

Play report

-
-

The play log generates reports based on Play log entries.

-
-

Play log entry

-
-

References

-
-

Audio clip

-
-


-

-
-

Broadcast auditor

-
-

Browses entries from

-
-

Play log

-
-


-

-
-

Broadcast auditor

-
-

Requests

-
-

Play report

-
-


-

-
-

Playlist editor

-
-

Is authenticated by

-
-

Authentication

-
-


-

-
-

Broadcast auditor

-
-

Is authenticated by

-
-

Authentication

-
-


-

-
-

Administrator

-
-

Manages

-
-

Scheduler daemon

-
-


-

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

System behavior

-

The behavior of the system as a whole as experienced from the -outside is discussed in this section.

-

System sequence diagrams

-

System diagrams are presented for each use case below.

-

UC-1 Upload playlists

-



-

-

UC-2 Manage schedule

-



-

-

UC-3 Manage playlists

-



-

-

UC-4 Retrieve remote files

-



-

-

UC-5 Review play log

-

UC-6 Create playlist

-

UC-7 Edit playlist

-

UC-8 Start/stop scheduler

-



-

-

System objects

-

The following figures shows the system objects and their -functions, as derived from the system sequence diagrams.

-

Contracts

-

For all operations exposed in the system sequence diagrams, the -following contracts are defined.

-

Contract for Scheduler : authenticate

-

See Authentication : authenticate

-

Contract for Scheduler : uploadPlaylist

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

uploadPlaylist
(playlist : Playlist,
playtime: - Schedule)
: UniqueId

-
-

Responsibilities

-
-

Upload a playlist and put it into the schedule.

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.1, UC-1

-
-

Notes

-
-


-

-
-

Exceptions

-
-

If the uploaded playlist is not valid, indicate as an error
If - the proposed schedule conflicts with existing schedules, indicate - as an error

-
-

Output

-
-

the unique id of the ScheduleEntry created with this upload

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

A new Playlist is created, storing the uploaded playlist

-
-

instance creation -

-
-


-

-
-

Playlist is entered into the Playlist store

-
-

association formed

-
-


-

-
-

A new Schedule is created, according to the supplied schedule

-
-

instance creation

-
-


-

-
-

Schedule is associated with the Playlist

-
-

association formed

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : displaySchedule

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

displaySchedule
(from : TimeStamp,
to : TimeStamp)
: - Schedule

-
-

Responsibilities

-
-

Display Schedule entries for a time period.

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.4, UC-2

-
-

Notes

-
-


-

-
-

Exceptions

-
-

none

-
-

Output

-
-

The Schedule entries for the specified time period.

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

none

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : displayPlaylist

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

displayPlaylist
(playlistId : UniqueId)
: Playlist

-
-

Responsibilities

-
-

Display a specific playlist

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.4, UC-3

-
-

Notes

-
-


-

-
-

Exceptions

-
-

If no playlist exists for the specified playlistId, indicate as - an error.

-
-

Output

-
-

The requested playlist.

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

none

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : deletePlaylist

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

deletePlaylist
(playlist : Playlist)
: void

-
-

Responsibilities

-
-

Delete a specific playlist

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.11, UC-3

-
-

Notes

-
-


-

-
-

Exceptions

-
-

If no playlist exists for the specified playlistId, indicate as - an error.
If the playlist is referenced by any Schedule entry, - indicate as an error.

-
-

Output

-
-

none

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

The playlist is removed from the Playlist store.

-
-

association broken

-
-


-

-
-

References by the playlist to Audio clips removed

-
-

association broken

-
-


-

-
-

The playlist is deleted

-
-

instance deletion

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : removeFromSchedule

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

removeFromSchedule
(scheduleEntryId : UniqueId)
: bool

-
-

Responsibilities

-
-

Remove a specific playlist from a schedule entry

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.9, UC-2

-
-

Notes

-
-


-

-
-

Exceptions

-
-

If no ScheduleEntry by the specified scheduleEntryId exist, - indicate as an error.

-
-

Output

-
-

true if the specified entry was removed, false if it did not - exist.

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

Reference to the playlist by the scheduleEntry is removed.

-
-

association broken

-
-


-

-
-

The ScheduleEntry specified by the scheduleEntryId is deleted

-
-

instance deletion

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : reschedule

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

reschedule
(scheduleEntryId : UniqueId,
playtime : - TimeStamp)
: bool

-
-

Responsibilities

-
-

Change when a certain playlist is scheduled to play.

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.10, UC-2

-
-

Notes

-
-


-

-
-

Exceptions

-
-

If no ScheduleEntry by the specified scheduleEntryId exist, - indicate as an error.
If the new playtime conflicts with other - schedule entries, indicate as an error.

-
-

Output

-
-

false on errors

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

The time attribute of scheduleEntry is updated to the supplied - playtime.

-
-

attribute modification

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : displayPlaylists

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

displayPlaylists
()
: Playlist

-
-

Responsibilities

-
-

Display Playlists contained in the Playlist store

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.4, UC-3

-
-

Notes

-
-


-

-
-

Exceptions

-
-

none

-
-

Output

-
-

The playlists contained in the Playlist store.

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

none

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : displayPlayLog

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

displayPlayLog
()
: Play log

-
-

Responsibilities

-
-

Display Play log entries contained in the Play log

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.4, UC-5

-
-

Notes

-
-


-

-
-

Exceptions

-
-

none

-
-

Output

-
-

The play log entries contained in the Play log.

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

none

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : generatePlayReport

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

generatePlayReport
(from : TimeStamp,
to : TimeStamp)
: - Play report

-
-

Responsibilities

-
-

Present a report on what Audio clips have been played to the - Broadcast auditor.

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.4, UC-5

-
-

Notes

-
-


-

-
-

Exceptions

-
-

none

-
-

Output

-
-

A report on the played Audio clips played in the specified time - period.

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

none

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : createPlaylist

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

createPlaylist
()
: Playlist

-
-

Responsibilities

-
-

Create a new playlist

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.12, UC-6

-
-

Notes

-
-

A new playlist is created, and is immediately locked for - editing.

-
-

Exceptions

-
-

none

-
-

Output

-
-

none

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

A new Playlist is created

-
-

instance creation

-
-


-

-
-

The lockedForEditing attribute is set to true for the playlist

-
-

attribute modification

-
-


-

-
-

The playlist is added to the Playlist store

-
-

association formed

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : openPlaylistForEditing

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

openPlaylistForEditing
(playlist : Playlist)
: void

-
-

Responsibilities

-
-

Open a playlist for editing

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.13, UC-7

-
-

Notes

-
-

A playlist is opened for editing. The playlist may not be - played when being edited. Also, active (currently executing) - playlists may not be opened for editing. This is in effect a lock, - which is released by saving the playlist.

-
-

Exceptions

-
-

if the playlist is currently being executed, indicate as an - error.

-
-

Output

-
-

none

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

The current version of the playlist is stored, in case the user - wants to revert to the last saved version (see - revertEditedPlaylist)

-
-

instance creation

-
-


-

-
-

The lockedForEditing attribute is set to true for the playlist

-
-

attribute modification

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : addAudioClipToPlaylist

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

addAutioClipToPlaylist
(playlist : Playlist,
audioClip : - AudioClip,
relativeOffset : Time)
: void

-
-

Responsibilities

-
-

Add an Audio clip to a Playlist

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.13, UC-7

-
-

Notes

-
-

The Audio clip is added to the playlist with the specified - relativeOffset from the beginning of the Playlist.

-
-

Exceptions

-
-

none

-
-

Output

-
-

none

-
-

Pre-conditions

-
-

the Playlist is currently opened for editing

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

The new PlaylistElement is created associating the playlist - with the audio clip, with the specified relativeOffset

-
-

association formed, instnace creation

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : displayAudioClips

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

displayAudioClips
()
: AudioClip

-
-

Responsibilities

-
-

Display the audio clips known to the Scheduler

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.13, UC-7

-
-

Notes

-
-

none

-
-

Exceptions

-
-

none

-
-

Output

-
-

The Audio clips kown to the Scheduler

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

none

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : displayAudioClip

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

displayAudioClip
(audioClipId : UniqueId)
: AudioClip

-
-

Responsibilities

-
-

Display the audio clip specified by the audioClipId

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.13, UC-7

-
-

Notes

-
-

none

-
-

Exceptions

-
-

if no audio clip by the specified id exists, indicate as an - error

-
-

Output

-
-

The Audio clip specified by the audioClipId

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

none

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : removeAudioClipFromPlaylist

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

removeAutioClipFromPlaylist
(playlist : - Playlist,
relativeOffset: Time)
: void

-
-

Responsibilities

-
-

Remove an Audio clip at the given relative offset from a - Playlist

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.13, UC-7

-
-

Notes

-
-

The Audio clip is removed from the Playlist.

-
-

Exceptions

-
-

If there is no Audio clip at the specified relative offset in - the playlist, indicate as an error.

-
-

Output

-
-

none

-
-

Pre-conditions

-
-

the Playlist is currently opened for editing

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

The PlaylistElement associating the AudioClip with the Playlist - is removed, with the related FadeInfo instances

-
-

instance deletion, association broken

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : updateFadeInFadeOut

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

updateFadeInFadeOut
(audioClip : AudioClip,
playlist : - Playlist)
: void

-
-

Responsibilities

-
-

Update the fade-in and fade-out parameters for an audio clip - playing in a playlist.

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.13, UC-7

-
-

Notes

-
-

none

-
-

Exceptions

-
-

If the Audio clip is not in the playlist, indicate as an error.

-
-

Output

-
-

none

-
-

Pre-conditions

-
-

the Playlist is currently opened for editing

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

The fade-in and fade-out parameters for the audio clip in the - playlist are updated

-
-

attribute modification

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : validatePlaylist

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

validatePlaylist
(playlist : Playlist)
: boolean

-
-

Responsibilities

-
-

Validate a playlist for being complete.

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.13, UC-7

-
-

Notes

-
-

The playlist is checked for being complete (not containing - silence) and other sanity criteria.

-
-

Exceptions

-
-

none

-
-

Output

-
-

none

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

none

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : savePlaylist

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

savePlaylist
(playlist : Playlist)
: void

-
-

Responsibilities

-
-

The playlist is saved.

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.13, UC-7

-
-

Notes

-
-

none

-
-

Exceptions

-
-

If the playlist is not valid, indicate as an error.

-
-

Output

-
-

none

-
-

Pre-conditions

-
-

the Playlist is currently opened for editing

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

The lockedForEditing attriubute is set to false for the - playlist

-
-

attribute modification

-
-


-

-
-

The old version of the Playlist that could have been used for - reverting is deleted (see revertEditedPlaylist)

-
-

instance deletion

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : revertEditedPlaylist

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

revertEditedPlaylist
(playlist : Playlist)
: void

-
-

Responsibilities

-
-

Changes are discarded for a Playlist that is being edited.

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.13, UC-7

-
-

Notes

-
-

The contents of the playlist are reverted to the state prior to - when editing began on it.

-
-

Exceptions

-
-

none

-
-

Output

-
-

none

-
-

Pre-conditions

-
-

the Playlist is currently opened for editing

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

The contents of the Playlist are reverted to the last saved - version. This includes deleting all created PlaylistElement and - FadeInfo instances.

-
-

attribute modification, instance deletion

-
-


-

-
-

The lockedForEditing attriubute is set to false for the - playlist

-
-

attribute modification

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : start

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

start
()
: void

-
-

Responsibilities

-
-

Starts the scheduler daemon

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.14, UC-8

-
-

Notes

-
-

A System V init-style daemon starting entry point

-
-

Exceptions

-
-

none

-
-

Output

-
-

none

-
-

Pre-conditions

-
-

The scheduler daemon is currently not running

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

The scheduler daemon object is created

-
-

instance creation

-
-


-

-
-

All the necessary structures are created for the deamon to run

-
-

instance creation

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : isRunning

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

isRunning
()
: boolean

-
-

Responsibilities

-
-

Tells if the scheduler daemon is running

-
-

Type

-
-

system

-
-

Cross-reference

-
-

UC-8

-
-

Notes

-
-

A System V init-style daemon status entry point

-
-

Exceptions

-
-

none

-
-

Output

-
-

true of the daemon is running, false otherwise

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

none

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Scheduler : stop

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

stop
()
: void

-
-

Responsibilities

-
-

Stops the scheduler daemon

-
-

Type

-
-

system

-
-

Cross-reference

-
-

F1.15, UC-8

-
-

Notes

-
-

A System V init-style daemon stopping entry point

-
-

Exceptions

-
-

none

-
-

Output

-
-

none

-
-

Pre-conditions

-
-

The scheduler daemon is currently running

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

The scheduler daemon object is deleted

-
-

instance deletion

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Media archive : authenticate

-

TODO: move to Media archive spec

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

authenticate
(authenticationInfo : AuthenticationInfo)
: - boolean

-
-

Responsibilities

-
-

Check if the provided authentication info is recognized.

-
-

Type

-
-

interface

-
-

Cross-reference

-
-

UC-4

-
-

Notes

-
-


-

-
-

Exceptions

-
-

none

-
-

Output

-
-

true if the provided authentication is recognized, false - otherwise

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

none

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Media archive : retrieveAudioClip

-

TODO: move to Media archive spec

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

retrieveAudioClip
(clipId : UniqueId)
: AudioClip

-
-

Responsibilities

-
-

Retrieve an AudioClip specified by the supplied audio clip id.

-
-

Type

-
-

interface

-
-

Cross-reference

-
-

F1.2, UC-4

-
-

Notes

-
-


-

-
-

Exceptions

-
-

if no audio clip exists with the supplied id, indicate as an - error

-
-

Output

-
-

the requested audio clip

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

condition

-
-

type

-
-


-

-
-

A new Audio clip is created and filled with the contents of the - retrieved audio clip

-
-

instance creation -

-
-


-

-
-

Audio clip is entered into Local storage

-
-

association formed

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Local storage : authenticate

-

TODO: move to Local storage spec

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

authenticate
(authenticationInfo : AuthenticationInfo)
: - boolean

-
-

Responsibilities

-
-

Check if the provided authentication info is recognized.

-
-

Type

-
-

interface

-
-

Cross-reference

-
-

UC-4

-
-

Notes

-
-


-

-
-

Exceptions

-
-

none

-
-

Output

-
-

true if the provided authentication is recognized, false - otherwise

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

none

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Local storage : existsAudioClip

-

TODO: move to Local storage spec

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

existsAudioClip
(audioClipId : UniqueId)
: boolean

-
-

Responsibilities

-
-

Tell if an audio clip by the provided unique id is stored in - the Local storage

-
-

Type

-
-

interface

-
-

Cross-reference

-
-

UC-4

-
-

Notes

-
-


-

-
-

Exceptions

-
-

none

-
-

Output

-
-

true if an audio clip with the provided id exists, false - otherwise

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

none

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Contract for Local storage : storeAudioClip

-

TODO: move to Local storage spec

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Name

-
-

storeAudioClip
(audioClip : AudioClip)
: void

-
-

Responsibilities

-
-

Store an audio clip.

-
-

Type

-
-

interface

-
-

Cross-reference

-
-

UC-4

-
-

Notes

-
-


-

-
-

Exceptions

-
-

none

-
-

Output

-
-

none

-
-

Pre-conditions

-
-

none

-
-

Post-conditions

-
-

The supplied audio clip is stored in the storage.

-
-


-

-
-


-

-
-


-

-
-


-

-
-



-

-

Glossary

-

playlist
The playlist is a metafile, containing -references to audio clips that should be played, and details on how -they should be played.

- - \ No newline at end of file + + + + + LiveSupport Scheduler specifications + + + +

Preface

+This document is part of the LiveSupport +project, Copyright © 2004 Media +Development Loan Fund, under the GNU GPL.
+ +

Scope

+This document contains the specification of the LiveSupport Scheduler +daemon.
+
+This document contains embedded SVG figures, thus an SVG +capable browser is needed to view it, or an SVG plugin like Adobe's SVG Viewer.
+

Requirements

+

Overview
+

+The purpose of the LiveSupport Scheduler daemon is to execute +playlists.
+

Goals
+

+The scheduler daemon is a remotely accessible service accepting +playlists on a local audio interface. Specific goals include:
+ +

System functions

+The main system functions are described below. There are three +categories for these functions:
+ + + + + + + + + + + + + + + + + + + +
function category
+
meaning
+
evident
+
Should perform, and the user should be cognizant +that it is performed
+
hidden
+
Should perform, but not visible to the users.
+
frill
+
Optional
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ref#
+
function
+
category
+
F1.1
+
Accept uploaded playlists
+
evident
+
F1.2
+
Retrieve remote files referenced by playlists
+
hidden
+
F1.3
+
Access local files
+
hidden
+
F1.4
+
Provide status information
+
evident
+
F1.5
+
Log playlist execution for proof of broadcast +reasons
+
evident
+
F1.6
+
Purge local file storage of unused audio clips
+
hidden
+
F1.7
+
Execute playlists
+
evident
+
F1.8
+
Play live streams as part of the playlist
+
hidden
+
F1.9
+
Remove playists from the schedule
+
evident
+
F1.10
+
Re-schedule playlsits
+
evident
+
F1.11
+
Delete playlists
+
evident
+
F1.12
+
Create playlists
+
evident
+
F1.13
+
Edit playlists
+
evident
+
F1.14
+
Start the scheduler daemon
+
evident
+
F1.15
+
Stop the scheduler daemon
+
evident
+

+

+

+
+
+

System attributes

+Generic attributes
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ref#
+
attribute
+
details and constraints
+
category
+
A1.1
+
operating system platform
+
Linux
+
must
+
A1.2
+
supported audio interfaces
+
ALSA (maybe also OSS?)
+
must
+
A1.3
+
supported playlist format
+
SMIL 2.0. only partial support is required, +which focuses only on audio aspects of SMIL.
+
must
+
A1.4
+
supported audio clip formats
+
Ogg Vorbis, mp3, wav
+
must
+

+

+

+

+
+
+Attributes related to system functions
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ref#
+
function
+
ref#
+
attribute
+
details and constraints
+
category
+
F1.7
+
Execute playlists
+
A1.5
+
low latency
+
when executing playlists, very low latency +should be achieved
+
must
+

+

+
A1.6
+
handle time skew
+
the +daemon has to take into account that the system's clock is not +accurate. the clock is synchronized to an external regularly, but the +resulting time-jump must be handled.
+
must
+
F1.8
+
Play live streams as part of the playlist A1.7
+
supported audio stream formats
+
Ogg Vorbis via HTTP, mp3 via HTTP
+
must
+
F1.14
+F1.15
+
Start / stop the scheduler daemon
+
A1.8
+
provide System V init style services
+
Provide a System V init interface to starting +and stopping the scheduler daemon
+
must
+

+

+

+

+

+

+
+
+

Essential use cases

+This section lists generic (essential) uses cases, that do not contain +architecture-specific considerations.
+
+ +

UC-1 Upload playlist

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ref# UC-1
use case Upload playlist
type primary, essential
actors Playlist editor
purpose Upload a playlist
overview The Playlist editor uploads a new playlist.
references F1.1
+

Typical course of events

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
actor action
+
system response
+
1. Playlist editor connects to the scheduler daemon +with the intent of uploading a new playlist.
+

+

+
2. The Playlist editor provides authentication +information 3. The system authenticates the Playlist editor and +grants access.
4. The Playlist editor presents the new playlist +and the intended schedule for the playlist.
+
5. The system validates the new playlist, and sees +that it does not conflict with existing schedule.

+

+
6. The system stores the new playlist, adds it to +the schedule, and sends confirmation to the Playlist editor.
7. The Playlist editor receives confirmation and +disconnects.
+

+

+

+

+

+
+
+

Alternate courses

+ +

UC-2 Manage schedule
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ref#
+
UC-2
use case Manage schedule
type
+
primary, essential
actors
+
Playlist editor
purpose
+
View the schedule and remove or re-schedule +playlists
+
overview
+
The Playlist editor reviews the schedule. If he +decides to, he might remove or re-schedule some of these playlists.
references
+
F1.4, F1.9, F1.10
+
+
+

Typical course of events
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
actor action
+
system response
+
1. Playlist editor connects to the scheduler daemon +with the intent of viewing and editing the schedule.
+

+

+
2. The Playlist editor provides authentication +information 3. The system authenticates the Playlist editor and +grants access.

+

+
4.
+
The system shows the Schedule to the Playlist +editor
+
5.
+
The Playlist editor browses the Schedule, +selects a playlist for detailed viewing.
+
6.
+
The system shows the details of the selected +Playlist.
+
7.
+
The playlist editor removes a playlist from the +schedule.
+
8.
+
The system removes the playlist from the +schedule, than re-displays the updated schedle.
+
9.
+
The Playlist editor re-schedules a playlist
+
10.
+
The system removes the selected playlist from +the schedule, and re-enters it at a new timepoint
+
11.
+
The Playlist editor browses the Schedule
+
12.
+
The system shows the Schedule to the playlist +editor
+
13.
+
The Playlist editor disconnects.
+

+

+
+
+

Alternate courses

+ +

UC-3 Manage playlists
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ref#
+
UC-3
use case Manage playlists
type
+
primary, essential
actors
+
Playlist editor
purpose
+
View and delete playlists
overview
+
The Playlist editor reviews the uploaded +playlists. If he decides so, he might delete some of these playlists.
references
+
F1.4, F1.11
+
+
+

Typical course of events
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
actor action
+
system response
+
1. Playlist editor connects to the scheduler daemon +with the intent of viewing and deleting playlists.
+

+

+
2. The Playlist editor provides authentication +information 3. The system authenticates the Playlist editor and +grants access.

+

+
4.
+
The system lists the available Playlists
+
5.
+
The Playlist editor browses the playlists, and +selects one for detailed viewing.
+
6.
+
The system shows the details of the selected +Playlist.
+
7.
+
The playlist editor deletes a playlist.
+
8.
+
The system deletes the playlist, than +re-displays the list of available Playlists.
+
9.
+
The Playlist editor disconnects.
+

+

+
+
+

Alternate courses

+ +

UC-4 Retrieve remote files
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ref# UC-4
use case Retrieve remote files
type
+
primary, essential
actors
+
(internal actor, initiator), Media archive, +Local storage
+
purpose
+
Retrieve remote files referenced by active +playlists and store them in the local storage
+
overview
+
The +daemon contacts the remote media archive and retrieves audio clips +referenced by active playlists. The clips are stored locally for +playing.
references
+
F1.2
+
+Note that this use case is somewhat reversed, as it is initiated by the +system (not an actor), and the main tasks are done by an external actor +(the Media archive).
+

Typical course of events

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
actor action
+
system response
+
1. An Internal actor triggers the retrieval of some +remote files.
+
2. The system looks up the URN of the remote file, +and determines the Media archive to contact regarding the file.

+

+
3.
+
The system contacts the Local storage and sends +authorization information
+
4.
+
Local storage authenticates the system and +grants access
+
5.
+
The system iniquires the local storage about the +availability of the file to download in the Local storage by presenting +its unique ID
+
6.
+
Local storage tells if the required file is +already stored or not.
+
7.
+
If the file is available in the local storage, +the use case ends. Otherwise, it continues.
+

+

+
8.
+
The system contacts the Media archive and sends +authorization information
9. Media archive authenticates the system and +grants access 10. The system requests an audio clip by presenting +its unique ID
11. Media archive looks up the file, and presents it +to the system 12. The system retrieves the file and closes the +connection to the Media archive
+

+

+
13.
+
The system presents the file to Local storage
+
14.
+
Local storage stores the file under the +specified unique ID
+
15.
+
The system closes the connection to Local +storage.
+

+

+

+

+
+
+

Alternate courses

+ +

UC-5 Review play log
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ref# UC-5
use case Review play log
type secondary, essential
actors Broadcast auditor
purpose Review what has been played
overview The +Broadcast auditor reviews the audio clips that have been played in a +selected time interval. He may generate reports for proof of broadcast +reasons.
references F1.4
+

Typical course of events
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
actor action
+
system response
+
1. Broadcast auditor connects to the scheduler +daemon with the intent of reviewing what has been played.
+

+

+
2. The Broadcast auditor provides authentication +information 3. The system authenticates the Broadcast auditor +and grants access.
3.
+
The Broadcast auditor browses through the play +log in a time-ordered manner.
+
4.
+
The system displays the play log entries.
+
5.
+
The Broadcast auditor requests a play report for +a given time period.
+
6.
+
The system displays the requested report.
+
7.
+
The Broadcast auditor disconnects.
+

+

+

+

+

+

+
+
+

Alternate courses

+ +
+

UC-6 Create playlist
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ref# UC-6
use case Create playlist
+
type secondary, essential
actors Playlist editor
+
purpose Create a new playlist, and then edit it.
+
overview The Playlist editor connects to the Scheduler +with the aim of creating a new playlist. A basic user interface is +provided, which allows professionals to create and edit the playlsits +on the system.
+
references F1.12, F1.13
+
+

Typical course of events
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
actor action
+
system response
+
1. Playlist editor connects to the scheduler with +the intent of creating a new playlist.
+

+

+
2. The Playlist editor provides authentication +information 3. The system authenticates the Playlist editor and +grants access.
4.
+
The Playlist editor signals that he whishes for +a new playlist
+
5.
+
The system creates a new, empty playlist, and +opens it for editing.
+
6.
+
The Playlist editor edits the new playlist. See +UC-7 actions 7-15 for details.
+

+

+
7.
+
The Playlist editor disconnects.
+

+

+

+

+

+

+
+
+

Alternate courses

+ +
+

UC-7 Edit playlist
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ref# UC-7
use case Edit playlist
+
type secondary, essential
actors Playlist editor
+
purpose Edit a previoulsy uploaded playlist
+
overview The Playlist editor connects to the +Scheduler with the aim of either editing an existing playlist. A basic +user interface is provided, which allows +professionals to edit the playlsits on the system.
+
references F1.12
+

Typical course of events
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
actor action
+
system response
+
1. Playlist editor connects to the scheduler with +the intent of editing a playlist.
+

+

+
2. The Playlist editor provides authentication +information 3. The system authenticates the Playlist editor and +grants access.

+

+
4.
+
The system lists the available playlists.
+
5.
+
The Playlist editor selects a playlist for +editing.
+
6.
+
The system opens the playlist in editing mode.
+
7.
+
The Playlist editor browses the available Audio +clips
+
8.
+
The system shows the list of available audio +clips
+
9.
+
The Playlist editor selects an Audio clip
+
10.
+
The system displays details on the audio clip.
+
11.
+
The Playlist editor ads a new audio clip to the +playlist, at a certain timepoint in the playlist.
+
12.
+
The new audio clip is added to the playlist.
+
13.
+
The Playlist editor removes an audio clip from +the playlist.
+
14.
+
The audio clip is removed from the playlist.
+
15.
+
The Playlist editor edits the fade-in or +fade-out of a clip in the playlist.
+
16.
+
The fade-in or fade-out is edited.
+
17.
+
The Playlist editor saves the playlist.
+
18.
+
The playlist is validated.
+

+

+
19.
+
The playlist is saved.
+
20.
+
The Playlist editor disconnects.
+

+

+
+
+

Alternate courses

+ +
+

UC-8 Start/stop scheduler
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ref# UC-8
use case Start/stop scheduler
+
type primary, essential
actors Administrator
+
purpose Start and stop the scheduler daemon
+
overview The adminisitrator starts the scheduler deamon +by invoking a System V init-style startup script. He may also stop the +deamon with the same script.
+
references F1.14, F1.15, A1.8
+
+

Typical course of events
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
actor action
+
system response
+
1. The Administrator invokes the scheduler's System +V init script with the start parameter
+

+

+

+

+
2. The scheduler daemon starts up.
+
3.
+
The Administrator checks to see if the scheduler +daemon is running
+
4.
+
The scheduler daemon reports that it is running.
+
5.
+
The Administrator stops the scheduler deamon.
+
6.
+
The scheduler daemon stops.
+
+
+

Alternate courses

+ +

Conceptual model

+The following figure displays the semantic concepts identified for the +Scheduler daemon, and the main associations between the concepts.
+
+ +
+

Concepts

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
concept
+
description
+
Media archive
+
An archive external to the system, which holds +Audio clips. The archive offers its clips for download by requesting +clips based on their unique ids.
+
Clip retriever
+
Retrieves Audio clips from the Media archive and +stores them in local storage.
+
Local storage
+
A local store of Audio clips. Provides access to +each clip based on the clips' unique id. Allows random access to the +clip files.
+
Audio clip
+
A uniquely identified audio file.
+
Playlist
+
A metafile, containing references to Audio +clips, and information on how the clips should be played.
+
PlaylistElement
+
An association class describing the specifics of +an instance of an Audio clip in a playlist.
+
FadeInfo
+
A class describing fade in or fade out +characteristics for an Audio clip in a Playlist
+
Playlist store
+
A container holding a range of playlists.
+
Schedule
+
Contains Schedule entries
+
Schedule entry
+
Contains the time and details of when a playlist +should be played.
+
Scheduler daemon
+
Executes playlists at timepoints specified by +the schedule.
+
Play log
+
A logging facility, holding Play log entries.
+
Play log entry
+
A record of when an Audio clip was played.
+
Play report
+
An audit report of what Audio clips have been +played in a certain time period
+
Authentication
+
Provides authentication services
+
Playlist editor
+
An external editor, managing playlists.
+
Broadcast auditor
+
An external auditor, browsing the Play log.
+
Administrator
+
The administrator responsible for starting and +stopping the scheduler daemon.
+

+

+
+
+

Associations

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
source
+
association
+
target
+
description
+
Clip retriever
+
Retrieves clips from
+
Media archive
+

+
Media archive
+
Contains
+
Audio clip
+

+
Clip retriever
+
Stores clips in
+
Local storage
+

+
Local storage
+
Contains
+
Audio clip
+

+
Playlist
+
References by PlaylistElement
+
Audio clip
+

+
PlaylistElement
+
Fades in with
+
FadeInfo
+

+
PlaylistElement
+
Fades out with
+
FadeInfo
+

+
Playlist store
+
Contains
+
Play list
+

+
Playlist editor
+
Uploads playlist to
+
Playlist store
+

+
Playlist editor
+
Manages schedule in
+
Schedule
+
The Playlist editor schedules playlists.
+
Schedule
+
Contains
+
Schedule entry
+

+
Schedule entry
+
References
+
Playlist
+

+
Scheduler daemon
+
Executes
+
Schedule
+
The Scheduler daemon plays the scheduled +playlists.
+
Scheduler daemon
+
Logs into
+
Play log
+
The Scheduler daemon logs all the played audio +clips into the Play log for proof of broadcast purposes.
+
Play log
+
Contains
+
Play log entry
+

+
Play log
+
Generated
+
Play report
+
The play log generates reports based on Play log +entries.
+
Play log entry
+
References
+
Audio clip
+

+
Broadcast auditor
+
Browses entries from
+
Play log
+

+
Broadcast auditor
+
Requests
+
Play report
+

+
Playlist editor
+
Is authenticated by
+
Authentication
+

+
Broadcast auditor
+
Is authenticated by
+
Authentication
+

+
Administrator
+
Manages
+
Scheduler daemon
+

+

+

+

+

+
+
+

System behavior

+The behavior of the system as a whole as experienced from the outside +is discussed in this section.
+

System sequence diagrams

+System diagrams are presented for each use case below.
+

UC-1 Upload playlists

+ +
+

UC-2 Manage schedule

+ +
+

UC-3 Manage playlists

+ +
+

UC-4 Retrieve remote files
+

+ +
+

UC-5 Review play log

+ +

UC-6 Create playlist

+ +

UC-7 Edit playlist
+ +

+

UC-8 Start/stop scheduler

+ +
+
+

System objects

+The following figures shows the system objects and their functions, as +derived from the system sequence diagrams.
+ +

Contracts

+For all operations exposed in the system sequence diagrams, the +following contracts are defined.
+

Contract for Scheduler : authenticate

+See Authentication : authenticate
+
+

Contract for Scheduler : uploadPlaylist

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
uploadPlaylist
+(playlist : Playlist,
+playtime: Schedule)
+: UniqueId
+
Responsibilities
+
Upload a playlist and +put it into the schedule.
+
Type
+
system
+
Cross-reference
+
F1.1, UC-1
+
Notes
+

+
Exceptions
+
If the uploaded playlist +is not valid, indicate as an error
+If the proposed schedule conflicts with existing schedules, indicate as +an error
+
Output
+
the unique id of the +ScheduleEntry created with this upload
+
Pre-conditions
+
none
Post-conditions
+
condition
+
type
+

+
A new Playlist is created, storing the uploaded +playlist
+
instance creation

+
Playlist is entered into the Playlist store
+
association formed
+

+
A new Schedule is created, according to the +supplied schedule
+
instance creation
+

+
Schedule is associated with the Playlist
+
association formed
+

+

+

+
+
+

Contract for Scheduler : displaySchedule

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
displaySchedule
+(from : TimeStamp,
+to : TimeStamp)
+: Schedule
+
Responsibilities
+
Display Schedule entries +for a time period.
+
Type
+
system
+
Cross-reference
+
F1.4, UC-2
+
Notes
+

+
Exceptions
+
none
+
Output
+
The Schedule entries for +the specified time period.
+
Pre-conditions
+
none
Post-conditions
+
none
+

+

+

+

+
+
+

Contract for Scheduler : displayPlaylist

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
displayPlaylist
+(playlistId : UniqueId)
+: Playlist
+
Responsibilities
+
Display a specific +playlist
+
Type
+
system
+
Cross-reference
+
F1.4, UC-3
+
Notes
+

+
Exceptions
+
If no playlist exists +for the specified playlistId, indicate as an error.
+
Output
+
The requested playlist.
+
Pre-conditions
+
none
Post-conditions
+
none
+

+

+

+

+
+
+

Contract for Scheduler : deletePlaylist

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
displayPlaylist
+(playlist : Playlist)
+: void
+
Responsibilities
+
Delete a specific +playlist
+
Type
+
system
+
Cross-reference
+
F1.11, UC-3
+
Notes
+

+
Exceptions
+
If no playlist exists +for the specified playlistId, indicate as an error.
+If the playlist is referenced by any Schedule entry, indicate as an +error.
+
Output
+
none
+
Pre-conditions
+
none
Post-conditions
+
condition
+
type
+

+
The playlist is removed from the Playlist store.
+
association broken
+

+
References by the playlist to Audio clips removed
+
association broken
+

+
The playlist is deleted
+
instance deletion
+

+

+

+
+
+

Contract for Scheduler : removeFromSchedule
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
removeFromSchedule
+(scheduleEntryId : UniqueId)
+: bool
+
Responsibilities
+
Remove a specific +playlist from a schedule entry
+
Type
+
system
+
Cross-reference
+
F1.9, UC-2
+
Notes
+

+
Exceptions
+
If no ScheduleEntry by +the specified +scheduleEntryId exist, indicate as an error.
+
Output
+
true if the specified +entry was removed, false if it did not exist.
+
Pre-conditions
+
none
Post-conditions
+
condition
+
type
+

+
Reference to the playlist by the scheduleEntry +is removed.
+
association broken
+

+
The ScheduleEntry specified by the +scheduleEntryId is deleted
+
instance deletion
+

+

+

+
+
+

Contract for Scheduler : reschedule
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
reschedule
+(scheduleEntryId : UniqueId,
+playtime : TimeStamp)
+: bool
+
Responsibilities
+
Change when a certain +playlist is scheduled to play.
+
Type
+
system
+
Cross-reference
+
F1.10, UC-2
+
Notes
+

+
Exceptions
+
If no ScheduleEntry by +the specified +scheduleEntryId exist, indicate as an error.
+If the new playtime conflicts with other schedule entries, indicate as +an error.
+
Output
+
false on errors
+
Pre-conditions
+
none
Post-conditions
+
condition
+
type
+

+
The time attribute of scheduleEntry is updated +to the supplied playtime.
+
attribute modification
+

+

+

+
+
+

Contract for Scheduler : displayPlaylists

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
displayPlaylists
+()
+: Playlist
+
Responsibilities
+
Display Playlists +contained in the Playlist store
+
Type
+
system
+
Cross-reference
+
F1.4, UC-3
+
Notes
+

+
Exceptions
+
none
+
Output
+
The playlists contained +in the Playlist store.
+
Pre-conditions
+
none
Post-conditions
+
none
+

+

+

+

+
+
+

Contract for Scheduler : displayPlayLog

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
displayPlaylists
+()
+: Play log
+
Responsibilities
+
Display Play log entries +contained in the Play log
+
Type
+
system
+
Cross-reference
+
F1.4, UC-5
+
Notes
+

+
Exceptions
+
none
+
Output
+
The play log entries +contained in the Play log.
+
Pre-conditions
+
none
Post-conditions
+
none
+

+

+

+

+
+
+

Contract for Scheduler : generatePlayReport
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
generatePlayReport
+(from : TimeStamp,
+to : TimeStamp)
+: Play report
+
Responsibilities
+
Present a report on what +Audio clips have been played to the Broadcast auditor.
+
Type
+
system
+
Cross-reference
+
F1.4, UC-5
+
Notes
+

+
Exceptions
+
none
+
Output
+
A report on the played +Audio clips played in the specified time period.
+
Pre-conditions
+
none
Post-conditions
+
none
+

+

+

+

+
+
+

Contract for Scheduler : createPlaylist
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
createPlaylist
+()
+: Playlist
+
Responsibilities
+
Create a new playlist
+
Type
+
system
+
Cross-reference
+
F1.12, UC-6
+
Notes
+
A new playlist is +created, and is immediately locked for editing.
+
Exceptions
+
none
+
Output
+
none
+
Pre-conditions
+
none
Post-conditions
+
condition
+
type
+

+
A new Playlist is created
+
instance creation
+

+
The lockedForEditing attribute is set to true +for the playlist
+
attribute modification
+

+
The playlist is added to the Playlist store
+
association formed
+

+

+

+
+
+

Contract for Scheduler : openPlaylistForEditing
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
openPlaylistForEditing
+(playlist : Playlist)
+: void
+
Responsibilities
+
Open a playlist for +editing
+
Type
+
system
+
Cross-reference
+
F1.13, UC-7
+
Notes
+
A playlist is opened for +editing. Active (currently executing) playlists may not be opened for +editing. The playlist may start executing while being edited: in this case, +editing is suspended while the playlist is executing and resumed afterwards. +This is in effect a lock, which is released by saving the playlist.
+
Exceptions
+
if the playlist is +currently being executed, indicate as an error.
+
Output
+
none
+
Pre-conditions
+
none
Post-conditions
+
condition
+
type
+

+
The current version of the playlist is stored, +in case the user wants to revert to the last saved version (see +revertEditedPlaylist)
+
instance creation
+

+
The lockedForEditing attribute is set to true +for the playlist
+
attribute modification
+

+

+

+
+
+

Contract for Scheduler : addAudioClipToPlaylist
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
addAutioClipToPlaylist
+(playlist : Playlist,
+audioClip : AudioClip,
+relativeOffset : Time)
+: void
+
Responsibilities
+
Add an Audio clip to a +Playlist
+
Type
+
system
+
Cross-reference
+
F1.13, UC-7
+
Notes
+
The Audio clip is added +to the playlist with the specified relativeOffset from the beginning of +the Playlist.
+
Exceptions
+
none
+
Output
+
none
+
Pre-conditions
+
the Playlist is +currently opened for editing
+
Post-conditions
+
condition
+
type
+

+
The new PlaylistElement is created associating +the playlist with the audio clip, with the specified relativeOffset
+
association formed, instnace creation
+

+

+

+
+
+

Contract for Scheduler : displayAudioClips
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
displayAudioClips
+()
+: AudioClip
+
Responsibilities
+
Display the audio clips +known to the Scheduler
+
Type
+
system
+
Cross-reference
+
F1.13, UC-7
+
Notes
+
none
+
Exceptions
+
none
+
Output
+
The Audio clips kown to +the Scheduler
+
Pre-conditions
+
none
+
Post-conditions
+
none
+

+

+

+

+
+
+

Contract for Scheduler : displayAudioClip
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
displayAudioClip
+(audioClipId : UniqueId)
+: AudioClip
+
Responsibilities
+
Display the audio clip +specified by the audioClipId
+
Type
+
system
+
Cross-reference
+
F1.13, UC-7
+
Notes
+
none
+
Exceptions
+
if no audio clip by the +specified id exists, indicate as an error
+
Output
+
The Audio clip specified +by the audioClipId
+
Pre-conditions
+
none
+
Post-conditions
+
none
+

+

+

+

+
+
+

Contract for Scheduler : removeAudioClipFromPlaylist
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
removeAutioClipFromPlaylist
+(playlist : Playlist,
+relativeOffset: Time)
+: void
+
Responsibilities
+
Remove an Audio clip +from a Playlist
+
Type
+
system
+
Cross-reference
+
F1.13, UC-7
+
Notes
+
The Audio clip is +removed from the Playlist.
+
Exceptions
+
If the Audio clip is not +in the playlist, indicate as an error.
+
Output
+
none
+
Pre-conditions
+
the Playlist is +currently opened for editing
+
Post-conditions
+
condition
+
type
+

+
The PlaylistElement associating the AudioClip +with the Playlist is removed, with the related FadeInfo instances
+
instance deletion, association broken
+

+

+

+
+
+

Contract for Scheduler : updateFadeInFadeOut
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
updateFadeInFadeOut
+(audioClip : AudioClip,
+playlist : Playlist)
+: void
+
Responsibilities
+
Update the fade-in and +fade-out parameters for an audio clip playing in a playlist.
+
Type
+
system
+
Cross-reference
+
F1.13, UC-7
+
Notes
+
none
+
Exceptions
+
If the Audio clip is not +in the playlist, indicate as an error.
+
Output
+
none
+
Pre-conditions
+
the Playlist is +currently opened for editing
+
Post-conditions
+
condition
+
type
+

+
The fade-in and fade-out parameters for the +audio clip in the playlist are updated
+
attribute modification
+

+

+

+
+
+

Contract for Scheduler : validatePlaylist
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
validatePlaylist
+(playlist : Playlist)
+: boolean
+
Responsibilities
+
Validate a playlist for +being complete.
+
Type
+
system
+
Cross-reference
+
F1.13, UC-7
+
Notes
+
The playlist is checked +for being complete (not containing silence) and other sanity criteria.
+
Exceptions
+
none
+
Output
+
none
+
Pre-conditions
+
none
+
Post-conditions
+
none
+

+

+

+

+
+
+

Contract for Scheduler : savePlaylist
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
savePlaylist
+(playlist : Playlist)
+: void
+
Responsibilities
+
The playlist is saved.
+
Type
+
system
+
Cross-reference
+
F1.13, UC-7
+
Notes
+
none
+
Exceptions
+
If the playlist is not +valid, indicate as an error.
+
Output
+
none
+
Pre-conditions
+
the Playlist is +currently opened for editing
+
Post-conditions
+
condition
+
type
+

+
The lockedForEditing attriubute is set to false +for the playlist
+
attribute modification
+

+
The old version of the Playlist that could have +been used for reverting is deleted (see revertEditedPlaylist)
+
instance deletion
+

+

+

+
+
+

Contract for Scheduler : revertEditedPlaylist
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
revertEditedPlaylist
+(playlist : Playlist)
+: void
+
Responsibilities
+
Changes are discarded +for a Playlist that is being edited.
+
Type
+
system
+
Cross-reference
+
F1.13, UC-7
+
Notes
+
The contents of the +playlist are reverted to the state prior to when editing began on it.
+
Exceptions
+
none
+
Output
+
none
+
Pre-conditions
+
the Playlist is +currently opened for editing
+
Post-conditions
+
condition
+
type
+

+
The contents of the Playlist are reverted to the +last saved version. This includes deleting all created PlaylistElement +and FadeInfo instances.
+
attribute modification, instance deletion
+

+
The lockedForEditing attriubute is set to false +for the playlist
+
attribute modification
+

+

+

+
+
+

Contract for Scheduler : start
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
start
+()
+: void
+
Responsibilities
+
Starts the scheduler +daemon
+
Type
+
system
+
Cross-reference
+
F1.14, UC-8
+
Notes
+
A System V init-style +daemon starting entry point
+
Exceptions
+
none
+
Output
+
none
+
Pre-conditions
+
The scheduler daemon is +currently not running
+
Post-conditions
+
condition
+
type
+

+
The scheduler daemon object is created
+
instance creation
+

+
All the necessary structures are created for the +deamon to run
+
instance creation
+

+

+

+
+
+

Contract for Scheduler : isRunning
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
isRunning
+()
+: boolean
+
Responsibilities
+
Tells if the scheduler +daemon is running
+
Type
+
system
+
Cross-reference
+
UC-8
+
Notes
+
A System V init-style +daemon status entry point
+
Exceptions
+
none
+
Output
+
true of the daemon is +running, false otherwise
+
Pre-conditions
+
none
+
Post-conditions
+
none
+

+

+

+

+
+
+

Contract for Scheduler : stop
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
stop
+()
+: void
+
Responsibilities
+
Stops the scheduler +daemon
+
Type
+
system
+
Cross-reference
+
F1.15, UC-8
+
Notes
+
A System V init-style +daemon stopping entry point
+
Exceptions
+
none
+
Output
+
none
+
Pre-conditions
+
The scheduler daemon is +currently running
+
Post-conditions
+
condition
+
type
+

+
The scheduler daemon object is deleted
+
instance deletion
+

+

+

+
+
+

Contract for Media archive : authenticate

+TODO: move to Media archive spec
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
authenticate
+(authenticationInfo : AuthenticationInfo)
+: boolean
+
Responsibilities
+
Check if the provided +authentication info is recognized.
+
Type
+
interface
+
Cross-reference
+
UC-4
+
Notes
+

+
Exceptions
+
none
Output
+
true if the provided +authentication is recognized, false otherwise
+
Pre-conditions
+
none
Post-conditions
+
none
+

+

+

+

+
+
+

Contract for Media archive : retrieveAudioClip

+TODO: move to Media archive spec
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
retrieveAudioClip
+(clipId : UniqueId)
+: AudioClip
+
Responsibilities
+
Retrieve an AudioClip +specified by the supplied audio clip id.
+
Type
+
interface
+
Cross-reference
+
F1.2, UC-4
+
Notes
+

+
Exceptions
+
if no audio clip exists +with the supplied id, indicate as an error
+
Output
+
the requested audio clip
+
Pre-conditions
+
none
Post-conditions
+
condition
+
type
+

+
A new Audio clip is created and filled with the +contents of the retrieved audio clip
+
instance creation

+
Audio clip is entered into Local storage
+
association formed
+

+

+

+
+
+

Contract for Local storage : authenticate

+TODO: move to Local storage spec
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
authenticate
+(authenticationInfo : AuthenticationInfo)
+: boolean
+
Responsibilities
+
Check if the provided +authentication info is recognized.
+
Type
+
interface
+
Cross-reference
+
UC-4
+
Notes
+

+
Exceptions
+
none
Output
+
true if the provided +authentication is recognized, false otherwise
+
Pre-conditions
+
none
Post-conditions
+
none
+

+

+

+

+
+
+

Contract for Local storage : existsAudioClip

+TODO: move to Local storage spec
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
existsAudioClip
+(audioClipId : UniqueId)
+: boolean
+
Responsibilities
+
Tell if an audio clip by +the provided unique id is stored in the Local storage
+
Type
+
interface
+
Cross-reference
+
UC-4
+
Notes
+

+
Exceptions
+
none
Output
+
true if an audio clip +with the provided id exists, false otherwise
+
Pre-conditions
+
none
Post-conditions
+
none
+

+

+

+

+
+
+

Contract for Local storage : storeAudioClip

+TODO: move to Local storage spec
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
+
storeAudioClip
+(audioClip : AudioClip)
+: void
+
Responsibilities
+
Store an audio clip.
+
Type
+
interface
+
Cross-reference
+
UC-4
+
Notes
+

+
Exceptions
+
none
Output
+
none
+
Pre-conditions
+
none
Post-conditions
+
The supplied audio clip is stored in the storage.
+

+

+

+

+
+
+

Glossary

+playlist
+The playlist is a metafile, containing references to audio clips that +should be played, and details on how they should be played.
+
+ + diff --git a/livesupport/modules/core/include/LiveSupport/Core/Playlist.h b/livesupport/modules/core/include/LiveSupport/Core/Playlist.h index 99544b3e6..e46ea0dc2 100644 --- a/livesupport/modules/core/include/LiveSupport/Core/Playlist.h +++ b/livesupport/modules/core/include/LiveSupport/Core/Playlist.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.6 $ + Version : $Revision: 1.7 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/Playlist.h,v $ ------------------------------------------------------------------------------*/ @@ -71,7 +71,7 @@ using namespace boost::posix_time; * the playlist. * * @author $Author: fgerlits $ - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ */ class Playlist : public Configurable { @@ -124,6 +124,11 @@ class Playlist : public Configurable addPlaylistElement(Ptr::Ref playlistElement) throw (std::invalid_argument); + /** + * A saved copy of this playlist. + */ + Ptr::Ref savedCopy; + public: /** @@ -308,6 +313,30 @@ class Playlist : public Configurable bool valid(void) throw (); + + /** + * Create a saved copy of this playlist. If a saved copy exists + * already, it is replaced by the current state. + */ + void + createSavedCopy(void) throw (); + + /** + * Delete the saved copy of the playlist, if exists (or do nothing). + */ + void + deleteSavedCopy(void) throw () + { + savedCopy.reset(); + } + + /** + * Revert to the saved copy of this playlist. If there is no + * saved copy, do nothing and throw an exception. + */ + void + revertToSavedCopy(void) throw (std::logic_error); + }; diff --git a/livesupport/modules/core/src/Playlist.cxx b/livesupport/modules/core/src/Playlist.cxx index 96d3935f9..c0be4a50f 100644 --- a/livesupport/modules/core/src/Playlist.cxx +++ b/livesupport/modules/core/src/Playlist.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.6 $ + Version : $Revision: 1.7 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/Playlist.cxx,v $ ------------------------------------------------------------------------------*/ @@ -253,3 +253,44 @@ Playlist::valid(void) throw () playlength = runningTime; // fix playlength, if everything else is OK return true; } + + +/*------------------------------------------------------------------------------ + * Create a saved copy of the playlist. + *----------------------------------------------------------------------------*/ +void +Playlist::createSavedCopy(void) throw () +{ + savedCopy = Ptr::Ref(new Playlist); + + savedCopy->id = this->id; + savedCopy->playlength = this->playlength; + savedCopy->isLockedForPlaying = this->isLockedForPlaying; + savedCopy->isLockedForEditing = this->isLockedForEditing; + + // note: we create a new copy of the playlist element map, but not of the + // individual playlist elements, which (i think) are immutable + savedCopy->elementList.reset(new PlaylistElementListType(*elementList)); + + savedCopy->savedCopy.reset(); +} + + +/*------------------------------------------------------------------------------ + * Revert to a saved copy of the playlist. + *----------------------------------------------------------------------------*/ +void +Playlist::revertToSavedCopy(void) throw (std::logic_error) +{ + if (savedCopy == 0) { + throw (std::logic_error("playlist has no saved copy")); + } + + this->id = savedCopy->id; + this->playlength = savedCopy->playlength; + this->isLockedForPlaying = savedCopy->isLockedForPlaying; + this->isLockedForEditing = savedCopy->isLockedForEditing; + this->elementList = savedCopy->elementList; + + savedCopy.reset(); +} diff --git a/livesupport/modules/core/src/PlaylistTest.cxx b/livesupport/modules/core/src/PlaylistTest.cxx index 0a5bd70db..f452b1098 100644 --- a/livesupport/modules/core/src/PlaylistTest.cxx +++ b/livesupport/modules/core/src/PlaylistTest.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.6 $ + Version : $Revision: 1.7 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/PlaylistTest.cxx,v $ ------------------------------------------------------------------------------*/ @@ -233,3 +233,49 @@ PlaylistTest :: audioClipTest(void) CPPUNIT_FAIL("removeAudioClip allowed to remove " "non-existent audio clip"); } + + +/*------------------------------------------------------------------------------ + * Test the "save/revert to current state" mechanism + *----------------------------------------------------------------------------*/ +void +PlaylistTest :: savedCopyTest(void) + throw (CPPUNIT_NS::Exception) +{ + try { + playlist->revertToSavedCopy(); + CPPUNIT_FAIL("allowed to revert to non-existent state"); + } + catch (std::logic_error &e) { + } + + playlist->createSavedCopy(); + playlist->removeAudioClip(Ptr::Ref( + new time_duration(0,0,0,0))); + playlist->removeAudioClip(Ptr::Ref( + new time_duration(1,0,0,0))); + CPPUNIT_ASSERT(playlist->begin() == playlist->end()); + + try { + playlist->revertToSavedCopy(); + } + catch (std::logic_error &e) { + CPPUNIT_FAIL("could not revert to saved state"); + } + + Playlist::const_iterator it = playlist->begin(); + CPPUNIT_ASSERT(it != playlist->end()); + ++it; + CPPUNIT_ASSERT(it != playlist->end()); + CPPUNIT_ASSERT(it->second->getAudioClip()->getId()->getId() == 10002); + ++it; + CPPUNIT_ASSERT(it == playlist->end()); + + playlist->deleteSavedCopy(); + try { + playlist->revertToSavedCopy(); + CPPUNIT_FAIL("allowed to revert to deleted state"); + } + catch (std::logic_error &e) { + } +} diff --git a/livesupport/modules/core/src/PlaylistTest.h b/livesupport/modules/core/src/PlaylistTest.h index e3c09d4aa..cec04972e 100644 --- a/livesupport/modules/core/src/PlaylistTest.h +++ b/livesupport/modules/core/src/PlaylistTest.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.4 $ + Version : $Revision: 1.5 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/PlaylistTest.h,v $ ------------------------------------------------------------------------------*/ @@ -58,7 +58,7 @@ namespace Core { * Unit test for the UploadPlaylistMetohd class. * * @author $Author: fgerlits $ - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ * @see Playlist */ class PlaylistTest : public CPPUNIT_NS::TestFixture @@ -67,6 +67,7 @@ class PlaylistTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST(firstTest); CPPUNIT_TEST(lockTest); CPPUNIT_TEST(audioClipTest); + CPPUNIT_TEST(savedCopyTest); CPPUNIT_TEST_SUITE_END(); private: @@ -102,6 +103,14 @@ class PlaylistTest : public CPPUNIT_NS::TestFixture void audioClipTest(void) throw (CPPUNIT_NS::Exception); + /** + * Testing the "save/revert to current state" mechanism. + * + * @exception CPPUNIT_NS::Exception on test failures. + */ + void + savedCopyTest(void) throw (CPPUNIT_NS::Exception); + public: diff --git a/livesupport/products/scheduler/doc/model/SchedulerModel.zuml b/livesupport/products/scheduler/doc/model/SchedulerModel.zuml index 24be20da036570a61adb8488e48127189e0aa390..7c63756e6ddae9b5a3ab19c634778a381fa03709 100644 GIT binary patch literal 121450 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

Q4y{ojQm& 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 z zR`M;2wzpZRWvq%q-s)}Vbo)0C82o4V#B;2}XxAAf^cVc*y;MkMTmdnLC71^|51g#| zT1f~3;fe$x0*gZC2?=FH1HuE6mnXtq!Ox{f>fH|2mS)D88xY5B;9`P)fpy5iDa-h6 ztSoCds2=P?wr|UamQ6++g(Mi>3%2=(1eO1a(Y=$4gccLChETMizJ!hXms&2 z#S%CdZ+)H;b%~_^FY^UhOy8L=D3q(KU+k_)t2!XM$CBnPe?U5Xk*g&CD_{|%4o6RP z9NEY3POgp0`2cNE*(4@72LSYP06^bI*8eAJ>akr7JI`y9E*~z*zy;u&$Ry7;jU*F4 zY8of4dVQqLM=7H2SrV~Vz~L{LX;fReHIn=VJxT)ebz~wb_G7*Pl3{ss;a6utnkPNM zcuQvAAIgW9@D8B(X)RTx{o8QJ64v(SJ4sOL{bV2$Yr6_o#U*;jF&fq$Tn%!3cfZ0% zPtguJJVufL4T}nTerRD4>CgXG8;Bzxu3u>cvekd6=3{)qUBnnik3~mLL=-&_&NORF zTf5Oho}kWy(X2XfW8E;OiJn4J5oaYfeOn>9DOTEZLXi@Uk$lU zxQ3zH7t|sw$)}rB37BOf4kYU{V}9J7sSXiuxKE6s(lQt(-D))!w8sgsk0s;e{U43a_(*pie~1_Cqptu4`OYA$L6J2-wT_6%lFpW6T9Z;PM(8TqZ5C-ZBMnU%8k ztSUQv1l;4+RvWhCTe($Q_N&<$e&_0j=btxx@0RMf)=u}=-Q4HNot<;*=cwP-$#vaL zpY@%1-ae;j+jtBf|I&vqA~T@0UO23B)F*mtF@Jl$d$_U7Kf|nm?350&487>{+m?8m zpV@e&r@eIl<313$er2Qg`%oX{HKkYD4v9H%T!1}|4#6GcCi~^dv^@-!x;&P~XoJ$G z(!U&@s~y6E0uanL$xPl=1L_I)+gox_w!t%Eew^pi=9mDrnacYCU+=pj3r&;4!I=zD z-euSj>Y5T7I;t{(n0JslZ?bZW+3e)KL*qu}5te1X1v=B{Z>`sa&N zTM>ediJjihM1Q`Sa^OF}Le1W^#vo(;Ld=@TEK(6C=D~TrI44x@>j7dYQ_Gzq>tZOc z{HwOeeyv{LHVv?%@eJG5W6}l>pZZ5GN?N1nPpY4H%IU<<;;CaIypBOc%a&|W5(jLj zGvbzkPouM5G1|{UJ0aZcBROzh3(BHS5q1EcTAvP>xsh43yNt>8_0JHX_-jAxDOc+S zd_y!@R(mwN{kKvv+;mR89{Xi6a2Nf-yn!Sc>B{Q)0eui>kGmgC6o-T5F;;Tt%rnko zF8F7+$a(K?79FB7y+NlNMuc_m)Zfhp--DU;txi-&~^9zYS>hf}( zH46Vveu~#k6{fKsxn8XT;7eVysHYinTgqhycB~ zS>$T>dkf_UQ<^&{>%)$`l7O!CH(+-Ve?iYA{+b;qYxCC&rdz72l{g=Gpgs4}WWlQW zvzP7z|Jvx<750lZNA~Aqf1fe(s zJ^eGH*XI&{yEoU;b5nI=q{03iWS(u}g!pQg%Gfg$VFQX%IZ4_`MdP zUtNk?u#vTfB`mG8-amlkqU<#65Aj6RGW`sREF9}!J*^Py0HmIE)pK+<6o41uw+gNqMP?*HWqkdysByXPDBskI;AT3kp8LcFur$CpdQkL6Zm|fA{=Y z+JG$b9r05CLyy=g5qAKJ2>EyA%rPWDw}}?JEF*wCU0x6}7nAJ5E~3vHCRPb6yqouR zA3B8r4PXUQgUIJ=y02(*Lgrl9j_Ik0Gao|aac#rL81b2GmxEn|oBEMUd!KX2A{ge> zR{gMoF3GTE#n=IKh4e4FBG!R=2(P>Nc`4Cp6s1Nkh1*0{16i`K@iUeWu@+RL1X#`- z3Q4)6f-@>NbmMRqxj}Rw`8M9b55^0-4!C#Vd4D3Am8HWy{$Lcsmm)lzIT|vHk|get znD5VGbfP4&tOzPq$$?la>+W#cNeo3fg>Y6teUPU_;&5mTW%-qGUPT6IXq;W5SOR(~ zv3$}eQh*NFj~$^DLtDMlS|g|-#-icNJCXA0{6#E(vT9elaC8M==;ZUqOAPG5QS1Xi$ zL}VA+_ajG4!$}i%$Lq;GsxURI!G$sx5z4RY!_8Vz9*oKX22rbX59n{qCubflgebA^OSy#rjqCzNVt%wckm_TDuT$H z9&3>x8J9`6tPy(yw_SGRo(bkwRA#3=wNrfsv~iB|qg+X+uqWDKf^{eVIb-EZiI?7GBMh8I zG}+fyJVK=8%!K`|bWcbFYw{^szS&T+E1l!wGu1(zBpxI z1uHeGYI)Ff_K)Su;Lx03NZu|`O;mx37*WCr+Yk_I?6^K;jf{mv*Y*|@z4!L15fjWD-&&;g0bw``f) zn)WMns9%gGoVvcOS5wr#j8AzVYmtk5kk_vit09?+Cr1?)Z$CuyA~aQyoK)|H284)Dyn|hS<-t6YcTfLP z+CD%*9xhIvE{8+#%fISz1(&@CcEXwU1yg)_(C?^jh4`;`0=dN*VfxypP}P5t%S>^j z@1%wG*Mq9T|2QXzz&^uhS`~@DV^l{$r{8rjmH98RFRYND^IzW~Dx;93JT4J=+aB|2 zO6qHD2vLW!rh%OUwJ%V@|`d4@#%tW0Dy{uo@(7W zVB);gA3YxfjXTd)Tm0EC?r%f)H}7KlJ?}zZ{AXVH|3fC|{UZ}Fl5)3e0RSr=T_0Bx z%6??u%2ENT2t3YjH({;0A&|W8(Caa9Q*=okQ@~zbye)HD0!g1F`E?aO61B93&7w)S z(b6>6M&|x_%zv_@8qO^A)0~q5mDcJbVQJ}7LBC@Q8Xb8e?i^EUy4J`k8oI^1 zr`)=j*K`5!l>co7@lXG@f~8Q(PU#D?wb6)DtoU)Me_lSG0h|KM==t`~ys80OdfecK zetY4z?#fTg$w^`pBFP!)cEZiI0nmFbKPw_>dUz6oA)1L-dmW&5!^}(q*$Mn7m7z>d zgj)6=h;+-Kswr~AN`MJ8?3~J%V@k-p2{|ssz(#h{BR34lkzx^x9TXX__Mz^%lv&VL z5U$|NzUbqOPa~apLP9)hY$k5o1r3Eh6a>-)=m%XogjT3Z`2dnNeVx1eDq*1FIQ2yQ zr*XIqr4D`_S!D=aj}6tkVSy23Kup+}aE}-jOiuuHVDO7Z6;5{OJF$S7;Q5bO=o!d3 z{Ie5o)BU~hCod;UMU`w`c)qm+`A*6X+4}GIFi{5Eau9CMsdXW#$k_|w&7>^7!N!#x zck+lX65OJXh=7Ytgm<+#Lu@$aUIAc*4qZn$Q7W*{0h)n`!vdgEmx3gn0JVquUuhdnOS-u1|UDoE;0KSEu&17H=B*E!dHT) zAxN{fGW0;LLc<0+;fPoi?mYOlXl9gwD#@(^0~B^qtcpb`e{dbFP~j;`Jh|AmWP%Ff z6}@+h&t*N}6cS;U_$j0BL=j;_VTorOlE_qbMhK&ym$Y?~g$;ZqQ@7j3LCTs^#J z*S>$dE6rmCe=tgkH>xY28_2hJE_rETFn1@nwESrmckM5hr)m0V+X)>>iLe<>UJ4;M z$33~8kSX#Plj}kyi!v<^oOPceo~2~{)^hCn=RciR*HR`Pf6#X9QNke$#t;S{_g6%I z5xKsIPU-|vJ%B9YGrO89{nhYJD$@(uTXKKEhAdCwt2)PL5UfBEdrThNdFK_-sK@;& z7_DdsO8bxhL3a1HCXpwLR7v?Qdc7~12Ih?zE--;^RsvWcGS<6#U-U<&OW$Lg1&HzT zQZ*xM15^xfO#H84x=<(@wg6S(XF@@cCm5M3M7XmPyg}$*f1CjlA5E2>fP59W z;u94{RF^FMOq>^8FCq~L>PxrF+r`AN* zpmFv|zYKv*I0bM4Jc6fv=1&bE(x9F!Y_Lvqsw7lYJ_j=@yEwAEgJOpEO}UW4qHgkG zQYI=jWA$TF)?YG(8MrxPSx_Nr=mIqZ$8`9(aujui}kCSO3P*r=hNdV;2tPX2TNbr7kK^#?t_1KAkT z#OfXgpVGf+U-T-$A`OFgt3x7BB^*BolQ(N_f1WAG`SysMJ@I*wB4e5LArbR5WcjGSBvdcvt+Yo9{^O z*Ktqe1W zIN;AeYJQYYN2PCN#Sr4jzNb_CaKc6(TKP~i^h-KciGH#PZk&gi=EITah1~Dc+Tkx0 zvMTkDb?;l|`YsE*FxU}vR0Xwf)Kq}Xf1EX4%bq#jDE_ng82LiRRBI)4Rb!K;ryOg` zK6tcMn>*cDWs)YYpnV!elgcppM<6koFlZkwU6tm|!fqToo1MmZpqe!u*Eqw>#3|)x zF-KrQ-?9>C%RY;>UXO}^%f-Mp#u$>mG)q=OR{+mJy!mqK%(u{#K%RK*Z`F^xX&6_1 z`gaAlyYc24+#%T}AW1)9kOh;ro=p=8Mf3ysKG*wziwcBqU+aDUsm$3@6!>71y!Nx$ z!On&t(ZP;sP_peWm!ku4IUGgt{u*uyKTKCnFY$se;UjFsDcF{SeQiC`Vn=|Ht|q`W zzx@D7t`P#c`3DH*>7c~XB=6Pus}u_hc$w0Yl>X6JtHfeMK^t!*Et%)Rga;-Jq#LR` z9x*nyR2ODM=YpI6$EQb5i!41`8yB*lf8H~n@Xwt0C6M_&BT7qIU`}$)YZ!RFuJ#Ku zWuARJ--enmofYL!*G3iLZ?7Qj|4qx3$gpe+1ZJxgA1$4*$IYAqq>f4Qk7TxP3uWC( zw)Ii|)(HR&)j_z?N^!UX{00E8PN`3RwVd{+Ou=dwAaUc=qn1Y{6*z8aJ{i@n6P9Y( zpFTu*sSk#>^DA($;LI|}G*hq^DP_oU;Nwhh@DHf>r=p&z%)`m%^)NFkvXO`in1CI9 z*YS2;CE`kmSz3HSVaCCg!;>6BQ$Zqe^--c7H1C&@9W+`a(|G_@nimCsOuFjRsvut0CR zIj}MdY+_{E8BO=!y-1Cl# zSx{eBSSu3_@Y`9lhPr#5)qE)IE*S9yT!}@luD#Jvm0+tPGD;G;74wFCrTNk1e^G}L ze@vs2-(>_pI7^^Zm_%jO4I#D}{R}T(VQ9Fo%7<2JI)Wr0LM&)G={OVYBHAR3R@&>4 zN0wHNBusxGD<%ds`$B)4eYp-K;eq9>;~?{3V<_yHu6ef|xs2sOEB1C7 z&T8fbA%*-oI>cQ+46c!9L7bp`v%{+>1lm3<$)=+RttI0t5z{F!&`WsT-6~7$5y)0C zcdx=hL8FOYic#r9W2$8o=9VswGYdraADMdhI1;-Tg=_^-y9`C|%Mb}HgQ5@vYPS{pbmEd3J6&ObIQG5mI|+ewcdHzjZp*+B}CuErbmTJcVk0RUyAY!9ODMB-Y;iG$Khb_h^ zhga9|QP?%(%7rI8e;<+W)Pw9h_2BYf>S6w`P;pn~=5j1~FgW-Q0L&d)W)P)w8(T!a zZ0oADs8;{8#Xda1mN`Eqz+XKa2)bYHm++)(DlgoipXqn-a2a@e`R5XxpC9+`;5^(! z2eT!0Ri8erubN{*aA9pAt!BA*^Zjos2fh0};D6e9#Q9I$!A1`M)O$3C0pR~AzPlfM ztN;2ky~^X&()s7kI}3=v-0OHfem#4P54d`d+;g5(PBiuBs3rRtzh_Wz?Ilp!s{FLwP1_d2?7oV#ERpVyzWJae6SaML)QvI08$5wr55 zqhC;!zqsumf5e!HrKl<9e>H8;NO)w5|Lwbh?SgolKCgO(^%KpuclV5Ps#nPW*;r`Vzz0P@RzC@F?!8E`DaCbjI| zb?;Y@1q{u-2n<~p@&9R?9lkWgrEu4JxITM zlm9$DYRExY7`and1gGrzewyi3`xG>g2wsV4wH2w?bs^-hS9U3350^qaRsHel1#oQo zXy{f(^roC1?&cbLO-8d3@np}rBqJ9btRImI3FfGHw+ke8XT7XeeBH8aZVC!qj`<>p zD9apkRlmwtWre%Pcvthl&Z-z?I7Ep6HnoI6(l%bhsCB#9xQEU>bbhefu**$-0%ls33Fa>wt_Uw`LwI{SEzaAz zhuSL*Zr=gCLu4>iBD7OA2eRKONNcj%;8km`J4dwGyhg6OG4kvhRUP!MjsX5P(WepC z7iXEtyI>s^MDFoF8`UpRUA*qoQV%cp;{+VDqHD zq`w`E=dIsSvw~S@(@&oycHYM+{9H03B;Y?SxCa?Sh95^^hBJhMI0~l}Q|PSQ(nw9L zfT~Y6(X@L&)0x7XTk16rLR$lvlg~3ygGIg*8Qm9}=m>^p==H1A{y=wuEL@bhYesn< zzLt3SMobs|!BBo;(KS*8wG5NFZ~;S)%;h!5C4CWQR-Y_nVreL^>PB#E`G?f+s>(bG ze%SW`JtZjIlLC(LKXv&NVajgYI=2+_BzDRWCwh-(Rnqw5O}*4Y{nf4F^vSGh7U2m{ z?ONfh3b;mQLS#0mW62PV6H>v{LBH^cI1I5O(msm&*ub)is43X3j;tOmjHntQDciW` zp!8l|Y$jO{DCLDc75~&Ufps7YDm-@VwDggHlU?)Ite2H5<&uPMjg-4$iHFvIaP0h& zBQcfC>ZbGGwLOyfq)6GXRvVnSDVvpyKr^wRKftR0Z#03Jl<-ebZ1`z?Q{O~@^!-ot z3)$c37oES+FTWFifCpyl+}}s#lDT;FignqH!qlTRm^B--fzowf(j|@3K$)k;u7XskpuG_*WCiYY;Rh#fl!2g+2;0;VESiThb z=Q=8S7W;qFU*;p;eMep#*)%+r$IXcT;kZsu!Uivw>EMBf_7}ex*UfL8%>O&3;K=$& zAMI=8;t#(zlNJbSxwd<5GP!Qls`n`czW2M!Gex4ILO8NkK*gX-P_A_*8N5H+X}ij?w1>yKqdq2iV-8R{Z{edIRX_6P`D z4P{fng+NxGJ`{_Hr7Sab91ttI&!zSI7)rpZCEmLMaXCxyAcL9W`p`~kAIHdqO3FiQ zMW~cYa%D&ylDvO;e)aMy==wre0|kmJWtduyIUX~xp?6EAUE^fy5!QI57#8kv&mW*u z*a~BlJ7CZAl}!VFHR<6Pm1i%990b{Q^W@CkOH)Y4)VrVS?2@W3r0t&N=T7T1C$cL^ zLWs>P|BWaF`mkjxV)3Bqz!t#;wU&-fUc;G~Cv$Vq$x#-zXGxy)?#0{bhTHCNR2A8aYr z3CXr zlVxkLXz{=%Qj$RF)W)uPP&t=oGokKZL`s!<5&bc5!)FC_&KGn}q`X6k#L4^cF4OAh zNKSaq6JOAk?(0d#FFL(elJ;weJ6(-8LPD5no0Tt`!qDCe^S|jtgOnW0n;@brszTya zd`cHdr82NeN}MS6_0zvuG%7ndBUNCPiwk9TTS8-tHzc(N zWl274V)tBsC3f&>=Z;iqi?)XC}(4?RZAs4XsO^-DJE-_*8ip9p; z(p7^2mQ0^3^`I};CmM{q)npN&P!1*UO?1K6y10IdSdRpO*a@p{ihV+Slr7q-m}Qp4 zQeIK8#EHBnTyvX4AA2$Ec!FOt60}J%P0i*{q@x11u%f31E?4N!2|FzFE)G%4+AEfD z%TGFX%8Pe|DF`e0%A7T)y|emF0hWkb&~T1=%q~le%x$l>Qci|NC zsqsQNmcQdc`ubTA&ktpA!lBUGKN${28xD(eiOF;xELa&4N^-}&uf?Vza5m3geha*T zMB%DiYUSUI0spfc2?BTtLf$rMoN(9yp#*G(e%pS1^#u!@5mu7iDI1Ll`E{MW-bOzBpNq`O)Fn7^2RR7_8Bqd{>a0jeWBHT-+UgL_iASPf@k&e{BaytvN$#@o5&We`-m#5ouZ6jW4e2S|Q*1L9F|R_%|A z8ZoK^bpAnz|L(V68Zn@Lz2Ryk_TTwotW#&RIrtL-MY6mmM>AMZ#K%au-$(>L(%)&s zw5_n8WwmHlLk#attaat7G0%uSs|=6=}gqRi#;u2n@o;eL$m0w;X}2 zxN2)3$Qu)Xw&A0NA7$HvX!KCb+L>hA!&(Nuk%_eq<3YWa=3r6$#NR;`+~idLSmcrV z`iXS|TrukNa%{O%M_0D>NOI^UR=V}oX9|>5YJbKqrn8}P$cG47w!LlJuPJ$!kdQ(U zh1ZKuJ)m+nHum}-AX-NIf_I~8gmV1^L=D0l(=0}EJ~SUouo`cF)*HlqrL@!9i02jn zuH^F|nQcguCxhR%{&3hUVbn_rw~?NW!$maVyPQmF*$OJVT!>W@#p{khCV4@|vIpJeTFmLxc8gzDEY@ChP8#&w} z`KjBcPA!@Vi#|Q2JXAEpNj#P{k8M}gCNz9>`tq@%q9&^&lWMwH4wnnx>cQM*0;EI51A3>%j>|&#wpn;A1=_>tA;EIJophrm#LF;$(l3ZETHSOK&5=niC4XD74=z-->Ho{TdaVyE~@FsR` zF%G}rs}Ogf?HkVTWuu5W{RPUb^9TPmB$r9z1%8SD*J(qA|6bMOJ|Qfcry1;AhLGIm zwU6ohb+!D}p)Sz_7GzM_(dWaq=r? zkEoy=RXmG*pLSaKLP?KRVy4z{L4s9c6l1lTI#)aZkHP@I({)>%JKd}CF|Jv0&UX&K z!Pk+{Hn0wXbU!etQT-zdgMWCFBO&7+yKP7fH6^|`o)|5@L4zZqi9X^Wo@=VjVcBm! zgBHS){*xunnEA`t?g};n&5u_j&BieojR*zNP6Y#EjwYoXj)a%Y*Pw7!V3&fEq1#hq zvF#+=kW*tmUZYJmcw)GVoH4o531DuT|850?8*0%KkZ<7kppJy3Wc(_>5{dv@@*IUU zo|yVFCldPY<}zmtFNVbaAZqnpyuTx{_^$>r(hMJ@muXibwrM1j+t#YU)z!~3h^(G} z*Rl~Iz3d_EcAwOZnjH&H8F36d(!?{%%~aa=Atanl2&MKQ6NSPm5~QFb1cc% zp{4daR=o5EOLk(Suh4dC%AXBP63bFlh_GOk_O>Nvq{9O7FB~Y3)2ZhLo^;Vx$IDzt zJUhGCL=E18+Jz7N+eSwkG@}*J!IRi?tm4A~E6hk+WE9k3$T~qBMzhg#Fz3DxBj&KVz37Cm$zf{j*Zx70q^C5&U5F3`<}QrPW;X` zC5vWnGXg&%b5et&piUBl$EQjynu`3Jbt=yqFwmvDg`d5)W9`pw_w4(Sz;xp2N@>a)|+_ZdGjQ3DsRH$PlrG@@o@w zt;3i?SZC_%blk7yP5KabMQx|$7)FA`Mg72P&A z;dqQAlLp<;g%mq}0zGKIM#3OGEx9HrpRoUKwAt&+Vq;fVmKq|&LnAfK8e1$LA7%rw z6Ex&oydxxnvFV$iAugz ze-Prqp?pic+9XN+Gd$VmU!W~ff?tTbwseC!xW`2xpIB$wJa;L0>(BGq_IMGBr&|$I znv$P`LR#;c%ZgSdu|ip_ak}FMzcnEr#Ibe$uEzIFZ&02 z{fLoDuP^3LdAMvsr`mb1lExj|PKZ0!u^R6R+V%Q#zt610;(itHw=A6K^F(3SKSWf* zttPT&(0VX+TGz=Nu?~0r!;Z>+mT9UI+n8K7tSP#zQwu&>bV?>%aE&_7e4|VCt36nuN=9a^3vR>lYz1dz%*pj}mOG+wx zP3(})*#Po=ttpnKLCtxh0r2HAV#m~-feow|=LV(Gw8@4yC9ZCJE}OTGB4pkF3|6tp zMaWf&Iqr}Pp3^B&rk^W~@6YY;j*r1~&BaJaSS=Jr8qj|!GH$l0w)=$|B(KpJ;ctyc zB>(pN)Q}vZ<95W3u1!=m8t5HGx~U7uCvYd>7l>Hxwm|McAZAWm4g$M-<^9U6=Lfm! z=ny*UTI|*-q*D94X}(2F)Rp^pH%+8gBrki=!mXPmSE*(!5`RJdV3j;c7ufsxP{~eG zUw5FSa)D0a`gG;DYoVN(-fEjG*;iSb4QnYB>71mNl_8qI?h0U+oxujG?84y~U0`Xv z&}Elr!!Ov?sW}Cx+aWF8?^I~!c#w*+RCOrIJm)3^zJYwJs^?D|@pO`@js}xrw(7k9JNN(G<_$gz(A*de3!wb^= zZuEKcp&mtPVred9r6SJH3aK*y=!VtF$O5Nbo#@ob9x{ftey{VgmK)VcEc}sXHdZO^ zlq$S726Lww--tJTtXBYuYQ)M`L77+s_iPu~AEqIb9#)vNU?ur1`GG~oBy>c^BAWxoxFr5@gYi?3BR$0=a={m)c!;-)Hna$?#O z=Sj8EcTxNBi}`5-2_Ce~PpvZ&8wB(>N_%AO;V1!2moN39D5T$%rr0|$X!$Q@-My^Y z8^F)4trR6aX%p~PiSk)mC#y&sz_aVdijpk8i!(Ls7AqDdJ>i5ocUb6{e0wd$Lp4d_ z4Ra;BKPA#MVsfBO&Drl-b&tJ2SJ%mip^G7^ zV`?8B`DJ5d!mM_=Gx{rUSn+Erm+MpS*+uyji{SQPx^(7~0ina*+&9(~Is;>E&|GH0 zr~0B_l3=0F-?)`uZzg}XIeqQ`f-4+6@`^{#+u~nlk2}LptWQy%CA_UWuGARXi{D0M zZ_+bxWrO#NJ6vbMH%<@&ULke9bnO2*IG*+afrLSW@I%8Z|1HG;M#>SIUh{^C9gxSD zzaeYr<+3{KHPUgJL1`OLi}1`o+`|%1M3&E&wjhhWl*!PL&cTPl>>c-TDsUOJa;suHH=zz;WJBln+r=)_Ry zuRz?U{3zm;3`jHxWQun>i~MQe22*z@f4W?mjkyx|nXi5I+3gyX!4L*@1UK(Ja*-V0Pc)L4Ou*h}Iqh zrH~L}nAh&8&=?uOsCiDv{?74pYPML?i+Qdr)YRb2+c2W-*E^U5?)!hhB%o%ULkCp= zYSyu215I(^-SBm15h+5YF zmb5jv54PGkQprO=S6gSpmeU!Pdc=_XeoNyw2r}Oo4IJI_-QT=y$V^pQ^9#S+0r5lHN zWyo6y;)ozfXiOE=qt>C{)T3o-^;I*lGmLk6E8gU@NaCWOR3;Qv)m4n*T1UpZT1RTB z<>!@?l=Y9P)ty2PY%H|*M1bFtAYU?2(l%D7Qye$2&^E?kw<3+(7lqmK;u{H5GwvU2GVWQqx76Q?v#W%9%&b}m-yBfJhq!Gu=zE7!|A9*5h9asgz zp$-Uzyd6|9&Ba|?Lg!mC2HYmuwG$~x`ViV>YWfp1dRZIM`cJk;;=WT0mLeKq6oCSl zmHti7KAFt#z+;OjMww-!D`xBLFA1tiO7slx&+i|De`_>9WFRODQ9s z^D6%=v~93ysi1MeIvUmE*W`Y<`bQL z4}%@?Cd8FJNci59k(sn&<7hs}TVSQ#n4A|Y1=hqt{nonbyBdQE{WWM9?|mwsq$9eV zN)SkM`6_7hUW1_gu(ESkf;z}O4u3;DYD+0LB#3*SmU<{!q67NSRP;pn2EFUi`=WGu zc22vE@DGULIYk<5t+draq6fl3pSo?X2$N;8w7tPQs!Iw`K!bL>n7`lK`=U`eRKySS zz>VE9)HI3R^?q2{`(ae0%oO72#Vq>C%;98vxL;CN4^~XI7f1iUx3z>dNAYfM~ zRBSWm`=S(Tl_1P?N(q2sGwfGAQ_{?AVfyT$ERj1D>H#v_kNjySr7LLPjc2F64C982 zjEvC)QpZfxP@dq11MzFP;k=xU>M+U`&QZep2WmGn$Xx1Z&_5j<}C$cF3IOq$~+Hv)5XF4h@3r!-0GbsdX=PwdduB)#+z=dl~ z!i6t70-cO$w>~zfe8wU)#=WU!9V)FI4=QaNqr=RYvf`h`{xKC}n~AhcJ^6h%ay6F* zSge6z&T)+x4*lIS>E3R78xs0L0kQ9?1euQtFu9fI^9{)}?gOFv4O<(Sxe7DKXhz-i z8kxb<!5v2lHtdk(3;t~%d`T{9;|Ft$ zMNW?X6cH%HBmsLj zx?GtSl}MzCX#u(UNThhI>Y5DT;(Iac^Q8$14-@v7nIp*9eAwMQ-gr<#l(+r0CXH|f zb)9aUzpESI`s{fq#OBB$^d_UDf!8lI)HFfnC)@Zd6x2#by6yceTeqAefVF8CsWB$Z zsAI)QvvR=_D}&BCgOEumJO(du&pqxFFJVR1Uz=gY$g={%hs!>uoQdY{P;_WWqd0NY zQ7TNR$B(}w3Fv+W+ogYz1nbavkuy&7(9;l=ivsb6zd%BDp{UYm-*MZ|){$avI(MBmJGnPZ|(0*ClM;#i7F{~F$fvT0@c zP5T@)Pb#w<*l+51Tup7`IB5-4EC`*10`(MdTkNMr@vg1SX0b!P2NZ(SF|R#!%@=*a^6$D7(hH_@qKUidKiI zsiwZs8$UOdi?B1%_MIyHGB7dJB@h;9)0r-M;$~bCNFcoucKhUrq;$>JF;qI3t=J(w zIvd;QM*f2$_l#h|w1fgEG7Qa*UFs|Wmltljy2{C8$4+1>hzrivqbed^AH?0r2zygv zqF{Q8dbL7#`9H*P?Hw`fSJe>rXT038rct1wM463aMQs!_lcZ6u7c`Kh`J+b3r9Wzq z!lrUu*7m(m9nP5O$=iXf5X-i}^!Hpye2Df4ZAHBOoPcI3@<+EmI=g2UxpV_xoz;^7 zgu|Ri6Lb@h5N$ne%@o^7_Lh37KWuYfB(OQfk*ex+eau*}T+n_BU>SFjEWycK`@%o) z9b)Mr6UU;0>|F!6-cVuGc_0m5-LC}KrJ}EE{^S8ANsrU6kuKo5Rlp4`@(f&x8X>Ma z8XL-<4LW#-%3L? z>YunQ#h@Ciafq?VE&cF#-%R`D;F5-kCi??C0FM}&v;tyWni?VsKfeJlyMB#Z3{=)> z(b+_rHX;h0e{|FBI|w)(5=+gB@697tKj!k$@R*-_!EuHi2}*`2fG~>lCRa+%K^cN5 zR||7a;ND2M5a7xV*V(6I`Ktj;5c&OHX1vU*&YO!>`~P_Q=IBVD=j)Aa+qRu-xUp^9 zHaE6yZjy;@+qP{RZ$97OIqyF+XC9sI>3X`W>)yIm1W5V&7m-?b06$#`8TkkX?|TKR z&pvNn;+cqac>BJt1fwDyt?g_#h_PQ61-Yb&+}IrDP=0%<_J2@7g%hpG?nZ?(?c-sV z5R-hX%P>`9>vbMO|b zM9B&Z(J z>w4cf>yRvK?K|p_^m#4r$!sp6ddk)xp{|e7M?9gma0D49K$PsSlM0BWYd=t%M`x`) zl(s#P6DASOw7wff9W7yHWLiB)JAIr zD(cTPydVH<;BK^$t_F9Fm1})BSm?_rx(*8iDJ6N_x)==RP08NUTH_zFL&u`SsHkwN zJ~1nnDARQoCFqnO^TphWx;FwYiBFEEDUCN!uXaDykQ= zm8ZIh#XXNFa4# zuP>`E)rD)+s}dIut}k_Wd;(tQU9dvxJ6@G0Q3r(q&>7bsHSdxFd;)xUa;c$mhh~yF z&kxQ@l=5C_jx_L=HKkM(>bjd`CZnj$n+`fiAcwMKEQW^7w!`A3wwa4 zN1f?Nobe@eb60I^ob{XBoO0)jDWO7yFA7b!_+s63R|Og#F}NGLvd!R;vKg8z{D8W~ zG1xqw%eF`1)DQQLP79cs5Ws~5^#GHgi8S|oJ7kaL?M1KuWT?(1PeT`KP_XYb?3vDa!x%n0XOgUiFQ!4EwY=|!P z>4AEvqSAfHJME6t>dqU3g~@VNdX85w&rT&D(suB8*6T^jzIUm@7K%1HN^PDG>RXmK z8_`Zin#7gvt;hQuB>9eDam59E?Rxn$~R z_er|yyItJC56L3C3`{q&gapEhv*bBaSDmv&s}$o2w3JbHgrOr53~Ih)l3yb@Dh9~3 zb~mVWU>-^{5;H=gkl7M|+dyK`lX|u`oc!J9H zz*|!Nc>FZ8D%+d@<44lR=mh)`el>|A4NrI7wq$&boYyuFaQvEuO80=UhYjyh>Ny)P zcQqv%zB=CdDu*7BB@j6lT~G0OLx}7L)?3W~9rwKk8ifvlF^G!8r<7D<+rN0+^5PT} z|KB-!z8#=*AXpp*zNE9ElN;h|RZnA&51!#%L`46m^lK*QeelsYJiNmk9`Wsj|fKX}tABMXm!S9dHVS=vL*V1eJG4F1I zb-|Np&|_(Yzk26W zp>4alHi;6h$E6>NzF$3j+mp*)84-a=M<2F$hTR)q^rUERq;NANYXte#%`2hz*P(a! zr|z6fbDV_C3=Lc!9v)NA1hTQy9qBa74BcPtkfiD12?wQr$avnLoTgkD<#I>eb3qA( zG(SQ^eSF=$rwFPKKL32N9XGYo#vEu;JZjl(=L<@%>t*_Pw}z&6#{>Iiey!?FjihBI zyQkw)Gro#2OqYHcU>T)e~U^?P&Us4fk@#? zZWH9}VONO92ZNbGMW^Nq*5ze%*3Mr;7&4@MpxG;0c!6s?s-6qFpRIZ_=aN%p9HL3N zP$=wSy%fxWGyKU4^uT0k%6VF0u!Rat4?(%Fxr?%?Y~Kkx$I*aFFwv~kxwK|5(t2%c zAHS^vRrUR`FubO=)+oALmu1}BtKR?FT&HE9skI$$!pKUf zf>3e>n5K83^i(hybG9QBD^J_f?hom4J%aN6)7`st{+VspV=0!%k6m@0@0%s>TLU+D zcbEs5(1-W~+aOe{wMf>@-lBQkWf|^m#nTqYC~FR2>j_z9H5Np} z0^Y)wVp~)5%_*fgfsaC;mv022uw=HwbGE}8Gr)9`UL^0WXE{RI+O$HNd9cb6t!=I!hH9eN z|M)EWd}I1yRINw94~D8oXg64y+{Aw#4mB^!et9Om1P3)=wuQv5t$a(FKyC}M?9qU{>gc7eHCzg zZUN(}A<|&wT_$4e2^RFozKV`Z z(k!?XG3#A1Bxpt%qw7eHv`y!iH^5&n9e8nb;ynzRqwBk~^Mb|Kx{N1}2s393ALCaa z@)h-){0vWJ1}8V~qL@+OS?lsl*w;Mylbk^eC&xk(FHX46P9+Q6$D=| zj+5MaS${lRg}P35Z|`2azhl`v#cPK4+`6b?;JRFT^Fy_j{ltsOK0wNeH3%jRDNPGSn*(zS`9)JHEXEvhQV$DRKT( z*@jK?7TPUIm4p%Wg^z>h%>03_uN^E3waXWZe${WM-2F*P=&3Bi>nwB8{M0XY3EX>H z?(jL?N1ht0+uD_s37LWPlElB7`EN6ZGA+oAYpn_}ChCYDm@+9pYpc4cQ_By8y&ne_ z8e!~ic4|6|jbWDi{dG!rvfu+#<7|4XiFL!)GgS?WaD@ zZXK*6Vpv<@jk(Hyxv_|0KSCy7@N|3zQM7`OQ!#IEyrcJvAD_MyPt?>oGo{146|lFe zT)LmC=c>oLr(wWe_-IpBy0@+!Q_rH2Xa{mvwig7E`fRfzcA|Kh(sZ!CBUlw~7RdC* zzOcNEmGB24NV|QjX2^?^gwgV*XUp6LlkJ6XGudDvulWK8i@X~f3?z4~0!^MQ_|DRJ zZqf0pMjI>&8{#;xMRV@DLw#V~6UiG2P8Wp(bICO+> z>^lJCc8EtxXJB2fql=mo(Qd~|{>#305Yet?ndw&{sxBoS=l&iH)q`OOk{zPI57hvU z975iy>hc;FZ}u{H<tsy!FH`V7Q3LYA6Hf>h4U-qo z&X0TFE#C%o`myQJ&8fM$&7I`Ukjt1ibUAhX2NTL*Xu#tuGaTR18}mZH6*!`tsj5D! zVX0U#h_~0?9rh*tif7_egR92I6*|=s)5?*$DXab;2gF~J<5@5-h*FwISvC5@!NdAe zBTNQ|oPIB%X!}G3l|g)kn5iQJEvWtSJI*zc(AC?e+zH^tK{_SwSO9KaeWfawSd69) ztL*b^2lJTO#;$u-F^+kT{kT7JrSfII=HK^9ql0_&YwOq<8*9KFmDRRk9&)w#TVhLa zn_G3z6lD({#~Q^yr?mn886(uyVlR{pUyFn_@)GXZbv8CrA(l>Chm`p1H|lOSQ|}cb zb(>`dDunCN*s4Hry;oXbsHzc7IBeInOuD_P`)Y5g^S3Z}AqzX1sNUTwe>~ugHg@ae zUW1u~Ll$m?P}qv-LAoS$8hA^Kp=VGr8(iTLL_B-q8k!wWfkDKq8~Vr8HsdnPfSDv? zpF$SEC1aH-vbfxvLhiDP&tNp&jJ5O##gZ;I#kC$BciMs|Jzr%l{DBjf3x*q#h>Ut5 z>!i_zGbEJ+aUa1Zc7M;xARbjqatMk%g25)%0!d+!SD=oryag5~)&f@eLf(M6nhn}7 z%Laq0FnzEj^XYBhywgMQoqVvcci2F}p)Wq|xjw&cBc=yT?5TQH^?U5O@mF8opVMbe zGiVviwcbL8>1{nCTeJ*re7|mY5*%<$lMw#}@RCdRXTkWlrm#+2s28e*EvWF~kHqIx zgMq6Nb~gbBq4yN&=<64+v@K^8wV zL4 ziWU|`N1D!gPk(jDy1L+oiyJ6}Ow`;ktgcr=xDsN^L_~t7 z2W~?oA?V$arFv_5GE`%m1}%;~Fnh@u`~o8`k8QjGM#`81R4fS2Q((b5qOqv-+wrCQ zu5|y^uM<6;1$;>v+Ge-a~=k{dQ(N8Z7oGo zR7r&?ViCd5JKUc$_Q4U4RRke6b^80$uX6SgC^S#>B!GaP%bv0yq&xnx>wQvMRW%;-*}pE<;O)tc9wNE5RFf+@;j%J(OG1$U6P>B&WYNCK`@br zs`>iGzqhGtYVH_>GPD?Pr{*T_5Zg*IJfmNP@#-BWkifSKAn2OaamZI{Xq@E&F%(a7 zKp8-B5`V;^gJeAeo$uY`_Wl8N;?cUpE^kB&ZiM~JRPpfWjMELz6F~cOgrt__Idq%f z!69v>_V*1@|LwM0+dNF)yF2P3r`T`kN1DDPF%{}C3QZCb_nu)kB_QMG6bY$#m5>Af zOpCXw^AiERvr(3N8q6vC-(rvR>;wf8?}FT`fti=LW57-rW6&i!p(Xvh1Y>dN`?Ilc z5%{te0!`D77`dPCDe3U=&Sw9BR;Z`c+VYVRf=|+e#&{bx`TJj(zun#zcLkM!n3+44 zP8lI>l@GM7MF`rOPEA?f@mq7trp?^urA85eZ&q7HAMSn$wti%1feg;cM7)u#GD%?~ zFH}NFkk1f?Sss;-TmP$^5Ff+Qn|0Mtz6-|p!Sj{Je&ly$^`g%bCIV7$yQMhp>EAib z(2rm7=tdJyBHXh-yvMtnlDaAt;l*cK!e!VFHj z%CIFi@ZMOylkzT{^ewmmWuOU07kod`Xx^hV$&LA$CmEGkn>-}pd1)HY0W%qG~u9(}{`in*w3hI=a zX%6O66A`+7#{+*9Y9@DU#t;!U38~;S6{39hYcxy(ho$;c*h0b-dW%|W1J^Ay+n}P` zC~7yoD+hv+O1(gq&d#0fR@NXVs5I1lsUosyhq238bNnKEz5ywd`xeovK>Q(8$s`y=? za=vhH5n_ePhiwB{a5>x;0ks zM4TRMvUZkxW`@J}haOH4N0U(%>uxjh~Pr4L^zgJH>bm`pphiy3mYpzN1bH62xzHN-O;P)NQG=T5ThX*C)tMj{T2SI zSDA#hn64M}TEOetU&22<2kY_^kd5&li3jX}euYPtq@aemBMN#!gYrjpb)iDW64v|s z-Jk*e3BfIytf@13p)*AF5#hvDrPf}8`v_W%D&WoPH$?-j0Q=fBY_2Efbr1h-12?z8 z7Y+yVJ&=gQxtaNU`xiI8pw9CVKCS;&Clq5lhh*71+VgebDrgCMBUVUQdNDSwK>7mV zxB-g#i9T|6uxt{71BvOFqGu8u-T^B2teAu5`k=XG+^6XqQHX^rxMi6<^4kgUcKmC4 zF{QD_%ZSFPspf7s;>EG;}j- zXZd<<;Mg0m|*GKcsh>;{TD}mvK^rn%>!I$!K6W z{&kddu@h;}(sjzO7Mig>9$NI!m}?R@$N}Z-`O17U9kebv6Ag~A$u(1+rn0Cb_ z7ytSvr8|Nh_<*V~3TZWmv_#(GNK5}(HH$KQr-q|hn=n!AL@p6iE8&=RBTUnt+9UbJ zwtabTh_H*Af__#K+tGDPMhTNf#;eat4D-ApMpfqlmAqqtx*C$#ex#G`z%||hJM&Ys zSr5!=>F{9!<^?mm7W5~2{Sh^BM>SqDgr!4(bQx10Z;DAv zGiVVaY)mEvC+H?qGGSGa9!hUGo)^gbqg?~i@yOPyIIL(DQp(m3!WrZWbF;4C8Q%Hn z$a{4Sfl*KqYPOZXckjeh*-ICm^S=lHG$++=3F910GEkPHLY{fK;Y&&Br?SZ-HBB#8 z?dS}GeGra^FNTpn9v~PT+dqtetOYHuPY5JiW`K$2!?8j%pZpS>!aR@MMq)Pmc9H*& zP=FPuSxP0Yr4aKb@c;{wJ3NROQebO|-_r(m9=SFWaCY3>GVKp=D*mkSo9;K`Jn^P< z&(kL6 zN`W`Q>Z4J)e?B+=^tQd3|35&WDxZ)H+Y8oDf?D{(I!i#qKPNr!`%WYgA6JQ#+wh|i zBZr+c_(8uh6e%|!1zh+-+9nqmzE{Y109+971^!DPHMe+7c?E01q5T@cb%BQ*_A<`i z68yS>BDxU#nz6`}68pXpirM8C{X645If9c@XI_g6 zNvqh?ws?!(n-b3jpZ)k62}}B&4+iRgT&?$IWJ3zXw?AV41unPd%q8t431S%+w0+P_ z70Df^uYWxA?uwBf+H7N+E*ea0Lsqc&Uf~=fXd4z07uW`#_Y-Du_E7E2BiZ}0m(bP< zptfd~8Vk$eY=|Ijpk!+xfV%&-jy%Jplx` zKPu1<#?%d5Vw@__55(Mcx*5dQQT3avPf=b^Sj0AB1V)C@ zK4Kff?x|sx)RGnkiaRN&4XI(S1O@hmnWzmxq(PMrp2as5gK*Ermtp6O3coImW|x~Q z%X6q~%t;FkYsoI7^m`e$Ng((Hd`;J1MHpHYHJcTQW+c&C7Ja^Ri*6hu-DvHUDgCtx zt=8w!{Xv8fVkcF-I3v&ue7&GQrnWgdWsN?!p4jNZa*r1qQG^F$w=BYR>s#Xnherw< z2H8FN>>jw6IfY~Y$S-3`=}*RE?!S!?v%}LH?&tNK!w!S;#Wj^F!t42|w{n3iL^eR= zc64ybVinEoB_0B}w(_`S!Ah>_Eo0_)rf|2_MDjU?p+v2TmBGhzPrArIXg;k}vZ=HaQmp)SBui zs~xLkEaJX$FH6YB#W}($!*THS?29ic`aAS@USc^4pzQk^@2?xDF8CQox%li#7dngvB%TJs!kj=w^P%v5&HMCfDOA_PStDgTWp$cDO2|M7r3{o( zgb~m#k??{!+@Cm7d(HRECMMdEqkrl+HJ_Wc)`C`zg=`ci!*U*gro8UEW|y0N^@M`C zntV}Bd8%-@ET-&6Dvy#X^b%-qN&hZN7O_2++Q<0<@eRT!C3O;rZgX}}b8Av#OI`1i zGZw$_Ew_)79(8fQMo`}3A-LEb*OWbC%^_`-I@(Fq+D8E`^4{Kh4Z9_;p{qqJGon9@ z5qo4ss&8b3$cv#d2ZVi*OVoK+CFWP8qU#r-yx;v@VXO?q)Eob zpRIEQrzR}Ok7-R;bGNP&j!&$SDVU8RA_R@m;t(476xFVXOa9cR{>zsz&x9x=Bjs+a za0{*)mDd3fg5h>pv-_(_dwYNmpReW3`=%To>w4w3GRXSSS(j__p^@TX7G&hq>pCX% z$1IQIv$}Q!vTn)$8`-yfyyggG zAoSf*ylPK&wl9yCLWAs7!g}9|efzV2ZTd z*~V$C@uLSv3$ca??5d7Wd}RoJ;gNNZCKlaC>4P%i)ChB@$;Iv=gQ9XhZ=%CQ1dxQ2 zN?zdO-SoRk$?U9}G)J$NGTOY*RS;ku8S*2~*%Dg&rm?OiwAy5di;YY3#Ql_bh?RyB zyZZU0JnCKBVG{i<;*@+gyxdT;{gAEN6lUs6pS5FPp5yr^ZlD9gzRWr4_YTJ_E_}q>hr0v4!20koMFEJuGDv?dLav*P z>4dB*38|gPzyQ6`pFgpo$ee}#x8oA1J(K7zO*PTcXryG1G|bdcR|i|gWv;=qu__YK$KvCfR?PZ4?&W00=ty~XNopr!cqC3Nf+>w1)!Z>< z);A_~mb$D7!|&J*j>xK^OPuKNB7BT3rknJ~FT7Zf@cbvmD?nRyq}G$9e!spdvLM`| zF3AGA&%pDL#`RVAh}=SNLRXO&s3~matE4S6suiU=hO=r&?~}rjf63Uu*0uC9W#x?m zio*Ec4M2%L;h4*y6Dcy71c73v{zlp;j9L@;D85@UP)oWCgI5~G4#15V|GBm@H|a$V z@v3Sd+EBl_06?}hU}`(E;eEdnp;LiuPnevb$={JtYk^{rhDFdgqgUR}osz)^d{bV%wU$l{YIP|Psn@wFU$o%JZ zneVh;-Ap;yCodEutUz7H@n4{yb{q%HoT=b$nKg>v--n`XOWI*zy;2~RNHH}Ft)j0w z#MF%4Qd!#$x4wPktQ z@Xj-D@|hyFwiC>wSXuNd{>SHOL0K0f(Ky$7a(?VL@fpvdjf6j6{~2Uj`X@5UhWI09 z`O(L^kX<)x`{Ozh9D90@V(;sct1eOzRD1e+#MDQ!fZxL4Rz5tLBe~?U6K|$i^ylMG zSssmDrm)eLouF&#Cyj?i4Sac&0NV)mK6!BVNvo7a86O`DT`Lz3GZ(KtKFvzogbfWH zVREs?Enpkg23Y004!Db_%e}~nr=ga&@J4l;`p%#x4xyw=GK%8O!s2j2N=X9uu-~HP_kND+*1b#g|7eEodaYgaavrZ% z^*(^jkSbL)9?JxUjlRE$0V&hdxQu>9WR|RZO6j*!*BZD z#ljJ%Z*y!|4+qMu-MqQKYXhg;2qM+w`<>Oz6-i3EV>O$pn&? zn?JvEPEXyAG7oR%`Ez9-mwtGpSa@Ai^2#wc<4 zJw@C9rWFjMbVz9O}>r@#5(=5px-S(g6gkF!z|oiLU)x_jP7h35JAOCP-<(! z$@d%1aoapIytFSkQYxsr@*~ZRfhs8<$7sX{lRUHa-*HJa#dlt8rwc@qGNiTDSnUbXLe%qCs_iAGku%8X ziV*`?6^4{P7Hzk$c4)n}V@HXu;p=v|8`b_Q3f4IvOUu8XJ1m>gq7!PfqUJJ%mCB{g z%bxN6o2NrGQdqA^j+;^y;OB)yxe}12J2JY_s^Xdg*#vjLV|L zi<^(aSJphkaFE8zJ;L#Q?FN*Z1mo@S+5$V?(o}snmbaQ2q?@H8d_%Jr#{Fe11kj~m zg?>Up|K{tqCECjhD6u-mv50vhQR`3{!t%H1C;|T6@Gy!`2b}{azP_l-s9fv=Fe-CO zu2rMpy<5iiSIxCe*y3LF{h^27D&JzYX7wz^w*d1tiazB(a9D!&94E^Yd}iMZ6afx| zu(;WVQ|_;dr(a*!C4cz8G4Szoa&xx2*o`@ZExNxwV`Y;zG0i!wBEA0Qx{vi9^j}gz z3G{{Dy=fP``w@5=Gb5F};u3pv@!6>aLcv4P13*FKB*g6p&iUC=LAQOv?P{;PxQ9gV zc?mNg&Wh8MwO?<=Prm4q6|USK{XWzA*)|Oj$efdO;pfh;1^GQOQMTo9c7BU=^i5Z5 ztor9F#gqJ&5)uc6rH~x$!4vH2XkqB*!!V7bKyhaZ%CpM{bhL;EShKF3Zw69L2Fh4; zf%$DaX0Su@dLeSsIzR+0FTmEDuN`e>7<6SjxVT!u{7Qrbe&63^Ss%~ey%)vb4hfu& zJYr)6T@x0@X+zt^{`pvA8E&o+O)pZQgIlf;9WbBWZ0)U5orL^4#r9Xer~a|o@rRA4pwoHit`rHr|6w8MmI#7+hUKu}-4B>4LP{k$An;qyW_SV@ z=$4_GLtAAP8C8y3H8Hfwpl(-KVO^HbOi{IJun=*R$1W(3(#nRjmI^PH));*vV%bU} z>dr}yXETwi!+hKb#x&6pfNt}h?`nQ%69C3H*FNHtl2&?2>c8>nZ;VyLg% zo-!nRE)?@(le~;y2ylQwNlyOq*xPrvQ2$0+k4o?qjz`=1B@{(W?ca&sSGb;YW+?Ae zcVBgF;mrqnCH+zv_+5gn)l{Uv>A-P{iW{Pu7Y(BvVpAa{-p78e8BbK4wLTLP&GY2R z>Hvf-w{@Nj<(E#LG<(Yyw_z4+^&KBr7134jYj*aDAuUW(di|-09bW`#SZk6qU${Fi zgylVU>*HcYUJG4)sd7)yvFn!xmiurgY%o7|SfP<~sGhtoY?$lfHMO*f z#0O2vI=D$xWwnX7c_k|m-^{ET-L6#U(`+*&l(h)Ckcyrgop=`UG({5@1)A`j`j_t|{#q~hvB66yB&JJ~y5DViuI4woU!Ht)|MBqf)Y!`m ztgv?7y;X=}%mKbOxwfZ$Mv-&ZUu?%xN~!oO{Oa51B>q%{Ge`I@L+LR<(mq5uP)RIM zhY9M-w4RtYG%-W!?{(Jz$Euqi+62Q3X=KFCdU*s2vL{l$8yb?cp4V0rA#fE$U`r|( zq!TP*F=)(a7=}oetKPkoUfq0%u_s5~$Q4mhVH@5$t}sHg6i$kQ;o}@zbl`bSSq3Sd+Hz*-|xX=*Kn8&lVB z)%L~VL}$3@NB=8={S{+(hB-$%4Jr{GDScHlu1%FL9nZG7L=Oy)@_So}UQ7%=!uS16)7yh$ZFX%!T0Q4DtMK2$K z>n8=2E_{u&Q{PlUWmjE0I1beURy^p3;O)Y!iURXXZSQfeim%1P*4p0+K?y(oYVF=S zR2P=>Pp;>9GoaS=(iZ1#k+7F(aO1Zs2GtDd$nVUiGkY{^EFmKs%^Jx})u~)3oNmbp`3HxIH%YW;t%JO-s2C^HZKP@|;@ zdnQUJ^ZT&o>+%>bLN}Q#yW80k?8MM6=g7hnD*yy8-9%Ar>M`IxUSYji%gFemlp1et>e8U=sbM7MV(i$VJvEv4xu;r@f#m2Ncem z$>BAQC!V&;OehQKG{^nt~9Z)RXsg^4Pv=$o2&Eh{!9ZRZ+%)s>;M6>f|>xuV-4Sxj~#@&)w&7D=m zzbSyQtG)Qitg;_UYbBdj-;Zik?4`c55P>6nU%uw{C8YyqQfEz5ZN*B^^1OR~%ExhLK%i6!{7}h=1%)bN2B)R6%oXNOpaa9KOP{m&#q5 zd-Y^$kdTT94xIIaqU*H9^d}^@XY`FutC?0-(%}9M(Y7J5Pw`gGYt~)iw^X#|5+QIQ z$7)KEkD8#SOw7dncj3Xx3aryRRL~;?ms9G??-79hV`||g4Xwfu((m1ZL(gd;%#8@< zp+~c~!M)5%1ecJSx9Qt$niZfsa-n(jN1O@dn1XUG<}Pxzsg>Q|HC>M?}~y#xK%= zSbl?F+q@Aw9M#D>oplC*GZ}jdy4yR`58?RYPDlsgJ?qzk#{&O>J8aj#g8EaV)w?8iinRp)dTqrXj$mlFQjdm2cA+u%)-e5AmV z^RjLv+**em6{#V)~o7_ zw~{B~i=zJL%U;KNCBI;OHWlcmB}-fktJ(12z9$qLGvC)VPFd{CRs@4}`|QZudNaqC zMzCpxJriC2w>x4Ox^fE ztJ`jT3z;M@inQSI9^AB>d#>o>>+4zG4OO1BL?3wzKrV>BFJ#y@ikSkX7;mJI;srky zw2z$3s?4XxZDP}nue}6^U%a|~U3f^|5W9pM56_Z_Pp!^ME1docxn?HZW@)1>p=AYMP?G{<3lD&bh3oFWu?{xvxTC=gjU%lzR7|iHy^I9& zdhE@3;#*3Pfz}9lk&91dlayxOm96fiH*N3@Zl3bb5c_$Ztgt;YtYwG_QV5pRJQ@xo zc}D=yfl5{#BW_hwYr-P5dA__)A0Hb%9+_j!(ue9gfqQ z!n=uw8Uj*%(|7s)L#D{&fijUe=I@t*eibn*>hp&7kwV{H>o9!0y8P>9^B14Gzz6k_ zak5lHGrU(=DxwPcqOl4gcz_}e5b~kRf;yM4s9>4zv1IRfatgj2TDay7ctEer5^=#f{ zVdn@PDL5QCFUv;GEi44TlNdF5;yv5;^^fScMKWdn$a~0IoZ<9Uauv|z($DI8-8eL_ z3h6=_t+mp2J&pcr&h!Y_GNsZ2bMk4S5~vpAXFP=&c!NWXSJZUlD53hx)@SaDzduVq zXvntla($bjT~jRdXrC>*h{4*Au1I&T$UwUTgP|DU)M|KDLgafD$y?r-WoD^Y4pC{t z0fBfQ)Vg3=Y32I&Y}D%IIPx%xDor&EdZ(v%+PHA~~o+m9y8 znM2{nr5#1GMsFkMu1tE~^R|c8jSsbcW?#G;>Up$jtXr{37k3DycTO@okrx^WgL!P9 ziHHJk@KDuoC@)9bI$AP$Xi;7!jw-Cy|8LU$)6*p1%W74Kz1p|-WPrS2MN|8aq`Auy zoqRpn?x)RqC-gwFa3&wS{^qtf8J8^gL2)FjH#f!J!bid^Iuxk&usnuH1=SAspO}B zstZpDR@C>;Tyma&_oMgm-|GJ?cIe1`_2Jf$g-Z7tmfl{ykJZmy&ZnhXYxnz_UnMJZ zPb$a0>|C*Dw|Q-+^uMKQPb+r$SLK=3+>mr=)O^H#$s^pvV*!>~c zWWqk(j4jgq(hST&H-U|s<(n!``4rDqntnlPmDHxLO(!&Wo_04cb*;53m{X;jZ@#Rvon;;Sa2&;;47OU+ap2t(&{7e+*RRMF|Wf;?rfQbyzuY@sAh#o=pf%90Ab+` z%y!-lKH7q342<>4LE(%3%i~DCCKI=0$Xs&Yv7ULlcsG6U7K4P5wo>kgSZms4B{#=u zhvgeoiC;KB`?@PXCXd;Pj4A)iE@?O)Gr^6ug#9CZI#MRGrWzvyLpjtG2%cNz(MW}C zmwIIEVfpa$`jDI*VX2oZy6l$U4WjF@tmu*eE8BJbrfi_QO|Vgj{Ut~?x2k2eMe6UEL`yD+k^tt#sxm%z5*S-pZF9RJ<<-WFfIeb~) zyZqm8e&1=|H&;F1>M-{be=p*yep zp*tS~rFX{fugaP&eW$Vfo!op`U-ufmAI@K!*N3;8`e*yx$=%9tr6iw}GTU9>kIy~b z^M)AT_8C{39rrEmI2{J!+*@a3@~3x3jrHzV|WNz9>SJ{L|lTTOOt=~ABG%*ILUv*(ZgH2H%*VPr!U86Y-nl8=Lmdl?c?*^t+W>&%GZtjMmqDs#B}Ju@e_m$ zZjnb;1xfptA0PcG3;p4I=*UwFFe-^=8meW{d{x*z5$g^?`ca+-hs|XvmXS~>;5+q# z>Y70?mRg&5(jT^5~vnHl|*($hnG|P(MA>+?aizsUK}&M z&A)IM=~$KC!z}_e$bqlsDsh{&eEkDaXXywZH%A@ccM87ll>AfI%>%n6KJdBU%LB)u zXSYI^FL%YCyPK~Pyx+^I^0CvV_v^;5kGCw}E?3{4zF#k%F+I2r$LZfA(yynn`uOY2 z(|x7K)9_vM_wR}>?iTo&evta|J$B!cuao@W^B+2P7at=|^I*C7UzNef3WgaVk`?CZ z;qxA@w#R3_aXZ)Wm$}DC}X9mPxqCRj$fDXcF3JxZXa*upDm>W_pk8Rx%l|wXRn8Mb|a^G{rwIpL=6*QTeRcF zeeXQ6%E~$;*e2Kpyn|cBcm;3~gk19*8|fNps2T3*J_ou^Vgi z?jp9|3Op;+FoQWLq!q?QBmctzN7kVu$Z5@}7hl#G2AufM@Xn>Z_1&Klm!{RR$VY2u z{D5*U4U~om5!~(_lty+T5KE#}&IAxg<)RrATXywVmG9dRr7er$7X5BNUr(#^MAG24 zeG+B4X=>7Ld!u-v5nD_lh z=2;O>3O#LJxs21gpHa~@O9{gkzjEtmiz{>MBglv)7p6I$Ew>DX^W}U;sH}8eVjR{i zvU4@Z?~1JEAF3$f)Zj-*AXShiH?~{uD0d$n_xwSk5B3c1m8Zv_1EPS2WW5t3smYNeqlnXn}q)BHNtXd>lT-=vQuuws{#v#Fv zBEnfTQ3mVjKBf!H;W|bO%eBS|(|3qz5!QVeh9g-rDpqx|WL2fHV2KCA(c=3!(229m zh?H%ZqQ!u~=k@u!{W~H6}e|$pQF8^dgOP*cS4+d)SV%7 z_Bh@|EPU|roldfg3>3V*>&o_!9(|IJ?qjY3W4C#yimskWZMSOBp1oHRsFbR1Z-0Bc zzhO_^t4D(;_&k58uIlpoc_5N#?RHtdX4LTeaM4AOsJd_Kx940>3*0GL*Hj3`oVBbU z-R|zEj?lM0EHq1zeNw{E3P_2&OgV7cjYm5Lxamx_)^hgfg8^_5dsP8mdC?NCa1Q@^ zy&oUH&wctxzV}6c^IeX-cy4o_yaW(u^F{;H%pp)9-tss@b(;R(`ts9XD{cRL#6R9W z7P8QGTG{V!*vGk?H;he5>f^Y^c_L*Se1CI4tuu$vYm=F2-6?Yxk0GYfS!$UtI~a~; zoY7#XsYk*mXIuL`ZJXJfu<>FTPTs6_#wqfspX`L}KFYW$Q1nX6iuA*#`S6iqcVh9&em?#}5viou5>x`0hiB(cibh1@`TLo)7J z7s|*0l5qrfNQ1I%A+hR1XWw?Ar}fkJw|d@Y`X2mobc#(s6Av9Eb}fg}FC4JF6cDah zCjOynh&_^nuFUg0GXu=TUjmb|5lu0*CceI}H^qgRM>T&Dwk|_z^5c1=jU%yw(Na#Q z`<5v@a7+|&-pdsshS0%HacJU&iPU$1nOdAM!gTN~P>CaC zfQ_@!IdKm}L!8ZFhui6#K7>2{`?=xp_e5z!UtCTlu!^-r3n{9BiknKQL~C|$^r&sJ z_j>pQMN`Dk#G!bM8jooAS*EofvFCnq%s#RU8*JlT+_14{$W~&7NQ9omVK0I6pL_*Z zxX!=Q$ioTIX4KR#(%v#JIoli#W?R=6dUW5B2EpfO#<*NET!7QC>32VCpo8bU24q5uBXz|OVDf9@f3QpSb^Wtiz z4{flu>jY8IydN;E>KE|qa?3)3@!NJ`D)W|wB%_Sp)sXKex#0^$Dx)w&Vpj?v{B^)Hgy>NC3YtIX&ugjxVN(5W<-M9RBAmw1+2&TzY^1F%;xj@h5+h;6BB`gOgYLmkm5~4JchI_=57oOXxNs|-k7_&CScTup0SD@)ws64r z6Fn>Mz|a-%Hq#Zq5v0zY&nc=z=#_%i!42e5B$XzA972RXV-=6@pA(~UXZsh;sY)mA z+k#sYge?gsOrb`c5=*Hv`f&EpBaw^;aQwZ6u>*jdJ6K~Rkw~Pjl!#Nwo+_vC{rtAC zhh~b+FO-NQn>0ex zB1nRP5fv%30fSLAc7q_&c$o`onU4Ty3*OQr6+sZm_+qs_n>NEjbcdWBbm%|%l-xaQ#jWM2UnKhzU zaQF#}l`x`#Qs@*dw!ZD;Dk(rc7_wWPzYQ{5r1$(o>f?ajGlZG8B zyXbHwi>rc8Wab2lgL7MyIQzw)GFU}Qdj)4mX!`_bOt>;Hs#JSiDzW68KPT(hS7k=3 z57-LEN|NEnFWvMJO?++wuk=0r1i}Jxp5^lvtH5=e9lh^~NM)N-jEOV!tX~h({@{iyl*e>7uY3B)*DBJnm z4oKE0nW}5rY>3zcWh&2u{nNF;^GmJ>#hbrZB@stfr?5~LSt;FnfPOla_CE&5bkHEu zGSIV;svd*_cQI3!&$`l2{uQkt9JVZU@zwjLk*{EroxVLB@Tnv;!&wm=o{WHd zPt+(G)A0d!lP2ufcb`-WV-RtheOg`$VTAEYn)Q@)GOiZMmCXd6@Hm4ejyw|_5T5vR$4Eh zoloK+c<^liYWMM%73LTzw*!tf!63*jEWJg(Abp4QwNTA~3)Z8ZD|Ja66G^tjP%fN< z(Jyv;+*Xx0gd+th{3%}%N}o|EhI~<9jv4Moq`z|8*_x-w-3_zCGDVQpXLv7CIuD%@ zM_na2-iI)FHOuegRKt!k$PaT1{RB{@_Q#tQ=p0u&mZ?Fxs)z??LD@GlFRS_$-#%+g zWrN97RL@WXl?8h>w->APh~MiSVhyTg=7ZK82E+5-@+aw%K$573qxU}UH9dY`?(N%n z)ALbM<5YlbFRYECHEkIfb^;&1m<-Y}D_4PxH5>Mm&3=C$Zn8voj!Ta&P8`^00D2sW z)P;tV8K!`;2j@)7BlcvsAWBI^7gd!*4&_6IOU6I)T)aIO11r!_QLoUP6m{wd1N-V| zrN>9{s9*;{k;O4+LXjN+ew3rxk z9RT*E_CAeYG1UnR{~n(yW-JvPEasc24;5nPekxi#`u9XdHozG+i&wp_(+E$nEJ?{6RXL{CDcf1YB&o z17HaLBsD{CRWTbCLzYjnoVtPkHm+{zxh*P&LHBR~`qocHDzJXIG!=up#&5tal%zAQ zDK!IseOP#yHB(S9Tu_G$TjYE5=3`3#+-fxgfNdRI62^r1`hb7<9i3S%ibP!SPxCOj zGby9vEELR5|K$5`JInd$g0#XpT+SF*g`YvO;?`lEusAh;1Nw@3C)CegO$QRmg{wB; zu6}YY{Em52+v@;Q4lRxCHkI~PKSPt^(b>RN{h61Nhw#*AaI6Xi zn9Z+)KEfI?3yG&B%yA6P*N0g4*@x6d;`9GYw@ zBT}rYOxATxi6>OP%^ilYozA9V=I4xzM16_dU1c~@s1zb0v(hZU~ zTi%#vlD$eh^+^1;hJ*Vrg@oseTJwToTwclBLG2 zu~EY&Fo>VAR;xqD9r;H1E00LS5&Lf-C@^~4`^ZMWC-88;K4fR>^efj z2e_+Om#SH64%Iw$xe}!M(1p9R18bF>vp_rwKB{;KhxEjruvGNY-Gc0jSD-uLhNPI( zK@^KVXzHBl^l?fNr^Os}&tRr*y^W7KU|KL{lAS(WcbCe4;gC~}MsUi^j~XnyMCc6t z@QkI6G3B!(cki+zy?t_$b{T%Anx{tXhO}22{MlvshIA6?Z>fT@FdcPisq3f16#`%E z>`OyMS9Pp>8wK_NQ7PgkSd+`^0v4h5oeLLR%OHwrv*0fJD<`ybU1{P$NtB?q+BpcD z#1-mjfMq6fClqbk=s2?U2$vtCb#;%@sZN?&RCW)N^S=tYnJsv%^@GQY4;Y)Lr7~_v8gQU zU*v^6BL^{Ut)KD}=nf(@k2_%iH=E$BkcX{8e}bBG`dOv^1dSujB19Q!D2e(q%UX$g)+Jw2G6BR6AC}jh()p+EWZPN9?ii$!?+C=a9&eiL=cc?p(qL zFPg+Kiq5FgOQMiCFy^OvMx!ch^v!Qk_rm%~s2GwZ0zChV0gLQr!4;JyFyqMFn#xC} zsG-LXMG!(I?&$j=Js?wvL(vY?IWaHWTdb|sdnRI2A;4yxlP^1Lyh35T+q>{FE;z8$ zkI&Qi^5`4;5?#Mh1Fdg<(d{424yFO`J&zCK7zM9fvj=Xp?qyv1)x;jt0Q2*+nybfl z^ntx3Te3DB$h|~|v%p8NY%M1vZ1Kk#kA6}UiYwj7((J?vC8AuxIVoyU_-oY$2hZK@ zeJJch1TNYOTHRDL?9>V;X2^g$WX+r(c2KY$|3x#r2wlNw1Zn#IEMmqB16^E#QNF)(FdtJr^_~lr((TGw?Iz0knvx?I_w-m?!*{l z#Mw&NKS}^R|b)nWTWZxY4g4gXwW#MU?P^>u09@8)~4-^TmK$E-z0i@(2u9!WJi9MFNdR#JQ zc0&S7D_}6BV(p;cMGD3@w@pDq1_YFyhcCky&4vW0OqRDmz`r@&m|+mIfZjvfBRkwkB!r|N(JB+D?gD?)Wh8@9`DYFI_>n+Noao#&0|@q-YLmOHs}qd2 zX*j7#Oidaj3UaP9D{Co|s53QXWt!C7ya(4DY;4eF>5+483Y_UIQviWruK%*y7KkI! z5nXab9W;!3Xoef+qW@)xROEmdSqICm?Y%;cM3PgB%+D99iDj84;+tccAjZ|Oj3pQ_ zNL_4$ZWt#<2oG}7*$IgRvSz6;*F4ZN*P5h#`lDk~fo@~H{RH+>v$K-)2U2kaf%!GR zP#TG|=4{>`5lO<3B@kHBr^vW}E!t&QgdpqsFf>4x*#-S{|MsTFimt&A9EIhw?=YMFilFQ3vPCG$7+#Za>49rTymqLY+1*n zm*=@fSUVM^f@NqNqR@15f%$NQmP>@`fm~gJWKpX#XrQdS2yhe#4+vBda_!e2t_Hg( zI5!3Em=Uj9mi30<1)R8hdz5wK@G=r-y5zxuDBCNOnV^(_5Mp=Z&;vSSlbIMtIK346 zc)z^ZTW4;sOV=YXl5p(mAnb%O zgDP0ns1bP5N2g8#)+P34DZYhX*w^0y=n-vg&NWnRwAC zjKJPQt7~a==4cRjpYw)Y#E)K7dI%Zb&q88Z3o! z%R8$bw~vAAfMHoOR;Mx(121L2JD+FeqvQVGz1@9DE;5@?;l#4u)@Df1nCGV0o-(Cd zLTi3jBjr{TL@Nop0|topiC`-wygwJ7aBg+%g3PZuwaKtMWozVD=oa6SLEkW_L35M3S7qQs@pmT$XW;eVeE%^CzF zEN8RWXHV*;ip)VStV_r`W(p)76QZdleafa>Dx3?Xwmw_nbB}|}x)mIj58Mw2t32tJ z-?!u&=th7}jgvp17=VtXBkGQ6EsCi}nXbvRpmA_xsAo#Iu|5NdlX=V(Q3ZJtFXhh1 zoza^D;+_v1=W}c}8pgCUDA57`rv>)~Ykdx?^XBx@+qFrkDv(HNkb+oX1iU&9?RN~c zB6LV9nX3re0Kop9GpVG%=JLwPg$qz*YN@8Dbfp+JdO06zRl|X}!w9E2#RN1VbSjmX zvo*yOG%oQWr#n6|C|BN)Y5_VES;T`-Zw6DB5_4mtOn-lEY~RrN9a^(9m#gp{!!B6}RU=jb#jJl-ZC2 z9++akqCYSfU+ZX8RZav{C@xf$8q*P zOBDLfq#8kh(wuI6-A-2?e6dew0BL{j4|`e0cRs?NGdUmox9kE>EtF>$8R?w{g5PGH zHb?A2qyR17%ynD+oyVpcHQM~0)1?4UxzXb2kjXc~l>|K9azvPk=~IB_63_R=bYF1M zJ-Nh=rI6kh7vYlEPj4Vy zl=v_<%_eNgQEW|2-$&PR!B2)Qn_}Ft6+_5Bl7>&&BnOAyB7YXkx}lVCONh3Jw%l*o z00pm!2#L#MkjjXd$F)~$?4^b9q+4az;;)H+no@yUs5U*~%wFa4nG)hhAfOM# zY=&@uW{s%ras*?|PY}Ct~IebusuwlOl1MH_!9@B#pUx0V2&E((* zZ^ZCKdh4S)H$b94-+l^CR{YF&Y4Zl925}>CWQkp(|~ykgs8o&O%V*uRGs z5=k6*X#-Ihv^clL0(dJsfuVBT$eYSQdI{7!8!*i-rA?Xw_h6>z$uusE)>bf8n^Alf3kT2?(V>x`YfENs;Qi%IW-`5+S*=Mb=`(f zBs#Xc`Ih64?oKtiSj?-a+BUZud?@iWi2EdB{`+z1NhGnPf&8kCJcGr-L;j>hqT-}< zfN(NHgH)EM!2lJ_w^0CU@WtYBg=j2KS#DaY_HFX*QP`K z(U&dhRb3?Hro#^lYWnA|csIVm+A}`^YOCi{<--oy+AC$-&M#-g&M}h&W=yCcnD9dh z!S9&8%S{}6yED5n^Pe>A20s9-s&Mg@uk~7msLnBs0JxB*BHgh|piC7|_bd$$%~uqZ z{m(q^V@6B-QEX^;TVwh_BikyM(_h^3cpgZEE z#rz|6%iwqTc|Rh5IDX56du3AGMNEGfO(*;yHF%NKeC0a#JAxQUEM6TmJhMbhUius_ zN->U7w{9ys!BtF-nOT~;k-$;mapzQW%+eUl(uleg%^|48{u_X%lM~Q~8^9?LxX$Ut z5a72=d1va1$y6jPTi;)w`q@!r8*ax$tkKEok^OPu$HSAzM+tgO>j6)aK+KlKd&tBd9_x}YOZ!!Whqf>ixb$P$Cf*C(S93E&Mrhu;xniuO+19i3=_8+h}iy z=rO9~^V~NdcK_(q@s*Qk@IQZA3@MUo(D%Jf9p$HxKQe3N&ism7t4of|qj0_`Zp+Fh z5hV=@=<^C+B+tsoN2<)#P|yli3}1{a{L|=>N0r-Q-$Yh_Z$w=0>2^q#pz-NK+r*(& znxcSH%?2VDUij#1PFTHIICwS`2kx)Qp)V!sADp^tEP}u%mjtdUbfuSUvKm3yOrx4uD9$GhwBf-TsrIG~GKFP`P zjyDdR&y~y5Ni0|PMsXKfH*(J)p4okS2sqh9OVVLs30TCDn$evW*~ z!tJ^J)V;jl`xpC!+qkd$bIa5DD>=TL3I00&cS`b(Wh@b%q&FxI=C=Of0Z7Q=z{gLavbWYGwLv? z1L1foAv+?RZT+AnLu#@6^1i`T7VZa+q&dm@>ODcf5PtjIP3`pLvQ0MlEK}KUh-2}S z9Eci!FrsWwj}pYTn9X5%mMh#rSP{B?Frq%#319v`So;9Cc)7SaK5xwJI^cK%aJun2 zI9GvSsxTs456oWW(gEF2O`@CMnVV!cfE|)F@x9<^eBeIZU~bTaVIV?vRVVJLz-W+B zJ2tc+Vhn9TBFId05d@)-kef3Rg*O>Yw0A}or}?~Vdp zO5d}p__3%-&o%&*aFSY7Km!VSW`5q1X`M6W6t{tS9}A+5h-|VF2rlZU?&9FOVp>#< z)Tqcr#i%Je!MDpVzqDR_gpP#nt0!bIDj!PJE*bPm7|F^@wPug&RMA>rPfEG|$R}bJ zY7jFkr4~+1IC}U-B?HOlHV~||s(?A;I%Sa*VM$xX3gUtZrj9!ErWqN;vp(%ipW3gE z31`OdcklJy>5kKnFWVu`^9__cZ8Q>YSO*^U^0#XBPaJ-Ws;PUiiP^0JcRVcqk?c`_7i@NKy$4-kS%$#uds5&1>MTezNiVn!0;mHX zk^ly=iEAwkN~yHg^C?x}&p}OgvbN(R*5+c=o4Wne*9(ha8E{ENq+T^*XYUy(a@g{H zp@o3eV#)ZOc@;1W^ipa`po#X73VvBRgWEe6X*a{CN&rLeO*@$!^iw|-`Ht@*0QEoY)k%-zpU1=xV0n5vG z-rlrEknnWdyX(wG3d;O<&}=)$rV^-UTz0Fp)mEF3A*iu~LMPQAEH<8h zwD||F1|K(*f#*>I?}=;djuxOhx?xKSWkpp-RLAb?IsiP?N3AH9^8-9f{gzA>uT>#E zCU4!k7Zt8mqbDWM7v8yJG8~E32+E!}+Yn`=IxCt`$!?Gz^^$D|AzY(8)&C>(SSOld zM_A@VR{d1_=$&|eQ0&{~bY_G$n5T%c-3#BJR7`QJs3N= z&;<{iOFfE73a@pAG-!CiX6cu>SIEyZ*r~+Nd7$q|*vCItYMi0(vPm}=;C436(MO*v zc8mq9Bi!->DE>ZcHj9-CB8i%b@-|a#gVo>>=aoY5IzWvo_wOg7#I4b}RpK-SjliPr z_)m5FY;y+9ZKPdySSjE7JVR9PzfVn4nG9q_UUx{3lw7Y%{D!j#zwV$0S0J>x^?5&i z*MoSS$^zpC4de-7Nx!J3NR@xYpQb-NVSHoT`@El5*2d4(KN5Y&8^3je%nO@c!nH}u zi-mf-ozqkT@|xlHX{EVu`aSoGXZLjA_RHGZCXrJ2$CXDQSs*&LOP;1b&`Q<>z@zEe z1)E*kH~EzoTu+nTbMOUNm2ZwD;Nv7sd4*vFun~ET`z}&kW{N7{L)fXTj^d`w4wFY< zKGg;rv`$)Z+g0WZ7OS*n)I~5xz#UyWuZGBpt=DmP|{M9?cz4}V^PdZd_?+E0Lfq0TU z49WFpCg~2)NMextN%dM`=~k%q|8g`)L%-BGexYvR_;+XfDNLYxeYs5W$p4x(o4~Y@WH%*RCw!t!L+xqh1>El(yKpVe7?wx3!WI~pg<=NQDNQe&T z)e^CV(;MyQLP8Q|*8gx5!euz5r1;VQ!lqt5H%lR|Oss-AuaXdv(SZi`(aeRopJTtQ zL0z~=$4tQtuLy>!2nC3i-0gYp%O_!6ZhI_oMGc87j(EFD|t&#+t& zuL=c%y6`XTn=~W513X-QtlKn^JM*vYoAe{7J9a|91d##aPdkPPLB7b)?FKv*E;Hu- z3}i9qOz4X5acHs@x00~^91HnkwcbnuYe$+cY$OfGhJY%1=y0bXQR`0G{10YH$6PW~ zshxdX%%wQ9`BA`ROJl@)BbMHa`iho-?!a;-ddEYQ8d$DJ=F&RqW$jGgotGYmmhK;W zn2EWGk6h5y0SQiobM}xMZX(RjVGj9p`ZSEa-UNHQ9j{ziC3-y8iNUFR`8#ryOe+lF z)O^qKW!LD$!hb*7@X0W#d!^AYHs71nJTcH%c~Ri=Z_mai?EEc+6{EZ~5>rnB6)lUO zOvX4R({?Cs0=E)f*-F0Jb^3H{U*N4i_GM|a&Q2a;mrnPd%xHrR+V4VGVNqoga&kY4 z>Ym#PO-$i$u4ChaFfw^PK9F&6tB?|-3LC&tgsDvBjIdAQ%%;{mRPf%faRtk#^W*c= z-EQ+xJak8Zn3$Dw8gluK^1LhHxtBX%BAP60fLLX@E8F0nT&W7gQVw^=KH447JAGy z`EBDhiwGqL3cs|3OK3R^4Kjb_n#!Izuh9A6G?G@S6wWac|M^_}3#LGC{m&dOTOfIn z_>JYde!pOLfuCOLpzRcCDipODOuHUwvn$(VHJ8-FWAMK}mfuo49*IGQX@F{GTp)Xp z^-m&St*Bu_#28y(&*63`LK4XZkSqo@uLHowUrkD~Z;vAjyAU*^pvC@zjHJgwi#-)x zDCJD4Yjy9!z4aVX*mNcD-0DdhxwGcaU)akpGJ)1TLKtBW{>Ktji~AhtBW|fN9NmCG zF`V7TR$V?Ph$HMyXTiAJVDqyj8FRz`ego5Dm_n|aS#m7QxYxF$Q-)gYNQoBhsm&fK z8n~_~Y|HvlY!`1dORx{woRo+X={usJyauaZfD*ZtjgR>2pl^LiO>*@TJu+l@B)Y#r ziAIYglWMgYYTUL>gQb(nHYqXLXqISRC7lh>?^T@!OOKfELOMbedc`NcjIYyykR`QH z(dPw}q7^p$OkSy%io3;XP)bF=;0;*H>?vjvsJ`2Ob2r(slCH{sQxtteiD@2G!BV4! z?gs7xjy_!zR0XhOdj_G{K$j9jCoS)9$wLx0V8=D}G5m&fgg)qxBsli^W2r2D|6Wf{ zzdDRG6%`*JlH*v;KgtGf?tUCfl4=p6*Rw6QC2M(F4QBO?)qzI4E_=X3MH)?m(@T-L zl*A}$z_-k*5+ByPFX@hzVpadR5?h{$+5HL)!nw)Bl~1?{Jpq&qLVH z#-!>`bl;YuRkSTCbE@En3U*N)3qgWVBGGoqpj)b$5cE(YLsCbhr4W>8JX7Z;pYMVc zaKmVWhX$1T_ngT z?R#ZK*~MHlppLLl1cb)ekw=JD)>&2_*sq1ks;Zl=m)-MOdpJm-SBQ$&t3--*Rc9_1 zh(8gdAPnliqfw&s_Ipq~7F;g;7`-Wr3?=G98#$~_AGJ^%Z4@@DDk%zW zm2AA3HtHhfmsl)KGE{G#;>Hd#?y*f;>baG56M*v#2XjTjUwe-yK)a= z=|T8;4b*EA1rM@SZlW!eTek3O_tY%*2C)yJ6SYHb_z0dD(e7u`Z7{$9Fe(Q*X-^Fr zUb_QWqOs`?ec!FojLbe-Qo&kzVWbCZvm}g45!VTnfj*(u2cDFNPQ3h%(&K1rGQK^> zESItAAJ_Qc`EiX`k2;(MvYW{tt@t5L`I=Es9-m3Ki62)B72PG}%qhphYo~2hcXV1h ztX=Ky9wYbB_toRZ)g(|bMS40AbDD&ETFw=(v-86-E+LD&W)M^e^ro4${PslM7O#`< zBOoRrgFKr+evbvoo1;fn9Scz`LC9qC;fKu?oDajv}(auEBz>i6f@XxTBcyC=hKGZJq76 zsg_PeXD!?%btHZ!oep5wF1H^MEK)X#t^ka#mSW$Y1ZJ~bQ!>a}Xww1uiL>h3V{$=3 zoM?VKQ1>y^{F|iN#=iJTd2eI;h6{ac{cIL5UDMS`gV(T14zt()iJGrBlLKWwwiuxC z-nz0W&^Jv~mr#x?h4g-u@N~eV)nLb2ORB>HMZ0seHVb#|2ExDN$&p}~cJNAcYjQs| z9@^wO;YxI#Znh#-@!)prVt+;DYveD3G^E=s;;k!8)PLGcOr^+8wEl`l$|#$*$2rb6 z{u*@KmTI%$-m}@?Y@yoro)&_B)y9QA8=#MqQuy{2^l=~C>~EA*&_}5Gcg;iK!S$UlF3jR739PPLJIx}0jrzA?|_0xNkjTTYfD!G82=;W5A@rCC_Ht!kyYPs}c`t!60erF=t}Z{y*uzzCq1P_>Vib={WUaAl z+{kUOpoo{Qkumq<=a?U}H16bYuj^KM6|zUVOos=8o=?40K^t#k|52>+3Y4utsCwrP z$*9<*h@jSZ-h4%jj_O=f6V#EfzxspS=hN37X`)QJu4cW>UFCHtCZqp97<-;!>h-b|;bAd|!>Mf7U$w{%@jO&`(#*e?61%dBIOtZ4D}5$_56izdy+*!h>&@aMwm1~iJ>P6){FcbzgBmYKw7UY|;^D<7I|)Js+d+i+U-R~78qi7LIaY%vdY zOMu5BU+9ztZoqe70tWs-q~>JqkX+p@{>VnMNq==%^~-Cwtt46WwoO&X>#r_i+x50N z@gj~6)tvzr^Z&$o#0cOIF48q=%aG-e&5 z^B9%0AF8`CG1t1#hu<`cYHyll9_k})tTtovM@mKHFc9)b-i<X4b>7Xz!La|Thhkp_FLrU&E7dRa z3QGrpQ1LAgDlQ+>CIpcy51f6L9pV^vON!VcFzpo{ZZ;askGw_0HgV>|MCE;HLmbRc z{#vBTdSIhdjlH@W8#hPjcc|5(=^S=;O){TvqZWC>SWUpmU54GsBSyA5c4(`mh0C2& zF6y>8jC_=-9Em+zEZJ0LTI;JEdGbAq;ImWzuQuyxnMgJ z;R4uJdt~FlTfO@M5_3H?`04|VesY$UJ3IWLl)9h5==d75jrsw{a%a1usX2q-tHP(V zp2qkQ#_$;Wcuj|ekG+gPCwH}b?mv3quRL`mC`E?lhr;ejUCUeXYKKY6{c0((gy%Pq zjKH=u*aOXWeJ?&s>|`l6bF%uh0c$K%KqIT00@T6uU!m=w2JEwzj@a&F1?b}}!Ku#iZ^*j_V zj=X+EcTg}Zlbw9JvPj?Qy>dgv=R+Y z&`dr)u_ebetfc2Gl&RyBcxZKAycDZBYM8qaCZhPk`JdQXz2Xz86FF_#RQ|$K^$mo5YFZaoqo@^W!_xbB^k-8Lp zIe-Bcf_2MDJ~j!xZE6tdSBdHEt8kjGH>xQr-g7Ccb%Hj`|1CY*k-9gXFtvb26n)8M zE9}gAZoCq6B=6MIR(El6c6%=G!{uox)^usjMBqwMmb)1$J#tHN@BYdHW1fzIKP7ApX)$KMpjvq@(sr!u!qg-F7G%^E&uY4d}S=70;K z|H11bTFPVB2aioQdRKqgq3A@9PD|W+#7j?Pp1tCCZwLO%{PyuMEm3>pFjfRXzqi86 zEUCw&OrFo-sNCe-C?vWo7VV=s!n$d?w>w8&j3V{Rypa(cQ}7Qsuqgy-ScT^tKbjRLV(^5+m$p&jOiCt+9FyW0F0KPtF3bV8z6VtA34 z+oA&?5LeW|s^J6;{x}c0XO=YTStsTq_GbeW%X;jz^R$ z)2bxG&J=^fUbuTn0Arnd>SomziG*Um>^VWQU01~i9&28{?3n^NbYg(L`RR(+T@Uoc zz_872*AjxgfElO@j8y)xSpx?2I!SNPt6tajss0iI0B(F`FlHKl>n#BZ|5$z__>c{bI%%AcDC_h z&5ejYSSoB7BcQVzQ1Y)BYHm0rVG$Jc!JGHl1%WC_$t{2>+Ol_#{R;?_6d)Qaem#5@ zMvKk$H8)K=MJ{b`ykZMic}{Gap}g#@s1Y&zcD0bN*A|L;*1&LHc87iNdigzTZo6Mt zna`KGaeh7gxi^*#zlt#c)5-)&=vT%Pfu*5DzVhc0VUDIL;V z_tI)tsQhB$5%+3T;d_dqxIvYXKEk8K^I?&s$Vu40RUkcKD8aB|oTaiTxHkt%frrBFH#_53_ zEJ1(uaZ=jMAR`5$iS3E-Ay zuS|nsQ0HDaJrnd~M~h=Wf9)rU-th4FkhCF|lfo>>Pk{ zL)^UakWyZ4mxP2#_Vewq0jOEoXAn(u_(tcP05;l*u?rAW8C`Z|_uR4*d$54RD{SEA zxCHD)y2s;$e}sv2jyr2y*PO4-H}A*Wom4Qqw-SCcB`0U&U%yvjiyUlFcs94ceN>ezc8_t~w^om{tMs!Ayamng<)pmvK9THss*y z#4k-Q+!;kZHnp|^p{(DC1sj!4uf^rKOFPWMAm?OKnEUCH=YNtWR-iv= z4zOtLEfTe<&y{=DerMKsXOKxe!kk(0_IP#Z#?94a>Px?IAQJZMDXUgG- zh(25E7`#~RdvKT`J(!C=QZ$Apo+dPX}EjTPoea&=v>!OxB{~-^p|-X zs8``%utvCQekM61Cw4eB?BK@?&Q`o`Vt?qFIBjn$>5p2HK`Yz?!&6fNW`eu}Jk0vD z|1H}{0g_j$Kx2zOYX3ucfmxm#6-82U9U?|uE~QH4KT)DAcnx`_cdvNOyW=o;jcG01 zi2vX?|Bbc(P)%xt|vyWc6oL<}%RJOaZPuMk6QKJY{T#$za>+GHCyS z8ju=pswL?=Qqe$H*np~M+RsIH3Y)(ioiX(;AT?m^^NeJSIQE~mbxOq+UpXaicorE8 zhdqOow;fBI3<#7`#)g6xc)AIchTcf`t_X@3O-*|{VW8hn&~zU@iT=v3H&Ns72$HU= zY|3DOtcK|nPHegVa7)J$7>5k!wRsZ8fnSm}%eeYPNK?G+Ein|HmKcOAGO>F;ocUXz zE;&+z+-s+0@>{}mvM>jr&nTz zFmc&!Fizs7Z39>$^|e&V`R?<1o`Dg_fb`Ez2{26dWnsE8#;vpyA0({7P&#zTme85f z&?f0F6E_K;z+AQ1lP)$fo)--gGodqAG*V)>hpG z@q6MJy=Kj0fVbe#OjiH3mXUnKDLy-18Qsq(x}sWwE(9|c{kD;SNOBUk+0eP=N}#mp z0Zpmc=ITSM>-*a$^)BhwUC&25;kH$CdBsA(Y@7#7JFE(lScLjXOD!yWC{SN0eo_w; z39=-TH;NB}y3Gej%@seSFW_N!2 zgH_;iB~+NrzdPP<*C;5Kb~V^W3n%0`?C8|RUn#2VqH=bCf`G+BL?J4U!~*&1V458` zibj8#Rj!As!-Xx3NH38YU+)wV%bj#$lo@Yxj!N2H_bH560^;R7kx(&2e6s^lT>sDy zR-PPTE3M-?N8DpU(itJ4%?F05Z}F8H9omFD`1Jp!AT(rz{{{m7HwjV3xd*_vgs<@J z#!T}od`mInC~1Q4KcYIwGZ|PoGO^}Uac;A|A8@*$g%GCOjwc9S1;Zhnw{d!Qo^whDo#O?(U`%3Y)5*nHsm z(n&`IEBfsiL(q(Br3vzJtruvAe2~NuEKVvs4p+t~TvpWw8LfM5e=*h*RmiQS6 z<|g0|23u1H&9c&V@~?Z1M&_-AJtCZpa)wH+&h(9LVx!^~TDlIix{raiu=fAWH zyH?iw4w$Y~+e^=BT6py2qffq6J#NL$E0)*mOsAdB1&2YZ9`cx@d;#F2uR8BXngdGU z4(@A;PTeJF?5H=+B!C$zc9_FARU15P)6!M6b4Wl574r7V6_j?UW!Z%SU-jpn-6|Kt ziShfZr21}Gb_YnRBUp=N^R375!&il@$8Cr87Y*(o=E6~9JJD9}@)vhs8nM`!=6B$n zob2WM+s8n(naz*Bj1ZX2%io+7r-z+YlX{3QC5ag;cx`f=`GzyN?pARLw3dUu$^S=6 zt=L#TjDz(H;gw%e)|(@jN_Y`=7tbeIg_R;Nf!&$Mx8>=99Aa(0`kTQgvq+hL58cK<=iVICwT^(i}QEPFPAV`N0uoeG2=> zUB&WpsbO&slr=F)m1w0;b@h%Y0Wwbj#zq?xO9ijSi5M=PVW)(fy1k*FK7TbQ> z7ua&h2%SXWnhm0)3*?o#!4phmN0#1inhzdqW=GDVbSy-adJm(JY1)nn=0r>&trrJ^vKoZ^t((#@L|doGzgBLroStGSNGg+2W15v8H9#4u)evaI=hX;-*vCXtC@~ z3o@c*4!{rE;D^gl{kEE$E|kYUZ|GrMD9)4EHF4dw!T*-D5M&!&XFglpyHRc~BWbg? zW0Da{#Z{?@CR4^LpGUP0&!LPZ6Jil33PXz4l*orHGb@<`n=vn#5v*Ejo@^w4&&uhI zMD;U4unTj+23?ammrX?Mp0$O6=Vt=%^RD1u6W)>ig6mlQ zGA<$O8293X|1D0c{tBY z$4sUDIe~4hd)At$nEM|1pf0}W8;ep@+XlUOKIB=zwq0rRthoig$Ja9BBYMv|5+Rdn zskN&1cswUhti9h)=7V1-2Q}I)Pn?^}0&oU=p>$lDL|^aYB#02YKzVWy6(@>i!e?25 zQZCema{UC9pAtU+XBL-PR~^RQpPTLki|4@7jrEw$rRZF~Uf9JB`1mt2jSv1flgv>r zeJI5KTup(d%2jV=88GHQ%MWIm6|;kGfTOm4MjcgRANU9x30bPtmbiAw39p_%Ed9Ey zmCAvQ$eRJ|chqm6fwO99a5=$?J$JPtY?kXkgi1rDYx7>WSuz*w z7TneR7zH2Dg?Q;x^-<6$VZ8=w&ui<8zu(mK%}4mzmT=Lg(K;Kt9x%~mrvrISwd@KD zEm{5EqU!c*T8yF%T@9G|^^>}4Wo%51mZ_000g%RXi0NV8(-)x!sjzDT_~TcJ-M};r z*vO_-sEuErPM44`JDDSO5HFunLK$pGrvLJY`uHhp#Fw2LA@V?YVDEtrIg&k405tJ$ z?+0{&X`ZU{Tv&!3829~vhn{!{uieL*+#`wypFud?Cf<8Pyf- z{_=SFb76Ql)#IHFI@|vb8O@she`NGJ4Td;}sG=x85sJma0Idb125#`!jj>Y6;xvcI zajIa}$kIDy9vHh=XQH`0guai0e_UMayU@Uq>=f>>P|w9Mw#YTOj|~IoOw<@0)M>3W z4}E`{M7r^6>2dC(!|0b87>WnmMx8}79YRTl?QO{$GQ`xtm@taVVN8jMAk%ENXO#eF z27kb*TEp4_+3`Q-W-VZDdLZvPilDx)?Sx##e=8cdA1n{&uQnLrHCF;U@)DmR6Hf@X zPd3wC9aVFwuV{ry-*UdE((Oe4zD%b#g*&@4ecq(X1%p@}BRD178~TlR{;$9u{YPLA z`#>qqb)um}#(c@PUWq5dKs?{wI@`{>cf1^kvR+^&mw@@qVJvh&M*4Qi{v#=C6W~Z? zW+U~pASUMHBV5_JY2w2`bE>Ov3Ar#cl;#&DQJS&s zI5rk@r>7ug%tMxmNvXL%7RkirYE`@b$~Xq{BAUyr;mSdZpX=PJ7SooTb3)@q9Sg># z9k|R=h# zlwx62c|k5(k*35mUt?e#bh_fdSXTLn@eH^-sJhuA@p~R-eq<;kcj7M!L z8B9j)+%{$Y?b3REtXZO+2K& zgXj-BiBY9qXTk=sbGq>IcZu zT+RYt{hWaWWv_nDz#HgZR*3z_aGXr8#s*t`=?#ZN*jrjGsl(78v;>W|{_Qx@0mGjy zS3l-IoZ%%K8uQaAX^YpjBQOKlk-5031_DKYHzT`-C#^yL$240Tli)h zZD_&BZWpc?op`g+Zr$S6KLVS7?Y!cB5gP9ju2z;!D=!P0EO7asw6At8iuL{iDGK|$Z z>$z%MZ<1hdyTD!);YhQnI238XEF`nq<`e12CotXy)2vidt-a9JERzfjT4K z>O2GvCdex#GSuB7c}6ZfV@Dy+G&&3tCk}I?|GW+RO$VRr2nE*6-2E41on3cg{|IC& zgb~Pr4lbD@fYDIsJFJLt&a4gM(23rsus-C=Hc6E@szJV)Lq*?En#B-jCjt5df>lCg zPwp-w#uez_lTg0W$3tR?hzZx`xuTHU$xDPFbV23IK~$ZY&vbjF6bZpdL7=RW z&Iw{#l+9W9p5(!P2%GY~=fb?4rsT~d($SZK^`3^Co!XEbl_#>#FJ3hZdm=>86}WO0 zlJX>lcceTfWV8ef#IgNDE+Cs$_hTz}tx*FmN(znfJOv!^gWT9V<3LH!N{XA;CEEpP zC^9PKg995C3c)oL#;M4marP{2kcU*JDcR*_2@Cc^^e3i!t+=GXX)1hLf)!~xut{~t zS8G>b9$7UbJ|;xKSH;U75A@!p9Xao_PP9|&D$0VA>T;r$ZhJT?%o3IrlLN_`3il)m zlw_t@zkkcwPLu`rI^{=6d9RD}w>=nU&Wj4RTQ%YxBT{ZGemMq7scmscQgOd4=j~$V zXmMtHkFGh2oV_K5x21u@;hq{J^S80Y)IC0!mLrnjw;V^yrIUR}PJeim>5cVXZhmKj zv%gw%x@GOQl3ZAuPBd(X>wC%!AgpT`~Ju{-hXov zh3&{J7kT94$=&l?1`qGyaQ{v9J7lJ&FUPDnUfk3~EvY_DMFF9ci`mO-`PB6pq_;3flRm;zVV9H$As zn}srWybPpY|IYU%iaql?{dFn~$@L_J#@%4_kZ!zmiX>|3(7~S36X`D!DKH*sB$5;l z$qMdC)*{!}h3z>B8=MF+9q=2G?wD;e#v& zC1`j8lxyw+3fALedOXU0ESK(_`V2hEBcthdC3_s?tPM4{?!4C)?TxdkJK}H7&eseD z6iG3YiB>Izr2EYm{J&+Tb{X)K8(4M{6v)18+rtUE^tl-V53ecpB?32@Ln~Ypb$K@` zAx`%}J!;J1d7zXKWRVFZm$K4kO;B5CxhzJZYZv-`9LsS=XH#LBoN`Vm9{)j$!Zgb2 z-ZP$mCDA}PN}-SqE0IZZ4|O@-9BrED>;?;MpN_rcWtQmN8cC61e2q9;DLqQ%k$j6w zbJm}l2M43m(ct2SHt%^!lTp}?a;b~WeqvSrHi$YB-i3?9*&;HqQXJmKt?e-I@(O8f zVw+COtUe&5ms*Wof*S8TH3Ocs;pWhXJUci8DVg)-7I62&!HJoXMfJG2ocGHrgKC+-_JO6&I&v%cvAwkAXJp20!_Cn&w1SH+o-=qb0}!1p3!f! zt!LohL5s_){4(Jbi`Id~uc)KL`t&16<^A#1z9va()ywIv{iCEJtLXvZ{w97Uu1t*u zQN;S_ILt~PEY8wehP9FwsSB}b(9bGywr+5TOc~$|%vC;y77tej%an5+r|9NYc9rM|CtzyB_F#(5s~VK%GDgZA7bmonG)WpW`%mv z`F<|1Y_42lrR{UK$Y&K!h|HeND~pu1+47kom2x?lD*FBPpB@W%2p2*leT`%9i3q-3 z2n~ySp{xyy1fhsKH135&MNoC3)fCHA{~SlE`WBQy#0RTZ{ln^)B9*olqH(~{tbw!* z=P|nP^|v*QO;;8t{`LjIlnV1yUsw1-hh&119|MO_u(Q5CmX8Pp^Q^fnyy-A!vO#|+ zK(7h&&}YSDh3&CrLFRPlGH|lMzE0YDteqGpp8!Wfy4lHf#%_Q86Aj5rN${LImE>*~ z_~kSP!zk!@=7&n1UOM3X@C;TpP>@`NA9#_;3tULLMIUls7<^eRB7e5?_jh`>E7h;R z?S8uSBajx$_?j16FwwVO`_xk{3D5$5bbiVxtw{`(l5ZOaS5A+Z(BzShTF_4Kf32uYU2@vp)?C`p|}3 zJ`r|H2Y<%&ezTfl;6+kU=+TaX5aEmf|Fe8j4!X=TDoPhiqyZwzb7-hJ)M7(`g}Y}M z=j~S<$<8c!`%{obxMt0FZ0Qr3qiOokAd~Yq8GlGT`~l5u8$wm`{Eb+t`1^HEJn;FO z3iYzslUyi@NvK{L_V()CkXAQGAadSPV-xZo*fa+RG39-sxb*^k<-An{ zo-v#AHX(-#xDSU9-*Ff|jynH>Lg}(6pJn27kGCne#%Y3ldfr$^>Hjp|=5c zKQ`ebfR4g`w}6^Ey+m<1g<(qaVNE=J~^jD?;9v?r3Zl#BLcb6P@1RryxIEb*v7 zi?#XW$<LtB1nOyyO29R<0;b`Dk+>J zS*Y&@@kf6rGB{~E%y1!5ll1h|pR zWd;)74#8WM#lrFi=vh_dLN==HpB+$r{Za$f*;H4Bq8*D^cBL%%VjWL!fJ+T9-I}nq zG9cwk+n@4a*kPEVD(6}OdmB~4-@R?9QY{U7^nrEYDp3-?r?$e3!wG?d02hF_mTDyglUmbLHX$0hd!87$nwtoML~<)~>a( z%n6hTDw4531*?Di`k&Q^%}^@CLUipPRJ|I0iHM?WoIwu+pk7y_)&E_M%l}!8F3i?^ z1A0>7erITY45ZHhqPh8sXoiEP_X6@Clgwv*?N1vukhJViIaoyqIE#^K|5=S#|9ds! z{?4F%l~4ie>u$+#>gg^hK^m#NJ&Z)7P|$B%QsC4DWrobP#ov>79U!l-({U{GzeVv) zwRIKVHm!gO?&iE5i>5*Y_KUOP$mS|WwD()D#|Q$)#BSPb9tC&`TGNW_D)4?rr^qSv zUvQ0AVzh@(hlkB6HtC$qqICeXw6(rob%eF4af zou6IRZ@&Z#E6&BS_tP~mkd7=3&!h6%q zoopO5UIm%6dMaorCLkYx>@^=i!toRl616&(fZ12D=O21F*zd<1cXyNDZ;ue4b&S8! z&NcPj`}Tk~*c{0#nfBZSyD>f^5_~=EXCg6p;t9RlpiC`&rh@@E;&^-NaywJ7fP;_Z z|%pQq@=CHpmEdf3Lor(SyZwCiDoL|axbw4V=*tAEMj zZa88A@F_y;%&FiiH@ts`SH79 zi8crw7pMEiKOulGO8d%7s&R3Gt8>EBtS2*au3btjbL|bpV&+;g1N&qwXJ@(+82?Z= z)COzN!kZ71K=-5#QT>JtgthSb8tZTk-~yvAv1(2}57iD8>92wueq!<;YS*0X$PNIp z^k4LxLazl6P&nU>e$lmC`DUEx_0bjF zlr9o`sx}Sg=9;3;eIO10qII>SiaNr0YhU1beAidKtOn$?n&?0pape>%Mc#B+u(Y&D z@4y7f_FaB?p^DKus7E)txd}bbkO5C?2^WZty@XQwpfCFTuV(fa#l?S06mViLaeVTS z9&^nit|kR{CU2&m9ZZ?QuUbmH@$-zj^2AHS&^B zEV|SooZ-%6EhH#=x4BqIfK{c^w}V@g^9biu`N6 z`*wZ*H(dJ$q}NPZ&60)K<5ol_*j2FRDm-%YRmaiRG2 zx7^G|w{#)MWpqqGARW;aK_!Qo=Dt)(a)R3BZ9muPNgDg@kNDEWKdB)wie49xg=543 zDIRB}b#|ubX_q_P{O!G+sit{WEB}^ZgT8s5{L1n%S`v(UqkHb<^$JL084_W}&*o!M zJXDK~uFo3(gt3l+7=2z*y4Fhes#@5T2X6L0q%KBn93$VsQXEI|CWb9**jXf(NSKx@lms(?E=5g zbMXd+Xh0$Ve=v;=Gk}5z0u(&Ku5MdlT^x)LabQi)uC2dA0%^$=*nL?Q=FL>IQ$zv+ zIb34$n+U~$1HJX=WaZP0|Bgz_yA5DeKK}@$U_OfMl$&Y7TE9WL*KK+CYif=J;fjw( zNNNE^snllh>hqVbU0dku3$l@V!yE|@NN)ggJgsxoZHzKU z;XsrM0*I5`G09Qh0lQt~s2`*^afzv^8D+xbYa+!tv6x)j%&uS<_gf`l?>*Ij!AGr$ zSA=2Lw!v!}s86BLwD{)VQP_ALh2PPWsND3BMUJ0NZ&U}h{K153a&M8+|UD0NE86Z13KOx4Efseap|uef1BO< z+VQ74MY{yLv~@D6Hd^m|!ExYpf_R@~%7Dp!ANG)x4x(b^m9Ix$NIp})-yT=cqn=Yl zy3v3nD@ewY(;ZjJgD;*C_ZN&F$_B1eV~$JESNw|B6|MRCGdODpUaMzdB7l`P#oK$k zN=$qISq!(i$j}eIufc2St=WhEu96PigX4b+XGqXvF*9nCqL5`t`VjU@VZ4%%J-~Y- zZ_#B)@B9F;_RmXE`k$9*c?af~sn^0363=>SD2k&mK^mtYUt$YBtnOW+g&5=(@PdkB zbqvj=S4}HcgPMQc{EQAoRltR5&8I3t3Aa{jgL#-tu+<_WejMy7v2E}T@1vg1l~9>+L{aVlAGyN)S5!5~$Ig(NA{K*!G5NGC@G%wFal~s;tL;B9{&MqANN4f4|E_IPgLveHk>1N?V+8|zaOa2iS`6`Z zJOs{PT$5fFMZBeVId>CY7K_M%41 zMwQl-24ICqt=!zP0rXACSRmPo#ZJs?^cJS^tO*>Q&;*tmzD{oN`MWOka)C`IO8Pye z4XE~8PZb$1qz}#>kHDxjp7@GeovM8WNvHq_<{m|XrG?d|^0-|9#2maZ`l2*@?GyDi z^3D&^=kG=&v2ybcFy>#j_9Qr#yAG+5l=H8bxKv*!Je3V-S9K)54_g7#m>cwgQ?&*N z(xx!tpPn?zD0I=4*Kv2i0OP_xiQcB`DRpI%yb9C~3$F5VRNZ{<0^-e$sog)++L zy?fn8b?aFdNCzLKQhlr8`Mv+b;JsGZo4-UJ~gV zPSr0D1VX#Jm?I=bJYL~XZheJB8@9A0`i9-JHYy7mLd}ABbuyngHHJ*oV1+MZ5nAp$^3r;_#vi zJ7)5e3!_(X!rC=s2`4CJm(qE5H^ib66UW$GcxmOphbt`U0M{vCn;cB@P2luqyf*^^ zQOF*~%CiS>Rb;#oa(!Dl3K{|~-ZisM49ABN3L4X&P67Y(u3XgESr%+je}qB=B7$sU z=Tp;-$VY-QfCK--gf5E&6?RezG*tw}kXWwW2NJest4Kz_+lkewUPqSb zU)U>w5ehh~b`6SC&FPE{08{SGiGbga>?U3_&%AbNcfN5dOiMwaqMc0jSZlna-qM(9gl8MkyJ* zfvC}_u(r$|&@l;zPdhOU2!3eke_~3LzVV`$e5Z&lrG_`mA}v?EOX8gkEo{pAK^5Du z;oY@3nJBg#w;-gHAO<|QkmQ4XuGuKLjrg&`zR9^b!7PFNn2Jp%e-UD!H$Wa|0^iMK zk4xZXsm*PmicjD*^oG87g%py(y;(oD6W078An~3ViwM;5WFv0Vv}^bG3_t#o+41oE z_08SLT)k`+SMuX;M{h^%lEj*ai3;dbeso` z!Yqr8#pm_a_+SI9qU1(%J0HfpDSUT}*CHLyDBsx^T3;;NY^ciVq>-;3XP=sHJ86iG znHMwtd(y-x_k`z?2W4Lu%Fo$ayV)((<5s&n)Ao}bc{a!9_Fy2gixH>yr{Z6d7cIw2BJp%$!yB7l2#w1iTQ58x^11`Y(6>+n`2BNO!BtmQ) zmH6TOe$S8E{PLB;rO8jSmBQMau#23TSngjLyXqapnT>V_u47#D0{#fLVr+G3QFR!T z1a$MUiIYZsd5qGoK}6mYx*nesGH~uCR3*o4ZR)LDcd*iki__QRKcEPA!s3C@{vmf$ z|B+Ul$$zv)534>^iwZS5~FPd~QK zHs-d3J4>O}5!xJ~;ngs_(kmvSIE25mo2n7i&^LZk%fSB1*U7N6_MM%9g$$-%h;w6- zC3WsQha~ViyKV(~$37Eo@zNtNhdu>?h>W)14Z_nKovyy`U|Si(o1wy*o^6>pFr_!J znK*>qF0!CWkn5=VZo*@Z&TPl0pWBPqERR(^IPu+uw5&!Qx^?&{-{Wwo1D_&_ zd&w8}bj0bBfz?}#h5DI9wQeg;5=P-eTp|%i*3I&r0rQoVXW;L&VAsxQm=q484fmiA zogc4$2;XfKJ-Tl{Z{I0BI6flSWP!R~kS}Hqh}WK~o;;sN!!VYHucv@lZr47a-`zf* z4f7L!+al&Te*s<|{$u+=SC@FL0~4hj9_87bnD5acQ=hcWWMjqAFvV&nn7)RV!29$Q zMx8I+VRy1{$5L87E4^z*6xJsGH;1bG2N8&qxT5Mn-Yh5GcLxdFRx@G0u8kVn3cllA zk#^OmMJU7yZOr+0N7a82w!Z1bWs16wn|*72@#V9az5PT-3MZ;^(`LX&qe&FMs?!td z;YlcKaMkyZkB3edE=Ic$T{9^&9s*bA=4$uMd!=vd((vz976@3@ZCyJ_lOB@EK&QGn zhip=V(=xFW3gX>ot96A#8hxNQUe!H38A}{}Qg@U%_(uN3G!li(L%(kxUY5L8C?%pP zY%WzV?R;sXZvEdp%{A>15_q}U3`u)I84ER8&g;yVw6S_Ns`;_hx0m}n_pAm5zagyG znR7PrMho_GZ{dHw<=L|(*}EgX=V_A1jSaMuKXO%EN`M{nYuYOZe)KYhYr-*O|ZhbBE_UwfOu+%ZE9 zk-TV@YCS|qGX!H~`;Y^cj;iAfO-rmMcuTPA;nQR!y9vd2`tKQk#hWvnvd8~G2?75( zw=Up>?ZCbbyarC{Ul?#^ZE*CpNZuAV6vJA<+!B9L7wYyhk|^#12w$?4;kOrCV`|7(EBf! zy;{2vfVti`bPMr4)p7X0*wxmT}n#|fF`J6&C*1wmxPP-jLF zdMbkZwA}18A-4@mEyI*479pt4S)#7lQY{g$I2*ix>OO?bSiVCdA#TSM(+?kIi1WUJ zm*KSTT-JKGX=xlo1LpR_3ZScXfI6OyXB1t!9G!x>*Nq$we^reRfE3H!;|XQQd15a{qOS(AJHa$X3aj$1vVRV+ddFq2iqukJQ; z$kSBC?w0~p?RAR=p{;6R8hg4~Ra{1jEUY1;BImSHg9)uxbCf`zdV*6+W}bIcqm{G^ zmpk>7w>ce1eRhySJdVu+rRJTVr1LndpP*@`CLf?_re*cCDLs#=MB;UM(xlV7uCR^G zRE7n34$q;rJHFd7Co^t*(_F_Kc_tj14(Oj;H>gHYaQ}5xv=-H$M1;F%T*c@bkqe~r z4RqmS3O+m-0j#9PJOfT+lCxGa-UR0w2k9zr?953~hT>THL$GIQ4iFA#@|J{vSMM21KkilC>_npmW+v`td4?H4auJ`CSZb~RZ2C%7O zzd_@9X0Cp4NMZzED`R4L_r4%mfQ{zqY`;ma@jTT}X5RQ3LouXGcvZ)+-gNxw#F$U| z(&nnH9niw zgHbAZDhgB-sY3?XVAzmWYoa^t+lfUobgLnCO(Sl!s|k0L@wSM)PF%B{t3XNSlACYJ z9i0lT60Qh-XOd=AQ9q5U&L`Zi)WhSfWX{gW2PeqS&U)Y1EXT;r!u%Z}k%5-i5d!LU zVjG@mri0rh*+wf&ZViOE-(qq^1hTeNQUbz457~ZGoMdkYo^OQ zPPj*CQ76ngiS4f?-p_7V=A4$iqPm)IPcLuPiS@FxSI7?P#?l_i^7-UYT~e|{FP&-c zrzms9qMB@}`m`j;yfH3glnbI=D97J<*2XS2zHd^*C*EEyeY8!uVzlSWt?Aj1oq)Cs zUUe4EFt;YgxIUFv8?n7_C&@4hJM*Gj{%sjLo+v0>+M4my!&FN((=s|Y5Nh(PwUv;A z!+qNBr#9-g$CR&c22epX_5NfH*t7TA>$|?|JJF?Z)(e53?4mkoEG;KZ{;npssL>)` zUo=j(zZ3q!v`-$s@e5pN@g43D==1hNA%sQ_7XN6wM;?lDZgzgZJTBw<8j5^ge5WG^#e z^DZn)+=26V38w*5?%!o>Il=k@kmVN1O4fFSfk0tNb#@RHzt?SndE!>7TV#BG#4<%1 z5ecb)NOy;z2;sZuax_*H0yWZftbYg-xsvEI+9c>icgUuuV`pGBd|%+u}@at5ze9~6_M{E?y#(|yvk z{Mfoh)q ztk6EWv_jmBOx(O-OpHiB^2?5LO5e-n!9-3viUT*xwrA=c`Qob8y|E(?VuN82 zaL$C%F2^-;!qJ4zHJZvDejfmJ1pS2+ByN&>L&6l?epEETGP*Wu)nY@d{nAkva-FpD zkpg}lbJLRyflBT3bxvkZD`jRHI92f`_3VVX3xqa>hLDx@!%K!BNP$j8F zJTyk6dxjSeZTKjY@qZ`c9-I)3KC@5x+G52KhD9G<%BY$EIdQPG1(@)IMIu%z`WiF+B$rlgASq`J)zHm+b^-?Eob*Y!;h*^OlG^mDh`1KWAEZg2o z*5c=pZCoF}d+=F-S@LndN<2(vLIZUsmk#wtMuhkKZmNZ*yY0~B2;o-aorluz5YJZPI`>QjWyCv z3K1;aoVvi!HKXcC^^BO?ph?+B6QOcGndXi(pMC|T4fTpoC`PcrhcM4&$8Dmmc0be{QU z)bA4qVPhY?UUP`i;NSL&@cEIyQZnH51=YAerXQl=bE>+;z5V4XbEcYkDhoS#CyctV z0Epj5Tq&`t4zJwAYfyX{JR5tCs;f7qZ#OSfUb_BwCxcnE*J5fEU7BtMUCBr3`{{J) z;Ys&N+O?;tj86B@Yn46q(efsGs{Uaqm1d?g16N+(oSno%4*BEk&N)IV(TGfC=lVN& znoO@3i62!LRcpT5`V|eJ{V)11dE08n{w89(EJ>4P5V+-z9)p9Tz?G_z_%HzrJf++9 zIA{cW$c8~nCJCo^u*i*^f4J#``fSA_-anfPJ2awy73+&=EV7#mrzkaWTN&G#X>C5ArhdMG4g6rV*#6CU1{*dmz-->UtEEq=3g z4oWk?FiR#83eUnxqY*U*>6bEAn2z%APN_N%>SY;ItW(_#2~75LJk{;bIOKBz$;WEE zgVKwU#gUU! zIlvej_4JE#ql5BqOuqM=qlNm_UpN;>8>U1T7Wf~7u#7-VtaVy#ypFWTJM(8NW(`Z= z)pZ44UGZD1Qifm1o$mE!CG0AQ@npqcjY!Do&5?yTRPiK~h`sQp&uja#Plsr8Pdm|{ z70zOdS6a$v(yVOv`M0p53zvSh{(d_2VH%?7n?%1TkG8ij(1GcY{GPHRpK@n<_f@h* zn`X_I2Dm_5CDki)X4R{V!W|jGK^BK0bS#`w56aIVim0-5{-Acu5}OE+K&HON{L)15%1-1RFQ>CTxff_h$@ixK^JZr5eIt&u@S?|tu8Un0FvD5SmN zl^2kmePQlAGaX~ft?25bl623!ql5!=>VkIUpiZDu7wwhZc_AJY=vhvd zKuzZw92plk+jAKnaS^73&8Zt08GIv(c@aPnM~a&?A%5^k%^7%G2Rf_=58`m@;8Nxb z&=--NcWC~|$+zr?f_UbHmhKD*5Zm3lhLrd3L;LinvEzn{n!uI2k}iFka!{cozSW69 z2bOl?GqSRQ+9r*>UqqU=+U8&ku3O@#wWi{tEecYEB!4ZbE^M-3vmuUA;{Lk2Jx4cO_2{4$GbzYZh(WYNZIuUM@Ogd)n>+CAy)j2f< znyEPY`eA&uF+8l~-ouZw7T!()A*dq>lFGR(jh#1eOU!PM`a;XsjkG%Ood;+iv~G_8 z9{n31V|nSwO&=P65bgC^qg%-=a!u_c_XTxC z!3HbxZ7C{G%Fvwk7Z7P z)H+o2!8~_Y?o6&tfRP=1teu1wWrI^%)N9ix5WRlD=R3+_`;?5ffj;v9At{j;c8GOUsq7j={9$^cr&Gn)TtJg%nN7SeQaRocw z^vjD=)q$7tbngY#X@lVIw z7>|gk(?}jCFaD0H@K@p^PF^#muv1v@NrIDq39-V}Jc5?J2TH-f(Az=Mr)dU{7BKgn zE#^m5`4l?+QpXn=kKuzmz)@Dl`(qyJ=i-@_np4i@{@oq6dz7LC?4mIV*dbfQ1{H73 z7=!-LsTbA<-K6;vZz?){I$jnUZfqywYb>izhrK>%*IBzD-tXR*}zM|96|%xQ}zM^%4xSu%(Wl141_p77@$v9%Fz4N)%3DCM3l0^ z9*KgxX`^AKjQ`Z(!#f{SdGc*&FWp&=rZH8Fcl%5>G{~1)G6;M<9R8Er@8vNN9m@&4 zJweE3E`e5LP_f1&-vWX8wI%wiKG*oGN=BWaAzl4vL0>CGxl1W#xl5pjv_==~z#(I# zexK!0Mi&%xu~X8K3;qZyF5aR2!XkIsenVAIE$F%VS##7MLhkYsd{A}RC~50ox-gPv z-Qmc6Me^2maa2gXG_bN_R80uWeiB&RmWmE(13szXa*oW($PO}fc3&F#4U+ zQx&0EDD1zV3?-a@C9bF^M;IDhuR0E*Nj*vLCvYOhNU+d-(iHonYgp(+K34&@Wot#~uSe*Es&N0#zvFm^DRpajkro-5KrVQ*&@+P9XF&s&*f%6v?OG>z zFGR?s(QvTF7eZM#cyH$;e(=LktnpjHWx$78R|*aRyf#7?`wqCHTSFp3$4(j=&@fth zvfd&Q2#-j)aXg{0sL*j9xed2CihDUCdXamNi08OkSM_z7NfNq+gwi?>k9=ZKloJx} zuJ(^xnF^UJV@Fx2L#F2>vMq7Ym<&H!A#Z`oBtMf2G87!Y#o;T+rxV|PCaD=0w9Du0 z8g5s8S|>c!UsV^*tNbrogY(?|cdb24HhC23&L+x!q8IVBf7z@&$yDi+}`g2*PBOP};J>4_9{fT{Jx zt#~D8V-BYeNVc9N2N@(E^f25*01-@!GS09W_RansaD94y(jazxW4wfnQLWuqio6gp zHFP}kM{9GMOaG*M5noc|G=+9e7o0;dDKzs_-H4Q`YwizuQP&OkuKKP3rtB01z^~KY zw)qGDFPdW8DT48w$g4}Ljc}&*`_ixeA$NHUP0x_E@a!hY1)g65i5Ks-6D$w(3eLmc zJaL%yQ{&rT@D94OME7`orIl)5?tG&cl+yxw;f$?Pj~pjGF6W@W4_k6#rJBL^lGdIV zC`PX^q#a6f(yNOKum}ibn5F-AhKn`{8oW-2Y?~{k5Ddc!lTqTt+q6b+@>--UV^+`j zJHR+#2v48pQbt$yf6N@@qV&6qu4ThZk~DH@?a|5Uy^E9RW$4w^6e5Kq1B!Oo@xNfs z2}FFx)5|L=gr{j;KcKIr1G}2J{v+w%d3Vovk@@7T-?i}rbu7WTQz}mxyvWNm6kNvJ znzfnAw*xzBST7h*by#2R$`l|fTGCnZr2orl(q@c_oPYU;x#Gh?OO1&?|@3)sgXz7=KbwV04 zH##Am7nT9_O*=HCOr(9<-QJ##po%dJgY*97l>`;$uq2{@;AKN<2{7jvPnXXxC*jqj zN0yH7T*w$p^Wu zWm+?buYe(cZdh+W3#3Pzr$;}MPvgeY;kKxp1J&Il)>8k-{GVxwOw3)}G+_UvGgfnh zJVgsq7sr=X79phaJSQi=sA3I?z>hi;)~{lLs=*Zc441$YN1ZMY-js*LoYxvER=9F3 zodQN9zT(SmXasM>ZghF;-VxOxUZN-uHhh0u4^{27kf@ua+*8vE)`;q4Z8mJqhLPUY zf%%HQv~;%msjpfNKog8lY-{fs2#sIrb4mA?y>kB%oqz{q&3aY3KE{ub#JtN>iuufm z{K5)mC{O}#@DBgq3Mc9+*?ztMRKz-IDlgd4r)7rvr9v#@YEW7(Kl#}*>yTxo-R@9b zYM4h=7v89VH+UDgaY>LDSB=rlY&dy-={EY6zBfcdPb-DHt&+os@$rY~L;>ey)YClr zVD8V$&4&UJ;=8JzU21PMs$vF4zMT+L|iQeXL4fm-b#j(mpru+&(n{Tk36K%xnzFLDW z2h`vm4uY+uyRAhm#r}K8-HOmCRBC zpt{Y@g>QysTI+gaJ9Yc2pm{ix^s!XkQmywtR#9yS*QLfe=ayalwvtwY-9)zVPg9x> zVawusS>&69;CG8wwk?95VP9j9E_EiOu4!YHzr}Z{2FC8v7<`8bEsFp?+#INA3q&F846Cr6oaW>9!Ye{cPL=S4Q0RCj1 z^k!>v68VQ2HLKree%Nsa_MrVn{x$(dlnsUQo@;OKD6}6qMWOz?yM6YDgR94lqP9=Xkv{!%MJ>UjsVf7w4oMZ`E{{M~ zr#RlT^8Hr4_^5S8vG+%deo>2uF|_VghQ;)iJx@|Lv?HkvVU2Ba^)DOB4#Zm%qL<8t zHg*g7)p>_H*P^+!v6IlAUFevE{;W6*!{nV^2n759C`&`T6Wp~GI$SkTFTfQC;4F&K zSjhOHk6jHSj&S!zn~0YI7aDHM!^5<+!-#$o7JW8~esDW zyi7V8L=6hioi_+CnCyati0tAQU^e0sO`~wRd0hkMG)1aW1iw)<2+#d_?inYL2}8-h zTQcrbpWW6Ih?97_)b|&q!%avWx%lId-CDb0R#C2YnqX0NH;8{sg#9U9 zR!+P=>rhSvKfi6%7AMg`79Zp65Eeh`C-lw=74ARLAwkj1ND;~Yypi%WitE9L&6Hrm z1TDHz0e=ohUSn%>eMk3GEg>3 zwEer(ks}pdOs!qun$&J6-|{)>W;r_ojBtT|7c3qcq83^je;?!(qSp8NfN=9r#Ya*H ztE{{8sy^_fURtNf;R?KnOao64=Q*e*yZeBHml9^e&R_v<8|g1{BlXc9>{~FLg|%bp z`JkZRi3V;xz5K?T=9b=MRbT$@d6Q|c;Dw{)%}rz926NE6WYC8HX~z(djmZ#$CB00$ zF77D9GmuJwS17#Z4mSa(>&)XS!BR0%W?>5k4{7*XTGJT}?gQBiOOFcBIjTX7N_a3F zsccbWF|5RCjr?m=MMIhn>ND#0WMsrf9WNf%r_%}X zS>-Aowk=bkd%tcr@$PU>A`Y0o^_(15k@fB<8fL-af(;TpBNH+jM!Vj0^Y;B!*RfXAk6S0TBCLq7bZ zzcMcvQTNlt=gO2TA1e}yGyZZ30U)|R7eV0fDS5O0v%AT^b()HXH}Ba}g%fWdn{&Yb zihWJ@jyS%8V=3|$$OF#&o~*2ggjySs%!9@~5t{=-4C(?2D?JnoC#00QtmlhJFnlO~ zB(O#_Y~*V_ss^dg5mwPK&A0hTR%r%fOmV(WjsTxL_pAz)0rwl=6y>GT5%m7TlqCMr z?xGUOq1fEFu24f;olIa+{x%=WO0DgciPetjG@5Ye={JU!A$t%Zi-#9m}O78kK8>bwiWJC0a1aNafciKLs&rKVRP+P$7V zwnF&+E?O_+ygSoITDSHXWnqHw4D7t=4X*){M4-Hg@O^(spxAy)*8BtjH-OJ~aeZHu z8El7uR2IRDJpQwyy5Uxc>Z-$@wa5Fig>H@IqP=-sYl0tY;4?(aN!Hv!|#I zDkVpk6+FQJL>;FkVa8RPY|5gpPL*f%yZh+ReVgV{j@`vvVFVTp!l$b?USmRpZsm7` z?63RqEU|L~S@|KeyV_WqF0KiUl7GFudu#-UBhY%(f0V6YZmn83ib>zQ20(!Z)fC4)*)2aW!Gtj%elj1%xUSA z0C4PvNhy;hi*gLxJ6DbA6LE=#grdCIW430!B0yLi!enZ7RnylQTyJ~OY=dn;Mb6O7 zeiC^FPsuDt-y}H$Sf@u%YR@6`jWml#>;4y0YGv8hpX2p|2A)pE@vkR*=U0?i?~MuN z4M9bH-FKKp0H3ev&OBYhvAsKjzDeKwkV%C?0ig)D&lbtm$yFHqkVk)=5&roO1+H(_JcVBjqKmh8}*FrUODlmV?Ya+l-b;))C zlUPI#E@7IGSmfGvtA_*djkM?n>K29D>`87v|JZxr^6q|04F!S}8vrex?A=ZE0EjR0 z6!yR>aQhw`WpU0)s{Z06JJ*a zQ+zasV5f*ZClGk5_TSgNbGhPGI;&{buEs|BW?+z979PwZ!7j^BvBRG=RaG(4G@lGT z{RBStk4HS~i)MtStyv$|$P@ezJh26~*YEyAC(vV+vIa(rY>+AcNL7ZXiGQT33P7sT ziFy5JZV`B$>5M9_`Th(`o50r)cx}{7mVhPBuYCt4SceNtbZM z$QUMs7Jw}DQC!?}_~+aT7&6`(+!Ggqn1ls|gcpX>N)MYNwcfWXcS_Z(Z~Dm=hjOKE zzy2>02+2OZ;6LSQb=3N9^E{qC4G&Bqim!w=l*T{{I-r#jh&K42?@Nk#(o1jL4FN;V zmx)M4l^u11$5pQ`j{j)FFox8gcWG{Sy+#w()nYGk9QO{Wzn^#;9+s&nkYYAcaq7=R>8dt{u|vy5yKEZq&eBOHn!+v44qtdLpm?WXG%nQDE!;)(XW z&1fr=g>ZG#d@R9sl5PB#HE=}?V$&D-8*pv+9}%U~#$$(R@b6Dntl^;E)7byEkRL9S*rVX#zbsq+Ruwm=of)hJM1{{5&|L z(&*FE{{GYUg5jGU z2@6pq*|LEl{`Oz=!~DWr^6xnjSsavN(&c_YR>pmy6eP`h^p@S9#G)i-088e1( zN}^S|aEp)Efy7V`Jjgms33Qxif|GmVnHPMLy(}(oM~tWqj{`xg+ph2ekN(5O*qN6V zxm*8RgxN?lN^h2#mxGIZwMIKm?`hI683SeuV@2VjYz^dyEaGUk%8kD{w zzY8Qcu;4ah78_fA$|h)5uiDV*lqh{!j20K}^XsDR_5jM(g!=dt?-wG1W zJC{QF?fJhF*Ka-8iqc8BD|WvL$_6h;9I<-GG;JWiVpi%8xyd2q1ZMxlo5e0%*(Tsw zl6bmmeSPJAIV`>Dy}#D>m>5_7xO;OiPTxzb)lN0JS zrwn{q5p}RxiY1{t&9E(r__}2m%xv=@kNWZ}TvGgSmb!(KTTlL_oEApd4D^S7v{Yz) zaAqc#=EBN%L>urfFw4C^NCZi25CM*i4mr@qq*;s&1mJ%9yKL8Dq{8IL$X74AsJ=!N zO+KYa(AKOl;VgD9>OCM?Qm}r5+|kQ@SY%{WkzudAw_upQNWRslM!f!mAs=Fs{9`54 z$Ar?8n$&EV@4;V3g5+$Po5?OC`za2b{C4*0(`Ks^4MAywX6Nad$(l4~F zA7rgTT@%sY)&W0xbjfPs1tb=TxW8~YctVLu*&s~e+APG9qaqdE9k0Z@>YldkNolH} zHo@Q%Vx2#a<;4Y%ZZ`?NaoNF^u&wiYTfCQ9bLmBp3q455%Ntcd z<&fpi(`o;oI^qyuYOZ2ilLXc9mPttFcN#=e#geZ>WVW=`^QNTjc*w|{n2VSyVdqAS zIxq9k{~c;2?ZCFo-L~pS0SwEFl|18^VsDeurm&=~;c7jnw$;Xyu7~PUWgs(eW1%kp z*$S&pLgyX&7gwjgyc*@X$CiuN2xSzOfba8)>GU$*jr<7G=(c(q7=To>ie_oUHua2A zyIcVd7CJA%Fxp)#u9TbP%kqO8teaTPnu~x|i;7PTtwoY3ifyWOr5b3zp(KX06!*{R z9OiLA>a_q zYTu&ov)z?T*#-om&?u<|)i3`KHSr(Z_2>V)nplu*NHfqu5>G|wjY6N5WIRO+bi; z$hy66-O$~txr>QY?#`lPDOWiemc=JwY9x>e7?2o>sMAi_iinNX-w2BV@lzb_D5G{b z)uKgYYV{Jw&ah?Od3y6d7*1DhU4t5Jp|&Og%ATnQLtfryA~BfoR^DkqfoscHO4 zzGelScF8~KZE@-o=XYQfUjqU{BL#YwYsme7%thDt{%6p(l;((kP?F`DHgE7ao+>Zi z&Qvb*_)4{-#6SjI&1bj+(2Mtwd2T;q90c&SJQ%I0?*^|8YD z(inR?s1NCQ5JcvWAv)|V{hTpz&Jo3|*ic%~uw<~|LkyE4^+hvjFEp4yl*BgmzhuVB zQeSGfCp<`Cs-=FEb1FZ;jVDid#5?v%G+^6CpS=`H-dn|=y@W{KcR!$NS{So$0y94j zPx(<_8Jpl1URKH*L-x&}oW7La6i(ci5#NVzSEjND?G{}ULQn>oq}+)7m(uJ&mZ!(9 zDJR+G1fcu?Lc&M67F`eb*k7!~?8qDB0CBOS%wef=e-6~R*U*FtvxSUPo;q=ap@TT^QD%CQ`KVgrZji^Fw0E#9<~Yu0{jH)k;CaV+cZ znxDR#+cy>#^m|tm?lyov#Ukn>m@&}3Rf>N&Pc~H7XwSL#sZf9e@!QNL07(lhqOMT+ zhQfl2Q;_1HS_fY)IDV5NS`Kn_026=v=Y!!FTM6!u&0)lubyeT90t&3&89?dE#teQy~@y>iF^}z9VXpn`I*%3JZ zjfSe$5JIw?z6D#f081^&m_8FF(DD=Xt!hU-P(1!Gr?ylM`R{5p;>wps20ClD--gQx zSluC-eBU3kD5TaQzpFnTpN76isH&2->|7jsv`h<9xbT@^(4)#As=`u7F0T#Hb%kYl zL*)^a62cW{M`tx#JZQFkHa29roSYXB`T8D)pGZF(r9wr@g?i6Anz@U_kOj>|s);F} zlk^5v1RwcCxo(K+%FnRX7|L)t~m$bd8O;GkHaudf*rYyquU42DBjugEGYZKhu1f&XSumR6JQAt z%Q`gP{0M)tJ8%?vHTrOS8Xb0N&OH$sKYSkEB{4S65&n2Ql(@TIjVpU^f4v>PLohZb z+2~5aI|{;k)e`Z2JueP`Uvz`=5c<-3K@4u)dARQ4{H{qHz|!tjJSpJr!oS>g{Y|gN zf7AD8;}UVXcGn+@^1n(%KWaukS^GJDCY~Dn6eY4U<2~uc?u5v;67=}S*gQK=4nVU> z8^_{mzuw6nJg1wgclH%MQiJ;`!o#3@1Y%f<13Qn3p3<>*Q3(PT1h73 zIqYJ*^=>8j3C0B%8i%V1!^swgG$lMx=o3K%NeS*Kkt!=;ty}>P!J3pal9_o^AhzvA z&MhV>&;Q8MBk$683S{~@%ykkl^)9h=dZL*)vI9HqEDbd!^8!wi1}9n~)Ur|ljzy!z@Gdza ztcR+J>g?bdtV3n3OFg$5WOJi0K58&4Xcu0apG)q6oc zMDqFEoC2GXBuzQoiK|e0{W2pye2>0Ba7RM-+S^rJ_su1Fhu0MH)XNaUwZs@!!fkuI zIqxBCoZjSAAQ;^)ap1Q(-y1wSlxW;e!v=iVcJ{96JYz^U37zTZpeO{iQDGl3UvAXi zmOiqnvY8#nHOdyR`ejsaAD^P?%)4LS-myoPacc7u?Vg=m6Zps~esC4g91435S(5HEnU zRs>>c4!cYgg*IZ+`RyeN-(Df1RD)0d3!+m({e$Qokl?>j{z3FgsQ*CpIwU(>3*)&+ z@U0A>xJVSAH5!=t*14A1XEiw}=4ti=O6|uLrdn`Wgqpi)RJzc`Aw@An+i|Rs`%|;9 zIst8)OK2DZpP>wjVNn!NuLqZ`LbF>LUoz@8MoY>$ASE8K8tv~#H`XnIbZ zKPtjyo~(d@neqDl?_|HjF#&l*oTK1>+5o=)f$0{m8kn+957zi3i`gHS$J_fXNttl! z`?57!R=u)jaW($SB3do~R98PAcsx@1iW^tS@5{|6&tHHyCBFRia3SGwg!%RfHXqx zPwe8XDJLErJ(8-yGhGL>_W5WbfQZ_DIL7{dI=$@bS2mCT!V?sv*`gzdFg^vj*(OW@%-Q^_pVPX$X5=Eyz1`B9H)xdb$jG-o4AbXrt_a(rBe zf-)?jtNrZFc-{Av?bFTBQlmpAJbS{sE+}H+bU8uA4l&>+3n~)`C9*7aSpNn>i3$qT z1UVIfHzTOTfT$18Tj=FSX8(e3Q`pq0E~z)%#%eEQ4i4#Rh88o=ODq;7JWpv6=(HZo z*Jyh7kIRJvkQHH@OKT3U%4nNv3wG%=n3+8E@N9>YzgRE(+Ok*#?x2~&O99Rd9*^V1 zu5Wd-j4xSZ74`T%Q*LmTAb7o6dXK-Qnlu-7e!BB+;t_C; z211BxjurA$Tc3hw3xT*u>g(5XERG0wp05^LWCdKHXZkQ-0+_b;DLblgzdlvr11C6_CW2GBoi25go+J{dSG^ zg|{KKUdk?IamClfYSGp@5mZwHv<#pqzNfaJGQz=CHX7@Ekd!3N z(3p?e=dN>7n-S0c)CbP&W9^C2_opbn<@OoghK_bln$h(Q|CRsF)alG0-zPjqj zQJzj${>nCdrk^kng5CLaY>&?%pZ>2(RZXQJBA1O(5&$%1? zhTK_AACTR`&PuuwE*WBdgKLvf{jN=$X)ipMlB?dvPNuJGSd>u`Sd3p_I-fizlkE`Q zXZv_c`aw~;K|$|V9LxQjvuqM#T@wRyU*%1@zs@LDiOQx*v*mN-Yb<^dA?fN8Oq21w zQ%9nLar&g;xrI48)^A*Xv`9<12!4DrFDck2*~&=Ns?{*)KL8`vO1%9`Qfa`f_yGs0<2B?oFDf{wxWLEyXi31# zr_vHeTk+t?Ee>uiux?!*=@0ZqKJd;RE1#LyQmu_wg-^5Pr z2ktY-5VA>es!n8`ig;LUm<$AHqy_BT5!djAj+Q zA8XiZ6Z(Cr1O26^#Q!^_X(IG$gksi2j>1)Cho6E{7}MLZ5LY!)BB7f1s{%wE{Ty&Q z{M`C_d)e*OOX8{39x2^hvk@n)WQS~Y6nh!|gM*^1^Ci5XgC3p3*+);87XI}Jiw5&< zynk``21v3SCWd{?M3U6u^n@n2E1a|-{SSxE?wO;p($a4W2g!y?fK2?_nze66I>n8o zk89~7qVpkUH(*^_TNMXeQ3);|kUJ+GY6ay5!(&C!2mG~_vK>Vmxn}vDXaD$eeMY)I z&5xbXALOsc`H^=yOj4eypBWXhq^*!c^C%!NW>| zZ7!pZ8}Ami2}^1xl_#Xkm<^ML6_bG`e5d7`cJUluwB`>cD_Y`e+-N2?noBlJEyTg) z60s*%y_g!0m@hjsEA1GTzHiU2zCEjvGOI{1oh<7^_5+23nxfm8k%j2WszV-4$l6I& z=%ij{2rEmX=6oYWaIY`sVHn~NhVvUZ$@vJf%YP7(e0s)%Iy!pQd#%jgJ%zu-gr-NA z$IVg`DFywcBAOG}AGtBs<)`kDXyGJ*c$%zt@#%349}w@YR9<=sQ_WzA{(JFe;Kd_- zI-mVc-6V|7=H`{D|It=TEG*RViq-td^_b;?@>9n3Lfj*WUukN!n|8?8pTqt`5zD&m zvwzm_b7j-!uMQs{&%1Nu{b|Z5!@5u=KLmX}^PTLlZ`K@!1o53a;o3KFBXh`ePL&qL z){G|B4ISH1SjpXs!$Ec7My-5$RZ^h0UM zvhq6h_N_N*eV=bIb}@T|@0Uxnf9+kTUHp8@E3MOqFZ@MFG0TzpsI|uJ<5$ksrS*A< zWgAP=+VK@#8709|1XlDnp}JXkFk*}~i(p>nj#K`V-V#={f1n(Ok@SPMlnf8+M%mny zTtwCoE0F-PY2ZR~4`%A*M_tU}U_3q(Ot*Jho9Rg`yrV`AC9z+`H)_@L)RbuJgF2~N|T9*v=BZmNzp zuRZK*t&Wzna31wrN*&GrK|njkg;`zh`)&}SbrQXOwI>!07w)#>bUAUebqJb4$;l7g zoXusscqu2>^8u5+WlG?PyhycJhuPAhO=gDTcn2}7(QaOA)zvy_5dy2x%geXpOdDDa z{F+|d(DhD(T0i@=s>apq2EX0>f`(VRwwKDDvS85ivW%JYx?Qu9Q_DKhBdSpVuXohH z8lGp!%@o_GOdPZR_6GE8MiyHAkD*iYP`v?XO>v0yBI33o-~?I-p;K&dqT&ERjCJiYbL#;WL$6@bM&OoEJqt&h8t7WFilnsV7 zZG(gN=dyB>58_#-u+A0NYw6j~MlJQpE^$wNVgPPppdtzK=-b>c{;R;~-^JXzW(YR+ zziwXl^Isng{I!$=a{ihvPDmbKt?)b6<$nIlCZM6~*Ky!%RVYgyj@-@N`hF&D-=BQc z=3P!tQ2ML;4PI|#!Pw}d`bwDyKRB63$}eBpd2q(+aPi3<39RaYgm`@VuK9~`w=ez2 z^WCGq;oDWYfAaK)pZBxx)625=oBm5kLb+6|D%(3jEIhGRXB->6x#r1puq>0^?4zs0 zu+3<1H_3@ex1dn>nzfX7M6azUej`*%=@9%VC)aaCsdDaE|J==8+Ggn{Dno<#@G@-( zBGXp8Yp2fKnuGe;-2!E@k<*J}V2KzTr`c(mgq?BWm*Mrugq|AM)*@=Imk+PU+#9)A zex8$E=Gmoflo=*T4tp>p`_!u^S*WxFWFz*db^62bTB~ypf?L@E)1&@PLVd%M@n28d z$2V!$Py6hO28i{SwmUZcJsiCp6Zqu)j5~m>(!>`ivv!Y_syGwu4IG`diT&f~p6P_Y zfDec@e~xYiZiBvwRDM?A3Jd&Ytn|S43hen1qO}B8-0D6)dcxGtKjgF45opO%pTG}Uh41Vn-E-&n(K-A4+|Iz z^8{VM3?JWKkc=99@|glv0ZQxst!vhV0aCkCggTHA@A(Roq>dSR+;4>KN5zq_g<*=v zM`B>4M8Rqe)e+6B-|zgP;Zq#8AqJ}mbd1Gg{GdKomlo-*Wy*H9IKuXQj}o`I*p&My?qze&%(|~>!^~-UXEfVwCkdmboj}4atkT)PhEy$V zo3op&0|(`?p^86PkB#kreQFdY&=q3kFyS&o&HPr?cezLguk@>KZLV1_R;^H}q~j*? zIbuB=Z43#Cczs2T_9vu!57=;z5)O%Qs&V&@FJ$RzChH%)8=9~OqO~S7U#_++UccfOuHu$+@jFIjQ5*YoG$IRl)p{lzNc`3i zh!NNNUe=#RIN9&cB-Xdh5TDK7L`l|HEFPK+IK8WK6-cX}XC`FOf~6qq_}*iFgaNRi#z*>!?I-;N$5&W7cWnE{&Q7&|-Dhj4Q#v>CESU8r{_c`+ zd^jO4)Y|EbUa|0%)EA|Lm>bIas4rSb(^cM&&(2L8GSnWees}ajXJ0IKDjp+-!06NA z1$G|Af*plt(;}t=e4iok8h8;UG;v{Y>15FeXwO*xFRtD)DvquR+YJN=?(XjH?(XjH z0|a*s?hrhz^QI6q`t@pF<(ARF^`xi{~`z9e$oUWSDRhyu@5}pUTAA|^~ zk{V7^AKD*&e)9(+uNNN=v#%$uN24`ALxpR8!WKYlD|4S2gOvqI!K=Er`2E)W{S#%# zk1OEdfGd(!qFBNa-$*GjohOEQ-yujyR@^wE5a^)@V`WA&D!Af^)x9-3q%iZIn4Un| zcT>3UwK za2)=4S03>nErp}I=&8)B0G!Siw9&#P=S}(5rM+l7tQ19OThn2wik)U#U*Gpf2@#ek z-K4R;FkXWfIM#TH7tMTeEpjDBw^5ygrcxzHsi(}MTAIX~ue_{kmv3JrOi$dBDaqsd zoFq14kO&=HnOBH(=LJ^}#U@KSE+yU6i@%>TW7vm@n9eg1Y%>zq%~j)WH^YR+IIX@J5Z-_RmMonk+wA?}}Bi99lWj1oMvV==?@7U_Lf{K^f!7 z@>92HX-DGtu%YW1=4N6=j%vInUc_oLoGkN*JApMIr2q?UQrF)lmaut{PuE1WG+ND8 zel=s}YTVd_*0%zE61}!K82C|w>H5H& z`Cks*r|T_oLIOhcC7T4A$4064Bj!dus7W(`_9R8ADRG$Sq<(*xWXuuJ-C-BcjQBnl zvby8J@y%A$((_Z;tdtaFh^fIsdYp}crOPFR+62}r8|;2Nlik%I1rmPzDQ+>eB&hI$ zJP+Oz=Wbv}`U9@rL8Zz?R;S)w5}R*saK+jxB{zvsX671#yQ%xNNFGJL%EVKsd0S@V z)G$TouQOED(Gxes3O46;#%bY&DvWMcox=N*++qoKV2^*g);FofGhLw7v^)%^GMU^K zjvn9g{m6UQMywF|%(p61I7ZjBiaDR1-0$3eucej}%ROjxcDN$Wu$qrmXSUR5wX)x+ zPjhPu9kE6-MPQS25(THajjw8kUf<28a>b)+>3b>^_r-*UClRwf3E6|^%3#c-2o;ihf{=#> ziHLlj{TXq5LNz0+w$xusN4n;T7TTE)g`xZ zHc#296r=lII4|5Y8^%zmF4?@15>udb*|WaN1j;(9b(}E-*70Mo)*97l{e0Ov(emn~ z-ge=;J6?akg#mlkfCDYI=c^6Fs5EPYdb8Gk`r!^CKGExIJ?)DLUN9n zV&-t2I69|E54pNFG6#C>&XDNPP#ayGQ%&TvL`%LQ8I^NHnz}@m^mqaH`dU1W2!jdP z)3SEVIKs(U6g-YzEif3MbmfGKmpSp{H50?#OU%gQ6H>_I>0|z}l~Msu`pDyOWB_|T zsD1OS27W2Vi%hQqovie^=4UV`k;pMgW<)tf?g?XAaA*`A8Kj%Q#&<(W4)G24Ef7di>1p4GCHIEw7F8XQW^;4S8Rcpx_#DH zGNmGMNz0nzedm02Iko-09$y6P&VDy+f`0Llcuo6G46By zraEHWkZeBySdy_nE{~nlx7lhq_14{Lz||Etjwh5dabB_IlBtm<%-+7tVTw1Fa^1{? zk?+&U@E#4A%jYgYQweKXVIA**aNr4?JH-LIl1p8`s#csgWTcGE`Y;UK_f8pS08S_f z7u&;52kPw6aqflQzeb}y6AsjSo%}gf?~(XA1^3S}`Q%W_ZQ`OaU*x{} z0n@9lW<=kVqFtz+PUzU+{EV9oO9AfUuCvN>^fb!ldhrFN4}%AD<1=6wS@4xSa8oi0 zN^UFd!zc267hT@kjGPRes||+kT%>gFmiXxkFd-ZRqUC1wM7Honlf#iR4G$Kn-$_vx6Z0D3NIq_r=Hd1Z|grPQq=uihZI zi#iP5L*g-bpOMHIewnCji*?O0ikCABf(vT(eC-1-_iv_uK9LVZ;VTH3*|GeFD{*)^ z4wnCb-kbn!@Eczwl%OV1UL6}O!)_KM+42sjL|*(Q$MzgjI*@d19u^j{ZRsvtHS>Jc zDzRqxq&~N7ZiIQ@mbtiss!2{nVh9Jj$HZs!7nWPHw})Y6aJKn7!Gc2isa0+z)B#DIPqW+er=OQuU`UXVRpA zK0u!dSVDN_2HqKy5<0h!}DJo*+RPz^a54ucxseFrg zS*!#UWOenQAn{SV%;VX>#gs{rMNl{SDNiz?*CPCgDqJqh1lbHi(uZ3v4#csPr>zb4 z=d-FrDu{CS^JJ@@`H%Tx55%i@5YQ=JX)t4-?cS~YsV}7p?%&Eye^kJ@U^eYhO-|F9 zecpz3*A%dj0Q>V|H8eoIn>QZh+GlIO=eG>R@bnr9Ulir7WBEAnM_aTJFEy6LAj0m| zpL#2tUcNoT<)k6?QEYTz5#EhRLJTiS6c}|36ct2xHyZ`1oBe<$%x}gR{X#WpybJss zJ{!-ZScE{@4j1FKha9?Fa?udY$33Y*%*Orx1MjxVJ-rP-vfJPVtz+V>mo88SA@0-g z@BX+wYg9CRZgUbm_QY~;qoJQ>Hyzjono_d~ucV^Z;gvIenBd}SHmHIs4A4THYUlIj z)CEe&*{n`+xDDN`?_~b-cg$*m^k6IeCTUtTW9g*+f;`cpc0pLTlPR-Ab@|P{d&-{e z_N>qa_n08m0~Di{Hl4llJBMl!xLcR{fshHB5-p_uIqkZ%z(+XLve_bs@fb9HkB`Y% zqbu2ocM+^`q2^eyp@J!>lDNh)p8_o{kCTP4LYF+2-ExWFWtV}0L-Q~huZ>}WDJUx% z24%9Y_^PZi#91#`7HI0vnqq>l+F|PdndL}j^`@p;23_)Ejb!~=_xSD) z@CqwI3E@2{OhKbh3HS^d%gEKb-%^$WXd2D%LE-&@%fJlSk`Td6XH26JH%RoPKtnr1T8KxPQnNRfCc#$$5 ze71Q}IPQpM3Y3dJP{FNqcF+cezPw(xkR8Q&^~@Xwyrh~PZnp)Nc3oHV$DDV5BNUhj z^aY#M>;AP3E!=Jx!oXS#60uz=Gy4PwmEDurChly~9{^7KZ}2r~DO`zPLKogNc*eY* zCmObez~{Zt5eFG5{pMCug|BmJ#kBwQd}K%xf_9@0}te-(0@TQbF{)aJ+c^YT20 zzr9cYf13qV?!Syuw!H4w*S|2YccoQB%6HxbHh1SN6s7*m&3gB)(BaEhuy(pGD)Hm~ zvw|j(oqBpry>|$h;7siv$jIjRp+->H2#^B`ag!k~t$n@0qR z_bRpP=6ifho+!p|>yLJf-!?9Z78~Li#Or80>A%ofI3ZMcUshO!5B`7g3_(mmAmU#Y zlk?^M+(qP`i#fY6wC9{YaJf)e$w$3Gy-Lf#S}k|?>ES-|2cwB@2d8Q-boxLlNgw^)~VA?XCu6FtYXn z9Z`&@uwO1XK<*NM(0&=YtN%*;^=3L)=f+Quy=ju&kRvX5yy^ZJl9n~q1^ zu~~X(xTfHTVOd{C>B$-%dVYi9kv8|l0xj(&dcgH!ZErxX{ZWNDtg?vA5qxsmD>AT4 zVx|N=o3_R1N;EFBx9O{YMl~PWQD3OS-lER6<|Sr@!;`7-h1fv1Z(yz16dsM z*`AO1qiU8a@lanb2ORMy99aj3YEf$+cvu&BZWRv14@)g?1xhd0_^Z}?>D6z6f4xOm zw{uX+uzY34Ul5#Qvxo7EnCh0Ujf%3wIRsFX%e88$@FNg=B|uQpud@+iyLY_h`Pb=~ z2X>fomZW%6)w>wM`a^Y)bBvvakB$INOKwR4Qjb z64#U81dm19buO2DNxf4>X=`i0A3IEBRhCg&0+Mmlzvb44hX$KBfA;ZZ5MHP8SlwjE*REtMH7 zM1;S0y*gTH1p{EKH|N)|Nv%xlEB>&iw+tz2k~*2Xz2W6wA4e znd{P<=sqXi_iOa-4F5ujlBH4VJ*IbbJkMUG$X@|q^X)~-Alg^?xg|8|B@p@OOEBOx?b%PI00}Kc9kybt{&)K&$n;!Y3!-kttF^^&}?OHNioZg(4SO zA=qYaSw{3prl$d`$ufsqa025rw)QR|a=xsmYXtP$18yKklF zFcdm`r!Da=*o7$!NN!~^B-h-|YUe6B@~hU;eX)CgQ%_*VbcO-wl4o;a#$Sv^nhrn8 zpL=5{64<|M3OXF7QHMmf6`q}a=gRW@Q-sNa+xv_Yllg84Ihv>AB4o5F5FAgE06z*0 zOSud}haPEum@`3745X(Y^3@SG-y;MuW4jH@e}Q@*+5yVBsAKPbYCz-mQ@M|NJ;0fx{??nyJri1p_cwd3NKj`B!NyST%}MDm<7Z7x?&noRQ#C9No+*{>!q+fi+kQP1kw^C2!bW zDFcH^3UCEv3D#T^_Oiq>L+fU@C~Y2kAfC+euBnvo35~19o&SWW<#z}#UXTye%r1au zrQi%kOO&t2G*K}MsGnq>j;tqKpx{9Oi_M=Q;fit{4baRUU(iB4NysvL(8w)TPiAmZEQ zQwksuX;f`lTCuV8Oh=W;JL=S!+AKGn(BzeV>&Dx?jQJ{GOh=yFT!4 z!ppngF8}LBCFJDY=hRl99u7uvPCmO(Q@0d#=jlDGo)h*6z4Dcy{NjDkgCw>YfOV=rLO4Ve z+e#X!n-T``fZiTY{b@b1lY!PVYDb?EYnKz9X2XX$tm=9cy*OLG_(74xOG7i#b<+s-*HgyX}M@Hs7uaN(=1kHolpe< z8|HzGJg8hc8p@JW#8GqW4+zM_4z06TMfarBoSxx4I3pwC33wv(#lCteb0!3?Re!2= z<^35l=@PAyGn1r=hTPrsh!?5+huo>diRyO*$faRFy;d`f&gV)9MYo*h4QFe9xJ9P6 zM4w|{S6c&$je%JX1Eh?9f{}*zA0>K;8p`b@r4P{FOqltLx=H3{b2ak(;}vs<)VYvl z=y)+#s&w4At~!l}KWLL(DrqU=1g%&Zc}9NVwT#6l(O|G>vr zE@;D#sNUT=l<{ZP-}5qVylAvl#j}gmrL$HJ zB@%hr)U&X)cY!)AbM<6Z_ha&j(Y;?tV?17`nd)MBQ1~y-Qn8(rQL|!AK|}Ap<6&k< zI4s7g3S&{0MX5;$MZ)vcci{qdgb7c*dt%9QEcG_f^rFqu^!>=7recVC)S03wX=6+Z zX6E7aJuI@yVJ+8>vuRPuH+-%D1eRd_n% z*ece1_A1c)OWoW@#U}u4F=D1nP%(y!oG>L-dyB3F=SoygOh3{W6PMijg(AZOV?x83dpr(O78r;>xC$FlLUK$$AA+#$Z*oE`(v(3b=8 z28mdSSGxTcJmb8mh?-0ICAPEz@bwjuZwho)ZSW6jW?3}HW41)8W@F2Dc z!L%2A_08g`nhSgLouiE5v0ZvU5MQQezPvGUak%TpvHD?vMc@-?(J&=rlw3~i^dgMc z`x1&=(9ZiGB(qhQ+B&bnECk14Ib>Z;t5FSyLqwOw&8^2~l8jDOv+7WqEWAaukNUq+ zS-5@~=-5987n0Z=bGknDCw9cP)2e$j}#CkzgqcIN%-Z|J>a++76F^Y zrQKdJ228T+<6I{vw?irFEjK!sMqUf{iFdOe#lRL+U6xLktRGnhlK2RpjUPH}zdL!KF?+DUkQ7QUU)qPR9$Gj5!Ub>a>4 z6#(tnCRDb@6ESSorEc4=9}jG+p0^GCac55X#ie(n+#-@SY%&l^(Y0kYo&^y)9Z$b6 zDdaK6zlB)rl23e-cRANfGY6z$W|A=u#`8+x2)Q!yvapD`+M|29GQOT$3aqZz1#Wrt z1oS+VRFd;x>cR_K{WAS#$H;^E7d6ql+Oj@yOCz0v#JX|0CzX2g;O0Gt`_#FDjqF>W zUCh*MfJK8!KfLlMjD;-%0Xq(|xu23uMt)z9ko#Xg?Gy2T z>Cyfc0;B%bPVZCKt{af{CFJOj&t(6708qwx;}0OzcQ*%}^UD1BS%E-UxgZhll`Kj)% z#3>rSKbN_`R+)r%=``s37O;<5WAy(*@6GnxDQ`Ze%;E+Y0$tw?836oNrQLIq%+Xoz z*7V9HkQb3XludInn6Y>!5lejL*Mxa1NM0{uMS{_IB1yDLmsDeWst(J*F?4sx16uMF z2Qj^kI5T4yqu1Gx`pM-1*-`Tv`dY-2{PDAlexJ*zpd6SK^hxwow1P`Kh5Z2iHLgoV zIH3o#7;zYzwJg{bqK2>lqfwJ6qJV5=b2D&3VAMwz+DsjS61~+`^?nT}^v&8PEtdmZ z7D?rFH&MjROCJThV&y2wxetq<1z?a^GRQho*4&MeloD=W*y1yGB!=Upc@-2RfrSob zh@VJ-U$xYIfL4XJormLaB1b?H3rUSPnYbA)&` zqtoq3)2YXaji>At^(86(xL$f>7xIENS}#8cZ)-j+Cq*J&C{GgNKYsLFsjv2LCyq>r zo?oN38)L3{;dXwp>LTX6n?(5g9-y6Wt{vj}d{b+C7sX#m<9DfcHCMXep$yo8=QI`` z9C@WXe7!wV@o;}e{|>DDX;%GVaI&g`m8J2ZT9oy>Wv(g7Y+8HuKSfWcwHN2^%A?Hb zc;Irp0B;uB%$^_LVs`es-iN@HLbe~@ySj!SYaQqN!_m=AbAR-%-Pw0WSA3(%wyO=p z$*wJ@Dkkx`Yy~!r+ZI3Vh9W+RrA>!F@iBe^^M1Y_p1!Sf5x4Mx0t8YPL>-lb$Rz0p z`ZCbn3f)9nhxPCn9C&p^TW(m*L^JFrEROz_*p?v?62^4D9U`j%MbYyK)`CFKA#kVw z%cer4;0jG?K6#wxFUL~vmLJd#P0T3i9LU|zm2#VhQkTcx?Hzt0g2{lveeV@##=1fT zYvbHflv*Rz2FiT6y119)3+Fr3CY7#zB$Tx;p&D3sfyC&GQFzX(5QpvM|8zcu6w1wp zN?V4iP zQz~sypwu8JDHyR$0KU( z22XU;7ADh+QO2%7d$hWl zwQf_$9dRX;fb%#PbtN>HtbjZwo>jd0D&*>NNToKsU#X{u0f|aBlIp80GKDUs{I8;f zL8u{Nzr!!G83fG1WlW;iL}$v^lw10LErOBH5ik+)RJF zWe9|zv<*R=Q^2hnI4$d2Z+f2*-0tJ#5q&$uIfpgHKp}fgy{mGyw-M}nvifG^$T~=Fp3|N)H?jdh zo}+5kZIi;a7+hwfhoy{y&gbB|*CTyz@{p7*m29yqkU~pL@dZ9>*&$-Z4Z~h-zVTwy zO+tbZlo(^fyTAu{=8@!8>GO@@Tb3~c7#2D3Lh4XBv=b_Qho$vKPc^$jXYQYcE*^tN z@2sl&73rm{19cp2l{22li7T27|9O(Kez4@WRNd{y5b zrK31p37!(4Z+39>^a7(RZkIIM4v#|Z0xINVh`+WW-MZPu0U8y+;Q&Bp1akV18FhWN zuvAcfvE3!n-XbvC%AO(K_>P&YHKGB6K8lTrNv{dl;WA_J0>2%{qgI2^-u{uukt|08?@yP(GX zO+V0qIqRJXw4Y9mym_?((&E3w)tJr?v#4$8JXmh6JzV!L#>BiiyPP=Ql_6|4XgbO(GAFIzImR455irX!7wG z{MkI?WD@0=#-#;;*&6yyL`?K`D47D{R z&}%|b^4x%c%CC8);UnkT&4=qF19+6(K}qU1DOopNdm0(3cJ9MEqvJR{CCi^ASuvGl zsEWtt^7oExRvxbB?E-(jRLh4)m&RX`c-IPWvUj|hS`dz|Kw%*^Ux%fn7EasnyA)M}Q`p^WK*sq5(-wjeP*CW)~h$R7vQwmJysd5(# zVo8t;HI;9#6qBT$=8kqhb-AtR5A**ZM~H=StfAn4euujGOt&bcp0wy_u)-H zEM#djgF0BWh&(KO0+2yB%ZWE)@6NClh%PD=)Q5S}$BcqHoDA{XNrC5{<-0(H6F&C&268e z6eA2LX~W$+0Qmp$Ru}(yt1Ha9qAA=`fG#;#mdpZb7V)4n^Ln*hQ&ER6r&z}7Gs4Vg zOrVtA-bFT5!Pn*O^y$gW{}N-79_>}hRAjk6xe=@zW2{vOF|c3 zRF%)vdd>gyMClTOt?KIM3zd2DS6N-7kzE5q$@8EA6rVIo_%pq1Y|T>WuUR~+iZE-k z#sMd)lSHu`Mqq0OAp9dK-1qvqkbh-@>u)8N@zGx5bz2~3&oqyxpXL2Idd`7RAbc}F zmHtin?rP?O1;~TGVK8_QUIM#35#hJyJU-qC#<*jg(BB9;<~u79_NF5RAoShy4iL1J zivA>-fT7Oe%lk*zmthict#Wloz@ED7Zw$8>I&PdZ@kcxw7FBYKD46lJNH{>(Z zywidq4NTWV&Vm3?`aZIfX@j=UTs8#o?zLc?_NhXnf3@SxJGC0n~cG2RM_l@RP=L3jsb z-)NChD2&~3XsRc+9vP}oT+G+95~8{LZuUNmBTm5@K#X2&^Nv(9*xyFE=6Q!68(Y_q zCjHj6%{e@AtLteSJ4e?LDV3xpru&(8Q;YF%2Z5Zv`5WUk1fQNGAK>yR*kHK!5a1vn zc(vCxw%f*d{>|IcB^&cWwvb%Hy_vXQHTcX!n$lSX^WiHUDzzr*zc&IY1`T{8?kbGu z8|YR2L!y0xUAX_=h(?qbR4^0M(2OVJxf$Ek{h~M-R0tIl5ZPs_g^xhUM1V$bBYx?+ z$>AN0abQ3QZ~zulJ)+XPi@!9`ToL=t*_(uzNsZjJ@usuVHlsoam^JTuyfV6{;Q7Wg zK2|#NWX#^&%pIwc-}SVOXMPjVKc?9rg3aQwAzb?s{mQ!k=>?Onxhp8M*fY3Qq z0@|kW6Y)L%s53C=gZFjHLuX?N?fG9>gu;-9nLfU*&Jv`ll=q;ZqOD z9^Yi$bfcFpIHI>(c0$hlY~`*ZVP9W0^}PA6AaFJ{iqyt_%4{`DnF5tTq2qT;!R1jB{n(d7g~6nosZg~LGM_pjG6TfF z7W2acd*Q$_kJn%lprjjq4|LOte<=swrw2FpM?$@`?D&W}vl2(qM2LbXk%@{xCZ0$T zy+9W3-b#F9L3+-?1WrG2KGUH~T|c_qJ{GX0YfrtXq-t$4m?yJiu>^D#3Twk9ge@H` zW-4v4Nv@>-CxoVzdF&82^OVangPH;#JztTyZ5T9jbjU9T#8DH9TX4>jDCp!za_#2weAN*5N z1Uj}Km-0Jc15X;;-!9TyV!_^%k+Zriw$}CLsOQpgTm@NjHgF3V-Rck~NyM`AVFHtS zkCrJ%Kn^m?bR2O$-~3}9Br?&Y=`{_AP&iU(;nf+@s3zKl zaij4^j2Z&h4Bf2-;W@^QP|a)^Un6#o*xn34x?d`lCaauo(rMLfE1NJk>=bkBTo?o8 zeqzB+A-aC59VJqGE|F)BSO0Ih;}<42xc_#PYF}`<21mUtbN5d0g2kt4G72kSNV@u(c99V?6LmcY2!3+vWr?((Bc<@uvR=0!M~Gb8(7^FP7~;( zg-{pk#u%LMg|}h!ss4DMqL?ma?8^U%VjlBwnm@HmvgK2ei%pI>G)JLB^~7zj)i-4Xe&yu? z*jhM1-NfzFHAQ87ccZ|^5?2t{&Y)i)*GdwB+De+k@NV`&|P^Fu3YpKnLBaQ-SpUExaB9VKNSNa`#LivD4 zd#(OtA}*c>`+!WH#QwfZji3yg<|43*=UceyFDM9$3myq?&Sf#nxueG>K3wcEo(QS+ zm!U0gKFVg^F;k*?@m@uXOX^>(8OxhPBWJ>zAKHV6);g*ZW2ak5?<8xXod5B=?aS3^oIV z(uPS@NHDdpQ(M^n7IO@=I&RULy3y)Y)~0M^sddhx<85#Y#~8JWdw3&=^0YR z|I;(rwDJsv(e*R++D8@W@3rQqyf0;#^a~4yJ>rq{#e_#?@&1Nfx0`XghO(EenglmUZ7HSPOO6x8p5goMUoV(%X^%>KoO=0T_axw!BY zL|&gFhF(fBBj;6HEC|06jyMKtpx!eeNS#3~PD(gPB?R)#k*Ifuo2%Am*ksl~+UyD; zm7XjX`6%<6rHx9!B$+xhCeEWuhd4K{y53KEsiTZstukNfOg``qjh+{G5$tyho$iv` zz08&{t9?Od;9FYxEYQe#a?VNdkI&B?nmA(GTs5piOCt>roYYG`Wz z8g;rxlR|CqD@#;6$G_Hnck-4qA7&(Z?npADqHrXyOdHZ~+p4E5_%bRcL7grLkTsIP z4W>c$nW$i3wq`bH=@>Q)z`q_Jr8-8{Z?c+qf!=bHAUleILsczC%vz+Ql5pbV&@D#P zkGYCJdSi*>4z7ThF?o`03g!;JEZ@TF2UcEKouFnheCIa+IAqlDDdfIrTjvTtP862F zelrgG7mN~#8^xmpjIYZ2GDuurK6d@AFWLN;w!l-R4r+$jHSNm~S5l`2Gf>(AvH33= zeJw%)4g^8_szK;(L9+JYz33l8XwfIJ@g|Md%YsYn4A)aWTU%DEos_0NFIw>_8p9E{ zREH?}66Wk^*kZ_bxgh3ODjfE9!K&GC>jTW;>W2bz-;J705&CZ0PoyH|;Vvt-;GOUn z_0!z64mpcl$W5|$Nk20&+Y_Yyc5ZEL6J{3y&)4f2?`4O88STWK3M_Iz1KKTEqX81|# z{8=)Qk3`?_|Ed{oSN<YC5CBp7Bgst>QKnew|c zw};9;#mz_kLsNU)j^x5+-M&y`{Rv7 zy(Tg?mN(^ScMt*469o`&#GHMHp) zWvG?ky08?wgNBAwAiD_DWIha6P|x-|ASC7DD3!KD0JyKg6Hm_Ks2G67WZjM{^Uiwim2%Mz|U(Efz&=U85^P z*UUXO&CDf85PYTdE?mtfF0nAPzL9rf9UT!79G4gCN}K@Kb#h&Sc@6m%;8d@Rl{S~n zheb4z1xdgcfX7+ z!H92tXhq2CO)Xugx#%}R?4cEh;Wpwte^U77y-%L&LRTh0aPYxjPYIUR-I6Xp0~SdEc{b`X}N ztEso0N~N^Z)hk!Xey1 zaF&y9YKpRPNf?(&`!0PsBaA$t$=)U#N6Jc6q+UE$bF-wlfZ3ZSD@|8$xt+tz{ofWnZprpV8V}&O$eU* zc#wN~vf;GbxV8Ui^mTs*QQP2sADZem32Ax1OX)r)m>|iXs_v@nPC>W}t!wjhzsK`& zCtL7tX)Qng_|f$4=J9go;rbgh$t{xFH1b@bc<6a#hP1ab=bG1zRAt4=wivME&=I}2 zez5A2VT*!%N)<%nb2WPOPiO-q6MEH_$1u`s5b%2!(5t_Z zjxId)65~hc5{{3#{2B|4On=XRm)8+@@b}v) zNJ31-!*^5XJ!Tlft0|RM-J!P3g;w3ogK`YGkVwGZ(iTXq)&Hav2)sr7%{rp+a4gJe z8;`?&t}@B>y0G#iUb_AJ^{m_Z{fCtLt~kNW*eOIjni58Pv0NpVg6}VP=CmZXKrd37 z(XT8*EYFdOpd%5|iI+y3%O9ttp08YgPe}bki#rvL$>8JR$uyPA!YFYc zHt$Cnvw+hV56`Bm=hGAe6=qr{ZN$ie;QK-c!+usBICWykRMN7@RIcN(*UyWu)G8!v z1K7uuXJNX^6zTqr8{zT=5LFmP{GAdfVM>;iB$E(r3^xp6M^up@oK_u zKT+&HQOhbus3Elwyxa{oQur-4=ud{BkYg&}j=*re>|JT-{%PNc< zv>s>73{8Sq13X^mlNr)?u1eax{ZUA9m=V>U z+1$wC0c;l}y0lIvhHcYOP3#xZ4BEfzzmSSM3FQ}tLR;wjM<#dobZE9op^bmtq9RH6 z_aSi{i0FBjOJr0SP=}skU4H)6XIv28b1XKqOo)c=5ZPk9<_yY2GM>b%Gx{JDU&Tgk zVeFY7X_uAi4UqIpTp|LLRS+u~rQA_6KDMg9?j)^vLUoLos)-&DK9@4@sT5X^JiyqV zX#%_(li58g){u{`HFbM$w=Uwx;^+}5n)9BrBvXVj4n!6>l{zakh8D-mb+lN5l00mX zzlU5b9r8I#6Hg!#$I6vWT;k!>hRQD!WUdMJw~Qem1l^?@yK}c5S^wyGSY9~Vg-EfY zXJwRA7K`dzY6qWxqOQ2L40}>DnG51;{)N6Oy==YfTnnh_Pjidx52^*AM%6-FqQ*|m z$b?T9A&Mzcx?~N<1E-t_&Ml$NSVkcOQjNwj%c2VRl_if{ddYFp&2tJ=`eJ66jpxP{ zBcgoRYntA0+RYQsMkA{F(5NG}j7BR^ODf6g`Od}FTq~4Ur%FTsF5kusJ zS;`zGt>T82jKLDS4t=q9zoAqL|4GIdcV<~#3*c6bwc@JAo9 zPSMJY$6t3;@fzbowM(5u6u!P5`}!S3b#`9qk#o$dv)n_Anfj~kpCrlgg-i7l*VQ#h zauidWKvIgju6H&k_{q@lkpJ?Z%Zv-YLFx#Ah6>X$nP1W5QDB^+bech zs3ciiC?HB>33Z$mT;BbDX2YlpUZkL3jHN5llBzTzWmG#~ zqQ5nNMr-km^UGRs8<~K{3)pi-mA}GS=O$m-^(3s8LoBh#IN?4y;Vys$Zd;e!n?{Wu zVe!W6rV?n^F25|A;cdx4qr_uM_1(A5r=Zf}!=lOoKjCVxk7H}c`zGBQ2>w@~VVii$ zm0#yJwwXkp1T6K-uJ4zi^^ZnB2N2&o*oBR%9VILU{{uMgHcUaMkq@TxK;g6R2hrGSkl&Fy z*^S)CF$}WKacv2ZZM*G& zcf9W=E_5>e#{SDYV#^%vRB;x5E{-!{x&Geo!K_`K+Aq~envBsd$vB;b1t4#*ZLArG zs?-bA+{S~kkG%IN>jxSh!+@dDOR^kMK&UZIMo2#tdjq}>)ZZ7L1WvD=cG(}R>QWi9 zDDp0vl=jCt?)}8uWDx$Px6nrHXZOO4Qv+U3zb4Fv!p(#qh%4yt(8v-vL-(;ah{EgN z-o}C&9AtLITg{S@`#`(DuNI->%rwzMTfB^=D3Rr4AXhOibNcs|rfbFE1RtbDtC4Ba z1lO;B8>2)~qz^;$PN$Hp3a4Zat{0di)Cvf?D7gQ1QDCQc&{*&&W#V=cW)#fQyT=|J zd=1af_{UqVA>F{-m$c_qu)BzDgna7Ni&HOTJG8reip|n*JBj53AI41*&NE4@cvplk zRFBDP2RHR8MOv7Qz-6Zq12}Y&3Q=PLcB(ec!)7~u#vlTDIKEV|hu$CK$AR%9Z7MQo zy$JlnV_(Oj2PlHP7fU1A-h$tAV-Xt~q;N?=S^ z)YNY!>t^f2*-nxe?RK6^jiYg;RaS{gJ}PhePMXb$tMDTbx0T z9>2zO+W$75UJg&&gl}VX{#!%BvXCJdi(mQ}Fq-?Mviv?cGe`6I?Q=zMh`u#%u!6xZ zV#9>8uu&26Hy}IPqstf6kT`#^gGO58>7F$T3cHgMSsWA)Zgse5G8b_WKDZC_yD$4fgf?qr@dgTSal;0L#}EhzoC^ml z8%qM~eq0;&*$`p+Fvd2Q7L)mr2VWXRva%0iXef=l3{a(aVsJPIwCS3l*`9lLUWBR~CXPsz?=Xt}~Y$3^&_J-MU_qU5zr+O1|`U(G4<#YTm2Sxox1WPH(vO z=KLA41&FNp2~$riw*~Fl1wG~%Uy*c)xO!BlejjK7s$)t%p-ly&L}?pjtc|AaZm|%w zT9TijIe1VLq*GKhY(z!p4{>AGTlBLJ`Q5dZQvlO;(JV;2U4Ua8A*9_Ti|`G&>SUR( z31g)RQBnCaz5;Gc<+bSqG?8fbxQ{3uRPY0W8C87cZVfNTDhbTvNnBrH3pHrP7}-Yc zD;QAY#eYv$oc=#-y=7D!ff6nlEVx5(cLsNNcXtVH!6Cuj-Q6{~ySux)LvVM=4!L)C z?>p!H;WX3C&@eq!^+{EIZ{90)%@Y$=yAxr{$BXgbDFJa^XGm9!+yDNAdNf0}8v&*N z)0#LwJ98>Vr^TuNB~sq_CHNIyKydRq^U`hpdvhS0vcIms`AsU*woEAdvtAFHd?K>6 zj~u-(+5EIrbKK+sC9j=_YSb*wX>SJ2euYy%vELv;b)sAn4Y9lYvNjxMC%;unZq{+K- z_Th1}EZEGdGk7~NTtM|?HJ4G4O+ zARH7lzAEx%!LAwwZUx6l@@=4NU!znm^u=U^fDf2sofVk$PbY=%ua*I`_%+01aGm-U zw25beK?D^WHJcA!WRJHz^=obAbl-2PD$n-Z^gLg4egboZl`)o>$-8T4O&~P-`U#Do z1EyGFY8ok8u>y;ZbrIo3rs6AqO|T$MhQ6|({`k_k`|5S#Ti zCD!{|P>gkfy|a){h-?Bmp|ESA}fD3-6 zoHW&YGG*1Sye6|3ixJ$F#?dhYM6adXzm*RZezKRmR}UB}TlG{}`ya2m8?MZ5O_g_o z>JJ3PX=#1AL{uzKayz8fU(d$rQ*PhStzDbFLDIdt+;c(RH1#h=?b=@UWw!7zo7R3} ze$DJWe>=F}()v4puC1o&x_xAk=S23q{DgdlYCQh!;G!Lg7lWJqrQ~C;@y*`-_GuFE z-1YiOPahDuyL5qOcP^UZIr$D}x`nf~r{%2SwK)@jCo!=RYKR3zfxl78m2~|m`~H6V z-Zz)%W?YT^w)v+4u~&IiG~~ynD<16I%3G3Z?jt9zDc4W0fUW^gFOh7FHD*b}c!*lV zStnm%ijqlZ4P>hDSebik6GENSZOeCrA5XI2_>u{~O}5c5$t-uSE^j|PYMi?(e1*OV z(b+x0rZ2@J6Zmc0D&3TVYaPLZ{XJ7nt((UTPSr(A3FAD)aKi2)fZFf)jfm~h`uC>6 z!v)*t_*=nMPd2AKImO|KxeyOOV&D{1zsDtp6loNj%}21Qqven7J>3P7_+n{OKmHYZ zOj5|KPKY{lve?Ro{yn)pnL+k$5_q=wF8@}wA8OLjnFdr^ut`btfJRdz-(sXlhHr4H zC7)?Qma%NXTrLIbduow6Yl2cQY|AY!MgtG6sLhj;HlJQtfzR6a$nf;h{-Dj}#nfen z#lX(oSUrGP*HsYmmX=yNROGls71;6n^E#}dmR@;8ALjWop7+0ftznCgTflnVw46OYvz@J3y8ZoJKw4$tY;a}p@uiy@44 zli1f9>=}aCZ$GLO9`69%53CqzCEgjO`CKZcd~6jZ(S6~Yiw5q2Z7RXN4+*G6k$nS6 zP)=2x$bOtp#M%NE=nr0PHv64BdM5i`)p(=CMebGO! zLHX0Wh@5?_qnn7|JL??jj}hBWXzcRl3J&X|FH=>E08mM6n`wYww9H1ndI0rF*2Ozh z`c>FdK)OvofXTM`SgoCSLR0Fys6yizI*7mQ++$dT_9#x=kLX~b>^~*3A{>*a{BWOd z^jOw0TqYITo{$b=X725X7q#k)nqwydvp1+fn3!<7Huy%+-bVEJbSgikHQ0|pKI5RR z%dC@NW!G~0c5orph}1#poJgK|DOQ{vNmC)=;g{{?AqX2yau#q}?DtyjJ!YpvtbHZi zDwbO;CW)upIA$sdbDq8JB}h75emE~7yJL1-^4uztkv)gJO*iTk~7j+dK)ZOp zczpH$G8<@(Zhv*DFE0p5tg6=`Y;G z{62v|(1z52sQCAuCpHrbXSuGWVwi#;$reeTIGBNlfq?ZHiv;2}Q#e${dlZ&9K(F}9 zy?IR_=MQJfD1!mL?6v&C`T5YEqb>)epWTI~?{Lwr%V&E$!6`>G0yGMlB4g-2D zQpw@u=%bC!ZPsz%JCN1C-lE zl*T_f^v=nVDHy>5CilJ`*ea29>Fw=6_pw!O1U;2!87#Zce?Zmuu;S4WvhC&so{6r` zMMSb@6rURw)^WPi$H%Axi|y-y9gscRu^Sd!c17U=J4Q9g(IPr|)S8f-Ysepk!-4zf ztONvn-d1=|y2W8cI(fI7!}tBq2wN+>4QTSimb(-|OBEy@tf4in^Xh1$P)4A~>nF*w z9zc2`1%t19__PWvh6l)|dmReU)4QV^T8%-CrGkQ7AtuOfEH<{g53Q`S^&be8k0Zt& zFCyERsA%+-2*tg+1uC;M%K`Uy+>7;i&joOCa4tbx0(RnTSqM@wm0v7(D*dKl20OTGqPJZ@dKn1 z95U^gfT+wr`-%_9egAcVC2WxGt&IrRpJdh#{Wxq2{4(3B7lMM!h^pLFi|fI}uwaOV zd>TzqacZK0oQ6u5LUO++urfbE8yxM2Isp*>QZ!o@6uo$_G3e9ucz8847IiyDGF?GJ zOq{7mEE0=F`0gbMygSxA+k%VS4bpEF;mV937*qeTE(*lYW$#?}kxnuoEirDZ+Tv&U#?jgk260Sth1mIXXERhs-fvzSbz^ z!J?CEcOJ*okpu`usJ9}U4$jaS8Za_5Is?Y+Gr^SM;|y*YYvCD~quj6@;{&id718yi z1890XX`S7}Ik3u{8JVN(V#F^yQd8|$?8o*G8T`!Y8l}d&UE_W8O6V!=ah{w?IB_e@ za>A9ET1;kvtGY1Jhjq$7RS+G)=6QoL$rCn=n$Ri$x47r{3g>3qq?sruO?;-ml4EC? zO+rm()ee{=t=ZA=-RK2#XMzM9UWd{>>lH<=x*lCya6Hf7$;4z)&uyX5L9_zxC#nFw z67;0+D+S_dF@~J=Uz{D}ox2FoLR5Leu9uRIm> zlY)0Z<6IsOySREG6=I&bDJ%blulLtz@F*&zQGUmZ@h7t?DV}^GuCsFeFWL3Of;_jy zm*1yQuY8O&zj(Hv&AlgA9rP(HPvkVv^!oVnJK~G^_|stByzwxa`w<_$isrHyPVXLi zQ4hF^zn#&lW$`lLOo_)K*@pe6MOPI^Ym zLm>qoXH4<=jDBK@eX{Gb(4A<14L22m3cd3qw_zPc(F(Cnk*((5{+$Cqc%GO^NcS{n z{p>=;_{AMsjt3GVxEx`uyGk1#=0S_m&7=u5q5F26JyqjYnx2vaj1<9V|HzSEK-jg0 z0YMnYNFCQ6_tv$u1N!*hsgej!2IO2qgayp<*6fQr$jiNFnb(ld_UX34`rjj9xx36t zpL30$rM3NwlaE^ZR~}={1sr~MZ>ThLWjU4-C9w(P3G=WKvo&*)>Se$qKqaaS^9#Dl zWxyIJS^XNM8?~KNxx$?ald#T3Pt?z1J*BofXw~XHfO1odg~hL4upi&%F9Ng+C>Acz z8Wq|pBWO98zZLPivn!GjZa_E5$PsUppeA1gbm`L20l&8zu4r^UmTTrdjEx?h&9obv zgVRFF?NyYN{MDPyrcC|XAoYvd@L({JyT`Rhcy75$vIX_S!Q-cUvnV(Gk|6e{FfC!3 zv7=HJv6!mbjC#T0vH1KuW+n!mH+I4tvN!W;-e=u9Wr9+2NA3yrT64k3l;2F`%3029 zkTMqqwK9484)GDk4ow|Wc?G;R(+-yY7V?4nmpJec;~5(3fcaBNfhlq+jnDvXUkEJ< zo5EQ<4=}pxmT^eN%QCui1EX<_*wnx{JiE0mBvC_V`QlsQ#N>+B+)?SWb@X_ljSq3r zY(ng1^hwcKu`bx8SSOAX~}FwEOxflAQzA(x{=#ex&c3 ziXoNMPc$xOTa81;xxN=-7!Z6n8Apr*=24<2GH}L5DD4Mj_Bxs;R)!^y>-57Wy$$PT z#4Cky6FkNT(+~x>^tDxH`*9mbZP=~^CKbX4`NE}+1SZPmm)(wMB{$&5-gxr63j3?h zX0N-bGVqETuSS&2j3?yo086DSoc-ePGiL!Mk?+4CtbXRb6io~hK5ku}Os3DYvC;&= zW=7JB55)hxi{RYa+Dr<5#i%}hY{S6r&Sq7TeEsr^u@kR(qp^?S&zOffrI@buO!d5EhiHA-1z-Qc>5NY}O=D** zo>K7%r%!RV4uNo*i@bStbGf38GuhcWV(&8j<#h?@fCbzSe`kF0U#m5krm82yZ(l1 zlj!KDgOfn&oACYpE1hHp!Gn7WyFaoJebK<81Jr7o5FgXNkrjE@_p(4U(4`zNP-Of` zFIR=wl7u#AxfYJ`ZK6ScH3K)`1vQ#3gc9_QPB}s_k~wXa9YYR#9=IvyzWsVNSD8lC zaYU$}zZeOvK9V&_6$W`}oIZkc)sllzj93|q!iF_L(NI_=QMo=Hies5u%$2&R&j*FE z84>?Qvw3@Rk|ua_d-n|vSkuu2SCi%IyUab&FLum)6k<@O+HV1*k^9QpXllPP=7_@m zO5)Jfjo@%09Qcj8_KWaX<7Onhcqk@CB^U+9In|SL2O?9BGtNe$LZ9%UCxH8h2BCdv z4fwY+g-E-4uv_3FUm1*dXBw{40I$=+oGoBZn&+2WP{gBFCCD}kj&kZ6wv8OaMGt#Z zl1pKWT3!>G)}IJP8b{9Rg1%}REJD@ceA1rE-)~jBQrGMcxJ+F6`k)OH#&qRdmzmx2lhHKNf#X5Pj^Hj`J&a4(q`4`es6M7(Ni@#(louZ-ND%o zY&{29eZ_m6-}g;z#qum#ZBK3b`VA1W&ROyZCDXw=jY)~}onn$?=V7o{Rv?RPvaH&8 zzK>*22d{DzpCj9}Tm}Ekw|>?ZKB9)iU{3Yc7M?{?Ce24$YG7Z4b`N@g1KS)so%s42 zMkvK5_LIx-7V}wXi`Zd>ZxDRRLC|3I^FSooQO$vipHRdQ+tH?CMfDL8zkmLn89*iT|Sm&}$QfZl{L^?5-2=v%Q2k_m%Q5ww;-07efz zv^**8d0-q{MzB>*Xf;XMMhCZ4KkKx3bIi~V`T4C~Xw!>V54e0XW7!up9!@3wJE^OO zupJd01&!MhKky1VZjT|{1z!+7a@R>U$x=TQUCIJnk*YH_j?zyzlcO9q=>j2+Ho1k| zxQ@)mWG&iLw@$cRT3w|RK3Hb8%m*$JG&3&M^eiB~y+@PS82Q1vL|do-8FM^q@3&(d z^Ua#o*IQROmM5iSJQw?Y&6VdURXS=f2HB>#E71X{ycVQ29TlGXIX7UyQ6~OnuP;*k z+|$M(q*}2gE{V0lWZ@J+6k&K<{WwZ)>lA_6HscY`$jwPTxmvtvb-7Qc+IWOKT0_znp|jTLF}hE zYVIxggjpKY`i)2*s)c#?8;m(I+NI?NnXCvh;MWLBE}z$ob&bgHYzh|0o9EQeWMtqG zTeO!>$`dc5=Wdfl==!a;l%kgCJc(4uvlhQ1fmG<)BFgaaKRL)-ij&bJ^Ok?me><_m z961c?AeDF*SF8)^%A@v<<;APz9FNvhxQ*SlUPl4YpjoLW!VI}n)+tpg{j99lTHmKn z{^QcbGq)pr@Dbnq?|`?bWAIk~QvHK#pb-Q=CzIxY`NoBFX~&?sTmh!<#$u{uzJTC2 zU&u&|#Z+-}c-DxQA9`>#-J;9EdFzw3OtCcBDkJvXr~F;3G}sVme-O?~0aJO3xQ^c< zV}B}$ZlHGRlgFmp6oBA9B#Y)#-cB%Vn=WVk2A^Q>y9KW;YsZRO8`b_QV9T1}6EKlZ^ z<_7CB@10N`tTVn4Va{nOk3wfBIPAG1qsn77)|x)SjZ^+;NyT3=kZJ)1u8#Fpu zN`8W>OsQl%vr(S40jKesG{7@ECK*i9 zm@9X*0Vnem1S5sAH36r}a*xP~YZZn12`mTks%AaDP5xoOese4eaALO|@&+R7W zkrU^VyCvsT)t9Z8Nh{8tvMjwt~;hLr_CYn{rj(OMY?Z& zkH?K3;3+*hz=oQn+oO&;$2UD&yX(=TKH9NscR_$y)mc(*T>c%hk~gqU{1QVH2e3Nt zQOD&ioX?7$-E5Z9EDk?RUIlv%gFlTVw9-?vu>F%?JH7duO*+?a#}zjGi~KsRVP0(! z4pJ`_()7fXrmO+-Qe8m@svSp$ssXYIVwP|V(oJjIn9*-WSruuZf@Hr8m5vZdg0?V- zNVRHJ@VbON`zg8Gg)bLKx%Vnq70xbFPQstA6A$+rM0yCqD9&>A#&7uAFK^V7oat4&@**wGQl{V zAx|UshSZrdhKM#*0L-iB4o!p0+Px&j z(yNNwfi@M|56|mO4?xEmM;Bbs23Kz~npbD5q)n}*8PIhIkXrwCk$ztNY_c%9prn+q z!fn7s43Bb-yW1#Nuo8Nb&PL$B?%h?!Z7X)U2nM~7;i?7Nc!)9m{PEDpv)+{>+qKnk z_2r{H_E|$tbxY3k@%y^h+770ZThndwlDE~na@DUbbUFBFM~}jjb>v}(3Opke5W>( zCc1cgPp?HEANLAn z%KK*NU<#@Pc^GyzmTg#x`@yz25nC)8sQbl;O+C64h>;s&zadH4Y6Zewce9%rDoY@h z){4M(MqANb0+0=oGFC50A1ze(OQXUz$fil$Xq?S zSR&t&Gay3ylG?B*C>aJ`VW`Q?IC$`aom1_Lx;QLwlwjLi(K`iE07VZ5hSuf)@jclw zo#1LwU^P!dc-1Y_XR2lScNR8z{Lf_~L@4A17YhIdEUX_a)7evUciXqVmCq?om&(@1xA z5uP{b%L|tQ&sHu}rxe4MkPGn-iaEdM{}rkhCwl(6V6|iX#M38Avb7H}qfCscwp6-gyr~&hB@(<_cV)lKad-0wl?h zjYC<|FkKv&g$mOhb+lSC;*Dt^Ph54ArPs?gevIV^xcYarM+MF69~oBQ91crRc1u+) zA|>0`lr>;CCY|e7*kfm`;;XWp<<1&!`ePf zR~MK8Oz9hOW0>rX)Nq1+za1h!CS~Q^EF!TBo@MHjQTfByUJ~@bFCiK!~2ARHhs?o=>2h z<0zkYck#rWgJWDkHI(ThiVeNtGL+E>uu$?i)(pOMf8INNpV*k&vn#~#4-sj1o2s?X zLA!q^sTyK8Mg&r$Gu^J=i)_U7w@@0(Tn$u6s^IfKZVxZ$Nq;R1Sj_(P%frU~%g!UP z5+_9I5x}$%^;V<~p`5zi|811$Z3ZO2NJ!axl>2`qs=H5#O3`TizY^8>(QVuRNL0-4 z9xl2_|COku|07WygFxU0u!It)|5u`7Lmn|FO5IhlGzttt&3R$3#k4hceSB`jx5Xw? z!dRuAOla)YC@iu_cfSu zwGk8F+5t}fOJ`VPBG7Jpy&$nRQx>t4idhc?W~@_QBEpOJA`hfLuBILuNr$0>SK=6A z`ATqyuUsd0;kr@876h^qa)m-MznJ(@`j4Pz${RR@D64RQ5;YV{ts3N8A;t%@Y$yt2cM zu=P!zWkS`Qe{(Z%>t>vV>+oT3x(=iLx*oEHKnHJklPx+ z`7>N+IR`N>_lcq4sV%K=|I^9x^1gy>eOyii|*FxStIJ9nsVR zm{qK#_USIdk6HL#FvRWT+&vQ#W_F0u#-xZNCXvJ-dJW(cWHK|xkG4iG$|b#lD0x3ZVF0S3ayhxdUM#`?wfc*h2p0#Uq@9>C-UQaO9qnvL zIXO|}v}&9fDK$k{SrH&cY@aAzjO(3I9?FwE64;}_qNW%WG*#upLVRtrq#GxONg;F| z$3pCxQLsiFDZ$@l9(8hC|9La`zYtpwQM3YOnb~2hsR>kOdZB+9eZxVF6pcB0C04B; zE4FzY<%+{)+*`O@17K1x!b5e&MN2ps{^cMCbL;P6QAEb543<3t3E#li^#V_Px@)y9 z`sS9o!mE*inKw4q)(o5gH~DV8>`FKxd)a^-7cvIZq;XK^Mk%3V@_?~bqYNmh1xqDf zMyUHRJ}MGST0@_#pCrm)xvSRc-~md8yo4&Rd-0&TtMFrlDoy-MP^^nlyuJ$Onl-FQ zrSH~Q0oc~T4I)4@Gd5OiotGK#r{|cV(03^W)}*S|#n!>kp%VmuZxZIn+Vbs?|8?e# z<+aeKRB?CsfgWh-y~jg|W)g=cMzWj?L=pK0DhzFt(>a*@LU{}-ZK2hD6&oF|0l8Y9 zD$i7?2YZE83qYUwg@@*|6oU1Q2PZOIpqH%GaQgiTS=}08-h%x8k(9jpY`7q_cj~#B zr?off^3#9Y5dwnjAU$7m9yyONcQa*x+Wg0xei4ObA&D0#>KaiTSwDhelaKO$m z0`(H=%8XuJPJvoqRN(WU0Yge$7x`Gc^N(uITB8Cy_pmebDVVyN;i!kEW84+SMFi3E zgebUy_aX{VA`v;ahN|wUhvKm_SH!D!BiTarA0%Fn4{yjTmz#Lt^#?nN&_+K={>ujd z%JX^IJp#a&&=zMt#5@{HQ=X@=kUcWzvYBKlnX{0oLNNs*V0!?_3&iV&UZa9|l?MAZ zel*6Ppjlz z{3*l$;;JP<8T?NJI!W)C^gE>H8k1zLu^=YmIB8;Q1C?|=)Hrpsy;b-`T*GQYZ6U>D zqqbyoCToB|nW#oq@;p3kaWz)jk4~PA!={>y+Cs>KhuS!(aHAs&Dyq22IY0(&P?_) z^^Bd7jvMKTLP}PYc_*_leI6S0axZ;dQ+3!!N@dR3Z;zWM+7z+#*uPSs$zn0{>iZp; zlIFj%Mo=1D9pCBrX1IKWc!PV*r{*m#GmHKWdOQ9YTe_|B?50Z8f^)Apiv4Pk1=106 zWCl$*^ObSO-9#yrAe7~c1cvdS;Z=6OPc2Bip;lp2%Z&Ch#s!xCj{Mp#oFiZHG{J$O zDe=?Qdqm$bB%CXM=kzgqvJI)*pC#C{r_;1#6nZK%*e0U<<@HG`KIU&E*+5k!QBe*pPId-9(`22|@A6Z-m6sXy-Wz z&Tp%)n@ikLhyFu9vBr(-dOY}Gfk;s83dJRBpqI=79Mm|aA0+kEg90 z(a}?Nao1`>8gYdE#Ajx9Q482B(q8|BOSsGCX6&uyVG?La-~Xk=g|-ugl=C-y`v+(JG&}Cu2x*8AQ+WEyOi!!LZ9}?)GL<*{ffj5xQ53MS{%7tNM z<^x>AH}cL%df!0{E+?SqyN)|h5e-|a?Yd|3$LNh>j>d}JP2Na(93WQ-qo9kXB|eF* zW}O6qKW{PM%(^8!jqdSqZmO5}4{5{?b`$>z|3{tdKw0QS*m^Sqt`o(VBNr|~l4%o?_@_cQ8-*2L6`)*=9G?Ye{#X>{yRGkTgl4933b3 ze>7Y~W+C*gxNiks#!N#7PZtN^8iY4En1v1it*>ARM}IF$2K+PR*a!;t@0-ZTI`au` z>wur61}r(aC5hY$5Kqi-lJ!_}317Fxlsq{n_*RhRo`vSCSB-<4@s2 z7T`sqT0T=PZWAa#F=x_OM-Uf8xEw`7gX5Z`QX=11sAbS5!6F8H5Ln(*l+v7lVU)HU z;uh-Db!#X?XBtwajb)MXaVrnA_ib?j53+fx7%G7hYzus-ya_aIHKz5h=^n-PN~%B% zP34-PJ8P)C3l7f#$Bw>`TCfQdvJI=uvem$!#0?lz(5bp*(f|t)Oq1Wne34U&yOVOt zmL4w>9<_-Q9*y(?F{}5$-_WL?NX9qwN8=YlwES*A87|OgM1_-T%j^dJPf(3heEwmp zc|S{?eLg6lNX`wSghjW`f+=C$D^+0^kodEJ?b*+TdMQprn3sv19B{XSzbA|>lzmQ~ z7!Tv=KvZF>Q|o7C3CpWUVr>X~xRJA8+g>O;qe}cw-TSq9wst_(`GHzA(#sEaIQ$K} z$5re=zO{GX;*}wAX5(D>=7Z3$Obj94`1h5y{HM)c*Id56;97}0;?KK9?{G()OCQ(0 zAG3&GgMTSE*ZzcU-y`cY4HFf4q$NEY-J)9Y`jY7pm!r*xTeF6<>gg+{9`=3O?NVr| zoPmezYPXnQ03k_Vkyqk#Kp0#b^$r25X(7-ePso25WgDh`q9SUZ&v8cFignr?xBx{8 zpqG3KC{p+&A6AtOjx6wL)ABx~mfJ;Na)jA_4|w9zz0c@j;M3Uv#IzVU*hgublRXb_S6s5gua(n29obOUS8(FHFk=a8~ZpTrb(jj{BBom&NW{cI0Erl>bqa)EOr1o{yiLL) zf9`DlqpMPgTrPsHlY6&tSBXt{Z+KT+el*j1uW$13y?4C^ZhOSh~!YHAKieRP&|d3Sibv??XTsrheF z3pWis>^oS8pVL+wMe?t0F)`dV27{@@LXJKRHIvW?{W%a;KHlwtV2K#AJi`{*1syy$ z5E13-ueN~%kFcU+QU1%JD(?JS#j`wp(PsuuyJ(|P926rKNvf?dgTWg2B2$DVf|Wvu z0de%al{8|_9{~bNAUTj#3bUyTwJHrA)uBxd+UOs_K%V%0O#1k@*%y6T`cg#^9f%p==IpAcdFl}7*mXxeXSi5p84&a z(N$0V-rHj+OXd_tWQ5 zUox4oOo2AuTujVb(D0+s4Et6moMZ7FrG%D57HsQ`f&$B$V#DW;F=#}*f2O7J@fSnbo zjqvwla2&KkmWEDJ-BikHhSx>gz6C>)D;7Ax2v!Wz^4P+f*e&Y{l{TbDUwq%iYCG8F zTU%QdXT5wABTUZGE%Pgrt>?qNnb&dx!34yZ}G^Q zxBv9*GiOg-{!ib&+~3$xT~X#gI-;FcxtFY{wr?Zspmy*2JKb znul97e4FL}u>)gD70}hIW>8rN)>xJn)m#^;veR33>{aYV(w$Em250*D#;P%{1u9=- zD#rsJ&+D@9jt|G0)@&vIT(-R+7 zQ+<@Qcf7lJRKgy~Qxe8b+B|;cVs95Foa5CoJ-^FIF|P-rQgWBp2u%pWgS*(5JaxY& z^|w!|Wel3E*RfOtAsj)AKm#Eh|5SLY+FUS{4s@=`hJm`3cZN{qlV-`!^ZzkkLBOOV z*&I1AJ^<{UEk+4C(sK3#m-84uqfNZZmOlU^ZDN?_hsM%z?xkApOBBJ(ARV{skp2H@ zmaAKPXFsP~y#JGD*_+hK%-KE*#}Lm-%)Hb%$lHaSa{`uuDiMTfur(8+1O7EzfV7u1 zl$P*UVy+3q%>iVU4?O}h6DO}-#*P0HEpeM$KmmS+(Xd?1t+XOn1*987w$39E-H8^?z~v@bJE@Lf-1v?h##cYyL)sj4ZK#gf?zSmGKxygN z`DinU7sMQi_H)qfS|OPcJU=`@%L)ZPt8r zI2d3rR;tVhZ6;D4%dE6Osry4+cFs|()J^Bo$u=XlG>gKI&rxg}IA)|wV2E{}stzS8u{%+%Nv`|)JL zNQib20No}B8*)XA+aaMN?V~WXhiMJ)SD^RY7oQ#tmevPSi|d=mv&qg4BXb9SgbAH= zP$pCctJ}&`4F18+mEC@|Nl-m_<5La33S7KMQu1&@vH@p*0u(8Dp-&3tsTC-uRqZ z@hlawto6Q>*kXnk)Wwrmh^AkiPHWD2f zd?E8O{82ubW`3PF@}vClxb%I{_rPc#ZKa?7BU<5k!J0p&L;)BXj$alX>rimU{GK7f z=#XLAgs{ZXtk&gBkz{9`8%}eUg6IRAX84y2Xe6ysd~UL2h5P%o5XCR!QW5mjC+s7; zLpPYK(c~E3&+o2VR2aASbI}`L9@g1s{UgNycVNYkzU{r^9cUoEm3=HJF`L$z72Kfa zo(fEM6+!~i20|OZ-FqL$NF5d;S$w9~ha-_a+RLzur$%#vM|T^tfw#b|H|+idfve`1Gps_Qm+buV|C!p*X?K4U2yg=;{G1tU8_0;dK@8VocmGNcGqu`5-l zxhgw{-&O$UZBmNn=T4~lT~KPW^LT$7TX_G!YZc_`kCKNv8$_qVatpkxfmvAL?cXB3 zRw4^%{Ek-Gn4H~-v6t0tAt|4Mja2IjdNdJzP(y!chcX6vvTdt`UigL#0yq1j%(OiN z%)ibbPJICfb2@wddEV>y$6y`)PbD_cSIV4&Opv9s9o*7+f{ls#%^(d;-%V^^&q6r5 zFHsN9@HD4F2es~C6&EZg?SbU~YrNqDV}{YTDH5+-kKmhyUt4HrDE0L_-q|2T5_>C4HM$1qyXf@sUOB*n=~^W6eJi( z4m|&jP!+T2i%j_)%ccoxZ!(SsZaBImL0B0f7cZcL<>J)mX?04Dq;8ruPnIeG*Tgf! z@fD1W7R!OMA{=-=3%cLvT%lj8m0k@G&+ib>mS{j1rjP@1xx64T?1LY z09e6%7oL>W$|Md&VFr^X_s2=xN~hH5BoJ}w_JvQcX)`cyohkLW|9#QoPuMp6^7V3| zdaGj#C=P7m0B>i)3zs>EyUn%4c_gZRw){uKBxDwR-wO1Wg!YcZy}l#c3jeNKbH)H= zCq3Mj0uJEwx{9Mz;j|R4LI#1D2v#a$r?B(4g4kqcxRcYTQRBCW-i)VD+>$;dgR4jT zvj@9?2mYV*f^zuiA{{jp8|xxMEu-h}9knIeYe`L45>~f@=D>zr(QU|;R01KONU%Qn zyE;IbjLpJ4L&9mYC){hLKJ&SkbE3-H%sT=)7$UWCKyFf2Xy!RsEAiW{q1Vf>Ef$#C$!pp9q$SkQ`nAH)^3KrZ zJXJ?tpQequWg38!B93aG#&zz!H=fEszhU4mev?DDr;cc-xbcWV){3OI&`GAwV?|!) z$N;y>52J)UFaRkHabUpXDIsoU7`4mg^sjrY<4QVYstv z?)6YXhKNt-MQj8Vhy8X1Jz`b`w{guA45MbT^ny@9W|jXru%ILgZ1eaARY2S`+&`>I zkY-^2u7iAhgfRi)nbkN8NH*lr&p4OJu6{U723AhI?DEw-g+!-r#O|{;E5x%DzI#$D z#12I&;VP&mRG{~A(_enqi@-+k^9Z7bT#-mnKKDN%aIou(td3*Y!x@#l&FkD=&n^K& zB`S}8P!(vQpNQ55<;I&w?4HR5%kRF&af}j~f%9XYZn3hw-q~#&&Z|`lRCf z5mQXItEpv+0P+10M(UHb@L%|`V2Jlj;Pse&(w>SV9rTA?r#I)#H{1LrtZlE zlj9^9j0{bx4Py9m8>F&`$hP8_GOVci_Ks+;Kga0&NPxj|UjjBPQvvv9K$sXVASadIB;&O{^2Nyxug@N8hNnCL*Sfl0UCK7cRHhRwx0g#{VMp*-k!B!Gns5ZL8b&n zZ{NmQ1)?;!VKsJZS)#Ec-vkt8;6VP+VoD^gUY_v|LHGH$MNBW6?gjjtS~uZCekBr) zz9L03OzBUST!rN&iXqa2q>N;-E<6oRlf*!ka23(fUdr{aQ_`*CUW8MvJ5n| z0=CiPG?BWE7{P47gr!=0d4hr(*m6F8Nb>uqAgyzzK=o|1Q>(Q5_PfU}^(Q{}+7L%2 zM!@1?mJN(=9=)(gQ$*}epH8^gG(WpPd<*;7P7kd->N!Bv zd~);d;7W=y{%u<8;0h?&QFZc1w4vp$3YR7K0U-3^ploLOa&77>fDN%wf+DL31==i! za57*gdU^;|Xg`zQB?A6I40qK&K>GH1WZ6!lti~Mr7pxiI z3b7V*DKz*5Xer)NGE+Rw)J*}Zpz5&6@L!eeUmkGv$xp5Sg(w6kyVoL>s4ufZ%0HHB6HAkM2(4?Xz>Kx9} zV@zDa@e>#`7G8j)K7Vcy#7SU~HnNYaHp~y5TyX@|A~j#VOzD@U+jScyDyKL&rCNG+ zds+PDRW{0WGZR6b=bX~-a1t)HIT(DXRqp1b)^|J9!(JGqo+cf^yle6<>Ey}UUdnPH zh!$DBHFJ&$w^M~xkG)9=d&cG9a?{QR!@ZlR6N{_oPD#|XR!A0v$FH}|uYrL0V=`1< zN-QYTYfo1XJcpGaNrF20N>Hkt~yKd`^L_BjwPNs}ZHsfAiYp^IWi%JVqhO8b*B*Z}_Z4e4uryZ41% z&~c1%*i0Gv?_@_r#4MrC=MXirU`X$q_OP-vWTFCoPk?BdV$w8d_zbxX8|D8)*INd~ zwQW(`AvnR^-6gmNcXx+CaCZov1b26LcPF^JySqzpw{Mek?tSlPe|k4mQ&jcp-fPY= z$9Pu72W~HPsZ_X-&CWJ&rErv2GD9bI@{kGDZr@hbcb?-n@(pg3Drn!SK!zdtAW-V} zLTKY}A%xj~j~5W`%Db-PckTHoj>DKRF#q%6pMZ@o2p2FmftbuxHBpfd{PG`bDJb@Z zX09qmafbAGgvk-j>f$1lE6wANe*~x6dwbm#?mWL3_W-aQ%;! zBP);1Un5V1h&2a=^^#$2;2)WRMS#U<1=9k?+P4~owG`Jz-RbJyk=KrEsSg&5_me?^ z!8cm|o;kZpDrnDo9OLQsjTDfRP& z5u4aCnjC)lZZgLF$m7a5mD}g^rU26xNq)CaFPP^ZR;oap(~?~+{^8`3BQ+Z+P9N~E zrB52aUHSEFlL$xUlr%oa9)CrOz44xpJzO84g=(Hc(Etpu!bq+RbuuNFi`HA1S9aro z%+7l$r2>>z?>%7R#{0zP7qWc#3`Q$*OY6tH%f;ZelCRYs%@IIdwaFB47Iu?m^I1y> z#-g6e6|p8f69n3_Y(7%KjNJvQ@SufbxbVaOV`x+20srsN#w~9AJLJY@EHFhWlR@*X z2{S*!7Ra3nH_QYzVz;*9MI1e*Z$*42{Bq@E+7#!zjD_ZnspU)eQiP+a3W)>ENL^&F zmVF0Ino-UtMvTZ9(M{e1JX$ynfN4XzgT*N(-4hf6ppH?WB7AvSJy2|n(ofU zqu`4p1v7*@)Mr5wtPZ)U2a+A=B#*}(L|k1t1Z6}?fA9L$1SpI|QAE|WA0Q~jOVyNgKc5L*40=WNdG@p<(}aFo!45ElH54xlzVB<6D;8$tOjr!ml#K2Tn( z)fRX$$N>~0ft?g_VN4&!g4m4HLXiNk0LpTzj?ng4a} z(e}?B`|nu6IrmO6G>U}QYv$}?1oJSWaxgTiiuYQ0ypC9O+Nx`x@fZp_p<~W%HxZZF zSIto;)xiE&x)!-V&)-QnlYyaab#Gr~MH-`ie2}4yw?HZECmxygB^Z4n1AlgF>#D4i zMMV-sT3VR8m(yF|G_&01rab_|MZT zolfYu-T~HXE7Zoh&e_Mb4eokW7s_Faebc9Tpq_hqv?uXO0VR`z`8~5qZ>JL=?hz>X zOJ%bQS#YpnObhaLv838MDGu10&}=7l&r7x14`!g*z$t}4G=09l@RhsMZHq^c1I1j6 z9^t$HGRrLi!)+!XxW6CNP>0I6?e3=-)DTwt0SnW9O}(?fxj2YhF7XZQXU)Jx5z#Y6 zU!V$dkOBpM2DTY%B*C{4g?NZJXdBvMN^@1#KPgM}s?2l$h~++HOgB&8NN%T+g%=#= zj>i*LW{$&2VIhC+dH46v+oB=~a@zBQf-AA$7K2TKvpq7{O<#P6uiZm*`-uOw-GOqYR@w(ji{;U;!5g}pdGxMj>3J$7Yec;gILiRo z)v^IjN?14HpZgO%1KA0{46vFxW|VuH*ja)=oD5R;a0NaD`~BqU$EtVp=9o8!*S9YL z#s2u|ri3AY@3g6wXfjedTS!9ydoT#rh!sX!+nG|0BYFawH7<(#Jx`WctM<)L$`ag+ zLHbK_$KEHa;_j!0H>*th5^~>fj|2zzQ1mcI(;t`XcaUD@__MD+mH#@J*EY?6wJQ!k zk}rBx_t|tln!;|@*wmuqE6^TOSJCm5-Pc2&)~=Kr*s)<~o4Iy9 z1?7fN!GTe1cc-*##g~ypH<|uR4(-EU!t9*q=JD`mD}{BwOE(Xp+lf$wF*Fi{k=)S( zW+c7lTT!Y9 zBEq)SkeIDeVzwt}p>al;;p(#eb#ZJ%6kkca2ZDVxN(&(&Fl=%LrK*!4A{)8MJQ(;J zc35Jxw!4FP;Fm965k(Ppt9!zhz&-Y6IeRd0lzvs%^1NXbRJD{1Ddlq@n|&HIAF+ui zrDjzzx8-?($pkT2?O(gsEq_Sd6e0x#owszvXf?rNq!CXPof(40!p3h9*A0d*ipjuJ z8`{03w_t`{dz_o0T&6cF6k)99F{o%L`mW7bMP#1i_qxLywHR^x8hyo9IKJ}NW0dOxvK~SXvA)nxF zKkbHiY~)rh+2I{jK3_-sB4q(CM4y=@D3Uy%`^pb`xsHhV9?&Exb;Y5^fgX+MBDu9O z^1|2DRK#REWcc9)jhlxe~2RLdJ@|p1}nMf`Y0b?+U zbrf_TiKwhQLB&Bm2XS5o0ZYKe1GW?Zjs)UlecLEwYtKv)J9Ybe(9t$vZZ8U(!+9R(7(ri zY#sKcfFy0};MJ~oM@+9s5+tZxEYhGhQl`~O{}5ReMNSavj2-D$oJ&I)`+=C*7-Bg= z&F;0lp&eoISd~L!1yxxuVTs?8q(i~NQIx~X$g_tLuDMK1$lwj!DtBUq;(aiYlwV@j zZR*5PzcgqcIW=)_<+noLJeCmzF}au!uH>e-juME_(L82r4s6hI!m0+pA zsF8_Ka(w4jiw3dRRG_h!@+xcC*Z3gCkC>n?grklPdO3UZ|fZH zO}Lyw;Xt%a^vRvLdCJ<05-+*KR)jw`T`a-NP9jva@DDl1ThXqt=HcSKFfCzMR3?#~ zf2}PgPdqKjHX!WxTwO4M1qf<+wr|{qC(shmQ*>udRG7iJ*674J_rLxAiRoL*ySlzQ z+ka)3(`*kPZZ`TEg6!Ey<<02yKcdJRcsLgZ$947`@9pKJQPE2-mMe0z>2HkUTkITH zAsC@L*$r&S`J;wE!WkU$6CxWD+rJn7!X+)0$;&n2a`=AKZ6l!Qln}k1Z`dfo6wu-Z zdwgjSf38vUYbp9GjIV9F_K~c;M(VBLS5zLg{VR-%{3DDbe_Tc74KtkaoJaBE=jKB> z5d9}fSOO#o`Jss!$I|hKzHk%nU#-chA{tMhPt7# zPg8!fRj8xA6r59{rQqp;jFfl~iU&8MFseQQ^Ba>FweLoLBExw=tYvx67aoL9eeb@4 z6xCHoOKXR;8r`CQk{cG&MBz8%E zI2dVvof=*|4Kn?v+lrU@4r8$W3u7R`-EP3;-FxtGN1M9igh1EkK5?m^6$|`}q2y=a z?{Bl2m!*XYzJy%nRDSo^8S|6ya{qq!*v+yskkfXtP_4SD9BR0c^6)aU~ES6clVS`3l=`)^YdT)(V<)(ndX60pHhD#;smx~`BJ$k z9=edZ;n`}l`%&cp6|%Sf-Ne7$ojw|(4wcGR)<@y9cVE4{cL)e(tFtdd@i6?l-St|> zhwYmc|CIRdyEPD3MO6EgO?Sp&DC~%ixnOO{HJz)A&8vpF&UM#X%q}V}`fzQ<)U)%n zbtOm|2s%m^;qCwR$%aDb=9K8NU5JqV3I6QyztVZfKhpUqy^u&lw5>%9xE`()6hM4l zUCJeth9(6sQv1F=x0f;k%nmTT2@FksKmpNc+b=nOgk2Dyfo>3+Leaox;pN9-{r{JQ zKG#(9V7BH2*peEr1QeBOBtk6gsWhdjIp6W|zY~|Ks2ARo((AHc$I5}E^fJ|i!#(#> zLY#0ZwIWjS30p;hD*-{G;%@C;D0pMNg3x zT&SWb!oj6-F`|sb8=L7;09@oYJo1Cz?f2qQ0ivT7zo@$|Waqysij;C?ocD0WBnywZ z5g;7aHxhI2e}slU5CRp9pmj0qy@fl=yOZ1Z=UK;|FPj3>`VO6nEDT zw{t)~*V`HO914nsb)`RzlfmPO0IX;#+kh2~lQaM>3oQ-fjGGh^|Huez$KbD%6Gaq) zLaQ|RIT(t>7BWzzbW}3CZZD;_p3Y`7YOe2&AJdC3jSj`Mm~OKLDx^<(b;3ULaKbR> zi8!<)ty12!L9Yj$E0jL5skf+02t03{F(^g5=kyv1{Ck1NmplVW37hxU|6Ae9bqpXR zR8ULXX6G*Kd2ya?3&p@GYQZe^GwXr9moOy%QO$GzRn3Q!Xq?qNv3&4fnR?ynE&k)h zcM-#pZ(u=lE3%>^YU;>8(YKt+{VEh9A3))vgX4#%N6_%V|F_91bE@hDLCt$Zb>VmO zdIRvo<0r%06Ts1-BCgiq<&sMH!jq*n&yDN8qNtGPkTEmdl;+_k6+^NBfQPnBw*!eR z+@#=P+I@?7nv%`Tb^YqUviV{fu7Lkm)M4TQ%ibV5ut^{Yh|2ebwo}H6e$&ha=Qq8a zD5|poCpar67k04X204N(+2b$Iz^8xrf<7elY&Q~z^BHXy`aP9czh>Awk;gIczeFCmA({_zgfOn&{!gfFB zB1FOdpoP?>jGG{q_@1?7T~;jH{ehIfWvk*lh?tkRO&SX|V2G*E#i6Xr?!}0<%gd1e zF=N#@0yBm!5PF@a1}?DZd{DRs3Ajk{#t`LahzVsVs|2~f0q+=l)<`iSIgrZ&;d<#lt?FrV?v zvmz$iE0J(cvl?;QM%*&H3BJcy#E!f-A>B;30?X*1t?!m`nUygLwKV@F@QlEfr;W(n z6v&1&^7mL>55%QR7ASQAn8rxWG3@yw_^r#r!G!DLA{wP*L9}d z&Y#=S3*He!+F#M6cP~ALCsv4Rx1u&6Bl30VGqj!TcSKV7-mkerS0fY!jhWhvM1FDk zk^0%9ONLj2Diq8Tyqq`)Wh>a5=I*~|-FIV3WX})$o9CZb%!~Y(lnY#|Ep|QZ z0en%YL7{9`Qr*-zg<9HqQH{Rwv-#DaLSK-valoQ`ag3Z|sSH_ciR^u;>bpa#*M}W& zP=F!LiEm#>cmgf}sO==oCa9`bw|rks;(x3Z7NWn4{kiQDdCYjQc8izb!eAqOB0$u; zV8$DFg!lMpz!+gjz>_nxgs&7pJb*a)0EVH# z@Q!*&Qb^IV26`1ivPBiuoN9b1#2;UysZukESekr;Ow*%V@(^;OKDN8M#4E;F{ZWN| zQj?vA`TM-=BJ+5q$(Eb6_2ezcnRly`5~Y$abN#4FZ-DmFSwas++`!kBci-*#=kUz5 z+eb>Wl9F@8Q9uM$H3_29o(z8{|8cD%T5(3FuK|;d(a-wy74lj0ymdOR^pJ;KfE4P^ zIpOeQJ*yJ1~|IA(|FwkH8?D8h+lh zZcL0rfT&^myk|$gH>~+PF<6}n$=n0F@3~**(SY*U=tX*jBpntMD6XxcR|5R6bdiVgYIeA^uEV18pYRUE=UqV<-8AG#y9)4B} z+xGJM3hhYF7_BtWQ6cePP6C7G_v4tffgT^Rz#zBnAa3Injf7U3;j1&8`|1-)Drfa3iex|5yz$QJ!QcnHU!J7peaeuioQC z{SE%=%X(Px!PNCqaLnG~c?}YZK{fS02*Ov7%l?sFoe0^0JG&DC<-bDto)xSNn=W_3 zgO!ZL=C1(bzxHe)-zl8cCDf|m5Sirneezdu?Yl3#VHy;dbkW_eE$t&uL+AnKb~Kc1 z!{E`_yLli44S)Dq>L;cL@vG6qmN)3KcMx$h(xAuXH_p=IVs4}#^;Vjc{XA|~+)+M0 zXO$o1b~e6o-Cqia?(DxQNz2nUGTCRVUJ3^hL$ZM@2&0vd2IHD$3rBS$rZy{Oi*w2? zc#!|Cd4#KA!;*AC6mnCkgoMe1Ve5EiCC;|-R?!u5udjmkOxvVU561{HA^`73rXil}P z0y#M*3tsT+noC(=$m$YoR${Nk{l>+z=y8#{*T9+`*ek@G5Z9xgN*sGpiECe^g-dtf zy8gLqYZf5H1s)gOD2jB=xa}Sn;Q{<7V1d$s1(H6p%*P=DZIgM`SQ`i+UpD+*!>j}p zG2ltW=mGWM%p$qOg3ZX@&e?=`dXe*a!B9elvp7;z`goxM;Dy9j=B6f~5@v4l4H_`HQ140^pHSapo_H_wnn>=Q%B_TBST8mUzp zta(!y!#HQNHWr!OY@y$3Wkp|TVO|Pt@)LNumVo6L<i)X$gx<01|0oRwPXT`<`B?mpj*w@eerim%yVd>U!)s{I zbSscq{1+4Fb8Bg>qA_LC81Vb{fe{l@f}Gd-;r-|E81q%Dk-dQI!`OU4cedX=z&u7)um7hRJ_wfz? zPy4f-)@x&{s|Q8a^ZLt6!k&g?ux>MRSKSxA@4R=+iD|YT^A;8X2UqwMCm)1LWOkAN z>}k)rEBvJ)s_?uCI`0V zwzY=^_tkT)f}Rbzku@@dWk)ukz1ua7=;8u;jXcj5N}pkU&S}2`uoz~S>BBPv!w5T_ zb78Ia#+ic`em#X2-q`bhttB7Yv?5P|!2tIRz+?9ScRpn%8JcXyCGg`Ao0$lc$hWi)!eP&9IJ+b77yz;tNTo(4>)r3ecB#GQ0m@ zGJECe!A_RJkMRa}BA$#Hjs&FK{kD0DK!5(SR}Ts{X+QO zQ((w|1BpS6bfV)x47Lp7NM9Ac>m+n%kDpdrCwTWShdt6A+BGmhn{t`|PhQ403&~wN zIbiZ4&PFz2YI~h{N3j>;63m+6#cj{Wu1(Xl$mp&!S9e%Faz&jRpG3D@J86a^3ArIu z?2FRH2m2QE3#p**{^o3=mT^TCna1U{q|<6w4B-ms;v?|R?H&W7ac&vtv!DM=ZzY~h zlbmM$gCvF1F6`BF#xPgd`{Xp>w}e>oaf^=KISc)J9EN#rUhH3}>Qw^1U(&3ipox0$ zT=hQx{TS+0GnDU{N42i?iTe8iEJS#RdR~BZ5LWGru8(89y$^pNO-Q+ZBkt5$?iHfe zp?Cg%c6U774uBfM^{}x`P!L`=$8DJpo}_91&2T@)9fBq_tapB|W)1fhnO1D|50|3S zM9DWPZ#i7}BobCJu_|?ZHT^tJ#yLv~R?3`a1nr=V@?aXQ>{>@$Z)C4{SQ5!ZJYn-o zH;e(~{sMv}lImPI{ieGi%a7_?yh+~mAhdSvEBsjMkB8KJ73Y21-f*cg_+-We;msFwvD8nKfJI>#tv> zmGj{7gn}kyHEmP$AR#_|BIV%?wA+#b?|Ioh+q^OEZitckpIB-`fR__4KrVP{S(=CBMgq3ypH)L>4qfTU9R2f5>9EuuIsNoQjnW#U(-RPB#^&|<*z{Oxe~V05 z`F~3) zr2~Jbq^0=Bd;IPK1S%;kO}Dn4K&q@fJC3Zo^P|W-tjq7xfwV9FprkWSJLi>+Q@MqT zSA#qMizYEx;4*4fjIT{gh6nc?`A=r1+vJ;Q=g{cizKpFM7?GiI8zFMytigQjoc_7C z^5QpaGO%EsrL<@KyNixrut3!usWTx>F`um5%qVwsuHmdRdQ2PHKc*)38 z^LGE>JaV5N0rqp2FIkK?L)TO5Cq2Otf|1jk?Y#2MrW4t}v6%|&e_}Hbj)s>uNIXRU zL($LJTrG5KQTXSaODY1&sHO>3yZlEid`OoZINLtc*4wPk=$2=4bsaQ&Cf z6fi$b$Mac+6^k2ti+|Z9Ody|mLbnP)aN-l@Y3umGgYVM&!KgX9R0PvAsN_3qHWNP% zic!fEgbmbxI^KRqlN@fLtb~)jJ%ryu^p7~JdCVDk36r-Ft4e~|eY5c5oauL8PQUyI zPI9*SA2><%JuX+p#G z=kS5!FnS$Fn?@r};xjzsyNQ4!;7~ha`hQPijrugWY{ARx@jAzK{zVq8_y2Yf5Z5Dv zA?roR+Zn)&OYTwsdPMWijEmYe_`IKNb6L7K4F5N#{DFXwAtj58oNoB*tpMQ0I=aZ&PEO0)b&iB_bmGPS%p5LjC$q)}jK) zTH2Ou+G0J?#AsPV)>o>3PjH3Um4I35`m3FGFoVnr@LQ?QVzBA|J(p%i2_xqcxgY8W z21={*4YV`{a4yZntJFRMlv1SiV%qGKpuXUdLLDXs#OSTk!P3QWEQDpKBb;tL?w-GwAdhwP_0vzrrM^$*nmuloSFUfkx`hF#Dzpc=t|9g^P=!v z^X2_{T}73=k40e6zv#syCl(VIi_nP}fDb2A21Sh~9ebE+e99bOM28)yT4o-GApdnE zPrHgeb{Q?F4750HG1clm;#Oe4S-4Sw(;UC@MZ8`CIJFoTvO}%HckD9NaoL<%!IRpV zAZ~U>`#blb<9jpG586VFZ(_dimDAIvMu%oXA>wpAGJ_?kst#DKzXULv6i zBDH3gJf}dzviUr+q^lmX({bUpa4N`(;17H=nWg)NDmwCpWrx@b+LkiktZJP#_aPLP_W;|s*X*3u&%Bca|y+(KphZtUnqPF*sn+Xe1h&>|SnaKjSE zXflQb2=p+Mr|jsFmdE7cSRxBU$8I7nUiDoui0dOczyxyY$sBSAAThAZI_M8~n^t%g zZi$2}WJ~Xgi|L2g4|NmDN6PeICv|rdb}}{deShYNKdJRGymS9?Dhg2@BUb&s5*{bq zuv7E6J(mpS#P(%sMP1#9|6Pns)Z$FiN1y3)22(`xA1k%c!Jm+)qjg*{SEF4jTj&sS zYTCMcpZ!gYT`_G?V0b9(4C=^XO8OGxThv-l)b(-2=rr_nKfPB$lS8NRRye7N)SXE6%bt?TXsk z_aK{0Hs|krn}q1AxhG~)zlk{VXsvD0eFjdUV{!7zE?PixrrzEM7P=pg4BX%aRQhdm<_uspdNh% zDfSnQ1l&1R5D>y>c~=XMT_5FbZ5{MLz*~oVQg*_tgtNN5!h6uISQldj;B4pPEQfmB zJHi*A6?PiiD1Q4zp8QycOY4Cfx$d3WhQOMsM^mY$I<|PSjFC}88dTA*mzA zQ%e#+LucDpk&U%P#`o8_IK=4{xeH~xscNbtSX4`GRaiOSB=^WH%T&-lTKr*1S%5@Q zj`H-<^Rt<4S~kZWp6CEA0lF?s)iJjsBIqu7I5V~)c$oGNwUmat-Mso58M?($Da?A{ z%M5gvviC0>V@>y7a9MPh<1QORB(`T!bm9}V1aNitUZYo1m#_ih7Ey@V@{N83^ll5o zO7cQ6&5=Hf++jmFS{=}I&M{ws;$()7h>`&2 zc^A>;(6SI}$^EKXkvXNLw(L=pxF{#IR;_%dkP7>35=K!iaLe4{8;ubV%iQ4^GiVPA z*pZcIojp!H<3jp;e0K3HF1nX^8@(1$n1C|%O>4Z0DF3+v<#VcD;3GjOSYh9Tgt%dW zx*rEVxZ09#CV0t0FW4Zls-(kEMQ6KARbJEKCTUtxucUp{xF}y7enorxxJV+4vW z5HY3|$%n@!RlXh0EeFvbxw;Akb4js975W5xg=P9o@orIiuke0WVt+i-*r6CIOmQWS z!E$}7Wg^|b`g4)|GOHV*D>C0RO>x(rRc=vr4Az!Wt~ft65wsOoKaEvj!9a+hogoZwwrI%z?i9t_+G7$4)g^ioTwOTm*+M9VcX zv`%0Oeo)Eyc1$zzah>I{cv+Y`_0=UzxpxKuHQPF-U2bkrjBC;9>{{HXOBAD2=m^V{ z#$F_XM;K>v{Xtfvy@2B{UKp^-GseK&)scxWTC;A|i8WXX0uyc+g)bU}+{bZqEO(97 zI?}}q6SACd6ql!zJF+Lu8&c7I2I7)`3x)!LbkEPfeh@S$p|e*DABx){m7_-;4K*SI z5;-J5oerUg_GGh>jvfX6D;ff6{3mbCk@Q`!+WH7s_C~T71 z^t`=u{wYxakIr7UUDBNZ|< z1)=ayN1Xu~7GI6la0?>#JMU>98G;?qEc;N1FgT19X%@y7}L8{~d zg52I~f@boCk=RdnuJq5$gFa8pTlIFec%(j#;&Xd-Eay&-p{mf!oK>MkrElV3jX%0x ziH`-zvR6Uen;V0ges=%Ce+sFK+3WX|fK(;xF@}6AP3>kI3yc&lEX>M%`1YrzMS~q*zGe(mNEzL3s}y(7v4zJL z{7hsuwzHvsT<+npOJa)1;5^DDNmjOvG)rRRX}H7mtM0dUXZ)^@Ie2w%2D8?(VelRf zgm8%~w4YI;zSVRwFOmOYF+)Zw|2BijdE%HlG|=_MHZn<>#c1)5T=5s!och4(Xs(Dd zIgLKYU&wmYPPtwJ7V*17`E@9}uBjgs#vL&0`mVnANB9qY5(Zy`MN;@Dp|TDbG9t0$!@{R7kuS3}O(^|*e;gcZC!nu6wa2CN{X*yLqn7)W zPNYp?a_!y6emO-uts-W-3@};DM^KM#)}2#7v!BNMr(_&Iv__WulRCbian}UbwxW{Q z;F-Bgd`y>FmMRwC=M2S)v!f=#LFkRDZ}1v=RY_x$U;HU^=&`((Z?}@a@6}0xv~}!= z%At^W!*4XwqHyfp>24%o&t6dw6UjXqGGV1|4x-#>L!xG0wUlbn-|4Q$l4-IE8QLl* zw9BIAl7UW7{k!+6c77%vZ{^Gxp=?7CPtcEW-ZKlns8zm1yHJTDL@30Ef{5`_kgkyG zw^RsWX!oPcui{6j<}b_6z!z0B_G2bhnvr0 zv)}yi9Ta@3_xHYEXSafPam93hb0r;oTTP?=8U;6Vh>scjGj?E`eK)8{hb?+FZ2!0L+g{&VUAGN!e|v^z?gt@Mk5r0^5#-LYXwU?1!T>{!%@U*YMDy2 zGC3eim8t2}(`qbS+lJ0Zsly=mhj@1W`8qHw%7c%{zrz?7L>4%)SlMHxBe7{aF^y(Z z=1Nusnsaq>bSYWp$yQI1K1vgW@VmZ6F;Y57?TDh-vCZ;c&9yNzQv)hLoKgG$otFx~TXdy`938m+Dyo{CMsUs#y5k?~GcAgQ zOOq2Pz$Kh#U0-J~q;>Oj&C?jpHIE-czAd_Cs`}Su-A){~F7>r#Vd^~-Zu_2rrOu#k z{8B+vH-mY|C{3$%7UKyo^OfX}-=%Xi^LjtYJijDs`8L2Gc)L+{&^zYEwee{m6b(ta zVUR%?Y(1Hwkcm$fX4-k=(F%N+ad%ywQ8e*%NYOk($+A3#PZG*`I!RWN`eCdj#a5S_ zsChX}r6l!2*84@5jlPEE=Xy9avlKy3OQcJ>y-T)hoak=94=`86#=jFM7`RDuo$D z7u%!xvM+k^G~A$_GiGdwbox$TKV~rrJ=Ug|BtRfPOuH06AL=^0o*H|!wN4-23(F<& zxqNvlnE#2PvA#rhANM*5>>~JXazBUVu1ivJzJmfm+tdBZ1e3c7(5AU z#sROHp;-C@_owLc_5YNdAL6o)AAV2vcUT3s^Gqtir-KplBUtWv(%XERI4-Slf#ZE0 zq2)j0IsUBhx%i6q`>(Y?Az_X;!p9tM$U&<_8`+5Q&~CmBl|~^a!~au$D)}Ix$)c#q z1$Z-R2D}Jgc=X>1Y02#Us0ce%JRf~%ap$(>7{#6ZHpR+$B=f{R<3wkV$A@U-?v&nJ zZlQ2+Z$~*mf5hEv{WWHApvCjN^H`-;8o{gAL5N}mHNx}69Gydf*sbc%kkPCrTYS%@ z(vRYs6G1rw`iDXJ67uw*zh$Uub7T<30)O=t!*|b5$Iio3PSmN7c{6Aq6^EY>MiLY; zAs4acbtHkd6k^u@r$J8?a&I_>$#F}ZCd$~Nh5Rxp8OrM>|22;7uo&J(4qL&|C(f!T zp@uWZq(ULE;U_`RA%h1qlhV%_ht@}F^p$T@kB~@;yS8X-QpLXQUuNXt+0Di(&BUv| zLM9`Y3lT4qs5HszjXYtfU6qkZ#C>l6ezhbKSFX;a8K=AmHk-`=-5V5~E~{fCuS?iv zS{U_9uSIfRq_2dw#9UD)4O|R6S{l3HPe4QHz2V22cZDko`^+)wmB`@P={j8MftCswPi_}r>IalKr=u2f!W3zS zC2R3yt{9^=HB^Udv(1h^iU}lQ{(gBOv|~a#fa`kUBmVw@HRrIwbJ(6{7$&@;s%w>_ zp*lCti3V*&QZMX`J7BU*nGb}rSF8-o;MNh!)wn2b;}N*EpP*#XA`LmE^?Iz8;h^%tc??qm$Cl?&P_I@yzw9D zQr^Hv;0ByeEj<#gwrRaceP$`rI(w%z5N<{iyO-~h#(WJ#e^O5;*UgAMGl#njTfnr( zoJa+2kqg(}D|_F8)&W>nv#eX*Ec=*FjKo=sCoKjHIELh|DUy^El~2R;%!R((M>ss# zjTmEan%9Pn{Tsz%BVBB)%cI z&F0ypa?K_|J0c2VOj1t03W>C3*;gcMxw(AGia5)Cu_TdGs*r16NKz%Pg;dt&_m_LLF_qymJPHmBSn zU+13(>_|kw)|;GU$T1#nH9%c}mnp@)zsyKukF-cXf&4_%xGFcbj6CMaEP@)eIvWV_pvkd`ohbfj_wGZkiY%nMF=L{p{DQyuVwh?J6_%!g2w^f*9NKgbd zGzSJqdGq8+tqFhT>NhPzYtgEKXw=zN^SHKq2!EBP)6J>;@h)UnSmqpKtarqIM zuW`gCTxOZ{-YDJX z-R+E9;t~~KBf(2do$y6}=BmH9oAbyt7-AmM!llX_noLzY$<%P9Bgv_*qynIWj#K>J zEDqk5l>IiCaHKedEVOc!94D}8%S39(vgkH$(DSt2d5)LZhrI+**Rg+`PaFYe6hZu$R$0iN|W-u9Ou;JL|*Eq__^mDyoJk@KHNUvzi+@GM2|UF#MX*B`oI@ZWM$=( zECP#X=v)?`0xg_x&3vEWG+cpKZt{mCoeg1)CfQ$27)`RNzUDkgb7fWrL`Qwd0*X8x zj(jk9d>6AE5(_sYfN=`A8UCF1P!$D}=v898YiAT)N2Ul{ak3Ax3Q@H!kci_%ewa+E z$P=7GxqU3c=PtRru^qP#^hiiMWT?2?cqUqKe|4M+`yBIbsz8O%Sc z1ZOdn$EOKp{k{-fcv{(;o)~nx|M~Rs%Tx`s!ALmuDYw@ zrm#nv#5ZA(tm5q4p_Ue>cIaM&;>N@x59$&p5gw+NWEgWvozoE#&GIRRP*&(?@*hnJ zu4L6iU=+kYxYZF6Ln~d=c#KUwMw{fTewZv?DxGOPbna;ahIrvd7Duc~9z~{Fy``Q% z>_ev71uXrsobuC`4GLBA;Yf{8GS#`eb5hpYqV7hX3P~fzboHb_X6+3uD-=-rQmV9l z2K@~&Gg(+9y+^^Tc=ZSB#!bxgmxarEN+r&zsKlHyWEum?9diA!5hB&T-G3$kY%!`Q z4{h6iNgrHrHeb~c@Or?%8ylr+8ShRI8_$&}pHu%M12zCMVB}Vg>eN52?F=MpkeNgZ zycTKgjAYz2QPs>4FVfKWh0D~Qu-Rhj3T!)cA&tOSg0Il5B;nVNY1maLRTfEpPWJVh zrb$?KnPRKN{c@mnpV1FyN53EZVoSC`X9VRx`M9mA-`BeFUy*-8!rM0O=A&@VU`NgZ zLaYJ=cl7863&FxK1mAQJBqBvl5P9A=cF{uZqkEmkDK;&*(P8wLLu(cy;kuECF^e7& zC?`+$a@H+CrBV_cxte+`KPs6$;{TbuV8PKcpDC#?sk%~4;|F{uz82Zn29hnr9un&9 z7?#toH4Mo?GDKWW33M%7R1;AQF>r~qbXcmV!z05nU?WZlWV^870n+|Gp#lpu0V!(~ z0- zx_^W#rNMDWjVI;FSs)LqT%PP8$xU&|e1R*w0jIvJp(HDi%B67t|4j>4iqns%K2`}+ zI@vy%JO<^_G)6j$T_l?7R$7|L@ADX`lKdhm3Qf2XjP3#{3Lslvgz?wyfWML|Rm!W6 zFOVt;86cbO`!eJ*T923XU5Ab{f^TKwb$aHn*2j*1slexg$|Nr@M3xrN zEh0+!))XvW4&!q}O~%^xv~tuUS=iXM*COfpkk^rtFpc^o%U~F%A;tjZsF=LcaRC`S zRe7Sgp+EfjVYb$nJbr9P^p(XS*EB|kH;H&L7J{5S2~jdH~qM_yE% z6>W8Xk&F1l&zMEHhw3AfqA@aU<`Du8(K4@0b*Nhd&^bL5+Defe5<50!-C+o5%KUMb zmz(Fw^l81oICyb@F!0l zTwP5z&z~-XY#zDZPFAhfU$r!b$&E)fgF@piwcajo8}{Vp^)Lr7ALUrTq9WWVOnB@E ztYSP~JRBanG;w>-@+n-l6cj9bRRgxj?A`LExCXMq%a;eq-unlamfF{I(9x1Pf;OtL z1SK7&b#t54J&ymYtG5hl>-z$=i@UoNhvKfqDK5p`-Q9v)f#UA&?gS0)?(R_B-Qn{8 z-7oKZb7pcTlYQ1qvSrC$>)AgA_bEF%iJl#p%GwvuJ=%BQ&p+N}iAO;nF&Gn%?VoMP zj&|Qu8ancxw8JmPI#a6SA5-j*ZflwyKU7ifm@X$(9JYvmw_X(=ogw3_O6I?tZ$=$? zU9FKtWFT~uprnglyMIqDRo=6=evD!+na33*P&hQUNL}8m@M2n;Qrs+S= zjK)hiDdSaLJzF$?%=D%{`L0GL7b*(xJ+&=uyELy_BwjH|z!xYksJ5gvt`~`+4jMKT zmz`t;77Tz?0W3P?s^#{m(K*}?(>y;FrVMPogR)z$?t= z>s!@R%qkrgub(7JzL;5N3rq(&%WpKHC;$v39Tg!Q*k>*8+o)IC!4@PEl#ZadQ(~z^ zZEr!M&lo+QbPrhml|(>{-4h^@AUIys3G>Mz_<*co!@p|wllz}`6Q+rfwms3}?c7Id zLe9f8@$1Gj(a=K?obmZX`xw^P{hiL4yZUT-qQo<&eaZUaq4PWLxn8Bc{(IAN$np-} z6^eWuvCWi?K2vun1dhgC-6Z`4Xo&X6K*6n-8&Os|h0(}8iV3oYNBg_W;m6CUx$JnLoJHdykcp=)%U{z=k5{fB zL33pZFz;|~sblTEI@dys>ke*qPNS3f1KGPSTgnW>LVgJCUn_t~-z%=KG(**=W&Q5* z`2P2Oz!zeA7Q|HncgZx-!#`syytBHa9+opxLw6Fanb!YtU!C*V=)a338lV5LogSc+ z0`S$)F^3#t5QCu&pTA8o%LRr0pkzaJGz>mTK^w^@D`gUK6cJ$}V{*(7C=GuSf@ix4 zoSxb%#0x8Qj8jv$#9>Cy^DC?;Y0X$7r}WKM>)cwup(UOq9gY!wX$y0dAfth+FDIgr zGg>MVXf=}>)GfUFO#|ioI*&bHu64Jkj#gvnVXeVBoJJ!|a$1G9*>BTK9`QLZd{M*o{V2A`Y{D~)nM^|K* zYF;L$#r(fpt|g{Gg{k*KnK80u+LWsgZL^ING$U# z1>Lqi_UT$b{p}_A&pH2wGS%W!FtDGO5d&hLt!GGJyJx3WIjm7p)QveLwJcU+zPsrO zV;{D<%T3*e9gAC{!mj5Bm_hCKj8uL|j?&LxJc`Vf?s!|H6@0!QZ{C2Un(du(CGLE-_MIGC`Gm7c`RAgyJ0y2M zF8xayTKGx!L-kYC*Zl`~(yEq>*=}#qQ}Vk7?AL?0p}aSjpG46>PUO<@vGq(4i0|Jvi+)scU!%1xy%c+#)A4UgX&P#@AB-YKT zAVL;x7R0P2zU94I+soP-&Y$SVaG|u!r5nz^uGM!kmo|i3He;%PuAPMP_vP+I^8AqrH6By|K@R@5Wbs5$a2D_oN!cO{ zM7TezyB~t;aN+O6xoJ3jg{z)5JskvA7l;@RkKqRa1MwVIn171-hZ}^)e<@R<7!NMa z5xovn3D-_L7!j#u*G0KvM7MOtEs$vD4XnmwotxUw>ASn~Y$kP|e2wGAJ~ghCI?7JF zNwiBM8=!=m*{UW6r?FQ;tmq);_$G$}JQbI^o*D&I8$b_Rg`eF+vvwV46htqXyO5ev zb?ChIzW+n(<3-`SJW7iEUBE{tuYS7TKa`=9m(b?j2$c4|KJ8q6?!p)fcY;EVIlaO% zWU8!(HpbcKWa*(KW0MLr0}QwP_+cNc+eZ+iNW~c2Y<37L#y;KvgX`R{)25ujx1F5x ziBCUNk;+OM{TiB3eruoNH|ZOIa*TxM@$%WpKyD84&6v{St4_9?y!S7s_xSm;?|-vb z?SF8(2fUbbmmr831uoJ;(_Yp6NSu_I`;Aidl`LbD;VdAzG6!yBd01fC`h4MyiSqeo zzxb+>H2H9w->ZO{ur z(=D33`j-lP$QwdFCGR-a1q!xbUfA6~Gihb!-{sxceK^DyRQRr}1xs!K?Z zG)tJKs=UgVU6QI^l$H4!V@EBe)lf>%>YWlNIY`T2R>5ay!A!tCU`#D!iJe+)XHWyf zCAcC!_m`S@!Ici^Mz!q9pKVH~1xk+vCfumgRGc&3k`dik$!SrRjqpeGT4yvlmT~&X z8k!S*)9LvY_{S6IyF+oDzdmO|b6Q~T{NpUm?Ik2(pYU!hw} zy$0;t>mlJY0DU;yK|Jp?RIwyFjY$Esy-E@*Ox0@xMK5x(_p8Gc>&53?zS%LX8!?oa z6#370zsi|kf%5de`(p$Ag=$If6`}tQ|JQZRzhFtRQHoywlq}OS?OBJsipu!DbAP{3 zX3NR&C5%qdy&qceusT7V3t3O;iiP-nCzx~mEF!g5Wi{=o+@?liBrmc?(>mvdsZN#% zW)M-6C0SA?;D%x^pzD3!z9>L!roL<+^XmDw7vbS2^X^^veF+sDMvaHbmV$Z>F{Pk(+-4 z2ahuc-W8_Gw-0IeB?{0YA5{n^Lah^!W8CPn;@TTwd!Mve5|ocsY}vK0|ME%~py7hQ zWoLW`a=bwAY=Dc?>UTk>oC!L_03KvS9!kT#o+hlEkNsj6!M&&C_aD=I6zJe`IC-5| z(U~aD$^C0s|1{(9X+YP4vo?Vb^_@DF~6`0$wsaoW+$RK7$*fj z_x7}>%U-cbT+JM-5ufl4_LqWNS!)Fgg_6Iymq^pt0diTO8q>0VdumwTHZTGX{STV% zGLz;ujC7a78&e$7&WK`+8(l$rnZxSY?|r5Gs}WxKrTo-sv=N*;ebL_gy3LpPqdvtc z@)B^Y_eN-n8w~pkv|g!TetO~-mN*y8@(bt2)Uy2$cTslmR% zmm1UtX|>)m5E;WgBH~~>A;CJ!R8B7$!(p#Ha%9{5W9<%Z>MOR(jN7Vw2jR0Rj!>X# zN*_G+N(3Zn{g4o9>GPgAa4h`;q=&~H2cC0k)`GRfe`0jDSX0G6zYBiWzgD76!AIa# z+5h6l+B$H`)E!RuCQuN^BIauW+4o_Kq|i1uQf@(`ILYy0M9wtlb#{)%f}WX&fu~5; zpinmO0%)$YD78?<wJ`4dW`DVAe6tvYQJdrYUw~AAuQEpRZ?#W}zmM5A$sAFCX^xj`l z5eRV&-3h(Vg`-V&5@|o66g*heBwFP@NEV?T#;)L_+UuO}Jo`wlYP#Dr{%6nB z%%1<>#3c3qo0x>A^^MoA0TzkZAQ9)a4I+|r+z$cg`*(E>P9#zy+Ucwi|3}hKBX)QE zKrUi(671T~P_knbc?K>7MtD2qWXce^&a?mrMU7$V^35I*HOo#tluuAjGf`D=#Er94 zb4Q~K2f(!1u)V5t00SG>2Tz(bA1I(-oEFpCiFkjN4%VNQh6Ne5T&7s|ZR?^1B;JmY zyjjR!q>J6$E*9R3)WnmFhqSCn2?N{j@Kkn~5LX3fc&vwy;4sQ_TpW4y7R`KTUdQlZ!<5n#h%^#tpW z=(a_jTd&l(Q0n0ob`38;+%y>FQnW`yJt6OJAe>a{y~_;QW;k238>> z#7A5kHGhdKW-cjiqZ%@bsAqTV*EF;Y1S{ZNHQcXYl$>A-zy(Tp30pw`CCbq!30buv z_|0j2g-@exo}r8q;yVZ|BlM7U+)>4tw#@N!yZ-?XjI~B%SqvaGsUp(Sr4@w<-@whB zb4#gU$JC3`NyvP`$W3gzmBfc>De%UaG=Ac(g>M*d;|#YVtuaV25V;H-jVZvZI?f%A zvEQ;RrR0I>vBj2lZ=$5k5ffKG$?8C-pxZz~h|gXR_ip)(M{>@YcnGh}F7dfJj%oMn zhV;CC3LX=cP_Z+D$z(ElRYWsUufH|&{zx)FRij8`ZU^?NDo4+2=X z5lm=&1#U+QK0%!V7`UxW>!(`K#3*V1O|M#AN91ZPNUXG@b?6}WN-Vl`LguukewCb# z?ffi&gJh?5weR-(HAlI{|DD68ZKh@fs-Or-zF+I23=DCiHcIu5= z8Ir}a|1DTEgTKa*RKPb`heXF6^PeRN!kS^n|5tfJ8cX<5^L7mQ(66D0hw=RRUH+wv z0_o^dH*ZE+O5vozwYFsDupY*=wMe50y)xI&TO0J)o9S%zfT#Ua+-ybl{qK6PgJ=ECdGF5#u{B6c9$XYha{-c^cP76LN4 z+WP zS?b%a8(Jlqa_U5r@~&pb7&^kZ-3-G!vnX5tY%dpkWzqSwfEMdAX$3EKe%#xD_KfuB}!XTa4MX4E1*q@`BYMljp`6Voy@2YC(Tz*2J~#UA=~ui$w1 z%HeQ_RiLlj+VYleCLr!lw>?762~k7_-Wld~YNFg5IC%x%rXZ}LbBeh>i%8elPEwY8 z_|n|6VLQ8Vu2)#aF*8nE8{%OdqFLy85+Bma`o|WIc$C_6x=&eInBNG2RRNRZr@?bM z2@#HyH~Wf_LKlMXo#!*J!>~|g&6$98WGGc|1_wp7i-=|9FJFJj2o^JIvaF-IYZngy zZ+&%T-pP|UiL+yHfA^Rk>WfDvJH`)7okCT|sK&U3yc8ZLTIe}Wm`=nlv(i;U9KvX| z@^5AUH=-`eD87SKm3Jr{`U5~msxiPzmERHqlxrMKHr8Yl9P0Q346z+et()1M97G;s z&6UeJU|)TLM`MQT8y6@KuZzfzs2yUI%Tm`b>2T=j(P-aO5{5J^ghV_5?8YXcP;K+;}U2`ByZgaf5j=wk`_#LP*IhXFKh-TXEyz$T?11$ zv+|CILuotB8$Ip zF@kCE(l~d2_e0@eob>V~FuWb$k@|?F-tec|66!$=z76&JVFyQJ+&wh`dC?d{QO7*L zC?u35M|!>Zai>86ajEAQH`kB1OHRAlFrH&G4(cfKwn>HrL)HJtpe(tS$lHpVPCS3> zDF0OmN>?7UiUrL#F7?Dag_*~#iqOuxLClmYtmzo9BjT$5P0|XHv}&Tq&pg|m8 zO8g-=q};8y+a{(r!@P5dPE|#%#C~#**q98z+NJ~tVo54LQg9-^VaVHUyV!&KARV<} zoV0O08i3th$oa2yD2i;z4;7dz1y4yr9P4j`bHZVsV%lMKgh zE>4T>v6GWU)rLqKl*j#PH1G}JM9K%Iw z2f_Gt;)XR&b;ag5R5OOW<_}q_J-5bQ&EvRq{-07vWoTiLFE$nDPeP0m@k<02>6J2o$gqG(mDN-Kt7yT*46rEp9;G?G$nY%n*a43VT_*82 z-&kB#i|3ytNLrcue9w{=@(&^p4u09yhazgp;L5r;B8#$;DCbh*nhDYMoIOd#jw9|9 zJdX5!z&xyqk#&#B!Vwluxo8Yu3)4q*jghW@?LK;Eq?x_5(i( z4oNnNv>7R=mcI)|IWgMknv?KS8pg-I*^)6ls@4`)+6T~Er{Mr9{Qk*BDO(!q|DFQ* z$IRf#D2R%6PYu)O)Z1u`9MSq&xMxPO_mNa#mf#`BDJG}GZ6pP=)|{D6x;09eK0^s|4~LZ2(0D?3i9 ziU-b#CkR7sw=uxyLIwX8X%28o!4}5V2NNg)Umzxet?nWhRA7N#p24@s{r2}r$n+b| zr6R7Rp+qkPX+U}-LT2vQI||qap8k0jF=k;%!`Sd>9#x>vg}Dl8_I+Oi9&#Pe*CwdfiZrJsIx3?& z`RjfYWRXR9a$uaS9=&c39of2sbDfA~2q2$^d(J@G&!1}9EQoiYigrM*%>-!}^sZlf zwKdB0AM&8<)qdwk^sN4)H=klH!L%{$t~^ouN}T2Sb#Q3%<1n!g@6vUVZbcFl=WTz_4i!FeYrkwHeKZ~jzX}0GhJoyC{#UFj z@Xi9l+6n z8+NKO5~&(>Zg?(#e<1SJPyTcp2V9IT`HVR}se-`4I<;~Z6g0;*Ma7S+DeVNo7q9mm z^NlxH>%wO9La~z+daJ^BFL-i0&o4>b)RDF4S6DVfV{ooxeZ~z7M94(s^!DijUxSk~Vm`JdihzfQb0(`~-ay8rwlhfBITN1!KzE+7q$i7~ z(_A!`w8czx%{WHjiF6EiTI=#t?r>d{ms-E-1j6!#^<4S=mMPq z8_~7vn@~SDGBM6lTZ0@=M_TmXV;g&|Cw1$0ok#Lk+56Gb{l$eEVB=W|{X*@~LWM-- z-Bgx=1^MXomRO^MfqK-mq11zr9`=7Tw5*YS2pcJ%uN?O)Leh(wf+3Lz$4ds;_doLG&=bC zD|cFIAxv%l^YZ&2cWynRhoKvFX`=GIb&mIa3kKJ(ct(Ok`ue0)9m(uy4j zE4Gxj2-Ufu7vP*^Woot*Ro;hu(s1?v{PIiYq6<#OdfA+_Dt!f9H(e}w5NXb zOi?Dru8oxRQQFY%5xS>w8IuK%OXEv1cPL7)|Z{!4w{d zbu~YVMKMdWDe0W6v}X2xFC;W3!j8qTKU1)YRD;RqSQUc9<-F|hO}n~g58Ga#<;43+ zBQ(BAkWcpMb_@vd}h6 zk+Sl3U`^5hzc&NhWZB4!$dC*UOR=W#G@wI5y=dbwoJaczZ%!^B1It*eeV-$y0m|Hu z8DDSr_|&T>V@el{bBTRSW*xppSOF}0kHQv>Ymm+i>#c>-whlw*i!mMF6!-?LdO+f; zXl1~XUb7)7Lx5H_V4tL9RZ@qGZR6V;El9?^25J;--Cn%)0dbbU{D{z{-v)GzM7gxe zojDz#`@gALf<0b)O4fo0lKN}1*H^M$_$3xB#H3x8G(>hv5M5@O-6`1pj}n!tW)-^qoE{)n-GWV=)Qa_HW_eU4oH!gu4>QWFDw%kn ziE&`iVb}ZRgw7SMz_Q~rLbkq3WvKD3^Wu5N66e#fh=1o;n~$7C!b{%!*RGKK*>&O8 z+*o~ewH9WESlvWrWtk9E9Ay$mk$ZHey$)-KEE_0Vr#x_?OOQ#iXh8;)r6$c)m)(GC zzZ}X8DdRc$UqxC?Tp;swDAl7BHkL4d-hTlmxzblqyJ-Tvz`5G=m1K3b`Yi!mm7f!WFrzdT&`>To{@K_hRrg=I$!hb?=l?;eSl@ z)#qh&cb^R%Il91$`_s23$@1-b2PWBnO@Gw05wor7H|c>d6;+yIsVG=mOxTB4PuG;PhTHjDEP7$ErLijkC~_je}^zw)&pLerQaes)wh}H5|+E_ zC&Rv#Pik#HknL7m&aT?Qma=9&r>-C*_`sP^%4xZgs?;JZ96vp$Y?zxIG>fRs7E&H` zi|2$!X9xPpX$m~)p!sm=Te~%zxmi;B&*`z==sdfdadA$ZDTP-+xsDM%!9Q#}^_#oU zAYH?27QMUpJO^(X&h*CAZN20iFd&H;3co zQ?V9k@6x7E!1Jgdt2r|Mmv=^toH7?}H}pc~Z85&P*i3;>K7qJgPOUU0kAK{sY(Zh| zGnQTM+fr%2l3+Sx=<^keU5SYB2}8FnY(-RY>Zmk)f*@FLrJsS$92271YAna0{nYLqD{Wb9#a6PtEzZG31tMBz&SA-Jm4qY*=u zuu-Ey)2zDGbM?~AF4NaXDutrF#t>jVrE5+}v+0%Z0NL?yx&mKlv;LP%nUw?@E;?ctq^qO?a`<|H6#c92)v;)Oj}9Zq&S`tEcwVx_mjhD1O8{loS2WE+>c;_jdP@b4L$(g7`G*Iv5!*@Kk1L zF84=C{`3AbWI0x2*Q;p1NXpS=qj#r5zyvdhCY_Schu*r%;-iH(lj%7R)Or5-C@b&B zyhR@qdh_g(A9@4T^y~AsRqsK!^YCr=Xksyb;q#Z^zP=k!>AcGet=yS^;|R(H+&<#4B>FFn3d)HyccFpZ@2Yf?K|RE*7f6`wYtIJKhDih z%#Y_u^%8W>2vR?w@=5Qe9G%6(GJdQR94XSnLm8p@PorA)Y_lrS$?qR-Y?n6wtl6U zZ19gsKzk9hu)BYrPY8}nCESOw5c5TUIY{lm$8xaop&yel64)JO+)A5!=SFZ@ z7Ot@UTW?AxPn z_s@1Uc)^J+q!=#Ova&>PXS^Tb5SdO1$hHORDf{RBtx;D98zC(zc#R#y1HzZS(|23e z!ZbzR?HP7vCqRTP?;`m;2lMO^Yh~;s>$ySlCQ$fA9|OmTCw1Sj1HGny`XK`pDXL|e zA6fELvC+BFqxsNDobYS&yGf6$RSj%WpvhqtoA5c)kZw+$hQV%r-czJ7pARV0P3cw2 zXA_*oEtrGk&rH-VV0})9Q@C^ZMrU5f3C3@Np}|9l@ZNc-TJ7rdQyZ}bD_Ft)R! z^QufuAtdeEd*wWedjT@3GB+|_*GthrnPpq78-ym)S<~Ev#svOIYvTX6#uk4DG)e*A zQkj9px*Zf#BPtqaQytb{?mrXY=eJ7ie6u*eE@`#UUZHn(Tmi@&>O94{DrLSX2D3rb zXX-a+CFYH!A{s+(4}UCqq{W#|BWa%|G$8k0|7-kxp9|F<1I)-<1O8O9!+=3U;zU@C z-Y)3aj9oFuk#B`@284I(-dM!JfJjF<@jfA{K{KL4TV))Y#3>FzOy6Z-pBzcko)lR- zXk%uqW^$nwsR`C3-HKGamWrjhz+u*0QYGAHKOH`=kZl)N9aplJ8tr;b@z&l(?Kg3J zxYt8}_RMv7Tel9^K#}@nY-`2jVViC4$M#e`DZ5@);*{I5Kbvar#|@iF)CfiGK)CtkdDFnuboH)ZZtjU#n?dVAK2`6}@bv;^ox+1c`HBjpME^`gR9hkXj7UaCef zU2`OfIOfmAmJ;5+ulnbb{;{%h)T4rk_OU5>#|P2Bf>4(0_eL;e(SEwOxAY{WCmyU; zI14G*F#jDJXIG-VhG&W=6$gm`DhC~WqU6WpO2>?AC77iBzcXvwPs z&ZQxu)hEa01oc~gq-{cA8*Rl5$Wm|2APm1PDd8Tcx0Y1M|m zd4A2$Uf_84x$Q8Kfnu~eo1b_XEQjCd%YJ*E!4BBX-l2*z=R-|r-*rlS>$_~f9oXDH zY_=3@Bg+V(PJ@SUm#vgj#^Qp{IKa1>o3)DKj5xv5`W;XZRm+@=o#SoyOe=e?ayydGj(q+{V0NUWV+Cf#57nKWyLVTRFZ&i%OJ|F8^^4Zq70OaSn-*o% zMyV^+_1Wa-7svDq?xmTvn6wTYX6+=Vx(Gj6rjPpZ8)?Gu2X@EHR0)Cb@r(iZ_V>kG zS=@*{2W-N{tLO`N=G3UTW+!-_Rh6HgbnN3%a5}0-pqY~P)oh1dT$y3Qv#oC+#)NM7 zu*1*+j(NFDR;Z@6f2bcjy54xgsWjirrNi4LBhERWsfJgk6EAO=)RhIGel*3b95<~M z#+TmryxLhyB*1sM!^mgiUu;}QLSqAn*(&mFg4_wdsHqH*%s9;EVh&x1Wo2+US7mhd{ombF-H#{0&|g@8=Hdg zwf&V-Y?K>(QAHH2xNV=G|QjB0p96)dF%hJ%zrIn^x-%I{5+U^5qGyv$hYfS!x|3WMUO1q0X83Z z-Yp+YTGrMdPk{WGW>VxKh|1EGHJj={KKAd%xvJ8fR_J$-~2U(?^vq zD}M2j+Dt|TyA2>Y zHU;Y?gy2>NA2R8OLo3-xd7Di+Ya~tEgrctZf;}#^8sZ$9CO@AIF-;WhU_Zpt;7!k% zo;8LJGoAl(ZCAz_7nbjiyl#H^%Z;oGV zSvS7`;t!@ZP>w!WqUA!C$QYL5lSEX2kl3zjS4|yNTCDVj37YB%UJlz21xT6@?Fd6@ zt=26lLmWW|KOO%Az-&=p|IePPC1`nhQ29(m(sAU3r0ztwQmQ)Xl>-(NVHB3TKke9x zb@65k#BP|n0~)P)K~3zTEq+>y$^Wa;y#PuI{>t-p1o`n0J(~AG&i^ffTte2+&nqJI zlK~6Dm&#R_ zZGPX;o)Mq+bqS1L4{IBlJGa|Skk}AL2O&0>Ja0P^f>eJZ^DuFMQulWuyLD7FK*rE!jQ!+`MfnL+50x{6uyKHkHE;Bd2A+3f`QY_Niy(T6n1i&gSXB z_?+PN`^Lk>A9gA}=e@a9zF+xEomi?WekYoyraM$g>KxfkQ-8j9ec`6Q*xFpDXYaqc zY*&JnC6(S7Nns! zlvcvAhT~#ASPW8D^O+WAG8Wg>LK%gw73qK+sjWs>!@V}=fsd4(Pz4lVx42nrdj<7R za@F69-8i|NQhm3aDh}=5bkmBSV-k4L!1&3P&fE!Sa|~XkYMvWdf}qYlC?FQyqQ!uf zSHN_*>2(&?>%N8UvIr-A-eSnTpDV3YN&hOd6iq>`VQU#Dy>f>%`0@I?%?$o5tyq>{XedF3X76RBPO&4OD%vRkJpveY@gSxZeFCr%j zB4Dzt(kL~3S{~`pSHt1DI=q8L4CrSV9_N&&kXQo4`;>wzI(p$f*j$GhC!jegqMaDt z-V58i_nU})#hO9T*$aGMS_OC@+o`VJ2`l#dC6Zy!B6y0XvPiLw(UA6BO4p}$hwNbq zsPMNlDM<}EtG>6h#HjwQn%77dv!9(k9CP|ED`liFck=VcUXh#5PgPg54agv_$S&BC z0(rb{t{AeXiPOGnq7`N_3)gGv8v85t7g3bLR@fVr?eoXncjCeR$2oD6FWZYN=_y?x zc}upWZV_D+m%+eC0$3l{0s>Vo%46@>0fTMjrBsWBm$ z!+%qBOGs?suQJCgg&HgZ4R#O&TU^q>I5hvKOyZNw+3rHBg*8*gi{9h(D)F?(Ba;~I z*g_iDfnVtH^;Kplsjp6iPJ{{mGJ#wbvVlTGje6|TBFh59TSW3Ixj0MnJ}t?xVSvc8 zm&d;9rvCfuR$!BHT1IJY1V$)47uXYNyH;Ym>wxZ{M4?mv>96r@gY z8#By+^iJ7rbVI-tSOZ%cyvwcmO=)>%n{{2Rjq`xgy&wbeb^*rcxaDx^|Mi#XH5gz$ z+MuJN?tq)w@J|GzQGy9e{ptv=>N5yIVk6Ojm0!QpAf3`W0vZZ@6^=c%mGA!fqbFMJ zQXN=l_~+u7H*h1pj%EUv`VFxaFX0rBaT}|(be-I2l3VL+J)%OS$1WI*$F)Go&irzo zm^>DOo1GqA8x{RiM@v}uy_K>?f}Pn-eRWJLX|iTSO=>(y>z=^+?PiqBG=iM*z3&6* z4EDoQr5!r^Ksb+6`-(DO;gq`X?mSo@a2Zz>{Pb4L8rZ;-#C^C zvUz!Y65nX2w&*%Ml7Y*i)GcPJq`3MYXA4&)g%g#SUZ=EC^v_p<&M|+dspZ~KCUfYA z-ODSlT)44-Ihi;Kq3hjamz|`Q1qAfB6kNb=-HtnMcGYyGx-ZloYWyEnS?O8R`A&^m zb>d2zEn|k2!dO$u4@{ma#ry=gX0LNs=7K48z%k-BdoKo8*4!}f$RZ}0)w7|`cmad{ zKVeH%)J&~Cu}){#MIthzLyY^K*d|azBrKZYrl#T6dEW*7KSSGbUb>@G5_5O8A-cy( z4$Mu>?E40aH+o`t3mYm!GL6QTfTk_RCoZ@C!Eo##8O)c*1-+x4>zfhrEVG(NbdpQm zKaDahA+!{B`bxx7^Kj|hRkVEtzd_1~q--^?xSPXidS7c+m(tC~^s;GhQ{YsdHF*|-I$kkoZfF&aEP`^Co?3-5vsWkqwr#C&=K16HRWw~wIhnD&x5~)x_2W^ zYjA&V55^Q?vpHX1z*J^j_{hI6xEJr5wd?AyM1_B@zicJz%QdbYK)w#Qm=6x|$?=uZk*<7l?O`Fa*&erednR|W2*`k7vq33yu>vZlI5KQ(K zSZ`|TB$xW=;e-K?kEuPZpS5%!*B+mTf(U<>i;-*O2x)g0es^}9Xm7jh^@z6U#J@6@ z#H6ey^UWq*{2gugnoDWfalcoIE)leOLak;9quGU-jGJEMF9S9`)U$g5eRg-;c1lW- zTnVNvxQIBv;rVhAWdp2Q2&Q<)+1XHaMIuVAidDaY3?sS%Z2^e)Spj>|OE+fZoPh4$ z-V&Y*3^$wm{WSyeoa#&~l%a$}?hfR8~kL z^R%iN?7wCAQ;T=XcvmM7O7yU+J4m={Er4HYTjsZTr&ZqnP)~BF?3=FKfd^(fu9N0JhAf|5$GGO4C-!Q+yeq9je3M^vU z%taw!-@eU&fBS~createSavedCopy(); + XmlRpcTools::playlistToXmlRpcValue(playlist, returnValue); return; }