From ea32c5cdcb3ca85b3c912c57a66ea74ab53d31db Mon Sep 17 00:00:00 2001
From: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date: Sun, 13 Nov 2022 17:41:13 +0000
Subject: [PATCH 1/7] SUD Files (#83)
* Adding comments to table definitions.
Update tabledefs so tableitems can have descriptions. Useful to the
coder, but can also export formal xms schema for each table.
* Writing xml schema
Writing xml schema for PAMGuard database with annotations as complex
types
* Working SUD click extractor
Seems to be mostly working and can generate PAMGuard click files
automatically when processing SUD files using the soundtrap click
detector
* Small changes to SUD in PAMGuard
* Better SUD timing
Using latest microsecond time extraction from SUD unpack
* SUD Processing
Extraction of SUD file clicks with SoundTrap Click Detector. Timing now
correct. Added some help pages.
* Functional SUD Reader and SUD Click Extractor
All seems working. Seems to throw the odd exception at end of file, but
works OK.
---
README.html | 433 +++++++++---------
pom.xml | 6 +-
.../org/x3/2.2.0/_remote.repositories | 4 +
repo/pamguard/org/x3/2.2.0/x3-2.2.0.jar | Bin 0 -> 3648682 bytes
repo/pamguard/org/x3/2.2.0/x3-2.2.0.pom | 9 +
src/Acquisition/AcquisitionControl.java | 26 +-
src/Acquisition/AcquisitionLogging.java | 34 +-
src/Acquisition/AcquisitionProcess.java | 8 +-
src/Acquisition/FileInputSystem.java | 136 ++++--
src/Acquisition/FolderInputSystem.java | 5 +
.../filedate/StandardFileDate.java | 7 +
src/Acquisition/filetypes/SUDFileType.java | 29 ++
src/Acquisition/filetypes/SoundFileType.java | 65 +++
src/Acquisition/filetypes/SoundFileTypes.java | 74 +++
.../pamAudio/PamAudioFileManager.java | 2 +-
src/Acquisition/sud/SUDFileTime.java | 86 ++++
.../sud/SUDNotificationHandler.java | 36 ++
.../sud/SUDNotificationManager.java | 66 +++
src/Array/ThreadingHydrophoneLocator.java | 3 +
src/PamController/command/SummaryCommand.java | 4 +-
src/PamModel/PamModel.java | 10 +-
src/PamUtils/PamAudioFileFilter.java | 2 +-
src/PamUtils/XMLUtils.java | 46 ++
src/annotation/calcs/snr/SnrSqlAddon.java | 2 +-
src/annotation/calcs/spl/SPLSqlAddon.java | 8 +-
src/annotation/string/StringSQLLogging.java | 2 +-
.../annotation/BearingAnnotationSQL.java | 20 +-
.../BinaryStorageDialogPanel.java | 24 +-
src/clickDetector/ClickDetector.java | 2 +-
src/generalDatabase/DBControl.java | 15 +
src/generalDatabase/DBProcess.java | 42 ++
src/generalDatabase/DBSchemaWriter.java | 263 +++++++++++
src/generalDatabase/EmptyTableDefinition.java | 2 +-
src/generalDatabase/PamTableDefinition.java | 16 +-
src/generalDatabase/PamTableItem.java | 66 ++-
src/generalDatabase/SQLLogging.java | 7 +
src/help/JavaHelpSearch/DOCS | Bin 77567 -> 77805 bytes
src/help/JavaHelpSearch/DOCS.TAB | Bin 5914 -> 5938 bytes
src/help/JavaHelpSearch/OFFSETS | Bin 1663 -> 1670 bytes
src/help/JavaHelpSearch/POSITIONS | Bin 536904 -> 538162 bytes
src/help/JavaHelpSearch/SCHEMA | 2 +-
src/help/JavaHelpSearch/TMAP | Bin 73728 -> 73728 bytes
src/help/Map.jhm | 4 +
src/help/PAMGUARD.hs | 192 +++++++-
src/help/PAMGUARDIndex.xml | 12 +
src/help/PAMGUARDTOC.xml | 6 +-
.../docs/SoundTrapClickDetector.html | 82 ++++
.../AcquisitionHelp/docs/AcquisitionFile.html | 4 +-
.../AcquisitionHelp/docs/sudfiles.html | 32 ++
.../receive/BuoyStatusData.java | 5 +
.../receive/BuoyStatusDataUnit.java | 5 +
.../receive/NetworkReceiver.java | 2 +-
src/soundtrap/STClickControl.java | 47 ++
src/soundtrap/sud/BCLDetectionChunk.java | 59 +++
src/soundtrap/sud/SudFileDWVHandler.java | 265 +++++++++++
src/whistlesAndMoans/WhistleMoanControl.java | 10 +-
.../WhistleToneConnectProcess.java | 27 +-
57 files changed, 1959 insertions(+), 355 deletions(-)
create mode 100644 repo/pamguard/org/x3/2.2.0/_remote.repositories
create mode 100644 repo/pamguard/org/x3/2.2.0/x3-2.2.0.jar
create mode 100644 repo/pamguard/org/x3/2.2.0/x3-2.2.0.pom
create mode 100644 src/Acquisition/filetypes/SUDFileType.java
create mode 100644 src/Acquisition/filetypes/SoundFileType.java
create mode 100644 src/Acquisition/filetypes/SoundFileTypes.java
create mode 100644 src/Acquisition/sud/SUDFileTime.java
create mode 100644 src/Acquisition/sud/SUDNotificationHandler.java
create mode 100644 src/Acquisition/sud/SUDNotificationManager.java
create mode 100644 src/generalDatabase/DBSchemaWriter.java
create mode 100644 src/help/detectors/clickDetectorHelp/docs/SoundTrapClickDetector.html
create mode 100644 src/help/sound_processing/AcquisitionHelp/docs/sudfiles.html
create mode 100644 src/soundtrap/sud/BCLDetectionChunk.java
create mode 100644 src/soundtrap/sud/SudFileDWVHandler.java
diff --git a/README.html b/README.html
index 1a037634..005a2bf9 100644
--- a/README.html
+++ b/README.html
@@ -15,12 +15,12 @@
@font-face
{font-family:"Calibri Light";
panose-1:2 15 3 2 2 2 4 3 2 4;}
-@font-face
- {font-family:Tahoma;
- panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;}
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin-top:0cm;
@@ -368,8 +368,8 @@ should be something like:
-Xms384m -Xmx4096m -Djava.library.path=lib64 -jar Pamguard_xxxxxx.jar
The -Xms384m -Xmx4096m specify the initial and maximum heap
-size for the JVM being used to run Pamguard i.e. how much memory it gets to use.
-The default max size usually being too low.
+size for the JVM being used to run Pamguard i.e. how much memory it gets to
+use. The default max size usually being too low.
The -Djava.library.path=lib64 tells the JVM that it should
look in the folder called "lib64" for the required shared libraries (change
@@ -381,8 +381,8 @@ a "-m" or "-v" to the list of java arguments. On Windows
just run the appropriately named executable (e.g. PamguardBeta_MixedMode.exe or
PamguardBeta_ViewerMode.exe):
-java
--Xms384m -Xmx4096m -Djava.library.path=lib64 -jar PamguardBeta_xxxxxx.jar -v
+java -Xms384m
+-Xmx4096m -Djava.library.path=lib64 -jar PamguardBeta_xxxxxx.jar -v
@@ -444,7 +444,26 @@ Version 2.00.10 June 2017
Latest Version 2.02.05 October 2022
+lang=EN-US>Latest Version 2.02.06 November 2022
+
+Bug Fix
+
+A memory leak has been found which seems to
+mostly occur in Viewer mode. Some data on background noise measurements are not
+being cleared from memory, so memory will eventually run out. This could happen
+after browsing a lot of data, but was most likely when reprocessing files
+offline, for example running click classifiers. This is now fixed.
+
+New Features
+
+SoundTrap SUD file reading. If you’re using
+SoundTrap autonomous recorders from Ocean Instruments, you no longer need to decompress
+the SoundTrap files prior to processing. This will save time and a lot of disk
+space. Extraction of clicks from the inbuilt SoundTrap Click detector an also
+happen while processing SUD file data with other detectors, thereby
+streamlining the whole processing chain. Read the online Help for details.
+
+Latest Version 2.02.05 October 2022
Click Train Detector Features and Bug Fixes
@@ -452,8 +471,9 @@ lang=EN-US>Latest Version 2.02.05 October 2022
Changes to GUI to make dialog shorter for
low DPI screens.
-Complete rewrite of the classification
-system to have nested classifiers which can be enabled or disabled.
+
+Complete rewrite of the classification system
+to have nested classifiers which can be enabled or disabled.
Changes to classification GUI to
accommodate the new classification system.
@@ -498,9 +518,9 @@ audio files.
Bug Fixes
-Soundtrap DWV import. Will now generate binary
-files even if DWV file doesnÂ’t exist (which is correct behavior in quiet
-conditions when no clicks were detected).
+Soundtrap DWV import. Will now generate
+binary files even if DWV file doesnÂ’t exist (which is correct behavior in
+quiet conditions when no clicks were detected).
Spectrogram. Changes to stop occasional
crashing when restarting processing of wav files.
@@ -534,8 +554,8 @@ running in real time. Added template names based on file names.
#13 Merging files when offline processing file folders: Had
an error introduced in last release which caused it to fail to recognise gaps
between files, meaning that some output data (i.e. after a gap) would have an
-incorrect time stamp. This did not affect data if the ‘merge contiguous files’
-option was not selected.
+incorrect time stamp. This did not affect data if the ‘merge contiguous
+files’ option was not selected.
#14 Logger forms data were not plotting correctly. This was
due to the required data selection functions not being fully implemented. This
@@ -574,23 +594,23 @@ understand the notes listed for Beta
Version 2.00.10 before proceeding with installation and use of this
version.
-This version of PAMGuard has been bundled with Java 16
-(OpenJDK release), so you will not need to install a java runtime engine
-separately. PSFX files generated in previous beta releases (2.xx.xx) should be
-compatible with this version, and vice-versa. PSF files generated in core
-releases (1.15.xx) can be loaded in this version, but will be converted to PSFX
-files when PAMGuard exits.
+This version of PAMGuard has been bundled with Java 16 (OpenJDK
+release), so you will not need to install a java runtime engine separately.
+PSFX files generated in previous beta releases (2.xx.xx) should be compatible
+with this version, and vice-versa. PSF files generated in core releases
+(1.15.xx) can be loaded in this version, but will be converted to PSFX files
+when PAMGuard exits.
File Format Change
-Changes have been made to the binary file format to support
-the output of additional noise outputs for certain detectors (See below).
-Binary files created with this version will not be compatible with earlier
-versions 2.01.### and below. This version will read and may convert earlier
-format binary files.
+Changes have been made to the binary file format to support the
+output of additional noise outputs for certain detectors (See below). Binary
+files created with this version will not be compatible with earlier versions
+2.01.### and below. This version will read and may convert earlier format
+binary files.
@@ -608,10 +628,10 @@ href="http://www.pamguard.org/downloads.php?cat_id=3">here.
Detection Group Localiser
-This module has been renamed “Detection Grouper”, so as to
-avoid confusion with the Group 3D localizer. This is because the Detection
-Grouper is more for organizing data into groups to be localized than it is for
-doing localization.
+This module has been renamed “Detection Grouper”, so
+as to avoid confusion with the Group 3D localizer. This is because the
+Detection Grouper is more for organizing data into groups to be localized than
+it is for doing localization.
Minor Bug Fixes
@@ -729,10 +749,10 @@ included in a future release.
17.
An implementation of the Generalized Power Law Detector, developed by Tyler
-Helble ([Helble et al., ‘A generalized power-law detection algorithm for humpback
-whale vocalizations’, The Journal of the Acoustical Society of America, vol.
-131, no. 4, pp. 2682–2699, 2012) is now available. For details, see the online
-help
+Helble ([Helble et al., ‘A generalized power-law detection algorithm for
+humpback whale vocalizations’, The Journal of the Acoustical Society of
+America, vol. 131, no. 4, pp. 2682–2699, 2012) is now available. For
+details, see the online help
18.
@@ -754,10 +774,10 @@ Version 2.00.10 before proceeding with installation and use of this
version.
This version of PAMGuard has been bundled with Java 13
-(release 13.0.1). PSFX files generated in previous beta releases (2.xx.xx) should
-be compatible with this version, and vice-versa. PSF files generated in core
-releases (1.15.xx) can be loaded in this version, but will be converted to PSFX
-files when PAMGuard exits.
+(release 13.0.1). PSFX files generated in previous beta releases (2.xx.xx)
+should be compatible with this version, and vice-versa. PSF files generated in
+core releases (1.15.xx) can be loaded in this version, but will be converted to
+PSFX files when PAMGuard exits.
Bug Fixes
@@ -840,8 +860,8 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
Added logger form annotation to Spectrogram Annotation module.
6.
-Better auto-scaling in Ishmael Detector graphics window.
+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> Better auto-scaling in Ishmael Detector graphics window.
7.
@@ -968,8 +988,8 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
Upgrades
1.
-Add functionality for bluetooth headsets.
+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> Add functionality for bluetooth headsets.
2. &nb
Bug 441. Plot coordinate calculations incorrect in PamAxis.
10.
-Bug 442. BT Display does not change click symbol color when Colour By
-Superdetection is selected.
+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> Bug 442. BT Display does not change click symbol color when
+Colour By Superdetection is selected.
11.
@@ -1108,8 +1128,8 @@ files.
13.
-Bug 445. Overlay data in FX spectrogram display gets out of sync with underlying
-spectrogram image.
+Bug 445. Overlay data in FX spectrogram display gets out of sync with
+underlying spectrogram image.
14.
@@ -1182,9 +1202,9 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
Added a few new options to the Click Detector Sweep Classifier.
10.
-Add option to the Map module's Plot Overlay Options dialog, to show events
-occuring in the future (look
+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> Add option to the Map module's Plot Overlay Options dialog,
+to show events occuring in the future (look
ahead) instead of the default display of events which have already
occurred. Can make it easier to match up the map with clicks seen in the Click
Detector display.
@@ -1234,8 +1254,9 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
Bug 429. Click Bearings at 180 degrees
4.
-Bug 430. Rocca calculates inflection point parameters incorrectly
+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> Bug 430. Rocca calculates inflection point parameters
+incorrectly
5.
Upgrades
1.
-New display for Gebco Netcdf bathymetry maps.
+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> New display for Gebco Netcdf bathymetry maps.
2.
12.
-Bug 425. Rocca crashing if Click Detector is used as source but the
-Click Classifier is not configured properly.
+Bug 425. Rocca crashing if Click Detector is used as source but the Click
+Classifier is not configured properly.
13.
@@ -1346,9 +1367,9 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
Upgrades to the Group Localiser, including better error estimation.
2.
-Click Train Detector upgrades, including ability to import time chunks from csv
-file for batch processing.
+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> Click Train Detector upgrades, including ability to import
+time chunks from csv file for batch processing.
3. &nb
Updates to the Ishmael module.
9.
-Added option to the WarnOnce dialog to hide a warning for the current PAMGuard
-session, but not forever.
+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> Added option to the WarnOnce dialog to hide a warning for
+the current PAMGuard session, but not forever.
-Beta Version 2.00.14c
-October 2018
+Beta Version
+2.00.14c October 2018
PAMGuard Version 2 contains major updates.
You should read and understand the notes listed for &nb
lang=EN-US> Added decimal degrees option to latitude/longitude dialog.
2.
-Added option in the Click Delay parameters to restrict the number of initial
-samples used in the calculation. This can be useful for cleaning up delays in
-the presence of echoes and small time delays.
+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> Added option in the Click Delay parameters to restrict the
+number of initial samples used in the calculation. This can be useful for
+cleaning up delays in the presence of echoes and small time delays.
3.
@@ -1589,7 +1610,8 @@ Annotation module which has now been given two text type annotations.
9.
-Bug 391. Click Detector not registering change in multi-threading option.
+Bug 391. Click Detector not registering change in multi-threading
+option.
10.
@@ -1632,11 +1654,11 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
lang=EN-US> Added ability to read differential GPS data.
5.
-Added check for duplicate settings in the psf file when exiting Pamguard. If
-duplicate settings are found, user is given the option to leave them in the psf
-or get rid of them. Duplicate settings are ignored by Pamguard, but can cause
-the psf file to grow large over time.
+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> Added check for duplicate settings in the psf file when
+exiting Pamguard. If duplicate settings are found, user is given the option to
+leave them in the psf or get rid of them. Duplicate settings are ignored by
+Pamguard, but can cause the psf file to grow large over time.
6.
@@ -1704,8 +1726,8 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
10.
-Bug 376. Error when using a serialised data map which spans a period of time
-in which Pamguard modules have changed.
+Bug 376. Error when using a serialised data map which spans a period of
+time in which Pamguard modules have changed.
11.
@@ -1744,8 +1766,9 @@ used in older versions. Older psf files can be loaded with this version, but
will be converted.
4.
-Many updates to the Video Range module. Will currently only work with landmarks.
+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> Many updates to the Video Range module. Will currently only
+work with landmarks.
@@ -1808,8 +1831,8 @@ Beta versions
11.
-Bug 366. Rocca manual whistle contour extraction throws error when trying
-to classify a boxed whistle
+Bug 366. Rocca manual whistle contour extraction throws error when
+trying to classify a boxed whistle
Upgrades
@@ -1878,8 +1901,8 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
10.
-Bug 354. Whistle Classifier was crashing if user accidentally entered invalid
-parameters. Have added diagnostics to prevent this.
+Bug 354. Whistle Classifier was crashing if user accidentally entered
+invalid parameters. Have added diagnostics to prevent this.
Upgrades
@@ -2009,8 +2032,8 @@ C:\MySurvey\binarydata_WithUID.
The additional UID column will be added to
all database tables and populated with unique values. For data which are stored
-in both the binary files and in database tables, the same UIDĂ‚Â’s will be used in
-both data stores.
+in both the binary files and in database tables, the same UIDĂ‚Â’s will be used
+in both data stores.
New Displays
@@ -2024,11 +2047,11 @@ Note that this display is only available if you are running Java 8 or later. Event Marking and the Detection Group Localiser
-A new system of event marking which can be used
-both online and offline has been added to PAMGuard. Details are in the PAMGuard
-help file (Displays/Display Marking). Data can be selected on the Map, the
-Spectrogram Display and the new Time Display FX in a similar way and sent to
-other PAMGuard modules. The new marking and data selection system works with
+A new system of event marking which can be
+used both online and offline has been added to PAMGuard. Details are in the
+PAMGuard help file (Displays/Display Marking). Data can be selected on the Map,
+the Spectrogram Display and the new Time Display FX in a similar way and sent
+to other PAMGuard modules. The new marking and data selection system works with
the new Detection Group Localiser. The Detection Group Localiser extends the
functionality which always existed in the click detector to other types of data
(e.g. Whistles) so that they can be grouped and tracked using target motion
@@ -2146,15 +2169,15 @@ working folder, and therefore is set incorrectly. This has been fixed.
5.
-Bug 314. If PAMGuard is started by double-clicking on a psf, nothing
-happens when the user selects save as new configuration. This has been fixed.
+Bug 314. If PAMGuard is started by double-clicking on a psf, nothing happens
+when the user selects save as new configuration. This has been fixed.
6.
Bug 315. code searched for file in working folder, which is the
installation folder when starting PAMGuard using a shortcut link. But when
-double-clicking on a psf, the working folder is the location of the psf. This has
-been fixed.
+double-clicking on a psf, the working folder is the location of the psf. This
+has been fixed.
7. Module code development remains largely
unchanged, in most cases simply requiring the addition of an interface class.
- Instructions for the development of new modules utilizing the plug-in scheme
-can be found here. Plug-in modules can be downloaded from the
PAMGuard website here, but developers are encouraged to host and maintain their
own modules.
@@ -2192,8 +2215,8 @@ own modules.
Modules of interest to the general PAM
community will remain as part of the core PAMGuard installation. However,
specialized modules which are useful to only a small number of users have been
-removed and are available as a separate download. The following modules have been
-removed:
+removed and are available as a separate download. The following modules have
+been removed:
1.
@@ -2244,19 +2267,19 @@ November 2016
1.
Bug 303. Some ASIO sound cards not working with either ASIO system in PAMGuard.
For the PAMGuard ASIO system, this was due to a data format used by some sound
-cards never being properly implemented. For the “New ASIO system” which is
-based on jAsioHost, the unpacking of that format contained a bug which returned
-incorrect numbers, so data were swamped with noise. Both systems are now fixed.
-By preference, users should use the PAMGuard ASIO system since the JAsioHost
-based system seems to drop samples when many channels are running at high
-sample rate.
+cards never being properly implemented. For the “New ASIO system” which
+is based on jAsioHost, the unpacking of that format contained a bug which
+returned incorrect numbers, so data were swamped with noise. Both systems are
+now fixed. By preference, users should use the PAMGuard ASIO system since the
+JAsioHost based system seems to drop samples when many channels are running at
+high sample rate.
2.
Bug 305. Date and Time not being correctly
extracted from wav files created using SoundTrap recorders. Fixed by correctly
-finding and unpacking information in the accompanying xml log files that come with
-SoundTrap files.
+finding and unpacking information in the accompanying xml log files that come
+with SoundTrap files.
Version 1.15.06
November 2016
@@ -2290,8 +2313,8 @@ data for the least square model. Both fixed.
4.
-Bug 294. Click classifier was crashing when the 'min amplitude' option
-was used. This is fixed.
+Bug 294. Click classifier was crashing when the 'min amplitude' option was
+used. This is fixed.
5.
@@ -2375,9 +2398,9 @@ the database.
2.
-The number of data streams associated with the click detector
-has been tidied up so that there are a) All Click, b) Tracked Clicks (those
-which are part of an event) and c) Events.
+The number of data streams associated with the click
+detector has been tidied up so that there are a) All Click, b) Tracked Clicks
+(those which are part of an event) and c) Events.
3.
@@ -2393,9 +2416,9 @@ automatic click train identification and tracking.
5.
-The automatic click train identification is now using the
-same internal structures as the manual tracking, so it's possible to combine
-automatic and manual tracking.
+The automatic click train identification is now using
+the same internal structures as the manual tracking, so it's possible to
+combine automatic and manual tracking.
6.
@@ -2475,8 +2498,9 @@ today.
5.
-Bug 277. Text fields in classifier dialog were not large enough to display
-times greater than 10ms. We have increased length of text fields in the dialog.
+Bug 277. Text fields in classifier dialog were not large enough to
+display times greater than 10ms. We have increased length of text fields in the
+dialog.
6.
@@ -2494,8 +2518,8 @@ style='font-size:7.0pt;font-family:"Times New Roman",serif'> &n
Bug 279. GUI Resizing: The whole PAMGuard GUI would suddenly resize to
something very small when a dialog is opened. This has been traced to improper
use of a common dialog component SourcePanel which tries to repack its parent
-Window. Some programmers had inadvertently set it to repack the main PAMGuard GUI
-instead. This has been Fixed.
+Window. Some programmers had inadvertently set it to repack the main PAMGuard
+GUI instead. This has been Fixed.
8.
@@ -2569,8 +2593,8 @@ and datagram creation.
Version 1.15.00 February 2016
-Beta Version 1.15.00 64 bit and Core version
-1.15.00 32 bit. Both using identical Java core software but linking to
+Beta Version 1.15.00 64 bit and Core
+version 1.15.00 32 bit. Both using identical Java core software but linking to
different libraries for control of sound input devices.
This is the first release of a 64 bit
@@ -2638,12 +2662,12 @@ boundaries when file durations are set to a maximum fixed value.
5.
-Bug 262. Access to SQLite database conversion. This would fail when tables
-were present which were not created by PAMGuard. Fixes have been put in
-place for spaces in the table name or for not having an 'Id' column. Fixes have
-not been implemented for spaces in a column name or use of a reserved word as a
-column name, however if either of these problems do exist it will no longer
-crash but issue a clear warning and carry onto the next table.
+Bug 262. Access to SQLite database conversion. This would fail when
+tables were present which were not created by PAMGuard. Fixes have been
+put in place for spaces in the table name or for not having an 'Id' column.
+Fixes have not been implemented for spaces in a column name or use of a
+reserved word as a column name, however if either of these problems do exist it
+will no longer crash but issue a clear warning and carry onto the next table.
@@ -2878,8 +2902,8 @@ minutes and seconds. Now correctly displays the number of remaining days.
4.
-Bug 226. Spectrogram Mark Observer list doesn't refresh when modules added
-or removed.
+Bug 226. Spectrogram Mark Observer list doesn't refresh when modules
+added or removed.
5.
@@ -3049,12 +3073,11 @@ sonobuoys. See online help for details.
MEAL Localiser (Localisation Group)
-This module, developed by Jamie Macaulay of St Andrews
-University estimates the 3D localisation of clicks using a variety of
-algorithms. It's primarily been developed to track harbour porpoise in three
-dimensions over scales of 10's of metres. While currently only working with
-output from the click detector, we hope eventually to extend its use to
-whistles as well.
+This module, developed by Jamie Macaulay of St Andrews University
+estimates the 3D localisation of clicks using a variety of algorithms. It's
+primarily been developed to track harbour porpoise in three dimensions over
+scales of 10's of metres. While currently only working with output from the
+click detector, we hope eventually to extend its use to whistles as well.
Accelerometer Readout (Sensors group)
@@ -3072,12 +3095,12 @@ marine mammal survey package. See online help for details.
Alarms (Utilities Group)
-This is a general system of visual and audio alarms developed
-by Doug Gillespie for use on a variety of projects. The alarms can be coupled
-to any module or detector in PAMGuard. Where appropriate, modules can control
-which of their data will cause an alarm action (e.g. in the Click detector you
-can set which types of classified click will fire the alarm). See online help
-for details.
+This is a general system of visual and audio alarms
+developed by Doug Gillespie for use on a variety of projects. The alarms can be
+coupled to any module or detector in PAMGuard. Where appropriate, modules can
+control which of their data will cause an alarm action (e.g. in the Click
+detector you can set which types of classified click will fire the alarm). See
+online help for details.
Noise Band Monitor (Sound Processing Group)
@@ -3141,8 +3164,8 @@ Millisecond time is also now included in the output file names.
Datagram options in Viewer have been improved so that the
user has to verify the time binning for datagrams the first time the viewer is
-run and can also change the time bins from the File menu (See the File/BinaryStore/Datagram
-options menu.
+run and can also change the time bins from the File menu (See the
+File/BinaryStore/Datagram options menu.
Viewer Configuration
@@ -3164,8 +3187,8 @@ horizon.
Improved Filter Options
-Filter options (used as stand-alone filter modules and also
-within many other modules, such as the click detector and the Filtered Noise
+
Filter options (used as stand-alone filter modules and also within
+many other modules, such as the click detector and the Filtered Noise
Measurement module) have been improved so that the user can specify arbitrarily
shaped Finite Impulse Response filters (see online help for details).
@@ -3275,9 +3298,9 @@ other data sources for the PAMGuard viewer.
Database
-Can now copy data from binary storage
-to the database offline for any module having both binary and database storage.
-
+Can now copy data from binary
+storage to the database offline for any module having both binary and database
+storage.
Can create a blank MS Access
database (2007 and later *.accdb formats only).
@@ -3376,8 +3399,8 @@ elements has been fixed.
'
-Database Speed: A substantial rewriting of some of the indexing methods in
-the database module has led to a significant increase in the speed at which
+Database Speed: A substantial rewriting of some of the indexing methods
+in the database module has led to a significant increase in the speed at which
data are written to the database (orders of magnitude for large databases).
This is having a significant impact on the overall reliability of the software.
Other changes have increased the speed (again by orders of magnitude) at which
@@ -3469,9 +3492,9 @@ Symbol'>''
Offline event marking. Offline event marking similar to functionality in
-RainbowClick is now available in the PAMGUARD viewer. Event summary data is stored
-in the database and can also be exported to text files (e.g. for importing into
-the Distance software).
+RainbowClick is now available in the PAMGUARD viewer. Event summary data is
+stored in the database and can also be exported to text files (e.g. for
+importing into the Distance software).
'
@@ -3506,8 +3529,8 @@ features of the display:
'
-The spectrogram will automatically generate and display spectrogram
-data.
+The spectrogram will automatically generate and display spectrogram data.
+
'
@@ -3578,8 +3601,8 @@ the correct data stream. This has been fixed.
'
Whistle classifier has some new features in the classifier training
-panel. It is also now possible to export training data files directly from binary
-data files.
+panel. It is also now possible to export training data files directly from
+binary data files.
'
@@ -3618,10 +3641,10 @@ Symbol'>'Version 1.8.01 Beta February 2010
@@ -3917,10 +3940,10 @@ synchronisation.
'
-Wigner time-frequency plot for the click detector. Clicks are NOT
-automatically displayed in the Winger window as they are for the waveform and
-spectrum windows since the Wigner transformation is very time consuming. Clicks
-will be displayed if you select them with the mouse.
+Wigner time-frequency plot for the click detector. Clicks are NOT automatically
+displayed in the Winger window as they are for the waveform and spectrum
+windows since the Wigner transformation is very time consuming. Clicks will be
+displayed if you select them with the mouse.
'
@@ -3932,15 +3955,15 @@ classifier is still available).
Symbol'>'
Bearing ambiguity resolution for planar and volumetric arrays. New
features in array dialog for estimations of errors on array location. These
-feed into to a maximum likelihood estimate of angles from small 2D or 3D sub arrays
-to give two polar angle coordinates. this can be used to resolve left right
-ambiguity and is implemented for both the click and the whistle/moan detectors.
-As a result, the click detector bearing time display can now be set to go from
--180 to 180 degrees rather than 0 - 180 degrees. In this case, clicks in the
-upper half of the bearing display will be to port and clicks in the right half
-will be to starboard. As you pass a whale which is to port, the clicks will
-move UP the display. In the long term, I hope to turn this display around so
-that time is up the screen rather than across.
+feed into to a maximum likelihood estimate of angles from small 2D or 3D sub
+arrays to give two polar angle coordinates. this can be used to resolve left
+right ambiguity and is implemented for both the click and the whistle/moan
+detectors. As a result, the click detector bearing time display can now be set
+to go from -180 to 180 degrees rather than 0 - 180 degrees. In this case,
+clicks in the upper half of the bearing display will be to port and clicks in
+the right half will be to starboard. As you pass a whale which is to port, the
+clicks will move UP the display. In the long term, I hope to turn this display
+around so that time is up the screen rather than across.
Small features and bug fixes
@@ -4135,10 +4158,10 @@ help pages
Bug Fixes
-Memory leak caused by Night / Day colour manager now fixed. This
-would cause memory leaks when multiple files were being analysed off-line and
-would eventually crash PAMGUARD. The way that colours are managed in PAMGUARD
-has been rewritten.
+Memory leak caused by Night / Day colour manager now fixed.
+This would cause memory leaks when multiple files were being analysed off-line
+and would eventually crash PAMGUARD. The way that colours are managed in
+PAMGUARD has been rewritten.
Some issues with Swing fixed that might have been causing
hang ups on startup especially on Macs/Linux machines
@@ -4151,9 +4174,9 @@ Mac/Linux machines)
Parameters dialog shows correct channel numbers
-Click classifier mean filter option had a computational
-error which meant that classifiers using this option would not work. This has
-now been fixed.
+Click classifier mean filter option had a computational error
+which meant that classifiers using this option would not work. This has now
+been fixed.
Sound Recorder
@@ -4209,8 +4232,8 @@ file)
Changes
-The User Input module (for text entry of information by the user)
-has been moved from the Displays sub menu of the Add Modules menu, to
+
The User Input module (for text entry of information by the
+user) has been moved from the Displays sub menu of the Add Modules menu, to
Utilities. This will not affect how existing settings files are loaded.
Multi-screen environments.
@@ -4229,8 +4252,8 @@ acquisition.
Bug fixes
-Speed up of graphics, particularly regarding large quantities
-of gps track data
+Speed up of graphics, particularly regarding large
+quantities of gps track data
National Instruments cards with names > 20 characters
long are now correctly recognised.
@@ -4713,12 +4736,12 @@ and Ishmael-type detectors and localisers.
Information from above modules can be displayed on
configurable user displays which support real time scrolling spectrograms and
radar displays. Detection and localisation information can be optionally
-displayed on the map display.Map enhancements include improved scrolling whereby
-the user can click and drag to pan the area. PamGuard can now interface with
-MySQL database servers and users can easily select which information is logged.
-(This replaces the previous 'flat-file' logging feature). A simulation module
-allows virtual vocalising animals to be placed on the map to assist in training
-and development. Extensive online user help has been added to PamGuard
+displayed on the map display.Map enhancements include improved scrolling
+whereby the user can click and drag to pan the area. PamGuard can now interface
+with MySQL database servers and users can easily select which information is
+logged. (This replaces the previous 'flat-file' logging feature). A simulation
+module allows virtual vocalising animals to be placed on the map to assist in
+training and development. Extensive online user help has been added to PamGuard
Application
0.03b - first version used in a real 'at sea' environment.18/08/06
diff --git a/pom.xml b/pom.xml
index a92e9cc8..9fb8bdd6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -780,12 +780,12 @@
-->
-
+
pamguard.org
x3
- 2.1.0
-
+ 2.2.0
+
diff --git a/repo/pamguard/org/x3/2.2.0/_remote.repositories b/repo/pamguard/org/x3/2.2.0/_remote.repositories
new file mode 100644
index 00000000..dc060f89
--- /dev/null
+++ b/repo/pamguard/org/x3/2.2.0/_remote.repositories
@@ -0,0 +1,4 @@
+#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
+#Fri Nov 11 13:13:18 GMT 2022
+x3-2.2.0.jar>=
+x3-2.2.0.pom>=
diff --git a/repo/pamguard/org/x3/2.2.0/x3-2.2.0.jar b/repo/pamguard/org/x3/2.2.0/x3-2.2.0.jar
new file mode 100644
index 0000000000000000000000000000000000000000..2a3edf658d0dcb4f0579b2aabe85c6e4af3c51eb
GIT binary patch
literal 3648682
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 cC%1hCzO=;l
zPJ4T!T%Hx5yt@GTMU<}H5U1s3Y4s7soaFAFpxqwE)ZlGd=*Ay2>o$veNt9V~nHRFw
zuTsDZE`l%rlF-n5_d;gc?rb6`rq!2bLh~JO?8~cZ^=VOIe7MAC74_|KsmM=#**_*v
zW)bTs?td|Et*e;_O6c&j!jQ&rUtG2$D4ToLl8@TGayyn^ugGXQL<=i~iHNiG5=Iu~t*(h5x
z9g^>4Fn^_tblGmiRXgm!KgOcdfxQ{;l!=R*;)*Y`$|}kq8#cq)K_9ve%`FCJGRJ~z
zE9u7@@>%dRM;X;T>IAk4M&}Qxo;q6P;)!CNO
zn4ZR#T#>k)mzvKLu;P}*1q)fnW8(t)1iGr38Ri;~71Et6HI>#f3{Fh4lujLtgicJ?
zSKk?xuC}>>LcUO~GPG@QQC#(w?d~dUx^b%39l7S4je|)Y_!hc~(WC8D_26CkUMPI}
z-pCdvL}Gl!IJ9zlg8Kne2vnl)NF1-m1|P_>GkV}t{3S}4X)N0BXsQ<7LpkT{Eo)z?
zYYp4VVNVomg`Gm$jomYcYv(QnPvE}V-bqiE{so_F+ozhBcwRre{K`Lr^%l1Znj4-^
zc`rfU6yAUGE%6n~H^iO5TpDwg`<6dl%N_JlxxiSj@MBCC+n$-vpl?8y<_G$-U%Mj$~~0xc&vDUEW%=T;v(
z;+Y~wsaf1SqJWG|H*1+ahL46d%n<_zIGQR+t~5^GJ8~I1R|#NJREA?WCsfOxkb6}f
zn9Lx=@lY2nEkOy{a52W_Tm|qPA!VBmUckSFj>%zLVf*@SVSeHBPqb6TO_RKeBgdEr
zHPx$dK7aok{ftvtomks9Z`d>53{kZfgt_ywG+?_s60rT@XclzG=*{*xK{(0}$
z_BXHt$Tkk9F$d01+KO`*Enf2`FOJA~kCdo0yZAznf}WhU2vmvS2e*r=Rm#onQuaLmPZ5
zB2djZ%^WiMwx4|dY+hePI1H~^#+b{61}P&zVW`!<7+-z`yjI`jU?sd&sLUh0$7j
z@@lXtGXM;B^sG4$mz=r3E4IFLXQgL}%g)9~WaI`q!Jq&0)*Qk#`yu{Jn9Ju9Jcq&E9~qIA!ga1&i(gdbPh17yhE8eW66{k;
z($=R?Bq(UBn9Q=q(vXwt9y73R?u-zToT5W4s~m9@ow5xV7Rz%KvuqxYSZf`pi-o@J
z!A~j1omAl=@3JZ>`6DD-z$PjFek|~swr9+yLcQE=IkVu5n#T0wVypuk)3+TN7^E=c
zt|C1jMDC8nw)E$z_9pyM{c>uV6D1h8=vXS6PbL(L-BnnP
z$936NdO0tGT3%2RJ3dC<)fXGcHOeA0CN>6#AKw%*cEXgA$EsgoxU(zWtT#S#3x}WZ
z^e(vKXpw7&rlL`0T5X^Ub_Kp2;WCXMdE<>D+Rxhkv={FCj8)DOgO12b~~N0Dp=Y
zGwTsgZjxC@6;VuF(ACkUg}So=vNyEFYfXxA>*oq#NKyrRox)_*RcKhTI5)pk
z6J=j+ltRhSm@T!ERb|GJ>qvXhRL8~>oEPn{JZ^4O+gzH^`g$|!GG4wTYj?ABTwKt4
zi_{ZcHWl2Rmo4yW#DSJFjnrOarQK$@17sGVt*tjTb|_M#)qx3qMRsahz(f)#1P|^}
z`E`}K(g*_gzf^>7x?SCt>oD2Wm)EdmlaYVv4h7B26NPx8LMK!zq?<%AL7P%hP_`CZ
zH|9JP8x{kmwB}i#i%^g!saeGDgUG+l)dVl-+RGZxU!7BEJFPxbs4rb;Izu>NaS)K-
znRD53Y%5GM+Lro~Z$ajQ3T-K@jO>xUaaL?CiFEa+$~iot{K1J4y3*sb;@icEF+32dy*sT|kCn&20=&X_IQgC^js@Xgfv(F<q^8m%&pm-!h>=N^bN@w>CdD^#XbPcqj1r514h2f9d#?0+PzQ~rySAng2aq7W*2X<;al5-6
zWo6i3ZTf#b%lm^lz>ZTJLE~30Nv~$=QF(fGrgu6~o_h@1bk}p3q)Zxa(xpzeMYaTa
zV?2oRYA;3)+wmht(JEbamLz
zmzxc)4z?X;KI(y$aaKcbZDhNO3Uc|6+xJ#!yG39#R+I|lWh{9r(?|NI_zi{!(Kcfh
zIVnx#ECV*ACtB65ag$=ZEMn8Et5{hcf1K=2kL)mj9P8>;8|4~%e@7EIiQ
zd9r5S4kG=&D|B@v&`n3Q>pa)0W|MC%e1KQ^dF&L`N_&@ppz)*Fk_#m7
zUCVDnSoy?yuPU=On_%$*>J3upghz75DJxt;+QF5=&?u$XLT$JOCCr`%g)rS&e8U%|
zo*a3r6=>OH{-RyWT}>m&xx}9?Dpn}4>C}+b`>~BP3}MLq>88J=L59uV*n0a+(O{t6
z-eYaeHqw{RV^8P!R|RoCdo$q_#X{^ThQf0Fbb3Eui`j)H^{B*Dg~}6TH<^9imo74r
z!_TmBPj?4&R-KOyD{mr+n%(>$8!_3T{16~0`q+?=_$&%etANL2FgM-zHX*V^Q>;W9QUE}EW?~=L1;K0d3#ZNHIXD-ctw8$KX2L41;1ksHohloumyk#v&kqE4skR&@p;^>UB%2^opOK;}G|QOP@7gkye5v}pe{
z;vzKrlNB@HrytZTEb|6&H=NZ+;5quf&%3f0r~THtr5(4-d9Gy^}){hzZ4kaq3qORV+aX&D5eL
z!AAGYS$AuEYivPH-@(i?LN<9%;As|S=F!_998A4lAUl#!R}KKhY7XXfmub6mK7s
zH2YK;#r%__vIoUj0~ZkK`hmQ}cb~goOnfAcjW3RurkR2&)Qq-7xyBs9d|$u%HFf$J
z%sdk{JM`@bn`_axfpt8h_mHLQPKKLBECEK}y{&R%H9H9mpPI3WVLw4{zO!GK2q#J4vl*!qO_Zm=-#$TjPKDSxOiwMRCzOys!PH}B_G|lc>abAWZ
zJj8iEbNKhX8M7rwzxtw^3-#$_hUaTgxscg!_ED-bVwWDq$6sEzX<={X-0)Kxw`ahB2tI~h;fBz~0)L{M(t}jI$#z%Y6^PAvYNx(ANbjHd6(q*u3RB6Zl##?)5=I4s!qMLVlHi$HH-NPoSK1?E&!2nJ
zQ?X^+BJK6gwyNmH%_X70xw$zdp}o)P&PZb;GKKHT>s;?E_pW>1ukF7wCaPo#SOefg
zeFs{OGMaZZyECFdo({_%*T_=Bw0pEks~vpnK$EDF2YKQh^d2<%$H1qw)!IOwG+AvI
zQ6tkjubUeMo}3+QzPA$S$MDpZu6C0P%)#R;n9WxXuhWRTxdjKx_BlccDD;q46KOC>
zf^32UF)otEf@6`x*LCjXyjZU>tu{&TO=ByWIH}~-N1z6ALo*37ffNEvvWrgBD1p3q
zs0_Y$hc5?ai5JL18C&y0%OXWDUjxM{nCKepHv3R_mMB}7tE#FQkoHQ$qP)Ouq!}DhL$q*Awik25EYQ97)
zHtU3VYhe)2h+-5ti0Olf7l%~b@&Stxc+^9gGXr+i1>_jyky)3`
zp8&Q@nV-aED(ycrdV)6in7Ze1=o)sx(au46)J^AW@o`R`0w;EU|8a7Hho#!Dh?P
zL1g}6%PDQJyVyJ)G#4`2qBw|-eNR`3-ISk=;{qWrW{iZQ!i2rfvhfpss)YEoEkYyQe~rj_L15p
zj2&8pOgDZ~Ipoc9kyG^N<7fyHnYzVIQEtHIdPOMP#IV2+wR!aLJ-8rif46jFPH$OU
zTV+NYraI@)jx-@b(kZLKr#lomd8~Dvbt91bv^Gy7bAoC-+K&CIkC*z&40?L3Wmkl$
zYS-P79-zzh2ap>HKS*NOT?xyi;YamWfbDX+AlxE9cnyWBr`Memu_gT03nrNgb({$+X~&4paFcs{d-%EZH^0
zQbtNUCz!o~(%io2HDU5-$BElhrsf-U@>yM(G|n5b;K~fQeqo_L8CFcKaB-zQ6A8#N+=z%BwUt|r9iC6e$N^(NCy5q&+4(9|)NQaBn1wWlA4
zj4nT{b4JePJH<`xP{Wti&L;Hp)S;!T*&@Vd9_kE&quJqu4xGWNOBr2S!l7`8fw&>R
zYc4Q+Q5S1(dAo8>c-$DvSoSipkzHx}bHGT!f4SGgJ^myqVlE7!Db4EK@d&N`qU
zYn%oZ6eMsscSqt(8BW!aHTG*=k~e(`YCXnXNINaRjt_@-*Q_Jo*}`r2^8eWqF4|*F><6Q77rs+Wmb%c3GcjZbX`iojs}e*iU*N!dck$O+I3VB
z5y-LADPhQT7t}OhvJ#PoqIN~s4#8xRqZ(qALXz#h6OT3wE+!cSZYM*UiV-tWZ|P97
zEpBWhTftL^Wzyd^afV3oH`=!{>bHn=QENmK+g!Ai89SFKPZU_@Txz#(=8IsKQ%*X*n9R*;NZ}i_9|)kB8u3+-
zJl+iNCln^H=MriZZJwXM9i1g;$JpRY?M`Y3ml>vJvo+s@OR1{paCMpcFNma+7MHZt
z^wg~$X?^-@e{N7Uf#i#!GzI~wJ&y`^ThC0K;&zQKdLN7L7i2Vm5d{uj|1dZ67p%F!
zk3hOoG+IHIt4&Qigy&n`*9_AcW!|UEh^Y6~N$ht#+FR}9r~z8_`*>@;ICmPbn40i{
zcAZ~UyKj_SdiL_vq(0DTvU*I%fOB^zPJ$IJM0s&7E@YLAu+MZ@5>H9_6dO$vH;0
zJ&!J&TPL|wOXw3KFO1>m-f$Ruhq(SJ=lQZ*DCQ$C!2!WQY2NnLQa6mD8#j$^-np~~dUSJKZ`j*LDtw%;bW33L{3IA#ITfGs&
zE9WglpytXUzVvOqP%dSl=of`6x8&VpvjnTI6Y5Df5$yt*bix;TS+#Vo=Ua_rlq-g1
z#1~*rX;aqf#6CXt^tJH*Q9m*D9J@^X8_Y69Pe7}zTTZJ8BT?;~pF;OHM#9nwKS|Z1
z>s-j2bz#(lXJORiuSB}pD9N<5nnb#JX^FJ+n)s#DqQb|w@j|^#LfaXCp|#Sqgz6c6
zV%xdnB(`(<#Oj4{$(nh8nKr5C_@)znV%;irQ1aRxs`=H%LNtf?RAz=0jsWTp#6=?z
z>OnCT=7z*5{Nuou6=>im<`p)+G_N@0h-a46M||;3(zDJcNtPR5uo4la#r
zMGZ91H(2Tw!eoj#@`Pf5q|TV(gxmqXtZB|zwz|vtN2=(Y9&sPKxPD{yY}wFriJk)N
zsf+W>0H2MuWVF?7*BL5U^QX&`2hRCGCwVd&Q@_3==iB`sek|D(4l~DfuXn?LmI2Rq
zl&IO=Lk_aL&)S>#&x|}Hwyzv>tVd`{hem`
z#n*nN!JK4KIb3mWy?4n@`5)U}drRzq=^f|^Lf4RxT&z&ATwsv32&>%V9}S8RNNteW?JQOV
z?`L^7;vD!||I`&h4jahnP}+=oALwt<_X*sG^3lmY7(Atck21fNL>X7Ev>G@fqj7#1
zenHVB8szi=#|bxW<_H;{k@L1kZr+!-EDF*dWN37oJ4;`QDadxdX|%Cm3&7={m#>1$u(OfRBEAoYl@bo>LWU+pZNfo7->wIhmCMkg(sSK!)E`z
zb4EkGDOwFSukxTvhNiEa14FsnQTppBW3L1ISGM1R;Pic>^cyLyD&>dbz0NBpFRgqT
zRMzyC!LL4LzOdaF7QThwV}CYl`N5Y3+cAe_;o5?grMl%=7i^sPV$0_}8lG9my`$m?
zh9!feret<2hHo34L(i1WpcZ5Tb!^#_nX4~D_Zd;Waj@YA9VmCHJ|;P=4guYAyVr2-
z)&A(BC5|o2)|8cO+dgya8k-(&(A!MM*wdNLD(h02K;xvCLO3z5^F72ola#V^JybM3
zj==Y%*bbSNE}^IQux}oW=fj*Lx2^-Xvc>()4hZuHKwlYhZ|XsJ{7?ngSpi#?t>(oX
z^6@1LG*c*`4eLB4S^$e60HcOi8bz
zc6Z1K^}lKhJQ9Xi0mVNmXa$+URrdLJ*x*Xp7N?lSm25p*RA*c)15^}6x7HoPiJ9(G
zJ;_||pj&gMGLotr-Ow*e6iq2*`C<-TC)5q@(PH-l!3%a~P`j434yfu_x2KtO3t4I!
z0esCyEy*`4d5vcrEK9>os;$mdRxNPL#|jE&^vc(cymw`%X$J%Ql<}B=FMAXfn%dAM
zf~VH8i_mkq0s$z3wqrkizl*f;)X)@@r>Y}c
zo^$(m&wKiw?*6dxso{^3KY#xkm?(5I`TS05U;=bP`auDcnP7TUpH^^f>dzefIrPbB
zdZFIuI~XSwO@3q4aNbnw(L+gtk=OpS&NTRdPS1EyV~_Iv4vTPDVy@C1?(K-1^Y$MNoDGMAh#E3piV^Bz{fDR
zJ{p%hor@O@@~JVwt(!tzKjiexu1Yir8eXA<9;z<;BNs)EoMP3!aIoSkeelmPl{N>_
zZ_PEBB*+oTy-DGUtq)kb$8{+Y12=lJ2iw^9AWB;o05ANsO!)7b{e7r9ePoD9EbryX
z@7I?k^r1F!l?nSE9wvAL%|K22AnG*hdl*`?6nv9xPQ8mh6-9edEstTMhIJNm_;rKU
zu1Dr&XH|-zgG?S;d+-|~c<(l5Mw`T)`Tj`elP~@08bsct=^{?c7{95C*2^ycP}JBT
z?$U~{({sjm%`|YL*R(s{ZgHY-VB$E2tK!hQ5=Lq-XVF%#@N*}QT8y|(^y!DTWB>HcYvt#55
z3KU(=lvK)-!i+ke9oqD(!m~fv#K7O#jYY|=H6|&lC$|_Hx&;>QROf!nL9q;W6oV2|
zQJ4+S`kCTIn;Ciw&+S++r2cSVY|jF7YJK*KBXbVB*4gO#f
zNYlx5Hd(edMaf!lz{fD3q-t2(xGFKBHHNF5wO7#J89;L=wl1rWBp#TO97$QH-zV9JQB_NnSswsc$bgOz&z#U7tQ)7@s=J7+wLaumi;o_BhNQ`O^)X
z8CzF9(yQQ_%Tz_sO7M{FL{g;PT{eJM>j#=)S?86BFT?gJ4+;zUI~eeFl}dhZ9s-rh
zdU@&U}iWy6C5+7e8ZW_ML#a1G;;9$rZl?T7A9|!APINJm-g~rEMV?
zEZvf+By@ODcp-p9?9*81l4&TIcUB)%00IY=ep~8;lCTSrnif2B^%RNs4?h>5huf8@
zt^yY}sfO)yXA%#S%E<-xRBJOi&Zi7_UZBF_Q-O|5VwL^ia9mHx>Vh**2Z)(5k*o%Yr73Nu
zx@jBHS>crPYkb#a6G@wjH;raC0J;Q*Xr|J}&qR@3n@YEYzKgFr1D-FiHmi
z(ZFVX2csAPd2VU_qG^D$E+jOEA{xxenFKxK6s9L=YY=I;d}8@)abYe<{eAgUlhch$
z-vVflG3Vo=4rr65$EMaQC^*^_nLc}_W)C0hbu!$P=9?*KcYa*i_S>zp-u?;|f%!lU
z?A3EwrIbIUC#@Bn7Y)d&Cz~;q8{h{hc$4b0Y$9>A^3s$@j!tGENW+|$`0oIWj+B(#
zK&u0+4sKOMcJ@+65Dyxt2(NY_W`)74x!c%`FkD0XiRHQ}EowSrlNYLfrCb|+PEu!M
zMmUQM;^Cf#iCpc<4+tFS@bE5lMHJx0H4i@_5m=t@o`BqcQ@P&}a}rlV16erdynpQa
zEPXg=K~l0-$t=F=D|T~uq?>21N>OE8-*z6Y+;>DfQ2Eg%tOjp@tLA>g4qBaaU;%$A
z81$qE_shJGkI!9Y5ap0(lxEIgniPWZ>q8
z*i9f>`WclE5A^zg%Y{|`m6%UB4bnw#0GA6&nLbD35OSJj=f~t-M&SdGNk*-J3~$(`
z(h549s>lEw+-vY~TKKT%VDl{ywFH5!Wq4UcnSXa+vog6I9>2V3-BMM5PdFaM_JAW=
zP7Zvy9(-8B`B78GsiyF?l}K!%U87GH)PwlJ>U!76z*f%QIgQx94?sqaPX6^dOo
ziZAvdSd-U%gMF{`gDkEnPT-{odkl)d!tyre%dWwQZYOe0eS`H@s2^er-?4lLcJj34-yi9=jj~+c5dNax
z<=D4pDZT_4@bLe7{{H{Ao|OU4f8}cYjen0;^8_fFVSReb%qN6^BnrUb)dFd?G^26_
z+sry*6@7=3rXu;?=sYT$u<$65K9~Rst+WbP;$+K(#O}=HqFGWZd}b0jC37SL$tdl#JYZ8OBzoKjIex$*TvaaiAXxz@-<
zxZ-?%O;qHX|x(
zk4gSU9HKt_Jx^UTuau%NH%^w6auS+5s>(R45(m}GJ587hA9MhNOpK{H>GZ@PH&!Ih
zS}%uHq_}?76gGY}hYdc}#&lR-zJrRyTi#%sEYodGb+~aXACQ$)%Y=hEUS2F+x?Q%r
zl^K-=1Ypn`(WaHZQC7KLw2uzRo?-BVrbUi$CzEeg6^8wSz<#wF
z7lnPB6=E~CzIAU3PW!SSa+B1xvy0unH3~~vSxpTH#^14B9oBEp`ze#Z8_i`ZfRGE#
zid~L|-b03iH=!`Gd!LaeL8r)hdskjw0)tpgC99@9-3YF(do|3*7;Px>6jZ1*kje0WcMz*xe
zozk+HNtG$jC?(h1HR3Q$VmR#Tx;DDBEH49Hk6bnWFi(V9+GB$Sob{fPHhp&sKxt%K
zZ*w4zFADXjUlZa+sjSVG%5?>f($<>dPB&CgTEghJ6&B%epI%d5qF{X{lyiAcLtC2u
zR!xP@cDr
z9BBhDB!l8h%U;cn^Mu_1`
zGDW9y%*&Z!{He`D~*u`%(1dPiQlS^Ir||JFV7u}hVhhhM5e$U7we+>McHzC|dPPejff
zf1>9R#ORh{s(}t@NB@JGKWK3QnX3!ju!j40!wD2=u|I{V@YrK0)sjjUDp
z-}T#_ID6y_5l$batV$AUXm*b*xN!=pXLV#BAXz1=Riv+}zDH#6;>nhLwb&Y57bhPI
zoaldbt3qqhnvesYZyB*7NQs^SsFDLGQI{2&4#nKlj^dA8)1%2j1;!{Dq961J<#4*$
z-<&Lm<#nCV(Y7W=YVAQI<+#Cx>5N%tT7x?3|JA_T$g$|?Mo}3Gm
zbjhWv-&HUYpBW^{tEw2QMX6`HA45ECM}{C?kk7z5uOd~!8Mq`@P7H4~ZN$1%e$5x@
zvZcMl69Z>t4$T&82$SMwk13jA2D>3%Yl`{NysjWJogaDM(NXqW$LJIm~i;CZ~!>BGaq>)RqZ)Y*oZ@0
zufFl{S(29KX{=U05w?5dm6&HMJ0gCRBPM3w-(d6bvZrKqO^++)Nvyr=h|la^CSKtM
z;ww7>>Wq?)BWm7;M(oxgoyh2rC5t_By3CBb8RT==_gUXjIl?LyC4kSTC-OK6%RZ}PEfeg;SKc5Ej8_1!s4e;rX%<*
zczj~KqG+uOk{E;ghe#SN)&8;F@bGQoj0{YFUa0hMJNg7^*8
zv{xs;NSd6|ic#3U(qiw73uI1+7n#Sv-ft`bCG*Hkpc$pP~XTWD96P%7+{`!SV
z#^UE}>0Sdin=WBCPda5o=t!?C+(^q$-Bl`gQJu;X4k@uo47HvR{po{&duKq~fyJZu
z{cfh@OtLUnPr+ta?CTRVGr{h*u=^P6&V$J8k{ag=)Aco~H>Wqco_!H}T$whN4(8i_
z-28lAaGw$`{Enw3Q%XcuCV(T>`^ffh4|S4gqD;-J%Kj_GAjn$Er&{#dmL`D>C@
zc301U6B0Dgd$;pQE9!{A6Y<-DlsX4cw=k~kPH2bBUQR)k?A>k2MMTVpAQ2iHWHc?O
zehL-Xy_4tQgJ?vbGiAuM_lU**hLH1*kmDu$53RSD@|6a!4}9NTh))TrGKaP-eonr3
z=8ye!jgwRv42JuH85xH+<``;^m|hjpy_(YR_HB;mM`kd(9~r_APoMvg^Gzp}SbTg1
z$%_3gtqfV^?{WsJ{~+i461M(zrxFF&e+l~jx1KLc9SVSJ=I+C9Q53gKBAxu5vzb;p
zhCWMGmLeHXE)zZtfWmCPSspcRQV
zB8F=MT!8-d$7{%y58*7uPrqDCI~HU)^|-+>G}-l{O~`=rRvJ4(RJm0oZt_wb`$965
zJo}Yw^+~R(8V}HB#B|`zG*`zS9sb0_U}Dr7@}!{GzPyYK5FqIVN{PLHtdFC
z;WQUA7x{e`Hn));RpQiGc772N)fvdD%;>
zNb!NOAn#czT$IZE!AgjqukyzA;w{^@`)r$Z>i8`v*#m7f=bFd#^2ilmff=5ZoUEoJ
zS53o;mZjY?5rc9e*N5iF|0_POGKx)dv-v$
zQUSk4*=#42%Pv5ZWWZ()1*?GBDqzQghERD!k4oprk7><}0T8B1cqS3l3|+u=($QbH
zN6PT{L8S4>T88j45Us{v_}bcDQJoKvU@Do|)(HHhvchSYX-+Gvjgd=D1=VTWOfR;(
zu`y%J$!0%1+Y95f-4CKxj0c2O5oK{t
z@ng}@1WXn>7d?&90o%@))Z7Qrr8|J8T0ErmXq_1tyek`33c)g7i1$8{PJ&rXmWE>k`TN
zea{3G6xT`kW0_|GF4V4fC*7A@OuoX$_J!D|J%_H>+TC{A?M@L1r7nor3OhcFd~h0;
z1)s@5-C7t;HoVA~joVh++=HCOTesI+)M>0|IP8K{F3(sp5{i2FYj&`W8s3E?+N(Kl
zpN+xmT?^B&TcgM4aDmyfZE==0ukpd_vy5?hufdpT(F0eq>4PUYo{Stb*@jrdQ{7(C
z>gaNcWs_OlLYoB<^W^j;iMB!&26@sm<=q9^vaP95$QpNT|Lw)fXbm?fvN%4oeFS;g
z!Wd}(+~c?zOKK0@+UnF!=l-(ZlhekjxZ}D7DDErhS78)Ac>|v#tKOI&mgw)qAEUh~
zj?@b9UMTbyyzIp;l(-5RK5K(HyELR>*MYC`dp8!zQON~e>7zZ=>J5bNKAlngN;Q9+
zrbfg)Q&E~
z+sV9TEw`gx#_hZMkbFLArxXV)Fsr2baA%8-+;y~~D`pHPcCxWIS
zDq3pBn7t_P4tI8T=B%U{wPHw7pi|yJ%RIC=OA|RV4C2iLKk7J7v2<4-Fp@w-gU;_>
zEax~;D5jcTFJ)xhc909PB~TaGF5N{{am0nqjPFtKtFX-vc~p3UMo4uTgTC{O^0#yW
z3syZ}79MU8mK|%6Mp{+2D+>6?D`aLB5$JHs4@Q
zmSpRn)O&Rt#{`kw>)N4^QE{JGWeJERev>TY`w2Fs_Cs*snXE4s)P!ECu#7u?u9RNQ
zW2Y3kp1u%}(v6Z;NGPS~hpGjp&?t;1eZOuTcQvuuiD4O(V=$6ESdsCJ3I5v-Y3iy;O#Xl)G7lHS6J6zmP
z2cgnKCLeAy`4<{I1;yr_L5bLVOwqFrKx&H5KYqbny`Q+tbrjy@^YN(dVV;JwcB6i@
z%9QB#O*ATu(0;H4*JNdQR&I!=HTe$xvH5DOyZ4t1;8NVW%y4y_4vaf-iqmlD24aCv
zWt3iK)IlN4shZjIZv(^F9Ynd=4|8)K=-_(uiA#QVdjyiRu;QOkpOl$yK#1V0SX
zoP9pa)UE2+&j}MRH3oZlxR*^IEPm9&8@-u>NwBwjCS9~fy=29{1E(EDH6J9OuEN5%
zPNQz?LjJyQp7HHosNXxc!{lbK`6Pw;lMY}zc(*F-nY(3-iP5~6!YA?O3hoPHXp(eA
zqx}i0s!vd2#pqniD45SllMQY3Y1<@1xq2XX{!GK{`y!iW=$^6Y(QI9DkC3_o$+&bU
zD)Z8_!r`S9HKQWD7RqkrQIWY2PTms5bHw`=hZlle&&GA#{2)SG5(O=4^%!^zC7a$A`Yqo5~q~D>u=$cqD-io-^cPI8Lu%+@@M`klXTg|@fTZ3uT9|RJLe_h=BaJ6y{~f_j@s+1
z42r(me0OI*g4#WM;*EZe!!}E`&AHP%Dmf^yV<0_5i;5M;TuC-1?~u9~yZ*H#rr+9}H?f36g+@`S+ZWEYGprmw8e)we
zAXYEgvApIUGruR(E~^`3xPPp
z9B-+REA;hzQf$eBnQ4q|a^k`>(^H@9?gh@4ETO~9gpv#b`n*&-R8!-?+Mr#!^Sj7Z
zoG|{pE<#yx5V@xFvwdEoDc3*H7#DncUoOTmUcGa1NHDpOB4(@`isZp8Kl_h>+S@Q)f_YZ|e(lwj(YjsYL6n4ts
z^axSY7MIrHQjaq$Cvv}MDl%#e(m#3bwJ%?=<4>etrf%4xUKty~F`Cp>PwB&P^5A`9
z{Y9+PvHjMq{?fDW;{PkL{_it3IR8Tt_*VreX6I;Q;4EwBtmI;EZ|CT2V*GD;z*!0t
zvi$;IbX#6D+E<3CgV}z+xFN=1Yj3TfBnuo);=6!2t`gUjv*q)5HFCPQZ~Wr`tuQ+6
zRF2434(6xK1a5*HyX$XswI>E39dzq-TtQ;g(a3Wm>B?u%AIA{_EkWx7BV}lHSz(k3
zXqE6tnbK%98x)PP0Tj2iZxVw}zShwZCtU|nc|5auq>CVE6AI0#Qce`bNF-ANGwKqx
zxKCEK)&we290-kRui@&G%mzZfYYz*w_o3AB!ZzsrF^za;lKIg|dk>D}C=;fhm&bXn
z(__AAL;$0#w6sYJ$WY(ftRqkr>#yX_&%Kb@m%5wi{cmKt>^1POlm-23d)1&RG~-Jg
zwv6*;m4j=XoZetvsCMPJU1;M8be7sK%kOOGLn$2Q`X#%T=*(60f31qD-X_gMVKYqW`cek|JNlxxs%K&7&2+(wM)#KD*@3+^}X70vc!@Yk)?peO_x_SgULxD+KWMkPjx
z#Y;cxX#0MOOrU)9wx7XeeSmtt?Id`SP)kTTh$()Lp&eD&i^{@OYqK0-m1oHjEanO%
z7G$*m|3#HO&1_pwt*#c>XNfaesh?#P*zuAX%Zh4d<3y6PXTDt}5wZ=0`m3;(}{FjM@8wfkXb_Sa9PT-7QOt@_ey=)q@(ls}4@?GN-jj!1#7RDx`lu=78A4DWO0i!zpqJwmZ%|=i
z6PAuEhNnB$1#Rs3wS4Q6CR&^h9bd$h4^9^?!HBb|oLz8;$D!E-6Jk~G#Mta+p-4(>
z?z&tTA|AubO>bInn{#9L*0-_day@e(}cQ85s0XJWVl;_J?uuZcUZ?Be(P;-XuZpMQV$uRqMw??
z27K=8Z~6}YEY?Xdj52I*yoahR9Hv90*AaM@Xu=$}P$8O47Yeu`QI=E?Es`>|het_`
zdMRcUWeu?y2a9Mq;}7I+bj(JOP=v_URz&H?AVoN6NI{I2mdKRvN{X_a7|yFT#3eTk
zx}g94Gxx_LrEuedI$63){#vg!sin7oVr@KyMN8L>PG(zW)f)fT@rX{%dC&{>=ld^KTv~mjAH3
z|7*a(e>GxB)f_FHO_a^Qwz~0uZFL15dJsWW-WAmrok$ge2bn@B>N@0pkXs>83u-|?
zwkt(by{U;ShOhKK$?Y!0v%a}{Wo?m#s%Iw2CBLZck8CG_L*mJXBnk3JIGI}4We#jFoRbVRu4Bi(aPoQ
z^%x!(t}#u@2Z|HuqJ_i<`js;{qtn<{N)s6;{%GUS`~G7ZKv}kHy89P!W&aJh7S#XF
z2mdE~_t&JVzkus+J@zcMKfViQc)t8?-4?%(%v)kij%e{%^2lsAQ4vpp9Bd34QK7k?
z+5WJ}q>$^x%(uf)7~y9)aSg%6Qk7O<#4u@6{unNH1$NqR6J{?_`t*A*uCegumz!5y
z|F*P3Gv?%d#f|ad^g`>0_8bZxDd50^^yr3-x7Qd4`KKf0IpOT5ubGaG45_6pn_*sQ
z+N?fG>b9*j)<-E4%xg&yRUEIc5t3k_?Qt1B9m~
z-m7cQ0QyIjN+O9vkFf^PPmJhL97U*wQ^Zugj7UKn9$Eutfx%hf6!*9RIIM^>WzzE<
zYtoJLC|Sv7BIFpXGUouE3JRghvaU*f!epia(|lrzJAov{8bdsbbuA^{tU@&g@H9nH
zLjyjp1hEtivtn4FI_ci5M02g^pgBRTlfy!pajb9o+{+?{af@93CPgd$Q+d@bl7w$P
z2k!)8KQpb9ZhxKypfS5l_R<1bm9>n8b8b4jiQEw~$cghoAKG@u;Mf;zZj~EB7atoC
z9a~YNrMk#ikcG&J6WJoCs^WyFJ)Fg$GtZefiX?&T3zDoGlM?^V>}o7pCuVVxl!dE?
zb-*GRLsA81*O83jn~q=PM!C&R`=L5+kDi*fF?g<`F|4wM$HJ`?2cRu8z%s!KfB02r
z+}^;PEs>UYuFimOI2sjj%*d%`p-#2iM(u)EK@?a>wzW=;GFk6g5Q(l?VT8vg)jifF
zX68bR%4irhKfi_3C4yrmIcFN%%>uTyH3V~4$0tgNBuktl4{9%u?~;r`gRxQ;PyjNF(G
z2ZWt|({e7$@r=XaY%!9|GUF99^%rC!J^z7H932uu_u2@l~2rshH=auOfYGY+OjO42FsTtfFCl@8ct0&oF!W<%wz^u${G7!)J~iU!47Ou?EqakL(D_bLTyqr+;tx=EL#04~Igo
z-{c29B&tq9V#f`s>GAD}G*@?2;JsU6L^KUyP4@CFEPP#X@bKe(aKfUn;&XaTjdcE_
zF)?Ooe6p|V%dZUDCMG{8&J%|2s=d*$kr7uayq!L`v!ZDhnR>@c5T*plp+TJMK^hE?
zTW`3XgHHQDHjUsH&;HiN3(8}b5?Fn&*eGJNi8{Pn@l_w9E0iCo^r#5svhfwWv&nVV
z)$F9?e$mNLT!h5DNQ!v2UhVR!NW@W}%}71waX)_pai6n#vWF|>^snQt-`PYcrY}#s
z@_8~~%Z(RP8~K%ff2%*r9QaH8N13GD{%-wrm?Gf_kE7yh#Dxr(7LHAl8bRUV{D#V(
zaGv1_QfE9KCRvbd0`qPRsVq?}%%wX-Z;lp^1u@)b$h1h!qOG5k03I(dDFk5{RT=`|
zLSkX<9G>TyuVl7poMH((=@;#!>oD$uIdPD@@|i-U#>+Bf)-TU{NAFp=;dULpkSaJp
z00_HE{GqkiBA;=BbZvqkHWfUL%7yh`j;dNsAh%P?Z;DE_{~(2>H1l_JF}IKBJoy=x
z_}f)Q+Q`(R+}N^{rJ%kKY%0mki5Vp4^rthc
z@6fh@;mGBePrCsRh3+2Lmsx-FuU9j;I53@{Vp-Hm*%*g$h0R|JSaOZ^hI9j52DYm0
zYFO9Ox!w0)*I{sh8)z~>CT9dZ6JAkN9?yZ-sR_jWdH#m4Ys!qDeRNh6B2Z(U@TBr%O!7wBy7bM`-O#0(%g?T=ss3fd?c~tWs84
z<`XJk*ZPqI6))LW*gHocMTXpdWW^S~8@hw?t`EJc+z5~X5mL8dI_=q>KTvk6j
z&lQlDl{me2{O-4G?%Z&p?-l)fd+B_dA0P_!SH>Bm&z}5UP}aFCG+5FP_jl-txj;qc
zK^QXk>pJ&KTe!W~d!3&2dXM(mj5mZ&u?27tNCpR%W=3rU^iJ^}C_2yIw)z9`8SxMx
z5l%9O01~tVe0AWjqP+M-Payd~u@PD37zWMqSV}Xaqi8lHj6+)pw0|~#z3)h2S@Zq?Q9IEU3(gza*0E_pEpXC*0o4pbn;>6gz+;1Y0K?4_
z^EC1U?5T%Q3qRx*SNlNlFfhc`=TP{Xf3FrX5IVb$_G8>R>FOsH$%``lM1imlt^)e_
zVZx{;rQ8SEI5D4~hKZO*m6b=@zNqvv`r703G`?VW&FILlc(Fg+4Yz)^sDGyM@qO&P
z+6l<~Pb7b1$}EiRJ7kjck0YKEBwXosN}x#hp;Ic=^Dv$H1~hbXR!RMQ5MB)yPiFXt
z9*ba;K(p4CmfI`RRA@2(#$Q9j9e6ioW?z?Pa+X4ITLJV|-2JBR%{icgOOhRkdlC(9
zUPm28A2&|pg_S=wt<(+^1cy*?l7M%Q6kUO$fm
z>JI*1xJbamsJg+;RI(EA3KK|@z
zT?1kEmWPo0>%?%IB^n!4({6RvE!qK&IvEwFrJt}S*eGOXR%VH3eN^bA29k$358ftK
zm``A=IZV;Me+CISF|m@(GF=`{VW!WOlLWv4+h|mnXVYMq{%}*AUM&{jxi~E3CDW0f
zs)+pl(Rl=QIp$MJVgZd&sDgSbp*yziV&3mowXe;^x)dQ^ry=}???#c#yF+^lfYmxJ
zS1LZy5;B=!94F_l4?B<1pf(HLLj`}%D({4!
zvOM-9@&%VXO|Be$k};!QJ9ake>`J~eH{+$S)RAjw$h$~+Oq|1C#s^^pO{3Fcq9OxG
zTv^i<9O)Hlw^G^EeNu~>7`}TL>+z|SNSK4_1S9;(P60LzIbUzsGi8#pN>M{ps-jIV
z%@HKnpZQEVJ$8D8Yd4MDuF94jw@7$_5g$0xc^yQ~BlbcAw=SJynfzUe%+h=sMF$0f
zU5P@}W1IbjG)~1KO2Asz6tnVc^;nvy1IBV_NOTllOy&$o1CoV{2UvJ!_Q|4BnyI41
z&AgoH9)8g(MixbkZX;Uzd}k
z*0Bgw1HJ|_iriLyGi-$|GXm#y^%u2BnYwELeqDC+uXSH$nuA7h!Y-ZFcrwSkt4&=@
z`+Zp%P;oZ?Q)(+fs=3NBvn=O;ay4!ch)hrM_Y4efKM_^
z-fk87D$e*xV@0gvY*`3C7;7s(vZcZa3D5y#sj1}Pw9ZTNKr#I4VdiKiH047KXD=i@
z!|anE{OSmFiAVAK^4|volsgL#Xr8GjI0#2Hl)&FMRX%IwgDAc6b{22o{Hqa=mTteR
z*kyQ8WQK-{-$K(|Dt;>G7%sRucSfwFI^6xKZ|r)lPGn`$iP`rAt_m;u7#uAdQwls!
zfANo5S+YTeYL`N_V@Q;K58t0@1mf_GGurr9=7?+#SG6ZPg{yVb-^Pd
z0^)PW6ku$$wHVkj@K5JJi%oCMSiG?jaLYj~wVLnTt-E%?cureyqj5y1!$536~Z%hX-C=pM+Uq01GPwF^dxpMah9M4dz*xa~fJ^HKA|^J3ya5hIneCh132<
zepeGG{|$Iyu1|p?dyq|vs;$I6bLX2dZq^>$2dSltb?ZQ0L6{N
z2m3-lAvuF&R1EVjOzQp}Y<92cxTt-&rq&0dj%lI;bBw6$I}-~?I0K$HzdWoOwwAd;=1Xns^9xH(D&LmwA~;T
zj|biQZVJ<&w4^TOn#5T$I015|7daW^PsuG7cwYQQ)JY
zuq}Z+5aT$5@AwV%cBj$9h)dN+WA#!Fd#%R-yuLVa{1vHy4j{8~Cvxks4?oH=@kGrI
zi7H?rkiC|`ZjaD5PSTfxj2&E`ol4+_tq-M7LJ+4PQ*_~#vRh7;0Pww9We*T?y|NbAyt*_%z-qFs?(ZtE=
ze|!D@$!c*w*sbt^gM&MP%esQQx`M-tfyV^ozuo6A?i-4Mv%z7=$xShcfmiRo&F3E~
zw@hX#i-Cvl&L@5=#m<@Bk6-LuB<`vltQQdje|XDxeh(Pjyq_P;M}3Djdf%T%^`;%i
z!U7e*zIQ^tn}2vus8>voUd6=1#7e~!@QVwM^H1{!8#L4hi~j*@{SOK+mbCFS^6MQ+
zzMlVXF8sTf;(wY+?)1+b+rO>=G6weld^s0IEjbiH)Q^zn#QlIKVgQ)3vO0amKAuRP
zd=WaUs{2i!vH6IrbBDC6Sr^}P=;Gku@F2uNL(ia|0S~i|79ou!XA0*I=T}ekf5}d#O}6zFPetL!%JuH~llsRqLh|2LhXJSo(N=
zj=`XD(Y3NDVH?fPEu5OXgL%ITQqcTUb|oEiEz^Mf+>_7{Z`1Uagz@a3g5!ZE)5ES#
z8h{Qc%TEKnA(og#=d2;ZT{{{kWhdCSa%+ILC=gs*vNE%t4eb%lm8!ed
z0vgePzIms(wt|+b;b=FC|L4yYDi5hf_Cjcah+HMPHWlK1w2aNWAn6;SsidZq2_co1
z#xeG(){%O$<-!Xo-eSo_-8%tuUg)IkTop8l8o^Fis=0Mk!A`=0dL28>t8{sKtLh>mB-g3^C?*%l#bijF;6Ca+|T5IE^|do52x!1y)Y&
zoI?&wRp}mQV}pVBe01K?A@Wb2j`QH8_Sx~$8!iNv)+wpb(&?)K!Mv0|x$bqP5J#1h
zU5?^|p5TOfhO=V#+P;J}?@cMz0idyuG;YN5omGK`hcnId(inv=fn6$H}{zk@`^am
zA^b*ZcXHOPp+U16-Cpzw{`A6Ui$I
zF?OC|jF<*rKz~6cmuC->8|n`$o6V*c8}W%|crdBR04y0*
zu8UKP5+!ygF-ABl=m>Dj=LWNcfPG<)9^jo2W3IE#=!M@AvS8WdGzOsZQOI!ErauA$
za>41npiPJ3EsV72mTXq>JX$R5DNKi48kAZR40YA-IlRXz1Aea_fi2|fw-40SevNQ;
z{}GbhNNkw5*RLU36464P>I-#b(_U3l4-_PyZ`d6$q{LBYLRe6O5`rgyg&t-;0BxEg
z$I>Dp7_2?XDanl7GJl(CgJVIFg+070WW7NA?S|OK44q7HK>gIsA8W#5AFSUUeQW
z8no%K=%P(C8hgD4N#5?qgqQ_&Tbuy2yiQC89GVhU6j?(|TydgbvEqPKrD6Sp$bP=J
zsr&dhu?J;mXc;893dX=c)2)z@ao?8ptDqf!M2@cv0y
z$kK_oQa4(O3)AGBXl!Gv-<(&1t=veR>RFd3(^fdP`BImK*mSZF+?t(f0Uv^}mTVLR
z61L|d*ebJMrXvhttFLmA78OT6Fh1G`HI3oS_FShVNV&;73JlAwx_ZXk&pXJlX{1$F
zs=P&pdZk)x$plGPrcQb)2DgBCbAb0lp2N0?shPCPs!Hl~yF^gD1-Qp3n)GP=x1>_M
zKrFNouK4g?ah}?tR1z-Zf)A-hEh8SA^+x@Gs&=wqe#9@vi~4%9DXGrdNi@(^*r5a0
zI0B+GSLEgbX{1dwbHv5=T39sNu1ZU^$~s4j^@=xs=#;80%$Zz=rGDNd1M6ixoyKR^
z2xJ&v%h@WZe4Gq*DldzW%1TvU67JRrEmZRZFqNB3%D67+Q~avj(ZeD7jAhb8!Yx}h
zzi(H)9m=>JwGxFvA#Mk<;B)lT6~B0S5JwuOd5_7Jc;K#wbf~w*ne^s~;I75}g6Fa>
z&XA7o1@jx?PvyTxt*5e!vQ%nsH4lZeODYo-QI|g!-WzK^CXKZR6XYD$Em?ofKCR9-
zY?(zKmM~%P_3@JG>x#pv56Ox?ZEJryXMI?TQ?K7x{?#XuU~z=}E5_uaOU$^!i*57POwV(tyYHR(5oe!$_F3;<#I`Xt+M+z($YQ+^7T2I;#F}2_Shsw<-76Rp
zrZU7z>bw)GETI12Am
ze>-5TM3v20rbo5?z9Hzz-@Ct%MBkt6#T{$+4w$_W^@$KonTM}edbgZF@TNg?W9qkz
zvwLo&t4sfFs^r-`vf)w|=gRj_bT7of4YV<}OJbu}g-?Jj%{`MlkyfLwFXdU=o=n(a
zQf(OpxeE>zzm*kQvF32nO+Uk!93{3$#F}@2ic8ub>Cd(^qvvW9
z8#ixjFNCr7__bqn&`eV2N9*U46+_RXfV{oAI){PE``n3@n+(XesVN-oDFa&iaIK>XPdP(3wGUH0+b_aRf_r%MV7NiDhuPtMCr;0
zs%;(tT=@OQ!SJ@%R!`rq0MZu*MqFe)2>dHI(2ms9(~nPx1xyp&zi`!)~J;cFBcED+9&t2Q`{g!E!W&__Jp=|tSc8!EpU
z1SMl>s9fy4+<~mxJF~28YAyCXK;B;{UhM#nZu_9?eqV%R31
zmzef0`Kddk55<2wXR&$$!ptjPn9Aphadi^^Y
zO8Yh*99bi`QqwHzSS9Jie1Ao*omo*+6q@p^&BGASum-wp2Pw`gaRyWsXBg1jP~i<7
z7qRcEAv}e)7c{^Q`j2@kV~G(SLwr0{>O5dv&AX0}7Ycj!xE?vEgnN{htRoMVTFls{
zch2~{p2j32{_N%!J-gs3M@gx^o`D?eGmtpqRfWa16C42HXc
zw!s$2LLD~{uVw(~F+B*8yX`Ag}=oI8me$
zIl;fu0kabb|G;ioWhY$Im3zM(e~MZltrv0ae$Bg>P2e!&;431_zFhOJ-F6QD^cK0N
zxer*4$Ip!$BsYnAW*N+%wEncYPy7BdeVXY$NTVp<`5o`y3EiEaiuP
z(BP1pK=H-kK7Fi?&In_vYS;~a1o?P{x*#}F*_B?^+~k<&^PxsY4&Koh7s{aGC^w8e
zcf5S?6w>g=ofpWV?BynBNlw>?pnABm>!R3HLgK}s>ignEi84{i19R-Sww2Y0m2Q5r
zgZ{I?NM&f4is{$-h|Fsl@P^&~V0Ty^9(6aS1XvYP)kAfj-4cpX9jGrHh+Aw%+8sw)godyVTV_=GtO^(0bWclU2k3v|CzA
zq|a7=^+ft8o$RXYJOFV&;BIsW+SnAYj2C{dR0uiVn+~s^nOOB37qR=8ktYSfd?oV~
zbxdLr7$q`g3;z$s@tXvoI-Qd|wIBHrO=*HUcPFKL-@;CQ+DJK5mmK+eX5%vIu%}j)
zo7@q(MGa4GAU&m``5&G5k1mWz
z5vU(Op#Pa({&y$--|3bA6XNh+>6QO@{-$U^d#Eh6e63_iPMbLO#e*Z^F$v<0{eXlQ
zgd8Ofh!5bQK!*6KC~qb=+Gk>x%^CDt#Fn(DO6?qk_N83Pw|5leR+Cz#YToKm&)&YK
zb;-)QTfOF4t;T6(`&wr(HhDgfT^BFm5TSI07<;Oy
zQ`@XWFCL9nTQ^N2Od9LOHnoreu@*eY(3o~8azgW_9#wki^8{Jb$EmCs{|cfc21?wv
znLL=Y+meoojb9K_(t+{n3-p8Nj4`reK79RK1Jticw6q1b!J8;Zy_oQ#Y>c9*m{!bG
z+A)1-fmjwx#E8T)qv0w}X}eI(WW?G&f_egLyT(vzf)w%?c977b6GQCKP7x(%4{W&;
z^GW>*i-p*T(8JLNzVp$fvU-cN8xY2C9_p~UCW4%a8|adT=`@(FDWrvC67@6%ZNmd%
z^)_P!Tt`!U{CG?;p=w_+aGUk4WHLr#vb;KTc354MTK(&xkHMOhPn0au=FXg)JEb~k
zapG$yL(2}*=PHd#WcDoaHqxQ4%*{(T(x93?g5Me-S(=Ttz}qAvN8_sG^>XsFXjvM&
zZk}q7JhIwLF`e{ycwty^cFhqU)*3I?WtTieCauY*bV9fWA``Nqf>UkSCoVK9ua?jX
zWT+{<5UfX!U|&HDia9LUrY#FfX7Fm;zi7V)3M58#BpguEs!2Jhiv)?C=e9O>w7(p_
zVrdYLtkPqZwpC>*j21~ZGGjb~wrL)wY9hcMZnSvukanI7j(%xxTMk>c4Z`(E#hu$m
zyaL{=$F$gSH1ZAc%sLtnqEu;&7V!7quu}5_-FsBw$z$Ho21bqaC9#4b9@DHwL!}=o
zSzwyHmaxQ(qfcsP88DGW>%<0Cs?^I0VD?q3i7YB89E@49R9+zWdz_82mi=iteUc2{
zXnAVpr__Y}9LE~8-HPzeheESf^CA~AM9P~5h2g{?K-sJ~I@P&|tJFIPxYUK|HZ^5b
zh`&HtWSZDe5b|iT*bIrVWj(g3cqzz)u%vd6gxR%)FC>u{@K*c$m$9L$X=C`O5t~4b
zZ!P*HNNjrfNxPLb5SpL7azlBd75bracvf*x#}qg$hPEX3d{DK)gVmyh+QGmF$0|yj
z1Ft@sm*b3cpt&(nN(y_G2SeJ!b2Q?Hqaln$>*c}Kp~?9-NCPv9Ld4U2z3Pp1BK@VO5h
zC0IAZZmUbeSNy=`Dm7?4@E335F_woMe5Iua7*
zJ49$Kl@ws}`m7g(|5Y0z^=#%7d?*fu#JC<&_7EFhh~Dz^US^7B;fXp<*RnTrcW@%P
zH>IQ8a&6EMb@&zIJS`PkfWLpfdw&QHb6=nW
zrc$uBhrN9W8Z9)`wS_6@pKz(~M8s(9|4ndwP}*<#z6$q1p7sgPabWTHh~1d~va}6j
zQ%Nm%+^|m$VPDbt_7k*qrbe+!+yueuPIIGEROBj3x{Cm?L(t}?-JF!
z^Xh*#+WsUq3oS&1{U$a5kb=MG>@0$4W9@nMAq)#JS%B+KL7X=PBPPqqW2D|uj;8>#
zhd>Hr8$va72k8P|%2_6qkznUY1!Kde(KMS7lu;Lp6~l_mTQre$bD~t2mM~ADL@9n*8FCPqMm34Kum(_A5JX$*`
zLC!amWd~K}+Yu6k63r-d$lU7ruozje1xwt;C|nxFioEXc=M{+1mN!I~E(+(m{OB=0iNv7j
zGzI=z(BMB52TPSbjDY>kuMbAG*?pOn-M9E9Zo;MdFW-z)sCh04Lz6if!L2Iap9;rC
zM`h;xRD}>zVzGO8cYtxZ%%aj^f%U#+K*p)aC6GC_C(rh-%Mujlp%gD16J>UL`k(|E
zs4B*T0^4!Ql36vM{j;H-jB0^BXPWvB&KhjG{_Eajcs#(AL;A4qXrPEriy(S*?aEiH
ze2yq1N^4+DqzXf`Faenv(^{p%kVLL^3W}^ZGu2v!b}};o0$XfSmKwvZIng>L0MwKx
zH=0r8O@}wiszR@%BS2Kbdw^w~MN4#NKO9dsvw}m@)KF#lmd=QTt~ttCUQscjOz~I)
z@u7Ze9mBXF7%^Nd5E33B6Gzd`!<6bVSx%0C%E1_;#9mV%ma<$b5}HiPqD3Alr79N6
zu=9iyL6A0XY#l0=O>vbj@%CGof0}A2XgMO{ePmogMyFEfxBQg*MkpxfFsnf5+rGY4
ztgBjHxnLs7ECt2v!ND9Gdy7JqR90xahjXy}SP)j#-;6HQsKV?b!>@0Pu
z{p1&$lCCN1g8rzusyfj6rt{S3EkJ6=TprJc9+3iRz{pxeyhz#tog0z*GD;-6U7?U^
z96%M_T<;;A36r6Aym+EjL$1XM9xmnIezepsQ8;lbl~Q}sJzJ7!>4K^|1!e{ttKYdH
ztm87rN~EVleZGE8v!F~DJk(N;PM2c0YvnlV4h{`(*O6<7BKS-OCgzwj)8^+prj=qx
z7>yPGrmRP~>B5W_9`BsB`wqE-8f6_?m_r|Yd3fVXG=q;Rewml`G^;E0A}=bqkQc0c
z0QZ?|wC@wrer6t~gm2hxcUYvqGU8VojByofz|u!a&5M)HW0d!1kjZDi3rbWGo18Yn
zoi28*E}i@aSjaB2wTZ{XJQU7KcW<)ET4a2zDCAv!*I~TYs6oq?5N&tpk;(}Q6wu9+
z6j>vTqTf+UsFfbt*Gh%i-Ls^R$}KKa;gX=h^XkMIucnnpS+{y%;T+-4eF+Ak2R_Wx;GGVMrhE=krC+RW
z5$v>y%vtDms-2g*W>xMj94p>l4Qq~Nnh5f!s9Sd1I{7)h7ma!J)#onWfo;c1g-}fr
z4(ga{$dka(b;csd@dj+wztT=MVk_qnHl0TYYg&i9H~iko&`|uE*zK$%stwgKq1Y1?
zXkB}1Giw{XNWFGyoa%>IJ6eD6d}80>GMPw;vU#1Rok*L*Antw5rPb~c9bGnV6LsV6
zw|m8-+>m7ZGmJVa;^!r;`vl|-y=6HD11qkkB&)B~d
z61z3p>ZJ}bU6pa4N!GgTy47BQ%znEltJ@xuwE@QrT$H<56Gy+hvfqjG9x7jg&gEo#
z{!+7k3FrZW2OhhrJoxf%Cd2`RK3+x8xwzNmW+<>S40ZU_AK5Me0lywM`<|0@j0q(qbmt?;I!BobL5}wtBDdytgJUSh?Ru@J<+NCjs|!eLU&`9q2Q6L(pw|
zqIQ9u4Z+xRycZNxzLd}Ef9opc2j>nDpmR>`o$e+P*CsFy&-(2@WHWf~QZY{Zd)T9l0cJW;2!2C+t{~HcF*1(OPrGa`#`L-UmmZMr
zyR4fbaSrTXA>QRb-0v^%^{~QxSrDHUA)b|C;O9g=(rbr_U6AogHX8D-gvfb=>Aax9
zPi%3D-EUaB!^}@Xc;xZ-5qx6@A87TIa6Cd-eN`15MaD+Xkw9pP#3;1r!P=jDabzJn
z%Td1%+Vc(Im-eM&W#C*EaD0ZlVR(c~UNX&9m#-1dwV=?gm%{BmCZ{@R0c|fRYh8)R
z;+P6h2}4!?E_diK{6kh1)Z#rjC$0#=7uchCsqwV*XH=DAMLofWqX5JSRiCQ^p_zad
zw{*&Vwb2O#3~v_&6E9^u=_ZH^+k|$yb%yQX{*3D=sV0GO!Z#r<2w$gorp!Bu%hKx1
zFT2Y{JSTTWIsQAP`dLLq5(G8HMfkp-^|RDUIdpM%CDjS3`eo7RM{^hxxMjG-jB(4j%SR~@3bsGjwzd&-z}oN
zEZnpbnU#idF{Bhc@useexS0GS8F5k4uL_xK%ovF~LYrpHV?kq?p95x+so;p6@kb69
z=J6`mMTbya7dl7Vqzf82o341?!WcQ3uZP+J6=ZR0+UL<@kgZR(!mx3Iiuo|=V!O_!
zkxarFveXv@j+A9iyY4t7+rZ#Qy0ZOe4$f~#)E8#(sAo
zk)0DMpGkpl?(P8j6KS9E(`WqXB>H6Fi`Lk1Z*oF0MbT(MG;tYI0#h>Ofl{e*DpSzr
zxMgxpcE7Wc2@qD5$xT
zSid+n=0$Pz2+DE{NQhHrHZM3FeZqa}e(~c(J3^(u
zsnFDLLI>ytkD_(=ls+pd@&|T#BoU3f_D^S
zYs7KW$D0Y_mtSP8ac(bJI-bo7`ss7R=qcu2sEU3H;`*3-2pKbkN+93f6VgQBXiV;f
zQFPvLV|Z_d8wc!p0{sdIi~17JO4Bpk2#CT9Q%a
zsb~vUl@~LN2iH@K2W6dq*@)LV#g{b;-RV0+f*vW$d>@z<7ZfSC#Gjq(^@8kAe|p7t
zQ{YFP5PGHG%R!RO5leKfP-ZM+}xW
zOWUcEP}&KWT8ZkP;fzs0cP$%Z4Ff;K(#j=Up;%l{7wMhaK(J40YC?Nr978QHt2W`x7L3so2;cZXU*S$L<4R_by0U%nN>j-Tkm855u}
zfru@2c7y_5wG;Fh6QFD{K(kGy$~CK)t0JPNxWXD@M<(y4aDKPIUWZGye=dF$3tVt4
zkO9b9;+f~<#KD(L0cwJ5Q6#hC;1}p^kJi|n)#!iW;gJ|vNBURu{iH7dpfOCK?HV!b
z0e<1(4E-^L>aB|VK6Lp&@(6mRmmR#$*B>kL3(-4dOY@eWw|=l*zQ#)Z#6I%M0jx>2
zAN_~*n7^Q&I0Na&57U1z$NwI8{ddxX^xs$Q|DW~vfBwP#XJ>JYimfx2DvF<-KTUiL
zVQ{Hdk?oQifviQQmUcK}sE9O)K@(x>q6Yf}C|iiGnI;!*?=$+#n7yBC>9mS?8GY>6
zk3W)sLiYcWU=6(`Tez
z&^3i9VfKar7H;i21~ZiHxpwt4sIt-OVY4*>9x>hh9
zF*lCW_Mr>eoj)eg1YGsCTU8T&@mQ{SWR;qOJsvK9W0s6*J|NKvD{Ek->xy;kt#kRAXY95
zZXH}xK(RNIIrnjT{jULPE#at&H4wmVUgjM(Lt}H)0Oqmf9pRfe0sxaD94U4#dPL$I
z?<|~8GF(mG2WMzcGUMSenqIkw=Ws$(KR4AW8)3`HE0>T~JTW2KByV>r?~r=?E=SiiX_A@_GSMW>gEs;j$!}MJ6&iK0*Q&JLYi$7`^e9#;YeQSef
zT$P=24%TphlD~PhUp9|5iR}%uif=+pUcp5M;)LRcTJQ)fqT^-WNH*rfWM>UQRr4;n
zGxHs|B>WP>zXB9^Ni6b=#H+#}4@n{sv=S|{XB$N#DTE8l%Y_Sr8R|R~R@Fg$A~yiS
zQcB1I&&;7%c5}Mb$b8ce1QgHKn2yi*|6_#CES^LD^I!PW1N=YNl>ZL1{9gbM5knV4
zNjnEum;an`E>W{}M*de?*zB{4rPt=s%e&s^OCykqwPu%p*;0a0Ls&*B?6i)tZ8dJy
zjDczMGwjOX0_dkl!9Nj+xQwBT;Q0ISOLCo`k4iQKFh1j(p8v%`@3Wn+{yrbo_5S(u
zYnP=`@&aJ<%Qsz_F;4_zMe{X&7*@@`Q9~l}P4VB(LS#JO%pr3Ik3*svGz}EZbQ|qG
z#fV`h=&0eyNNp+`)GDat!oaT#)cw|kmd%S~ASS1I&Dmjhqh)n06@+GN;C9F0wB#YQ
zlSaA%0(KM51h%>Z!P2~|g`S|vJZ&b_)3ipc=iiPFi&XO%(JY#Gv&}%m8En%iSIcOR
z2{lncs}b6?M(Yu)3ajL(wMU>$iPq#%)$mpVS@=rh=Mr#HK~C^)z^h;9o@S+@Jf8*W
zKy#A5(^TH$0M(_zbh<)=6i_`iw8r+=COKrG_*V)nXBivoJ{KvYt0a-!MlFz74w+oL
zbkmA9no=r6_IHw2`sg7CooPbpW(g@)0$S^omd%3d#9Od6s@`JY-wk)~i
zPD?IgJS&@NW!$X)M&>HrS{2ZwHsx7mq*!{43wVT4v;g&$t-`hzGsQhNtB{xryj1&e
zp!jRDU6TrZ)I3bO(d%t5&yX8h)LscBfJ>NBUQh9jwLAepW5Ml*hyH}I!We81r2$iI
z$6CJm8=B;yE2=3Bnj4Ckz5MUgvgq_Rhemm%**4Pw_K>z0972Y{+ba!rUpo{9-J_HR
zE?cQ@%x0(`-Aa__%L{DkMd(%~=zo_yiwdXNp5u6Jn_Wd`H_8
zK2>Ra6OHkSNM04GZb{^a&3Zw$!P7@@1_Y7%O^YzFUb@I_f_%Z+1Ns#EaqOG~dUtT(wB-qlCJ*
zJh36gC46wsu8UX?JEC$3?G4>Ewk{!zu+1H&6W|p^r#(oafR|sR+EbSDk
zy0=WUCx2=m>e)^fQz>qM?vU9T|CS2bhL8kMHmC=l!r2uuYcy@ha*~{hKxUKA=5Wdw
zCZkNRzFfy3H%wy9zETt9}gWV8=MiVe1yUHnb+;4S!f-PC)Tf
z(IyCKokJCQ>yVZCTgHq29w@QXDp+`&GeR5R@duK?_gSVGvjO>9`g-Ewa_E~m-1TlAlSCH-(h|0&R8Gda9>+63+uF=+G1MmM8Q&*V(TulGFQIzTb(4hUl
zMo|(W8+&8x{}9Z}yZ$e`NQmP9TKr*qIjCW+y%SeSVc{#{02Fd8Afip~C`ajEV!^dy
zk#$K7_e+f;YQF*bptzMo5JYzk&3I4eKHdZXjyJgdL8?m)5n6qhnyy59(IJ;wa-V7l
z&a~9uS%I#)70YruJ3ZV|ss^Kg&{w-v}rLX@{M47J+9
z2{$8<%TEv~BMPy?aJ)`D_;(kYmbn6wm|h5j0MmBn*Z|D563}#!WT)
z<77%0bL+_wEKE2X4m@koZ@3k7qJWfOqrtY24YcvOr#9w_d$J3-nFD$A_HdnvxMbQH
zT-d~K$jzloqIB1pq_ag-L4qI_s^H;*7ns|ufOyMsg6dbnaMN07bg@ZyO=Xh27m!;wVO
zfo+HBRneN0!#0QME8(nD*}J^>#IyzprgYN=5#K+l8~&XBPxw>QTYe_!U#i~ozohE_
zdk_A9GRH{%&&<{TxHA7sus%d(Lg^oL%_}QJ28rk(pz=Ego(0k%nIQZYH(CTl0~HFk
zHggQ4a7-pUBe;FIMt?UJ6`H-aZ(gZN=Z)4cuw>hg2%b5)DV=Z2_swO;+5Y)iAHVlU
z`cQQsTPWcI)ksyBQnh0hf<4KeTMfd@ffcBotaI3mLy^KVEvR1T)p6JKzNsC`{{6&^
z>y#mcDy{N@Eq99&vmQfsw8_@Nfell~C_>lD>_eq86RftNe}TEWlX+-?E_GJx^ln5r
z>vp1IVNK~~OOqL+F4Z|FVBV87V{54>AyHArELg-`(LFPPrmHg1$)03g%9NuxA+m_Q
z0!BJPE%lsov`&0;50x9!HOHQjr6NC!5IBMgES9Yr$l+WVTdGuDaC#W{XOE?9$_Jkd
zGlq)2lAd@%6y}Jf3xxwrW>$5i?6sQYK^XoBg84$VtAl{FbQp{=!$5AHC5!3|3
z_h}lFW*bWEjk`MS#nf>CK&WxVip58VsJ`pKSLD(lR>W6km}EFXTTK#SejzZzfCUom
zH7~d(Y-hpjU%hU*wz8tmiGrqKPPf;1Po58q=HSvBs`S77JO~MGipxeg7y}ul^zOa;
zE%wyz??j2f{`2%q(ckmuY0t8%@+Fa@r|kfyViffiFG}N6mxcz9C+ER-Y_L
zBH%;TCYF#SPOI0JPbgRh^<77cECdU2~+W7Z4D1T$#oJf
zq7{S+se{Q#I;13~s+6~9ZVq@GHo-~S9L}k2Px^J=o`rF&P(Y;`0ywZ#{#v(3vttw$
z1w>ZJ{tmX>Oe&}*j(JD9fdSh6_A}BE)Cc$d`8JvhgEtE^DE!t&`2Ih=O}{BfQ%L`z
z*I%Ijxxm6}{#P9N|B~nsbTzTG|NpeBIogm0Du*q6$GuI?kn!<-^|6f@NQnZo`GTUY
z1`NMR{C}foo7g2L{Eq`zuTixexu;Zx)?!g3jox7aDnquYQPQevecAN3ZEamu=iBn6
zS+(5L)1%eab^Y;d#sn#u51+O9{WbAA^Jn?`gWdNl36MupIDF)>r|
z&VgC6+EPxmgjr#65>0a+ErQ%~8$0bH%w-v}(S2Z)>8t4>?x8M9HHR6eQao^p%Sf%n
z=t8!Tp4o!k#%iPW*LJ^gNk(Ua#Z8nbS1N4(bPA|ZW@_-q3@fb0s*urosW#Su$A~oJ
zXfdWw_Ntk5m4L>Z?%KvOLG^6lP{z*&w_^B(t~txCtY#6+g#mOv!iA$%hpTTKiws_(
z7S^31L~H|wIdxR$SR};tAL46KNOYW^&QS1|Iiq>ck~Rp{Hs|(IMmemc3cO)p3kFz{
z(ZyYDqD*8OP*EdeMw2b2kFX7l=dd(EI^I*!0?TDCy0v(-DYdwTl&rB6*;*n=yaYZZ
z?nfAJn~|+ViVQ(1gv&k6OUg9K85k#-&Dls)F8$jQ8lRJlGJ|cokOFk!P+#=RlpfaO
z3b7nHvB_kK8xhXex`cg8ulRwfVl~f_IisS>Q%w~|ox^(1_8w8OS=?}tu>33O?n13Z
za^Iq>S&r2*aZBAaG4Izr*H$rPGX9V6B{JFq=8O?xl!>C#MK5Yg=1~)rnX0KU^=#XD
zC9W{aI!%{uz6^_2B}!;BpW|>TyfeR|Gsixx*s_Z`vPDs4OKLbOBghF^EkWvxyTOFf
zc*oK`MO$WRaT#kJT^73~_f~ezu^1p3qLiO*At%lTj-1%x)~QR$M&Zo?;w!fp&P_5}
zjgVv2z9ps&30L(C0X462pHc8>f++Lka)4@QW=*UM%G`|fc{&tJi3Z2ERst?$pTso#
zDbG5?DA%K&_IJjV4y|H>!nOgDUZ6u+oPen>2c})vADcqjJ^Yw;Bz9~wj!YXr|tAT;-8RWNsTGX{z%)n|0&V9DZ9WCCD>4KJl$v9SsR*W*|
z?PfI`akdEw(6c&Mw=?I$s?tc633ZS11TRl%4Zq)4kKWS@6rAFbb6}?w9F;dFQVRmz
zh!Z81R)KX$j)@_zPst)T`GX*XIJx5=MwG%C+>BUj-7#qemQypZ1()Q8G;huq+{(6|
zE#hV+H$;qGbmt%>Ugbg|o3Q*!INy=BULakV1?VVQLy{058d=i3mB2XSxkHH6n3
zlH*RDri(niR*S_?xMg}=2JlQWHF#*g3Arrh3AtbnMQpnlYkyk^9Z=VzVrNV1lDSI1
zS5;{yrK&nTGB&k-R$dw2~I9UK%@SwzA!=3I?k$C?u&&7*h
z_*^Rf#=LN+cE7rr``+t%jBw&*Up%4^!P#Z?+A016vFchA^TL{hR?O};F6=R!7ihh8W{LV
z2JQj#Bz>sCvLZp?DVSZPMHa*C*~P%xN{QZRoPIA$7f&3?yj<6JyRRnGq-5cg07r4V
zxjjY(Zrb*7q|xm8KCZ)mcc=2Z`|G2}N>>&QCs3kNpG!gr5J1TBIW4FcmFT-l8sw|J
zEb0cQ$4(|5jQ}-}NL{#)fr)wGBN`<5b`|TF@Au|l#DCv@<;RxJ`8bsJ^d3ipy%7(`
zZXY(y3a-b*DmAwZg?;pTV@xLue3~I#_sr_n2{1mcO@Qbn?K{-5yd&z*KuS(!EkSCS
zZa$RRU5NkHZY3dx!^msS43!7xc>T-K1J6yv=q@9$jc1t-;-^B+t4&fGQ{<2U4Pt7d
zwD#+)a?TH#+T%mAI)qvNT4AO*w4D)?_O-ivD!t3Y%zgq>_R1Ewq?r_G+(9Wa=Q`2l
zjo&Qw&$pfq52z8-8X^ER!DX(ai^d>0g+Kl)cU<%<&p}81C^CBV1jAK-BP9cduw^>Z
z=@OR3lGty}E}OZlzZU3mT0G+S;S%7Co^+<4nc(>EIYbL=yb8w9Z-;N7PCQk+I1%R<
zN~-a(q8q*3z8^@HK)XI#9#ZuH2pwk1Ye16<|c8)PZ2K!}`VIdzQXAG0t
z%cZG>jios&shE|pKkIw{jbtq~l*`(rgn8dzu5Au#<;8_-#AMv#+>RJE-8qiXIv-T3
z_^qT_LrfMPrvY+pV_M_pfJ%30p-eN^<*P}vj&M6FI2z5fJ%=4TvAyrjDG&+XJ~f-yq|kjO&{$Zofo-
z*p&h#Gzag9%kq_j*cLKh8Vl5Au5;{Ku^^2HvJcJ0`?jd!Rmz6B{elWfRIA!7|Eavo
zyH#o|0%Kp%%&f}scVl8Jd=})xYCtQJv(H#(!XQCV#g$k>*=_(?c$l0WNIZ^4ts-9X
z@?5U-qjdPin~a~*!73UyU2PP!;{l)b^?m*tjbPPaw*Bx};u&7{E5RjezPq*rRM1>`
zd?X_N(u)$wViai
zQ4a36GB)xA5n@DCuaM4x{zlj67IUxJJO-0u;*Gt`7j2P0V|?t8rga!25jf|9NW`pt
z`Um(Iz2N>v5w4I^%;pgTZgR{v)2sXk+b@RlNANDqVZfA)G)Y>w^<5t61G>ri0NC#5
zdi$n5^voYdODNf48Lu(GH^~0VPd=5-My>9sg>Ue3dywCpn5M%_ccg_W##?NUSbU4;i{3sTs?rkTW_4#zqA3JApo|RE&ew
zM05qDaaDl^vb&1gZb}A+rdS}x^Xl08Z(84I=M#Dfvo&W+vu_uYWmq}=u`CP|p`Psw
z#>*3GVAMPl=$y5l51>U6C0xaf0`-96-QDb1inKAyq$(E@Fg~dWQ5U$8o#%)CYz#@T
z_!$Of5|KdRQX47DDxbzr`^nw;p8Y31(6Xm^39lu@@afN3(n3_pHt&tD!!Gkc`3`84
zK4QKjf}DlQ%lA7>gQ|;rW(Cy}5kwVl_U6^5=t$wEB87Ri3#*Hp3rV8oE7kro#zb9e
zc~ciuBL$x#k9lR&l2ZD>8>)31>tb!KeoJD-!O&d(Mf;@6L`bN<#o}U(b}Qn;1qMC-
zsR&|~OlCE`&w7mt)uxqXJf@4i%U!tB7#crO0&A&O&GghQql)gdY|c(k`26bGL4th&
z7+-}@xW@ob)6&gK{tDvXp;Q(j~G@2Ul*rmeeBOE?U
z)-@ot6@`qV-WTd80mWw6e1rn?B!#UhGW$SY2SP1&<0DRDbd5dS(lCVo84{#FYtc4N
zrL?SS+4398_>AUY-@+XY27NBNR{1`LeVV@g3kr^#55I9DqRD32dgzmy)U_$OK+inc
zpEh~IbNO|OwgSTAHyoKT5_dJ?;P!zrH4WW;~dKfi_XvUH}#kvz$>4>^#L&{K1EnpsbH}WpTpr@sz_0FCq8lP!7OYkj<|6&OuR~SZ
zT0m9HNdtuVSP|E2xo{?g^YM)VdY1T}mvjVC>kq?3g!r>wg*)RV=B^=eu8{d4qf4qG
z_?oSaB)zTGMFF&c-MNBO-oioTMFbqDWkfUL=)s*8h2g$&b;$I~R$?NI?S#U;R_(DB
zx_akl6mR!pWOw1xmtJPni0RVLA}g4qDITGXDqq1rvuOnr^zl16QL>&F+dI!*vn!%`
zego<`owQj5IkbJHqGEE=6f}HZVt^zPv8Zp?0uf9VfBomO2cx((Z;?^ll5d
z{Q|^X-j?6Xw&Ew-cpdtofu67MkF)B`E(F3mBP3ZGp?F*J?@=<}J)bO!7Q9D0?(m?2
z0Ypt%cpwoYA21N3o5YxBQ-6@oqj)g6poo;?X5q(k3ykXDY|uYV_@^lDe*2mVs)v3J
zpK=R*w~}|QI{TwVu*|+rz;v$*_g3Mp^nPONJ^+dyj9REqyi!M=lzff9^1M&zd(4ao9Z#>Gi=S0-I_4&50R
zu0ZO&4oLCA-1g;*C@2xfr6kr6SAAFnT@k;B8pBQv`iVL319q
z82IZ5$}6?DNDCeWZC)w{td+YRF>^Djt6rl
zIgvz8p-+L@j=wZokQ<5*J%0A~FL-neG5F~M@PqCYMyG$U(`EM6IYQ8~%O2>D;XC$o
zQ}xeCrXLrbQVj5N1o%jJ%60nwQ2I!SwKBHAR0p!`1E;Y);ARGx;mM(HZK^Q<&Nws8
zmXo0PPpgy|)FT??ukZCh40^Bbhk`UCJuk#>XTrBuuLeRzd{K)F#{G^G^Y$*DIE$xh
zcuU!kv!b;kL}PmS*LW_1cwv`S$S(5$UP#=pL^>{8s?9TC|1Ibu_+Au0Hp-_?A%N6D
zmxZOLoEZnUYeBkTByk>(uIBpiPORYtPfsBc7=p>y;*Y)|w>4;fvPvAP-JO^ETUY$0
z+KNM8v4#C)>ZWn9tI>bOq&>EZS8#?I0xOq}P1^A7IS8>G*)s^Q+MQn-dAt-Ccwa)R
zf@SdG6X4;05Z+29Pj7E2@~w8-EAo7f8G^TE_;Ax|W&e|1HVGmDD1q5HF$vSAXTVQi
zb@zzGo(kG6=nmhe{vPyYi7EH{6H^ZKb5E~~Fo`Av0fx4ZS_Gpj`BzuAl)-^%SEAhh
zQn~I-Nr?{hzNRp%4_?haSNaT>)zRbPz_D^Ny8^eqfaJDN=ih`{Aj8%OVn-b98(G_I
zk%jxM>EguY1B&~sb9Qms3)CB|zNG!l(gWHbG3raM;-3_RSt#2;+%9GE824sl3W`(L
z8Y&RYYw#}UdmR-qaZmQi&6p;P{7iUJ`}_(yYs}3<$G{Q;S})tfKVU(S0gpb-+Y)(_xmerTFj3_j@vw+<`|~HJ1KsNglYxRy
zOzV6Wu7`sZz5WJ-cZZ!V{m$&_1UuXGH89KjW%-RsW9hh{iGKIEHsIh7lLlc=u1^JcgO{BI{;uj@cXhJH4?1eYj^|7}AZ8*r*gnnT8uRFv^!#Ux|
zI^a7?Qt$61r{|XTv}=2sQy}=c*DE2zt19s2ocBZ4WbGC6YgsW<`;Y%!rEb_OH>eMU
zTg*0Ke8{i#7uwVz9l&oK(IDI&{Jt&VmEQlAyYGYVWREU$*xmRDy(0a2L8u4a?UB?s
zUfC9{vAr;xc@tz@5a$5m54w$fNG#sUNePAu|8V!gJXav^gCH^89L&!3VVKRQgZd8>
zzgUf05HR|A$2bbbH=0+ej+cnAvYmaFoAU~#50OfpklJ5<9k96k0swfTv@6XEvHb{M
z^nwZI|?K)Aud?Qpb?5b8~&QK6-$CEfmDz
zKwk+`s!fFo6wIM`|D)i|pY)MCXXpK?vfdBsaU$;&s-r$T<2T8P!6Oz1!i
z1MM)^*R