From 451dd2a11f9f1815c7bacb11683f5d1ac2e21f9c Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Sun, 22 Jun 2025 19:59:17 +0300 Subject: [PATCH 01/22] SAM-7 added HyperbolicTangent --- .../HyperbolicTangent/HyperbolicTangent.php | 29 +++-- .../HyperbolicTangentTest.php | 119 ++++++++++++++++++ 2 files changed, 141 insertions(+), 7 deletions(-) create mode 100644 tests/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangentTest.php diff --git a/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php b/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php index 830d0becd..bb9a8c8a5 100644 --- a/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php +++ b/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php @@ -6,6 +6,8 @@ use NumPower; use NDArray; +use Rubix\ML\NeuralNet\ActivationFunctions\Base\Contracts\ActivationFunction; +use Rubix\ML\NeuralNet\ActivationFunctions\Base\Contracts\IBufferDerivative; /** * Hyperbolic Tangent @@ -16,11 +18,17 @@ * @category Machine Learning * @package Rubix/ML * @author Andrew DalPino + * @author Samuel Akopyan <leumas.a@gmail.com> */ -class HyperbolicTangent implements ActivationFunction +class HyperbolicTangent implements ActivationFunction, IBufferDerivative { /** - * @inheritdoc + * Apply the Hyperbolic Tangent activation function to the input. + * + * f(x) = tanh(x) + * + * @param NDArray $input The input values + * @return NDArray The activated values */ public function activate(NDArray $input) : NDArray { @@ -28,19 +36,26 @@ public function activate(NDArray $input) : NDArray } /** - * @inheritdoc + * Calculate the derivative of the activation function. + * + * f'(x) = 1 - tanh^2(x) + * + * @param NDArray $output Output matrix + * @return NDArray Derivative matrix */ public function differentiate(NDArray $output) : NDArray { - return 1 - ($output ** 2); + // Calculate tanh^2(x) + $squared = NumPower::pow($output, 2); + + // Calculate 1 - tanh^2(x) + return NumPower::subtract(1.0, $squared); } /** * Return the string representation of the activation function. * - * @internal - * - * @return string + * @return string String representation */ public function __toString() : string { diff --git a/tests/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangentTest.php b/tests/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangentTest.php new file mode 100644 index 000000000..445b03110 --- /dev/null +++ b/tests/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangentTest.php @@ -0,0 +1,119 @@ +<?php + +declare(strict_types = 1); + +namespace Rubix\ML\Tests\NeuralNet\ActivationFunctions\HyperbolicTangent; + +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; +use PHPUnit\Framework\Attributes\Test; +use PHPUnit\Framework\Attributes\TestDox; +use NumPower; +use NDArray; +use Rubix\ML\NeuralNet\ActivationFunctions\HyperbolicTangent\HyperbolicTangent; +use PHPUnit\Framework\TestCase; +use Generator; + +#[Group('ActivationFunctions')] +#[CoversClass(HyperbolicTangent::class)] +class HyperbolicTangentTest extends TestCase +{ + /** + * @var HyperbolicTangent + */ + protected HyperbolicTangent $activationFn; + + /** + * @return Generator<array> + */ + public static function computeProvider() : Generator + { + yield [ + NumPower::array([ + [9.0, 2.5, 2.0, 1.0, -0.5, 0.0, 20.0, -10.0], + ]), + [ + [0.9999999403953552, 0.9866142868995667, 0.9640275835990906, 0.7615941762924194, -0.46211716532707214, 0.0, 1.0, -1.0], + ], + ]; + + yield [ + NumPower::array([ + [-0.12, 0.31, -0.49], + [0.99, 0.08, -0.03], + [0.05, -0.52, 0.54], + ]), + [ + [-0.11942730098962784, 0.3004370927810669, -0.45421645045280457], + [0.7573622465133667, 0.07982976734638214, -0.02999100275337696], + [0.049958378076553345, -0.47769999504089355, 0.4929879903793335], + ], + ]; + } + + /** + * @return Generator<array> + */ + public static function differentiateProvider() : Generator + { + yield [ + NumPower::array([ + [0.9640275835990906, 0.7615941762924194, -0.46211716532707214, 0.0, 1.0, -1.0], + ]), + [ + [0.07065081596374512, 0.41997432708740234, 0.7864477038383484, 1.0, 0.0, 0.0], + ], + ]; + + yield [ + NumPower::array([ + [-0.11942730098962784, 0.3004370927810669, -0.45421645045280457], + [0.7573623085022249, 0.07978830223560329, -0.029991223630861304], + [0.049958395721942955, -0.4778087574005698, 0.4930591567725708], + ]), + [ + [0.985737144947052, 0.9097375273704529, 0.7936874032020569], + [0.42640233039855957, 0.9936338067054749, 0.9991005063056946], + [0.9975041747093201, 0.7716988325119019, 0.7568926811218262], + ], + ]; + } + + /** + * Set up the test case. + */ + protected function setUp() : void + { + parent::setUp(); + + $this->activationFn = new HyperbolicTangent(); + } + + #[Test] + #[TestDox('Can be cast to a string')] + public function testToString() : void + { + static::assertEquals('Hyperbolic Tangent', (string) $this->activationFn); + } + + #[Test] + #[TestDox('Correctly activates the input')] + #[DataProvider('computeProvider')] + public function testActivate(NDArray $input, array $expected) : void + { + $activations = $this->activationFn->activate($input)->toArray(); + + static::assertEqualsWithDelta($expected, $activations, 1e-16); + } + + #[Test] + #[TestDox('Correctly differentiates the output')] + #[DataProvider('differentiateProvider')] + public function testDifferentiate(NDArray $output, array $expected) : void + { + $derivatives = $this->activationFn->differentiate($output)->toArray(); + + static::assertEqualsWithDelta($expected, $derivatives, 1e-16); + } +} From 868830bb87565666f4bf17a478027b20969adab9 Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Sun, 22 Jun 2025 20:10:34 +0300 Subject: [PATCH 02/22] SAM-7 fix for function docblock --- src/Datasets/Labeled.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Datasets/Labeled.php b/src/Datasets/Labeled.php index 99bc4f690..7392bc708 100644 --- a/src/Datasets/Labeled.php +++ b/src/Datasets/Labeled.php @@ -178,7 +178,7 @@ public function __construct(array $samples = [], array $labels = [], bool $verif /** * Return the labels. * - * @return mixed[] + * @return list<float|int|string> */ public function labels() : array { From 43fb507c67dafd0e057e8095ace9bf1722e23f3b Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Sun, 22 Jun 2025 22:46:57 +0300 Subject: [PATCH 03/22] Fix for merge issues --- .github/workflows/ci.yml | 6 ------ docs/transformers/regex-filter.md | 15 --------------- 2 files changed, 21 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 092650111..295cff531 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,14 +8,8 @@ jobs: runs-on: ${{ matrix.operating-system }} strategy: matrix: -<<<<<<< HEAD operating-system: [windows-latest, ubuntu-latest, macos-latest] php-versions: ['8.4'] -======= - operating-system: [ubuntu-latest, macos-latest] - php-versions: ['8.0', '8.1', '8.2'] ->>>>>>> master - steps: - name: Checkout uses: actions/checkout@v3 diff --git a/docs/transformers/regex-filter.md b/docs/transformers/regex-filter.md index 94540a0e2..8283b22a2 100644 --- a/docs/transformers/regex-filter.md +++ b/docs/transformers/regex-filter.md @@ -28,7 +28,6 @@ $transformer = new RegexFilter([ ``` ## Predefined Regex Patterns -<<<<<<< HEAD | Class Constant | Description | |---|----------------------------------------------------------------------------------------------------------| | EMAIL | A pattern to match any email address. | @@ -41,20 +40,6 @@ $transformer = new RegexFilter([ | EXTRA_WHITESPACE | Matches consecutively repeated whitespace characters. | | MENTION | A pattern that matches Twitter-style mentions (@example). | | HASHTAG | Matches Twitter-style hashtags (#example). | -======= -| Class Constant | Description | -|---|---| -| EMAIL | A pattern to match any email address. | -| URL | An alias for the default (Gruber 1) URL matching pattern. | -| GRUBER_1 | The original Gruber URL matching pattern. | -| GRUBER_2 | The improved Gruber URL matching pattern. | -| EXTRA_CHARACTERS | Matches consecutively repeated non word or number characters such as punctuation and special characters. | -| EXTRA_WORDS | Matches consecutively repeated words. | -| EXTRA_WHITESPACE | Matches consecutively repeated whitespace characters. | -| EMOJIS | A pattern to match unicode emojis. | -| MENTION | A pattern that matches Twitter-style mentions (@example). | -| HASHTAG | Matches Twitter-style hashtags (#example). | ->>>>>>> 2.4 ## Additional Methods This transformer does not have any additional methods. From e16b4a4e891fc8786ae8bc1158e8db30cb9fbdbd Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Sun, 22 Jun 2025 23:50:09 +0300 Subject: [PATCH 04/22] SAM-8 implemented LeakyReLU --- .../Exceptions/InvalidLeakageException.php | 14 ++ .../LeakyReLU/LeakyReLU.php | 87 ++++---- .../HyperbolicTangentTest.php | 8 +- .../LeakyReLU/LeakyReLUTest.php | 186 ++++++++++++++++++ 4 files changed, 251 insertions(+), 44 deletions(-) create mode 100644 src/NeuralNet/ActivationFunctions/LeakyReLU/Exceptions/InvalidLeakageException.php create mode 100644 tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php diff --git a/src/NeuralNet/ActivationFunctions/LeakyReLU/Exceptions/InvalidLeakageException.php b/src/NeuralNet/ActivationFunctions/LeakyReLU/Exceptions/InvalidLeakageException.php new file mode 100644 index 000000000..5cc6b0fa9 --- /dev/null +++ b/src/NeuralNet/ActivationFunctions/LeakyReLU/Exceptions/InvalidLeakageException.php @@ -0,0 +1,14 @@ +<?php + +declare(strict_types=1); + +namespace Rubix\ML\NeuralNet\ActivationFunctions\LeakyReLU\Exceptions; + +use Rubix\ML\Exceptions\InvalidArgumentException; + +/** + * Invalid `alpha` parameter for ELU Activation function + */ +class InvalidLeakageException extends InvalidArgumentException +{ +} diff --git a/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php b/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php index 54b2867df..29fab906d 100644 --- a/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php +++ b/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php @@ -1,9 +1,14 @@ <?php +declare(strict_types=1); + namespace Rubix\ML\NeuralNet\ActivationFunctions\LeakyReLU; -use Tensor\Matrix; -use Rubix\ML\Exceptions\InvalidArgumentException; +use NumPower; +use NDArray; +use Rubix\ML\NeuralNet\ActivationFunctions\Base\Contracts\ActivationFunction; +use Rubix\ML\NeuralNet\ActivationFunctions\Base\Contracts\IBufferDerivative; +use Rubix\ML\NeuralNet\ActivationFunctions\LeakyReLU\Exceptions\InvalidLeakageException; /** * Leaky ReLU @@ -19,8 +24,9 @@ * @category Machine Learning * @package Rubix/ML * @author Andrew DalPino + * @author Samuel Akopyan <leumas.a@gmail.com> */ -class LeakyReLU implements ActivationFunction +class LeakyReLU implements ActivationFunction, IBufferDerivative { /** * The amount of leakage as a ratio of the input value to allow to pass through when inactivated. @@ -30,73 +36,74 @@ class LeakyReLU implements ActivationFunction protected float $leakage; /** - * @param float $leakage - * @throws InvalidArgumentException + * Class constructor. + * + * @param float $leakage The amount of leakage as a ratio of the input value to allow to pass through when inactivated. + * @throws InvalidLeakageException */ public function __construct(float $leakage = 0.1) { - if ($leakage <= 0.0 or $leakage >= 1.0) { - throw new InvalidArgumentException('Leakage must be between' - . " 0 and 1, $leakage given."); + if ($leakage <= 0.0 || $leakage >= 1.0) { + throw new InvalidLeakageException( + message: "Leakage must be between 0 and 1, $leakage given." + ); } $this->leakage = $leakage; } /** - * Compute the activation. + * Apply the Leaky ReLU activation function to the input. * - * @internal + * f(x) = x if x > 0 + * f(x) = leakage * x if x ≤ 0 * - * @param Matrix $input - * @return Matrix + * @param NDArray $input The input values + * @return NDArray The activated values */ public function activate(NDArray $input) : NDArray { + // Calculate positive part: x for x > 0 $positive = NumPower::maximum($input, 0); - $negative = NumPower::minimum($input, 0); - $negativeLeakage = $negative * $this->leakage; + // Calculate negative part: leakage * x for x <= 0 + $negative = NumPower::multiply( + NumPower::minimum($input, 0), + $this->leakage + ); - return $positive + $negativeLeakage; + // Combine both parts + return NumPower::add($positive, $negative); } /** - * Calculate the derivative of the activation. + * Calculate the derivative of the activation function. * - * @internal + * f'(x) = 1 if x > 0 + * f'(x) = leakage if x ≤ 0 * - * @param Matrix $input - * @param Matrix $output - * @return Matrix + * @param NDArray $x Input matrix + * @return NDArray Derivative matrix */ - public function differentiate(Matrix $input, Matrix $output) : Matrix + public function differentiate(NDArray $x) : NDArray { - $positive = NumPower::greater($input, 0); - $negative = NumPower::lessEqual($input, 0) * $this->leakage; + // For x > 0: 1 + $positive = NumPower::greater($x, 0); - return $positive + $negative; - } + // For x <= 0: leakage + $negative = NumPower::multiply( + NumPower::lessEqual($x, 0), + $this->leakage + ); - /** - * @internal - * - * @param float $input - * @return float - */ - public function _differentiate(float $input) : float - { - return $input > 0.0 - ? 1.0 - : $this->leakage; + // Combine both parts + return NumPower::add($positive, $negative); } /** - * Return the string representation of the object. - * - * @internal + * Return the string representation of the activation function. * - * @return string + * @return string String representation */ public function __toString() : string { diff --git a/tests/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangentTest.php b/tests/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangentTest.php index 445b03110..79dc6b11c 100644 --- a/tests/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangentTest.php +++ b/tests/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangentTest.php @@ -4,16 +4,16 @@ namespace Rubix\ML\Tests\NeuralNet\ActivationFunctions\HyperbolicTangent; +use Generator; +use NumPower; +use NDArray; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\Attributes\TestDox; -use NumPower; -use NDArray; -use Rubix\ML\NeuralNet\ActivationFunctions\HyperbolicTangent\HyperbolicTangent; use PHPUnit\Framework\TestCase; -use Generator; +use Rubix\ML\NeuralNet\ActivationFunctions\HyperbolicTangent\HyperbolicTangent; #[Group('ActivationFunctions')] #[CoversClass(HyperbolicTangent::class)] diff --git a/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php b/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php new file mode 100644 index 000000000..38ab6952d --- /dev/null +++ b/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php @@ -0,0 +1,186 @@ +<?php + +declare(strict_types = 1); + +namespace Rubix\ML\Tests\NeuralNet\ActivationFunctions\LeakyReLU; + +use Generator; +use NDArray; +use NumPower; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; +use PHPUnit\Framework\Attributes\Test; +use PHPUnit\Framework\Attributes\TestDox; +use PHPUnit\Framework\TestCase; +use Rubix\ML\NeuralNet\ActivationFunctions\LeakyReLU\LeakyReLU; +use Rubix\ML\NeuralNet\ActivationFunctions\LeakyReLU\Exceptions\InvalidLeakageException; + +#[Group('ActivationFunctions')] +#[CoversClass(LeakyReLU::class)] +class LeakyReLUTest extends TestCase +{ + /** + * @var LeakyReLU + */ + protected LeakyReLU $activationFn; + + /** + * @return Generator<array> + */ + public static function computeProvider() : Generator + { + yield [ + NumPower::array([ + [2.0, 1.0, -0.5, 0.0, 20.0, -10.0], + ]), + [ + [2.0, 1.0, -0.05000000074505806, 0.0, 20.0, -1.0], + ], + ]; + + yield [ + NumPower::array([ + [-0.12, 0.31, -0.49], + [0.99, 0.08, -0.03], + [0.05, -0.52, 0.54], + ]), + [ + [-0.012000000104308128, 0.3100000023841858, -0.049000002443790436], + [0.9900000095367432, 0.07999999821186066, -0.003000000026077032], + [0.05000000074505806, -0.05199999734759331, 0.5400000214576721], + ], + ]; + } + + /** + * @return Generator<array> + */ + public static function differentiateProvider() : Generator + { + yield [ + NumPower::array([ + [2.0, 1.0, -0.5, 0.0, 20.0, -10.0], + ]), + [ + [1.0, 1.0, 0.10000000149011612, 0.10000000149011612, 1.0, 0.10000000149011612], + ], + ]; + + yield [ + NumPower::array([ + [-0.12, 0.31, -0.49], + [0.99, 0.08, -0.03], + [0.05, -0.52, 0.54], + ]), + [ + [0.10000000149011612, 1.0, 0.10000000149011612], + [1.0, 1.0, 0.10000000149011612], + [1.0, 0.10000000149011612, 1.0], + ], + ]; + } + + /** + * @return Generator<array> + */ + public static function boundaryProvider() : Generator + { + // Test very large positive values (should be equal to input) + yield [ + NumPower::array([ + [100.0, 500.0, 1000.0], + ]), + [ + [100.0, 500.0, 1000.0], + ], + ]; + + // Test very large negative values (should be input * leakage) + yield [ + NumPower::array([ + [-100.0, -500.0, -1000.0], + ]), + [ + [-10.0, -50.0, -100.0], + ], + ]; + + // Test values close to zero + yield [ + NumPower::array([ + [0.001, -0.001, 0.0001, -0.0001], + ]), + [ + + [0.0010000000474974513, -0.00010000000474974513, 0.00009999999747378752, -0.000009999999747378752], + ], + ]; + } + + /** + * Set up the test case. + */ + protected function setUp() : void + { + parent::setUp(); + + $this->activationFn = new LeakyReLU(0.1); + } + + #[Test] + #[TestDox('Can be constructed with valid leakage parameter')] + public function testConstructorWithValidLeakage() : void + { + $activationFn = new LeakyReLU(0.2); + + static::assertInstanceOf(LeakyReLU::class, $activationFn); + static::assertEquals('Leaky ReLU (leakage: 0.2)', (string) $activationFn); + } + + #[Test] + #[TestDox('Throws exception when constructed with invalid leakage parameter')] + public function testConstructorWithInvalidLeakage() : void + { + $this->expectException(InvalidLeakageException::class); + + new LeakyReLU(1.5); + } + + #[Test] + #[TestDox('Can be cast to a string')] + public function testToString() : void + { + static::assertEquals('Leaky ReLU (leakage: 0.1)', (string) $this->activationFn); + } + + #[Test] + #[TestDox('Correctly activates the input')] + #[DataProvider('computeProvider')] + public function testActivate(NDArray $input, array $expected) : void + { + $activations = $this->activationFn->activate($input)->toArray(); + + static::assertEqualsWithDelta($expected, $activations, 1e-16); + } + + #[Test] + #[TestDox('Correctly differentiates the input')] + #[DataProvider('differentiateProvider')] + public function testDifferentiate(NDArray $input, array $expected) : void + { + $derivatives = $this->activationFn->differentiate($input)->toArray(); + + static::assertEqualsWithDelta($expected, $derivatives, 1e-16); + } + + #[Test] + #[TestDox('Correctly handles boundary values during activation')] + #[DataProvider('boundaryProvider')] + public function testBoundaryActivate(NDArray $input, array $expected) : void + { + $activations = $this->activationFn->activate($input)->toArray(); + + static::assertEqualsWithDelta($expected, $activations, 1e-16); + } +} From c3f6530c1719a039bade251d933eeb9ee3bcb1cf Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Mon, 23 Jun 2025 00:04:29 +0300 Subject: [PATCH 05/22] SAM-8 style fixes for import classes --- tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php | 8 ++++---- tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php | 8 ++++---- .../ActivationFunctions/HardSiLU/HardSiLUTest.php | 8 ++++---- .../ActivationFunctions/HardSigmoid/HardSigmoidTest.php | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php b/tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php index 657bab1be..14e2dff9a 100644 --- a/tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php +++ b/tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php @@ -4,16 +4,16 @@ namespace Rubix\ML\Tests\NeuralNet\ActivationFunctions\ELU; +use Generator; +use NDArray; +use NumPower; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\Attributes\TestDox; -use NumPower; -use NDArray; -use Rubix\ML\NeuralNet\ActivationFunctions\ELU\ELU; use PHPUnit\Framework\TestCase; -use Generator; +use Rubix\ML\NeuralNet\ActivationFunctions\ELU\ELU; use Rubix\ML\NeuralNet\ActivationFunctions\ELU\Exceptions\InvalidAlphaException; #[Group('ActivationFunctions')] diff --git a/tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php b/tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php index 6d3177015..b9cc02293 100644 --- a/tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php +++ b/tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php @@ -4,16 +4,16 @@ namespace Rubix\ML\Tests\NeuralNet\ActivationFunctions\GELU; +use Generator; +use NDArray; +use NumPower; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\Attributes\TestDox; -use NumPower; -use NDArray; -use Rubix\ML\NeuralNet\ActivationFunctions\GELU\GELU; use PHPUnit\Framework\TestCase; -use Generator; +use Rubix\ML\NeuralNet\ActivationFunctions\GELU\GELU; #[Group('ActivationFunctions')] #[CoversClass(GELU::class)] diff --git a/tests/NeuralNet/ActivationFunctions/HardSiLU/HardSiLUTest.php b/tests/NeuralNet/ActivationFunctions/HardSiLU/HardSiLUTest.php index 22ef0bdea..812f1bf1d 100644 --- a/tests/NeuralNet/ActivationFunctions/HardSiLU/HardSiLUTest.php +++ b/tests/NeuralNet/ActivationFunctions/HardSiLU/HardSiLUTest.php @@ -4,16 +4,16 @@ namespace Rubix\ML\Tests\NeuralNet\ActivationFunctions\HardSiLU; +use Generator; +use NDArray; +use NumPower; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\Attributes\TestDox; -use NumPower; -use NDArray; -use Rubix\ML\NeuralNet\ActivationFunctions\HardSiLU\HardSiLU; use PHPUnit\Framework\TestCase; -use Generator; +use Rubix\ML\NeuralNet\ActivationFunctions\HardSiLU\HardSiLU; #[Group('ActivationFunctions')] #[CoversClass(HardSiLU::class)] diff --git a/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php b/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php index 5320e796b..12b6cdcd3 100644 --- a/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php +++ b/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php @@ -4,16 +4,16 @@ namespace Rubix\ML\Tests\NeuralNet\ActivationFunctions\HardSigmoid; +use Generator; +use NDArray; +use NumPower; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\Attributes\TestDox; -use NumPower; -use NDArray; -use Rubix\ML\NeuralNet\ActivationFunctions\HardSigmoid\HardSigmoid; use PHPUnit\Framework\TestCase; -use Generator; +use Rubix\ML\NeuralNet\ActivationFunctions\HardSigmoid\HardSigmoid; #[Group('ActivationFunctions')] #[CoversClass(HardSigmoid::class)] From 287ec5f31bf2714a586257ac4e422a4a74e1c1f5 Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Mon, 23 Jun 2025 00:04:53 +0300 Subject: [PATCH 06/22] SAM-8 changed LeakyReLUTest initial values --- .../LeakyReLU/LeakyReLUTest.php | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php b/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php index 38ab6952d..2e00f5f5a 100644 --- a/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php +++ b/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php @@ -35,7 +35,7 @@ public static function computeProvider() : Generator [2.0, 1.0, -0.5, 0.0, 20.0, -10.0], ]), [ - [2.0, 1.0, -0.05000000074505806, 0.0, 20.0, -1.0], + [2.0, 1.0, -0.004999999888241291, 0.0, 20.0, -0.09999999403953552], ], ]; @@ -46,9 +46,9 @@ public static function computeProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [-0.012000000104308128, 0.3100000023841858, -0.049000002443790436], - [0.9900000095367432, 0.07999999821186066, -0.003000000026077032], - [0.05000000074505806, -0.05199999734759331, 0.5400000214576721], + [-0.0011999999405816197, 0.3100000023841858, -0.004900000058114529], + [0.9900000095367432, 0.07999999821186066, -0.00029999998514540493], + [0.05000000074505806, -0.005199999548494816, 0.5400000214576721], ], ]; } @@ -63,7 +63,7 @@ public static function differentiateProvider() : Generator [2.0, 1.0, -0.5, 0.0, 20.0, -10.0], ]), [ - [1.0, 1.0, 0.10000000149011612, 0.10000000149011612, 1.0, 0.10000000149011612], + [1.0, 1.0, 0.009999999776482582, 0.009999999776482582, 1.0, 0.009999999776482582], ], ]; @@ -74,9 +74,9 @@ public static function differentiateProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [0.10000000149011612, 1.0, 0.10000000149011612], - [1.0, 1.0, 0.10000000149011612], - [1.0, 0.10000000149011612, 1.0], + [0.009999999776482582, 1.0, 0.009999999776482582], + [1.0, 1.0, 0.009999999776482582], + [1.0, 0.009999999776482582, 1.0], ], ]; } @@ -102,7 +102,7 @@ public static function boundaryProvider() : Generator [-100.0, -500.0, -1000.0], ]), [ - [-10.0, -50.0, -100.0], + [-1.0, -5.0, -10.0], ], ]; @@ -113,7 +113,7 @@ public static function boundaryProvider() : Generator ]), [ - [0.0010000000474974513, -0.00010000000474974513, 0.00009999999747378752, -0.000009999999747378752], + [0.0010000000474974513, -0.000010000000656873453, 0.00009999999747378752, -0.0000009999999974752427], ], ]; } @@ -125,7 +125,7 @@ protected function setUp() : void { parent::setUp(); - $this->activationFn = new LeakyReLU(0.1); + $this->activationFn = new LeakyReLU(0.01); } #[Test] @@ -151,7 +151,7 @@ public function testConstructorWithInvalidLeakage() : void #[TestDox('Can be cast to a string')] public function testToString() : void { - static::assertEquals('Leaky ReLU (leakage: 0.1)', (string) $this->activationFn); + static::assertEquals('Leaky ReLU (leakage: 0.01)', (string) $this->activationFn); } #[Test] From eef5c57735a06d963901f5cb7b8b15a1912c7de6 Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Mon, 23 Jun 2025 00:20:55 +0300 Subject: [PATCH 07/22] SAM-8 typo fixes --- .../LeakyReLU/Exceptions/InvalidLeakageException.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NeuralNet/ActivationFunctions/LeakyReLU/Exceptions/InvalidLeakageException.php b/src/NeuralNet/ActivationFunctions/LeakyReLU/Exceptions/InvalidLeakageException.php index 5cc6b0fa9..c8f081b85 100644 --- a/src/NeuralNet/ActivationFunctions/LeakyReLU/Exceptions/InvalidLeakageException.php +++ b/src/NeuralNet/ActivationFunctions/LeakyReLU/Exceptions/InvalidLeakageException.php @@ -7,7 +7,7 @@ use Rubix\ML\Exceptions\InvalidArgumentException; /** - * Invalid `alpha` parameter for ELU Activation function + * Invalid `Leakage` parameter for LeakyReLU Activation function */ class InvalidLeakageException extends InvalidArgumentException { From cd980eaebb16a769b1d6b14fa41de86681a0285d Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Mon, 23 Jun 2025 00:36:26 +0300 Subject: [PATCH 08/22] SAM-8 typo fixes --- .../ActivationFunctions/LeakyReLU/LeakyReLU.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php b/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php index 29fab906d..c68237a9a 100644 --- a/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php +++ b/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php @@ -64,16 +64,16 @@ public function __construct(float $leakage = 0.1) public function activate(NDArray $input) : NDArray { // Calculate positive part: x for x > 0 - $positive = NumPower::maximum($input, 0); + $positiveActivation = NumPower::maximum($input, 0); // Calculate negative part: leakage * x for x <= 0 - $negative = NumPower::multiply( + $negativeActivation = NumPower::multiply( NumPower::minimum($input, 0), $this->leakage ); // Combine both parts - return NumPower::add($positive, $negative); + return NumPower::add($positiveActivation, $negativeActivation); } /** @@ -88,16 +88,16 @@ public function activate(NDArray $input) : NDArray public function differentiate(NDArray $x) : NDArray { // For x > 0: 1 - $positive = NumPower::greater($x, 0); + $positivePart = NumPower::greater($x, 0); // For x <= 0: leakage - $negative = NumPower::multiply( + $negativePart = NumPower::multiply( NumPower::lessEqual($x, 0), $this->leakage ); // Combine both parts - return NumPower::add($positive, $negative); + return NumPower::add($positivePart, $negativePart); } /** From 0025293a89263b7011935c08e1ad7b91f69dea31 Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Mon, 23 Jun 2025 19:20:57 +0300 Subject: [PATCH 09/22] SAM-8 turned back function signature in docblock --- src/Datasets/Labeled.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Datasets/Labeled.php b/src/Datasets/Labeled.php index 7392bc708..99bc4f690 100644 --- a/src/Datasets/Labeled.php +++ b/src/Datasets/Labeled.php @@ -178,7 +178,7 @@ public function __construct(array $samples = [], array $labels = [], bool $verif /** * Return the labels. * - * @return list<float|int|string> + * @return mixed[] */ public function labels() : array { From 45361aa78bce5adcc9ef57c1cac74518dc3338bc Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Mon, 23 Jun 2025 19:29:02 +0300 Subject: [PATCH 10/22] SAM-8 fixed parameter name like in interface --- .../HyperbolicTangent/HyperbolicTangent.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php b/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php index bb9a8c8a5..305c621b0 100644 --- a/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php +++ b/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php @@ -40,13 +40,13 @@ public function activate(NDArray $input) : NDArray * * f'(x) = 1 - tanh^2(x) * - * @param NDArray $output Output matrix + * @param NDArray $x Output matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $output) : NDArray + public function differentiate(NDArray $x) : NDArray { // Calculate tanh^2(x) - $squared = NumPower::pow($output, 2); + $squared = NumPower::pow($x, 2); // Calculate 1 - tanh^2(x) return NumPower::subtract(1.0, $squared); From eb864c297906761750d35a80b41097600920f67f Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Mon, 23 Jun 2025 19:48:08 +0300 Subject: [PATCH 11/22] Renamed parameter name like in interface --- .../Base/Contracts/IBufferDerivative.php | 5 +++-- src/NeuralNet/ActivationFunctions/ELU/ELU.php | 10 +++++----- src/NeuralNet/ActivationFunctions/GELU/GELU.php | 12 ++++++------ .../ActivationFunctions/HardSiLU/HardSiLU.php | 8 ++++---- .../ActivationFunctions/HardSigmoid/HardSigmoid.php | 8 ++++---- .../HyperbolicTangent/HyperbolicTangent.php | 6 +++--- 6 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/NeuralNet/ActivationFunctions/Base/Contracts/IBufferDerivative.php b/src/NeuralNet/ActivationFunctions/Base/Contracts/IBufferDerivative.php index 239cfc0f6..9e9b071f5 100644 --- a/src/NeuralNet/ActivationFunctions/Base/Contracts/IBufferDerivative.php +++ b/src/NeuralNet/ActivationFunctions/Base/Contracts/IBufferDerivative.php @@ -13,14 +13,15 @@ * @package Rubix/ML * @author Andrew DalPino * @author Aleksei Nechaev <omfg.rus@gmail.com> + * @author Samuel Akopyan <leumas.a@gmail.com> */ interface IBufferDerivative extends Derivative { /** * Calculate the derivative of the single parameter. * - * @param NDArray $x Input matrix + * @param NDArray $output Output matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $x) : NDArray; + public function differentiate(NDArray $output) : NDArray; } diff --git a/src/NeuralNet/ActivationFunctions/ELU/ELU.php b/src/NeuralNet/ActivationFunctions/ELU/ELU.php index ff165dbc7..5f52d2293 100644 --- a/src/NeuralNet/ActivationFunctions/ELU/ELU.php +++ b/src/NeuralNet/ActivationFunctions/ELU/ELU.php @@ -76,18 +76,18 @@ public function activate(NDArray $input) : NDArray * f'(x) = 1 if x > 0 * f'(x) = α * e^x if x ≤ 0 * - * @param NDArray $x Output matrix + * @param NDArray $output Output matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $x) : NDArray + public function differentiate(NDArray $output) : NDArray { // For x > 0: 1 - $positivePart = NumPower::greater($x, 0); + $positivePart = NumPower::greater($output, 0); // For x <= 0: α * e^x - $negativeMask = NumPower::lessEqual($x, 0); + $negativeMask = NumPower::lessEqual($output, 0); $negativePart = NumPower::multiply( - NumPower::multiply($negativeMask, NumPower::exp($x)), + NumPower::multiply($negativeMask, NumPower::exp($output)), $this->alpha ); diff --git a/src/NeuralNet/ActivationFunctions/GELU/GELU.php b/src/NeuralNet/ActivationFunctions/GELU/GELU.php index 1667b1131..195868b29 100644 --- a/src/NeuralNet/ActivationFunctions/GELU/GELU.php +++ b/src/NeuralNet/ActivationFunctions/GELU/GELU.php @@ -87,19 +87,19 @@ public function activate(NDArray $input) : NDArray * - β = 0.044715 * - sech^2(z) = (1/cosh(z))^2 * - * @param NDArray $x Output matrix + * @param NDArray $output Output matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $x) : NDArray + public function differentiate(NDArray $output) : NDArray { // Calculate x^3 - $cubed = NumPower::pow($x, 3); + $cubed = NumPower::pow($output, 3); // Calculate inner term: ALPHA * (x + BETA * x^3) $innerTerm = NumPower::multiply( self::ALPHA, NumPower::add( - $x, + $output, NumPower::multiply(self::BETA, $cubed) ) ); @@ -122,7 +122,7 @@ public function differentiate(NDArray $x) : NDArray NumPower::multiply( NumPower::multiply( 0.5 * self::ALPHA, - $x + $output ), $sech2 ), @@ -130,7 +130,7 @@ public function differentiate(NDArray $x) : NDArray 1.0, NumPower::multiply( 3.0 * self::BETA, - NumPower::pow($x, 2) + NumPower::pow($output, 2) ) ) ); diff --git a/src/NeuralNet/ActivationFunctions/HardSiLU/HardSiLU.php b/src/NeuralNet/ActivationFunctions/HardSiLU/HardSiLU.php index 8fbc39e83..0f9bd86fa 100644 --- a/src/NeuralNet/ActivationFunctions/HardSiLU/HardSiLU.php +++ b/src/NeuralNet/ActivationFunctions/HardSiLU/HardSiLU.php @@ -63,16 +63,16 @@ public function activate(NDArray $input) : NDArray * * f'(x) = HardSigmoid(x) + x * HardSigmoid'(x) * - * @param NDArray $x Input matrix + * @param NDArray $output Output matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $x) : NDArray + public function differentiate(NDArray $output) : NDArray { // Calculate HardSigmoid(x) - $hardSigmoid = $this->hardSigmoid->activate($x); + $hardSigmoid = $this->hardSigmoid->activate($output); // Calculate HardSigmoid'(x) - $hardSigmoidDerivative = $this->hardSigmoid->differentiate($x); + $hardSigmoidDerivative = $this->hardSigmoid->differentiate($output); // Calculate x * HardSigmoid'(x) $xTimesDerivative = NumPower::multiply($x, $hardSigmoidDerivative); diff --git a/src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php b/src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php index 1c82ade35..801e92f9a 100644 --- a/src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php +++ b/src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php @@ -79,14 +79,14 @@ public function activate(NDArray $input) : NDArray * f'(x) = 0.2 if -2.5 < x < 2.5 * f'(x) = 0 otherwise * - * @param NDArray $x Input matrix + * @param NDArray $output Output matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $x) : NDArray + public function differentiate(NDArray $output) : NDArray { // For values in the linear region (-2.5 < x < 2.5): SLOPE - $inLinearRegion = NumPower::greater($x, self::LOWER_BOUND); - $inLinearRegion = NumPower::multiply($inLinearRegion, NumPower::less($x, self::UPPER_BOUND)); + $inLinearRegion = NumPower::greater($output, self::LOWER_BOUND); + $inLinearRegion = NumPower::multiply($inLinearRegion, NumPower::less($output, self::UPPER_BOUND)); $linearPart = NumPower::multiply($inLinearRegion, self::SLOPE); // For values outside the linear region: 0 diff --git a/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php b/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php index 305c621b0..bb9a8c8a5 100644 --- a/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php +++ b/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php @@ -40,13 +40,13 @@ public function activate(NDArray $input) : NDArray * * f'(x) = 1 - tanh^2(x) * - * @param NDArray $x Output matrix + * @param NDArray $output Output matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $x) : NDArray + public function differentiate(NDArray $output) : NDArray { // Calculate tanh^2(x) - $squared = NumPower::pow($x, 2); + $squared = NumPower::pow($output, 2); // Calculate 1 - tanh^2(x) return NumPower::subtract(1.0, $squared); From 5203c0a61a3d45d6927577bae9a54d4369e11f9f Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Mon, 23 Jun 2025 19:56:23 +0300 Subject: [PATCH 12/22] SAM-7 differentiate parameter renamed --- .../LeakyReLU/LeakyReLU.php | 8 ++++---- .../ActivationFunctions/ELU/ELUTest.php | 6 +++--- .../ActivationFunctions/GELU/GELUTest.php | 6 +++--- .../HardSiLU/HardSiLUTest.php | 6 +++--- .../HardSigmoid/HardSigmoidTest.php | 6 +++--- .../LeakyReLU/LeakyReLUTest.php | 20 +++++++++---------- 6 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php b/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php index c68237a9a..92d6e3792 100644 --- a/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php +++ b/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php @@ -82,17 +82,17 @@ public function activate(NDArray $input) : NDArray * f'(x) = 1 if x > 0 * f'(x) = leakage if x ≤ 0 * - * @param NDArray $x Input matrix + * @param NDArray $output Output matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $x) : NDArray + public function differentiate(NDArray $output) : NDArray { // For x > 0: 1 - $positivePart = NumPower::greater($x, 0); + $positivePart = NumPower::greater($output, 0); // For x <= 0: leakage $negativePart = NumPower::multiply( - NumPower::lessEqual($x, 0), + NumPower::lessEqual($output, 0), $this->leakage ); diff --git a/tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php b/tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php index 14e2dff9a..a872fdcbd 100644 --- a/tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php +++ b/tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php @@ -128,11 +128,11 @@ public function testActivate(NDArray $input, array $expected) : void } #[Test] - #[TestDox('Correctly differentiates the input')] + #[TestDox('Correctly differentiates the output')] #[DataProvider('differentiateProvider')] - public function testDifferentiate(NDArray $input, array $expected) : void + public function testDifferentiate(NDArray $output, array $expected) : void { - $derivatives = $this->activationFn->differentiate($input)->toArray(); + $derivatives = $this->activationFn->differentiate($output)->toArray(); static::assertEqualsWithDelta($expected, $derivatives, 1e-16); } diff --git a/tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php b/tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php index b9cc02293..0a7295134 100644 --- a/tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php +++ b/tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php @@ -108,11 +108,11 @@ public function testActivate(NDArray $input, array $expected) : void } #[Test] - #[TestDox('Correctly differentiates the input')] + #[TestDox('Correctly differentiates the output')] #[DataProvider('differentiateProvider')] - public function testDifferentiate(NDArray $input, array $expected) : void + public function testDifferentiate(NDArray $output, array $expected) : void { - $derivatives = $this->activationFn->differentiate($input)->toArray(); + $derivatives = $this->activationFn->differentiate($output)->toArray(); static::assertEqualsWithDelta($expected, $derivatives, 1e-16); } diff --git a/tests/NeuralNet/ActivationFunctions/HardSiLU/HardSiLUTest.php b/tests/NeuralNet/ActivationFunctions/HardSiLU/HardSiLUTest.php index 812f1bf1d..749a1f322 100644 --- a/tests/NeuralNet/ActivationFunctions/HardSiLU/HardSiLUTest.php +++ b/tests/NeuralNet/ActivationFunctions/HardSiLU/HardSiLUTest.php @@ -175,11 +175,11 @@ public function testActivate(NDArray $input, array $expected) : void } #[Test] - #[TestDox('Correctly differentiates the input')] + #[TestDox('Correctly differentiates the output')] #[DataProvider('differentiateProvider')] - public function testDifferentiate(NDArray $input, array $expected) : void + public function testDifferentiate(NDArray $output, array $expected) : void { - $derivatives = $this->activationFn->differentiate($input)->toArray(); + $derivatives = $this->activationFn->differentiate($output)->toArray(); static::assertEqualsWithDelta($expected, $derivatives, 1e-16); diff --git a/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php b/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php index 12b6cdcd3..bd46e342d 100644 --- a/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php +++ b/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php @@ -108,11 +108,11 @@ public function testActivate(NDArray $input, array $expected) : void } #[Test] - #[TestDox('Correctly differentiates the input')] + #[TestDox('Correctly differentiates the output')] #[DataProvider('differentiateProvider')] - public function testDifferentiate(NDArray $input, array $expected) : void + public function testDifferentiate(NDArray $output, array $expected) : void { - $derivatives = $this->activationFn->differentiate($input)->toArray(); + $derivatives = $this->activationFn->differentiate($output)->toArray(); static::assertEqualsWithDelta($expected, $derivatives, 1e-16); } diff --git a/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php b/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php index 2e00f5f5a..982e94de3 100644 --- a/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php +++ b/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php @@ -164,16 +164,6 @@ public function testActivate(NDArray $input, array $expected) : void static::assertEqualsWithDelta($expected, $activations, 1e-16); } - #[Test] - #[TestDox('Correctly differentiates the input')] - #[DataProvider('differentiateProvider')] - public function testDifferentiate(NDArray $input, array $expected) : void - { - $derivatives = $this->activationFn->differentiate($input)->toArray(); - - static::assertEqualsWithDelta($expected, $derivatives, 1e-16); - } - #[Test] #[TestDox('Correctly handles boundary values during activation')] #[DataProvider('boundaryProvider')] @@ -183,4 +173,14 @@ public function testBoundaryActivate(NDArray $input, array $expected) : void static::assertEqualsWithDelta($expected, $activations, 1e-16); } + + #[Test] + #[TestDox('Correctly differentiates the output')] + #[DataProvider('differentiateProvider')] + public function testDifferentiate(NDArray $output, array $expected) : void + { + $derivatives = $this->activationFn->differentiate($output)->toArray(); + + static::assertEqualsWithDelta($expected, $derivatives, 1e-16); + } } From ed71ea5663b7a26df9f9f3dc7acad2f955ad121f Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Tue, 24 Jun 2025 06:53:39 +0300 Subject: [PATCH 13/22] Refactoring Derivative sub-interfaces --- .../Base/Contracts/IBufferDerivative.php | 4 ++-- .../Base/Contracts/IOBufferDerivative.php | 19 +++++++++++++++++++ .../Base/Contracts/OBufferDerivative.php | 18 ++++++++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/NeuralNet/ActivationFunctions/Base/Contracts/IBufferDerivative.php b/src/NeuralNet/ActivationFunctions/Base/Contracts/IBufferDerivative.php index 9e9b071f5..b29011bc8 100644 --- a/src/NeuralNet/ActivationFunctions/Base/Contracts/IBufferDerivative.php +++ b/src/NeuralNet/ActivationFunctions/Base/Contracts/IBufferDerivative.php @@ -20,8 +20,8 @@ interface IBufferDerivative extends Derivative /** * Calculate the derivative of the single parameter. * - * @param NDArray $output Output matrix + * @param NDArray $input Input matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $output) : NDArray; + public function differentiate(NDArray $input) : NDArray; } diff --git a/src/NeuralNet/ActivationFunctions/Base/Contracts/IOBufferDerivative.php b/src/NeuralNet/ActivationFunctions/Base/Contracts/IOBufferDerivative.php index c77ff3e04..4263fcea9 100644 --- a/src/NeuralNet/ActivationFunctions/Base/Contracts/IOBufferDerivative.php +++ b/src/NeuralNet/ActivationFunctions/Base/Contracts/IOBufferDerivative.php @@ -2,6 +2,25 @@ namespace Rubix\ML\NeuralNet\ActivationFunctions\Base\Contracts; +use NDArray; + +/** + * Derivative based on input / output buffer + * + * @category Machine Learning + * @package Rubix/ML + * @author Andrew DalPino + * @author Aleksei Nechaev <omfg.rus@gmail.com> + * @author Samuel Akopyan <leumas.a@gmail.com> + */ interface IOBufferDerivative { + /** + * Calculate the derivative of the activation. + * + * @param NDArray $input Input matrix + * @param NDArray $output Output matrix + * @return NDArray Derivative matrix + */ + public function differentiate(NDArray $input, NDArray $output) : NDArray; } diff --git a/src/NeuralNet/ActivationFunctions/Base/Contracts/OBufferDerivative.php b/src/NeuralNet/ActivationFunctions/Base/Contracts/OBufferDerivative.php index 0ae53eeb8..760dc4593 100644 --- a/src/NeuralNet/ActivationFunctions/Base/Contracts/OBufferDerivative.php +++ b/src/NeuralNet/ActivationFunctions/Base/Contracts/OBufferDerivative.php @@ -2,6 +2,24 @@ namespace Rubix\ML\NeuralNet\ActivationFunctions\Base\Contracts; +use NDArray; + +/** + * Derivative based on output buffer + * + * @category Machine Learning + * @package Rubix/ML + * @author Andrew DalPino + * @author Aleksei Nechaev <omfg.rus@gmail.com> + * @author Samuel Akopyan <leumas.a@gmail.com> + */ interface OBufferDerivative { + /** + * Calculate the derivative of the activation. + * + * @param NDArray $output Output matrix + * @return NDArray Derivative matrix + */ + public function differentiate(NDArray $output) : NDArray; } From b0ce0ff049f335ee26933b16cd0b3a6783825380 Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Tue, 24 Jun 2025 19:08:56 +0300 Subject: [PATCH 14/22] Refactoring ELU with IOBufferDerivative --- src/NeuralNet/ActivationFunctions/ELU/ELU.php | 29 ++++++++++--------- .../ActivationFunctions/ELU/ELUTest.php | 27 ++++++++--------- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/NeuralNet/ActivationFunctions/ELU/ELU.php b/src/NeuralNet/ActivationFunctions/ELU/ELU.php index 5f52d2293..654f8cb06 100644 --- a/src/NeuralNet/ActivationFunctions/ELU/ELU.php +++ b/src/NeuralNet/ActivationFunctions/ELU/ELU.php @@ -7,7 +7,7 @@ use NumPower; use NDArray; use Rubix\ML\NeuralNet\ActivationFunctions\Base\Contracts\ActivationFunction; -use Rubix\ML\NeuralNet\ActivationFunctions\Base\Contracts\IBufferDerivative; +use Rubix\ML\NeuralNet\ActivationFunctions\Base\Contracts\IOBufferDerivative; use Rubix\ML\NeuralNet\ActivationFunctions\ELU\Exceptions\InvalidAlphaException; /** @@ -26,7 +26,7 @@ * @author Aleksei Nechaev <omfg.rus@gmail.com> * @author Samuel Akopyan <leumas.a@gmail.com> */ -class ELU implements ActivationFunction, IBufferDerivative +class ELU implements ActivationFunction, IOBufferDerivative { /** * Class constructor. @@ -71,28 +71,29 @@ public function activate(NDArray $input) : NDArray } /** - * Calculate the derivative of the activation function. + * Calculate the derivative of the ELU activation function using input and output. * - * f'(x) = 1 if x > 0 - * f'(x) = α * e^x if x ≤ 0 + * f'(x) = 1 if x > 0 + * f'(x) = f(x) + α if x ≤ 0, where f(x) is the ELU output * - * @param NDArray $output Output matrix - * @return NDArray Derivative matrix + * @param NDArray $input Input matrix (used to determine x > 0 mask) + * @param NDArray $output Output from the ELU activation function + * @return NDArray Derivative matrix */ - public function differentiate(NDArray $output) : NDArray + public function differentiate(NDArray $input, NDArray $output): NDArray { // For x > 0: 1 - $positivePart = NumPower::greater($output, 0); + $positiveMask = NumPower::greater($input, 0); - // For x <= 0: α * e^x - $negativeMask = NumPower::lessEqual($output, 0); + // For x <= 0: output + α + $negativeMask = NumPower::lessEqual($input, 0); $negativePart = NumPower::multiply( - NumPower::multiply($negativeMask, NumPower::exp($output)), - $this->alpha + NumPower::add($output, $this->alpha), + $negativeMask ); // Combine both parts - return NumPower::add($positivePart, $negativePart); + return NumPower::add($positiveMask, $negativePart); } /** diff --git a/tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php b/tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php index a872fdcbd..a375347d2 100644 --- a/tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php +++ b/tests/NeuralNet/ActivationFunctions/ELU/ELUTest.php @@ -35,7 +35,7 @@ public static function computeProvider() : Generator [1.0, -0.5, 0.0, 20.0, -10.0], ]), [ - [1.0, -0.39346933364868164, 0.0, 20.0, -0.9999545812606812], + [1.0, -0.3934693, 0.0, 20.0, -0.9999545], ], ]; @@ -46,9 +46,9 @@ public static function computeProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [-0.11307956278324127, 0.3100000023841858, -0.3873736262321472], - [0.9900000095367432, 0.07999999821186066, -0.029554465785622597], - [0.05000000074505806, -0.40547943115234375, 0.5400000214576721], + [-0.1130795, 0.3100000, -0.3873736], + [0.9900000, 0.0799999, -0.0295544], + [0.0500000, -0.4054794, 0.5400000], ], ]; } @@ -63,7 +63,7 @@ public static function differentiateProvider() : Generator [1.0, -0.5, 0.0, 20.0, -10.0], ]), [ - [1.0, 0.6065306663513184, 1.0, 1.0, 4.539993096841499E-5], + [1.0, 0.6065306, 1.0, 1.0, 0.0000454], ], ]; @@ -74,9 +74,9 @@ public static function differentiateProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [0.8869204521179199, 1.0, 0.6126263737678528], - [1.0, 1.0, 0.9704455137252808], - [1.0, 0.5945205688476562, 1.0], + [0.8869204, 1.0, 0.6126263], + [1.0, 1.0, 0.9704455], + [1.0, 0.5945205, 1.0], ], ]; } @@ -124,16 +124,17 @@ public function testActivate(NDArray $input, array $expected) : void { $activations = $this->activationFn->activate($input)->toArray(); - static::assertEqualsWithDelta($expected, $activations, 1e-16); + static::assertEqualsWithDelta($expected, $activations, 1e-7); } #[Test] - #[TestDox('Correctly differentiates the output')] + #[TestDox('Correctly differentiates the input using buffered output')] #[DataProvider('differentiateProvider')] - public function testDifferentiate(NDArray $output, array $expected) : void + public function testDifferentiate(NDArray $input, array $expected) : void { - $derivatives = $this->activationFn->differentiate($output)->toArray(); + $output = $this->activationFn->activate($input); + $derivatives = $this->activationFn->differentiate($input, $output)->toArray(); - static::assertEqualsWithDelta($expected, $derivatives, 1e-16); + static::assertEqualsWithDelta($expected, $derivatives, 1e-7); } } From c84319e5f2b06252c2295f897c2bbcfe4d871c2c Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Tue, 24 Jun 2025 19:28:41 +0300 Subject: [PATCH 15/22] Refactoring GELU with IBufferDerivative --- .../ActivationFunctions/GELU/GELU.php | 12 ++++----- .../ActivationFunctions/GELU/GELUTest.php | 26 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/NeuralNet/ActivationFunctions/GELU/GELU.php b/src/NeuralNet/ActivationFunctions/GELU/GELU.php index 195868b29..008219469 100644 --- a/src/NeuralNet/ActivationFunctions/GELU/GELU.php +++ b/src/NeuralNet/ActivationFunctions/GELU/GELU.php @@ -87,19 +87,19 @@ public function activate(NDArray $input) : NDArray * - β = 0.044715 * - sech^2(z) = (1/cosh(z))^2 * - * @param NDArray $output Output matrix + * @param NDArray $input Input matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $output) : NDArray + public function differentiate(NDArray $input) : NDArray { // Calculate x^3 - $cubed = NumPower::pow($output, 3); + $cubed = NumPower::pow($input, 3); // Calculate inner term: ALPHA * (x + BETA * x^3) $innerTerm = NumPower::multiply( self::ALPHA, NumPower::add( - $output, + $input, NumPower::multiply(self::BETA, $cubed) ) ); @@ -122,7 +122,7 @@ public function differentiate(NDArray $output) : NDArray NumPower::multiply( NumPower::multiply( 0.5 * self::ALPHA, - $output + $input ), $sech2 ), @@ -130,7 +130,7 @@ public function differentiate(NDArray $output) : NDArray 1.0, NumPower::multiply( 3.0 * self::BETA, - NumPower::pow($output, 2) + NumPower::pow($input, 2) ) ) ); diff --git a/tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php b/tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php index 0a7295134..2a4e35b14 100644 --- a/tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php +++ b/tests/NeuralNet/ActivationFunctions/GELU/GELUTest.php @@ -34,7 +34,7 @@ public static function computeProvider() : Generator [2, 1.0, -0.5, 0.0, 20.0, -10.0], ]), [ - [1.9545977115631104, 0.8411920070648193, -0.1542859971523285, 0.0, 20.0, 0.0], + [1.9545977, 0.8411920, -0.1542859, 0.0, 20.0, 0.0], ], ]; @@ -45,9 +45,9 @@ public static function computeProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [-0.054269056767225266, 0.19273021817207336, -0.15292881429195404], - [0.830374538898468, 0.04255049675703049, -0.014641005545854568], - [0.025996938347816467, -0.15681639313697815, 0.38089409470558167], + [-0.0542690, 0.1927302, -0.1529288], + [0.8303745, 0.0425504, -0.0146410], + [0.0259969, -0.1568163, 0.3808940], ], ]; } @@ -62,7 +62,7 @@ public static function differentiateProvider() : Generator [1.0, -0.5, 0.0, 20.0, -10.0], ]), [ - [1.0829640626907349, 0.1326301246881485, 0.5, 1.0, -0.0], + [1.0829640, 0.1326301, 0.5, 1.0, -0.0], ], ]; @@ -73,9 +73,9 @@ public static function differentiateProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [0.4047141969203949, 0.7395542860031128, 0.13881805539131165], - [1.080506443977356, 0.5636941194534302, 0.47607067227363586], - [0.5398608446121216, 0.12045331299304962, 0.8914529085159302], + [0.4047141, 0.7395542, 0.1388180], + [1.0805064, 0.5636941, 0.4760706], + [0.5398608, 0.1204533, 0.8914529], ], ]; } @@ -104,16 +104,16 @@ public function testActivate(NDArray $input, array $expected) : void { $activations = $this->activationFn->activate($input)->toArray(); - static::assertEqualsWithDelta($expected, $activations, 1e-16); + static::assertEqualsWithDelta($expected, $activations, 1e-7); } #[Test] - #[TestDox('Correctly differentiates the output')] + #[TestDox('Correctly differentiates the input')] #[DataProvider('differentiateProvider')] - public function testDifferentiate(NDArray $output, array $expected) : void + public function testDifferentiate(NDArray $input, array $expected) : void { - $derivatives = $this->activationFn->differentiate($output)->toArray(); + $derivatives = $this->activationFn->differentiate($input)->toArray(); - static::assertEqualsWithDelta($expected, $derivatives, 1e-16); + static::assertEqualsWithDelta($expected, $derivatives, 1e-7); } } From de4ef87bb05a5fe2d5db572c1ec00ed23884b8fb Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Tue, 24 Jun 2025 23:12:09 +0300 Subject: [PATCH 16/22] Refactoring HardSigmoid with IBufferDerivative --- .../ActivationFunctions/HardSigmoid/HardSigmoid.php | 8 ++++---- .../HardSigmoid/HardSigmoidTest.php | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php b/src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php index 801e92f9a..78df22dcb 100644 --- a/src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php +++ b/src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php @@ -79,14 +79,14 @@ public function activate(NDArray $input) : NDArray * f'(x) = 0.2 if -2.5 < x < 2.5 * f'(x) = 0 otherwise * - * @param NDArray $output Output matrix + * @param NDArray $input Input matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $output) : NDArray + public function differentiate(NDArray $input) : NDArray { // For values in the linear region (-2.5 < x < 2.5): SLOPE - $inLinearRegion = NumPower::greater($output, self::LOWER_BOUND); - $inLinearRegion = NumPower::multiply($inLinearRegion, NumPower::less($output, self::UPPER_BOUND)); + $inLinearRegion = NumPower::greaterEqual($input, self::LOWER_BOUND); + $inLinearRegion = NumPower::multiply($inLinearRegion, NumPower::lessEqual($input, self::UPPER_BOUND)); $linearPart = NumPower::multiply($inLinearRegion, self::SLOPE); // For values outside the linear region: 0 diff --git a/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php b/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php index bd46e342d..6fd535c11 100644 --- a/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php +++ b/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php @@ -62,7 +62,7 @@ public static function differentiateProvider() : Generator [2.5, 1.0, -0.5, 0.0, 20.0, -10.0], ]), [ - [0.0, 0.20000000298023224, 0.20000000298023224, 0.20000000298023224, 0.0, 0.0], + [0.20000000298023224, 0.20000000298023224, 0.20000000298023224, 0.20000000298023224, 0.0, 0.0], ], ]; @@ -104,16 +104,16 @@ public function testActivate(NDArray $input, array $expected) : void { $activations = $this->activationFn->activate($input)->toArray(); - static::assertEqualsWithDelta($expected, $activations, 1e-16); + static::assertEqualsWithDelta($expected, $activations, 1e-7); } #[Test] - #[TestDox('Correctly differentiates the output')] + #[TestDox('Correctly differentiates the input')] #[DataProvider('differentiateProvider')] - public function testDifferentiate(NDArray $output, array $expected) : void + public function testDifferentiate(NDArray $input, array $expected) : void { - $derivatives = $this->activationFn->differentiate($output)->toArray(); + $derivatives = $this->activationFn->differentiate($input)->toArray(); - static::assertEqualsWithDelta($expected, $derivatives, 1e-16); + static::assertEqualsWithDelta($expected, $derivatives, 1e-7); } } From 6dd013f2351d0af10090d8ecdbfb239566efc42b Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Tue, 24 Jun 2025 23:18:43 +0300 Subject: [PATCH 17/22] Refactoring HardSigmoid with IBufferDerivative --- .../HardSigmoid/HardSigmoidTest.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php b/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php index 6fd535c11..a39bf1d86 100644 --- a/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php +++ b/tests/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoidTest.php @@ -34,7 +34,7 @@ public static function computeProvider() : Generator [2.5, 2.4, 2.0, 1.0, -0.5, 0.0, 20.0, -2.5, -2.4, -10.0], ]), [ - [1.0, 0.9800000190734863, 0.8999999761581421, 0.699999988079071, 0.4000000059604645, 0.5, 1.0, 0.0, 0.019999980926513672, 0.0], + [1.0, 0.9800000, 0.8999999, 0.6999999, 0.4000000, 0.5, 1.0, 0.0, 0.0199999, 0.0], ], ]; @@ -45,9 +45,9 @@ public static function computeProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [0.47600001096725464, 0.5619999766349792, 0.4020000100135803], - [0.6980000138282776, 0.515999972820282, 0.49399998784065247], - [0.5099999904632568, 0.3959999978542328, 0.6079999804496765], + [0.4760000, 0.5619999, 0.4020000], + [0.6980000, 0.5159999, 0.4939999], + [0.5099999, 0.3959999, 0.6079999], ], ]; } @@ -59,10 +59,10 @@ public static function differentiateProvider() : Generator { yield [ NumPower::array([ - [2.5, 1.0, -0.5, 0.0, 20.0, -10.0], + [2.5, 1.0, -0.5, 0.0, 20.0, -2.5, -10.0], ]), [ - [0.20000000298023224, 0.20000000298023224, 0.20000000298023224, 0.20000000298023224, 0.0, 0.0], + [0.2000000, 0.2000000, 0.2000000, 0.2000000, 0.0, 0.2000000, 0.0], ], ]; @@ -73,9 +73,9 @@ public static function differentiateProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [0.20000000298023224, 0.20000000298023224, 0.20000000298023224], - [0.0, 0.20000000298023224, 0.20000000298023224], - [0.20000000298023224, 0.20000000298023224, 0.20000000298023224], + [0.2000000, 0.2000000, 0.2000000], + [0.0, 0.2000000, 0.2000000], + [0.2000000, 0.2000000, 0.2000000], ], ]; } From 6020364cc628fbbdf65e6fa19a540f8ad1cf87b9 Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Tue, 24 Jun 2025 23:22:30 +0300 Subject: [PATCH 18/22] Refactoring HardSigmoid with IBufferDerivative --- src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php b/src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php index 78df22dcb..40039d4cc 100644 --- a/src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php +++ b/src/NeuralNet/ActivationFunctions/HardSigmoid/HardSigmoid.php @@ -76,7 +76,7 @@ public function activate(NDArray $input) : NDArray /** * Calculate the derivative of the activation function. * - * f'(x) = 0.2 if -2.5 < x < 2.5 + * f'(x) = 0.2 if -2.5 <= x <= 2.5 * f'(x) = 0 otherwise * * @param NDArray $input Input matrix @@ -84,7 +84,7 @@ public function activate(NDArray $input) : NDArray */ public function differentiate(NDArray $input) : NDArray { - // For values in the linear region (-2.5 < x < 2.5): SLOPE + // For values in the linear region (-2.5 <= x <= 2.5): SLOPE $inLinearRegion = NumPower::greaterEqual($input, self::LOWER_BOUND); $inLinearRegion = NumPower::multiply($inLinearRegion, NumPower::lessEqual($input, self::UPPER_BOUND)); $linearPart = NumPower::multiply($inLinearRegion, self::SLOPE); From e278894d1ac5a399ab21bea9ee9ca95e8ca0b0d2 Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Wed, 25 Jun 2025 16:55:36 +0300 Subject: [PATCH 19/22] Refactoring HardSiLU with IBufferDerivative --- .../hard-silu-derivative.png | Bin 48315 -> 74612 bytes .../images/activation-functions/hard-silu.png | Bin 48031 -> 62872 bytes .../ActivationFunctions/HardSiLU/HardSiLU.php | 10 ++-- .../HardSiLU/HardSiLUTest.php | 43 +++++++++--------- 4 files changed, 26 insertions(+), 27 deletions(-) diff --git a/docs/images/activation-functions/hard-silu-derivative.png b/docs/images/activation-functions/hard-silu-derivative.png index 089d0eac59569a612c7837c9179d9286f5b2848f..4cb2a03206ecf352adc4c640eb1ba00b73aecdf1 100644 GIT binary patch literal 74612 zcmd43cRbep`#vtErE)iLN710jYM{ty+$v;bWRprVN}1W(cT^-%GAf&ljASdf$Smv1 zR<_Gtm+f~vRquQJe&4@-|9r2<`}4T_6tC;`dcL0Lc^>C+9Ov_%vf}a8E7?}k(b27z zJ@JPM9o<rXI=aPG%a`JBq<&u;ga3$G%V=7wT3oQUGqg0KQ!uo?Vs2q=ZgO^ut&ydb ziN)o8f}(=^__tiNw!UH|E+lm6e?K5-VQDN>K9)U(i>$bELd%Mdj^hLQzeSfn+epzZ zqN9`j<FMMbfZj&CYidSwb3+Fut8Q_adTm?IbK;cO4)>KSS4JkQQ{3f-%ycyLY_3ug z<BDEw*}{^rMdgp^7dN(T4rN%oT;XWoA-9)dUVC$-hl{-)i?4Xxd4BHz#l~LGsw_aP z)5`n#qRxHgBTL@t3i{zbetgU~T(ra2|NIE!k$-&L`Yvkz`ZHbqmxTZQ`E7{d|9;;5 zcpm+)fB5?F4#TfMCv0BL`0LMS4zjWQ`g5-B{}o@r_%?&w(TmX4?4l>1@3*kEQ1Ta+ z?W<2seY34O<!b9O$?>n}`upBqsy7{O`y_h$)~l~6W_~REnlCQZzy0*>N>|CVeR4`l zcGB~O+daF!9Oq1Vb3}KgMHYp7=T0+9oSwLKmseSkWXwosIUhg&$@Zcrswt+`Y8ked zL@s_l)L!f-RAFyFk2|>ilB{LR;$xm1v9}pnS+1Qtbja<<(WA_4Y|(%Ixm-O~TYapj zy3)u`FPtwvQzceAMdjMHcQ4%+`Rw53<((>boeN=LWcfW!zd764X0+=RZ9Gi$h}6vB zQRmSw$NT&0Qq0&hSY5Av`@kTem#)_AG98O&x?pm?oqP9g<u6~pnARqSiQD!@KHPk8 z*WSGqRGW7552M|c$3u>L3fgp**4}><IyurAqZlZjFSV17ZthR=iVto4W|`*W?fuHf zXG5T*<LSF=Hdo-X4dr)l-|kMQ##Q#EHpdC-rSojrlKaur@NRtel$>#Skc|b?W^uJA zyVMikY<oIfXBKZV^gZ9!@4AX<{o6}Zl$^OR>G_$;R?7MF=es<m=RR|~&b-8$?82SK zoQ_qwc=6&VW&~%E#KLxR*~ZN+gI`E;nVU2gF|9gLE;ao+F0F$tqxi<*$_S-YCu){O zbG9)5Os=nhj-?2nzld2lZYokc#dPJW%y-F#9xMVU{gyo!(0O}OD0|{;_V!&jZro7I zcCt6Z4a`iAOa|@TzWu16UrcDx5;{7U8|2a5m`p#vxPE8NW`8qRQ`2ZfRftt*8Fs|Q z>G3{smzisEt>XjD@!#_9nhmzRcNqS(lX+8#G~@L|)Bc7u-@f|G846h13qH&n)~^q7 zooVGv^Jm7EQpfA74p(5Wj?pL&e3G0jyjjvgEoXi%<L%|f=wR15t(}Si2_e>Wbjrtu zT*I+%q#_;0da%?P65=)Z@-MGs@OZxK)~(|&cb*-ixO;k1o?B#Vg+FKE@9B}m#-@CH zz}_dgSSG=Sdb)UgyQjpFBzo*%ijGBA7`~5|osh6QYpN%vr#8trD1OD7HK%8%#?*6M zoU#4n%Oz<6q83fBwUREFOb)l-)_+W6!o57r{lJ9X>n7yk?p|?}Niq~~tLM>ijyEUg zx5<)M^YP(kGo`C^a%xzrHJnntO>xREZ}e2h7@w2j5pbCu)97o;s!tpUo}V$!E_Kgb zvUF**^Ypj_H8xe)qDkWRty|YJP9i#t7ZTCLy_S|Ul2ctFQ_b^perBht;&bM-sg(HC zsJ(RD?G0&GzJ2b@e06Fo<enS2Oy(yxMxNT<=rmHAFJ+*nrWSYS05<Naq4*V8J?Y9c zD`Uyo(aN-O&&>yY8C0+D-61Acn^?N6s4&rW-lf<!!?w>n8gISjRpP-@d+;m6HWWQO zlYDn(?W7A29GinA9g_|7mg+h7rR0luKH7eK13P=n<DE)92%cRA*_qL&W21|Oa&(bj zMpfERWA|4hLae(!Zw)+XS0<S=wR(Sp@;1u8Z&gvMbvdp%Yd9n#v5|POr<wUqt07@j zhsv%Ox!mxSDbVBnLnoH%x!LIyi)N`naT~eLvOrb*gnF19bBcMb%BfSQ^2K*56na!t zRBT{njljyQu2```+;uMV#?71RX_iLSk*AJo=-Y?w(umVNOObXMjkN9ky7g|}%g|7+ zCwv-;C@4?jGKY)k4g3NEUY9=KU;OP#VYl@z2?<>rYK=OzCYE{QMy*~4#UKfj+6$wr z>F9V?|9B@+j{Ru`6$xJC)w4tyUhQuXa~`YK&`vymZ_TCyUISOj@6XT8id-8!bNlXH zN9%s1tFCGd0~-t4k2K@U)%W$yQBLR4M>VgtLPkfei>aoRxWE|0J?39`Uuw#%&5|^! z;KHLfS>Dh4_L-!X`}bGLsvu8xlm*75+fW_UENrpB>hbznNJ`(EX!)!LUG98wg*N66 z4(Xzo>OzBEret&GreeN-|GrYf4lmJWq;x+ud%Az*qQH%8=jooVFCq3)cGG>StP^#v zb0fh$^{Mej%?O#Xujf3|QjwpYcfRU~&l>l~cT$_m=BD|gueN^dPAZqOvasu`Q=gx1 zo?q##C)-h}L-KyP^t`SItB`Nrw?f*xV-MJ(402r3r~5M)^>%JCew%dAVf12ldFR;l zxD8&^)KCFu%7s$4OO5I3va+(19PGdS_M)Toxmlst*7V7a=ggaWC+7t{IV80iSp}^v zjOVrHCR#nGdXvhNQEPPLsmONOt37VrTH-wTewlW<wMmf8G6sey>?bxUr+5CsCf~2d zYFP?qy39-rZ3_;GlyD}cXU-%30-|>!$}BGJ7)pV!Gp;r^!Cs5JSh3lz;pL~tJ6R_T z6Sy`@Icc^Qcv1rGnxe3KSu!rjPT>Y@=4WYU*oMepe%p5KlG`k9eZ?X}SFm`Qm(0*C zty#yPS>d^8X_D4fStiL*uRBbfamX#Kb+5hlO5Y0JXZ)}~b3~COtNiHlTLGL-Lde7S z?%k7-Qo>uqyE#~#{eexu+j)}TJxty&8Y}3(*GTSq=}KO!(fp@-&RKT`+L<Ej-q|&J z3H6~OHnl0*uGv`wPa%+?wbf|uS#z3IguZ<{v*bj}O=QHJQ0h)@?(SOS;A%#pOfTc4 zS6gyshCTYTr!Na=CTwX=udJ+0Ih((-(W+e1U)t5>5j93TCECcb)L$em{I|t)bh{rc zlmO1+Nd>crO0BND8G?TD>vx>|EImJ|6e#5^P8m6T_^|t*e-@7Dv<wXmv5A^L6*d2= z{MuosQqXJJ$2-!FA3pJ{d0m`tS|Un~yG>cIrAuKpviDhqsK+CDc{j3CT*iBAC1}f# z301=6qSc~Qf>aNMMMO}s_+JV*U3J^0PF`$GPYK)V>*EuObzzy5zyqf^jU3#&S4A(w zwv=}5;E2`+1J~IU{cGQDJDI)KO|y)%$d!MlszX2xs-OBjN*A>(SlYrqzEBY8WbN9u zD;XJ!M<zEPwC$Rk9?&>)<j9-2z@VTw;~@KEz$&S|<^DIK7Zz)7j+WCo+2o}miexi7 z;5wgC=$egd8r4eK4~ObIkEzQiG1JlI3WwhUE*v~ZvQGA72YYe0q~mxSoBg9kRs*M( zO474ciSdVTE@eA#<pqHsU0oMxcTEV67;Y~fBk}v!z4hLErQf-HyUi->JY`+|TC1{E z+jV}{j<&z==+UDj8+ZHaTs}3@QOdkwLn!jbW{GRc$W$W}0b*laUycH2Sh^}-Yb#uP zso~w1y~D3|W3N;K=QPy6fB(LxF~ja<e8zWozN#>JRy~_)b<>K_d(j&4{c~dBVPV|_ zf1sKOo7M0a-;G3KuR+cV9JrB|cbAC*M8qw-ey3ux(;*UxeA~8dYxZCHTqkEYs#o>I zP-|m7BMblFMe9Fo@!te<T7P3kZj?iBk@2b5dKsq&vZv$1HnQNZ7cE}e_3&W7a%H#z zc?i^Dk^`EZMjp7#3>~Mv`Sj_N16hDeb;7`nTPTx&0`|04#Jkz|zwY(-0U=7_4(w}e zqH+c*$d2i$ih3+=)6=G(#N`<BofH?Ou8#8Hcv2Fx=5cQh?N2m>4L{u4W-t;HpKU2* zs)rrXh`>poo1&_xUe;q+vZU+7ZN@s3$T*XyYc`9A5}YC@FK;!#xN4PJj>~LSyn(cc zSxt%egN^$xbae*1`WClWn8jy>n^s5L>$ak_y@*nc&>o+~;@~n7cUEnDg@Vb_?S!<` zbcl2ext{GJ1NJV|%_j(Q9DToxQ*(SZ&|%222Sp?7RDyXWX$>J#&Qo2_jDt>{Jb6E~ zgy~fCwbs=SHXp2M)t;YdWs+5Sz$PMmx#68|3Q2c{d3XGh-7GaVpI%ODXDJPmtk1G| ze}h5BRI@GMSTur!tWS19vu*vQo~En}w*8j_2KHbpnARmn`HNnP#&+y(_cN#|dcwyo zyK&>jslhy^k-%kAj!A7u^GU+|4z&JQtnD>xgZ!)Ymr_m0D~MV^Xh-j^u}>bq<MZtC z>**59g3Weqj+udzqgBXvB1rY}Nw1FFUg>~*S)FcUR{Vy1X>)c~U8+Sqb_NyjCt}+8 z8RFSb-$6Fmd0Z>*(eHMRHh$AX02chKJrEN*K|;k?-7r4`7p*LZu_8OJ+g$2VDl*u{ z8rWWFE_O-I&y4g(Jwn2H@qm3l%R9jn`icI`8V1fOAMbArk$bXBD~M_J>e8`k-%yHy zYvW!4RV)?$>9N_Rm%X)558B1)yUyAm!7Bn^jJ*5EBA^}VNbC3A@xZ56*dDcUtUqHQ z8d(hY@kINrc@$uEPhzp)NYO=6fWVp0q(dA$XRn~(J*F^{nMrGM^tIVe-hD){OZsQ( zAIFZFmOR~)-WlZBu=<gD%xRN>rYsq4eo-Et6XyyZ3e?ai1(CWNW;j%-B;8GN%PzG@ z<u0?ziVFA4rVlrnq%=dPcAb75Igcd7CUGsnvD5=t#SGY)K~%C=Ipo-Co8GUdVl?7? zeZ=%CZ!j<p&)#uWl=tQT0(8<)uc3QY=6a4}#z^-)F{_TYseR)BlKab<;*+S=F@9)q z!Vm?NEQ^ANo3*nXQqrxvzgM%#e>l$R9O@}GRoEp`pKKBWII*EyL@(X?%SgGjh1M1q zpca|SnkQ5M%to6W2cn!NhdDNL0^K78S0@f&N0n8-E+hZ|?ZG>=W_jBv6GeRSUDua! z6k6@d1(*Q}*2%CNs0k3W;xZD=)K0w|Yui`X9sc~XN@Kc>hm!)9_eR36+7oLaJ1IEG zwtju<+|qQPNyCQ1N82T{Pyg}9tvjpPFVxb2kQ`<lWYb5=4kBwNZOaOe#M?5NY>@`U z-Md-oFz)!=<nDB2ZIUf0W~)}L_~NzoDF3wR<%X^?>b0X~cS?}}M)WkcL<CeGW=>`~ zVNz&pxOeZ~g>;zRl;y}eb=}$*0TX3E(&6hIX8+B`zy_#YJN!spvWe=OvJuyLnk&bC zKCZOq^jb(kG5T2!_M>&v135XGr8kkb6rSzPZw=Qtd-hdLoL<aOYe5Vah@cf0Y_x3# ztaNl+q!*Zi8O=1ycFR6_1%=X)uLC*rO^J;;uJiN}TAzxMXU;rRJdX+><1p*CXtBGs z)7AEwGZLNK>Lx!;E}FiS+IYIffzfYU=Z&=bR12X;RNd&yjp<r7pZ@gpq+L8k&2ppx zYU=g(eg6EJUOH1?^(21@V0QbJ1N_rVnK*ifsEZdbCW*H=8xfUwBGHclb=j!cxBpT^ zWz@}OOf21-u#eRdfRa*8?UwD@C!AYyuXE%`adG`IJ58faO!T5Q2;25*;`bHN=apK$ zp=E-7x%4&RFq6cfTN4smaXLE!CqLgu8UJzN-?L{AB^x&+;aNKQtq*lhqm8N_seE`f zoA8zR<8ROcaPQdRFe=dY=bwMB3tYJ?109??;F+B(UFxNJ(ai_0Y$<1Wm~<epOqVLK z!RC55Kf<{ZAlJI5iZ@W&RUbvgSA>a6tLBy0UiL*{r%s&s6PfMO#uW)yz8ygTy~(At zo3FDOXp$`FElK<usHAkBbI~@VxHn$2H?Jy<qO{JVS#PjEAumtLsWsrfW7tRU3V;!L z|8yh=^)#u^LJzU832<D-#8HKMX)`x7DItAP+NQ_H=%AF8{uq@)n-ITLm&~h@G@N^V zv9EL`pp(p;y`Jmrn6FH~$1XF&;qAvClIl_e9L|h@+Gkw0VX6+H+x7Y7QIbvNU(14I znpr&W{Uh@Td}ia|2r@HJQSlz{t2eGq#qK<-z~Jqya07P}C}Cd_!gNbPgfFzj;<#OR zg$$sL-GENQnd`^y|Ndyej73P_e6nQ(vB_US-*WZpRc-telHBPw3oH3&9%6o{Q=45f zke(3vRP>wCns3eq6-0!E5gsG0>``!qmy%L%V+JL$@s*4RfcDvZcfuAp&aRWKOEOl9 zve4AMn$PT){FQcZ{Z9AB1hRrywlRQZDpGO^ziD68tGUTtJ=4`Fm;Chr<@VXEtf2@r z(z#_<PT5BzO-&UW%)QE)X&3U|%lhr%g9p`k*fDB+j`lGrqf|7dqzjnJnV-&)PnSYQ zw)h!G`pp5c2*WsMfYFk%)$_d`^ZM?95+pWnbND%HZ(Tn%-e+c_$*-M!0{G`0{o;`z zb&*bM<)DXgClnN_-(77LKKF4|@r^GsPbe3kReT>V7Sc$%P>R-<PgYJ=_6x1qHU8j0 z=DzY)jaY4?$vcjqt5)iEz7%e&th6%Hh)@hX8yJBI^u2R?XR{kk16$nz_&>#UeokJz z9J|EB+UZnte1Kwv5&G{s8HX$%u_x+kYCev)yi%)TG?WM|c(A{TM^^mW;EQmD=iwGP zv!WEo8Z_M`Ol4$b>{CG2wn%IKz!*rZ2PxT^QWtl9V){dJ_H9yXc6)zRS>Qn(mL^Ht z-lsM32Em<g@bL{cBDf*FJN!ueBY*#B0(=e7$a0JDaoJ~jrRZ74F(zL5_QA=s)J(u@ zhD}DLyD(y>rHgzH3VXh|QW-+#)|N^%qry%TgYuV8pD3#SjqfBL#`2*p-(}HZ_LMdS z?0E{dPCWXm&UAfkZGZH58s9~bZ)raA&P-)yrf+UErGlks`h9^EEEv{~OatYTHr}54 zTk8G|V>b_}qM;{=w#P##`^vy`Y1eE35+CZ<0M3NwD|xFqoUa_P=~0W-O8S^6gnnRu zvr`fha>&xvY?0_f2{8d~QGoFXr<i5vSF`h9U)l{ckw|J(6`UQfx0u51St&fX0q3c! zI^Sk)+t%he`Nw<3V5wL@6JE-VHZVyV$R{@W%o>rWW3>UP+;K&#*v5Shqh0jRO}$9* z0>nQBM(vf+Jn5jjLOko#o^)D@-WIg+(bkXO|K$)p-HX>hh|dDloQt(_s6|1Q&21@P zhoaSE+$9Rq<GX(#0dOdUYxNC2Zfa^8H^$QcuJz%O^1!E0BNq^6qh+yx!(_Xk<W!n( z2k(pFb!*qY#0E3zt_bUQ2Kh=^uOwk82HcXJ<W!l41bkc2wwG`6wOW+7QAT9ts&<-q zWo6jpjqb__op3F*Ti#7B)0YU@5JGuAH}YiUX5aS<+v9ES$yF%qZw!5NuAt}Zn{)ln z`C2y%)`&Il7aTM88yQ39%IDx+Oy?$j&S@KJbubno5cJ2HS_(ik@N}E_Ti~y>@yR@4 zVPIC3VqbyAdR9T*&xjZcu?rw1e1l~GAgbc@GLDpIfeR>3&0!b5_~J{*amSghj%8v4 z&WFn$trL5`UZp?k)k=1~t&@sUR-!BqH;Jjd9@!-2^ffV1BkyA~C@m%5KH#mo)(f}K z&y{POKObr|4R%9D>iDr^cfPl_W~n_grl+T`%CxsC&aRj+77`M3?Wm>P=6x988hq@J zKiVc~yr6e}U!d=$#{geC>g<4a+wIMPFp%AiYW-5&EVcZs>cRplrQ2uRvXp|QIGj(U z*bV3xkCRpM^7_q_TKDGM-GTyN7W9;AXrLSGL3C(m*v2|KV*B_8%Y#O&PBJb(QcmTY zG)L=YME+hzsvym()6#i2Hf^PRbj)j6dHE!MiOrify#||E+e(Ruh+r>QDr+{>)zy7O zQ4+h-;wG>?-cnRczP>PghGbXYzFW6$$(yS6)h0#cj-Y8T|A9-7qIy&zKKZBp_gm<< z?Dqnhqg`xUX0x;?TIX__jG>`ne;;o4BG4on&z7R>r81zHj&G+AElFWZES|jXXm~nK zS1YuYTdOA5t3;@3^M(yRF}%K6i-cY0oQkc`->LzsNQkEjwIzY|^1TFp4GlSS_a@Rp zzm8dprvRqD7M7j(q1#&9<=CS~k9?)`Zr9>fyoor!D-Kbrd8{QgB7#*c55GdQR1f+j zwb{o<EaipJyPoJ6%RavT@<9;OY2lh6>-aou1X2Bd2rbgc!)&BAN)+0%<&cu(nA-LD zjG>S00`-K=0lv!8(~nYpb5;heabBVj_2_tjDw|E$=ff#xl<}@ivE!-%l8!a4{%<Xs z<3NaCb8_+}UB_F6ayy~+pzpk9a<L$vy6$qiBuHrZ$mBb34aP<;dg6%=@Y;-nUvb#8 zea713xZ=wboFAue2DrWj!(b5Fp*wD4c5=n?<;r-y0@D{t{o9AAs;a6YcKy0S8tMmt zqmWW`#z{MQZFBxwX67)2d_$s;ab=Y%7__pKTt`4O4?SR{x%&$cIGB{pwoi}8+8!(Q z0H^wP_NR3Q9iixTHKZlAKW`wqNP+a+%c`oXvlO3MozG!fWlUwPLi(?hlatTJrh0Kt zSDo<g+)nT9?JbP%%rpM69tw*<eQiYPo-ou})5`D%jt50V)X_P7N?|!s*1EEladOqF zRaIz{FV&_3CIPs73Zaw-i0z}Oow>Pm^{}?Hkqo#nfy#B<+}!pv`-1jc1Q}KN$Sz*G zD#6^ME?E}W8tO_>jZmz9dGxNkbrwb6QK8wH*2w)J*<m1y=Hu&op_US>lX^C|Jo)|2 zWjb#G=1#YLEC*5$zWV)-;%pSe$&;;1>D(&rkYzZuvGd9SVWXlAV}11+;3vw)zEzRn zL&xY~9k(;ssbX*JXA~F_r->_Ko7Q+zucqnNB^cfea_Hfmof#?T$SG44JFXaT;OY^= zZUFW+P7kx)JLMIy`V}_7MJO8#*&n;DP5=6HEh!6<*^0Je(ubx|C9IskUOZCvu?!8C zrE^jmPiZiJwpTf>0J_Z7mpa>L;aUl#uHQm+nfSI09KpxLco`3twCpFIC0|w|38(Zr z0_EFulsuz1Agh^$jmoX1eH~H%nCkouU0Euj&046q{|LfDPC6`Gv*|Mguvf_BI%uqH z9@SW!P*kh|_I+Ze5RABH>305n8J)2T-Uk146L^2!(yp0J;?^hf?yOD{)>%wXKZ=Il zF+~wEBb(4jl*$)f5KM#}$9r|Bu_bNBd$ov~1>&wQ+u1R0GCwH;J*<djTcNHQds_r< z+@U8bVzlhwz&qNd+C&+<Ci@7&32;a{M4}DwP5Vl&(vrIfx##$E(MuH|kgUJ|wL*4M zXjrdq$&w|J$du48JR7FNPd+;<*3t3YLa^d&5|&#HO^krq@0nPLDfDl`S6U9~xlFc0 z^z|-oSJBlC01OQ`sSHn(w#IG5LW|K2o$jiMeIC}24w#ApciK--kLZiH@7&RT2;D0S z<fCS&*|qQJA}avOLO}J)R-nG{Gd=;k$il~tcZQ;50zmKZ{oc-o?FWdMwT#nAdGWF} zYQa*@Rp{i<@9Yu~Pyqj3*;|`rrQoL?rz@5<UT4N3Fxc-&2;AZm_t5E3g<K~+(0+#F z3!o#ac>AD2qvz4C8C$`~sQP$^!pckAp4=k*2HGZDB_X07VyhBXmu>eMH^H14OFK~_ zb|Ig<V>bhNr-DX;nUz%|)a+w^em9{%QF*JQRCgj{EeIBZ8NGYeqt!k+>;Ay|5fIPJ z&}M+?O%2!y(a?3ezFE%6J@MVUcM|h+BWidhRS;EVp(I9PgD6N2<}U7kbho>^n@!Ro znTQEw4}-#s)=CPWF4snLif(kjfI+q{sPs}1cWS)rYz(Ab<=!daYP$to?ezKj;$@?R z!uc8xHo15Vw0y@DOX5y6kgwa?&MQ3K{a#XgJ9Hgf!$v7=EreZURz74YN@i1bG}#iM z$r?HLb_NJW@=yg%JX7$>K@2(czA516yas0a5J*JjD_0W0hP=Q<(7$?x?ojaWvT&V# z4thl;)C?r|lk^UMGydkUQUn<*1qXEw&Chg7%ZD1Cf}lCpTU$BY*V`*yj)twne{ZoW zUOqaBZg6W~5K`3a0T8GP!BTqY2Q-wGy~tOgI(LW(s6%dEh^FRM1q*Bwvax_iB`5Sr z$hy&7Q2@Z+KAqp|Tp@v^*pFP$VPhdcm(YRe-I``Qr68hOb(DMoyD?mP3^jFb$kX*A zf*-WWc@+3c5N-m}NiSY(QGcy@3aIGH{@+K|{r-C-xMLX*Exa`;9^cV<RRZjv?xjcr z<MiLT?ISkai&o$>s)c!40TQPvxL<F<xlP`WA2T|YcU4Asaya(BIZHu5@N^wy<6Mhd zP^Uk#TU0p?WJQpB*DQ7C2LQ_fNR2=S>6n}WP1I&B&Ny=>0+EqFr(CxNg}l@*(340w z2yq!HV|>dPsHubH7F_83y3u*0fn<Yzw&Uc}mbu)NNPS3x@>7kD@`qKWm{TSnKNf1U zB2q9ECxH;jM3i?b0Ij_!AIO&wuxT47&wQnjkOC#>98``DT}mTq8wdoUtkDYY&H)ud zW?N*9`GWa+N=?g5T)S@FE3z~I9Q+kFMDd18ASL%)MP;SU)Mz*Tb7lly4GLs+gi`P} zy&T~*5W6C%6e6IJ%R7@?)=Xv@gIGIE1asm$XgQP3x{@w8ti=MB7q`9J03fz*-MVu1 zYIPt!;PG%s&1upna{xKA#MKK@DEcuL*^|czuZAu-1p#w}ax_ve<1Iqt1qjU;Y*H!O zdqq4CtP~$5XsjCLL6XoQw<`o3IE5gQ&t_~v>tz7iv>Lq422kH<^*2x*u*8r(9}{Jj zAX&H<{2p>hM*sEKA0Z*D<Fcnr5#mCWBk!SD=xZfYScgHdDiIBKK@2<p$(x>1_pUdw zm=M&fHyu#MV{mJ0Xq|d_gn=~0{$f_)*@#hH)!&T(M^8ag6E^>vux{fiwN2>1vo4ee z#R4js)g~I*i>{(yyto?h{lV{hKI}c4tI8xjlfdCLco_Lt0jjeGC}{$g{`%{$BL+Ii ziiCPhZE}c7x9#h(8fdpS0jSNM>fwvkd~*cgtfD4X=Se_7z`)R=MT^pLkJi`_W?+k= zAqKrST|~!|L9c7?d}$f#63;6nj!VtidMHKW&Qr<j)~_ddmxKqAQ&G^=vm9(PiutQa zXNK}o2uBKD1ymeWpfX_l5tWg{(ecB#o%)+|3_#){Z$?<p&Di5ITF9BF01Ej%vO~JS z=_NbTF2g4xuNa{U(wnqEY-l`U;?m`SXOc4haw3)%2o#nFHd%@Xu4H1;04GVj3N-Ca zP2P_ly@a2k2Mi9e900ugKtLWGyz)fIKp*(lwBg;G9!h+CZf>Ha;Zd}_w*3uJkWfen zh&ztI{_x?$2DEIu)T2oS)t{dPVE@}J^kM@~y}>;!$d8ZIbpm{TeEu)-7v1O+q~nPL zAxcGYB4vYcNOodBZ_-U3T89+*CoG<=pP>g{t1R*Fls?G~_B#0VSjQQ*XE#mGuL*x7 z_Vs$hd*QvyDhmVb_Hb`#xq0^7Ic9ctGrNt0``XCA|NX<ZTkLi}D8UbR>iz%mQVHg^ zTc-62((^n7vV?(!2NEtSWMamqpLd_jedgA`);o8ZSfC>Qmr?8%y!Gcj;D$Gy+-{Yy zIPK?i46G#9Dj8N*)}6BM_wOgC{x-pE`SYiK-1f4AzaD)=@Yw&sVRlZA=f_=acm`>S z@P{2G8?h1jBqb#&d$gt@lAcSKnBc{NIf+=I|0esASRxSV=(oS>d2{{RMm(<w6M5ju zAxP^C9IP8QaLGc;+INcOP{)~o_zQx7H>kxV%ut6S(1Y>p{yewh8SD*GJQ5NO{p(up z7H-BP{=9iSZ)QHIUenV6bnm2-iv_89@fCwxf1g>5SDEdfhC-UAD=4c1Py!0z1(ePD z<JwE!B}UUbodm1ZcIChZG&xYlYxUMFJfq7ugf1bpKufY5mywAAZ74-E+)Ou-L|9Ac zF>CJTNye%ZKMoo=9qM<Bbw3v8S}($=zX1LZB$2(PE9nOJT))1MP+q-y)i4bsg4sEl zXA|{H1`n^fdlXmc-`isR--qEA6Vp=Z5LUkJyna7=o~Wp(9Yyq9*l?ZHXEB;@UOBQw zeyHKzdtHQI?mC_=|KrD9J9d1WZ3c_hcz6H;0<vb`7`5!_o}-X;tsm*{J74%)7Q_b* z&K%2jIrRSWFxbHfp$vu%bbBl+1aUS%Z<Re&d?$2b;+kxt^`YzD$NK+{2JH400WH<L zOBfiK#S^ztlOA|^d990Q^eWs`GBQ>|U@2516BCnun%%)K2?@2{-15Qz>MCEdhQk3| zde9M8qEi-_e(ddylAdDKspt$dmP5xgV`0-Op6A5dv+(g@5#~3yMcq{S^7<lDHdG&# zuB+%tg+`xNRjEmiem+XXAV&irbRbf`u+Y$pNWjQ;8Zb4%Dl*T59fXFvin|(~sD;nq zC1HNKdu$@6kx191n<S(dOn=nJN>Y1lXCb?4!@HEOQ6>Uqz%FSUY&PdU-v0v6#W$BZ zbhJ|d7%^!4<h+}lX?movfEyYv8vEtC%)Wc)b}9I_mv9$F5<YcS=dJmhs8{ljy}Vwa zU&=^5?#Xe<<n#%GboCv&xd{;uHp~yP1Rmv?+0@VIqH~*nVQ82H>sX!M4Gr?DV8HMW z1={Hja_s*^`$_;i`hGQVN5n^iWr;za4woA<L2|eCqm%yQ-!JXVUBI{udE^HYFZLQQ z8W~=gYrzaOJ%kd${M&C{18+zP0~yd*kM>^hOI?vSLPX~H@p`?bGpl}Ok)PRaGpP?O zEEkXk*K)c{yo6#p@P#dUl9%6#eg9=^gLADPALM606ym)^bAr%sCrRY?i~xCCbX_(u z+?6zVHeS@sH3KFj(3JLer<sZ_l-2%%TGnpj>IL2z%j-aC{~SWO&mmbi>klB}bLDnN zUqhNI0bOwVMT1(`N4p-2${y`9JJo$}XV7QZ6NpVTEG&$9vH{=9Q**aFfASd(%{ZY* z0ew7lcPgJoD(8|lE(`dAUYQiyKryRhq_+WJ1J`#@4}=xNL!ZJ#s5&qmp6~`UC*j}J z4GF?px(V23$RfA=ul#)3b<GcNoceDaI3X+hi0hbEE+4UCpf9K5-F_M)-4GG&0j^B& zMyJ4%jH2I%Rj@ztrHT)O)^=wO`?j^jNH@u02V<xz_ap-wix-zOc;G46KSrGTq3Txt zxpuqowZRs8c2@W%tfb@gv(i80<uPVm9?$<6s2Bm};3e2V=9iZ9h%fFTX|~-SKPwn1 z2qassL1$&_=eD;kXMQ#wcz-+ZNKyo`JVeLDsbCdI4~XTy2sRYN!4r^^BNE3=p0Rui zCUE8C>>AUW*HLi8MM6@w^;6mLIpNStxE+`zr+br#!EA?Oz|#TFY;Y=RoEq`^jUiSP zU`&dbdtE|dVIhxoq#nY?-5L!)`S@@U9E3iCPd1(OY2WU05<`IRxw!P6UD%TfP%P(3 zlW#w2q)ivbxSCN~18#^hxYW>u5T6NPwus&0Gspr{0H=iSl&ye#BXahy<s`SPTvd`a zBa5bS`b~uE);0;jX)y`J?jFL4<(`9~DMNP}i9mpNMCX{+(GaT|=&<`_y<rhc+Q+$Z zWA~gbY4oSr<!kW`@<{65p<lmhqUd#s?+_Q)M!<Q8K7IOBV&Ek-0aEWQEfet;9(BIS zc2a_dVb75#`6S2@#jO%__J~B8#y}MRTu@PkBz7t9fdlVOHmYjPNInU3ESj1Y5fejn zsQM<3I_{FE`HVDM8+{A1{2nAnk!+{Uuf-LOhG=b!G=j|$(z4H7EiNc91?nN8+_<?< z+7{nZJTgzq%gbX%r*{ATeF;}V?*;?^llXh9x+l50hiJx(s3mgHZIhZ_^G2Z_4sRMG zy$hj-2Y7SJh2*{mC5BfQ)hV7l$v+xo8P}*>*Uy{NtZFMp)p~3G3?6kZlZnA^D_5-e zlym_MqnjHY$%VutR;FJzC7Bh`D?I{Q!_!4ci}pAy)J3UwAGD%f9<D*|R!Um&#REZ! zE;OxqCMqM1OUqRW@HYL*w;Q1S_+6RohiR%c&5}(=@;-PHiz}pmyP(p$=mlfYv#{+w z|7Q@qHl?U)-lKU;(p~iyIn^K`o>4_==e<C(IH(;h6XPG5zDdRf@EMqdikIRt>p=Pg zXomz)Kp9boDIvwA@)+TYh#hQzN<1tAT8V$)1#7>%@)8WxC`k77h;wpsauuXCMR`CT zLRlo6icsbx)X<Mc;k6UTuXSGvg+<e1e5nrTE_df<<o+-7v(59e-Ux_D5JfE0x?wVM za_*o3;vmZQw7kDbnmG_-RT*{`jqty41n-oT)I(yg!u|!HA_()EHsF)0wRJK&;c#TR z_Jbou5KmsBvyKK>@jr0&6@fF@S!U=Kh?N0vl*obAae6u^H`Ol=-{g`doP$m4gZ*+v zGrEJs*@R@|Fy0%rzv)^?u0tyNB{-wyy@TL!X#}^@-$~4paG;tZydaT!Zd!9!MOBqp zR$+bBB<7ZZrmRNJug3eqh=InWjl<F;0*R}54<5b(Di{xM(jo~^GPK$A0<VHbT!`P# zbD)#BN2X{4!PKYlX%RBB?%mZ8Sdd?1zsMXrhOYK>zf6O(o*SPrA5+)|a3C>z&V4-L z4LL0oO=bOQd6c~VbgE#iL5{vRQA^Nf@l&qiYE_^%cF3l~E1d#G5MmUJJD_9Ur4ou6 zeN$0LIvUrVVE<89P2tRD;LxcFzg5(8(IMmJiVe5^lO=V4Wn1TVTt$n;C?QJK`B>7Y z?}X}Bb<R_AN7P`xYtlktN-F`Jv2qqnJoBEO__P^<wgUl?79Re^e){-R;Qk1YN+?Rp z2ZhgsO}wWUSK+3+KJ5%93jByfbAn-Bn`IgX12|<>;zZUEsf)&H+HBvsnW*meK@kZh zM)UR;;)UeLgB8Y^f*Do6mP-f`PaAY7b$kKHsN4{0n-5?H@glmyq!v_e*Hb0yI$3N0 z{B=UszB$Qf^5rxPJh6CtosO|nV^lME3hd)<qtzyUUM&PjH3a-IsK;QzK3SfuDQ|~` zrN84yS@00(oY(mttT8YxP9a09!7AxQwI_yfIPn-57`kC0vGZKwB{*l!Sb_YR1%@^) z{4K35#d&J<3xqCiqd4mGtVOEpXxoikE>D5)X`4#BU<XfD*KJn)E1si+YNwhg@@(7r zl_Qa*fZJ4wm59rPOl{x^;`TT7x~{z@uClH3YX0Q1lV{GHd1iKELpa3F|4+P=nVq$2 z8V1c6%l0B-D<dogneq7c?VH?*6Q99{j*d|bio30QNEIZcY>Qe0QkVlo3u{zg;!RBl z`@_t^5eGj?y7Y3}1DpCU$ecOz0{b_f-6Hc8N?;ZI0HZLjnn0N)TPmAk(v+DtJ%rVW z$C62um*1S>wE`X{ufL(x9W-AL3O>OZXgJ8)#lm<9K1gs-0*yZL<D%S>Arpjp6y8X* zYQ#g(3?zXO8j!d)Nc4kpChdrQ5Fb1n@tMQ!fB<8kk1}=l#KfNlPv`<erl%B*+L)1w z&X)w&EM6-d{u<e|pt0LM;27Jdu1JFc#GP0w-86vLFf2U02k%=u^V%EY_(qM(n)vSF zFJYh9o&p~Wfz{JVpELT?<%tKb{VCeA3{F-bF^k4>xDpmvLD+6lv8w?o39CeWaK|5R z`U2V`*<s8Sgt!v(F163tgMk(bVbI5}g~DHkGIF*2-dhOXx~{zN)#lG0*t+$7$OwnD zi$t^47FVs2VEP@8{?U~0*d)${bxL;48Et!fifzw_e)krL>Y*h@sxz&5t)|tX5*HfA z(+T{bun80*YcM*^AwjFchd!)(Gg;nGknAi1wum4A{Azf8wFfa=0M9HKs3BZu(2Rpk zyTP3XJD$(anHv)-zWY`{J6Rco*%(HPF2aj8sUHD%JDapiCMg6U=Of{lfD9c%=r(Li z;=uwOpvBzD2gRC<PDfS+j{7lB*O|Q824)T2mk=nr4Cbf&-~%;iv2Q}W=NA;jpzVh> z+`FeH*32IEpz(BM5AvN|gWvK9pC-I5I7gYJOf)hVi+p%}U8%{Y)kPtWglSg8i-e&@ zg-B$y#dByxy1+Ps2;PGXsfJQx*=GTpGLc7+d#L2w$p8uYIe)XbtDKLmmdFAE^6&er zP3`l=r4|jImEBbU+JdO_D7AXTKG5!uS4kmmQYNX1L#p8?zksBR1%TXeAWX;PSROqG zA@Kl~8b=r|%q}X5L*ec(z~A*V@G)9W3>wl}3ky#m)0fIKgIB_^os%-W_9X?|kIU_E z<T9F;Sj)3#r{W3H{oEEScql7k>N8_Q+Sw;2d1frb#ZhQ~Ih;pN5x`lOZW9xrXdGwZ zWDKZ4)ADDo<>unL2pQWu6hYoGdHvGumCU2xJ%oCIq04D(D5sUAtPm>+rgxNKYCj#X zAB)hCFADeouIK_*{`uvc+3_O-Z}<y~j=;k?TC%Ua&AtS7Q&JQ`5UbitxuUU|otU40 zbqyH<V@!z{jnTy|q)N@tSPAI9+ueNUHrInqVu@c3N|vu#Q$s{Rh$t|L+e}`tfHTQ^ zud&%DGlzss+%hS;Q&ZIV6!ap{H5w`s26tFAltbG=yCep?peiO8oU&JY!}O>|lw&v^ zlHpIMcRe2V?0S<>k$Z1UeW%DRf|2?eGW7)gkO62%$|v#8(m3lSrTvBOJ$RsQZvMK_ zD7X9<&qJsoZpd1KqI`+``c4N1ZZ4WgL9W;=X88v(WrIIka1Y#l1uc$uaBR}qOt(mP z-!@<r@0GetukZ>@t0GTbr<lNbdZ8>J>Mn-^4@KAx{ROcZp!kN8z6{I8H>jH}xOMB{ zY1)9FkJuDfj?ij9Fp;3jOK1{ghzxH5Da@wPhQfTU6wYJ0qJTZz)32&(F>JKqnxxWb zf1?iA5LpCo>6jA`HdHuPSrs_^7-v5uLyJ3d<OZfl8YY`E?BX+`)HSmi!7!+_jQBZ7 z^PPU}g)ik578Y)%E?KsWiZ;&Y{A@`zW%mbqj(Z*+Nvn32nDtkJ9!<GaUz5dC0h|E% zltEvfak){P)(T3+F{&=Hyi(){oyE3)Fl=&l6GLe<Ztk#WLQC8z8;rm7%^V0+1T0fP z?^Fr77*yU$2~lZq3>v^i!_F>fK>G_AVoz-~Qr!MzY^#$Ce2AmanW&gGp+M%s4TzE+ z7Z$Ak?nFV|cQ5cpd0`L@3HB2zk`j5kQ<{P;+CHgU<D&w{ASqFj*)Et22nyjLj4sB- zJj);Zk^BSy7@2oO0SGXg{S(#dU5;j8^{T>Rpe(4X=Fm#HoAaB(ZjAKZL#IF=oZ~Ys zi{VMv_eKC_{+I+gE)rN6@VI>E9<0+Owr8U!pGKVdv%9-9dN+^3Sio|v45YCcLft-l zVU$$aDMC@!z~z~v>(<~Xy214a?fR?8cnYs-co(VygD79<jhw^!Q7U2d2G5<}cj8W1 zu9=^TSZPre`3R6Cf>r<8VKO5@W)p0>EAnS&V48_0DnxfcK6r{27u~Pr`#P`I8c=yH zW_3sW#~asAIuC7|K3nCtje2t$C9{2M^96-qB*JQm2usT}-6>kmd@O`_73{NJ7(ii` zI`V<t-BB9t|5Z=rT`LXd&aT?dKSQt>p(#Bd!un<)Vn2MIHjdZ`8qhT%QBAzs&^tgP zD8YdCgiIQCzOl$0x--qB3;M9(s4vN6bbcL`N@3<nQ|TZeW{>W9aUfc~SeLSus*`80 zAfV?vQQ;kc?#p3rvJ;w+3B$5wW}jaiUa-A`+$R+^B0vo93`?;ys)ea#u}4DPwX0H3 zh1@~L5HSil--n2wWb}ksFb(F0{nlm0aTQ0>D@oHS$;o+#9*Gd%RT4I%n{;d$v37&b z<H!-rNfC7SzI$U79TgerLJyZcKj%o4R`0#+B3k?2Hdt3G*t;AP!+akp)ZW%8f@bKD z!6iIFkiSH50OrYh6C4kFgdNBJr@iljdrRFB;U>`0IP}W>Sc4-BPkr2kc@G$NtS#U{ zIfjZ;WYYldY;3YKn2HQc5lC(DHm2<Zy9s1n2^{sUzewhfKf1ajg3D-ANW&DsVPegd ztstNiT73^V6g$qxu>XN2&>?c|fFq_a+#Sf^H=UbAXoNhclNZfu<3?frGsn)H>DX4K z^&n|)Q~V$=87^DHS*Bawfv>mQ&uuAg)p1`V&Tn>K1nS|2cfTj?4}Y@)4iXG0^#tY3 z1ONItDJr#PmVc;eeTSwLp}&)NWaO=Umj2<D4pP)QKt!SvHE?#+3!wW4Cio0cmwf)y zI@+=sM7=6tQs_*?&7!H2H&`0NNQ_)sZqL^m#M3`}zWfeS6;$_<4d&a~Si*7vlb@Tt z^as4k;4Jv-uP&GZipJ7Ok<Hyd`N14RCrVP2p)eQzoI2D5+koj%KMdT#X30-Iee3RB zDgaff)vSAOkkhd2ETWX~qF~m>NLoSjtATw_C>^N3K#NVzGo*|G05VU*g^CZWfIk21 z(D9~n=5wc4&>5W^7uhyEmC0L-$I7(K>g7!62d2p_Pt3F_1%PyHmyr1a2Li1X40tri zEC!Ao6fIh6r^m=v>#|@f+}*wdZy08EpJT3<Ti*BQ%t{2PB=t6JIXR%P<Z}gUNFbrA zoWdqZ!Q#oPko*`c!q<xWSe&YbL1r>U=glj@nV%L6YJyA>qk0f|?~6m<2eNn|tW$8M zV%J)B7QB|Upk@@EjA`2_@NW2JLA;w2WRDSaf((qgH!^hL%dd5IW7Z>bP3M`R0y5d) zNJw)yo%l<GrJEaHFNg0QUKcykgXpI*xvty1ITqpfUwK8Y=-t&xX^pf*rc#}od$$S; zS4rmoCU=(%?Y6$=y=PfeSeQ_9|0*vbN9Sr>4l`b#$Nu+aNVgict_%A7SsCcFAS<xB zN~Wpi?Ij(W^BjCIw`-oKT)rMEK{4bx3CYm9*2quR+gDJ}f54vsLJ1in%<k;2ONnum ziy~Tip^Z-{vEa?_(*tft?~r0t%p%Jm^fs`1d67`F_b6hBXY1CNxm06?5%sUe2|<cE zY7Nuf=!m$wfhnp`>Lk;Bg+dI!MUeaprLYIIM-3U;17#5nFiI#bNCcR{iX#j;=~1$0 z$8`X4K3DJxk{Nmt41$vG1g0uwB7zc46oMu}i6Nd+(U=!Mr6e)*$BHJSTFk3P0sQ^H z*7At?YtT89(wr<GGbMKO9XN2H*=Dz)CuE;@oSl?IzXN4cvYk=UYzQUjos4lnGR2hk zQ1;}>D$<O#*zdqBAG*%+VeaP4-sYU<+4qiU)~4&Y(c+k5d^%#Gm-H96G0iT3@*Y10 zn-7<)4czy(4+squTEZKg7;ao{f?*g2!PkumhDYrhrDq0j5^0(~-kt#0NH_1(xCa<f z^}R<CTV|iUx%-bPlg`3f4?+;PEDB^YzhY23vBIN0mPmK08Dbb3m5h5w+lN_On)o5S zHq+}5BxMP=8fMaIHo+dUK{LlCi&93$x@i)(7>G3oGj}UD2iZn}_PNk2w7`iE+O-z2 z&N#glI=y&M6%;CQ;=mFtOVoSxSwuG9faQgehYYn7QyFN@z7*bz#9Kxt8#>E_De^*D zp?EP=G~j9g#>vLz914Nr>hN)0DIW^<1Nw7D<_D1xU-k0nGV-7xt5wkwfT6I)K?bB> zB>)tb3@%w@_e9}~?!@B3v6&L9v!5jLsED8n$SBcd>Kd~_BvBE53sM3fm=Q?l+G&<y zEP}d`P^};s^*qtg=N(U9OPWe@kOTTo%!uib#*ugsn3=i3*r16sLt<c<(+w+0If)_Z zmjri!ztDbj_V(qhvD1W>f~!Cr>>hZV5Cro@Xb@y{j&a7V@j3dPz94<6m=#r+0H8k} z)daGwzoTX`lf(-&ckx6HCs+%}L!CHnki&@^^~||`P~sJ!#>n`oGmHVI=$#y^WUz3g z(b`T^1@-&@1Hi;&^91Y*$Ydo#cwjt)Bs^Y7P<Y@eLP45i#s_i_esJD>w0)%F)*XhH zn~8JpKV$UlIp1~Ze=4_`eI*;C+=NEuyfJ^iE$ZPtOFG$S%>jOGbGEyCF>xS9m?nqu zTH`0k>lnNsM4In8gmMIixD@eLhKod~u(1HRXp~Eg+=t~e9;nd-eZB8F()h|w#-}P{ zBcr7A0?p(75s&<EmOdhe7^DD~hP``&V3s6a_%1?%sS?u(asYHJss$WQWWti3N*vpB zvjeUfIadufVSbM7pzUk;d-mk#=M$BK4CS{!C9DT@t1n;|MkJMR9jVE-^;v@-80!*^ zJV^VA4cY1FgjIFdvpTiltI3`W2anlMNnx$w-w4tdwv>28em6iQ!E=}Fr7$2%5+H!C z`kB1%<noC|#e})Z!f3W{CzQhwuw(MOuJ!Pui{)yB4c`H{Wehu;90ow5zahlhawSG5 zi9I+jDtW>AP8^(rlbsc5R;;Ou7l)mW4ZTz^*e|cdwA<i!H<bvm3R6&R2-S)4)l(Rq zfL8H@r0FOy80oDK4}#apbSTB>hZ!IvvQ0GUE-?d6G9o73ZX>0IqWX4&ye^@Q(Hg8g zFK6_LVgf{)5XRt>tdVGlx(xN4xISKmgj6RQ$rDGtDYzvKDoqVJRs^%RBmrt?JEf6u zz<rSyiSG0?_C2xVjSVy#0P|<IQOPL-qz=Nny+D~GH4)w!SFwSC+$7g+5rZgaqFTJZ z9)X5f&@kc>CEh}4oiM<L6OtQPCLLbqDg-%tlyPtBI7uJm|D~y&#jTQoct$6M)7y;^ ze^W3%CgZ#Y2=1hJrRZ8cAoGSWA_7jTGXzCoGZJJ(CW?7>>^O$W7i-U^J@(RCgyjZr zVuA!lU<^640|7}A2aur#rckS30d2h2`hY?3vOyigI|;ovOL>fb^16|cJj4LpZ+ZWF z{k6ZX4@9(9*tk)}gXNi-=J{@l(#qwef_=~amgk8KWy&7UWK@iWCy(0F(sCqXli@7} zqLsz+pO51ipmINuNnMb52d~QeX+LN77B=<qvC_6CCJDES1@kjtl+@*h1612$UlmUd zl`9YLy)gOrznagxn0(nr&3?3fAHbp5hi%*QboKCSGWoCSad=71>t~JJxlI4$xtjJG z-tcj@Df)9cMBlxfotq3#rCEwt-CpF4PPtETk;|R`nN2wVV&B?(=pT~rwY<rZik-ol zG|53XwKr!wS_8K8Py9|7&aiZE+Om>u3nDP9v_kGO;@v=Z`CkKq#ZyrQOL3vg%a)wj zeoVKa4EM{;U3x<AkT0wcM!Q)zuKIb6)r`5zi1k2JwB|q8xGN7ghQ2v6f0XQFk9sk7 zmK7_?U==8Q*unoph_q+@c@~iqM!GA;`)Zs+j%lS@38imVPL#od>(c-9icGu+2;uV= zeR4UwHeIN5xyR_JcPx$zX;E1iA%KOjV3Pz-X`or-{<F7ytQyPluoaaX$*hi?(6388 zy|+F#gnO5oSAUK)?P}U_&4u3$``;~`uuKF2U*ilX>4vqBrZvNF9g$r=Gk??`_C0j* z=5b5uuJEF5s+gab{*B&hO?C3&E8p(Y@mxZUy=1py@aR8O;G<VdpKj&m(xg53{Sobr zSi~*FvD~K(3_0sS>_XisY_}u_ihzoq<j{c)^yZUA=ht*hI&_efSK0|^_&f$%kbrYK zsl4{0tgqvcZUnU3oSn+nvY41~tFq3>Bl;RV;dDQDj+@R+{>iMf#PoEA9<j&Zgpi_c z>$?Bw_R5>6HL}k|wP+96p3D!49oOXA8R3w_GZBamE1feKesi#4SCn>otHKUe(dF}g z%MTL|$ee!KAb)LhbKeIaWj7{w50A%0s;SdiKC|*4z5wM-V#hUv&3VSUA1_=!K=L^k z?_c#s@5^u9xf2cR0@0?px?#G)!2(Zl%)*A>&ggxWjCr)yC&_WC&u`@0_E^DdU#NmG zSAjzRYj@;+34x?g<D7T5lSAf_UcXH0;$f-ZcwQlwbfdE*HQ&)dKZG9@d`pydiN~6G zSctT>3Uz<jB;iu<UN{s5J7)b3rMGd1*K!C-PMmok|Ead5uyD{tZ%_%|Kf<)5n(V^l z1H6M0>@0xW-k~i4jr(5Q@)CR65%Y|3<w_OsiUh)<8_p=cIuaX<u_An2x;`)f15>ke zW@L8t7JJ=KI3&vm*o^aSvdhueo$$sWyJ<AngczO@PO>*$n9Rl}tYLrii8Xg^3=Vr- zGX5m?Vc{qvo>GjNO}wZOKFK(D^B<xVk9&Z}CA+>|DVOyosFn{CuB1&gZ7cbn_0xrx z=|KPmq^%48*^M_NL@#;Q#HI9)oVUJ>kv*9!SHuQ3FkJhSCjP_DF(R0)y^!Ay@rt@+ z+GJeTi!zWd*MIJ~nlau7ejMd(3%d$O&pfiC*LiX4pGhj{fQzobRAc(Un}SfU-^%ra zlMEjP1oQ-cpko@+|7kC4lF6eVJPaH}9N-zNCN^6B!*{lx)0ICgRJUQx>L+(rkIalA zTGFpv-^#Mv<L}%18N)tDOiU{Nx>w_TbE&L|nS;wi66Y24f?2zfhu0nXap0Mo%EdXS z?v}$;DJ9nWGH<I}GRHoKRg<UqwF#70K43R)%<f=|I(qk2;C9-p`uk);{(q@J?pd?T zV_%`ve!iZrmG^jG;^G!71ZRGu3sb<<)_=1!!$#?*biJf-Yg(g>v{D)GOI^Y2)a6On z;(z(>UXhnc+DCae&VO=;!&W^$P?&3+J*9TtzRf(Vi;#S$d)S_HxzBG+)E}0svWyAS zA88=0(1%y$?Dzb>mX?w`GFRI+89oZqpGn7k%dsuw;QV}ELBX>B=HSc)Zsbhk{xfcB zsh5Y!{IDLTrpJa9muy%+VDrN|w_sP~gjuBBS{x@)x!n23o+~W=o?kIHTZ6$m^Mmq; zJP%jF7YF|JaAY4J;@xvOz$Qb19cSBo5B6MGGofE_iuX5mzS+T>HqDWza5&IV`7_*u z!xVSGDhztu`gwfaiw%WowldYx6<%BYY|HRob>rxa67J*KdBT3i?wO<{<FF{z*l7+I z&0QM(6=lz@Zr%PX8N=BxMvGd51?l86fVgY*=x2WWM^^G`G!8Zr6-ZpNR4(tX!Ib@o zsb*-H?AEP*E|+uHXHtGyJ8>IM${1+<@7vXat~AsdJAFAv&;4Qcs8wgcI=QpA82%Y` z<YDni0Q`K$c-eTrsgGS*VDoYeK)Y4oRJI?E(dQ%c7v0wV(@A%J<NmVr##gtiLhjm? zl`d!e`rz;Vjx$=El)-WT_intQc_m+YY13TzNac{5U0M0Rf9<Df^UUKF>$&`>-);Z6 zWj&D9bkJ3QJ3m=Nw+i>4K3&lRuKH7L>#5nxIJ|b99&HjCW;1+G#@t^dW4Ds0aa)a} z;Vi{tr;ptq>=#+^=})Zt8HT@i{I9OBAJD%`u#uaP;g?If%NE>X|6c!@dX#pH98z`K zXQ|-ZZCn4Hu(oaAPO!|M|JZbM0-as%;R<0omxtzT=trJvTwlww``*8nhumZCi<`^B z(yYim7G|WitQI@2h3msmbQ<<sPI8Xh)2F}xhiC|x_ZR*oUId!Adv033-vNZ-&cB20 z*G>Z#5VlXWft)0}b}hGEX#k_eKJE?Ji?P3cqVWDkl_NLEi{N%tSXg(1!#@vPT&x?{ z;Bl$>S_oRrPx^jq!Hef=`~oU&Hq=ms=dY)aJ=ir#-AnFvV&$)8-HqIPP+YsGGNLVB zo?L9gy#?pEDc3<JF8Pn$wbNkJ8j~7+Dj=+t5=Ctt-jMBoD#1^X_^*X+&tnR!s`9A+ z_6^6vJxdea{;$W!MFtN;Q;<_seEXj?J?Y8FiUEMv({sbDQQ9K=D8{!KdjE3#>AxjF z?*9Y>JEgNHcUZ|q_8xmEZ0CGTGgt9nQAb|nizV&4<{9#=Q3~u<l=5Fy@Yh-^9}%_i zt$F>XpIxNL94}dO_rG3+@{x}Zk}gwX`Njq;-Y#7@-6(t8yTPN%6##B<YR6y`&|INI zkhAW%;9pbpmvpqfr#lVz4IvL;|BpboMU-!HFdI3>1l>dobcCMfoE+Fr+J?l?9_xg% z0kT+QF5s2#f;~8_Zm6|lv>WMLa>wmkPh)Q`#6di<ZG!Z?*jD%mzM;Jijo>+{;GQWU z(}taz7Lb`KT$aEC=nZ>9L0H8XmM$mDFsKpiwC#VTaG$}l?Ktw&ZQ+V&f!HlhpQwNw z45bkoKq%Vs7_?=C&c>v6B)tA|sPTF+M5Dz}&nXy&3MgqH92q5d@N`m~l_T*C_5VqZ zMQ@XZO+GB4W?x?%<}Xr8`G9=#k2nLz`Ue?X06{^lQg9sAkW--GTk)B&VHY)z#Kfd2 zy2og}jJNG+XbegN#8fdI10$C=aW}xV0YcRP*oq@?9-4~Ky+o2+UZ_2nHW0t|IlX-J zY`xaPNWBxoYR2cJ@5faOMXFU?R7LFNK_7@*DES?dpx)%eE6YLB<CQUEDgnc;n%>Fq zjS^1-p?Ktzr8bmwTg!PPnOurpJa_va$;3#fEdOnM+Kv(FgP#-J0{>aMV6e5lzwC6! zk)|NQP`F|&^l-93|BfQ?2p2WK@(T(ouCuuHFZZMo#Ue)*Ofs!jB>l))Ii9b7gOs>K z8H{cgm{QJ~9(o_p>c5aiFLOGbX^hiSO`pE(X!_{Kqb`H*fos~Ix!Y+onJJ+gwgwK! zX9c{yBWq|lUbP)!8)AP=_^lhq!M?V;=td}R_B2R^5=joBD)8hagJ9$wLlzta1b+Zd z4{(z8S+KjkeYRId?que>&71fo$DcZnov-%VOm@*B6F{)r;!YC@AS3#k`oSL;#1k+0 zNP_{`q}3b}nnY&+z2ovp1m8~Q)>u(#rL;_hz=k-<vGWVHoV=wCrkG3YH+cb#Jmxvh zW$-R1=OYn$51M)<Ig$tW%sj0NPakpZTrb#Qr1q!KawewKj3pCW{{j4-NP4i!Pt&lJ zX<uzw@UZ`SHP`9MUP1y6bex7gNLh31<M=xm69Z{eLyQO5%rP)nW3c9NWw#nMf$0Ev zPXIB~aflb0`vxEQPE&;ApzTQ<f5$WUw3p@;2L8yK3-BIuhq~o=@7|383*pTLc5z~2 zLbm`~*)9k=-Z-goXGG;Q>QlnsVfMnCoFLiO)`p(|gGpv6QCc2%N+K(tBxWK-Mcd%* z|M7adKYV!F+}u2<V6sQ@Nq+Ns+Fz1amHb?kkX()WgNnYx0NSWpW2==O!9QoKWRY$E zEVQV<4`=16zxi(4F7c$>apjta$-M_H+n%01`_RE!Nvo)0;GW}NM<qhWo;-Onh}IrM z<9d?y_oWphl1dsM@63sK?T~f*4#O}xm<3|$`>aOHT!9P9`Ai{%6>(jp<e(cPgg9{k z5^~-Xn+1Xq@ZT7G5~kp-^kX^6-aI)uQocJ@OSLx9;%mYNh9zIsltqz&&!7LQioJWt zkRA<jasM{2`v3a$*t6y^erZkIU1<2cL;2#~9U+I@VxXuk#q1;ma&mO3qa$n(gjJGo zasDxap_X((0kTbG?z!SRA7u<jcsJ-N=Pvo@z7bH8*!qCo?rMgqdiUq8QMzK&rbT<r zpQ3qZO%1+w#9=^ky63v<x4%)wT9!g?xTKEWS#@<kAJ{Z9ZWk}g$7O<H2QuPK_%_)J z%t)w(-jVUm&CT6Q@!~mIqb$_4+;H7Lpk&d*{{hf<*1~*TERA=v{!S+=lQZai1VLm~ z;mD>@NV9M-6!*e813oP!(<K(3Hdr}ov$9}MjyG7ay~x%551V>QUp9~wTWAXhnT7dV zY%%jZ+b-mKRcJy5L^C;!5hvChzNd$YHUItsd=38_DtSYPWUr(xAk?YxCv2k0VF409 z(g#q57Z(mB>cP=h<b+c$Sx|#DU;v4(>(^xib3}tD4l^)#MIrG{XQ7j>HZ|WoX^AQu zq&=KR@M{a-Ma@IRV}LS3&asj6CX+Z2jWRW<vKz?hHjSS0XX|h*1)z~^Eo+@`D2qTS z`{jfP-<bs@HnEbWaomdN-EEJK6APHE3WOx7*-=&Ez5XkntOYp)Fsl)Dd0oy0t+g9B zn*67G9dVwf$uqKQ(;jT%#RgPWazX3+!f?^!znA`%;kN=5d*b&d(}`%>Th1up*k}j_ zeB)x};J#Nf|38$y2|ShS`aW)V8kI(=Euo@FXdqFB-Dpvfc~*(cDq}J=4+<G0QzBEy zoVj7!nh=>HR6=HDp8wag7Q*hF|Mz!3&gZjR%X+=*d7t6Fulu^Ldo!agA>fk|Y1r6U z{41;jMbt}f*=stkSi5#6fYW8aVv}C%iMwIvben1}v_)?cr^OwIr^Hy?58m8Esf9RK zwU6n&yLY$oEVdwmwqsxBpa54cAuK=?=LXzk9l;H52AiM^l$tKl22>=8voNXE^<@)L zF{_{m8O2}$$-|yv1AnJ?T$~qrYh_zxIQ!uRNP_I<Y=FuKBxGfXg%Ud87TBH#h6rqN z?w`wQ2iq38i$Z+t0AV5m<8N<6zDWu`I8Hmi_n;VK8#p8bA2qOs3{f<>1zTXkKSMc} zxL|{L2)5IG&}X*9k&uA|zAIbAh84>S-4^p5o|3fsn_=aOSiVU&`+NQcL+(Y+rZ1<3 zb6j(*I%;B26s{k#1K}RP^j%`dY#1MR9?Flmy~H_Me6;^%U3p{qlUD^_&U`cc`_wAn zDa6T;S;QhDul&Hq@DJQKh4$V%Fa^%6orDq%<S#UHgRU_>Y=0IF3y?_gZorE?La0ZC zkw+x}roauykE$eq8LaiEv)3_&Pg}nxgDuO!qa>L#qF0TSO*Gl&(nO@rH3!9pj%4#v zC}FQJVdLw5N~mJw!IsC~4?FhoAm|Wxi8*Op5HSd&le&xyvFeDQWa_7rGQ5FQabD-j zE$MLM#X)*~F{@|xNEsP1?k9|6wSolI`phHsLp+kaPsgRX@kqkaNQDQNx}W{0x3q2n zErh*<w31CBT8VcCY~bHPIqD4%3jn(q_xcxswtI4C25o@oZrw_laoi3B{<$Oc3PQcR z8`>hnxDbl${)NxvQZ3Ht=onwryCa%z&-igL^1wn2H2q|1)A<*a47cvwNuHS)c=xnG zH1~MO?u5nF{V!+rPFo>#Y>=HA&s@>G01EdXlC~eJl$SmRoNsC(L828hDo!ug<@@PY z3)$JUACxe_ccg7c)HeY_ihIh*^P673F1<wbl(y)B>F>KuBrDezdqpWGh6jEfe<tIy z%vX8-!oKo*b*aytk%|C+=25X&)A<*Sy=Ib$Yu(J_+xRp?cbXV;hgJM0&-zUQ8&=zp zU+gDXW}m$iVInf6++UfJ{9bBg=yn~Dc5}(y!M@aRZ|Ucg-%pH`L$I{1eEtyM_iF{D z74xq9>le;;p*fB5_KawjdRd9ZQ{lA4xWFlwCS&JzM9oj&1QOS07r{a9EisRrjK8Tv zo8UVhny&(QMn%*n^V3s1ke?3u8EqfyQUpl%=9QZU-v#KS>A2>P1GS?$ZB=1Gjw$VH zgo^{!GC3RPFT80<qR%GJJaKh8Pb&m3i8JP<7tBtSOCI~CIb7v`EBs>b8)KDkrLX8R zr=TID=V$c?6To#kfTqzz0JJHAa~<z_!Hvbmc4OI}*Zevh5T*aODu?pmVc+$f8?`<y zUhK_!;a#?ECTGsIImc&B2gXSFhnn;ZAVH(a{q8#Z&Wo0{PJh4*vbUt}$iR^WbM8I+ z^`vQ|;#8}isZyC!n_gIsAw`BYWg-vPJUv_1Ru&V+r`Z~rTQ%)bIB7fI@yZ^nNjEFu z;%0vqXq$OwVuPYSss3btBV~n{%?xV|Wq3KM3TzTNP~UTCX;n37R%pq-&Wa;DG0cBC z72SEJOl>exeSj{v2qHJgHek#~c1$ZD5|2EaN50S5wr3IswPKMc_Eky!Oz-ag^l*z+ zyQiN}YB(!)GupY1ui&G>XE1EjlAUe;Rw)rr?Zvmh$ybwQCP<pwhbGStO-VDhijQVZ zat7smE!oE&wnm0=%$fZykm;7-mgDrl#{2x1tU19+&i|#t&<bZ*%b{C5v=GCciSg80 zMW8N^Iwyf<>OO$mtR1LZV(?`zwc2)QgXaO^@+ZfMa+!L2WQh6$7OdEgBS<bS!J^i_ zw^Y9P+|Di3@s|QGi#muo?)SLtf8MmL{m&9f*w@RuE+AJSRT-{3<1o<hn<RtcNcl4R z4F@aaow=zna<&tI05(QeR?`{VUgGt)oOjsFs>?G{OOhf*d+w2J`|2-Li<#-SWxxVf z9%ZSj6aZ)}1~R-G5#3o$iEYQhM+Y5Jd-T{S7pK)*a&kHKh*^l66oUZ)ekx{^g5K@6 zksa(+Z^>S^Ayh)VUt9<2m*%e}^YgN!_aC}4c6OQI6U{_~8;<y$8VSw@fOc_SYjhq5 z5FNgMAv&JtU%xK?_PPv2!A%GDSID~>jE@ZsfDC?jUszsB@=5!eZ7%}VTAxuD1-W1H zzc&ItJbfptgg&t+8ym=oS|Qd$0Q3iKHA(oUIAkTAeMrD$eA895!;&3%51r@E-$-B0 z&$-0jaPc1OO%7+uAn4<iu_M?l(t(-iquwr-$!gPC*|OgcxGsD=<P4j0+d9uQJ-Ci> z;G6t{pD!bjLK1m;hD89+`Bi+99vfBr7}jo9jMl?91J;`HYwl8uBnZWhhJToW;w%4b zcz4%@6$PBs+>}JXU#%}@?lKa-p1+Q%T&u~OAp;ux?qjB^TH-(HX5S<cv@y`OnaKeq z+j_>)wFb}Ve)Fcg8#~CZmbE&rz|4Cg$)UydmuSFb3COK8fJx<ZVxuZjl(eU7nK#4r zR$Dae4+LwgreUmNurzox^K;vai$fQzcsw+BvFGqe;%sK7Ckub=3)CPO3vUP07PrN$ zN$p*Yw1EI<HiruK{(g^sy_#U`4=zKQ*IOdzH{<z}2<vy@N%q7kMlvC(HPa_JHM_z_ zvhg;Sa;)kO^AUR5kjx$5Hi8;0q_pi$R0|p3V`S2k77klHxf;pCu&Wub;{>xe6&-4e z4o^BkHm1)Lv)@kb;5E2zm)ZYku4GU1M|l|o>c0AU;eU%yI#hAIq!y;T=BC8p$<CZm zzgZI<)XGD8a!Hu8XtJjg;)p40AIBxRO{c=jEcL<B3uLnnb)rKkNP}awpUrocV+YZM zM1wbPo*hettOdd$sR@Cek3IwOPlP5;5KLmi3;^pNwlFZ1$|gK5;{Jl%i}&Yw(3psF z(f|rWxNs1Q6zCUAvo2UO{JDKU(l_pl8QeoBPoCtU0C-GETi(B73JP%kP(d<Jl)~L> zi{it*i*Iv3m_EfSjKRxehL<LgNaN@e&?-_bjK@Z--;P3ZM2gVF(~Rgcp)ULmE?oC_ zf6@yC9R|X|16S`wLxR^ZSp!l_6>3BOq0i{?mZZvD*8l@>%Ri>pp|ooPZKZb5qGXAe zFZ7_~N=a5d3uy>!fl=Ar=gx?p5#T=&XbJW8_eekBHuD&KAmU&!2mrG*%<c7Y7?ctD zmH`y6?e<_pO>lM@*6id0c7YU{+ENJIQbJ1Qv<)H;=}lmvc%iY{sRfHXuPsT93oO1( zjSyD7f5OE{DBA=iLrz3EYu^0Yu>|4!I}VtVq;+Bln3RNoLzqQ<T?DnLa}|%pgW-nN z1WdIfhyn~o#&(6m{|{COn{TQU`v%#$X&S}-Kg#Uwhol(RRLUKV%%kn_Di&3GqPE@d z!2?P{yBm8D*oZF9;w6I+W5v==Z#Xy`fJEsY3I+s7iKWGl-9n)dFoehnh?+MCJWgQS zwXW8DBNRSR+_krX;RRZ+YPoGwn2!a#>!jU*NY%hYEbh|^GDKrfjD3@gd`O|Dx8&=> z$*u1`p(OziOs=m)nrJCbRN%xr_1k$3RQQQkSb8ckL<+0#vh>F+<=(dKm^-8{8>%rw z2DHY)e6-|_AJ>~LL^EGl)kBRL`XkTQJ%*k6y7N!J1!^PkC;QXk1@+;ise`J{NmLK! zusRZ(SW*$dJOkpE4E$hEd4dXb^Y#9K$_D}y@k%o+6Oqz#Q-~T5K%`=c`VRt#&kUbe z*0MQDE@T4JgoS%$XAYZ#>$N#kPY0rFfOHx(!S&qcvk$;WhJKG2Y%Q?V%*{@lS)HQ5 ztPiz>>MHcXI7?OE9R0?NUjVW>GX?p2f9pDP2InnaJkovDr?o}1on|h({zwRVp0Wu+ z2=!bz$JFCGoB@kRY_R;m%}zB7f~ye+g_HyCc)xNeXcc^L{P)$Sl`<zox?gW9vtP0Y z-edYQqS;8!r=JJ);eekS9W>&!L|wJ;2-o)24Kp*T0>N%Sc6!^;;98udMBPPHAW?Zi z*odUu2~)?MvvboFrVdYFT(<ksfQ0rnVxI!l>?okuG!{x{SXap}9DW<C=?LP6P~nB@ z!_TT<r}H*2Z7u`HTy+g*W+sPbg%rmx@HKe(u)G94Fh(kxETD!V1bK@B|8g<#1MjY3 znnb}*nWd2F*m;Ccxji@KLXSIN&Zj_I>feixUoLO@a*>$8HDWlV`R>!BBXU(KJH6%R zzJJmw56Z5!c&~*^a%-NhqrEqnDbgaR3(ReZ-EA|7d>8ZVKx$0u)wTD?M`Iv9KEA@r z1g8A6yI4TBD6~8b#sXp-P70Lo=Xah1V<rqFIdDls-WuIdL6HdAD<=i{=J}d^#4#FT zS9l=>>^i%?P{)2CFd_TIy%l{5w(W$-ioLC%YnOIbctStbn}Eia+ipo52^75Bxm!BQ z0h4cs!XIEY0k{hsKX_fe@aA<@pMZ7y0<<?9x%9y#wM|(=!>zE!BeK?GULqY54}NZ= zF&D1yftjLe_XM{LE0kTTa%Wt={A-aBbo$k<UG!&q?LWHmN~)-+WH*vgbZQkFNxGz) z;V{Bz*=|?%$k1-#Lx7M@{PWL%aG2pNVM;oA0L9)wAx8Q{I9S?M3-oLd8WRr6hJ&}? z12R+jZsai7w5b}eyN3cG)VFq7AcH9rK^#EciF>-ymls#B2JYbIrr<a_YsRmYsX`3p z4)sAjOtL4khky#bxw9f+C#QnaA&&u<X@K#q2H?{t_Hm1je9aykk+J<r$=Ljpm(NGw z<duDJV&2zSFlXf`juhEbhZk5jt!8Wv->mSoKc7S9kl-nCzM+;xPk!xD_X6K8mO!A1 zTg(|2kZ-Sq81nwg`nS@3wPxzVVw>0{Y`cqWM1M+VswIa|=9=plydZv638!7SSM#qG z-z!eqQT5e9VsfF|4~JhG+v$8w?^@v%%a`xLR5Cg(KJRCqcKS5B<Q^aYEk^>4N%s*s z)-m-<v)qI$9@t+vH!qRuDpiw<1wi^NwdaAR{`0#a$l7Pc3&ifoYc(F0l<d^^%mrt< z+I7Q*4a5R(mJ6Y;e|FU?@I2>GXh@<^g!B@xA3$?}I%u;)Cd3-Vv1QN?HG=$+T{+hv zv(^j6R!&rm>jQRNIKp-Bw>jncf5s83FLNVxr7tx9&^@(ynh)2o0)&h!nV2?Gqz)gp zC`|SaLT@~3_o`}09W?TwpNTd}QPf54R9$~93cWm?{;$;G_kke3bp{zG@Z*!eDxVgS zjQoP(56gf3B{1@~FkGU_;)cKGIuqq4#aCX4c#Ra+!K<(Shwu`}c5%wq52%qx>2}UF z7LxSl4|##)-?9n%D*f?<kKUe##VALuAaSBI5`beXvs#=y^aZD1524ng4mpbt$G8?v zF}vIm)()P5fqWFwp^G#OTVG2udZ&c9UtVeCtk3xJGR$t&nw-sIF4qqH3E#uNN@LW^ zM`~~Xx#Op33L+n(BjnUQI?#=Fe~P=UTA#3(Ls>vX@Wf=6Q`aSSwV0hvcH?8MtaKdT z4K>hT`Unz(<!uDt$KS^q*XYY8C8rP6DB$y^jWXU7D4n>mwkZBOm#Q6q7~@kEy{Ww% zT-e0h9avDPLM4&Ayd}H;>p~zBn#IW|a>k*>3<-UR;yque_Az3pD0Gq$Is5er!Fr)n zpvb{{lW0s4r_3rGAg;r})l0DjlL(9WAb`e9dLV`2krTTJln2}Ef?#n0%}0}aI~gH~ zkLSKzg4o)!_Wc7CT6#<HqLcffmm!Q5Sr<}a*W=mIMWjUs#Uy<<tmIRK>O#Q0;V=W6 zm_`n|0Ahw>;@mfS-in=-=ti2s9eB`48h7CDKPF^+co4a95Je{_2=6RE5d(%zfi_>= zJ6_ge?#-;o(?fDtT=Wo#!Xbd8s(&>cpEnWp5*8ilg+!DSgdts%c^-JIB6P3lLGT!? z^6zlnC2k)?nc!Ne3a<`qTNL8uh;AdKTn=$L5Bw|f?T<k>D+oI<l){o`cRX(W4gEOw zxbUi~_D`zmgNDcpd0w$h@{0>#h)6B_Iepc~bb~brT+L8f+L-Z{V340V)l(!*s?_@I zN0J5f-9$-a)n|*Cs^{9d!BQu=eSvK86st3z92yP^JLYijgex#7nmC<ld`2J;ybFE) zvvG=Kna^y&f?{QD)jm`$8JC}w5!GGbdwK1|H77{L5|KY%Z<3RGliTLDwCV1l)@V{} zZy4v{c+!JOcx3^yta(z$03?v9kT{M%NL`(?F!Vq32uCL&oP>4v##^b%ZvF<E%D#C` zl}2rm2<_+^=2U6YIfXdGO>YLOscKToH!_@P$@Y*Z(|PK5;`yKEem<Xn<b_c@_)N<q z)~(&cb@l2;WfH}{n@GxH{Es$u6~+u*V|b{Fq5f<}ARaF86mYuFjMkhV9lpDK1sL3O zD6XQ&!*y5A7^MH=8mRH;_M)cCOOS{!a%(OHc%E>3>K6dX6n8}TY^Suh<WR3_Uwp+* ztQbc?8RX?B`2^66j&)DBh^LNS#l-J3WmunfdGgA19L&V;9-p9QtAEqT2$5Q8@LiUA zE;x-4^G1mx2nA+<3yy`KJ|-4>aw9Gj-{Qq@CL=oftait|3lnprE0zvUY6%(hgLlmo z1dy9!e12s?@r`AWb<7GK84A0`V8TNV)Scs=hEB(DG6M_IuFV$U!Ry4p{lAc!91A`r z=oS|Q5W@OLd1vt-jqjd|{hGIepr8E<Snv}+O#}kHE0raMYV>7zNB<7mF>h${)+Zbn zZxiJ5`7A1OSx#uFPLAVUeYfg;{rjEZmIQ?;j_M0>_GDQFcT>SJG{9TG?bu+y4k7ft zGNv9a<4Ev9yB;s_ODt<|EbA>nsNqyh_<C%NGfSR+Il2XeXKodzRb1~=CGRT!GxgmA zi)oIQY!H`Cug>CAru9+=RXb^zZm#x#dV{RUukS=f=RnANN(y8k-MWx3M3;a?XeSHK z29o>fM{HO4yR{-5`Mx@Y$j|s{>@IV?jPJgtzsBnzV8b@9BUcCpKEM$cuKkHmTg&$I zA4AQUd=gElK9M(NPr7@Az4nM9Qmm8dr}4_S$#?Yf-CfvHY4r*6tLfwPQ_p)OaTB$b z<W;Yf2aHW8B}9XBoR-HsWOcX1(VjH*ot*zV$!>!S;>~dtySm1L;RTb-frcf%8I7z4 zl}XN349r+Gl;_WTOTQHkuQTVe|Fvt49iDBs)XZs07^YOVqw$O+-23|&*p4Q?II1gZ z&K2<M11KbkaY4FKoi*q1FYVYH+Xk^gNvR`QPuGIvKK#VKC%E<W;;<DHchiBD+D|lg z$cUyZ1eCmY`1oxGx?3%D>V`s$pJ)%eylMf96#vu%2tz~nS<$>f@{o%PZSB+1@1u?T zXT`dIR8x0bd&g#1Qp1_gyT^CbOue^E20ex?Vh5G+@n<W>=cX1Fd9*U2B9C~2PG;kb z;m%ttHigDzC$vLH#?A3}pe^~M>i_f58Lm+`qZEoep54u{U*wDg>Ys5N@u~jB<D6JN z)ycXSb#Z?dCU84^bMZ5M=k!W`$E)Hd?6-b5Qx%`)8?}bdYbM8Bnb^~Fr9XYTiz0`_ zD(mXAxQWSr*+7@q94Dq}tyX#i^994dYNmg5)p%jk=UZQGSdaq}PC+U9`A<kug|2_& z_+*oIH@7%&hq*ZTFY02YtHqIz_vvJfkA`;-G>%imQas6V#Ri`h+I#YkByZkam3sM7 zXdY`~9QA^H<hYfEq3v`AvF<u(<crbLudk<rAKiXsM7dN{U$NLNnVcQ;v<!;w)<bm2 z04ztC0?==^@{!ZCb9b%%rfRGEmbLsjlGW)S<%zGR-J0==<}F>ay(ubFG&5*x$c~L{ zpvaT(Grf9dCu*KyEiLU0*n*jpkUEyo!_@Thq_qZ(k<Q4*76-Sre|>btMwQfPK!1yY z>D&BMzGGhPgxO_5#`ui8_3e|e!5c<e0nCS5x}x)B7@v0senQ^oyMuZTe0kYM4GeVu zGhVIBo2+Yvz2!@!J|54t;~!*2Bh<>Y548B7Y&jp78>2(}Ej~2po(^Yg=W7%ct<1kK zP2K9bn6>j+?AH9>2AQjCbXeZ-lggV{PoJ6%+W`KplEQ<Q_!HtA^1SI>58pd(qC`#s z>mb@GV2pLsAB<TE(dEZ!rJe>OUuh6ZMk@%RWcz)lPKIo6VNZr%M-{1opsf>rru)KV zd#8;9BRZS8YQGx!?)x|)FPj`>`fr2>KIE+)`j&ruh>whq)Eu>BsarRxlwDe8V?{!x z?V3-|{6(7ozz~X5RRMxRFC0OXg*|2Jf^d>UwphwjPDG=`JndwT143%JUdzUgAPrD} z=aREUED;d`Ce4i{fr!NGH3Z^+8efu;Dw>QJf?GpQ9HU3GFJ%aX%aH(>eso0s1wRUq z&P<>lSwZELLO{4v@%%9$YAFBUV@~U?FQ%9`5XIKIIoq`e`AzE}@LZxoMo0}dD;2mR z?oNPHEJ0?8(MTiyE5u7|A3ALF=M2lijxsIO=-`0^;Ffpv_4lK-=K)x;UFV1-d^?gE z#1ZErxYxz*b%iN|U!LXXkbh|w8hCu~3s9tFa-M2tXHq#Km%ny-y?bChvB@`T{(<mY z*LvBgG03-SP>ypDtC!!xxfDW)B|VHW(5oZ)0o)^LEC&sUg97>I2lU4+L_a$*P6fCx zeCkt_n-(`k?vEp5-2c#%G19@lssD%b5UagF;!QGOHft{1m?S~d+;@HO!Gi}x=Ng8F z!pLn)J-Ou(U+_|}wfb#6aVee|EVFiW-bxQm=Eo=L`n`R3#N^Xcm<dY&|Ca5AQE(AF zm8xBV+n5sX)$^>%ki`*ur}j27vM^BN)C}aHa+~siC_u`|ds}1G9OvJ88fCksK`7Pt zeI2^r%J4q5$aWL<6rD2VuO1<CXvj%3QlWZR`TT>p!=teRJGZ%KF7&5TNn#YDDWkS} z-T9D5$`z0pbduAJaFr@|q)rVDG9M<LUaULyoIT+IzyHn9`N=iRzeU<p+Sp-7#t1jo z6x6hGaU(N4Gj?Jjtg_$=COzy&#zyKo36&5g5ONF&H-`7&%;}H*g{wZlI<^@Zz7(;q zcTa-mczHChbZ=9z>C-QBG5Yy+<!F;j`k|vdQv|Ixu#ZQ;(4zo$6USp1_ezDFB7aJ2 zDI0(Oy%W`a{dMm1#;V9+!nkJaQ_^dY%s;uJ^JZg_5#X~r2aRF|XS5PAg08r|E#&At zr0xQzUb*cFLgG_`3U4_2g`|h4kqgM$9uC|R_6UrMg&wR971`92n+;^@Z+N`zdGPS) z{4NM>zJ<7zNI(tW>yyw5x97q5z6dQNz9*aS4mg?x0-9Qq{#|rp2?27gT|5BP*aCF= zS+1{ZTFKON%PCQyitQfk3u`WIizG+W=;dqF$J*h*!phoSWR$?>GtyJja4t>YbOB4B z6$Tiddd)>fu!4#peHj51WD#TlPXk^PD)1(&%sih6qX%iSuH_oIJkUS=5Tu%0iY?@Y z$?id;5o3b#m1m={BK^iV7zV)gwggSbHsawae3C;<OssqxDsI$b1vcaQkCGUAZ=}Z@ z6k-I+_X1qQ7}#G><ft6p_b^ICxCjBRDvD;Wx>U5Y!z(H(_PBltlqwVj6hh?g=UE%0 z`xKZQWptYYaV6L;D?Mr-H;~mG8S(S?*U)R{mR234I>-)~r5B%*sdZ$F+;Av_cgQqN zH}&L6clxYwf2p^klv6Tq0@4!BP!Zd*c5c+9V8QabE8DIoFf^f$pt=M+!1IWl>PcJL zWZ~_5;mz0A9o*4c2+~e?Jf4#p_HIs$=-n&>S$CeoICw%}gSIfcAhMP;6@#a9!=CW- zL{W(uL~Rxf8<G+LN&K*pgHzsjAUY*zep8n`IC3$Zf#ccz_3PKaV!e$P-Dk%3E#7*u zZ`VB~wH<vu<z@UUl1=VMG~|2y6lTs2P10MetA6Sf$H&XZU`cV#@fkfBH~!Xh(7My7 z`au6fLXkux5)Tdov`4c2k-KW4eLk4Iq2zUU1;~ETc`#$Y;RRHk2#!PXU3dxY&EK_@ z_ZK>jJ_Mpkafi%<fEljg|GYt4o@qEQM8Ra1)2CWS10OE4{}3*Hd0v$q(Sr;hhNX6Y zbnC;Vdqx`cd+VeO<C}p|z3rwP&@`@+hobeI%vmqA?uI0vaYzGp@a@Z321b<2farhQ zy=Wm9_rwl$T+QI!r?Ii4ch%b}ivz5&4P?d%;A^u@#t$KQ0w7X9Wn&X}`1G)xWw+J4 zk*A^8Qiv^+h;_Sv=)1d1uwc<wm2?wPK0VZ226emCHxb+?-5&F=SGr4;sk)W(yDszM zr8BRwLPKZ5xu(FH%8lGZQT<9|!#;y{)TNv6wn!%U55ZB8(`qfb+SQ?c9qyse9d1hv zDz;MdFsCsxK@c;hvvr_*1$OSM*$wb*G8gB&c`X-P1>phrSy7J6^WxmLt!U&aOcyzA z$!*XLNXz(aJPcOIE?ETdw9t4HGt*83h$^seap*dn(XQBY8eIX%V!e<7Cn&8r16W_c zX~&I&SdTy+&^suYP?c?;F?5!3Y!g8|EA*bvYI^nu$*5_t&8Rc>3hejC4Mg7g3nxCS zgFkGmmil^7`?1iwZI65mzf5%nI@ap`1il|{8I=M1ZH_l0n-7-?<Rn$8KCxM4v?M17 zXvMRjk)AlmQcN@s?nKqj&zF}F8^JUeX*dT%kkeL^4J43}rL|hS8Zsbk+FE_RSlQ0q zgV<pt-BIRPDB6qAg!B~uRE3glDLheBLt6$iGSAKO6qrcBw#Fo#YDfAoHkQL_`tTqs zX}u+vA=lnMZ*1>mioE*7iHCUF&6Q(g$prYM-WkBtEqVU1g@j>a@aS-t48`{$&$T6N zfsF$&7>U54mp*oXo6fbo<Wp>#MJRK^dpK6IZ#g1x7#km5vGMRL>t$!Lc8P5<U`ESY z8T1R%av0E^Gk1Az2;?37Ma#BIXia2F&y$MX)5u9CXm~1C`(i?P(y7IhsvI=Zc=1Ay zIEtc~6$$deqHe~MQ$l=K3ez1_pZ3B<M*(zg4%lO>z%EM;N^WH%;>U$rWn&Fr`^hR| zZ46F&EOv5DI9n+bA8_nla8zr-^d!b204D1Ni5$rk?YpF-YT0mxOD{LOw)NJeJcx(E z*IXp5P&~E$!nb8N#pmkE8@yr}{*?}4r6oe8MVcZ_5C~9VA{ICppJWzvQx!xTwS&l& zdTbeBP3VOp1qbo8fyZn5H*;1vp<!Qq*EfKo8?hzf%zk363Q-ylg%stdcN+;?XD%Nu zHId1&rN*#$J}Gt+?q{2L`~ZNzj>TJdd{Ol5s~HpLS-`RM>e8cMPBA`_n6vECN`<7& z>0WX_{-*pD5iy^mdb5~VsYy^<vSV_uWX%32taQ9dvr_0;J0(+DW?v1CT)%&x;QF(i z8&6!k_IT;5!I8UqcPV>coj6ykYE%=~^0WC}fa;D~12LB?X6<QJPSA2tU7>JXCR??s z)qndI5fLGYRZ(mZ9`J~?=0S-b=!dCSOS#?Jk~yn1f<bf_8ekzF#aIC`j~{PotBBth z<S-ZsSsY|^e|UL$HF?S(JqANn(h5)W+-pv%zX-NmAu}p8zd}Jt%2l+1C8Jj@(oB0d z0ler0wp89A)+#Wy%Xe7o!GR|)16MG!pN&{pWvxa^T?2N++?9CPpr{a;+ej|;J{={! zH~E$>x~D3r$gLaLG~{x7V9C)q`th`MOy^t@iUt?a5=f^!yI$4OMb3W3A2@>wkCM`b z(>RE<C%m_ErDnQh=Es$IHDzG$1KC$r%OuQ0!@^#7^zk6vQ&m+>p(5eyUs%^t><1-L zBVz*s)RdZ&OvQ8Ax6xAfJ@p??2jtTS$)LupMgE3_ATyK1Z2H-=@RRb^Deo7!uygw= zdWx@aK|I@-ib&m}hq}*}2bw>bY)zB#)p!+MaMRD9KRMu9K(ShQF?{N0Q%_t@x{zwV zMYOu2{=}b!!WEOboaQ?!BuD3}lJqJ~+~$dZseb?&2&c;NftY9a<7#)YbU}P~cNB0< zyp!TYgMe+Gea)5At^YA1FGGwuXkP#gHt;)i>~GeJZ4vG9G;iG`9%)D}NM|y~+4Mil zU`6)aYC$La#GKxmf2v`0P#ODkW5w{mKYXq`FEz3lPr{CT+FXqEANgkKyMXyJFyeqF zA6z^<Z>>lpABp>n^r+=Ze*Bo1H(DniTCSBy9bH*AEh3qqqdR8YrFS}Uulx4xtpxg{ z6M*B=(u>0mIrwSY{(0Nvf$JCf4&EA{;Fp6LsFbs%l6~6PVkDMD1P4pND{1;e*|<Fw z9>je)yYm_feNOgM-h0>-JfA!9)!M(hQW^eB!&n_PV0qE+kmpj&n_5A|8}!FH(>M0k z*B7sl*_EgF&duHZF%{YIA2+_Zu@{!KSFd8|Eq0UCmhR5D#5hE@EjNWfZ9lU}$x(7} zO6dIk5s3K*&TX!2OuwFcjBi?Btxt-Xwad1QS$i6fPqqTG{$G=}5+%XVl{_vTeJz_t zTD0X@auQIzb=rAbnMz!jVC3d<Q;Ip~l7IhDA{kW^pgioe>g(&d`S}a2{_I>m@%^{P zByaEgdxhMA+#e(THce&fnmLQsFP%2|1hzQMXPiG9KgK?PxK8A^^FF9;FkiW{xXyKV zo@wT>=Cb_Kx9od=_+OsHEk2FoVj+Jo<d+;6DA>kSg?p3;9Y@2Dog}Mzpivq{H0pBK z-%JD8md+6ymaWYEDC~XrL>Tnkbit~$X)eJSA(|1Q%-=NF(ngyrhy2@S(Ftf`cQWyz zTk=Z+^XZ+&+4ydsoLzbCPxl#?7bHuw(|1n2wfcou_pYltK$m~l+k0b9Z5)nZU0vOe zQ~>QsgHX=h(T*|E?Aq7>ct6NV-OBRAZ8$yp>O}>2mOgh`>%qit<#NPtKXr8PUMF+* z+_`g}9v(Uwi)?;1VrfunKo6KVZ_Qm$f@ywfzIf-vlQ&;wgc-}VdQm0cAFLD5*y2ZN zUTKxiCa%n!0oH*$;Rijx2+x~DHq)H{q!O5xJ`fw&U-{%Y258-YofW~=>C~vEBy@E9 zBi<cubVxM?uh)vy@9EUW?F9A{9scPcOP6Yg3{SV?)VM8p+_gbswpz;J&Ag)7Y-@O6 z&_hKhgTt`<-jG1qI7QlN-Y+u|-q#wsVciuv1@T64UW2_RCyw1PoHlI%)~_dx3)+@{ z{%dmas!4C}8*Gs?jm7qsrQ5?kIBlZj@;tzu(y_nTf(6dD^Kkn2^|ZBQ3e0SOaBHiv z?&;H2eE(tnrL_<gG7qxf7^B_6^7fURotO{(zLKxghKjcR?RTp*QnqMXUv1$*-7)Ee zXte~V`9G?yixYGU;y)&axvXuY))t@M9RJV_@iA3+^7dyJZkia5XXBt5`>ZQ_<@6qz z8^4$x>F7v1?o7vPKg*84oZI9f<FE7QpW|bHnV*sVs`08n1P;Ni2OAokgFL;wbTe2U zUV0wP!HsS99B1e9Uu!YaH=}{spsliQ=<+;e!L4@LN?ePN-JH7D#_p<`L#Hpo>NI(* zupBm$YRK;2i$+C_Dz+l|^a2dimT%^A`Wq6@k8k}ntpefap2jI1`sPjDP<Y_xYCChD zmDeJ2r%q3wAAd68^dCf++>KTO&1k+<1k9luIU%t)cMm0{e)NQan{g0$GaW7d<^@IQ zdc(M4pV^!UZx4?R6cUWpOMT}2H4AihC@XCwCysI1<ETe--ZM^{Ie!|cAWJ$t)}JSi z{d!EZBeTl|#r=}cKho0D;2>^flLHP}I_&N(iBPXtnjco##zsDi$mB73p*_0Z%X1er zhP2Hg>5-C&3URq5T^<Ot^2Lk26gl&<e$wNUv~@y*Na^OHhu5Li41?u27rH6b-y%yU zxNZK`&;!o?I%7ZBiu<xp)7FY$vee6v$Bz%gMgJ)gDB6R_=<Xu4*-k8I?qZgR!~zj% z<jnAA%PI+zUPYQiKaiDteq0vR5aJo`b^m@exSjj)RlXFWkJ@*koPj&U^?$+(0CBZ? z9m=$*y+rY<hqf9wsvNvVJLbz8Y+rtb30n!j!;gh485ytKUli_t?iT613GSX8WUSc` z2H&?RaCcvxg^HRjhKJhH2-hY(d!k_jX$Y`s&~dC|%;4+aH%)7)LUa|y3swilMvJ|a z$9G_pSfMS&Mwy3u$ipOj4mLatLSRcQ^aWdE!HSLgFRm=0pGzz&14tVZ`~EN2(MwGB z;K8{xX#SY)m_w79qq$3d5Py6qL1;s~_)Gi`a5BG7HPa?xIB}3HfK9rPjAkAYB#RG! zSyGu|avuR>c~tq{Dvy8f$Y)9m9r;GSuFC6!Z=vDIC!VzHw(QuV^jPHq+i2%?)1VYB zG7RLxL@|Fbmf%fv8$ErbW%hhwxxekQ9*H(W)Nfa95-5Ef(F6tcPKP7U9!anVORyiG zwr7{gHk3WSOTREcr>im5;m8fsX_GWf?By(pmbY);dT?<5;IZ2J%eljd%RG5i)##Tc zVJBXy<!sz9G%Y^S2%;6=^|SkG;|9Y~zo%_+8~?;C6|s2b)s+c&J=ULk-<5uqi9CZn z9w^dLV+SY7!8J@k_C5e1DQ_+G@$sRWG|M>rT(K&eobOI44}vAslHUmLGz(<RduxYj z{P_=jW?*1|w1#j%j6fPG9vN(fXJiOzPl;7w%%e#CYgVEIp$f;&+KG#4rS~XZpoZ`p z|I~gNl8_+h>+4IJ*MRine9*o@#&OWY0V2>Am=k+&<o^Andu}E#sN+E9rUzZgJCu*D z<5m5-N3T*KQeEif)pdr`c6{pjE5B+eZfuZWwCmlDp96OESNDSaRWdeQI7a#<^ss8H zs6>!|l^~l`)YL;7+Kukd&6!;VI}~?TM*Jq$bbhSGTRK|A#Ul;WnwAe391P#QhjgKX z10&W5Cj|_)bmaL2aa_B{=Ka}L*wQ`#sv=DD9VV<~Kaw-hg&alvRwy1soj94f-xoO> z*4lO5Azhov48t9}hazksoxnsI{mr{;(M4zwtr|8{@J&SOJ>|QdwTJf#eL8cwN$!sD zxo<asM}{L~-@IuP+7uoj++kwnOVTosq`w?=T|+z_u_7`kLB8-Eap=pa6&&m*a#?_N zm1*YTI6y$O0VK|^Y4;<Sc#~k`sVGTUo4M!Zi;h0&sKLIuTYtG~MEj;efqC%u8HbTL zN3Tam1+`a&teSQ-oZZP+2`WDUQ{nu3h0K!Z%uEg9>`s7PG`>JY&AumkJ$R+WO%`dS z-a~~A=giHCYyj-!x7)Pvkg%~LcrpN)pR{Bmjisd(ch-=7hX8tD>zUv7@$%wcI$s}z zCR@-ulhK6-4ck<rwkKdWll=PE{KQ|FgrD!*cNPx3oCng|MHU`d7d36(=!Ts*)&`^T za+18l%fud6i+cQck##7TfZZR0Mit-@d|H7&As{Fy4t^I`I;tAGNRw`K(o#HoHlDQM zJH9m{BxF5tuLaKh9=;Xd4H>X=8<z+ly2ET)th0IZ<_X{ZJv(6r%&=BO0g<yUNREoK zvcb1*(T_AM=Yaop2%aa_$q^2iEbQ(pS4s0Ii%{du+8Wy2<5gP2<W9Udf$ASYQf<)R zBa1Tu-1!fHkshX_5(C@5FM0=v$Q+Fm11!r_zr^`?dg>EnV1Q@jPB2f&mQJRNk>Kss z+x8M?XP!o))qjzH3&lA&Jj=o*eUak`%y9<u%^V)W*+$ac0T#AK_~Ohv^ltN%lXbp6 z|AUP5^Ups<tlC0_&09-J&Ruabc}*uyC!<eK&ypS;IL!7waKjJ&gAn~R(Hfih@8mC6 zry>O41j@J*b5GL#q6ox)6kX6I=`g}X_fYJmXg;(iE_oXY(%pZrkh#*whL*pF68A=> z7tUj~ks!w2p-~MbFjX~9B8}yOV|G~`jvC1uqIg8n@<E$BUe}PD`?hEGX;s^{#30B1 zay5AsuUcr%a6Lb<;K$9qdGiK(z&-=iB{p+&#~(9{#_~RIa{+h*T8~L)<&j2b@NAW_ zam1-7V%x26<WqjisO)hO2(O$JpswZcmX)z-g|qO|Kv54buP~hI6_R&wOA_h{XLUB! z*9+&VG%(=bTDqAhexU6GX-83lMl9u>w{JmR-bA`*lU~lweCd*;)nV+@ueUl+*PuNa zX+2N+Wi_2sKVo1IsS|J=1s)-rVfX=f-MhyXY3Q8`s|U5@>;@a0(=V#vz`Qu;Yc!aY z-9?zzOKZ^8-9EaE$po?(PfyQN(+($Z__)9$|7e(`v`4}2Lb<<g*iJj1aGGpEdo(iA zV5mBBGtzVK+^Iy)+|kj#oM>G7OC9z>GTlUnJ71zO>ZXuf2^-!IJ&5#(ztYCHrYk`$ zl|6qxEi~#+Mr>_IFXwII;6S5J-c0Spk3~$gFaHIq<c`eRdxG3JaECjs)H8xo_yh$7 zhyAubWBe7)CJ892r&yf1t$Rw6VYp_=`}NarRnubV!F5*pIK?7_2E+y)`*QmN*C0Tg zq>lrPr-}7DmUju^W0GcE2uTD~(uTxPa_sCSK0~Xlf12f@6Tyqb!`PKHqp618P?>at zLr&rr5$JGA(Fqc}J~0wuDDaFx4<ju_B_%0$OmXywuq`fJv}Wg)OwFz_LX>#6aQlvc zq3U#s{399&rN8j@&Ml!)2fX9ZDx3@%xulHkFp%LMM4(Mz;wFPBx&W6nL>@YKvxz36 zVg@txvP?Y|)C9vKo2vY4x#J*cR!v;M*?<1@6L-vhbTpvycwI=th(${o@17lx*5Uat zFq=2)kCm%dMFY4z67ebH=jcd?PI~Iro0C|mh>a||uu7HsccZ_A+=kKB3<7JW?db=# z7g)aG4*!leWr})wdJp|pmI4n9C(Dnt87o11SL}NJ*zm5TW}sjYQHV`qL+0A~vp?}g zY6UrtrlC;|D^47q%wQ{f!x|Y_8Zle8SN3Uku^c(3sv0>wJUn;o=FW=}&s63*8BWIb z#Xsv|!JX&G0zq{9)0bMJopYzfKer2>pqwvcQE3n^IMf9K@`D=N7G5;o8*<cq{Kf^% z06ML7^fr`;#Wpk|QVtR$RcXG=&b`F;2+%FVSp66R0ZiQD&ciM!21^r;0+|^1?xowu z`sLql_$1S2E^y$)i4&LOm^?zs5-6xZs=}!#st~pNL2}C)5M4O{|3wD}2N!Gu0{5le zKub$2Ye_hu_|2SQhTC%e{aNN*elC(1`smTMRgJF;3S#?Mi4`>V**Ta0!jmb#V9Ze~ zfAr|lth_TaCXIol!8(xfvI`oaHSz)uK_N}lmtbBLkshu;EOy|7sNz_k;Oa#O^F<Y% zA9ctJeEKkt?Nm!&4%-%PvEd$Rz6B8%`esw^o|h@=x4-qz1(Bk{Wq0ky{{f{)Y+v^J zfxwU-LyWwA3R+sRa6y`O<)!oY<H|<w`XbY{QdgU(B!#LTivh@O`}O7~jfj6@n^6Re z`jg`hN!~iG?Ef&lMN$T!^--w<TaQ1ZV_3aag4j+MI`r;9&0b1Q@nsXv#P@Il({9`$ z*b=FFdSBF7-LYDN<~iy2v}c4H)`~R-T@63V>t6CyIhTZ=MQ>Ii=t*(z3?aRfz*%q) zC4H+vun=!Lz0<fN7%xk@qeEH`)@6#}9l6pLZ&C^;{pZ}HnC3eomug{2MTZGQ`8jSJ z=o-HljDnw(LQN&5N5HkO^_9a~98qURQ8Lytd59=2*w%X~Gw(@h7-TC7PJh^BHE)If z{E7P8z3mQ}Ne&}FMozp$E){u^vyM)A8U&<kS7f4qz66WRgsk-b%C9qY$QH~+a}N{+ zictsWq>#QB4h{|hb0v_PwZtT@OLmPu@A9Z@wFy<?u|K>}%p3+q+#6`Q1$#1@VRrOg zueH~eg46cjy#G|A4%68yRBQJkq7Vh)YpKz-YxQ2B%O1KG?N(G!kaWkM)gmw-iwx~7 z9~P(&Wg7+lhru~1bHgM(^YQ}cRlECkTgR5%5h}Ak!t<Va8hUvy>%=xl|Hw&+PC!Sa z$HHvcm%c|kXF~ee5O?U@2e|XUs6sCs#fM@ZK|yRau>+gK%0P$TjXKNqRcBD9i!?u+ zKLiggdVZykZa5pSr^0rqB-u#WXS0jLqx+YffKIXc5~I|Zwv3L@FzEoD)Eedu`#i$` zzzV-KzBT!0XpAWaCM0av)zc#}`Ueuae}{tS%+T^dWLw?jcp<MtbAi3GVNg)5%J+2O zpEYRI>xxx`eb^4}P+v?u7#33Cfp*3wBU@Prvy(m3$(oB1Mc#~~wgrBD^0a-Loq1%S zu=v5gygqv|gPJ|Gq{ZY;3xl(|Y1#pl@i+7GmIAYgB<C|`dvOq&YaYxQj1VJ1{3sf2 zlIjHU!4E`W=H=}TZ)_#(jaEMvzgvy&JqWZp6$Sqjwd%C+-Jd_tQO`Ta=W|vi8QKdX z7;Hjj&CpRUln)H&FZ4ZH)Pa6&J)w=&DJJSRRo_PTU&c;?0!+nJ&?<(T(H*CY4l-Wr zs0eoRt=Fd_JACEZ3wp%Iy2PoS<Um(yLh^kb(GG%zM=&}hbft1~>Re_UmVixG5&oOx z0_eYV0JH};1;Kp}LqqqI;JvrKnu;}4rJ5<5nws`ABkFXwc+Kha{o*`U7*t*Ulzm6Z z=ia@Dg?vvX;6CKWL5%HD1m3g<G_M}w3(ujLB}U@rgUyIH0x$4o!u)9y2~c}jt+DD1 zu_WB1+R+Df<VxeG9LF5=2Waiz!W<XB@cw^HCxF=NWl1M4Ln2rZ|Jq~WtF^b+n@yrt zm@Z~2lEpZ~dm4eZkvrAXdxWiGsp<A_4GkiGOYSI+oDV7tM`}ha^GRtw+4KY2m;Gs~ z0;R;k)KBN6v+{i~;YNB>@hos+Xr4WrKUPMbW&B<KH`ORF<6yqoIa-RN;DwP4WELpo zmXJOX2my$17vZz0bi|X$lE{B3azN=oTr2xK1A7|X`a^9WSHi@&F`zFX;3V1ocE0IR z-dk#c1F{)Yw+Q$P(bkY2#}8y9RL2lR9YR1)Vn5(btUm~Q3T7AuyF2z!6yxmtgv}p` zMfMme0})EE_f~&lbdiIT)1YR7mPH0SSmQFAh6}+&X%=lKy<J=#x;Mn&i(WU(-k*96 zNefzRsR93DuwDR>%3~yoLs$AfAiE%4>AsAR`Atxnx_cx+`RS8Wg0;7rmHgUK8xm`? z7uVNQl1Eh@cUy2jQgmb{;s1J>=yy*d+HUVCcuy!ogp7@tpbTHE=lMJ~lCF^!BRF>2 zcY!sdMKTxordbpSH+~Os=7SCJzQdk|8hCIU58n&EbZHjRI+5-P2VGfXa5QUzT>}NT zyv?y6;5~|>7X{K7bLY4r0w`iw6rkWD*cqA<0)3-kPI=UJC@U#>>r_)S8_o2jnjRj* zbfnwK_Cr?agmwUc8VCiYq+tzwEu)aF!W%A-o}T_i9+6%l+d1sqL9!kFXeNH|%{;Ch zLAFr>=8wAL96v@AA%VX0ZGkO@Buxltc!^6;edXlvr%5-454x%!;4n#611i-Yu;&23 zg$TM##97H2)>LHv07lWw8b$V(jHWDT4%B!hkECUe{V&-p8Za%o?T{FMke3k+BiS#h zY;zc3AW5PfP)7`@M!LhrO+J#`g3d%m)wjDuz93#TG0KmM?fc&r+S2?1w<06RZMbIF znP5`BA1`Gq9zE)U%nFCorU0u-1Jcuyr0Gb(lw+;)1<OfiOQc3}7(mn*QJD`xl!ww> z69QH=tr;O!pHOE1CEovhiJ!$NX>URL*<lexkWMU6(Gw^S7JsA>%s9lL_K=x9LK~*6 zQ{nvg%%}!NhW;(Q)6t=H%w3omluxZ&l}4-nXW2%81`aveIACy337Uj{^LZ(1frq5n z9Bk}bVGvWUovO4PFTZ~j|BhPdO}fOZ?vGXT=G7B90#GhpMyh&TyLYR9{P=Miz*NP= zd#=5&gJ09K^oRX+VpKk*97!u9eNKRUBxfWaH<``2#)t~yvM*116H<laz_7DLEJ!9= zInMNsG+78vmO!>FS}T5xxU3Be8vdJBC*{!hx|R#rroL;Sc|?tiQRGWGeitjr%STyo zi=m&GW^-{aHP@F2#jjpfD7{DCr$ZN)gPXTlxP*mQQ7c<FIAV&Q^kXHd)g_Vl-#3(k zl6zg;^BO}U?Ta3>TjvwLm+WiqWD+$4e?8k(;<WGoQZ_jAa;QVPF`$uUsH!%!B{urP z7V2UBtJ35Hpp-OY9<UQbTpxY(<yUO*-W+$<?pA_|Hm1sF?w-r@*e3^Yp3o^hk-i~< zKBkZAye9qVr)=A5CJfGl&=;y<{Gho*agZt4eBoq`>OmO&!Z5{Xe;xBisk58<BcZE; z&UNzbG@gHYR{Wz7@Dr=ZG>G|G4$erfO`GzjmL&BfHwC)6un1?fvGJqb_D$DKq!GrH zk}ZOsv!I4axdRZZ3P(*5J9A{nUbO^FNE5%3nEL^?<Tc4}K+UnW$s&3H)5+7vr?Iz* zitp#2|1yVLyp|Lgsrn~&xwPzSxo``JS|UCyi!H`S%Qlj1+c3M`FdW520T^R$^GAC_ z=YZWH+URr~Ort)=lfZjfcN`>OBelXCiaYz^5j4D?5M%!O>mt5H2=F`MY*zZKp1}V< zefq?tiCQ7KyA<}_>QOy9OA?8S$w}|bh?gvw$wdqKGlTJe;6$%}$Rt<R9T}kk!naV5 z7~<wG?kOLiQm3+Id93JQ$k9W<37n%aa=n4hOzb!_$p!FaO`Hov(IC+$YJVsi&XcVb zZOs!B5{#)vQcE`T!Ewjy((^i<C1PA7eU9o>q16qQ*qr52j}VZ3M|#W9!LRZ}!d(EY zZ)UQB>DJd2hZX1@$gnE*7w)B29@qP}#9a~jQ>$rqk_P)yS@xw*H0SP_bf@=guGnVq z<78t6gOEbj@~CZ8W%AVNWO?m?36Pn)9AN^zGM#kIUOqmXC}5u?sL$UsiDmkM*Aj+M z(nU}=-el%-f5_krdyspXEad)@{7^m(52HLhG(Jvq|Iwxq4eqvk$b>?o3wnv9SP*TB z=u6Nz9)92B^Zch~{Wq9s6p7#kFa``f|Bo;_QNc=l{8J|^Q0!=z{2YElWrCxz_)fB2 znu40Go%l{Azul=#jq7Gi+Mibu%C)U`YLNWRqlkFyIhO(1fUB#fV^;TYSFa(-szT<( zQJIWR2W>|z!I6kkGbY=l#9LBgb*t_0sqILeI@Zh^c6>+^H@;_4bRd8Csu`OA4D{G% z0c{1M`)ulJ+vWR7!(hY~rNi`ZU4k8Ur%0oUDb$nkaahKB;c!&itmAU-=s;QahAg8H zs%H)z-L9J**&g0}mM-~$yqp^=sZ8G+2Wg-C%rQEAy6OFcx*@S30kgm?>cZ3?C+RRR zr7zVq9y%oM4u3tWOl4^djUqz~VWt%Hudf)$6AzUUJBw$RG@Lo}7PDm|8WPS*eEavv zI&q;=h(7nMwQK?rQ5ToJw6nyGKT{lDMm=wivh&NRr4|T#2Og!?@%0&ox1r{J{`~nj zZ{H?P9optZn|KA)^LAq;@?pL^s)dDqH@b6X{ehn<-Df%zX!e7YgzZg{;r=>1PAduW zenP_&X5W7kB$|Je=SXpK{-Tg*jZaI%1++S(vc|FG&!jZyR5ng7F+?ad*tw6C2)*R+ z23_Get0I}YclY_kroW+8j+AMvlb+U(AEr`zBD{n6;b>YAf4(cULd806-;7)PUj&I` zU<oo5qI5Tso{<x!^nnk0L5Vf{y<)jUmx#2Et6x=r@-8Vgc0p$?;iK{>i^Ld$&+Q zqtF+7G5u^?G-e(a&Vqz`vS{u!az`X+h2p~x1dLUF^8p$`g56-qswu0_UnfQ|gDfNo zP1<afC=NMLFyb&0dUFM>Mr^Z;R<#UNR^f_Kt7o~tTlrQUXF3__ZM2Wr)U1$!jE<$& z)z!x|tCSiSIIa3Iv{zy_N(#xEv-V6B0R62M6(n87+ga|5C<3RpjFX-*q@csxkO1m5 zl~2(XyGq-$x5JuD>`}{^XRQtK(5Iu5iAHOod)wsH{Ae5ow1NCBE27|jLLyu~{dG3# zDJy8+fA@UL)RT8y<69Udnz0_ml~G$-{ZWgin|9jd<ta%D7%(xbOr@>H&z9q3P&{5Z zc=|ModU(-|YX&?0b@D=Uoda|{Hd3-|KT=md9c@HeyMMkdUZuS&?=Wu)33Y=VvT+V4 zXwH7mf;{u*(1;X;atwiL+qv8HqeInmP(k$Ox#%;&j_LA#%kKk#u-`$=FUdaRTbFP2 z#hH;rfz=;$elAl2m&Uaj*1OU8%QMh4MRna>;d_UshNVBGxY%a_+&k09G+89`w<gOa z!_tFP$L9TRP5&l7sX5abj8@|X@l~cC#=|FB{{1oX&;sM9oCoD<1U;iOq%G2CD>n0l z<*}N(Xqw+Ci3{>NN8T%W5mIIHH(_4GLY@Tt!otF+|HvUKhsCY<9X4?-6bh8kZzQ_> z6I^;oKLMZuB(-=`Sg4Fb!%^XSMo6x}r*bJFl?fb*0)zfQl?~(=0EiG5tNUsq_*3ss znPslC@AV~AL+U0$*Bo-9XfD!jw5~f3wAe={^T`w0t5>fgaxW%e(wQ%NHLX7C@@Cf% z!-Sxb*3*O+(mVpN2?zdr(&F`8y%eeL6N}*cpKg<HROwD)mVMWyR%shk!z?;WNQkzG zi)*79{aqYi90*8BTSgR*0CbiiM#EYME*47qNTP6)j^2an7Wr8h`pOKHx<UK{(5mFa zr)ly1{W`)^B~S;40qTqC$WnU<V+2>alU;x?`l#(;P(wTnN$}*iK}cCGr)DZ!O4f%) z%=w~=3SI!rw?!#(|E&nefeeO%EIJmX{ZFk%$O)B5ZU`VVmUJ{F7a*=7yB?uhj)a2R ztrDmNr5Lpo*hYyAF!x8sHf*^KWKAgJpMRzuQffVFxWOC7*43P%KVSVA3FT;tjtl*J zzxqmYz($~>9j`5*(U<wR2%Q$5S1x*2IRM-leN52(;>&PRLc)0!ziE->h3@YU2*(2y z0hAUT0`OaaGW8+rP*c#U8AjjS9)z<=-z#xdCj;n1dDR<O?u*{1?#=JZ-amPwkBfh4 zqj+p2Ws)9Nh|dlY6Rj^JP(pkMWSO7ces7zOfbJX5gIO+3q~9jEJ}-vMaz?BY;}-TQ z#O;`MZ-T|fXB(peX9OF&+D4Ct{6u9L!I>c&Gm|&k_!*)R^Ouod#j*Yl?LQXIo&_?9 zdUTochlpbjUsS;tW`~ugzlxStAadHN1jJPVd)IOA_#oW-kPQ{Rs>tw-zxgY$(cTBR z&OJ&`7AX~4D4?Nma8goIr$fHpA*1Lty<Dj5ZfmZ>xadbZ4(~%rdonAaV{lH?bW$e% zXJ6XTC7y?`{afuVxSJSYnB7AW%qvC5q(Jj^B^4E)>hFbEjz`!W`X7+4=)_YGf*~|0 z?t`9+3-D6BpcD!GSq!(l-bjJ%9J5dXZSgT5eEGs1ll)pLzHC)QVTm!*Jwp}J8+Y4% z9enQ2Xe$BZJ8ZyE7Jy?__4&pCG<HyTHX_1_W)GiDG3t#h=+<%TL?GE_-fzS*`v!FI zOB)uZQ1cF$xy?7bulA}Qn9ib{xlw@1($Oqe-L3%hlvHm?hfYFi%8QQmdx&Wa)(8XZ z2T$L1xY~`ys3v=P<@L!3AMg|YKs^BIsJBcl*`THULoxZTr+z_Zykz!A$7M6u<Y2i# zGEn>ZG+<O>*hW%`Qj}s!!)4frzsb`1Na}anAvFsHYE*64l~16nxr<i6Zxva%aG@m- zww*RWr6YC%2&O3J2Msd)LxF}9&?N^2paMv~mM+K=<VYLus5w^6MjQxm<grrSL#LE* zP#mVXdj<q(c8D&*h~ta_b?Hk>iP%o}4(?5x!fSM%hNqazz?TC%ZB*Y=$*l2`4R9;; z>EerO=Vs24DYB3$ZCo_>@-cIn(vYU1l8OuTbM0+^zD``LvtlD7tUmfueJ@0foEG7C z2zt6HvCkqTXv28P#-z{F&5b>$R=dOgK(i>NsL%e^qYF{lS_0MMwW283C9`Ld3p01w zN5z)&3T)XDsdYx(9h-1@L}3zO!A$#*c?s$XiHXGT{c0bnLTX-UOWri{2?RX&S7@Bh z#OxzDBcX$#*dP!8^h5ppHBi+$prG@nbnu~O&*fQLNe5As!XrScUWXRY^T+;zf@>`M zpijA0ONjgO#)^{216H?$|Ddg+)dKoU9Rn{P6CAs=a_hy+w735+1s*9Ah-$-#ZzJK{ z5ty+1#X|n?fT1kgn2{TopzgDVl)1ACP|BSvc1)RubJ$`VQ`R~k_FU&YiF}-_uk6Jx zT6~?2l`Z2deN#_)j2D^m!OQNQI6;9gg-u3$j)5$heAe<vw{d_lnJS@lXNYdsv7~nd zz{kNlwy}tjq3B27&>Z8zYX)aS_^1UMN%oI8Q0Qf<W*wfOv9A)Xu`mA!N<+5=Pnf`s znbF2SR)1)fPATXp2rUaO^ED(W8_b!T0Jgd*^spuZD?f@Y!D2*>IRAgXwD83c7=N+a z8~l)al?*wE1Pe}ZX`NY}nS}cackN>quQ|%gFf(C<s)dq&;870FwuAN?#l^)lMUjOo zw+w*(V)@~S(A8BJh%F#C>F^IncjuS3l$4;qP^T58ZPg+IY2~|(NB9F>VHGMgrmFrP z?7aTx8+^aC;U)zP*Hytqk}I=K@8wslPCpdhM+XWWX*QwgMA3Yqb|?@NQ3hfOn+&*; z#ZV<+HZSX3r3J_ItK%P9yyc~#0Pk%ub^n|!oGikGU9%?}@GP+EMIGgK0dmry4FG<U z2GsAvLFkc$ftFbAp??e9i(Q%3%y9vT)typ7*#j15Zaioa`A?M!IR}$Y;M%CvSqQ8} zW1Q;GKU&J;%3*r8DbjG{7J%5)r`Lda11d5hf+7xXAk`><mZmiZR(&-OI&5khixvmV zYS@4cM{5(So}#va#xUl$*%ZV3&L(86B0!IKCbfkcEwnbV8M#r3$fvuic64W^I9m8( zJ4pUs35@sy98;4|yqrss19HvkIDA%<<l17V5z;<%;o;%=5MW&siE*MtsqxpjOY<4@ zT4n*+j#OmQn#Vk${^I*d(7&(Fpb55?6tDhwHcR5<D?XYaZP)_b=AaPRy*Ny|2gsB7 za1S`1q+in-AyZF<9{y*9LW%ReTo{elhgf#-6XPimpGt)J0Q{0#CVEYB5bwY@@7|Sw zcBF2>Pt2y?`R*Vj+Q2h+?f|rJfsX$J4vUvM0KlG@;sD#I%|8{tHMFY6Fx{}LN|hGx zzi8fy@oR~rWeHA?j6TLSJ<Q#{V~6007qc<V(O$_u{p&3r0T6Ej;NCYL+`Vv?S1!C1 z5vN+jh&By}pMw5`c#Y7idQjRDYVHEFNj9qvYVY?OT=#?=Vm-ef8#<8s8>HPZJSLD_ z+oME?+}zww57wvohDx|8I>FLF&7!!Vk{7jkWVRe%&9Lw-I*G@iIA$~+&yp&dX>}AV zYDHXHDwCthAmQLo>G#8<bs0gk6b&#R&Oa1)47qlIpw<pKV^_3gAPjUIDR*pw^Q>{V z<yj5Ox=n(DrBf-}ccY)kQfZec(7s5GND-M4gT(F}J!E6H`u~dKSB34=M=>6gkAV23 z|28NGEjY?i%~V9Ij&!TGC=|ifF~v&pEKAY*y^8bDV+nTloAcJan<%@jN(;1;102}z zV3%pp64TpkfJAU6L~gPl(S{%t+OQvs{Mh&%G;XwUb}X(V-QDLbWD*z>*;Jh4=t!Cp z9q1$DEO6k!)udB5&5fHCA}?5vZz$QT!AHmcB+Rq=LllOrt+sD}>`8L&;Hxyz#tju3 zNGc_rNR`SvdDHx3*w^cxmIgLD$=439S0M>9_NAmLS+&Nu*Y7Oa!$T#7J{=GDZa~p= z8WjA$P_@faQlZ)QVF?L!I-q72UtXd{1vn)ZA`>LHysWV)JRtwp(_IDyEVTNuKKy1R zX1{s;`WPxLQ^iN?^Wt@izvdRiQ#?YovRX?%Xv|!-k4Z{?e5-!OY@3P3mT9kkyy2nd z!0XTc8@1G<`l#RFB4@xM7teog$5V%gu8(GZwsf0Shj)!FiAE<i9-mohm5ucWAwbAc z7eey@S`L3^yg%}?FQ5Nv@;&XZlUluzlcR!~k2_`jPRC(1gk~vJ#m9;b)n~6~*{a=| zao_<iSbA{=4p*L{s8nXZwnVU85=_uA7G-qYomTo8A6b){HD;1Q_6^WxJfS^wf?M5? zKo#drK|#tCU`?YcMgOk3<9AsQvfE0&GW~m=k|$M}G>%aoy!Ne&1~W*s&~oYEBWT<} zf7PX96DLKe`cw=R1dh2v!`OGWOz;&xp@ResnUrXu&A;G$wfMavHl0+FN01p+^FkLh z4$kkKsMHVMEy>BDqP}!Vkhv*znLPOy&ZwiXb+so4CkKa0>};)xO+L1bK$g<{mM&SN z=@z*wt(woSnE@0iQ^iYbmq<*at+8#Y5crK{bx`X5`4|}{_?zMV7lffv<&FeEvxNn+ z?2{qiH?5vAgt1(Mbz+~_0!_fYj-NL4Ff*oNnx68ZzB}4VKQPY(=V>cgU;fRT&`m)W zF8O|(md&Tas6%{>Hcj6@+SBK+AomsNM=dRzc{ee<^RG7ZrPvSDqsC8@C><Zii%tH? z=#XNw`#d>2CQSYGcNiAN?y6g4Fl<Ac*IUP<PNeWt4<lMJQH@JnTk41xs3T&%8MTy! zOcm7nu9GlLEct%paFYxw71tLR%Q&2*JzhPkHtAnQ3V+Q*E()}Ip48D4w2+v&xX-36 zq<e1xSlB%jZUGrrpUF=EydRVG?kLE9W^wM#O__<_-J=rzpQWQ9p=}p0V0@2;-c`^b zTqi}Gr5#y~_$XDQN-!95d_9XI0<PL@nBdSvM8}uV5VbN!CfH3N(E~=QlT3uD&&>O` z(cO?B<ohWSt;D+5o5Fwrb>!tqr&jC5v3ksWtacA%xlX}<PZ$~8x4t3RPD9tSrK%p6 z48FN}bLfr&x84qMv7P3RlI+rw-SIM=%HK4JmP));Orq*Ks-Ga;XI&x<#1-oMhD@eN z15eiwn6>C(Sdzf*<ci;b-ZzL!6Sd~4l_G!DvEgv^j4*#^ln5Wo=|xA{MBEzN+j`5B zvFX|xnp8B{WE@Y6a9?gvFV$G#FDy6IOPg%(chV;4@si>&In|FpMxO3!>aA*{lAb3& zcMtF-!QraUT!u5z_%dHhd)hOA+8uRX%AuqJb>1Yt&2Z)f`ES@JM(+K5A8o#@p0Xb! zcQ=Hs-OUkHsC9&lXysfQ;rZE(>I}$>BMq(Q<WogC=nKNW9+<^UrDjYVku+yW5n^f> z@63Y`lV?AaEHlI`X=Rq*-6pU~5sN4CGU~s19Jm{aX!UFj@P6uswrwl^ltwG?yq`-G z%e{{RUWr**F|qHH`!^Zazs5A@3x$CRH>ui|sG{jUC8E`cTG=AP;zurRCcn4Jr7B=& z)*@nbI<%Tfl>>B|(5Uiscwh<)MyC~x|JOFqe73K;m~Hfooj5mTu$hN@Tag-t++QUZ zZG3|j?fL?eEF#TYz18)p@gfQKp@sc-EuvjLO>W{uxPLk>Fy-2e`}kcwqA^xB0u_n6 zJn8?;t%wZgT|Xm2IY~pz%SSrKq%y38^CsdW_Pw+T`Z*m^pX@%-rk`(VH3|0Z<8MS| z?lEXnBZWD}moh~0M92Khm8x~q=;^PciMo&8)hkF+Cd6f@SI<JK{#}&VJ+XKDb7Swu z*up1t+SvZ?oNsh#4D`4KT)(Nw%Fv+Y->Wfc8L`|#Se`V+XJEIr5+Rv54BH$D+@lKD zt!0*N|G(-LdTWw@sqcM|j$P6rO~B>}Z5i%oqKV31wER+=v|PypSNaGc;pqBkmNmqU zz;c<|IuUnr)aEdlD@inEi9lL|;nXsNQexqXn@CAHDexOh)mV^uWt_FB@z&(ydQF=L z=El_`O?l!eSRg1GOe@mmE?W5ZXIGb??i)sE+bQmajURxAdinW9ef@e8&b$=x1)%3a zzv2|4Mq6k!##nJJR`b}g2L#3@5NABVLnE|O+|18kPMQq@@&d~JT{&lvoL*5dp?K>x zguUNM6W#$MA7p&~aZRPtLY(IBfB7PzySw|$%V4wGY_)WY$O4g;$DQS{EFnhDaL86& zxpF0#pDs1_eVVYcPCKGCboUVJ0wJE|%a;?_{)qpsZNoh{4ybxV?=7n9DTKighqT!U zwr#xGWMWl#1o4ZGWttn0+HvnJqY_#`4ZGboE3=h!Lj;d$6U7krE?~8_>#vrSLlFW- z4oq4mV$k%UIjG6cN{j$u9KRSM-X#xJkJ-me2tGKVL1+Tu%k;+x{?xNr@evAOsD1|= z%o93$iEnVDDMHucmxP-`@S<kXSmZcFsP$rqsC0__#2HfV8WCa*n*DimAS=;EyJhh& zJ#03g|H%DYA(x+rM;eU_&&r#TQ<PLv6d9cT9?AH)d(hOq?Arm0h9)JI#237T_sE(( z4p3x3aptKY_~ArViit^kWn5OT-~ZR%cgN+t|NVCyTh>8Ql958gsHE*ssA#91(NQUt z_8wLoNh*ajjJBqhc67+9w63%fS{k%y-p}{v$|%0S@Atm%-=Ft+c%0)<SD)*1y+7~w z>-Bs+M^lhQXxHiH59N{GeD_|R>>h<ki&ae&uUQj<QRT@g<bkB0<WhV<Q@$h2n<pd8 z9y_(~*=|}|f%d#$$V=1j&2UeNd3VsZq(4thKME}KM@ExLE-4eNeXRSdZH@otn0&wh z0QrKriwCu21fo;-q)L)~>oE;`Q6Zu9eY#GFZh%VSGMT49tdt_t9ILrVp6_Q}o=FIs zXjsjn<NWYi_yZm)6AxMWQK3qsC6mPqS!?Hd((c(7S=nOHqBQ2)51JxT3xK;9i&@Cl zm=zmqv(z{6#Rslh#LjM>!D27d_ngOah6-L@)G<W|6kp{?`QgOU#iY|2>i3V&cqF@i zA=gqy**_#-JwUnoog4(qpS5WJXPQHokOT1q7OB1Hf|)7NCRJjFln$Y|rb+@RSTYOI zCS&ep-hDN2?v*`uLmg!vbBEutjgy#C>=8MjYM!&!i{(gGz+**?b;z-`I@YNZy>OBJ zDnP%xeFcClKl9H=squ~Y)Xe94nXC|j?E06T+7u(4S7!*o7_W#SU0HCmSbU&vy0-&j z2ih;FNlHyQ;f|?9TU^56h!ugQQ`L!L=W<v@g{q7)krosMQPKjq%T@j!o7t|V0>Bzg z6^9I3p}vL!;Mo9(Z#;df?|Zmi989K^=l4%pIJVr>hslrzhLzp(*;A$4Lf6#gMn;CT z-CVQV@r*Ze-@<CmdZc^BD`|m^k=TU_T?Oh?OzTu?Gb3xRd3rdVe*~RDg9>o%oPi}z z1{QlYMjB;A;!3-DI`EtCvV?EqfhQfi=9*||D31irA@20Lw<XHQ^#XStIs)|ty-oLY zs5_^;4Z(9z_o-4{qIRv+>D#-*1x<pI^||)0Q(ME;O-<U_=%vtU=Ax^cNly4B4gyvU zG`fw+NG1b0BY*6B8PsFgFr^gfI6*Wx_;91^DjAl|hfjm+_|7jR86s;C7a6+};0A9P z>SBAlYrOm?sWc?4<W*8>uWS@|{H4*4-feECU*;?spFJ(}_g5QJWffKi<4|28%zo4X z07vu7{*G+<JL_ZI<h-h8<S(AE;?#F&`XYP2!R*8HlYxbm!_IhQ0rY8G7uPf!oxh3; zHQp2S9PMm%_1NWqPAxE?qqk3=`Xg4paKM`_SzV4J8uR&<Qp&QHA%!vF^xZJvkFPtB zDI1{_x}JxJ(Of-GG&W8r>%Fk&`SUC`SjF)UgifVmym5g`Z&a|z>L-$8>rLxgzV$@z zE%zDc$YCO~pkWlmL6*L2(A{*~7OAgKJwu)bB_*Ge_g~2{H#PvHu@}Xl0~#6AS4I{8 zn6nm)yPN#&Wz)%D@a8R1G{ISnLQwWRvYJHjd5&Qbf|D4{yQ-6S?`HjY$C=%wSIM6K z-1kF1uy~Qml1NNy@B;)}g9J_RIdA%V8Ph%$<<)T-&{p&BHXc_zGTcIJx*TjY!-3Yx zKn`@az%w~$50qrKops9^@&Jd|RHP!(0!-A$-J_UcDQFdf-p(S%CC`JI(1MxY`SR-p zcmfStm7`-}$)cm9Rxo8>;p8hHM}>#ijv!3{`}rj5IyQ6+6OP<2$#5HU#Zj5jQ1a$2 z9s&>n4ZmyZx@Dst!F0g!!)C%!+mqu|8_iV)%_-y#-x-v^SH8i+Uhw(A@q|T6B7qBr za15#IbR3v=?Dwh=WE8+d27JLRyM$42u!Fh>>E!Z8H`Yr?V!`lG@C)(&t;=WheB|_Q z3FZbt`aBdvBA*O@e&CDiQhaehfQ6gK3FEyF^W3)V1t<w;);4i~tV0z@d+C;hN$D0_ zQyI(zubUwvxO)^Xc~-zWi!Js7vU7#%s}1G>jNT+DgiDMI)xL?ohjbHAXs3T>9(}%) z-fW+f;2jclNzwRsY;M1&qa(hre&BOo&*>+yH(+E^?O?(d2)W7%tf8;MS%BE8ii!&) zMj`JjUF!N2fFaZ7f?F2-AAA~|%YQ_;7PuH`Xwd!x26k<4YAsZ4k;wIegeXA|b`COS zgoc3QOQf(KWcI;U1-G^uQgR5);OAk9MC%x@8y>APUSx}uCK~-txaU_6xN1UeM?`Y| zetx&13`X*TOk}Wa;3LFa07-{?xA5wCB7YzRb|TIoPOT&>0!=JQ@*r3<Nva_#D)7Hs z2S@Csk@xVOF#Ukh(@)fTkK_Ag%`Z*UW!OYsMssOFi!@=0jWZH{wh93a`sUrcVM@2D zj{g3Q9LJhlyV?CmdnCQP3jf&?>c)p_rPHsZ*x@LRIx_O3Y?Ox@-Iwe7HXmxr&oJ;S z)}V_0TGfIEXO+QT6}sKTEtrQ)#Plf41k*Ke?7xrSFW2xx6sb8a>h3svcUCe*S+)Xh zHIs2>d;r}k_-YOVO;r>Mj(uu$s^K_{XHEA`QMi4`;;<*P+|3ssM~Z{PTg&O4`bxU> zyL)8ifb2S^h5%VPc-ujK^aGsNJN^P#(Ifj~FHJc?Q4QU4Qz=%B{dRH5kl&2jCjgm? z4Kym25bB{5oSX9*MEj(;Lnd`?z?B6XW#>r!>}a)e2bA9RnZkv+qgt{uNoW|lz1{X) z(Q8}o)FId^Ia)w3pR-S>6DOwpa@=65tnYGB$Q-t$KWg3cD4hA(GZoMpzT?afxNipK z4l6r;lqNP?%8Zi2_bxV1D$+hD{eEsccpoPM?;M;molcjU&Ce4Qz~e)S9W2iam;|I+ z-eUR1$4FMj=7Kl(z)5_<6%0<IY_JIZV{lKWdQRNus>JR#M$hJuJ6fl+BfeT%b<=_8 z?v$%bpEO%tbg=M{UdI75uH~#k@+@L6$KNp>I~7al7h%#1I+SE{2MLMANnd>~x+5F| zmQH;^o7nuH_w?Ja;bNCl(jg@$+lQ@@a*~5S{>oyfCckY;2e5YS!|xQvn4F7es`O_0 zf9+g`2df6$ogj{z*xk}Ug`VtD*(k}8Ck`cSA|wEu4hJ@Xhk9=NWMtG2ZVGQ6`@~=n zBvcQwO>K0c+^=4CqIZ*wUdW-3!#&D>p0K*`Fs<m-<OhL*`}2FU>k^|-EJ!oU7>1hC zNl^`Si};Y{O7$HbFISn?zF)3yOU+cYDcB3&BvNn-+ZSdTCh<vBW5_^<2(q^oyt!@; zeHI`ri{15<UY+6U1MfAHZ~#B@h2yATx;aSo*K-`R&;9Zq!vyF1J^rLs@TNuS=o5+@ zpzOWEw(aAF$xjO16RTS+A?FXAGT{limc;4`Pd!5|^`T7`Z}?UjXb{rfZtnm@x2Skt z`Ndg_Z?+G)VxTeH6Iv$P_1)5kL68EZ+?ySadPqZ@g`&ofvzn4vFc{O}(~=&z^n^)i zB|Q+{YIw0CH-`=<+@PEH<1(}VF#fTsAQxIQg_^5$i*0<K2tNX??3co}1#^|V8t71> zd(9hp*O~5V2Bc;C2DJJz8)#$?#=!8O7@MVe{_<{4@X`B(bAT}7;D*;6Y97g?`qOR+ z#EJ}&qR1TStBV+?^bn(`xKo%=qxDzjy5gB%{xEbkSj*p=O68Q2#K#z(*>!B#7i=8K zwEPzZ6yE(Shtj&lZR5vNT)Hedo+!<MJbj8HwlNUG#OM5Fc8zR}-hcbNFHWTZCx#%p zJD$B>N^xRTZ0wLo)ZdH3D^%%&!R<T87w;__kB8UIWkX%tzSXu2L5vinO?@Y^G<2hB zmd$rFqRieHwng9bW1n&(ZW-L8zMr9sz2<u6IEAYpuz{*Zj_~&t;bk)Mq@o)(hA?|2 zoYtZbh3q<c_Jx|!pZ0Cber4OJoKlpyj@O^i*Xu1kt)H&9ZToZN*N^+gjS7?>L;3>y z*%{>U=9I2w^jyLn7AVR8#kp+w3+?IsS(A@-W`1I|h<hwhu$r#^97hVNTg*Zy<>D5z zFm+|GaT!kf&dGeSm}1}JThZ%~bz>N^Uf1Fb9eTL2{_E{M;_>jx0ojeYEz|($vx+2s zocl~V7Px0m;<r(%-z|Kl@7iy$VbR_F^W<UUI1vLNkF3#zb*?P%JaOjqaBBWT#}HQp zE&u7x3zMNxh`N)9G{;sRP+&Ij*}?$|iyVK<U_>2v;QZp(56iP-8Iw=HY!n?neI&Ef z1MAKU7I~BP2ktXbJrZ@{cV_+ivIDbHZSJI4MOyK!DUjzi5}Uj&jqe7Yz0&C>7%Gie zx9*m_OW!*MSjSf%M@i!6L6g=m&2V~pUupV)T<dmiIv+ZO`3XPIXfK!HsqmdMj`km; z4~Vy0jc-8GI3(BXj$vUEgtOe`pktJ}jKSz{`qBk6?e6y*zdDti48DzB%k`5w9^e1f z8@wDCX#8z*%qiW*ebabjnoFs4S+yZ#EI)TX@N~nqhA{ul&tv-m0%5CfQZt4+Xa|0l zF!-&;nN6m~3hb?cCb5@K8o(`Ya;f&Ssi|^UQR3(KtgRW%l%T7l2IWH0FFqn%%qs^U zTB7|Yndt1{&#puLWv1!Xl!qo-o&S{B++J1xzalofo2+j2SKRF_D;Kb>Fhbtnu{V)Y zl`z~p;~~v@2?8vV$Od%d;z#h(V7b2mn4w$%Pw9g*b8M=QT*<I30u@O^a;Ullr3-t- zP+wd0UZRIZ95BhF82RY!cFd9={qM>@q{<jQQ%!z2?%bgzdT@7m*m>WzEz-b(eBbtb zAp{u2F2~%vr-4`t<xNXf(Y7P#GLDdH!H7Hd(FVj(?MTg1H1U+r1r%V=q^9T>&T|>* ztMUy)7uSaNp9UVO9bRecpa>!dMOrr}rMiVLM0uIGC-6`bO7OAlo-nJDR62zKK89zG z{I{HixT|2tUTy<_jyA+zsKCQ+`GGs|T|r;nm;d{G?CyK<mhh5<rs*tk;CAsC1nL>e zTtSZgACCU8a-TAKx{azhHnY*Yi5He|e3^izkLyb8DL0|(=DC`bn@|o&Zj>aqX&#~% ziR2rbt+JY56L?7`rKy1aVo1OQ%(Mz*47bGs7lHwZiM<<meuJ;)yV*ZzGRfU)jQjxJ znB-Lxfd4zX*l4Bl*hGVpkyaXZcZ*YB(BqDDb>4frafS-5&o<tnS|+Fknf0?6Hfn$M z5$XedkTAJ^fS{R1Ya0I*2ih|pB8L|=DU|T@mS5T*d;DV2wVjlvXgkus4#|L?pLVSJ zkA_e&2g_5)O_bDwb`s7P|1{9a&b8mj&W@%Pqz?s)^@r{554~Bb7-7+NQ%H!<FNzI~ zyI3>O&dJ3D{%HYywt&4edQc2_9}EdzXXC8UNq(cDJ?y{Jd)D+*XwfHb!#6LfY95UY z7+fyOiL^ee4}<OD4LLx~?S4AVJk7K}RU3w$Nrz!}?7f;in!5KSLbL>IGiI3&m_1N< z1W>*FEW2wIaIjqvAi#N=29myu7mJ`QEZmQIDWgFOjLnri&nC+GFvaIUmqVW#=(NG( zfXK=k@Y4SR68yRYP{-CbenHl0oUBYRlD2!^vJ@|HTha*+NtI{=Xix~ER)h6dBql+$ zH!OHzty{TAav&(LN##Ev=R)Md-b+^nyXB6bpQ(85pE%Mm-$|DfxjBQ~dDAdU6bzYK zpqViLDE#c{Q{tyVRw;PDTx<zh#xYNy%D!uE7P8-~VsHlAUstrbhqSh4;o*`Mtwln? zumDx|60)TrQC0c^IBGAtYSm4p&}avpqLTCou+!RMOfa{r5va_0Z*TK%ek5NK+MG4~ zi;O>aziz__0{rPEGpB;W%qC&DZm}}jaFFv1uq()e!fUkO3mOd(7+tZ7MZ6bRWktmV zdo2Y3&%p_BY$6A_F9+Oh5tblQ2(JMW8}1AEOWk};G}1&N!SPW|ovGl`l_CdwG|I_c zR5Yu>3FO~Pm>&@}hK`O-R}%baxU_=KIT?!%SogLlf!d$g(6qXba;4cv{Sjz%(v{-U zO#|z-I-_r_lrPh~sGm2)7nS4G(O9nU9bPe5r{pp=6bjmR#Vhg3#k@eIvm$HUB7j!M zcsUts|Hzv58o+Qt2bAegUtcjhTWr`)z0{Jj#Q}qQw991Wf^&gRF|?~)DmFQ=i9ICK zhd|<rc%Lp7LO-;x{bvUsF!oF^(H{&|=~#Ki=k(Y3xtamn#X5}Vhw-@`f?wo`sUo(a zXi*piV~~f=8d!B6ocP`ukCc7@W0^?2qA+}mIVQ*bVs%?zN9{n^KFfSwF2}W(O&eX? z%Rjv%R=B)MJ9a#l6+h1G7D3@UU?CGTEj(vud)q2Kn~C{FCs2h|t~Jqzpx)3*J9h0( zb2h*$LYgdm2|wo)LM%lY*<%ArWN5D#(DN7gV-6W?6(lxDH!eAX?1C_RQ$2L(CI?Y! zkSqe75$5CA2s80o1w(`yiw6{Hgvd!YIRT^<cK2AkL?*SdtaU(6+^HryvgVd_nSvWs ztDL(AtMbC!#_m#zGpQwjNMKg`Mq@$kT*wY$_yg!5`LVwVNS<8_Fh~Hi&*RCfv82H0 zw$9PsW?CaaPRNSUks(;8{1sT17{#<`(axQC2vYWF2OUz<Tz|wsq>xiSjKpFxtaN<% zk}v;GrgiHd4WkGa0L0xk{bX2oRzcnV38ZR1I;mRwb=4gG!-uV5!g6}R3T9t<yHda= zlX&ga<W8g0u4GItN;}dUe2o>N_9>*R%+Z?hQ=wXLD*)t1qx&bP#kmFt&e`jRQI6N( zUikdjJ0bWzzN(kZlq0U2&EELg7nY}l&rQI<_No{fon9>?L!Bu%R+%QzkKWkiFgd<) z_TJTep!UULJ<q%QG5E1gStz;CjdHa~XJx|Rl7`Q-7wD{tFEMc-zKe}R4Fftk@}@9Q zeBA*?e_9(c5tk2(Lpyz7%-48hsecHB`}9tfVG-cbEs&EyLm?Mq%oKF2hS;=G;Ccdl zeF6yhDrgdrX5Ppr1N*a6uxPC|h~p|%C6iJ6EI~a{01Gdcnwok%)c2N|1hz47Vo&5i z+DECiMvkM+sX{V;f#@JOET)eejvgJdY#26YcBIv&9C^khqwMUQ9l)m>0|I)Le~%D{ zkdQiT<7RewFXNA>On}vfV(3-JQPpE69@0mn#|ao=D)LG6lI$wXl5Qb{*(1FQ!%98T zTWQdu{NUu$H^Opo5lQqRE?@9u;UL-Qj<AEXDV1gx914O7l$Qtr;mM|dab(DR3S8}M zW^FtI{FCY7!!yf=(hM|Wb=FUtGVTyWN8a3JCW7pAQ<jM!JM)1(F@d_96HbI`z{D*Q z$H3_^O@vnD6yovag&aO%c<9|@FsdE#$r5!-N=pba3m{joW@ZKlyJ}d^P&TQj=1a`< zhBZr%8%AC)Z<#nf!NgC%=*7zKXM0?K*Qu9A8mD*IFxTd`ZFutT-Ln_FCZD_N&)oL0 z^ZH)977Ytt;&Kn}Zut^*otv1Dwqt8hr(0Vt*1MYNI9&>oL2c)HLohrcte@2tiLGd4 zppj4y8ly@iVTRgwk$v0o?cQRa&aH5GyAXE$M%YTo_<(-g;BB!J_R+^{$VX|#qiHr; zWUn{@(q>|9*D0-e#C@~DVRuZ@KUd&_Rp89F=@+=&ui^atruCVX7CNZKQ$bRI69vt` zor#%Qv>$eYRxWUbhegxh=&r!H_%brO$W<HzuCcxYW8sk8C6!i5`ybr2?(Z3^$0^S# zG3q<m%(Y%#rBK9chO)dt44zvr{M_88{D#3|1yYV;p|3H9PYdDtq9#XrNEk#E`w(|h zg<v!i3!7Ep2la>_>=NME9ZsB^amI-pf8`D<1=u)7VfNjIi98KP7J?RUq#$UxZ~J6n zv}2AR#$MXrn4k`Ysy*I?5r!JhU&4Fec#?#MLFTEut$zXtS(qj;vZb3_Co{5BTD1CF z8}sr82f7;H3}Khp#JiQ&d8^i2l22{_ibjRKmko*qv<aPt;pIPFR1S{sVg2AC)J*qp z^uF~gPP)dwmN|fre1-ctItx*;ei;)d;GH@vWhEbiJ=FD)z4-<&omuy|f%_&!&GBaC zn!D`q`$6*JFZR>XM^!ru6BT}*G*ds@PJ&Hc&7fevl(l38Eb`^h_Fq^zOWj+wGfdp+ zVpoFZn)>5A+YbypVhu-@`sYz#zZn@eRTbnXxEmERl32CvHmp-Q4K$obY}E9_A{=_? z{H<<ac|W(RfhEl!6t8L&yisto)QcoN`v+PcUkywMCo;y*CnF6yg6`kEc5OB9)R1w? zuD|~~UlET1?W{u<Z}+Gb+`<{)>+7dIkZC0P6COm#%-zGTE^RI|iyM)R${X4DX^7CJ z;+!aQpV2c4o?(c|GLteXNu**sY-0tS?c4Q;{)C}s3xznkLwaw;&x7esoHi*L<Ln5n zli}P{y6(CXZhr3>J&6@`uTOkNL?7MM+Q(fw{lrZ01`d8}ydn@+H>?{%GuD8)S#O<H zaZ-j=IH+08jz(EOT|6On!_)Au@850HcDd!Hd7SzVShK6@xjN^$IJKtLYBg&a)&BI| zq>5l*@O@)EvO&QFc&Vc*<-2m^e8ugvLsg{Ub>D-m*>l?|6-DEBtBE^NGe!Ef^*tWe zq?YBn5YV)rZ}Nvju^55$Kt%F=5`47qqA)8{943bShijXIxq_YIhpPVk>laTD`Qc$# zwcNJYW*zzn9TTF<zGCUi>9EcvBwAX2$ihbk-e)J$2SNSJqD+0<_t0^8#d?o3*ZFzA zb#ZGR7G~KI1v|qzYx>86kho$OAwvxw-3@FK&d!p2@|jKZ28sy@kD+uWrAp_U0Hecs zJ6OLlZW$9)8(`1(RmtTb7Ry!Y*KZ%(k=nKSr|1mhIICtAwjr~kM2$SX!C|ZBrJklc zf!y>=V6D)Jj!|ub`vfxt3#eEP;bvgWUBwwxp%sYdb+zJT1#JqbaKiodMjCJ5?lI4P z4RrRBb8bK=tB?23`zB17CXMHh?)ILJ3(Njv13X6>Q|}0vYCS9QY{~x_-6FSz+_I5? zVgfU3<<<$?w#O--oyRM>k^G$$_xQ7L_39=4yl{S=5SRU6q6Ri!d0%W=Elht06zs;p z@$iudD--WEl#-eQHj3&8c*7&Mjs=ldS<pd$;(Xt{sWZ{Y?%Q8^vR3fOUjk#!<ZoY1 zqmz0kic3UnL>?wJ`l|0BxiXUNJgvTRfo>8~T)$kEu=@VtW0AXpkEJO1(8mNfnS|^& z1bcPPHDIDL6ei-Abf^yNuD#B@lhN~`XSkwQx||IGrW=Mc$;IV!6Vw$hNV|no4_ug= zvc-}hb9=ehuRs1l$dFV|y}jkdNw5`ytN5Vz+4P?#Ca{TFt+;9F54ss3Tg!)vj{Z;q zjSdG?o@qhE!^F#@ljSQusqZ*5UV$8al^;+^&7bt>X9WG35dw}c+O>z>?E_Yd(IF-3 zwyqj~A~tU>_K;RFqy{@BVk+ojnV6`TSh1skYzdbZtDD%QM?6n_nXd3{yy;d$SvT#{ zFEw2`1>n{XK`7#m);1r6!Ve`uZnSIH;aiw#irTDl{OOGoA}`1h)!!pjf<?JR`dNo$ zqYf%Mev)Z^`TQCj6!_@j78Bq3US$HoR}8D~h|^lTWC;->)khPDIEHKtJ{Ft+UDQ7~ z*!0^VCIVW9=8Geb0Eg3ES+3}E&RzEA@S$^BlR+*z0ebwt8F;|%S$Tf|L8>3#BCnrM zpN%k3r?VGUGkx^Ai1Qw0hsIz(n*yk}?+ZQjv9AgOKH}2SwpD_BFM}67$Xl_Tl?llP zVw|h~3>42=GMhT~z3HcR)KM5RSxPw$TQtAiCnWRaNoN)P^IT|{#lWynh}56ob{Lrd z4GQ<O1|IsDo(E|)nO>Hv{^AWy(ivzKUi^4*!~<<2SR@}bj(+amzizgY*W|4O4kimu zAnOFbzR$T~Sel_fCiU&$dmg{tYI4O(*%kf7(H?5MvvK(lmoc@_hNwePO?JoSrk}BF z+$kIdWJdw&FMJlUC1nT3+LmWE&5MSC10UsOB}UK4TDd+xq_W;PLH}cgin4>3(C$=> zNL`)UX+J&$q)_rrK4j4w1qobFJJP(x9aAh1kx%5+!f)q-4J(siRgy;5{+jfXFE&)( z5yMwS7d9^%+ns7^{yX1wWw4W3JB_HB8T8)FIb*zW?Mx|;pCS!bK5!XHg*3q`_MV2U zd;l`zMTU+wSHV;1=%BR~RjO@I(We;ZHwKyO<3q?=lJ;H!YtuMN>B?X~i##Kfor&P% zI*+yt-4#;U$*5Gq@Zw^2^QcWyyp#97nC5}U3@J80YhQRJ$K+%Rmg^I^{faDlTXs)R zKNvqBGd(9idHH}sjrX~|Z)2v*+jA-QNmd^++uP!8$kxt4G<Wz9N}-pE!AV#2d`J5> z67cxuN%FV(`s0OE-l2~zw~I%tihcO*<?p4+q*sDpcb~rDC!c{E4lP>-{XhiaS21+6 z0M}hTv1y^*+<Ee_{!S6w*wKqpmUjhA17F`-P&v86A!38JVwV}Kw@)(P!yz;6P17Bw zn)s5O0a@67S36RdD0lTx>8|C%mQo<dmj6H_>a5cw%3avL3&MpBt{qv9Macebh54RY znIXjL5sf3Ac3u*$AP$i*ZM5<00oH*!M_gQ(p&24y1M}mpsmE}G_Ag>qcPm)UxeGaT z&h#6w7D0RNb#*#L*M$^7ez&~9%)}G}=N8DdwIJ>yD%WRxS<jXI_x1e1lwaNiumQgM zaHLERf%z?IX_qZq77%kmhs-T5`}!Wv_``k{HR6mw1NQJyzoN^tY+aYs%YnwZRIbUy zk{U{NO;^`kcv1c_FYVva<2Po%=o2Bi6;VAGSp?g{3RP8AjbP*t>9(BxvF=y*SwyU( zAn_%dU>J382jnnVncx}@@P*_x8Y_+HsVFM`pm$9{z4*nsUiCo1$;O23Cch{P1HvOC z&t6|bQVt=bhKH@;nLIr}Oc_?q#;|gUiHdp=By81-&m{)lqVcrNhyR%=jy5?ysQtgg zrH|JEm;Oe^Vf}W#uKtlOxhpz{Z!V?Q;?>MNiRt<cu0y7j;dR*0W-hWL1EMp*CPpC8 zv25BS*in=%QV?6%;MRSA1{>5tZF+>~uItiQ=^F+rCQ$X4M!|UPzQ4WVL<0yy^qy+? z7!v+1lm7N@?W}AAboO4DweZNap`(mY2z7m+KhC6=-b828C;1Q<T|TUz(G!fUW&Au# zs5558PPmnnl_?jp%!eP5SvQt<A@}CZO3IZyo-ja3HFhcLt1(G9lg_0O!gJvFyo)d4 z`JsFK{<PO4h=EKuHpNwQmB$As6Q{&IkwJ%}>Gx>q1TOtA+*-63GEPs$=hN+~PYc^N zHr!KCYx*&yCI*T;ss#9!4hH2Gi+JYh?8c-uo~E~LekvL!&M@xzxp4zuiU1faOZ>QX z<C>8h;P^ky5LhG->$q=GJ_o&q1FViE2PR1wX7rLH(GZh%#4IS9yyXzy`()mIZO8vB zG(en0ia_|sm1BlnoCmeQtpQJv^!h~`P}UqTfjy?%@a>Kb)DCqWu%RW;&2C$a8(I6V z!QAn5`tK*)Yu5(9Kx$GvNzo?S2gpNi0fU5@eUTG!n7Li7JJc|L`L-8tJ*1Bu35N;> zg9d|SE|#~j625h6&iB+7kgg_AlZnHRM>;G2qMQ8|f|8AYz=*2!^sGhJK&*}Nn3HS0 z_gkVvj{&c4rhwS>rnvM50)F=a&f?~b=={WmGbKKq=0Oqxgjw!jTLTtrcB(KNQy7~^ zh{ffLj`^Z8axhxA_Ny(-Ho22Ru&At*k@`~=<V?yUX13%7LeV$<r9q5Gqs^7c_Au2v zsR_(a1`y?^(zO|!`iw|$LaC952|QfLh$FDG6$+s9o}MZQe7OC7d<=q_#c~OSlsc7E zqe05{-!OhKsPwo(s)d4Sdx(6ml@x*lNJ2nINK9jdVxt2FC}Ax_<V!KP<A!Mk+z^zk zzKuBeb%EpI)nf$T52@-VfDERgobxJ;1ISgpQYg}vUEq)o^8<tsN5i+NvetR&ri1Qa zjNc%BB!-eh*D%FcE8~cvF6F+0l$V5_Yk`85v8k&tY2p&27${gD`J!||=()7N{-=Y9 z9w{^&HU)EqTCl<SsiyAvOj6C7?;(k%g*or@8G6w7mv>hb96N#Y&RxE3Q#Q0>j={jE zy<)iO;@%(F{h)=kU5uz@+k0cxThg!)o)5;z69}_l))>Pd!h&Z-hX--ASSCmJ^50MQ z@=yJxmp|wBqEy~MD}~gO(#wOl;#N^52=0NN%7E_nO}BnQ+kbu;7^|qBu3ApK^gh9^ zXhiBNHOIMh36^~Q-tKv*g6~3jhJ*A*Wdi@feE05tSdLdlmAq|kKAUcmyX(nm+m4#` zU}t5Ylf(8DtZ&?)@=FH4P4t@<8uCiM*XOW1_|?Pp&BTS6bDj4z`CR)EsO_2beL_4O zt&ps|?ikdo7dV*DfZGrSOD8zMqe6hexz?%XSO*2cG08s*FyQ&oWs~YUCwTqZuf4n$ z#_I&>4~yBgz3&YV7gR0r!J>8^0~;ZZ+8>vYhS3~J!h1b3C~_7X5{t0qU-oXOgt)}J z!0dle8_`AeRJg}4Y{%ydADMfJ^K$oR90*Y8=lZGkwT0m>ryIMZLSJL`x`S9#$0irU zk_mE;E!i%2ooeVF^EzFIrHQ|=)*oLZ-%Y5Y^&)xDuRGvu9kl5sDxSd(b2ruo?3RNv z2iR@4kO6{(EpT+YYz?1R->d}5qh(>;?YD@3KH=?iiFIvs`yxli5Wd*WDEfXTXTqFG zBXs)8oY-Cd$72TbhU`TlR(P5*?p634iUP6Hsg5Aj>?19^Nm+;lMAfd%m`xJJ3_@dA zMz6%<7|bMQ?e-&P^_kE$o6qlp{kvoprr*m+LDh04Z#Y~JAz|GwL4~(_U`3j6^3N@H zoPGiSZjKO!XY`xJ4OE5I{w8h+`XfH<@FR&tNoou;DVX$@!9;~9$bp?|q_2kH3=dG8 z-N^Ysl9FcHn5(Ouc1#HhIJmy|A-m0ZTm%V0VI*eK-5>E`dn4+n>8beFhiUbqf92ky zWq7|0pu6$w2WLoZL%ZN|aYt2<4N5U+led2kJG$PplEZ&u?D1Zv1cL=paRl{{p(u&z zk@2<dYKTJ^PnB>d>O2~P?8*b`>GuSq$T$BTH9&Q$iJn!FASs;2rvrEf{4ZZ_flmvG zej|}X#IbR?ureaqU(9#yKE)YKk}Ik46}DsJ@jN#SQ7dqreV_o1SNpW6=`+VKYUSX+ z%KzQGVZqEjF<RwQzu8z465qs<{4hZ<>=_<>%Q+^0J%Jg`4MVH1?;nBP?lVC$h(prq z_sP_+cb>1`lP^N`ZPfq%>)-#YWavlO8QbfuO8hy<DuMZ3n$E&(_irgjliv=##if2$ z;zg?6{r~&>V!FE-d?ql?MzD<9-n|!KMs_G`xjqgyH4Tk*G9)SV@ZlEGTYX>syU20$ z<3k@W>%Br8ku#3!#Q=a7lB_MLGE;O3%0>RM-%q#S))7_@;x_z^=bX2<I;OXW_4O+e zwnEu2kS}v@zW1e{m2MA1{-2>e`-?I!^*j9QMFf5LLj6CD4vYTpe@}Gz-M*kZ5osi7 z6R+LK;{sDHnKCe*U`SmeG&Bqf8!?kgv1*nlU14D%HgP?Y#wv)(KaTVlaoR`ys&<!? zxVk`rqsqyWc|?GGZA-YcU@Ve_z;m(lli(*bflj+TlTw>Q>e_?3?EgvQ?5cY;9bR~* zb@!AAsR%+Jf8_h23kkM-x*jC8E4wZ(k2Xoj*{}cTg2hNpkwb%?{p&MYsmA{8sW*-s zli;`4bMTBaWGdnAGUj%ZXwqz+o94!3%I$DgRI8_}_Sl&2m5%mWFef*?g>$Nkqhls4 zm~<ou{(Xj_RDIte1$^!}NK^K}X$%onkr2uWKZ1=R)(x0*JiN$b8`rEGM9ZdB{A8gz zb8LV(){&&XQDol|e?|{(X>G%vYxjGeirO38e`Zg+ne<t6aiv!Kw~K{#VbfdKzQ>it zq9l3op*lJB$g_a%m-r(=>lQ_nl<gS$s)I3vX0rFrfe~4(>q?l4EfK8R{R}=PMsU#b zk{E?_s}wx|_yWk*dxW4PV{tMgMFf<6Srepu@7in*U5V>*qBr=f^BOnGAo`L8=$EpJ z3g|(xkod1(%7`X<58`uZ=a+D^sBzVV5YyH#o_XMcn2=(>EZh_4SQt*y79^nsaA5qa zh9ftXgwk=tQ>)Jr#fUY6WkP!I84a68?=hg>ymn0)zh|?*UG?XlWhEl!N980vKUo?5 zW#W}*o;+fwo0eb>E^mG!)`JNMQzFQ!BeGstEsQ1r*=RKg?II1lWd6Sw!)I-^sq616 z-9oYfcg`2Dh|>3F6Mg^r_Zs4)dvBZF82^^T|D4-Zb*kl1`%p+o$coVu_x>|Uezkqv z@xsY&v7fcjPr=NNQpuw@0W(@wL4lm#ppELpH6ga(l_v8E`pQ+&wm0~g{fUp2TDiQY zt%gdj^StJnjk;X#$ZNmr;!+EXr%i9+H&;sR1xSVg4Aw4?$Om0Cvb=)@YA818SvX)M zwAj1Lz$c}HFgsg7E)C!SuYn}n73CUeXG%ODM3U(NuwyX`{gkVepN5A(n}n>4j`eqn zMa6vbZu&f9!J2(ie_G!=!xW&UwcbC%Uq4)B*TrjrX&3gZ@XM%#y$$QQp7%7o%y`4I z@Q0f>7sc+q9r5td-tDGqnJf0rU_2q9sd_I@a;XCIUl~s`nuV_nxsKS(3$h9=6t0@z z?2v2d6JuozijLs)e<*q=B*cxGTB%4kq7?cr(&gBFz-`bRMCk)32FJR8LOITyJxd%7 zh#5j(GD<|3o+2T6+a-KQw(vi`^J1sLs>MDwMl<!51pev#vbEewH=@?=_t{MDJHdG{ zb&Ef?YnKNm`)kz>1RrmYOQ&UZ5D&WU?zXW{*bfI0$a6B+WgGXJH3eFo)ya|2f$N;g z`7O`@S4sN>@+R?K6iGL!jPWlkFOTa(*`a{vZLame!DP9OIjTaSiLYM0nx(!U*oYc9 zjd6XTa&5V!yYtefYs=oMwX8~BaQ?A~!0DuQEQbf2ueWCKm3L(QHf_$zbA$~+`-Cc= zHG8DC>7x-UFWMktg2?sY!5u9{?Qkg0N_x)8YEXxb#pZybS31{B5}N?*hqaXZ{GBC- zyLWCMn$hFTE}ZBzV0KFU1nbr3jGtzYu1sF=f&Np23>@R1Sr3_QzdvQBGTdi~Srl!= zL0%W6+PEW)iyj<2#$K$IVHpl+Zmo=uk5A@n4_3y3ncExyHsayGr0U||fKB7&t9}qF zK(R}sJxO?9Vy6f&@@OL0@!$Qf{i%1K{V%4IY?^01HZh&?+goCD&8(5vzIE$@Fc6mF zV`4VQRGzwwYHn+$0vO1#??7{$ZZmW|po{k&aRtRe`FmM0iq8~yO_MAjSOqBJP^y4e zG0;^K2$z=knW^(tuf;%7DE5S*z6ZH_IgTW&3w1_qS`lqD-vtm)+&jei)k@~Uof3<v z6duMAFjY)7u7vi*S`i-(NsQD!u=?)^etb4dh8I45zB*yY6~AV~zt~vb{G)N%V%^2f z;#Eg7UD98D!0m#gWqLr<n>UM>EU9df$Svu`=&lqypTeMbPHX?`Ae4uA#5LPbWKXjL zw5tVjRdAjtQjdv=2wb|4KY00kn@gQb525l5n6Nj_S~>k;Q7!I-vCcJXbj`I5k6`X< zgEp(`OBU&kh_55j+&+H1r?&Rd-_&KYENc0FnQcuK6E4$7ar-6MFs6~q9IlB(zuf1# zD=~F`Gmma&g_apqtnry`8`g|~&2knCSP&*I?bB3^MyFWRxg<y0@>Oz4NHl0+teq6j zems&Z#QuR}*!jYyQk*tyrtl^`K$??X7na`48yl@HO;ZvgANS48ocx~IvvqAlLw#(b zyjdUJy0CMnCw*y8v(sSs^Xb6+aLFZAnQ10Z*|p0%3YO_5s6#@WOfyF|VCu2zvVL2! z72f1z06RY#2-$frFEuqaf6|{30uS6BY5ppRsD>3kMJVq+-qv~ld4&ZQ|D{ytEnnVc zNd{gaAOuVklWCC%OHz>+Myj(nUI)b(GFxW{1N<UXxd#OWB;6M+sR^EGLjB<&#Smcx z5zrWUGc~jsLEEVJwd%xko=+RBuWgfD)2_(OMc$Xv_#-<FkL(^cr`F3Hd1FRZEAl^6 zx7jcjj9n-R(rCY1%;^-Y(z%TY*-D2pWc?CHF_OeXVtpk(zxrK<s<E8ESk@yhGi_i- z@g|2l@0<!H-$w7m?jqs4cN}Vv3=FLOaNK-$i8|U95j}vbC|6>7%ne`>iI7D><UA3d z1$y=rrV9iELjP)@EqVOSUW4flX9lNkNyeslq;2>@>`vV&;!H=DpU=D+(!QlWS6eZ0 z`=0B_Cw*TMYTj-r4=W#_ENQL=y3X8DfaLnIJ{R4u30-)sL&(nTi`iiAt5_ns1|VzN z;m47R=d9Ee?AB<K1PKI73ogGLtvE%Sq)H9sUAy+KuxnhD2}7FCsov(rKDzxDa<q{z z&7maC%Eq$s_U`!v0!Zt>1BBDdY!MSv1nAf#lnMc(*m+3!7ci!0o~CoRkcYGF5BjQ) z?%}^X&t_IHS@ms)>3iAzYg2b<VK?$(u6g+y%~_hOo(pQiBfLY};&C~_U4~P&F~eug zy^g0-a0UN@$5%{;)`*Ge%opo+M_0N==4nw;C5XZ%*~jPaYx3yQH9fJdGk4KuF24h# zd*9|untd)NZl`d7sex{VBO2F6+)OJY_OWUY*{mi9!K{4jEEr?9;Bekd3sp44VZ>eW zK8-x7e)VKSF}5nlH5(ay-B50tY`;WQ<*7Ov8ZA{4sRulohnC%^NlfX&8ZO7<#VvFG z+_}WQ(sf*<!w@uEB-t;fBw%jKZrAwX<G|XRg`6H7>p3|iWI77OkrpO^X)6({`;u*v zS1(%wHJCt60-tVX3yO?H8nhM0i9+NMTH>6snOYUiUzTZ}t*P6JRly=MzD?gNn6k<g zV?`A9zO80KShgG{8Ng(5RCqP?lPEM3VNOm$^Z&Ef)vDQ}D+0SV3P}Np6I^PN<!Knc z!0_#os`&A<E_K~GcRcG0>xJ@02irI1^;g3!A+-(<G-s;!*wx`;fUSy%_w$6@em+&H zq}qQxyq1%brB%Tc$R*9{`V*04Y8~s>1!=xjGrHSD*0HG>tLK(^bJ-%AGxw%<G1VRV zZE7?wv;CbSwiWy+liNeX=wxU_z`$0~u_lphBXG%X&=MNiw(bA`A)2Mty~>57Nj>+5 z-YcM(hdWaZHuNtKZ*2RFSi!cmS~H~Djc~}Ezj%>GN-bE*7alJe-AT(h`{en`gq0bR z)D5gk;%a~OEKXnPE}y`+r;6bufSJokTGo$C&`yspb#eXtdWMMuj`Kh3C8iKZ|CpE< zU)7N<cUSH7SlX$SiZ-GZ`ztN8mD}_cW0v=jG_&qsIdw@XDXQ0n%*~Dup+CdY(rACH zew-WDQkcY0-o$0mks&dl#TNE63vVS^+Q7eKZSEHHP)BgbHEF#we4-^Kk3~LPHj$;* zvWb3{-8lH$)Fczw^JwYa{Y&OlE$W=zz?$Q%8V{PXpJ;NL(+L~;#unal@|xN9NvX@( z*x~>Pl^isGwK&Tg<MKF@pvQs%2jE6=H{>SkqD8l1$RQZ*a@FeX<AwEzN~ftgMFv@( zCmj;(5?&rJF-B^42D%dt8D#c4H#3rBOwDMH2X%}ElZV4O!-D7OHh~oSO=ML}WH|W} z#a68LLbQYN(w<C}Ssf`y%T+Zs*UO;hKtY{@vS=zfElskej-e3x&7>XU99Q!!kn3~4 zyuVHxL|SwOl9dk6-etC}6ZHS&0DgF~8J?`#kEq$!@<{D=Xp6WTvsS7h>=<M$%-qy{ z!<cxrTJZL(K)PMnod!WjEcY~4zbjWF0k&(lW1$nt!i~)7lGjjJZ4kKjlsX_Ja6qgS z7Ge?{aXFiHjoM$SH=zOhXc7fzG6K-H5)Gk_{&j4LM#QhY<+gWhDCwH-m%vgZ0S6#{ zLCCY*oZaAyUa2L<mq3!goR-wbFo$OMxangHiux$4EW%MGX%t(wY_Z0$M<g8_-YV2S zaVRmOQ0pl7#odQ?K<u^aeYPn!bt5AUGG$Pp#6esm8{-<Af6t<+7hhiaG6KCEOytj! zfpqlX>|Ah;gC0vR;d|ZZNDPBr23sS2!@9eV7lnw|2JB}1?Ai?LY|ZAau%xcQD2CXM zp?#ob>_d+ufzop>>(;%PPWgtxG|U*86#F{Y1QvJVd3kYZ`w=FGGaggl;Q1~1+qjMF z-XHRHt~*?w`r8a*=nadfgpbLjsL;Y;pFDm33g<dkXgcD-*i~&dj6ke6(uM~yD^>$A zP3Bl6-x^~XbUZh4mScjPUn7D1P?G4jZ)|l>M}Z#U;iFBBwc*k`o_4gH6AykgmJ$Y1 zcVH8-7z>xK?cs(N=26cMSb_+cH;9F>vb?Q3UU$IZ-4YO{2?v`f17THG0j!T?utJwa zOvxh&b~>h8O;RjsYtC9>2(O{f007i*<a3kvAi~;4YR0ewnOd>~ACHJuiEKlUs)SgR z3S@Z#tzU-|2;G^At!)~%@7Rttt5^2|!Tk96H|EXM1F|_7dtS>H7uQ|1Gg~7IZ$;#F zC0?oTF{SoBbCzjy^8W<vT8eZOwXQBXIXUmF^HMSKK{T!{Ta-ysJ*PrQEX>_yeO<>! z>_%|w3QdK;V5Zz*s-5i8<~t$67h_c^<-SU1tV-+H4m39#!0(5XeV-W#$jkxiBZ3fi zwsz(z&)!-nAesR&F#=Gsj9|?4$uS2y!Fr30TRpwJDv`!Q)vz@ZLCJ1oqb%)E3B16R zak!!J;>m}bQO}{JxbxAsrUrLk!0P>8b@9j*2K=Y8XY-mpp`IcUJViUMM<=aodh!1L z*XB*g>*TZ-j8eOIx0A;b!SJycE-+#{B%ci069n78z>zNq=XduJ3&DDc4^2*jjc_vp zZ+5|pevA*}lZ!><(Az;nf;i+XY|de@(sIbrOFde?%P`2o16%cNu>N!{pRE0@V}8)< zh^7YMbS@BpX(b&#L%jYZM?dd`0t=_XepFrvlaIM>mMMd$cD@Gti(yEG)Ug>V<AVfF zoPq#TlI#vGC>G#;^ex2si&Pij-m^e(_29vSy>_fN)JYt)9eZ?o5X$D8&z>YjY3Ftw z7ou8Lq4m$(`yBV#eZ}(`PH)xAq}Zth1iWzj;5SV7|9(%wqTlYxZ+A_q_{h|Jh4*g! zLgb0@?IAIs9<+XDU27i<Go~~WQe*zKb(Ayrc6VzKc#u&Ln~IT<HRQ1heP*GUoIpOb z#~0m#pi}=bJg!skUBP#`i{fk||7E}cEQ}1NWk?<)fylJ99P7xOsT_vwaeYL;fu}&; zhVZ~QT|7x~%%;9XOpGM4%J&UJvq*e~1YNuO90@{Wga+I<j0819etU6%`nJEvzfHs1 zIt4?n+vm>BltHwaXNqy<hV}tcB3B)7<CQT68bSUVUE(5L@`EnS>T%4`D<{Me26x3x z`i~gNgX{~Q+*0z$W825~<&YCuEwA|vgdbb0_u)(PXU?W{{I4!yV<ge+X!(7^(BP7x zJhmDi4&wBLA1hcbO}>2T_?O>+m_vmmRTKZq;cQGmkU^k|Ql7Do*qCneL=T96+)t67 z1!^)DNr0y1n0@U{BI|n<o^bN_+j#i+;vYFexkut-cIJ>JUUy>r?|^;of#6rrH2{Dx z4$`{4XUX?mK`}%AI}fND!9Y2pF_}W$d<nKSDez1h&3F<|zF?OU^|3LW%?4<V#yph+ zLFlpstp#{$K0;0ogyBSFl3Dpu>HE}Uw>;6bcB}Z8w|=xieQ)sy>>Y6D-v_@_U$TMJ zyN!)t1B}QdW6z~K>EANt14goB7KP+<g#SQ4i3){_6!L_5WL<MKQpOjX&>f)$`vQ#v z<ib?GuEHFIU=5-_S}TLn7nWcKUX941(j)+1>L|+Db{JS$q<G_7+>b6MUK0!}-JQFx z&cvO>&I`J`Q=KhlxMe7NIN02FlVQYy*<W9Lxf7Q(`e}~Vi=v$ni=Jw$A4O`0UtyCE zh0rQM53pv0kQD3O$Cun=SZ4xz-$=p5m`2vT>PN>{3HW)*3O#XEr{-Y06oaBbcWR*? zKeZ{Ls$H=D>jao#K@Iu{a*gDlrMu}j=l_2HAKZrlx9+gDohvzBYLeR}BP}l#zvJM^ F{{l^7eA55` literal 48315 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�?!+MKgme427U4jbjQ%ygEJE$z0%cQ$fO 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 diff --git a/docs/images/activation-functions/hard-silu.png b/docs/images/activation-functions/hard-silu.png index de9fd2a8b25e2e5e132eb3f729c49c4985035ff3..db84ce40eed09f22bd9a75d722ecf8e309359fa9 100644 GIT binary patch literal 62872 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 literal 48031 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 PB;av21g$UpU}y5*PbkdF diff --git a/src/NeuralNet/ActivationFunctions/HardSiLU/HardSiLU.php b/src/NeuralNet/ActivationFunctions/HardSiLU/HardSiLU.php index 0f9bd86fa..6ed54631a 100644 --- a/src/NeuralNet/ActivationFunctions/HardSiLU/HardSiLU.php +++ b/src/NeuralNet/ActivationFunctions/HardSiLU/HardSiLU.php @@ -63,19 +63,19 @@ public function activate(NDArray $input) : NDArray * * f'(x) = HardSigmoid(x) + x * HardSigmoid'(x) * - * @param NDArray $output Output matrix + * @param NDArray $input Input matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $output) : NDArray + public function differentiate(NDArray $input) : NDArray { // Calculate HardSigmoid(x) - $hardSigmoid = $this->hardSigmoid->activate($output); + $hardSigmoid = $this->hardSigmoid->activate($input); // Calculate HardSigmoid'(x) - $hardSigmoidDerivative = $this->hardSigmoid->differentiate($output); + $hardSigmoidDerivative = $this->hardSigmoid->differentiate($input); // Calculate x * HardSigmoid'(x) - $xTimesDerivative = NumPower::multiply($x, $hardSigmoidDerivative); + $xTimesDerivative = NumPower::multiply($input, $hardSigmoidDerivative); // Calculate HardSigmoid(x) + x * HardSigmoid'(x) return NumPower::add($hardSigmoid, $xTimesDerivative); diff --git a/tests/NeuralNet/ActivationFunctions/HardSiLU/HardSiLUTest.php b/tests/NeuralNet/ActivationFunctions/HardSiLU/HardSiLUTest.php index 749a1f322..5eee0a332 100644 --- a/tests/NeuralNet/ActivationFunctions/HardSiLU/HardSiLUTest.php +++ b/tests/NeuralNet/ActivationFunctions/HardSiLU/HardSiLUTest.php @@ -34,7 +34,7 @@ public static function computeProvider() : Generator [2.5, 2.0, 1.0, -0.5, 0.0, 20.0, -2.5, -10.0], ]), [ - [2.5, 1.7999999523162842, 0.699999988079071, -0.20000000298023224, 0.0, 20.0, 0.0, 0.0], + [2.5, 1.7999999, 0.6999999, -0.2000000, 0.0, 20.0, 0.0, 0.0], ], ]; @@ -45,9 +45,9 @@ public static function computeProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [-0.05711999908089638, 0.1742199957370758, -0.19698001444339752], - [0.6910200119018555, 0.04127999767661095, -0.014819999225437641], - [0.025499999523162842, -0.2059199959039688, 0.3283199965953827], + [-0.0571199, 0.1742199, -0.1969800], + [0.6910200, 0.0412799, -0.0148199], + [0.0254999, -0.2059199, 0.3283199], ], ]; @@ -66,9 +66,9 @@ public static function computeProvider() : Generator // At x = 2.5, HardSigmoid(x) = 1, so HardSiLU(2.5) = 2.5 * 1 = 2.5 [0.0, 2.5], // Just inside boundaries - [-0.0004997340147383511, 2.498500347137451], + [-0.0004997, 2.4985003], // Just outside boundaries - [0.0, 2.500999927520752], + [0.0, 2.5009999], ], ]; @@ -76,12 +76,12 @@ public static function computeProvider() : Generator yield [ NumPower::array([ // Zero and very small values around zero - [0.0, 0.0000001, -0.0000001, 0.0000000001, -0.0000000001], + [0.0, 0.000001, -0.0000001, 0.0000000001, -0.0000000001], ]), [ // HardSiLU(0) = 0 * 0.5 = 0 // For very small values, HardSigmoid(x) ≈ 0.5, so HardSiLU(x) ≈ x * 0.5 - [0.0, 0.00000005000000058430487, -0.00000004999999703159119, 0.0000000000500000006675716, -0.0000000000500000006675716], + [0.0, 0.0000005, -0.0000000, 0.0000000, -0.0000000], ], ]; } @@ -96,7 +96,7 @@ public static function differentiateProvider() : Generator [2.5, 1.0, -0.5, 0.0, 20.0, -10.0], ]), [ - [1.0, 0.8999999761581421, 0.30000001192092896, 0.5, 1.0, 0.0], + [1.5, 0.8999999, 0.30000001192092896, 0.5, 1.0, 0.0], ], ]; @@ -107,9 +107,9 @@ public static function differentiateProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [0.45200002193450928, 0.6239999532699585, 0.30400002002716064], - [0.8960000276565552, 0.531999945640564, 0.48799997568130493], - [0.5199999809265137, 0.2919999957084656, 0.715999960899353], + [0.4520000, 0.6239999, 0.3040000], + [0.8960000, 0.5319999, 0.4879999], + [0.5199999, 0.2919999, 0.7159999], ], ]; @@ -125,9 +125,9 @@ public static function differentiateProvider() : Generator ]), [ // At boundaries: derivative is 0 at x = -2.5 and 1 at x = 2.5 - [0.0, 1.0], + [-0.5, 1.5], // Just inside boundaries - [-0.49960005283355713, 1.4996000528335571], + [-0.4996000, 1.4996000], // Just outside boundaries [0.0, 1.0], ], @@ -137,12 +137,12 @@ public static function differentiateProvider() : Generator yield [ NumPower::array([ // Zero and very small values around zero - [0.0, 0.0000001, -0.0000001, 0.0000000001, -0.0000000001], + [0.0, -0.00001, 0.000001, -0.0000001, 0.00000001, -0.000000001], ]), [ // At x = 0, derivative is 0.5 // For very small values, derivative is close to 0.5 - [0.5, 0.5, 0.4999999403953552, 0.5, 0.5], + [0.5, 0.4999960, 0.5000003, 0.4999999, 0.5, 0.5], ], ]; } @@ -171,17 +171,16 @@ public function testActivate(NDArray $input, array $expected) : void { $activations = $this->activationFn->activate($input)->toArray(); - static::assertEqualsWithDelta($expected, $activations, 1e-16); + static::assertEqualsWithDelta($expected, $activations, 1e-7); } #[Test] - #[TestDox('Correctly differentiates the output')] + #[TestDox('Correctly differentiates the input')] #[DataProvider('differentiateProvider')] - public function testDifferentiate(NDArray $output, array $expected) : void + public function testDifferentiate(NDArray $input, array $expected) : void { - $derivatives = $this->activationFn->differentiate($output)->toArray(); - - static::assertEqualsWithDelta($expected, $derivatives, 1e-16); + $derivatives = $this->activationFn->differentiate($input)->toArray(); + static::assertEqualsWithDelta($expected, $derivatives, 1e-7); } } From 87cb3b9aa3b69e78f5ede2074db4f3e72f44092e Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Wed, 25 Jun 2025 19:44:40 +0300 Subject: [PATCH 20/22] Refactoring HyperbolicTangent with IBufferDerivative --- .../HyperbolicTangent/HyperbolicTangent.php | 4 +-- .../HyperbolicTangentTest.php | 28 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php b/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php index bb9a8c8a5..629422c86 100644 --- a/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php +++ b/src/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangent.php @@ -7,7 +7,7 @@ use NumPower; use NDArray; use Rubix\ML\NeuralNet\ActivationFunctions\Base\Contracts\ActivationFunction; -use Rubix\ML\NeuralNet\ActivationFunctions\Base\Contracts\IBufferDerivative; +use Rubix\ML\NeuralNet\ActivationFunctions\Base\Contracts\OBufferDerivative; /** * Hyperbolic Tangent @@ -20,7 +20,7 @@ * @author Andrew DalPino * @author Samuel Akopyan <leumas.a@gmail.com> */ -class HyperbolicTangent implements ActivationFunction, IBufferDerivative +class HyperbolicTangent implements ActivationFunction, OBufferDerivative { /** * Apply the Hyperbolic Tangent activation function to the input. diff --git a/tests/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangentTest.php b/tests/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangentTest.php index 79dc6b11c..948d1c297 100644 --- a/tests/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangentTest.php +++ b/tests/NeuralNet/ActivationFunctions/HyperbolicTangent/HyperbolicTangentTest.php @@ -34,7 +34,7 @@ public static function computeProvider() : Generator [9.0, 2.5, 2.0, 1.0, -0.5, 0.0, 20.0, -10.0], ]), [ - [0.9999999403953552, 0.9866142868995667, 0.9640275835990906, 0.7615941762924194, -0.46211716532707214, 0.0, 1.0, -1.0], + [0.9999999, 0.9866142, 0.9640275, 0.7615941, -0.4621171, 0.0, 1.0, -1.0], ], ]; @@ -45,9 +45,9 @@ public static function computeProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [-0.11942730098962784, 0.3004370927810669, -0.45421645045280457], - [0.7573622465133667, 0.07982976734638214, -0.02999100275337696], - [0.049958378076553345, -0.47769999504089355, 0.4929879903793335], + [-0.1194273, 0.3004370, -0.4542164], + [0.7573622, 0.0798297, -0.0299910], + [0.0499583, -0.4776999, 0.4929879], ], ]; } @@ -59,23 +59,23 @@ public static function differentiateProvider() : Generator { yield [ NumPower::array([ - [0.9640275835990906, 0.7615941762924194, -0.46211716532707214, 0.0, 1.0, -1.0], + [0.9640275, 0.7615941, -0.4621171, 0.0, 1.0, -1.0], ]), [ - [0.07065081596374512, 0.41997432708740234, 0.7864477038383484, 1.0, 0.0, 0.0], + [0.0706509, 0.4199743, 0.7864477, 1.0, 0.0, 0.0], ], ]; yield [ NumPower::array([ - [-0.11942730098962784, 0.3004370927810669, -0.45421645045280457], - [0.7573623085022249, 0.07978830223560329, -0.029991223630861304], - [0.049958395721942955, -0.4778087574005698, 0.4930591567725708], + [-0.1194273, 0.3004370, -0.4542164], + [0.7573623, 0.0797883, -0.0299912], + [0.0499583, -0.4778087, 0.4930591], ]), [ - [0.985737144947052, 0.9097375273704529, 0.7936874032020569], - [0.42640233039855957, 0.9936338067054749, 0.9991005063056946], - [0.9975041747093201, 0.7716988325119019, 0.7568926811218262], + [0.9857371, 0.9097375, 0.7936874], + [0.4264023, 0.9936338, 0.9991005], + [0.9975042, 0.7716988, 0.7568927], ], ]; } @@ -104,7 +104,7 @@ public function testActivate(NDArray $input, array $expected) : void { $activations = $this->activationFn->activate($input)->toArray(); - static::assertEqualsWithDelta($expected, $activations, 1e-16); + static::assertEqualsWithDelta($expected, $activations, 1e-7); } #[Test] @@ -114,6 +114,6 @@ public function testDifferentiate(NDArray $output, array $expected) : void { $derivatives = $this->activationFn->differentiate($output)->toArray(); - static::assertEqualsWithDelta($expected, $derivatives, 1e-16); + static::assertEqualsWithDelta($expected, $derivatives, 1e-7); } } From edb02d02423ed704708905aa6c38c6079d7adf8b Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Wed, 25 Jun 2025 20:03:34 +0300 Subject: [PATCH 21/22] Refactoring LeakyReLU with IBufferDerivative --- .../LeakyReLU/LeakyReLU.php | 8 ++--- .../LeakyReLU/LeakyReLUTest.php | 32 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php b/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php index 92d6e3792..bace16275 100644 --- a/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php +++ b/src/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLU.php @@ -82,17 +82,17 @@ public function activate(NDArray $input) : NDArray * f'(x) = 1 if x > 0 * f'(x) = leakage if x ≤ 0 * - * @param NDArray $output Output matrix + * @param NDArray $input Input matrix * @return NDArray Derivative matrix */ - public function differentiate(NDArray $output) : NDArray + public function differentiate(NDArray $input) : NDArray { // For x > 0: 1 - $positivePart = NumPower::greater($output, 0); + $positivePart = NumPower::greater($input, 0); // For x <= 0: leakage $negativePart = NumPower::multiply( - NumPower::lessEqual($output, 0), + NumPower::lessEqual($input, 0), $this->leakage ); diff --git a/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php b/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php index 982e94de3..179ea5bd9 100644 --- a/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php +++ b/tests/NeuralNet/ActivationFunctions/LeakyReLU/LeakyReLUTest.php @@ -35,7 +35,7 @@ public static function computeProvider() : Generator [2.0, 1.0, -0.5, 0.0, 20.0, -10.0], ]), [ - [2.0, 1.0, -0.004999999888241291, 0.0, 20.0, -0.09999999403953552], + [2.0, 1.0, -0.0049999, 0.0, 20.0, -0.0999999], ], ]; @@ -46,9 +46,9 @@ public static function computeProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [-0.0011999999405816197, 0.3100000023841858, -0.004900000058114529], - [0.9900000095367432, 0.07999999821186066, -0.00029999998514540493], - [0.05000000074505806, -0.005199999548494816, 0.5400000214576721], + [-0.0011999, 0.3100000, -0.0049000], + [0.9900000, 0.0799999, -0.0002999], + [0.0500000, -0.0051999, 0.5400000], ], ]; } @@ -60,10 +60,10 @@ public static function differentiateProvider() : Generator { yield [ NumPower::array([ - [2.0, 1.0, -0.5, 0.0, 20.0, -10.0], + [4.0, 2.0, 1.0, -0.5, 0.0, 20.0, -10.0], ]), [ - [1.0, 1.0, 0.009999999776482582, 0.009999999776482582, 1.0, 0.009999999776482582], + [1.0, 1.0, 1.0, 0.0099999, 0.0099999, 1.0, 0.0099999], ], ]; @@ -74,9 +74,9 @@ public static function differentiateProvider() : Generator [0.05, -0.52, 0.54], ]), [ - [0.009999999776482582, 1.0, 0.009999999776482582], - [1.0, 1.0, 0.009999999776482582], - [1.0, 0.009999999776482582, 1.0], + [0.0099999, 1.0, 0.0099999], + [1.0, 1.0, 0.0099999], + [1.0, 0.0099999, 1.0], ], ]; } @@ -113,7 +113,7 @@ public static function boundaryProvider() : Generator ]), [ - [0.0010000000474974513, -0.000010000000656873453, 0.00009999999747378752, -0.0000009999999974752427], + [0.0010000, -0.0000100, 0.0000999, -0.0000009], ], ]; } @@ -161,7 +161,7 @@ public function testActivate(NDArray $input, array $expected) : void { $activations = $this->activationFn->activate($input)->toArray(); - static::assertEqualsWithDelta($expected, $activations, 1e-16); + static::assertEqualsWithDelta($expected, $activations, 1e-7); } #[Test] @@ -171,16 +171,16 @@ public function testBoundaryActivate(NDArray $input, array $expected) : void { $activations = $this->activationFn->activate($input)->toArray(); - static::assertEqualsWithDelta($expected, $activations, 1e-16); + static::assertEqualsWithDelta($expected, $activations, 1e-7); } #[Test] - #[TestDox('Correctly differentiates the output')] + #[TestDox('Correctly differentiates the input')] #[DataProvider('differentiateProvider')] - public function testDifferentiate(NDArray $output, array $expected) : void + public function testDifferentiate(NDArray $input, array $expected) : void { - $derivatives = $this->activationFn->differentiate($output)->toArray(); + $derivatives = $this->activationFn->differentiate($input)->toArray(); - static::assertEqualsWithDelta($expected, $derivatives, 1e-16); + static::assertEqualsWithDelta($expected, $derivatives, 1e-7); } } From 6c4d9f4c3c3c4fca59dd60492eb44ab7c3979a1c Mon Sep 17 00:00:00 2001 From: Samuel Akopyan <samuel.akopyan@thrivedx.com> Date: Wed, 25 Jun 2025 20:14:19 +0300 Subject: [PATCH 22/22] Typo fix in exception text --- src/NeuralNet/ActivationFunctions/ELU/ELU.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NeuralNet/ActivationFunctions/ELU/ELU.php b/src/NeuralNet/ActivationFunctions/ELU/ELU.php index 654f8cb06..a0ca1fe36 100644 --- a/src/NeuralNet/ActivationFunctions/ELU/ELU.php +++ b/src/NeuralNet/ActivationFunctions/ELU/ELU.php @@ -40,7 +40,7 @@ public function __construct(protected float $alpha = 1.0) { if ($this->alpha < 0.0) { throw new InvalidAlphaException( - message: "Alpha must be greater than 0, $alpha given." + message: "Alpha must be greater than 0, {$this->alpha} given." ); } }