From 3e10c5850db383cc0bb53f141b81ba6637be9095 Mon Sep 17 00:00:00 2001 From: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com> Date: Tue, 3 May 2022 09:19:50 -0500 Subject: [PATCH 1/9] feat: add hole in dino wall (#306) * feat: add mouse hole in dino wall * style: trailing comma --- .../flutter_forest_bonus_behavior.dart | 2 +- lib/game/game_assets.dart | 1 + .../assets/images/dino/top-wall-tunnel.png | Bin 0 -> 588 bytes .../assets/images/dino/top-wall.png | Bin 34586 -> 28619 bytes .../lib/gen/assets.gen.dart | 4 + .../lib/src/components/dino_walls.dart | 120 ++++++++++++------ .../lib/src/components/z_indexes.dart | 2 + .../pinball_components/sandbox/lib/main.dart | 8 +- .../lib/stories/chrome_dino/stories.dart | 11 -- .../chrome_dino_game.dart | 0 .../dino_walls_game.dart} | 5 +- .../slingshots_game.dart} | 4 +- .../lib/stories/dino_desert/stories.dart | 24 ++++ .../lib/stories/dino_wall/stories.dart | 11 -- .../lib/stories/slingshot/stories.dart | 11 -- .../sandbox/lib/stories/stories.dart | 4 +- .../test/src/components/dino_walls_test.dart | 1 + .../test/src/components/golden/dino-walls.png | Bin 159115 -> 151866 bytes .../dino_desert/dino_desert_test.dart | 1 + test/game/pinball_game_test.dart | 1 + 20 files changed, 123 insertions(+), 87 deletions(-) create mode 100644 packages/pinball_components/assets/images/dino/top-wall-tunnel.png delete mode 100644 packages/pinball_components/sandbox/lib/stories/chrome_dino/stories.dart rename packages/pinball_components/sandbox/lib/stories/{chrome_dino => dino_desert}/chrome_dino_game.dart (100%) rename packages/pinball_components/sandbox/lib/stories/{dino_wall/dino_wall_game.dart => dino_desert/dino_walls_game.dart} (85%) rename packages/pinball_components/sandbox/lib/stories/{slingshot/slingshot_game.dart => dino_desert/slingshots_game.dart} (92%) create mode 100644 packages/pinball_components/sandbox/lib/stories/dino_desert/stories.dart delete mode 100644 packages/pinball_components/sandbox/lib/stories/dino_wall/stories.dart delete mode 100644 packages/pinball_components/sandbox/lib/stories/slingshot/stories.dart diff --git a/lib/game/components/flutter_forest/behaviors/flutter_forest_bonus_behavior.dart b/lib/game/components/flutter_forest/behaviors/flutter_forest_bonus_behavior.dart index 86857ee4..8f1b46e8 100644 --- a/lib/game/components/flutter_forest/behaviors/flutter_forest_bonus_behavior.dart +++ b/lib/game/components/flutter_forest/behaviors/flutter_forest_bonus_behavior.dart @@ -40,7 +40,7 @@ class FlutterForestBonusBehavior extends Component .add(const BonusActivated(GameBonus.dashNest)); canvas.add( ControlledBall.bonus(characterTheme: gameRef.characterTheme) - ..initialPosition = Vector2(17.2, -52.7), + ..initialPosition = Vector2(29.5, -24.5), ); animatronic.playing = true; signpost.bloc.onProgressed(); diff --git a/lib/game/game_assets.dart b/lib/game/game_assets.dart index 621ffb53..2a847ce0 100644 --- a/lib/game/game_assets.dart +++ b/lib/game/game_assets.dart @@ -38,6 +38,7 @@ extension PinballGameAssetsX on PinballGame { ), images.load(components.Assets.images.dino.bottomWall.keyName), images.load(components.Assets.images.dino.topWall.keyName), + images.load(components.Assets.images.dino.topWallTunnel.keyName), images.load(components.Assets.images.dino.animatronic.head.keyName), images.load(components.Assets.images.dino.animatronic.mouth.keyName), images.load(components.Assets.images.dash.animatronic.keyName), diff --git a/packages/pinball_components/assets/images/dino/top-wall-tunnel.png b/packages/pinball_components/assets/images/dino/top-wall-tunnel.png new file mode 100644 index 0000000000000000000000000000000000000000..07cb9c468a3ae983825f756d989bae9b9b6aac84 GIT binary patch literal 588 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 const AssetGenImage('assets/images/dino/bottom-wall.png'); + /// File path: assets/images/dino/top-wall-tunnel.png + AssetGenImage get topWallTunnel => + const AssetGenImage('assets/images/dino/top-wall-tunnel.png'); + /// File path: assets/images/dino/top-wall.png AssetGenImage get topWall => const AssetGenImage('assets/images/dino/top-wall.png'); diff --git a/packages/pinball_components/lib/src/components/dino_walls.dart b/packages/pinball_components/lib/src/components/dino_walls.dart index 5ca9e8c4..5125d4bc 100644 --- a/packages/pinball_components/lib/src/components/dino_walls.dart +++ b/packages/pinball_components/lib/src/components/dino_walls.dart @@ -23,59 +23,70 @@ class DinoWalls extends Component { /// {@template dino_top_wall} /// Wall segment located above [ChromeDino]. /// {@endtemplate} -class _DinoTopWall extends BodyComponent with InitialPosition, ZIndex { +class _DinoTopWall extends BodyComponent with InitialPosition { ///{@macro dino_top_wall} _DinoTopWall() : super( - children: [_DinoTopWallSpriteComponent()], + children: [ + _DinoTopWallSpriteComponent(), + _DinoTopWallTunnelSpriteComponent(), + ], renderBody: false, - ) { - zIndex = ZIndexes.dinoTopWall; - } + ); List _createFixtureDefs() { - final topStraightShape = EdgeShape() + final topEdgeShape = EdgeShape() ..set( - Vector2(28.65, -34.3), - Vector2(29.5, -34.3), + Vector2(29.25, -35.27), + Vector2(28.4, -34.77), ); final topCurveShape = BezierCurveShape( controlPoints: [ - topStraightShape.vertex1, - Vector2(18.8, -26.2), - Vector2(26.6, -20.2), + topEdgeShape.vertex2, + Vector2(21.35, -28.72), + Vector2(23.45, -24.62), ], ); - final middleCurveShape = BezierCurveShape( - controlPoints: [ + final tunnelTopEdgeShape = EdgeShape() + ..set( topCurveShape.vertices.last, - Vector2(27.8, -19.3), - Vector2(26.8, -18.7), - ], - ); + Vector2(30.35, -27.32), + ); - final bottomCurveShape = BezierCurveShape( - controlPoints: [ - middleCurveShape.vertices.last, - Vector2(23, -14.2), - Vector2(27, -14.2), - ], - ); + final tunnelBottomEdgeShape = EdgeShape() + ..set( + Vector2(30.75, -23.17), + Vector2(25.45, -21.22), + ); - final bottomStraightShape = EdgeShape() + final middleEdgeShape = EdgeShape() ..set( - bottomCurveShape.vertices.last, - Vector2(31, -13.7), + tunnelBottomEdgeShape.vertex2, + Vector2(27.45, -19.32), + ); + + final bottomEdgeShape = EdgeShape() + ..set( + middleEdgeShape.vertex2, + Vector2(24.65, -15.02), + ); + + final undersideEdgeShape = EdgeShape() + ..set( + bottomEdgeShape.vertex2, + Vector2(31.75, -13.77), ); return [ - FixtureDef(topStraightShape), + FixtureDef(topEdgeShape), FixtureDef(topCurveShape), - FixtureDef(middleCurveShape), - FixtureDef(bottomCurveShape), - FixtureDef(bottomStraightShape), + FixtureDef(tunnelTopEdgeShape), + FixtureDef(tunnelBottomEdgeShape), + FixtureDef(middleEdgeShape), + FixtureDef(bottomEdgeShape), + FixtureDef(undersideEdgeShape), ]; } @@ -93,7 +104,15 @@ class _DinoTopWall extends BodyComponent with InitialPosition, ZIndex { } } -class _DinoTopWallSpriteComponent extends SpriteComponent with HasGameRef { +class _DinoTopWallSpriteComponent extends SpriteComponent + with HasGameRef, ZIndex { + _DinoTopWallSpriteComponent() + : super( + position: Vector2(22.75, -38.07), + ) { + zIndex = ZIndexes.dinoTopWall; + } + @override Future onLoad() async { await super.onLoad(); @@ -104,7 +123,26 @@ class _DinoTopWallSpriteComponent extends SpriteComponent with HasGameRef { ); this.sprite = sprite; size = sprite.originalSize / 10; - position = Vector2(22.8, -38.1); + } +} + +class _DinoTopWallTunnelSpriteComponent extends SpriteComponent + with HasGameRef, ZIndex { + _DinoTopWallTunnelSpriteComponent() + : super(position: Vector2(23.31, -26.01)) { + zIndex = ZIndexes.dinoTopWallTunnel; + } + + @override + Future onLoad() async { + await super.onLoad(); + final sprite = Sprite( + gameRef.images.fromCache( + Assets.images.dino.topWallTunnel.keyName, + ), + ); + this.sprite = sprite; + size = sprite.originalSize / 10; } } @@ -122,7 +160,7 @@ class _DinoBottomWall extends BodyComponent with InitialPosition, ZIndex { } List _createFixtureDefs() { - final topStraightShape = EdgeShape() + final topEdgeShape = EdgeShape() ..set( Vector2(32.4, -8.8), Vector2(25, -7.7), @@ -130,29 +168,29 @@ class _DinoBottomWall extends BodyComponent with InitialPosition, ZIndex { final topLeftCurveShape = BezierCurveShape( controlPoints: [ - topStraightShape.vertex2, + topEdgeShape.vertex2, Vector2(21.8, -7), Vector2(29.8, 13.8), ], ); - final bottomLeftStraightShape = EdgeShape() + final bottomLeftEdgeShape = EdgeShape() ..set( topLeftCurveShape.vertices.last, Vector2(31.9, 44.1), ); - final bottomStraightShape = EdgeShape() + final bottomEdgeShape = EdgeShape() ..set( - bottomLeftStraightShape.vertex2, + bottomLeftEdgeShape.vertex2, Vector2(37.8, 44.1), ); return [ - FixtureDef(topStraightShape), + FixtureDef(topEdgeShape), FixtureDef(topLeftCurveShape), - FixtureDef(bottomLeftStraightShape), - FixtureDef(bottomStraightShape), + FixtureDef(bottomLeftEdgeShape), + FixtureDef(bottomEdgeShape), ]; } diff --git a/packages/pinball_components/lib/src/components/z_indexes.dart b/packages/pinball_components/lib/src/components/z_indexes.dart index 440bd1fe..b8371273 100644 --- a/packages/pinball_components/lib/src/components/z_indexes.dart +++ b/packages/pinball_components/lib/src/components/z_indexes.dart @@ -53,6 +53,8 @@ abstract class ZIndexes { static const dinoTopWall = _above + ballOnBoard; + static const dinoTopWallTunnel = _below + ballOnBoard; + static const dino = _above + dinoTopWall; static const dinoBottomWall = _above + dino; diff --git a/packages/pinball_components/sandbox/lib/main.dart b/packages/pinball_components/sandbox/lib/main.dart index 9fdee65a..9bce5632 100644 --- a/packages/pinball_components/sandbox/lib/main.dart +++ b/packages/pinball_components/sandbox/lib/main.dart @@ -14,19 +14,17 @@ void main() { addBallStories(dashbook); addLayerStories(dashbook); addEffectsStories(dashbook); - addChromeDinoStories(dashbook); addFlutterForestStories(dashbook); - addBottomGroupStories(dashbook); - addPlungerStories(dashbook); - addSlingshotStories(dashbook); addSparkyScorchStories(dashbook); addAndroidAcresStories(dashbook); + addDinoDesertStories(dashbook); + addBottomGroupStories(dashbook); + addPlungerStories(dashbook); addBoundariesStories(dashbook); addGoogleWordStories(dashbook); addLaunchRampStories(dashbook); addScoreStories(dashbook); addBackboardStories(dashbook); - addDinoWallStories(dashbook); addMultiballStories(dashbook); addMultipliersStories(dashbook); diff --git a/packages/pinball_components/sandbox/lib/stories/chrome_dino/stories.dart b/packages/pinball_components/sandbox/lib/stories/chrome_dino/stories.dart deleted file mode 100644 index a4c70c03..00000000 --- a/packages/pinball_components/sandbox/lib/stories/chrome_dino/stories.dart +++ /dev/null @@ -1,11 +0,0 @@ -import 'package:dashbook/dashbook.dart'; -import 'package:sandbox/common/common.dart'; -import 'package:sandbox/stories/chrome_dino/chrome_dino_game.dart'; - -void addChromeDinoStories(Dashbook dashbook) { - dashbook.storiesOf('Chrome Dino').addGame( - title: 'Traced', - description: ChromeDinoGame.description, - gameBuilder: (_) => ChromeDinoGame(), - ); -} diff --git a/packages/pinball_components/sandbox/lib/stories/chrome_dino/chrome_dino_game.dart b/packages/pinball_components/sandbox/lib/stories/dino_desert/chrome_dino_game.dart similarity index 100% rename from packages/pinball_components/sandbox/lib/stories/chrome_dino/chrome_dino_game.dart rename to packages/pinball_components/sandbox/lib/stories/dino_desert/chrome_dino_game.dart diff --git a/packages/pinball_components/sandbox/lib/stories/dino_wall/dino_wall_game.dart b/packages/pinball_components/sandbox/lib/stories/dino_desert/dino_walls_game.dart similarity index 85% rename from packages/pinball_components/sandbox/lib/stories/dino_wall/dino_wall_game.dart rename to packages/pinball_components/sandbox/lib/stories/dino_desert/dino_walls_game.dart index 0d213aa4..849e17a8 100644 --- a/packages/pinball_components/sandbox/lib/stories/dino_wall/dino_wall_game.dart +++ b/packages/pinball_components/sandbox/lib/stories/dino_desert/dino_walls_game.dart @@ -4,8 +4,8 @@ import 'package:flame/input.dart'; import 'package:pinball_components/pinball_components.dart'; import 'package:sandbox/stories/ball/basic_ball_game.dart'; -class DinoWallGame extends BallGame { - DinoWallGame() : super(); +class DinoWallsGame extends BallGame { + DinoWallsGame() : super(); static const description = ''' Shows how DinoWalls are rendered. @@ -20,6 +20,7 @@ class DinoWallGame extends BallGame { await images.loadAll([ Assets.images.dino.topWall.keyName, + Assets.images.dino.topWallTunnel.keyName, Assets.images.dino.bottomWall.keyName, ]); diff --git a/packages/pinball_components/sandbox/lib/stories/slingshot/slingshot_game.dart b/packages/pinball_components/sandbox/lib/stories/dino_desert/slingshots_game.dart similarity index 92% rename from packages/pinball_components/sandbox/lib/stories/slingshot/slingshot_game.dart rename to packages/pinball_components/sandbox/lib/stories/dino_desert/slingshots_game.dart index 11c38c0c..1a9eb2e5 100644 --- a/packages/pinball_components/sandbox/lib/stories/slingshot/slingshot_game.dart +++ b/packages/pinball_components/sandbox/lib/stories/dino_desert/slingshots_game.dart @@ -2,8 +2,8 @@ import 'package:flame/extensions.dart'; import 'package:pinball_components/pinball_components.dart'; import 'package:sandbox/stories/ball/basic_ball_game.dart'; -class SlingshotGame extends BallGame { - SlingshotGame() +class SlingshotsGame extends BallGame { + SlingshotsGame() : super( imagesFileNames: [ Assets.images.slingshot.upper.keyName, diff --git a/packages/pinball_components/sandbox/lib/stories/dino_desert/stories.dart b/packages/pinball_components/sandbox/lib/stories/dino_desert/stories.dart new file mode 100644 index 00000000..bd8fc329 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/dino_desert/stories.dart @@ -0,0 +1,24 @@ +import 'package:dashbook/dashbook.dart'; +import 'package:sandbox/common/common.dart'; +import 'package:sandbox/stories/dino_desert/chrome_dino_game.dart'; +import 'package:sandbox/stories/dino_desert/dino_walls_game.dart'; +import 'package:sandbox/stories/dino_desert/slingshots_game.dart'; + +void addDinoDesertStories(Dashbook dashbook) { + dashbook.storiesOf('Dino Desert') + ..addGame( + title: 'Chrome Dino', + description: ChromeDinoGame.description, + gameBuilder: (_) => ChromeDinoGame(), + ) + ..addGame( + title: 'Dino Walls', + description: DinoWallsGame.description, + gameBuilder: (_) => DinoWallsGame(), + ) + ..addGame( + title: 'Slingshots', + description: SlingshotsGame.description, + gameBuilder: (_) => SlingshotsGame(), + ); +} diff --git a/packages/pinball_components/sandbox/lib/stories/dino_wall/stories.dart b/packages/pinball_components/sandbox/lib/stories/dino_wall/stories.dart deleted file mode 100644 index e24d26cc..00000000 --- a/packages/pinball_components/sandbox/lib/stories/dino_wall/stories.dart +++ /dev/null @@ -1,11 +0,0 @@ -import 'package:dashbook/dashbook.dart'; -import 'package:sandbox/common/common.dart'; -import 'package:sandbox/stories/dino_wall/dino_wall_game.dart'; - -void addDinoWallStories(Dashbook dashbook) { - dashbook.storiesOf('DinoWall').addGame( - title: 'Traced', - description: DinoWallGame.description, - gameBuilder: (_) => DinoWallGame(), - ); -} diff --git a/packages/pinball_components/sandbox/lib/stories/slingshot/stories.dart b/packages/pinball_components/sandbox/lib/stories/slingshot/stories.dart deleted file mode 100644 index e4c04a0f..00000000 --- a/packages/pinball_components/sandbox/lib/stories/slingshot/stories.dart +++ /dev/null @@ -1,11 +0,0 @@ -import 'package:dashbook/dashbook.dart'; -import 'package:sandbox/common/common.dart'; -import 'package:sandbox/stories/slingshot/slingshot_game.dart'; - -void addSlingshotStories(Dashbook dashbook) { - dashbook.storiesOf('Slingshots').addGame( - title: 'Traced', - description: SlingshotGame.description, - gameBuilder: (_) => SlingshotGame(), - ); -} diff --git a/packages/pinball_components/sandbox/lib/stories/stories.dart b/packages/pinball_components/sandbox/lib/stories/stories.dart index 8cdd38b1..b8bc567c 100644 --- a/packages/pinball_components/sandbox/lib/stories/stories.dart +++ b/packages/pinball_components/sandbox/lib/stories/stories.dart @@ -3,8 +3,7 @@ export 'backboard/stories.dart'; export 'ball/stories.dart'; export 'bottom_group/stories.dart'; export 'boundaries/stories.dart'; -export 'chrome_dino/stories.dart'; -export 'dino_wall/stories.dart'; +export 'dino_desert/stories.dart'; export 'effects/stories.dart'; export 'flutter_forest/stories.dart'; export 'google_word/stories.dart'; @@ -14,5 +13,4 @@ export 'multiball/stories.dart'; export 'multipliers/stories.dart'; export 'plunger/stories.dart'; export 'score/stories.dart'; -export 'slingshot/stories.dart'; export 'sparky_scorch/stories.dart'; diff --git a/packages/pinball_components/test/src/components/dino_walls_test.dart b/packages/pinball_components/test/src/components/dino_walls_test.dart index a93c6a3c..5e4471e5 100644 --- a/packages/pinball_components/test/src/components/dino_walls_test.dart +++ b/packages/pinball_components/test/src/components/dino_walls_test.dart @@ -12,6 +12,7 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); final assets = [ Assets.images.dino.topWall.keyName, + Assets.images.dino.topWallTunnel.keyName, Assets.images.dino.bottomWall.keyName, ]; final flameTester = FlameTester(() => TestGame(assets)); diff --git a/packages/pinball_components/test/src/components/golden/dino-walls.png b/packages/pinball_components/test/src/components/golden/dino-walls.png index 592c83fb71644ab8710f18aec1e7919506eb2d4a..c7d55c0457032433b2c98f7199172b1880220947 100644 GIT binary patch literal 151866 zcmeFZd012T_AXBCvDT4RK`IK=o}e--8X070r49iBNl3yJA|fJTk|7{Nz-pBi1T+%R zFjXXk3?wpyAxus{2?7di!i)+bk`TfahCtwMJ;!f7_j-GO|NZ_sc^)xQpS{;!!@J(~ zu21~^ti!3To76WcDJgA*o&FiFq_pvzlG28+zy1pRlS)AT5Ae4y!r-TlE3w-4jDsKk z5q2Er{5ANB{rbXhN=n}=!G8Y9`AXKrU_Vit?2FkEeit;0 z?wG15cl;Up^6F{LOWzul^Vbw4K2+IVHNKU)Y@v zzy8BC!GvKPCh!U#`2IY5)hFY^Ht^>EdgZ#TWyXE{pmcQ@we#E;A3si9_+sbB_m3U^ z`xl@u{_B$W3Gv@#_)r%AO@{v_!+*i@znJ&|4E}${#Dw9wFF)9!^jO$?FdRlKHP=j~ zJh=QF&vecw9@`XUC{)PD1Bs*8sUtXRC8b=0_4@z%_ex4vvsE7b>;3D)b5lf@7xH;91$kLjbWMufevnaDMHQLJp*h&VuE-(($SyS=58*xc3#d)*g^ z`=(ZU>zU7{Nujl+Gk1ptQTG?yVm7&ep4I-WXV=FlIQwD5`sJjGyO80C&C=9?2X=0M(m8A{?G~ZJ z(4$qB%EGF<`gq#wouMl8rmONx+vM=4(Xo~_e>i@r^mzY+tLr~r`_bKX|E7@>;j-7p zuo;th6c0TdFGjdP zl~{sDwzW}%fs&HvzK^E5zSAf*DgRq%r71pPT9uYnh?%6o{{xgIz`NGRh zNPM+_Go1!u6mZSPnF`*Be366K>q2uMt zj&~s$O{hBES$TRfoy3SbBd?mY+f_|Di(KG)poX_^^3HxawpI3{fme1=F5sUEBc4JF zdgZdBFO;q{e>UafpT9X9hgz1dj$$FOxcLngFrxU`GFZkti^+Ct=XA~``|K&WfLq3G zWJr0Y99tB+en;+MjE%1dzGX!E*{uhL_`Yb1FI+A`9HzsfWOElv%JYDrirAD z2ob7Ly73{X97U~if#XWm7fOqxpLHQvo2&2YmrfE#*{cE{;%IY&H3Zg%dr8l2sj1q@ zlJ9(o>qitJvr7Uh)^&H$U7?o&&V{FE=Tj>LKk8w&+AYy)(Q+J zU9vVaxnKScB>wrIOX%Df3|a&qUhQ@VD|_k9Ge|QdV+{%m_28iesoo4%0|BGM@|^<* z1=zaak9A_6;8?;o=r2&2q)+CS;KrpN8!Nswcw68mTPLV-lb9b%mxx>Dcf4-3p6>io zY0B@wC&SoB10D-edRWD3fABuo>ijA8K3Lt8g){ z+&41L>@Kjv=y`C8hhnnQHGC#5*f}8%2Io2FQI;0T6+Ua1??BAN?Lz_Qn^)^Vp>~){rVatOjn0&JZwIB(^9*?;K?^H<;JMA0Z45 z+hfLPtAj;N543kQx>e%(ZE8<~cbx5CW$9VVIO|Y1L2MoM+9ej0PWpYJG?n)e)4`kl zkDnh4+t77$Zp2Y*#he|C$hL|Gfe6)twrM$OUlhyH@dQE&m#LZN(yqqn)gB}MeG?se zmEJMAH+Zjez&q47d|XA=t5v!VbJ{QJ<{Ma*LwpV-N+5caWBAK@r78I5@7bt^)#DVd zEef%A#2Q5(i2Qn3A54wNJq4%#>|jwvm~KD80NYxDk2k>DbAAQvVOX{$AA&R~tMYlb z94&QYk^SG{SU$`;MTtqp161Wr?_JfQ?M-}NpSaq#LNJH^FL##KptY=Ri7Qm=wP@mK zCcFMF#7t@%Ct}4S#};O}zXFZp1)fvoJ4@W&h{}@{xVXOQsut4>72u^US_Vg;H={Yf z;R{c>U0|p($LyDInk~=5p~=uW!H_bWcf-xeKMMj@>gTa@FN)ldxBHVWGVw{=7!N-iH2lG}Ll;-O zatd24*x2=^d{x(k2d#n9@0goQ$7B&$p;533Gk#BM6QsG<)%7Yq3RT{oD(JPk(ucYW zCY$k<^?N^J)nkW`z_rp=X<_}oeK^`KiBgAFA5BQ@@hV-_5k`h_-3CSes*Lq4wg6YOJTaPfU-;jv z26{Fj70%J?2YV7xl%oJJgT&gQX+DhceR$7Z)#l|RgxX1XF}*@8)V@gyqVv_=*D(Sj z@uk@@I6SLLBNyEyq>XYL`<2Cb-h4xGR}IUE^WA&oUS)rV1H>^jlm+|Q^(%LSN2&2H zx@Y-KRM@1*sVEi@A;JtiT8oT1w=&-%^)Q27PmzO@;^`%V0hsP5pvO`; zu>hwTu?uV?cC`yffcBR}w5wyldgin<8_h%8)V4olfN`ja{TKl-CjZkqrrgI5rakR! zkDHP~nseiQ+kmN`h}APlYe4gf3j^-mkBx|=;=lEGFUJWO4^)eTO3a7gXgs5V*}>6( zqJYRjW512A_F^+cZTH!QT$#*O^m~{A7T;f;EO;OvIRp#c1NIfR$Fj~hAiezKQ)Ks% z{wq0FP~*!T-z~n090FPH$_AfhQmJxiA-<56&T@m$RoP%ESaYI$BK6#oO~f*QLT{AJ zOXoaCoj-UOOwAuYi%G#ZSOr;iiWn>mG$hq_eEiK4$P3~eZkksFb7)mN*#*XJRPzTr zAB|;lF?MK0;J8|Ng?Pkn7o)q-?F>EH#@~zMg~$|f4Gk^zQ@?b`=}~bLJnP&6)N-f3^jPppsO(H{-2n+v)M!@T=-L9eO7B1?LKoEPjd9dWaDwF+Qx!7S5rO@;;noaabAZ=kQcICw!Melv3r zQ|(YIJTjQBz*NOpgTn-iZA645Ja};|Swd4%x^m}pl;m|Th0y}PEMKr*0vnl_U7rEj z6-xIm^59(S>Z0f+bO0SlYu09$&VnmIV7dDte;q$g0xkXpCy-;{HAq{y-(Q2Ou;scj z=}%aUQT=QDmI3>z^aqL*y^msDJw;#9s zM_PYm;A_k*jTT3j_@yS$mZc%I)fr+|qzQ~zw=Z9=t&O}HHPMmG(L~yzMgk?@4x~S* zE)sT!)VT)xBI3iWnHh^T83k~^&x!x>oHm#sIUE+rsB)el6n9JsX z?=GHcnp8S-1-yJNaE$N`*m~A|j#w}HdcCtd_WIN?;TUY@uJwUldeVo9pu0fshheCL zEhQo{J{Kgt>FjM({6;+!{F;QD2X&xWak>gbb13L{qB$C>@TUAs(McfBBXG?{*g9M5 z)*TvDd#TEYTLo0~HIziB2eEbt@jm{0a z+`uqzlU>0w;C2+cgVs@iUIi3#@f7-`=UB3MaJ)~;r$f{gaoMHKm0wz}%@phsP17`U z8|4p{Ln$NE7OC()v%L8WVk7XV;ZblA|0k%vum5zk5oXNEXp zQ+`Y;h+TTRXFBDcl0E`@6S{NU)v_p-Jn|szxu*5p-S5FX`p7#$40v=`F!^tIJQ@2Y zM8{K+8ZQU=cJitEGsG=W#gTBZ&}`9A1eDK3@^w+v=qLS#vw=&c!A<4;fsX!hKL~lZ8+5zWSF>-qc+#YwR2{x9k6Nk_%Wrz3|z(0rF!0VB@Z?5ajxpf@lckg^*=4jJHG-)GI= zj*9H3FybrByT=PWYS{d&3QO9~J8mGDn*&8D6|A51JUOR=1k9kYL0a1-D4SJ{Zg(3T zXO#nW36qAMfF^58=ROQ_p<+;R*;NYgOIsEfOH>}+BtKTK;Da&*!s&BOCL@o5FOgck-j|=>Aw4PzT z)EegJZ%L4<$(&lUS!~|4jlySYOa%n4?>`4zS9FHrMnKJ~etF~+jEHU(kEZt+$`;~_cPAU5=AKU^XGLpau zFBK0gUZ;A4{U_w3?)Lgdv|<`ewBeOekUZ^Xr=hpacMcjCjt(7XavvAw@>W^3Kd@`B zJ(3LT|49zwm9c7rruMZY7M9<}xp^8?dR_)RH}veZ)JR9~C@*$z6(5xv2e2V~jtcRz zQhdvCX2j|#Y4sX&VJH&R0D@SSDgAs%x9lZ}?EK&7gqAt_7z%&YSQF_jUBzHa3dpHchXs2xe~mMF3p) zDFqwf0J9=NzUgUHjUI+GgG{&Wl9PThFabP=P1y5>RLce3r>Gj-dS(@gBbukxnLHX~ z*GFat(JlvWa}Df3=qJ z8Qm(E*IT?YIyY+_1$L=y6Fah~M$e}p&d~lU3LFhDg1HDLbaw-zPE(o@#Zf^fq5TAm z{^%!FEoEI4UJnmxun%Z_;9pCN7Ml+tX}G=qFt1j|())bDNG>f;7xmxr394G&*TzvP z?wj&xU|7u+4<7bM=v@TFTWz8ei}#har3k?^WA$}ff_&X5<#T8=VLT@omaomlfV1n$ zJ9kbj{=f~&gPm+Q3woe0^8}NYo&yf-UzK)bgT!pSApMcZbU0vaFbTntKR&{)sA$Tx zzlGDmQmn*T_$8eD-ckY!8|Y{!p~sa^PF`%Og1T~4*y%AvV)vo|e3&kOPl{Ol0s*_3 zol~0uiMp)6W?Aq)@p>O*O}*=Ly#BxUvGl5c3Di@+mxXpN)XM}QgNzLZWx8yT#O%Ul z(sKC}MtZ79Y?|9GU<7P(Aq?gOi&y(wqYO>~IeP7Cj7crK$wc(51>34+uqFt~_TyW2 zFCi@BhxP;uiX`~M?c=%q6>*gjt#z1(DV=4jTkP`vcS)l?V43}8E#K>D>%nFX^;9=&4;?Sqd*Oy zLQL#F`Z~Pc2nZyii_QYzpd5v7gV*(CRXEeQz$E1|=ge?7Q#3Z??ZGz)OAiwdgm_YG z3g#6+Qu1si_fmYupe=Dri_A9W&HOlG_rvPu9;Kz2kZ@fE2tuMlios9mqm&YUvk}L-;icAWJgF%^16O#@2+7nP<3H{@9aJhI2V_kWMxFXAq(+;kk zk0XwrO>!XE=>W%(Zg1#8Mok$VNCQ{kE#T5rCt(X1WeQnz=A!e_%w0mWXZtn-f#yyK zJ$Fkqi{5@Tu)}3AI_zEdvGi2WCND&3pJsi0P|T{|?2~O`zsQ9Ne!D4P-2HOQQIJG- zXy-*lGPNG4K5A=`i8I30D~7*UQi}PkuGXY3pOG%b%db~}B|`(o{=Cc#wGE+Tj(spfXAZW=~MOC!OW?8OMH`F3Gle{KSSGy9kHP?xfjsqe_aK(L@_P`=+bC%XznUAAQuB>sYf?8zQXcbu=sC& z4nZx1nZX2b{UtFPhQPLATAf=lAjuFFpgidb4uMP=^#kJwYB3!E31L4r*p1EKv@Q(2 z$+5HGJ0Rd_%Yb?LTcA7uFlZ72EBZH>vgg%Hu9kL;P|M5$pmZzYelHH$LJ*qy4$3tH z_f(u&kwZahZ8%m(P&OBjfVzsHKXvqF6loF%Op&?EjRO&gK?FzwGX%z0sn% za6;Tt+Q<9MFuTRYWEQTesTC+k(gT-pnf=^A0b_p4?8Uh1Avi;1Y>-Q}vMUxcKntH$5<1iy;o47OM8Y=TLdYFvf;a23&o8Q$x-m*YiXCGVcb`PFM5*lNG*^0@{cy*=P6uI;epfyI1*YVnwsc#3te!x5v%(-%!o}PjC0UL$lAMu;cKvt z*a&?*OK>HlpDSIH|Di(PCVPTCrfDU5mHreN^JjI*@tB^vAmDtDhn-7jk0B_o)W^EC zts$3!S4O#M6*uJ%ngR{CC|z~@-0Jjd`-5i(!R6hI!UQY@OnvSsYoH6*g4~_q+|{KG zeRQNNUOWt#cVl+>WB$ZxGf{u?3Id=N8kq`3Qy0CQQdllrU9Ac-c*P9DG?Gnx80CZX zv;7CUFff0DXT^Y*XSPXj4oysauuAaE6=YCnZrqX$H3ebvMG3O~f$cq;Hn-FWmi@6W z!3Eu0IRi%Y)k>%LT9DShM`sB3KUD{(C%v>UlpZC0Oz=e0Mc1h4U*kn^>35978#n7qy_nEQk0b{h(+7m2r+j4LLMCM&wWg!_U?h#o!r7 zBNifpQi86bT2@iLCg5}vq)vU`LkkB_XDhEW?*BZXN6fn62Uaxs6zG8 zHUcB0NJ{dXy_0V1+8-q3B-9u@b6L%_ik+c^)+>W~ZRZ{lcs{reS4^HL0Kl8%sIrR|6!on(BxMm5b5or=c~V>U9j3|sd5?v?k zru-*O4cq|utFo$7&$hUkNHcsjc=5BPNn)^RE`ed0 zsTr8gUU*-;R$DiNKi|KsHuQz&1;;E+bo$eF^E_t#R z{>bo=dcnNtiR>v;pRb=2zxCYFrhdj(VgnN)zD4{GKKlocouT+yO0cXt@(rS{UFN-!38j zO7)fQgT={`)+#1g*sk7U{m0RZf7BkFJ__#Ugr7Tz5xdO;3-;F4i5Pa8WP}Z#mB>vO zb7bYKAc@IV^7584=jgG)5~^MNoZ%U;6h5AgNWbqU6J4y?KClE=xGw)OM>=^#mw zkZxfthxR#0_Q_mZOo!6Z-_)(O#k155t+(dzr(c0HG$^hA$0l`dtvGW3A#Qk796x^l z+g+h;$LhWD_80(D7F^ULiYk8dIR?EU4D z{y)DwUSjY^aUUko1i%E_ODzWW24A#7JolPjTXVD!j@Dw3u*l^hvGf$(#JFI`{)LE>#TdKZ02aMAX-n*iLebJP^L|Cr?L4oji+oHVln1Qy%`IrBr@ZT_ z-+CW4qZPt9Cz$1MXqq`cNsI`I<$InB4(3lJVp9a>EMyKM2bMZMdJn;OFpm4IS1)X*VZ%?A{i5xMce%p`g{tkaY%l}Uq(hf?e z1(N9LMyG~{h7iLlC5;1F(wkXOy|BXewUbg$BLk|5&@QqJcb6o3_4LRUp4m z|AaYjA=R_W_IldNz#&@~8+v;PEyd2BL)%SWfjd`{pV_&7&vUW2(UWAq?BBVV3oI^Gy77MN3x$uw$v+a+Ps=p2QLP; zEXD4Hal^O=!YJ>zO_yUnG4H*-uhTzqdd)AIgVx|u<$kc{Y2sM(W*52`Mxl>xq*`>} zV74)Avx6ONh!N!m(uo21)0yIGc>GK#;*2gSCoLP@ZF`DtUYGVq-kkH8x^|%{qi%Aw z>QK*FRG`gp8td)itBN##nuEJNrEuVdy)28I-=&Wi^aXAV2xz?JU%qf#aacqMllm|) zh(8lYng%Hlzv^g1n7LJL@CYmSG_lQbXPk1UFL>(lDpvC^PWt{4lq$792}1Dg0|yBU zyHg=B-wnHAa5Wk2v_|s$Gv~UJR!nbjl0{el>_Lh62R-P|zce@Yk*a=f9@q9^><*L0 zX2};{?KeqA^Q-fis{D$uhx-Kl#0_B&>s0x427;nez|}=oFoM!q&OA5S71tOU(>ZrX z|HIcn!@$TtXMaY``!F-M_Y6TN63qFWD!B(S{78)+Otf4D8DF`i10%~|)emZwL3>y7 zKJoec2Y77oi4=L|`itmgS$oA$y&jBAb&Pd%ei#eYMHLSP1aEek@lnq&o1N+SMyBtc z%Imr(a&YeY7R075e70f)2brV~$M@qnaJ%+sdH*|AfyX zx)`=gx|2_gj*K#0XFW~|L>|xu6ML2p2Ab>i;t(Cq0U9IF*@fY8vF@6O-CLs%*}qQ zEigti6f_is^cB}15GE9-m5M?_$vjlHBi*Aj{x^{`4F>fl`7avNJBR`B8ZWnvHNjL1i-`ew#iaQY5;r=+Thb?j2PFOn&{N}?| z_q@OMtna<8RPhOkdcAe#-4ifE0TBj%x~3#UIBnkvg09Gxz_E_%&>@XDx9Q=TM0(;n zgnnk0bDIpOV|{`^H}j02o2EDjgvl{)iptlK?0(m6ECh4JMb$eQTo3EIQ$)Y|tz2xZ zvNGD_YG!9c^Q*n`;+qAtiNHGrCC3MX+ho4xss8fN9@lQ1M}N9Rew=tj>;Qqa+{lg( z@3C_%V1SAKI^z?v@xkz*-#=kcyT8ZT*3ZmiU>!_sZ_1wr0}u>UbYKdev+g*HXn3VNb^y-$VF>z*E=&g>yC>pOnm|8=u<%U%(ts!rJZ zHYHHHvwR|hn18+DKA7tFE`oB~<29|7dYunOfBf;EReH6qqP{wQ?bR<3zjPyrgkLB! zMmQ5~(|C8!K5IJ~{xCTsHb#H;HtC18(fv)>6~~5sSh<&Em3Ev&SKv~_a6)#^;gd{V zz&F2xNB(MD^j+6nXZW|r`1|{z>x=x_@GSpZx@fx8Yg16etbqZ`xX~rYef$E_J6W(; zP>0+n2y>{_5*id0*Yz694>~tB{aAWm<4T-GM%i}I-k^lP{QSZEf$e`m&Q+7gub#k( zbKUpxsTckJ3A3eK7Fge+^?8Qc+0W?2IQ!8tC*-sXRI*j4b9`b)=QlPn(=-obD5YRK zcZLXdS|^{C!YlZY*noPoTvkAq$Yr_35YT4MhiviuJ<%2kcBLwZcCWRSN?~P&70@J6 zCT8xxN5=8XY7H+oM1`z*s}$GNeghO)$Oi+8ZkG3Z!iZx{zHyEyyXwfJ@ox@;Ise$` z6Pe+2PoSu#67!F>6hU-IWeAmA(K_d}`*}Ui*Uma260ae;(k%+on*3h8OlRl)0NDHK z4YP4HwT1_t2ZMA@HkexR>&&cu?Ke{A2MW{y&ts^jfgoCPtCGpsJAX{yu({<9KV8Vr z<9a6G83}`U=-u64)o1KQ_b(3&cL|T7o%VQ-sSuu zs|<+27|KjklbD7?7v^17Rn_)cj#0p=iRyQQ+wc6T?i~Z)ajDOJ;W%l3W@AAtK-s;2 z@dSbsAS5ah4tUygSaR<2LZ;mVy5TQ_TPy&e@W6FJK>(n;Fh|ToWm%_f?W`;GI`PVm zauvyMZoIhmI@fQ3*o3zAuG_=&t(#TY;D=)CZbP!Q+UG^?;929xMxT`9|LJ7D3%_@` zKYm2w4eQXiCP4&5*OC*uCk_}{oXFEjJmt-7inBIKnN^J3qZa4mT+g4iU()3W==Wko zblK6mw1L##n>Id2Q+TV#x< zb=^{J84W9yVZxpT`t7A-o!Ufi!)9iHpz0EVJPMy(y?=v9@q<(E2g5&6pg&`HPw1fx zNbTCWy)fIp-V_xX#K~{iD%s4Xrll!mxT!#Qz6(_hgsaxNEv|3p>wh zJ;JhxM~}~=+xrFgD^;6FO4q2^=`IfE9Jq_F zQUb@M@mx(pU5d?X9^I8)lcS=PWb<`Z)K|fI;yiPto+_h~VgXce$6nEE*%>bm{p{s+ zkLVTRbj-?%QR|tJ+_@}>9o%4U=5oobg4BYXm2LoiYpwPda(r<0f50HSm|cqpSxy$F z|0V{LNjA2#kD$30nD;o_x?;?N=t!AU0`Jhzdq$Ckp*qWNaK1=N6+iD{j;HPoMue^X z4cvkCRQco3ftwFW;i-UKD8|j-6o6IApzD&$*WwtR;z>H>o2Q$AvJY8F9)< zxaFW~5~Owcep{;d90#;|s^yK|*I@7e>-C=m{iZ{TL_DfFV3~e|fP8Iw@@?}@OzaI$ zR?^vN1AMj!o=zSqVE1IE_^&;UkM%3&bw8XaQx}&Y&>Bzz=k+(V1MR_hTHRacKHOI? z=SbHD5oDtky&Lqu443Ai)EzOaC^8gf7R_YX!y$8zvYQrEo>JsxNZV*ECZ)YxeW-% z4jblTR2oI}-pbN--9dP-FbnQ}7`f^2>DtMhc|b9^H~_kR3jVj_(aF5CbF0=7*D;IK&IapWn+tc{p{pdCVkz12hmH5eK7postatdCp z)UXVHCOt(GdPAR>2ETywAvN3rXMnRX!th3RjeyeuVQ$mx~)WS(yWmoHP9pB zPy=V{D}v*vDu?F}`{l-9t>;5yqoU(hOdBl&0^9n1%LlT1=Z|zQH9tve0+Z))`-#6! z*nFsh{~*2o7mD9Q$v`zYSas|eM)2>1mInNQ6jT;M1pDgK`tF44`Uh6fZ|(Ai78k{Y zEt9$iT|N56h|URm$c&vX#$=L}<3_kk@gRv0wS4255Iy~;h=||PIFaysE2kL*{;)lvxHI<*1!>uwA3!o zPLd@dvFMZ*L2o&-`@(|Fb(-(>Z&*B<&8382fEan^=*HD>CLgB zK9HB6=IJ!jPr>Y)8QG#9j~Mzr=nY1XCd14`d=w6X%Y1l4HdDsJ_!=TNe!NKyT=aJLhqI_D%tbzaUui(uE>Vh|cf< zBhpy6-46)wT35m@Zrdpm4#^Vs;gZe{4p~yhR=H#9I<=KnP)vX7>}=mPR8>RqE~&PR z9t18IydC*d2-|Gt86KO4a~&Jd_pX^aN5+xrqrmOizy4nUbX1*{&?`pJ!hz7RnwQMn zZHW%4G4H+p_XDc`>y?!h$habMsC;XNb$S`PZf1)!nvS5@`K-x+u6%MqqVugCyYod# z_CAFkiAW=uGiBcf)e{A9A<*UX`84>bMBxhZC!WW0eP=Lyoz(*-qzs4TzhLSElx1f78_*7qsY zx#=93+c-O0lD2?z>F|{3T|NH+=i7Fiw+TZKY-1L%!gBfCTj4hgRR-;)RzF;GDJ_iK`p`(RSZrmL z6KP#acH$T24MxB*kcz=fJQZw8CeF6>bkYiEw)Y2Otx+7aZ$Gl$0R1#Tl`y^XO`(5f!#_>dI% zT8063YgOF_sDSE9L)fd*>Z&4ioPi8|D7$=7HSg=Aiz&rs=jkCQT$zmWCfUrrmcs^- zuT-8ER5RK&2-~WQ3tG=QnR0}Ts<@JUR}!l zowJV|y-wZ!2-NT>w~#4pJ9MWTlg}439wGyi;K<04y3A(5J)2t?X^P0X ztLCE2&&QRHU2149ObefVU~)dvx#F!^hX3NcYvNnv0K($WCl&mrRG*0X@sw)2-SIL~ zYhVOc^K9qRc*of5HP+4fXYVzGt$*9Qp0>5ML0|-5S)RoN1m<^9tf>pPE`_7`MH7`C zY9(-uYr63Tx#F{^-W;AWvMD*nCXMWzLa=`$x>*x{N0zlFr1?0?eJ$q*r& zzYdKHLHes#fy+9esK=9sK6GkWQ}t2iLK<0Ym#qbzC0zFm5DK5yKL6Tj|88=)i;zTz zLz2u$!nX;hT5)sRyXUKJ%{n4y`&wOFxLMOY_dAaD#aoAxG3^wKuhzUwx=Y2GIsCI@T|+-1dS+tY zG0M^dcZXV1J#emvGHMa?-FA<4Q(9ymZx1KOXf|?x!+W#5k5qDvGe&HdBg?b;t$%9) zTFf!v(|rB+afy?m!BXjC=GYOVjn1`l3$6l2+OQ3F?pSt_$C17_F#?8pX&Qkrr`w?) zYKy5oL)c@K?36VV)_9MJeYjvZx_doi-wlE7G@TX(eY1};Rs-+S<=?gK)B*S@{?7v& zULIO_Vlroc!~c>kiqJ)~g)zX0r5cG44?WMW@}lAoAscxfT->%p5yKV#%hB2KP5Ko|d&oo3i~fuG=OEoCxU* zrz#zDT5nE4HkJ;AaC@DYKF+dncw|z?(GO%qlP@mG4N}MT5h67GmCRXp1nMwa|)y7yqPX$sX=(+ zr+~s|=Y1S{wXO_hwyWgOa}hyfS(&-=g71!|D_Uo7#Z37OAcR_z@AemjUm9uK77%ZO zmI@dT8^EPj+`lBw6^oj`)bgoK=9ZQu$Y6bpAx!>mIu&A%)xJkodvvmQ^O4ft7a0=t z8;;TR^M2FSb?9Y9gwOc$$ohwdcB``ABi4*W^BFDO-z)P;>F3@7;`l+9&v|a|N5dG_*qHm zKN0!mvjk;rShF26o9WgSb)S}Wo)mdIwA^R7AN{96#=QR@EiFYFJFz?73ANkzpV;CT z&}d(azAHC%tb3tuYff7gJ(<^=>AQw>|LV6N5d*dgK_VPWsCZpQkoP^VDg0)tv2;og_YpdClXZ;}U(fQ@?us?lAFg1apC8d^xoeTHrRkFCEN-6w#qFMAbZmQazR`!IxqkQ##Tg@#%VD3*!NQV2ad5+D3 zMKswPx>o+-t76?DWBF9)SwENU_d4M{* z?`rSL9HxJvcE1%Rxt%i*IS^#Q=DN*Kbj4i><)@c^$q3YtL)-bNKC*T$!s6})JR{53 zs^X{WB8~p2jpDZH0qL+qHqHkO^`*aMeu?+ng>sNN>A>8uvHCD_)b#_2KX;boGbies zbx&jJZ$k`r)+zc@jkFmDtWHpP47+LJa!dm_OOISrIG@wK`y0ITU6{T$vwU=PbM9=< z^GY{Zh)2*Q-u(QU=1CX<(WD#dUI({~xb^PXN$W>Ny8<*dZHaL+_AzbP95**+z2?N# zy+o&oi`Jzh@~SeiA=rmb35ofsn&3XUZu(`T>C)xGvGNQZ#?950o}Ag?=yRv6>U{fC z9Rq@>)bcmkz9@k_*(euAO!o^MNp-JBySH6D#hdPJWyazoE_k(awb(p1roj&@IyV z#^Hu}!;F#AV7ubh&NGx4Xg4Rnqe!=b;lUn0eQv4txf`7?0O+A^WIEc$@Ko;#0`r__ zCRKh=cMH>QX3}0^!A=09Eg=|PNCu_RXAQq=NH-QA>AQX=oAhV-;K^R=yMvW?AY1L0 zk%Izv)N}LIMZMkLznR}3zCJu&`epxW#c)ZnwRy=kAT$V|OJ1b7YcE&K-aWi~t(FrQ zzszfrwfhdZ?hNel#6^X}Ei)couS%782Yqlv&6dA~fP2de(hL=+3}!^vsjWIE6wMiR zmdnF~soIV{Ee##z?Y_srVL^Q2fVGh>YT9?X*+^wCZ6NJYmmMuN>^zfu35tC9HpOxl-)vdJGfBJ93-XI5+Q`%UfePKCWw&=%vsl}G}ekIxj8a! z<@NG1`+eGHM2w179t7sPZe(D4znqL=zyr%s4@J<a{TTe`qw@OmrEalPm1O@H^XL4vp5Ecp#x_JG7gt>C?n~9`_I%vu@`bod>tv4W zR)bW&Rb4W_J(W~LCz-D;7#~XmcW_PY9VYLWLP>uQh`j+v`-;F~48O$52hTV(DAQnO z$xg@MX$-bx6=ar*6A{3!y4aW0)nz#;?NJni!CNR?! z)KJ_|@-2rn_9&!(Q7(u7PMM$6c7fzj~PITSFf3|*qc-iaTK7__TqwBKPJz*-( z%-1Z+QIFl2wJ6S1`+i$@zo|D9H6a!7#CP}9XhgNb@adkLtB+!@0N`r#^87%fMcl>Q zH^A?$d#y5u;$@NdCQ9Sp-eArqONU(*`mG~5HGgsld2yzt%j1rco;I9&q=OLfAjjju zB>(1r2RrB|2Y}f34y9^0cg1`~N2suBD!bCM&Dm$|Z{*#VmVbG1v!1$!hWm-}8Ic?D z$i&Lj0ZY;Z5q-~s2Ax!`3{~ULQP33bpN?DOv~036=~azhfgHUcoyiB2m+S>h)5|aL zssZ&>XknaHyR>(9abgH0&K%d?l%ekW|3%oFhb5Wz?c>j^&9pvEnoWyNrIk`KEoPa@ z)6AHmrQ?PxP??&zjr)Q?Gfh)z>V%?`rj&{sAg-7T(xxUZj3^SIQkt14A|fCl@V%Y) zeSc5$zQ?bJKkDc{w1exqug`XV&d+%zUg{RRrnna;DuT?Wf9CyJ z^4R*0B1KTs2=}`Yo}zrLOgK@oCNx8=gaW+6e~f+*@C5D4F3qKemCYxd-bU-htf&?517yzISi?V@W1g5LZ;#X#T|p1{&>5f`btg+3U(AW_m+>c_6SM6r zgYdb!i54^cwQE)e(P?BccQW3v*%aqm=j$oy{ZnFV!fTttufryl*`maW! zrk_10O3{l498XxL`(Dq*1T02|z2z<1ao#b17Psee(U#$To-sY_w833h`xN%dm_VRa zRhZp$Uw*u6G!LTvO}Fr-*tlpb;-;8!kuU`0tZ_`KD24ZS83;hXO_IarP+bU`?WuM! z)OLHs{m_|~OtYrL%&Ceta9I(r)|uLeJ^84EuHe?U!bYbFj`XEX<4tI_xqV&ul>n)o z&xm%-1o4rnBqA%6t^4E_o9;!~_o zk_%(qI*=VmZt9h+`nT9+l6e);FL-A8&A;&Rnlup9pDIaBnKlM75r-`fnlbZ-wSg-( z7fOAKV|NZ2)#0VmSV1AbF(L@j6J4JBX>3gvn{;i;yWB3*sO`jbqB19m@+v<5YOf?@ zQWchijApDq0l8}qmr@Ql1!(@r=NhrD3<+HPancIqdi{OTY>{8Wict}Z^qVoM+82@> zp`c8;9c;E7i;=GF9i zP9JR-wBo>J>&>LVuY4U;jJB~h?#%e)=4Hm&%^>JvWiCB5@e_F)kRKz_O8||_#LWS3 zZr`%Z*%-KM**9^eZ`Lbpl*>DxzyN*a(=a=j-!biKt*G+N3lXp<5@hsNoKz?XyhAi$?QIP;;_8))Bj;93{bgEw~1z3BTpV-VJ;MGs7~e9{h= zOZ_P~hnu@G8^|;~kqEd}{{=*Wz-|wMZ)aQ~=-hNeeOb5bJSt8Cv!h!yNd3bV>F#^k-V$ZflOVV`HXZY)&ikPd{T*jZk<4T2nE`E@*; zt(H_#e1G+Ynavu5a!}}p*)?YEG+$GsOA*JuC{j)-t7t}{U*17 z)icwzZWYu2uTS)PbnwhGH}LT+zh?&$#wuy{;`n+vbXFrY;5gFFRpIHN8{3ueePR&N^i6)wHo2(^u4prZTdvere zzZ2|&GlOadVDOm(Y|5{Vzf zKuVRR72Lfcz0W5idk@U{?nJr-9aEF(h6=YJH_c(YpR9G|H#>bq775;D6>EKi+9`QT z{b|S6deM;D2{zK2+H1-Rd8rO_pI!`oK#^RuAYZ?<8@j#yyTrRA%Cv(Wq#9Mhz5UNN z+MJkf3*RyOB(AMD2~v-?#atFnie7vx=Ww?rz0ww(rkQRG-D%KEwTt5*+PK8dLgDe)~?Udwpz7p6)$6L_3kH zX&=HZ`gHusG|(WNlOdSNv2Z9SB5HcH1r1O$WTSLs-dDMYl7b3Y-lwEek1S_i1TD{k zAUfx$W<^tfDDjZ@-{N;?nmj*iw%;0jCz#9g!JmaBB}T4c+npnz3j?=fPAyxf9e&n@ z-PV4`I<=)b+lm)Is1YFkY<;xy9lmh@)+}Br-^<}9Kzks4<6ADrZTfLn_KBX!Cb$+s zXHSghD*@rGkZv;v6! zx%4o9`DrQtkJ$6&Dih2E=+jXBp5K{ojF5hn_4BIPpnM<31cRD9b6%09>HVkz9KN$F z5OG$F){5J|ha|&0zLNnxpWIe0jXWKyAjrpPu3#dOP7#Xnq?rBHr!fUs=sfuS!qGsmr)*?YusO+-0+Ul&? zDXy^B=cHyGOve4aijT-T433asj<>lW1-(dkDAGMedIbSLmT$uWw(3va%J=`XWB>Ix z_`81x0$>jt8u@c9w(|O+RwE?a- z>gRZ*H^_79k&z3{i=;gLWg+dOJG8Io3Z>?w$P2`Po-lP^>ZfwFGQ7@33Q0gnwmW~$ z8Zj(n1y>e>CFD=twko~T3I|4r_J%-w<06GO^knU&HQlh$)RzILBFG?OD@1$g&yz1t zH4JvyqN4~^lNEaIFIa=@>wMb!JKDoG6{%=BArqQVj#_x?TcJsj?C)kZ?2zc?kD5-Y zLz5H#Qt5dW{NZ>o_nSLJyIf~J!|T8z@wpn?Q^#j1vDWJWbr1TW0#*9VQP-?0Eh&35 zTl^!dBX~SuP)uA_?A0|f8#p4}6N3Ia?wR=f&HYj+aMIi?pg!bKEQ8T<$D!V&w&WtA z`%!WJz4mK_t^+ZAeH3CJYT7T}@+o|Kfx7!B%g6Jvr8BZ>w6G@P&jzjP2wYCj|1_n#I+;*kn5^w{sF)nU>XcJTj#;Ki9!1{I zQ{Eegsv;;(^qr7~9nz@S-M{<~7ohzXx2Y4%tZ>L9#goL3UVg=9TnLezZBq>xc0cdF z+IbM!lYk-5N;;%P2XzAMhP$h->B9}I%drC*otb~@4AHPol>GWg!@%0}g^?qZ8I)&J zb`y@<89x~Jer02YD~$fEtjGl4q16NE`AswG63(C}j1*FEN*n4@{PcJmfcCP1CfMQM z>b#0_Bie^~Jg9t*2Tr;o6n>YNJ)};}rEvzb!@qZRgx^{_60;aCoE(&yz0^GWBp^zX zcsw4a5iEtD#)j_SnWQ`jV^H_gk`A?h+O!P~U}KH`+&f!@l;QnuiK*D4 zgxKRlsavM14(#HKCbHe{SoKs6@FJg~!l`ArndbR-Yart@v=u3G#)g>$&`j;st$-=E zP-!E`Fni511`76`+;CkY4M_;I#Gg0y!IunA3EM3BSGqSOd}P(=Na19%{J!@@bD9nf zbVP?Hgtw{O#_M&+u2II^u+}`!VIVOyq1sh>>i+T@pX-tAwxS{%)#bdEw-cHpEs-#0 z(~<0Ae%ae>8;2Ok^G(Ih-t?dm$HDUs`QqaVo1dmn@3f#S%IpX$sVWyCZuy04N8>`y$ky#c z3G~IG+eF->ls!;eM*ZZbnh0$}QiM+2H-9N$-o8d^U0XM_M|h;Wu=R_P6j^mHrF{Pb z@#n&Cd|M1vVHOesjWsc+IQlTiv##N*l!`0PKG{N^CT3+tVIC-7?6Sq(bAR0`W1ZZVmA7AGvaNe$%8Y*(tf7)TSAm4vl$2BNGI+92Oltyi$m2Pur zG*h)JvYELbsu9l&Y|MI)1J?R65UpN_Yl|=Ntt}>nY1eW~UU)IL<*j_ykeq$6BKgU| zj?05C{+0wJ7T|37FIt)z`toj?X=UqZsIj_JHFh6aBZcSUz{vh2I!-N3%;x*TQ89pOn1k;@bLjq?bX`L?;J&U+{@XyW@rH*o&N%g^ zq-?JEmA2wo^n|(Y+kDzw1|wk%)z&a+iWC&O8`x3^?{)nU-<@{pg&2)mO^|^M@BIxu zfGF4eY*L%pCOwC5{RHiYY7<&cQ^<-3dude73*Ruq3k2HMdV* z-esSv1v+`$x1T_P%qf>FZgHx#>Ja=`)NkJ()R9nunl>&UP^l0(+cA%0X4hzTgcdQ+ zZAG^H!NKme68nNXn2VeOlRCSD``~aFd{$aQUO_&)WM1(&>zsaWdiMicGn z&tXi{1pSS%#}hfzi8W?JdDP*+20J(019-I*ohm=fCHF7ZL6o?kQon%;mM;*C@6Tq< zokSQusvNA)_h3h?$e|H*mFx4 zCnOxKPg??{3YXAkb~)ylg}aQjc!tvCIzFCp+lR3Fo9$n`|DQZ{P>-UZ+2FaU%A5O@ zwp;}ZaVOR9^-OlJ3YSbh;$rADECW$Or1r^gjWb{X^95AZHSdDR@$k+oXK_R11_gE= z`SZ(t_ey>@uJHT8xhE;2^q*7HPVOM5FF`+CbV-rUZe?6EzL}fuC4i9H8&15bOy+Ki z&nXlS4^+FeiC8PBKO=}4CG4V&v1Ssd`dNtB)BHmT?M2!LJcs;&d_|xpHbB3!a?Q6Z zurLb7hm8HKTUvTdH;lyv=xZC;ROHJv*E~Nb_ecK1QCAzE#6Awnui;+5c)n_E`t{FL z;;5f9enih1@AL$0X}@mM7JzSO{PcZuzIQ)~#qy`+*eV2h`8UO%j=TbY2d|OLPGOfG zGWry4xU0R{%*Om+dYcLJV2(Vqauqzj_W9rT@h}ZQz&1euH>4RyJ8kbi15wA9LNa-! zd%jSJ4E;bmOSH_*UIOd$2s!iiX+HQy1b-d;*+oSefoK#={v+55e9JMvnyk#n6Y?8= z^KciZjqzfKD;G26PV6f{^gHD5_%+Dcx6Z-1POLa-KOfw@lrI=)KWi;-K`nd~QBz9% zeS~h;DnO~PP>4=}z0&Yo;evmXu9C`=o08hFU^u43tR+A|`xv)SBQfwfh)0Dg7_Hz? zDg;X%14dglGgra0n8+ZcOG=~Nl6xdYijfb`OW^^OHDNB;bP00ZB!K+yL!&$UV&>VM%dZUVM` zqR`9*-;s9Nn3OyS`p(t;r*xY0PR36JMl!d*^vxSm3EwAt65L;XU7b&bO5^G?& zHG;2vMdq}UpSafD-S)ZP{UP0!=1guWN=c0%RPW|b51~II6V1YxBC|sik+WBNr$(y% zj?qGjn8ARM2pfaFVsffIh^HBcD2mNzx|!N4U?BHxByfSl!rQ<3!#-|E#r5k5GL`W_ z@j4U)G3U?~1_99gemdTzXqISSwPyNeJV@C;QSEohy#+oO2 zfR?yxai%z~=wp`)Md93%ZMa=++h`?M1lYBmJ9!+-jAyQ1dO!g~H)%-e=fw9PH>Xn;$%Q2zHl%BeVQ zkF6idc4+x?6Qq5_i6~rWUAU_Xw0fxAcD#S6K6lWp0K7xOF4L8r;<&4+Mq-h6$@#vHQe7r#q2U65fZq2&F)GBAkK`UpUyNP1V*AFX? zj2x==5_`o=(90TIk1~sH{^49-Z5coa%oTGVZVWYcPZns*IRj*b8x1HoOkf}Fm~4)6 zsNgmLprm#d=)(Rq>RcapvocP7e_}f-9SJvj;z7}3MGIF#gUL6fOdBGv`IWk6h`_6a zAq8&-s=XSb+)bZGg$gx;HAi>)za|&*SF{nc6&XQoZ%6bS=0^0dm5FsR;gbhLP7JIL zyo{&4&o|oM;i*sH|)ktzRFpL zo|$E?5CQIh{u#~hmzj5eu63DCnm>pCZ4AI{ZG5X{Q>O@JArqco^mbX^pd9!YVUqF< z*MbZp?X;+}%bc9vsBgDrhfVE^|@h(LG_y8Xqi`n#ormg*32JF<)B(g9O)XkSh76 z|1WAjCciOz+v~Hs6{z=`-H5%krx`v+ZZLH^0KZW|PUe{d;tr5}a|Oft9|Q9{o$)Xb z(0xQ)*&Z~rH}gmoofu23p49mHP(eVH7Q=eFzCO++rqa%53Qu;rcts9Yx9n%e^BpvE zc0U1wX3ZO!^?T5Oil5=LZ=TM2xj#;g66SB6;s|ixZ?mYGWfsM`a#?SRhwbCD+?;78IOw?CR z`Pti?oN?uL#P+hXsNV92d7p0jeF|#&5Adfu7FdRKoAKn?Oq0(WYZ(h?zrDEag!#Wv z|3clvXQ1lZ{O*TeG$vbBB(>U1>;xB2pHdZ9mh^W}%k41lSzOArGRX0P!66we>+Urg%!)qe?y!~U%d))GC*MFFNXVwwsNRsNGuk{tBja5UTz%-FflrGEM zQtRX?l(?;EhWn1QYCwn=>3j0p{S`gccuA6jo0t>`Q0_!SDjg?kk(E1L$%$Z9dS;%o z(cWdHUxrP~oi>BAPh6S~Kh%^oHR)OHM*hks^VCoTHOx?#fC=%gE;Vrg2DZ|TX%h)| zu+m1Qe?HR*_i4foP|yY`Q7GG62tG9TwWfy0YS_Rqp*eKaqgQ(606y3ue@yow1NPAq z`&w1&h?VwdTR^2NOLu{_6zt`1wuoow_ zrq$^OxNn39;1GgTUZ6&o+lW3Y>FgwYy(+c$kY3}X82K4!YU8?DM%wsMm3z==A zzfWHd6A1iks6Qnv)*;Q^Ur9BE0EzUIgz@+uj7kGnT$xR6J*DwiV>RA+#G` zR@lk%$pGyz7*?(~TR=q^`CcgJXRvhbOh zw2(O!-ahpi1)`|{D20cHjSRpzi1Q9=tjxYsjVyFKrUp0a;-;PEu|j zHi(8*15H`+37B`Qb}@f$g{5(pGFA3a4nw;G%9-+ReAvF+xNtewEq^kCpDAvS_ijJR zb^Nloxs&YX{z7cG#X2gjzOFyKzZZ7I-D~6LOgGBzk>kh!=U|`Pi{ToFkUE_U7|BSA zl*+P9YV&xEF?nj^?B_x^1lu314$DmrJ`_d|2pZYuGKsY6YGR;T#*$5j>>@!USEXl$|tV$dSXj=LN2`%yD5WpQvi581hY8F(aw?`uj77NMUGoyp zm;%P7E8#gSB~-A6A=R8lX#Lk1#=0e(w;haGD0bk>e2@mcXbCUZQ2>EYAJFIgs@T8QNtCGEg5l$Ssr{U| z@{l!WvnDCHvc7OUJ5u-Zl}Uob^efeXKJJ>SoFo1@Q#-mQQP0Bp|FjgktwD#KXbUfF zM)GBjq26T4NQi$F1wqQR_gdLG`A1Eol86YbAVBiqp5>X4>|JJ`7s^|9D5C|uueN;& z+>^F2_n!CtYw>?`$L!(Kb>#iJ!6Y*%9$^^W1@({`SDiaUs8ZSYdQQo0ETGTC8Thh% zMAM!T&GQfGQ*fdQ{ykmBbq&_&xdPifWC_U(cPTQVss`3JF`lSzNs2IxbSJWBkDbQG zp!V{16sniRKple}>N51m5!+AKXMd5s=5&m}WbB>9*UC)uv{|1#ssCzLYY*pd_gN=o z3Z7d54yxGxy)d)7(!a+Y-<4NIE>KQ)Hl@6=W5@;Xe9!u053SPxf@lTIFy?R4-!l(O zh_IlraWjP{M1ukNG9uI93FTaum(7NQ5!|R;pR$!a(m0vwk`OZv^7LH46r1O9M@6k@ zaPT|5AVbi^rHS74bZi3^IjnxUS9G}jJH_SU<`Y53e2g0GMo5Yq$Y`3MO-`oovVF#; z75+U@G)8rroh!;G??Ha+IOFW#u&@4;;KeNrqFL#< zcY%yQ>%FP11R_r#5tf=z_h~EVqoQpv-_zgbufat@#A$BzR^Q~`v%&5?s2>e0KW}JLJA1r2eAK`M95B~pNi0qK9^YuIzimDFG!cYrSY&^g1j?T z0js$-AP?3TfCl?0vGWxG%S!0by{-rEUE$y}+D7gN9V5^=#*UewM<-ZF4OHuIg2g^4kA#J+!jb?!jN5S9O{}G!J++X1?At zQ`6Mq+`V^=sbs&8K<4bDjzw1L<(FqkVR7obR;qVhF;nXZuq`lq0Es;b;BLp-LV1Cj zQO`F`8eeB4YWs37CG^jfk#7`AC*>kx&BLWLq2cIbe3=UK6bfq--)w3fcPMay8&yS| z7tsLsN@ZrL7##_msgOgR#5Q`%N^<)qWWiS9gs{?=uOo_H>ZGIE7qomlty%7u!E5$9 zsPN_$rv-+FcVL2EtCX(+2s>H%o(SOTlKvh&gA}ixqMV}{41zi1r|xR#=EvgpC8MuN z6Bd-Q5f`8Ft+%dv2j(}J)OmP}cK}Ja>1d95(ft(wTAK$&FTb>r0JR4y<%V<9Q6L-J zKD{W&^`YCE6|d1wN@Ty8&p7P|j&*;XTT;xWNjr0b=FC{_Qp-M~z%3PH6%3HXSM1-U z(j_jP=zz0O7s)b-CdrbT@j-*hk!Bk@-i6!q$D3z;NPv#;qnm8OlnW&4x6ZrNn7TZ3 z`=s!PA)8n47yA#f!<0N2=K)EU0thn=qx%7GOg0a*y4z8|$IHjX7twB2XGS9b(Ja>$ zknuOGy;xl}m?a>OE-j^k zr>TKN3M}fFR5hiH;|u^g58Pk{crC1E9=&~k8}E%UW=W7s;|F-89_Fh9#ww=Ew(5V; zxKX~fmX=B*pZ8o9PED~yj#74q&CiCS$z4urP(V{eJH6!P#2X+x-4@Z*>^A49D8_8t zD+Z9rh4mjS(z;ne&Z*jIm}kLp(8-jKtP+Z{qkG*tyK$GF9&q43V>m~3yG{amQETl4 zSMx3y$|-82X{;f@elD!#jZDwqqz@Q3x8s&9fSg~nViQq34Xni$i9Yz2Zc>N9^5<3A zh91aZp-8s{C@ch@a#0IaVkKsdvG-OLcP?D93Fa z>xMsWM27B4NNga8Ce@RB3nwSA0IO#iy=b%9k+K^Q$FwXSBYVLyZiw|6>E3eL}CR-Q2 z+Xd?E{y1HegDec9NZb%VJ8OQ#$H$_A$^BdpeB+q!4Y9NPz50ovw~K-J<5_e_A0$eC z#VeQA8pZqm5k`9+A5U+L3#UOdOUKA6FK%qQY9gHS*}(?I^n98SlLR!Z>6@GOt*$2ggR80Ao=QHzP(B5O zR8+iQ~CJubiLL&ZgH_Cf(3Wz`iUpV*qHq1cW4*1N;eVbwdJ1s%qHbI$601 zvivU~<}U&Ox4vmi{@kZcGMSRr>0YyVv&a2ux?F#SA@~Z$=(xfh=vIGbv2l+3bOP>V z4+>j4W9{}E!dnP8v6K79e!k}72+DZu*9!bHhbLc@H{zO%ShMcT%3rN%;f|#6x<>U@a?hHViKhTfi_}@79wXGh0+z(a%p0F( z`a1)9I?U*4rXkN^`4tem{-^+C!3id{^UGSlgfK(no)}|o%gcgPvwX~H;L)a2)Iz1`IEhLH|K)%3gn%mOswT+gHhj%a0($D$fqa?Rm^FH4$>rQ#fk z$khxe4K#xQQBEtukz0@hEm6Ic!(6mlOsBoFCdO@c$w1{td*)JC(q?pino7?pjj58h z33KRDzttr_76O=h|2QbK>FN}rez5qM+ldZ2nmG2?{dL9gwD)3AcIPY6xSB&&Zuu3? z)0-n|n2s+a#7L4obwae(N-hsmZ9#`6)(jK*g@#WrrJZ5nI--4_S6e`bk`F^$Pd0_(@7VH$Onh0JqR<;I zFP_-HeX?R}4o+6RyzJ{K1EV8#TAy|OxDxjcsoCav-Q2~VBTf|hF1-BZ==Yt<(}t~M zd|9iX%U01U@ru0>`|sP2{yIi~3#8edgDmkmA{slmlg3Ol!R4krtfKChUxS3rbxS0|9u0ok? zS(HwkD=C-~_V7lz+w*Bpnx9>qA~zH&ze~F<=+Xii&wn~hve852J!7^q5AXX69>Dwd zK&|sV_TZLlUQ|3NyENcZa<+<15eF*^l#_@vT97Hhp7QikdKz!xo;Nm60VBFdXZ zr_w4gqRs8wOD-E{zmc|pp!j}w)P-K8+l60AZ&!||OrUBfyIr)+h(i$uR6}_Bsw0+s zIIJwMWHo#kVraI{^hSqCs^le$WDSQ%AT z>@-O|#G01a?=`ldjwaNdgK{{t-eG`ZjH|fbxc2jC^XILexs_t!fquFQ#T&m4+%O*q zjCeN7yR?OjZVxi7E!NjZkOZiKPq9VaFWafSm;Vs%q|S}c5~vD&O8ZH`9aWfpD0xXM zFL?|MP`Rz#vi|5S*jlkUV=?k@W`Ru|j@#ED!=YGm{2{g%_5 zx%|sK1akHGI3!=u79Oxm`PxeC9+Q&$&_hJA7JEEvANTesDpfhd`dvDkELku~oODDi z-94U-BnD+V*g0QPP@fBCBXy!P?hI#zeLULjGJBU{tG=drn*JM=QBl)?o6IQ%TtrtL zBb$ghz7|L@{r>l)!{6+JSoLI!4~@}|Hz&b4P<$g57>K4fW`LU}lOjgng;f}lD(XQ_ zB>x0)Vceq5t05rAJgguBt$znVQ;V0wRSVZVr9AXE&P9endQ}rcD|Iurm4tR#q^po5ae_w+!QcsX6-sz}r~9NV?vk z{SPj{w$2#PQ=?70Jy#FV=?@;DV^bd;q?*t(IUYN+_vAR`qFR6`vAaL3duFaX!>2qw zQFs8+X&vJVD17T>zQg4;HNePfwy7X-sU3DGK;4h}nx$G}HmF@00tVu{<8H^m5BYE_ zmaNa;C8kd+G1+lkS;jJG+~p8LZ7;l-7kdcV$zeP&Ce(N+=`l6ObB1wv|L658&vL+H z*VU@fiPy8uR^#>mmemE~^@D%M>thK`bq@}LLC13v- z(tW|Ja!-SXuipU3!mL7aO>^=JFdHdlZL*uYrv?5xgWIL%A8*1Nd<3u}6J#USyU zSkJnm_M-#|zjc`W!-d`1*Na+mV-?r@5t2 zOJ2O1o|N3tPi%FFw(I>Pi8rlDnhuva=MxujUrj~y(8ADzqot~kN94_0`;Tp1)nj_~ z^}pVWbgNO~Z^n?#WjFy>(BPKQKoO{a(+zXefc0;Cfe6*?gD*3JRvtK`#tz@}diG=F zN919=mxnCeIsS{4z{7MLqi%w$LvM;Su$1AiQR$IUStgM2{6yqr#Hte8Pi1)Vw7GWazjnuc9MjroL5+!l~re;`_g@5+RyVk&Youa z0@J}Gw{-z$C7^EfD!!5ae-fwn9z3RXCN{D-kmXR7ITV5g*0F@tX@TQ~RVjetutX*H z*Z@!AR`;!QTbx7$I~O@;6?o-VMBwfpbXUl30@%8#eeGJ_@zfcX%LU73;n5UFtG5b{ zx0x1;C?k=q#oK_G zN^c95p!^e}zyMY5=MBBS-;W9rKNvN5H2)49v`ZG0!?Ez83Pa(lkze?rk@J8P07>Sp z^#yqLI>7Tl)U)7oc>P->5Q1z^WqITR9i7$#-}m&o^)#Pyah6!SKX1iJi=%;*sXWrW zCe6ysWD0aaBCFX-OS@0Z*40Ew^bC_nCrp14%WJL~;~Xt7El%IQ>Q%Xcb_>PT2*HtXlO9AS8hiV8wUq$L9WS%)A4Q&B+zI!VjKSbf=dI$&w z=~G3f4r$*2WWMi(Q8uOU2}Ol&ZLT?qqrQWBz!p;6efbTN(+teE~o0xHK_@x}8pTi7uC1BNm$+|W`Ie$6^UCc}N z@KFB3WoQ8gPd22nrG{1$`JA#)X327OuSL1Q+@D+V0e{wYJfUB~Qq~1njz3IaBt+*> zezD+Q^BJq&0O!_oSJWZTP-nD(ZAbKOmx;xhoiQXLYSQce1o1IyL` z_wZ#yfbM8(>*zTFp~(3SsU*<4N$Y8EN&?ZGE-35#kr5EBdVmJzul=#d#m}9@!ipZc zph?v)oYYNqMHV%jIa-Q}T$p`lo6kUdCO)=b~k^{7TJqwgw7o|>xcG2B}Fom5d(m8(gr zoT~Z4SFL{8wX^B|6dP|#`>Eke$m*1@-or=#dgf-2%WEL8=M{!{NULafU;tBIdPrc8=P70_njN4*_Q4d&i!74 zCDq+Q5L7_MaS)Q^$6$4bCt~`TW*mY2*|u8;F87;ydeTjr15Jhgd4Q1>?O35CdEold`mykWVZ5)k5UDgXWrY z1XK?rWx7@kZzrS)tL7@o%lO48Sal!EyU1YNyyP_e`*0H9k}6B8*I?H=LVb>4k#Tcf=Ai&+kk-zupjQCrIK)eQ7KCH}uEn!m$mn@h@<2y9WV zxvq&OOpJ>(-gm*TDF0rGA~$a3^$igFoP`MN-ntkmo!&2!cD>ZxLHtsX)<$-1N~jtz zDV$ZqKd#n$uk)6~NWZQF`3n~vJp@BbItSMl|S5@x&29m^cRLEsjsZTK?BdX0x^ z>3FVJ`$cZbYkHo?TcU+%L+|r z)lqH9pDT}6)_M0d%eMULx$@@K2u%gPGF3O{)}U?mNV{i+jr~a(fR-J@oq~?d0e90X zNfl%FJAPXZQnumrx`V+@5R;RJUwkN2m+QT8jdeHEf+LYx=}AMzmRb`|>r0J&BC>B$ zwVC~+nT3t&d`CfHh28>;98EL=B8q3m2MGbur0FPs#~Fz3dcFnJh6n2qq`F$F-IfyE z@3A~gAi{hh@vA$;?RSXgcZf#0`LyE#*(DS^no)1;SgARN!}>+s{30Ba+UN|Ai$HWN zDnQuOZ(Wz!`|_0acHpoCcwE}T>}6^dc}PJU@%o1A2M`4*2LXVOn)`Ge~mRc zLM@vkP=|%x+52ak%)^>$W%<07Pj>^^O6q&b$?75gdp9PU@UR)h5iK)->@msp1fVF? zG+kYCc}iiC4Yr&bJ8}VWb+N>IS{T^tbC-e|@@_FzohrRbDDem`nKmL-TCVkL2!$2^ zmnqg1^BRA%^$B~Mj_$&yKk^A{cBd7HWbw5fT&~eEb-Tk)2im6ZWW?QHicG6~gf3Q^ zrZn2}#X!el=4w-}IW=Ei0erb+%?ELuXabm->VjY5`T%Y$294y@#Cs22aDTcu35R;D zNTypO?0-29x(EpAEJn%}y@B)Vv!d}MRrf7=$S2(&3cUa643DkeOc{=dyXQ?>S!$<~ z`1W`tM5D+U9^fU=)4@Bb1(Pvwc;~pT^jGipJmcwDy6)jzu@k=DPR$h z?f{&0q}tEDeeqP<{F^CqkBeJmp|iCcw<0lc+P>-*)R=j6t-l}VB*@p;Y$rP>#F28i zKQ^GL)!4hH9rp-U1)vZ<&A&Ztp@|Dnco&Q2VDiA}jZpV~JS18vmoQlIW0aYzF~A7W z>CB2%#Oyzui(IGNB`p$=zD|`5$9nO20Z`zJe)=$WPD@W_RD-Hu^=H9wM}GB7ukDv9 zM0PPL{Zz>*V__JKDxQsD*1#$RFj%pDP;=73vu9_liXqMjIdG1kHwL@Gm?Q8-XM$OF z3D-zDjnPUyo{*jC#QE+)-gg}Akr3lW8ajZ zY*-Z;{<%`A)f)Gw^)mN{>L#*(i=f{`L8%Pm3i3*9jlL*(H1ruND(t3dFW>aZ&ym7aQKKt(Fyhl|gwdE2Ln~`T;G`1}*4IRB2N51@!V_rGC zp3(HN{uOwfU`_=#oTJ!x)VuAwp$dsxsmX(hW%C3?cY3U+Y3ZLvL20wyHV!_+WvqjP zMuckkyLahpgmC?cqHHuT)iAw^eFtT zTSE*Sny`VN0h8^%tW<3=u0JVqx=;Rr0Al&_qg#NYprr*>9IVH#rb3^8FcsP%`z!J> zWc3NQ$z@-%;nh8zpzp|XHdpvR+sL<3yq)hqGr%ZtY?Um(wBgKEk?Y|Y7 zOxS)WFtZEgLti`< z{sILfrc=R(dFkE)B3(QTt6){=tlL7J<(rSx06Weo=`v2*u45sHhr2ep)2i8z+G48N zQ@YRHE^$@HEtH+AthP|%5KWq07}}Ol4+#6&OaEKm#Leu3g-TPhObKLEs*cOT+1WTK ztOoD3Py{c^S@Lck6 z<#%(AS3xX)_cONyUa)kFVOy{Jh52OheZ`I8o;giT_(nF+jBJQRR>&5)b6+bj`wsEi@h^U*mUP9A)i`ujf?&Wgm;bUD9kh~AG0QIo4vVLpQ|el+VQA5p}O({cc@{T zw~~1|*{C7p3B?wRk3Yh{Tw;~LQDHBPf~>=D`SYS!zQ6iZrWN}>+s6L$@WUEwmQM^( zcL7yVqpcd4Z%8dZIF1}{sy76z51xD$F)Gu%Y{u$z%WGEghtv1DDh> zNPntpg6u~JhmZ>>RjD&qef|_Q0FqK9jP;fs!7#`~75azMt2Qy&^gH){jn;iOJ(c@s zQ{->S20zD6ktg-G#Fc(M{7dqM%iMGydaK_mT{L3=hD&61;{m@i^S`f)*!bM1AMlm` z^;z(}Z+ZyeZmU-Sl3oHZ1ITJy$|-|KTK&Mc9LV(#Mgao~Emk?ZX6kcGv!;UL{vUg9 z9@gZU{SVvDSZ7+5!HOudv?waOsDSKkg<3&C%tjz21wQLK018#K{jFOYSkxmCpz%%{Geg?(l5FuVD6t0H4ShLpVah zr<3tn)?4AC!u=_v#g~EOl*qfNL|cymDQ}H;283l_* z`D4W!;>{-CuY;HXTO%J5US;0ybKETyRz87v26+CkdVj8>`bp*~uui{`7GM>&9G2i# zKsJYIsZ9q=`~|w!)%H(kP7FkJM3`84JK_=@P2fI*ez(diaylO4o?~rWB417VYzQL( z$nU7|>R0%IuQppn_`4sT#8iDzF=1`BZxR!_bpadVvqPGeo|2pVOwhbNM!>qkneaQp zI`_*#&~NV7`O|N<<38K`2N&Rfmj54EEU7a8iuHz06?h#uw5{c4gQ;)cA&RM+W}gS5 zLca;OePem&t=YVNF0}(8jCkud(!%VBHGh8XRPC%$RdZ-)7%UWiV=SPgkja~NPCj|! z%2ZoUYF?SRjZUEZDxjn{oTp4XI_mK05cLIOYAC!w6kK7&L1&xj__pDjIGQUNDPZ*) z2SOpp&uF_MFpTaAG6pAM#=M+fCWn29w*I?iKPQTb18KvYi5eyQD~h2I?0$o|a|r2! zEacvEZ_8pwJ7GjoUC_Jy%JL+bsh?20g5+M`OTbg;Rw78Jfm>CwO~mz}kx89R21z$l zI~?Xo)K`_b5>wvI>6s|!$two)VNd%ON`_Q53C=U(2HObj?wfl(Rje0^W7tjio+ko5 z)KJqCW9W(8y)*=vN}4aGhqq(?vC;fP@bcN8hw!P5-)C>>NStQdg5^iB-zaWR-0Py( zEfq(Loi!`Qv}p1skgwhzVO`O9$ahqzJo<)d@RA5-4AVZTDQ%xN*s!f2T7 zo5klir`#1eu%+G=37O+Xy<{Dq8s?xX-v*8@xSyN$F}^$;72EpT-j1bW9K$AOuO!)? zLBX^aDz679Lm$Z5CuLRg^&$@$8>*uHZjsCx>>@*>$zAn`lu66ZP$A}hfrzs^|13%w zEZ;~wdgE+&tV_;L%$EXUL1@Yuj*5EF%Mo~QE7cc37&~lUEERrO z`K78&F5my{Pi_71%YQJkF(-ZnI@jD3Zy#6$fW0VK<6EyExnz(%#J$((uH}+tJ0OK7 zmw}hB2>GEy$<{y^Z^u>O$^NWEaKxC1_k!PJCN0}U^>81kq*v@{C~wG%m5$`)$?ak~ zj?|qlQ;kow$HT-ZNzkix=u}mqq}>TNG+**#HkG2yyc-wxZiUN1|EivzS?pW@rvhdp z;BNkmb(hP>>(w^kLQ8-CukoWP($f5UnGnGT$$D~dAf=~|9hP#U?0}tH?UOXVM$Ort z%3EiRsFSnowwus0Ff-LO2#%6WEd9n4n;qwzynF;+)p(s*LUS7ELlXHCOPaoA;u9)J zKMpQ%s?yL=7B;^`6Q5DAn(OpU~+yoJ1&_&Qttg z?HXm(3psPUwB=Ke5^##DH1kl6m>#K-it53B!=Wp8@xK+)?^^?~HX7faxe zH|s+j!EqlV*sgg?2lKPmzaa+PPnBpFl;6^Ft0L?Iq}$+&_aMJkoW@{Vfa;0L1n*TR z_rz}woz`D)M<=^m#YKGWdpE}*>GGVy7=ZZP9im^?GNL^3_Od>&6|-tCQv5WKthI7V zfqu0sZum!^euIIj$ZLMwhb!7AdNL9C-3vWa_;%?LN(5fAO|~QWSKj%f??#i6go~fV_P@}&H z>#C)juA9K;;ub@Lpsd!lpCuhZK2e;t$g^rIvo!F6K#701>a92L!_B_Zk1v0Hc&7hg z% zVr`y8zTg7TShtGpFsg5+Hm%Nkh>&VRh&A<&3V>FY+lL5h^XrCG4a`0*&#IdO>0Qf4 z?|^`~C6|mK^JiDEWtKBh3;aD=7F+Yq(%$bz$_;g3b@<%MaOORB7A}#q52Udi5XWm7nR(dAi2kt| z=|lGd9$-)2D9V6U#hOR??5_C`-#!-tNwm-uUs@u*qbv6|-BlAXKOd5J+r6axl91o< z88sn?UV2->Fz=ek6LDUbpYcXlK7eO&s|&JX_O`bTx84`=uvcSuwyo~dH$eb;g^ zH;2wBuYn3Y8=vo(+U_FK0;=8J9soOPliEqOjk#L2gN&P;$WWT_=M@*UMrUMb)g2G! z+O2bW)srhMoogA^J)I0so8MhqfV1r&S9)3@clMD273Nc!W88c9oZYst%lKhFwNpK> zApV>TI2`Cz3alLRZLv3zTbCnIm&?=!fpk7JW$L zMxWU{AP@eOKf3iUl>DiH_F{vp(O^z@)9;X4M_x_B7zh0e`2wk9V2J z1E<5F&feyz0sTX6y{7a2h3DSv4T;<{atKypI3IXLQTQCJT@@WQ2wR$lth}{mpfnn! zUROv>V4EruIiG%0oBrB}0`kJ{rVCkN-SH}kY9LGuSNZa9-3rxEnRN;>mm!1hM>dUNN9jG%mugL(T9^RWqf zvniO4kShb9!I|a1=Cz;U5?~%ak379jqb zNr0~&WhIl;fzw7u_z_k^C98DsT5kg5gt_Aamr_}qWZtjsmVg*P%&SxXI+XQ+RdWWnKN*bx$C|%;{l9R{M{iuhj6DN}B@jhoJ+lwGom}pl z*S=M#X^cmsGqBKGzxVo4>Y|8eZmzdJ@$mCum^dFCxQwhV@&ICbV*4sum2a;A;w_m;u)^8v zBKSz z)3uzoOF7vXK%aX*F#OXw+y~nIz5kl-#Ed=9`u+*UjlY|spOvdcsw5u?zWamL+e*Jj z8Pzw(>R|Gl@a+w2KmFa+7~tJIo9QlbRIFG?Zen4k=dAgt)m5puIy?k(C9gDJMIIYs zBld?`o}q;&Hi(o-Q;uNs(Tm6MjN{$ta>rYWZPQL#a6gH(QJog^+Dv#)L?=9N|#2F`tcNBviqL``G3+p z$zWE6et@r*2pj_W-1PMDNcKQkwdcS-sq%n>n~|{zjGSM;o^(AYh-Wr7a$?CN&+*uA zebj7g)8L+)L0M&}wyfrAF0DG|`K1c&-{I(9KTBNOJLLn9(*gUp5WyDRzFgv(4LxAl zr%_ZW4bZdfN?S<$KJ3PE|KU1wtYos@rSE40t*zpa4n&E-109v)3*mcr%07o*-(Bau z3rQPXk*o)Wte9ki%$wEvpU#2c-*NT7CN$KDk?M%zt!wWdfXOEZKiL7$px9Iv8Esf< zw-*WyoE_ls!P0ve7u%Tc9g%C##8W%=zw->G8+ZLa2%`k7snOydyaNW>-rDNIz4of( zkzLL)@`B(Hw>&3I@;>@J+m{(HoF;uGz?cV3dFj%^+fZZj*N;Vz{oPq=Qb!`#m(}TO zh067jT>+9mFETxG)*ck>#^UQ zFYWEVbSBh7C;P}@oy9}CvAIMt(C@haVde^9GFKC69=i3&Tq!W6@$>OsNtW%a*O$Nh zQR(gKit3P|U0ofC>Juls*~K0^IxCH5Td6blXICln(x4{l%w$*y#3{{=rKomFeQ9rK zsP9reRicUq+lTf4vtRNDFS=pF(cC{AtJC4Fxe5P}VNp8V1EQI5LVJdXj+^ZVtG#e*S2 z!5=8-eOy93cjzZl+p(nec6?@p-=hPm)IE~MjnsZam>z(*St%Q3+i&2SLIg@>^UJUD zqpGTpP$vYo*^ABk=f3XCs1|RoqA8Q5 z<3OZmkq*Kj1|qfBst3$?jZi|kNCwEelbif$E(r&PQO67_O+sMLS`lB0IgEKTmu?e` zCo{!~HC=2?FP`>Jp6o-otWO7nZM!V~*lbXQ2JijrGU0t~Kxf#&TTqraBizX{IV@ai zbjx~`fQHXPwa7nsw3%S^#-d;qI<~^9>B@2_YeGH*3rKk^G!ABN@f%nfB*>IoiW2>J zcd8VBi5#4&WX$Vz7Q4d)rxBKk+_l)PD;BKS=06NNLNB6F{#7n$czR{H&9{7k8K|ga(Y^4rW95bUYHQpwBPti>>Z2NOK4XiA5iIjsi~Z(B3t|dGO<^2J zdj9HoM_~ilkJ~LXtS7=R#X8WaY^@rzEK81?Jrx4w(3K?Y_6pugn1h+CJ2`n-37b_@w%29MX*5xFG zuE8v2gTJzsblfOc+Aqva8^$Wg?bhK50dX?{dGtW!Ku0O3=0vKwN1NQrcmif6&g?_1G%*(NJ9%5k zxK->-r zMq;R8C8fvxc?RF+u;f3hpD&<~yFSVUDTOya+pxatljksB&uxgt;a*-K0HUf#6J*0k!C)CmpZ|N?10|)A0 zmIyA?mfv@3_-(taQO$ zwzMi~z0Ta7HhQiw)MbF;aoixxDQ&v)HyDc}Z4I}MtW36d_V5w2m(5{norN=+jd-%3 zL85#3q;8W1ksCFAij~!pLZlh9Qj)mYQ=Zmsin3!`9jOGTAGIiJBMD4uBZ6y|<3i`C z-^|i3$%?w-hzo@qHZZ>WLj%AZ@Zk^qq7SbN90zZPq2a41R~kDTe)G}I2_7G(f91|@ zcW%mn!-{kgjEoPv9~0gUV$S_SwKubIqYmgcRZypOqhhEgP{C0la|Pm1>F!lE#685=hF4!{61OET=csv8PmPf&YI=xnbzK}i8mSfsySgSVKd}OPz9T-$IGp<W-P*_2FtZs6bNOcAos07&{j?Hrj(>KalwDK}C;v|$tr(aIld><*dv?ND?>(U^v96T!=ZGJa%vh?~&S z=Ly*g{iQNwwTV=-=H2}+!;DvFAM+&m@aI}-s~1HRRxMdQosk07wz@97_~I(!hYwIBbm3Nmq$=YJWeeqBK=7PRB`Nv_5OTqt_rl%j(^_vlqy14n;+QFzf zf6kkrDU;*2X>+>+8heiLq60iy?M4=HDU9RhunSl*3!T@uHgtP;erZSoGo&TAd~6;S ziNVg9oDq)3aGPwnH2a9T5Q;CS<#VK%B9q2Vliyf}=gW#41q!8xc-GgA5`{ugA|ilr z{P4`haD&JD%b3etX~2&9UYlHFkC5S`%YATle{UcYUH0}=%)p8HnEr_f6iq#^;V+-t zlyXrI)Cq@A>jW-yUyqA&0)A*sk}{D$6(5%o**>LubTMxum94C?Z^}3cI{_qs)faSU zd#F*Rz${oV8+peMaOcW3e7F_v!9sk35c^nc5#>U(4u{*uNOA+p__ixDnQs1or#z5^ zm~F|HhSpfcKwxs6D%ogoSx_E>$D}9dr+$x>6x zWgJvtWa^%GX-wFxSpSMQAX!Tggp?e0?Yp(a{BhHPi{f1R-RSaGI2y7J8(t zg?}hzXW}kOHp;d+74(A?U(2TaVrW(Xj3JQU1_kfA-_b!F5>Ia(Y;X9wH>#;{`sg@y z-@$Aany({Gn~3O>#Y!@Xf@HiEgSP@PMNf=3N?hJgi__EJzvVP;IRwVxq>tn9)MiB< z|DTq4!#jhYV0rpzrokk^k5(tQ+HYZY`?j`+)|wd zF8JNdM;wKt!}ILY|5@|~M%DF`J?AX*QH_2>7N#CK^}otqgI%a&Td1EMnmBUyWGMZ@ z@KGvn*6cga?x$k!swJ2|B?EpHNHufdCS*mK1kx5l%2)^(V8G9LJj8AMHIGS&+8Lya z=~(beGo7`kYGmTA!k=t%uoM^RpEy~45H9ox7(iVbYm{1~^wCU-ux+AIv`fv836*$7Au4q?^6 zdA)2VvEGHFmnQQK)}q?1xbVtUHq#@|A!Qy}s62{8@JbM3pjP>AJ;Y!AnxJ?G%507O zJa#IdgZYqfh}8d-EqYf0Y#Wh%ODb#J63nZ%ShDmZDZV8UUfqUK!nbbj9v7eL9+D5R zZv_kOIxMV(cF1-eo;CUQEcfrk@z#rayoK^;h&4&~jn_Q(8h#A>gosyH8N-LdPuz+-meBug=}OrGMmpayY(H8Ii8MwY&b!k+Vi&qa&3GsU}?CVAx&kv5|xl z%wG_pVMsmx9)t(Xd;d3rKezzxmE)Za>Iu8^gTf;`X8!s@F&p0~zRgD)5KYc(@t8*f z51FOIwfg7Lkvb*_>*W@`=;3b<`@3+KxUxI*!Tk!XBCf4*{dpBq*TLuk*dlc2AASlH z*ne9=&MkCu-`Eh|T*G7YvkXtInz0Zvmh@Sb@mI)UUwk#-9`X{IoWz7*>m+vRn#jK?TPxRy119xasre{KSV9Qdhch{q= zw~AkJpNgTLTX(Zhr9@CvP(VtWtPtf<1FOSEYT0Y!$$D z-lS zpJkKKj!V`NoxlZqA_L>Bc}o8&*R`~Uru|GQ)V zS7837B>(@_moegVusi-gU#g3nk6FYJsj_ja%~ip@o#8Imr(-+JtHw&%#wnwoH`w2j zhR-JY&&Ltgll^F5W=p=mKT!8o*?Q&&6ql2nAl=^c4G>ji5l>kjweBrqj0bnjyU z4jlF-+u6UfQQa=rBHLG*OLAB248W^Gml&UncJ6n%<^5iHayPU`RI*>*W4&Rj{;?jVVdO2+DU~t63 zM0LnyaaVC4j7bfPnD5eNWQ*iHztu7~Yjo zGkM*wt6xjdG8-t3Qa*%T2dBJ2fGy(0>x9XDO&qz<-w2IFzOQM6oElKuK zG3`(Pe#xcY#0y_*@QRj3b9yI>lWS@&&boxVQ6f90zC;)};sgdR=R+u&r4fB5BPjNG zFfQ;bG%`-SYJeIHvS^7Db|Swo9z+pS~lUDu5I?nw#yQK$sc8nziz`W9h+S7 z-AHkym-;J>qMIyIVOPU;*>DUOLQ2DiSfdMLv+KOz6y9GqbhdtM0bawR{^wCTFG9}# z1ypyJB(aj{>blOvB!KvNO8L&j&~TFImq!6Zy+dFRg)JS>JOu!SDM080t47xWIxzq1 zEWjt^EjgS0aCqEyB*2Uk<>dp|<@@q0@-u$wNw^MKHDT@KtsLPVEehkCXL$sigU||_ zu2Eb075tXosDLSZw-#PZf%F$oWV>Iqo%|Q<8<}(tGA5Kdyk3R)>&L7|@ttoAkFqX4 z{~}SoYzUe$;Nyq*vkp|&dVP0K4_*0gJ~!WEO&Hlw_Y9+in+6c29c=Ib#or5DvT6Gd zo}mHSWpxo+u$Dsa5Q;v^576QE$KV)SnEiE-tb&vu{NWh0|9BTiV%8ii6sRB#fZLtiL8&6#zFM9UwjmBlAim=151 z6)Z1tZ}$ML*Cr^Y0Y#&T>x7BmioT^^^rhd=$Hi=Be+zE!z~}G*+Hp{sJ3s&AW2GE~ zsHEyN5)HOIJ2?TG9E_rZ0_G3E2OQ#VieyR`E`#wW={RJ2>ZXR)^yS zN1h%2q(gka6`+sTG0ibB0RPy(OFjiUC(Np)3fz?U6I1Wcfy%~F%hfwHHFIXcd{I!D z_8S@b7V9>!rJS`$@Av}b-QO8}Tj02b;HgRS2%~k4nneEZnuk-t(x2%#_c9!;Y;`Ty_R(*6dB-tXEsNWKNo<03-&|}U_ z$$pYGIpLcP8!)>*34f;iH>St7$%pG%k|{;XikNn4xg)Y^h}$&Pm7bnnrQ!D$TNX;a z(+Af=^vMWq#Ck`45NzcEan^kKODH;Hpw1l;1N(gj|7{q0Om|A=K5$#)usO4)m1n7z2bxMNu33MK8OdugrZwh>H}kBv&rAV^3nJFEbnS} zU?arJ;j_i9v*-z+4o+hww7=oAnStp9$dZUP7kfdo3{{G9$>Q5)4Nuulo}G}E;*CSWYGP%;s^ebpm^la1!q*NY;ExAmD**E z=b{7|zEh|OFpG#ppD!diR8U$a#VMZVDb)&{`Y&KPcghfXG{;Vt9G$Ml$cWX8DCC+f zALj`S4rCh4aA$T#N3a{7gv0WvDR1!4iihdW0{0wYAWPnT6x75=+oUgT3=K;iv0ZV) zw_r5n=U;*D_T$9TpELnYO)H_xgj$}a0MC!xbzzsLrutc&AMs6hljSs)f5^>)SCP$f zYynOq4`+BCBa6BosE&RDbE$|j95X>)rxXIB1l8vH(G(T9B9GwFw9YNDm{weZB}RA0+$g|o7-GQ+oMBW*VEJYBWMkcoD<{YCLrFx=zU5v zz<^FA#;AV;ZMCIZxd}Y3yDn=dTwVK-*ZpR`&2NESPY5ybfO~+AL3W8xT`iyc47v)4 zAV_b&rDk&Labik%?|=-~V?vT1T6Twr=Uek@MM$l;3Ga@8A3V-b`GEx#6pC8PDqdN0 zm{KPf1?QL0Ei9wQZQey-&8sraf+kQ6LKpV5ONLb^F&s~An$4dBOeNx=?v6@siMrH` zFn$vWgvQ+82D{rAl`o60T9oROAirRn27`Lswk8*CGAsHv8-FcWP|Hr@7dyy{mSC@E zPbolytL$sB$aC_~-#H^6*GHj29HFj-y!LIs55%-eqxUkbGUBy?wMS#lD zw!j>Fnp1y?Yw9jtL`soAw!)TISlNqr~qkl1EF2TYBF zrc{Eni1{3{uY}Hu1LZ@*z&XR9Jzif^6O*_|0FOr|<}5i2_QrLf@?to4(2Ll4H%j9h zA+?i$)Wc|{LcR&>P>+7)cZ_j60ZEQJ?az$KpG9GCNBC1=P8D5iVYI)=mZepinzihd zzLe(B6L$&Dd2~ZkcjZZ~A`w(l7Rf>xz!l>57VX-3Ud}78(6Ga*b~0+<*mYI~Ck9VL zqX87ORL}&r*wxf5OPMr*rKlIwN>C%NOes3j(|5)}TwUklBm_w;7^1VLL%=fWnZJu? z)++VN-d3$H9g1M+gUplTIi=vw%rezMkQCJU{>XlXXo>rzW^D3Yv8|6503dOfkxKO8 zL9I3b-t$z9#Lpdh-5xeKV4bLGx}woS<&*)~m8n%Pc3mEFvy*R?iaga~*+^DVdNk_RPuZ@-VM`m{xZG&i)CCj70ySIb-pwr@d_* zPQ4O0f$i&B2(RA66+e25>b0d>7X8-t1`F4RwD!VP8^SfvJ&g^_aY}?934aYcvB^Qt zHoPp7>T)+&>#-=Vq7n{kKzS)AqsL9K=9YN=T$&S5Q7H8F?qDlw=5|^Pg65Z2(|R<{QW0`shehH#RYk zVVH@WzSGMPpT&Gbafdzi%TLGkh5E9}z1SvJL^=48>o3)-Dc}(=fP)72gI46lIT!GG zi^6y5%4ul)Xa~4AVr>qno^EiOoJ9K-f8#1OlyBmxjeIz^5F6##xVt#J2^7;d^0`8M zb<~9Cs0@I5#v&zU;`VlOXuabZG%yHA@RL@gw!ot$U_60l_jzcDw^Xs(>7iWR9G2|d z;gvdWjXlF_&WP&FS`R4PQ)%+E@Ls7C3~XT7neeIb>RsyCfwpSo73O$Unestj!1s3vD&XN@hP-&bP~ zo3n?)P92-4CP4N4uT}&{l*Le2@0NiZ;%3p6$8ymTlno^>oJictS)pC9o*z3iD~8v$ z5}$#)AJT&zV@fS3*YSj13SwgA!em2mTobNkv!u9oMn5E=6JYr$(j<$r(S#lVd%9?L zyZAKk=w_=~CXi$u$p$Mwl?NLOLM>hT?e1H6z+)IBAwK#NA=gYiJ!KvRvo~iY$X^Fp zH+k;dyy1n%N8O%3G8ZFlAcHDHH58}cxP=7|$p~OWJEU`0K=n?YiWHD4NaDh1#QyGwigC_CeX2dD*9&P7n-#VW25!^+hoM4A}4TWeCemq+vKUPb=n6XI#;ru>mvlp z^NJ=DS0>WaZ}-A4*_*{&f36GcA>n%7_~zXW-!5E2uL55jJp&WfJfAw(V&MYI3iaQ0 zd!awj|DipNK|#i}kA2Jbv_+6`#3oG1${|t{-&RvI%DVA+lJwbhqjEIj)m?ArP<~6t zwd0ocg|hWwo7`l7amI)h8v(l`(unspU(>^tv5rFXOyPpN2AF9mO%&mV_07>M3Kok9 z_pNxsnotL?`DV~YObX<2XMKCQgl@9ij_C_G+UTGYq8-QC!HIL#zkq;y_0v*MZXQaJ zcYtmos+JS$lV9{oeiw9iOY;Ko9cHAuQY}x&zP_{PH)c73yl=P_3e&oDEaX;Qy!Gov zkG#yfBx`-XQMKn@a*ng?Ap}kZ%8zXBP#uA1fj)9sS1O2QDX-yFFpm#G9HE+dq4uc$OQ_YH_Xt;zCY@kwfwtD{lvvu^K4t(tBDp zv4m&G@YmIV;v}vhy-C@C9T< zPC0NK3C@bD-vHZ4>w|1zqGwm?hFdSdjH<}?up;;2Iy0^383EZ=#R)!ylj>0G*u2|V zkindAu^EgJ(^xi3FJF~oObvtjHZ_%1at}8@S!9iOW~T3#23l8Dlw!~zt5YjQ2N>ke z=C9n+s2QXr&O1?)bJ^HLJw(}Yq8GdF(ajLbW|(aDU^f0_1Y_2k&L<6=vyo3_1HEyR3=6#$Z)ZaM* zqn5vZ_93`^Vvxea^x5gJ#i^NYThL;e;j@`B*+VF?WNLisv7f;d=5x`4oZ4maZu#=F zr+hEVD>RI==va6on8u18wqUhCw!NOc`ifhYvic$1k-H_X&W3dQGC2zmc1z!@ZjOwo z{)(_XPrT5awW864^CxBnI+Z1~88UCR7wjMYEwXy8j7L*u5+!CS&9?00|J&2!8N2jM}w#N!q-jzE^DVdF` zC$nJbszUmylvsRs(yW;FdiiA{?E<%JQ_bb$O&q~esNkJk5ZMGyC-t%P=klM*(tS!> zX(vlWC&cI7;A@sCo!VA(hP7-OYa z#cLWVTZy9EX;35`@p%-1xe_ zgRCxnc)?YpZh+-G1K;ZKdf~OR%a!9AOPpc@1CS`l{uIUTlC5iArYg5<>8PP0T_4(a z;A^)${ni2CY4q2cnhRZuWLMXd!;w8NZQ^<;q^hK6m8G`?q=CP8S6+t3=pK4|>###! z5msH}9N7{hiGt*UWIGtsWD4K^|D}w04V+weXoG8c|V3$XL=u&2*ba_l5VNgk!Ny_(~-~J#0Z8nd- zIA0`?*XA&3B{YUskrMXMZ>c^Y`o-9!OX+&UtWi*Pv~PY*C6UtTM7$`v2tw%RpEh-% z71v+$?^=WVGt!?Lf5z3VyM%ua;+#pvyD%``n97Pe45c3knLOWjaX7mFPTe+q7c`Gc z4h#tJOE58o&t}!q56Xt%>X%2d0DC>#0-Cd&0w6VOK^5@aQj{@rd%BaD2*ytfF7Z!i zVg;g;Y$<1K5xKqSu;j?~VBN6S1MTeQmZ=I6s;EUjCZY}9=r=W>TpOwM&f^y-4(q(C zp}OP>&;lKVz?;J?Yi+F>K37jCl=LB5oOoi{>gJ+XaI<4($oo1o^1sFfE2K02IV+%` z!#?fFAKl#~nVM0LS-M2*HVL@c9|Bsrx;Mfc!AxA&ZcR-D39+~;C5dC&WNQZ_+)sA5 zn&ADd?}Y@M5%p98-wF?O+-8ywme_l(P<)&MxH(9MH>_lAdrbl!Ti;d6ZVpQcDgtKk z&7mt79qGLtiA)`7V3|;wAXpsjMc4Y3(j`mx*yQ(Hc%_c`+ zb!4#75-%S39A0+1)CG+ezK#^g%`(l|izlS<%k!WYO zVC5~2sxOQww&`C@tXVcePy7pQ(1MluVO;VZtm#K!n$&sw zm6fNkE)w-5EYvK=;fx!$8A0>Q*9pDnaUuYOADt>)iAWnci1)?ZsT2X*Y z$Yx+_fnIuyy0Y@SZ%Q(LN_@|E!b7>Z0M+%^W_YnI?O5rV>-{qWNeb(wkpx{Cs#mqE zqjl0cg3)33^WX_Dw)}mgqyC;)m}L<^xI^|HC@IQ4Iw)3vqV4tvRrNo_Ic#23htF4m zx2$wDHK%>E?xG^T@w5dVRe<=T1_a|DH5p0153F9CB5 zj-91vwQ70;1F8yb#1d!QkeUHG@O>5xDCDy=R<;EqFOQ8&8(J;~oC9X<&8k|KZ}4Kq z^69|4Q+FB^kX>+!HEGyjADYN?k36bgz$IUG_X1~^r@WY3+t7a z4j%aQ;T(-=c5Iu)0R5Qp*p(mXZl$Elc_oGUL}$OTq^KEMa~0qRQmyZJ6H9lE+&`EJm;v_okI!sPc=$oqZY&YB>(F6t?;AujrH z-_Y=_P0NPxl4Q|A8n1rz;$yq)X=MV}D&_=}W&&Y3p7XzG4<&^9U&}Zxqs2mCWD^#y zBn;1cTlH;fa{sv0OKjCBqfOK#M=**0bs3%2iI1a1cO_TrEUSs;9w}bZ8NvwBQh>=V z94N`)O>l$NFkcSS9l;_f+k+Ll;#MWyJKOI46*fF3@d7tn`5poqq!;W@T|T(Pho)w| z;&-ip{#33Q_gTHGf6$NTP`8)MKHgN;U{EQDUzu0|A&EjQ(vV&^ISMXTdpg0+i*W5& z1mpd)8oGfS;~=fd_i%A<6f=2_Wp3pLGQy_F-{JYV2(@gdl{w7{K$1`}dwz@29aYx#z4uRZj%xz(ONlch^6Pu`@ zmO4^h;wC%SUTxUWwc(R+!c!7QGh4P*i*iA{SUK>SQ`@b9>S-%OFQf8OAN!%UH;)eLze}qu+c(-PkQY7`cb>ttt0l)38NAFRDOe z{b?WALvS1hvo;FO1|m-n zjrj{YO@~s`K>ZQG4ng^S3dLQ)F|f#yaDIhg@-r+s)alxAKUmK(agyCllc~}n6Xep> zh}`F6zf$K>WLyED&wPCjCZO2o30O&ohGz(TLe-)o^7vfLbnSeV!D&8En#}vs*F#mWw#xO03Aq(b zjY4VHRvKG&JO?k%5GHx|qLJMZrYECJEOB9{6`s}<0HSeNfX|gw&a&_@tn}8}IPe30 zbO!^B{~z+&&EjrC#0r!Rf}HRJj>bB;1$Gq>jr?|(_LXnPcAkf?xTW|@e;CtmKCd&? z7jxGor&T?$H_Qt^SzA>P@9s5z1m8b1Lr8pmJ1i!}`IzdmUXDaNtPhiZ&f8*4g`NQY zFXrec1CC0dbUD!_d?Phv5Ib~R{bS0}8M&DYtP%To308`c-Fvw^WW}I_*UsG)T3qK2?(79_Nk0O_b)6=J}ICrc3+yhiW7r z%=krF(HY3V%0f|li(GCGyJ^q8?RETmQQwFS_agON$JVP8#(}U9ERh9Ew_jF@#aTtu zjhx79cQ`9g!~6*Y1Z9D2w#FF6?HF0$j#FTE!>T(BHiFgu){X?xs#_~gD|L35NKr-1 z)N)GE^m+dcV3q06r#%zwMn#J3ia7nKR&8bScloK&$6;5!U_hX?7fS6IlniF|4cgT* z(09?MR>AyGvs1Xpn~2-+!@vYa&ku62`BbBb) zl^KmG!c)-+1TtdnT~Hb1$*g9Pf@3!&KQyZ5Om?W;Zx*i-)oy3FEz2FVeJ{~JNjCaQ zER4Sz()sOMvu_xtm)XAg+|k#+b(g*s+f|wDSvM@* ze`uOKjPmk~+x;TR#qxGQ!HpX?kh077$*cKO>}Hd3(i^-1l z%!&NH6J7Wrw4msvrY&d{5ZC^#IRCU0x*xr9KeBnDV+!~lfuQZXm|VXAY1 z@c$2CUmn)94oeQS8vyVg6@ z$LKG?UIS>NNRtn||GIe>jX(Gg&iI&e4Hy|8f9MD3w>p2>$vzE?EhmhmY$F%=rO1GV z`W;2s*HiWmz=9FXka2(}gAsoYYndKoS{bQmY_4}^C z=ukc*E%1fw-eQ}BlvSr&A(hVkfwQol`b`syKhTe_1$;I3$J_W^LLe=Ibs?3dw&VBq zgAwF%0S{6-7vK5dL~dbr9gQ1cZ}=WHb#XiLpB80L5EW7tQYcZ5=*EvU_6xh1y$Q{K zM|R|Y?4yu)j zxb(F*5e~d68Z{^cX zqo;0(DhzZyrFN6RXp_u+(_|zlsoC$LFVFtQ#f$*+aYLK&e+0MW3h=X?Jn8+}wqSMK z)NQT=^G-f0zJ*#^ZYT*CW3nxF@=lv+AU!{7U+1q&3i7AQqdf#8xurXSQ)EScAjI?r z=o;3fnTZ@Ak&x}HLUk7{@!K_@3{~ZuIk?uXl^J@J-@lpS>cffZbQj#^1!I84#FKJ? z$M(ME)eOqER?;i%!oh5zza#{l4cYQ8K)cOXyTN^x{}Y!hzwu1J`ay9A$hSAdT)UwV zyAJwmETmg3Y!oBamMU7>DF;;>F~WWCE>w@KCfF* z`A=SOhdpa>rqT?`A^w&vR2DCV?`ZS*QZb}2lFuyf)bgKt>j}?mZz)XWD=UCvT^km$ z9IBl%1m@DIZ65ziq+Y+TPwsr+@>JJ~Xa*}b!dS?#Y;nrQ#0s*R5KrCI+ra%pB_6XJ zKNgT!Rq>z^GuX#>$~R^&w}SvF1?fBoZyXfFKl#e{ret3pkKwA*Rv$Zi=pe7I&zmRO zpN*&P$@582?P@jg2JbJ0t$x`W6`&=vNUO(c+E2KnZBx_&Rk7Ra?bw<{G{^BB%Dn7| zUXLHLsIa3`xcE{WK&YDlCnaWImksC3n}$OcR=slUSe-o{J9Dyp7ffyeve0AP*sl+Q zY4*ilQ04uS;zrXHc>#pKE)~f7u;sOG@0(vfK!eiT(BO9gkYsb0LaUp28|0zxwkKz; z9-g~L@ekh}3=f9}2Biba&dX3hYQ^56R*MGAl1ET2}uYkS|i6H@498v_CwmZuwPPOsf1?GyD!RHLL6 zgm0cUE*4TcM0#}KsMMbeYX$C1weoDtqTI$AZRw(Dz%&8txz%nG`M#07#Tz1OdREy0 zgJp#Ph+tteCe@-q9@H1{L{QEgQZ_MxcJHe8gYnIEb3d{DV3+-s{+rlj?Qz`7N`%Fi zqs`Iq@@VQNQVBPs`p7YYOehi0DG8w|66A2}8X)1wZUK}`h>ofIT+B;9eO{LMb|cmE znYlr5W!KP~lhp%1ui)}J&U(YS+y02em<9#oDZEn;8W-V|xVUuW9mw^%PegcgthHJG zBkKtGO^LbB0UtB(Dpibv!B&;Wjlk+DZT^ataeItIi2uPxmg)FS$GUAprY&sa>Av#@ z`=#R7!nW2n>rMBLa6I?s3pW49sQ!K{G%@f6S`lnto&iUKL}8J zOI-#8zLSI)p{$9FnKoCFsxKTAKXOCDK}>$L^&pHS>=cRoI$H%d=~n1IYPx$rb6u=-WaqD#?R) z-335{uJ~krEUt?GoD2t^a+@xoncTWEjQlcE+p7WOMUC-6s8e|4Rms3Bn3Z`8uy_9z z7YMTYV{5=t4o7zGZy=@g-OO3=H|CKANfKQ(gL9cI$DGxrK_>j(KoE z-dY~R=#N>*0Ik30BOg59^<(~*_v~z1BeUAFGH=A(Fhtb$U~uL6!`KF51>#RiOAm9N zR!Q=Fd-B0(EB<;#Cm==3mYoMQWQYvAgP`F(X8CkVG#k*9@lijzrjFOKBYRp)B(MCx z)Xsce^Tz-_s3AugZ_tCdqhF-BiPULOr@x-{3QKUOl}QFc>1we0Fq#w@^nC!)M*+pe zv<`6%qW-*?PD|icMrtJ~LyM)vt;)$fnX;JeUeLjiqOLBbgBsKidA*9y0ywdg41&iW z+2r~7Rl$5iB1h9~_P0_3^~8UVx~$s@d~!b6^7khG*_IQ*+ObdR1ky{CbJm z*5lE-H1P8A&C8w_bm*8kGw%2;-gYtjLE zp==R-hmL;4CdnXJ2v8#P#HKeY<3&>*t= zE1Q~BXaQ!vzahVV&+Kf|Gd%FuDsPWD$D&4~1aWls`Z4Q#{FqsrSF#tK?f^24jaOgx z?hdVsXovup@hw~u0Oe@Opd5XJ9H?RKb%@rEY6D`iX8UcXL;9IQvPZkLl9k74}Gyos;_p;EQPu6lrU7%!5K5CpTZ z@5p*9u3ofmN&NA!o-K$ndocgY4wM5C1PD4ggYfMb86XsYHV?+>Sa$X48R`V<$}oVs zF(hTb%j2X0&C2Rj*HA}pmTY!aV3WAoJyx6N>C|!}f%t>_;0XZL0s2y}9qP zt^_anfaJG++pm28!8Wti; z{64g#)p$C)3F`rTtwU2R7OS@TRc%-4=DSg){F*z}_2-6*J16kLoT1xSVcfUc6(}jL z6P9N%dj?4?oYSOX>jW@RgftmXsP7m}!?>kUoSP1cc=dIOI6_H&$EBeinTYF4Rt~~N zGslWY9nC|3zQ2hRtJ|Vg*D9wzWmJJ|v6${G;*fXiJ*K7PUwSDBY{uu~=bFGNMXtqcV$* z!h~V+rUWy7hNhBjL#jr-+KML4JwP;_%`*X_cciibU*lb!eoRSnycwovjG3Rryfd#H zPoVG5crcg}UFR*TsO7AThknG~+XlPQKZl_+osY^TNoH^Lf3}1}dUN@fqfjU9RbVP!@lq z3aLh?EJcRvkGQ&O>XtTfp}tJ!+Ovg+Y4;aKC;Ewi1LuAKAg&+!C#NPX-u(T``VZn! zq^*L=!CFQDW8?FnQ`{q7cIeGiM&=ZHVKW8ReMlzZ1ELSRBTqiC8BkWbMp%rXWwzxU)iiRZmYzxZXDK&9fPv|IC)qxSpm>8J2L7XFFxw zE}3S5VD(ibGKysP)8iNfxTZ@U029-i7vQO$A};jCTX5CN=NRlH^-}O)OLFFj`FuB_hZ<@PLbM2DS%Ab zM64DNrYaJu3XLOTO;h%EXStVd`K6yUJeJ!ZnHeR&eQS%z5b`BfH+1;Usje zo0zNpw2siGFiz)0W6tkta6mjuact^;iRZqIamy>&NkvBg9uzUzpwD}|tX!^EYf#vN zR&$H%df&j)dA-THqEY%}4yiMVnj?HsUDeX*~3?`B5Xis~_r zmzNk{M0Eu8(pMA#!FP;DZ8>H@PQG-Z`1>e!G8}W2x>cD6FHj{r`<|X>d=Iii|JF_Q zK;EP*rKjvCZ{01{t00}xtBDqO4j@2wr1Ep2u2yY)$(J|(zd;(9pX{mom*QcPO`1+(| zsi1+PT)JA`_#*mxrcdQt?g0)6gvgdwb=A9YJEac_K5s35Y+NUBdM#D0UP8`j`w|Bi z;}`e`>9J@ARrvbQSmg*G?PVDtmE?_vCLh=x@I0N30A0(lCqQzKI4h8i0>Lb(q-kc* zs|OyfM4MEr75+ZhQo|?aJ&6OhuNR^0K9S9c`(q4hcqp=qj$B{;pM3M<#`hu&6g{!) zvT%#oC8jaCvvSUe*Dcwy9TMvt~*8(hN3g&TwHMInPBn=LBq_KP;sCMFeeAXmP< z;xr2R)t30xmlu!g@T+{YGf@lT4C(^P>9tVU^9L#yPksk2}v9B*hdnnxoQi+Rc@mkcpGw%F}j1fAVQTyrT3w1MfxM7YoI?w@QOeTu3DqeEso_mOVz? zktqu#REJc3j1&@BNMKCuz<5li$#~X&mPo74G^{0ZT7X@3?@)N7~X92ZRLNu|~W z?W*5fIr??Dd<8|Y7ZX9F_x9J>_4PBOt%eiF+Tq&rb(4>M)MRn``==Sk(+{r$>5wqJ z0e+RWgVA)u)8ZRGRu~Jfp4ezf-90a}ic65LrnwC4j#bA4;0zydAZDq%0mkIiWWo%+&6x|{0SC=~stmmvb?v{o00quoRc>&)3xC!PWZk~K zEj0vN?MrfAP6@U(Jy)R;w7cJB-{5-e(P!+a?RY%sJV;YG(RBRkN=5DFv8UGJh@lH$ z`qDwz>zsLt2wAX%+}AMUw{+>X#8Oo}w-{kC8@42{ad$Uy5f_M3RCkzKC3feku1ET7g+jw-r`HYg?IcsK*VTaOxwU@%K>Su zNe}-|Eduu6Paf#Pxv^iIGXZ2>)-*Hd-^_}AhTN)J-zR?A^0kndCvNE2=LNFPK1`{( z^~!J#(pY_=d$OE8Hz;0F6zJ1cnvQ0cYeD|CwjO+klO1d9dI~&3Kl=OQk1a?`26ud# zCkzU3ce#|aW>n&#ot>9{!NIvmiFw$FY~`Ml$}NI8+Ax39czUWi?Mfr2Zw5GQ#6LCvc__&K+1>V-|9U)_p;{JEuR_2>b>k0q>bKECd}|L0@7Em#fYt^f5|EnX%j zD1lT3*o*8}V(x)-^Ph1+?lUK;lQczSb>Mh@QesVX5-k-BQ8yb;(?IFuY;BRYa$d;j zgLTjQbJOE%589bH#5m09ixeJTP1W57qs$J8kiXXd?xl5c0@lf8%SVO=YWef*?(DIGa!fP$xi%`_Lr6{fq} zmK#yMJc}&w>zE9OuA;bFt>mXNy(Vp8#g~@OQnM1ES0ZH5i zjto#%v56T093axUcKKX@g@NDGs@J~_X8ADdwjt{6eHb(u^j^f|k0e2WceFc(F(*Az z06^e_wtc~3Pb%z@`@(mXjn376ynl-GFTUmt#`aS^Whr?zbf}xt6)>=^YJ!{W5y5CR z+zk!AW1fMs%BY(qqPB)u5M#{3GnNdJUY|O}7&QE606pooOx`!ej7y4*tziQ(`bp2f zYZQN2Y=43)C#og@Ro~X=#W8z=v0jfZzPX0tiGb8^7)p%9CO&p`a2bf&^)TE+NH88v zeYlsCqy=JCr%}^}0&%|OebN!k%!Sj2(t$hKprvGY$qfWK)Y|O&7cj#~&rR(X5XX!- zl73mo5Iz!2L-|3mo`85SP-Hn4F^GX?y2^SaD$qY=u47|>q%iB8x zBSAQI??vE)pg=uNBBz4e{7mCJEy0u&*t7^wY2Rk#!`yn$?|KAt< z_i>*3V1@E0E&~t4X+HwhwR3^7`X#~tQ>skjwUA&&H!xvbhIh~RyYrdL8W^B-BaL%t zcEqm-sl{J#W9pYe7o059gvw;p7Pvk?Dhj+FmxwkaX*`UIQ>?oCHt#AQ?BwTs_2_qq!zsIO@$CDc^BXHCT4h*x0p zN*kucdToksU1w;by8er~>}pS;B>p_+c|`qVL^N?6)6`_$T4DnU&jySFZTR2T<=-}b z2!np|3vOzs?toTmLj<&po3P8*%HeP`Ug;kc9lrxmM05qhP|yn;W;zxCd}XVqxbmjz zD-0()RA-XDb#8FmEDUKaam+KhB}=s9uu2H=_$l9e_2#f&;Cu6F$H!gT-jQCsUFLe; zkQ`+{VeDusm>smAx}Rc#x*M`a05xB|QXlM@Xnhxo)z!MJdno{nRZce@u|1hjs5DQ z#`@cz#7av#0WiWN!0p{s@6bM1@ZS7FmZdlC3Rq+D)1OFw+OR@0*XB3FmgUM^%38hL-aujede94Wawqcr2>uZTq|@oa?~Ek#-eSa zwcMP)V=ww+spYTlCv^dTvzY#R298yE#QcKmwghS%UvpA4`-l8`pWD`ntll{E(r+d2 zf5EME6md*k6l>R`IfNQjYM96FF3?}@a$A^zg)2JGTOMlC-*xQB?rWr z+TSh)BcWx*43=(JUw7d!Pg z5213E{;Xo|Y%uiqsAMMssg$u4j@p!_ZtXaiMnel{qQi#)bS(RotZbD8TxF!;$54=O zURdof*D7NT0g-rhFw2b0rDyJ?mNhmusY`EChCY4$Rwk|*9qIn5-;iSp;7{6M7hGTL z2oC5@rR{TZMZT8U<9Iln{=+DgOL=|MJ{X1l16O%N#k-Vt8K zWBF^wH(sqbztG-|STL(jJm)^CR!oju%}NHF|Dztk&8WMGS2yn+Y)!okr-a_=mNqp8 zfB&U8Wg698XFGH{%_Y5m@{#k{PGagy_ANLDjFNtGO*uzcVZ2ty*Z?kN*hbx7=CfWM z`F-pPzw!SY;2n5aN!yj6oH}pztKV-I4u;<8(kiw2{@M$nCJ)m1P+X~#x(>+G)PTo& z94`jD4733WWDgaZ_!u|;yi~7tL&3?Sd{gQX5#?NSRpd>ofM@TzlwdIHiTu5rz48`r zMz@syHoxma^=au>gaQGaRY8q#G~HP;Gah+83-leWZVaz{=XgsVhkPjDkqq=K{NtCUc`wbt4bdyCuYS4(B-7ti`XV zQU94QuXY2N!2kW!NHzVyqlK(?0aXJPdl6+8EOo^39?m65Gw&=mnZsgCsz(=oGoGGq z1H=>;*s{mQ)255sA8_85Mzuc`RR1H)j)H8}IcX^>FYK^K5Ff;bPDhS(=)k8tJCElZ z$(Q$A*smp$e_L~ecA8&jaNpCvDUmqE-)#tf)xSj#L_fXel#DkYo6LuCIBE1yzP}p1 z_l46=TB?=v{S~pN`s#Rc&{%yOyi9|K4GcB}q`z3`fkio=st%8?Oze~|76ZafZ^Hfq z)A}IBUO_prqwr<)G&yi)9_fn+P=LtLs^0$&FIO?N>D+Fi#u7{b+F&yiKxYO;U&nUd zUIq%@#iZy~leWRto~{}ji(6DzYip2Sd5GJ=3>~;%PNRu@x#M@Qf7$`lade-(`E_#% zZsy~5R#Ms{TS$_ny;}sUqn^p+zg`XUJ8w8N6q~}*r_BUX=Y}rE7&Mo%sPV$&jEgb{WLj4bT9DkqPzodmV zU;w0sq%8v+2kk0RIAd1E-W%ZRiu}=Fi(gA*2@q$|Kh8=d`nd7{xdwp1mpg)hlCRQ; zG0sj6TRu-UmX1Q#D8YZ>yxL`YbW=2=hahM}ls(w-AYc<95fL(wobH0WQlC)WX?W}9 zA?uvHj^<~f&KKb5uPvnDjNj57^BMU=dnrqWA!g8*6raWk^A5(!05^W9`n_svBmyo_ zG*pkfN#-d9CN5-O16m-EosNyY_K)7P9!%eF`xp}agbwt`vHM(7R?iKM4hOivm^d#o z5^AvJWKTNC7Oj6@jgD->oTGz`fk4UzG|k&j(QfH&@o{3Fi=eUU*23vX7eHM(9f^(z z45fv>jF@@Yp$1H5k23mEmrNAc!iiShJxqri7mn_(is@_hL>#+Mp+#JL35v5mC` zFf@Ser%Fx${iK#AW0xZGUSY2_hgaozBkWcFSYrw>cn^QQf`* zA2ve%n)g>F6TEt~i5I_@&d|-EnvJ}G^--*mZMNDIq<(v|5zL)TkF&$1b6{CB#j5r7 z1FwkA#nIN6HDTxmHE@(y^#9Hj{;zjg|L0%sX*wy~2N>>TEIJSPU^#dS%m3{eW6)P< zlddeczMd0arE>|h{|F39JK*v-O$(@ImO7G`~BIOkKENRen8MlLUPiBwjnl%p*z z&?h5|GTqbKkwp?5KDdW^Mye=;FC>s3X=}Y1`LrF$(~*IBxpIk*PG`?k_AU8E&jVST z4_dWT_6&I+|2hiTBuu30*Icq)D5CMYRgT$X~1_Wg5ms(plaJRT8rZzQ9CODSD zlt;N-E|4KM?4~6r%uapjGBDYxKRfPfr^|CGyMeDyDKzs4{S?&~>PMy<=Mz}wj6p!L zep3MDr8eaM~6J)k`kur z^83G)l;8h{xXp+Cp(k`v03?-?Ys4t$qLP|$1&_~g??x4h>#o9Gnb8gl0LfBYK2O8~ z0*z^MphwgetQweFdX^XT{OIWdsHBQpoQVsst6$um1=ZvlbVI)b_UW9-)2&@nS0Cz| zg|dzDCtOid52J=99dAxa+<UOla{^PoOMFr@lIg#m>Q`BFZaRlWW)A4d>h?GC?ewqAp_XQkbQGlNAeSfFkd>wx#^2 zlU_^DV6Lynvr0LG9Y2Y%A7HPs?{>{d@@Bz>26HY-7^#MIi3}CxN z?YNc8EU}~kB&x;=+y|n9^Ig=lHkz=CE+m6^qvdfV#4h=gf@wTGH^&NEmc$i-RGJ_r zabIJwwYS^!n*i4YRgRA^cm`l#X}prv0WPiIt1cr~(NDzc!52q}^!fKa0qV+?t*sZq zF=9ZCxg^*MO>fwi4RCA1CJ?)sS+Cf$B@X%9BmW^zH)ysFQ5=JEAG2-Wu*7zD9; zog*hE&!Kj4Uc+Z48Lb+x`~Zk;4S8tEh}(LF(G|_aG^u}D_cgi1Z~sRUVf`Hc?f6LE z)0}iA5ECJ)VVT!&W|%WwGe4^m+*+Uig|i!7q%k6Yt-IZ}6EdZS(l_pxmZU)Hzwm?aZah3Cj0Bv4_CQ z@cnN&_2umOVyh(vE#jN)ixwFLcZF?ghvAUkO^bjo=#%h|q9hz92O|gCkCUf>0$SYy zB)VsJkpQ$ht=yj-$Sp^nDZDnhtO3f9-Xhu+ys1NM&Ki03vCI`wDmhdk=*d4`(!-lb zAbV!bFv@4d*^}Z!eHQTRVO0VT84Ny6qSQs{&2Dxk@W=yC1@i&};$rnI9u81;BK`Z| z!NbY4bM#6Rs@`IZZz#)@n6$lv@IFvk*nOmy$E-H5(CkT_v7cK!S?gR=BJW@~gjoGe zvdH>aFX|HxGdOji+ebUEMm$qAH~=+s0Hf;KwmYVUnff(RMHs5t@RBT?I=T?*GO)JJ zqM7bO;2JrRJQ~u+^*b|s`8h`QTkyf${cEqgtN~zOq^QT!U$`BP5D{d&y4CWfT|3|+ z--WN$_PEh*wZ<<0F447kOVSXJDvK z{_yLQn$s#n*OyNla^Od>C}?))u(jBFm>n>`Ec%-MUyY~VK3ZJ>a;vE6`y5Rl@W*ph z4_j~r^|uK%kycE6G&>bsK#lB8OjkB=0|9?yT1l%;nCx(K8F*DmY+P!%wwxDsue;Se zyyd)3sN@mArtl%VerZ?kd0Da{KUZ*dvhJ-nX3ZtBg!DN$ku%hA&1BV9H&xpB$~TLW z=FrC+q;#x7zu_E=Z?A{fWyPeFMeeZ~PE#^284xQuJToiaqXqjO9XcA4!Z-J3J`;CC zPHmFbjCuj?WcU0snEzSHmd)##+Qi2*wcfTLwW48N6Bq50u=RVFLTlu{$WE`S{k>_} zy;Dn<&UpBB$sxCmM_CC#p7xHAE6@xYz<^mHd34b-EUCMBt5-qSQCQ*`>bLXJXPoXb z0#ip6OUDq^6Hd+?a-;V>R?eF+szJAJTn^c%On{=h19)WzcvWTcVsHzr%oUI5t!m3e zB-6J}Nx+QxM7YXd=rsc%c(LpqJ6%Kbg6V@I_Oyv55mQ`E@7n3GCjQg;KvV44ZR6;< z_!P$9Lqy0uA1jJi2V0jHfExO`5m4=>&(geHVE01DyZbL_U-xV5GbZ!cF<4;FHRKKu zNjalADZSm24ebZtm{b?mQ^IhmMe&9m&%X~qJTI*Gn1W`)NpZtl&XnE4w_Op5j@0yr z@!sRO@fQBfHY1;T5!H4~CXXBcy$m6e+wxD4ajxvv&qd16mt`r_=Gjyk!+qRNX5f?T zjHF4HRrWlVmawQygRBQfWH>qEg@ayLG2>>LWa- zPl$rf+<>NcMe8}YVq!P#is&$@{_O+7&mmZGMnyrTD;b~Z8j(Spcd^hbDP>Oj5ReBY zzvr{N;SmN|hz0<`s@zP`t4+B_)+bco!m}uViY&`oZ;QK*{PJtIzrU~DnD*&1z=a;a zNRP?@57tTpq?jB1!@-N}Z}2ck*CKZ9vj_9Kc-juid7YEhzI`*q&1=iOGQrS{$q{XJ zzDQ*bO6P{u?AQ{yslTpw!K8XQFOTUI%}e>}Iso6Ke*Q7|<~?~{T(C#sAyoZ@TY+e@ zl#`!8xA%rspE`+*avl2e?tH%wgZY_V@GrQ&{(z_Nmh#dZVtDlQ^a9HVr23{VtCP3q zL1!bF>O5Lk8?>GGrV@SLY)8qn*>9d0VElX7E-qxklaAlH;OPn`uS1^$*a>i%2oT3mM<#err|ope}Gw zJ`8cqbq{mksCQZL5U=ea5EQ+EM~x~%fGM|cy7F`VLb|$roTP69K%r}eoloF&cPkT1 zBWJ|j3S_2%80xYfIGQmgW&KXbquIYvktKz&=P}ZNZ!BO?{ESa-k1I8PCfVJf(>{21 ztbSu}KU+h>cwso9KV||IDf< zEXMvPKeH8hq{ji6;Y$x9z_OGmfiHw_@yqhvM04)!FY^iTx+RT3b4Ng|o00$(Zesc= zT;pitY_9{=#19w%AXRx2SY9m!_+nOp=;{8fXe;`x?^(%n+;IlwDi4|;Y3Y~%Hy`)a zwUu^GCeS?dB<9}P+ykJS**7hTNukTeE#Y)ebbC*y=(4XQvz>YYy|sPl5TaSJe0s8w zK)r>cq`8H%%?T;DVbF1ZB#WX!16(Ff4Asfb4(Moe;w8BwfVjnz%8$OiQ!S4or^`5s zmQ%QLh~|>TujptBFB_oryxsV)d1ySr)ysj-oIgJ-BbLMtCx8;81N#!4T+H_073}v& ztV5snG3htXr74iEP4~K|)dFo~wI-zF> zG4ICEeS=D3CT5E?zg{WPhz7T3XfCf9W=yjq26p$VCF7q91LbL+# zuvcUTEx@MV#3k2|xmo5Mf`c(6 zin-<($XOSv&~Go1NL-ZH`_UU9!%Kpma!o0Jj}x6?RI{ci$wMt}1})B@|p>1@OyL22WWp%|N{mwq@s z8cxK>B-Fs_qLCf0g{;5MVGl2#MU*HXsEwHW=$EB$@uOZNLTfexKXBw!6||SVj}%vP zn(8K|48PQ(wxfJS zyhQ@}Tt>eOMP@i`kcCZG6vcqVCBiCz^-YtlEo}%`k{bYa9{vB=IcW;e44bg;fxdG) zFCgN1&rc^qHgBujQtLIh1s(zN9<@yr+o9ILI$ST)% zxMKN*y=CCqY>9f(__}gMhx=$HY@YoLjBL<oH(L=XUAJw zQ#`5%q_#)dd}jg@GTeD=T}JrpkEUivi>#C@!L2}#d?i-HcXELhR{!KJSTcw_MIvM# zU+UW8R!W*dQ`Vg((bz>7Qa4-4Emj*KvI^%$y7U90yX$TRc7p4PsP^x<58e9-zT3R7o(x;`Ih#eMm{ zGq7z2GI}n)uOx za1VXz-EQrBAl|+6v)DTN_;B`Tti&DWu4#rI=lrrMzD&v>vp2%j#hw#q?jk4+WKNpM zA0u?u4uArrcZc2vP)+?vJ*XfjrignGbFX7mrwt*hN z&=9tvUghTHwG%giKQ)k=@+no}uh$om6!^@bLi40;q(1=qsFYWIX^&6dl=NsIjfTyc zbCaL-$I*MI`ef(20R%b~1BkslMEGD^i4JnI&35I*C+JhnHXU zNN)qsV}d;N0{kU%kA?_H&wlXvH>0wsh&>8{+|UK5S?vMRuX_)VzP2_>#wWZ?OL+;3D^#WYK*u->rw5h07*yGV= zQz&J#BX?g)^hL4;KV9UHH@b-0Wf_-gE2Phqr8z`E4BCVYUJ3@k9d;_<=$i2uh? zeWR-j5NZLkC`Y-xj$_i`xltqO%q3(>ebkkWx!$e^9MH|=n0XcehOSgI$|}f_rD;*G zJ0y4#0f(m_^BeEhUSc+Z=c1z7&)=d=iiW7jIC5H7dOu^4w&|&P0JO@@#KIcynS05k zSUg$rR-JL!i&6culhg_fi;yl(*`AU-AH||Y=LdEJY`}5fWs(XO?2Fq3j+44W9#k#1SHwAEXB6gtlfV6LR_|RF^ zhBMlm&cKY7SXF>@o!{cqp1$*9{J_>Ik4#`~u1S&R=rzs816uciw~)gZI>WVoPh_Oh zv!8kOO`o2-JbyT8I6PY80at;FFWaw;&=^Fu3aXf`0mA#l2^(QV>FK zH%iVW`WW!0#JvPu0jPJhMGuk-7}Pmw`cL3K{_p2sraRt0b4nFFcEQRQfFe*I*2J5nWzX_v+9}CaTAzi<8lvqGMNv3V|Edk1N1#VO>UXSZhr-i(t)K87 zRe!5tO(a-2THXLCQjOgqD{q12+}UCAzMsCJgh8{PiDR&aY3hZpM+JY_0F;t{iZ{Ra*FXqXFNR`{WOC0 zGbnR9rEY+6wY^|_ye%KOO6?+ii?%$ z?pXJbUgxBH!{T$4XpGkS@0Q5N3+*l9AIoAjZ^*{eFB=L-j}zLCz!Rzso#-{kL~+Fg zBCPOQoN1*?ky}eg4A0;n$UiC05i%NBhn4=e-NYgUufBVxJ8|r-AEj^BTN7D*6b~Qo zqQcm}>SaQ?-9F@g{^u{4GPlf0B}ec`qgaz#MWFkTx6I*%1GdQvBoJpPd8vz7)c>`P zADMG~snh^;cFoc2xu;YB_a8fg%}e>3x{BiHwp?SM(wy?d9waX`8eUwK`L!^es$kFl zSf8BR@zH2ZTI2r#o=!cK?DNnvU3= ziuN1wl1{*N0Ww!9J3nmG`Ic*&>Z|YL=Mwf3s)|*H0A}YJ3Q+cPdRxnVvkgw6Bm|_` z6fe)IWP@IcvF;3=K@XlH;hb(YtCLb!Szfd3(i zAd6r5OKBhjKdUa3EAmEt{TUszYQgSbhOONlN=o-TG>LL$$S&7VYx0z5q{P)56wDn@ zSlTw!DlWgq__=+-L=SYF&4k7=~@KkHbp=ls3WG7{BXyK%y&=)au$csE`W9$FxAtqQhx#JK&^(AsxRjPoy@moQXKNv| zwJ<#%Lbt}Lf_lmKcOrl|@3~a`h$Ep8@XWd6=^DkoRmO=wtAklscZHZFW*F0;A+id; zPiH$KEGkQgOlq3s?mBbD_5)>$zy006FqBxAA*<6s_8}%VZg{DWbg26t*bc_=-&D#v z3tm_x9dH0~t9#D_0oN(|kAomp@nIX0h&pp~e~&Rn<9IF z50>2b7U@;l`dEhXQAPyis{I~04Dscp7q)bANy@RY+d)o^@(q~J4GY8=RV|$-K(paB zq~fq;QKAod2&og0>B9s(#qbrg{CWlEuf+yhjqj(kmoWjj%d^+mWTScDa4uSYtm;ah zHgqllIPPdU;3DRgrfo~4YsX4$?~6Y#6Z^7?&VmS?1PDd!_!uc*n_9((UK3M4PB zHTFh1>^HiLJO1t5#TsX^?R7$(%vwJ7c@*te#^O<5bx(hmd;kTXWcT6foi1aMX@{3I ztY=}13G_?7vQ%Ka^)F=XCFRlSk|MPWa5Q^9o<=<8cb^PajscLi_I)Klo!SY7IoUo$ zVxF{lAnhgoUVSc@p0H?->Pw9g`s~8_b5t{K={*SyuU|8F<>Vd7xlSkCIg}KP$>{F! zGz@nQ3GkU+DdB6zn{1>?3D~d8Yz>?lP1_Ityw*Dm>N3jM@RaMX!)SDfm<~8N4UmORlH}an1Mj~RvUpZEtRsX3!`J} zJivwzC<%Yxzz=zVSA3>ou`Av{h8|(DZM2y$fwk+LX{CLa1|S<|8Iz@6uI!X!eswb| zjqFy|$`^ya1W7YazlP-uple}mjuF4Ek#MxTVC6BUu&>`>*&FWCphvjGcK%ExFTnur z%g-vo3hVyeZ`?_EL>jdx1Q_gDRh7Fvs-TWLs}8?NL-qH#E8j%|ES`o4-IYIybjYUN z1ZC>@51c<(BUC(RKQ>Ty3%bjF8r7@rHE(066Rh+Tk2|~<0EIFSU|_tD_^79_SZ>%v z!>y=w{cpYl7`t8rFhlel@F}Qw1u9HF+Ckoxhkz79cNbU69=|BP zsYAA~2;}-ck+dP6Q82@?;EE9xR7Va}!T%%^SRGHBjd;l;i7&!Zw>r0OdRAajO<=bE zb*RR*5R*{7^sR68W$9Vp;v<2}{8n&%j0b;e3!^5v6_Vu%=>a;ZX9AbENP)xXAnv_0MM_Cd$p8;An&RR*TO~LkAQO#F15V0Js>O?xa1G?TrL55<~AK4K5ip8SNZCks4{!L*50QS7*`SuvzP}! z&a{a@_CdT_#(KA7##3{|GH#WpNM6&vZfV-@lC$i-jFmrsL7Ay>-tev2joSydn!xfq zein#cL{6QJPKt_-qRX;SZri|{mi}4#$+l18-o+=te}1&su52}&MvfZao!I*6%JR|g zA5OjmPiK-L!QIS1qaeP$Td6@}6@tzzY{e;WJ12k-h4`w}Ryh-|Kwyb>>lmebH zN?!%8fjC&Y0WoiJ8pR=lwx2vhfz!PMHd45ytSjJXtD?rGzyUm=IisYkoL{~bbcVhaPqu{=&>m1c1!>L;o`aco1p>muj(Wr%;()Z7R92Wk zy9J&L=fsGWge>+OzPNU;Fjje;P&3m*^;$Bl2!ZT`WpbL@x4xZ!Z>WC!R$Lh=V$6YL zQAq$)z~}EyPdRMN1kT-gs1YzTIaKFha*Q5QBDpF?ar9u*UycBy7T{YTG&I2 zsmUfTDRLfD-C)yiym#=n;>N&_L6rVOe!F_8r`oA5W_^C@3$yr#m%rwbTMl9#-~S10 z4*UFY&Y}-CF;fEH(U^L_3Urb|zChde6W_dmEAUEp)Fj*dgLaH{jd2mKoOlJOK4T77 z4=tpAad9<$Qa~eAPw3?me~jUEdUh=~91V8jC!ow{Ak^g5fyndB(OZjC-)><3`PI@r zZZfY3J;uEy3a>(t4+(QZr7iLX-Z%w28DbQ`RT*5 zXFHTG`Uf#K^x8Cf;W6`wVkGU~}3LcI0HJwG|-@Q~`mpU@XAZHs9)sOUR zAKbtb4*Wvnk{kC^6$$Ns#W924_1nMrA%f=GzUCY6o>oEG8dlxR+~Mu`yrL9l;obgK zgRcF_&6eF~ojbP0yH95*gPk0v7Xrj%{WN?#%a!p?VQ^N1x@F0T*W|{;)YS|QgdCo# z7^b&&^xo{1F4$qMf#}isA9cV4b>x5C)9N2Le|QN|{iWlpm2d^ThFuw5VjDy!uS(hy?2@LK%Rtz&z3iN7Mz zN06z(G=mB6LZIaqVHvz;4V}F{0c!ptj2`i*Qm;;R!qqwJ7_0W}CT3maOHAH-Mo*mmUu0TIJ6u4BdGQ5V0y^H8>rI~sc1sD>ZhvQ(6n1S(A$?2 z?AS1Ql5HRyT8fqk9ZqY)N(>-DwyI+x%HCGH)_*kS*y#qtA|b=#VQJRMS#y=yC{nq( zjk&k=3-B!-@I$pPSe{lc$kl_m*nSCdvW<-2+v=%zb}ddmm?NKTCy)i1vyZ0+Yo^7) zDp4QQ@;UvzuBk<9@(?|GNm%lt{d}HEqttAyKE^WrJ79d2JYqD`PSVTL413H~{!<9- zsoTaNKe}jXw>Lj?<~t=Io?@ z+pEd#?fcxxu1;s*i1N##CAQ|Dlhn+L}quP*M#^G)L-{tsc_9oFRCwr$(TT6eJ^Zdw$P1f&i?W@;6c zARuHx7*P-@34yYAVryMNpaKD9r6OTu5LQ4|q9Pz5qyh;Lgvg8n0RtqAkmS30-ly;D z^YnfF?mzq^$AQN^uIqQL^E%J0WngEkvjcBd7{XKo-t^&P&BQe?`uA4VLuvOS^TL93 zt!a=kL%Dzk!<|h@d9dF|lc$;f#Xdo8(|%L-lB%jf;h#|6h>h`SU)GuEtp>JT-zxUi zUmt&DXmqUlj^na4O`=m=!Y^dM>(Ndp#TZ@Y%M~W%Vbu{cBhup70P;FXd8Iz>5XQ;P zD{fX;HrbMS%g&1)xqR25{=6vpIMT|`S|{&RI@%#GXFem_TN!>zH0KxpS%4wQ*E2k{ zHkMOS6GaM0Y62c0?vtDwA0A4_o}(|R=Qg*yGyt`$(^QFg1 z+^RH;;90pVf2uAkGuvzFwUf(PaHE9podM=MvT9co1Q5TAXoX4i3*pZ-sJ1 z;P|)2N-!IQnCv|700MbM7r~;(prQ9-8xO}yWp%X=fUQ_bixV(j(Do{bnf8$=`<-7x z%f7?}O^Q=);SrceB({@tCk-csq7z)HNanGMCBt}QLBH1z>I2C5jr5)Bpvz_IFXuu4 z;9qbp`H-Yao-IcG6Z!M$(I;iMGXbzooBM~9EkPpkq4CzF?av+~=^z9Y5K$nr@)(+} z1xjy!T8F%+I--#B4Aup_0_|n)t5;W^@r4% zE6!Qi*(OSPltBO|i2jDsr|N7+>pR8GC{)U3%eyrbX@cnOQx3htD^=XIBHY%EWpdH4 z8I_vq)BWrHECHUI6%QS2t+gWJ+@~CpVh&O9L+!fsla1_U!a*iQ+UD|Ga^77y4E+86 zh1>wv#EdYyDzAHFAQAOwE|hfyXh!g7H13x{`*jYC>+@Xnj3Krj{?g+}N6Dor6ZY;E zqyEhf^Orc##`xYDosyuN43}+%N0#3lRZk=Xb1RM%!0+Eso{0~U{g6`0QrR4i?RDZV zWOn$^13Nj|+|pwOfW3lSV*C0Ou`AlhKV!rqU@P0^4W=(Xwr&Q@o30It;{hn74WZR3 zjZQ&Z+?rxZpSvccv6DfOiYs`3hsN-#LHsnYz|3hhHFM2#{XfOL@YJt!bTj>!^6j8s zNaosg)Fpg<*|~kU5u1Z40deb zFbUB)4Q-lk1;yjcv1E9ch3Lk2?hQBwlzPP|LH*dariW*=bMKhTJf+k$mpYwj>H$%BAZ2+R~wR%pRlD|C{05QdwV)}0u znyOS)9m6v)dRF}Mee0mPdekd(Fgp*m%lqn-0{h+ftl(wh=3?dfOL4GOWgo>Zw2CdM zUkRVOwz|CF0{A;+=SQ(~?F9R`4piKPq1Ty}LLC4%q*MeArB@2lGts>cJ$X<}GCHWt z^mH-OBhwH3y`%~mD4a2bv8N@&zAue@jnVuj%I@gHP6x&kXN}pGxrYsmlnpiHOm7mK zf_2Am_qV$`znJ^h73@vkWejy?iGaQT+Bg7Soyokzw$o4PE$w<1r}rMZUGlIH$c^=b zgt4{D_H{#N-0-9fv*~!%+@zXuE&rCAbDnQqdkbsVbsj^fAr{#F z`|tt_jpQACd^M}~8V%S|Y&3VWq-tvSN$LIa>I(kv1$Y~)!II?TaCkbfS%i)Nbrz2F z7OHCB|NII_1oFl-tA8u^`qmD;%JHaclwje8r1Awx@-s?@J$i&YvIrKM2|`}3xY0Zj~pAj#^)i{7hdHugM8GZV!qsYj9p z2rZ%*W(D%PTK_=)YuvV}oWZf?5!bkFpbWwg2(uVC;K6EIgA)_J_}kNd^uyAtn59=( zJIFGbpQ4)BD^A%4LUD{t_D|bNj*w8!r%AE(cg9;5E3|SuBTVJjd=#PV85g7W;ZmAc zb6dar2Ir@98+!JM4{jyH^&v>%p}3blOdpR%Q26<&pKH?ziKByA0kYyOlxctR+!x#r z`TR#aS?3&5`F~8fF3tf%;5YV2nasUPIX*hGd!Rozc=Y*1NLd+=v83p!tgbO^67Sf^ zjM@+pCqfon={5vMsPcVHyf0l!1Q@N^I1Wnh5eXb-WC8JnCg9p%qJUci+H;fa= z51|cdhwzaRaYOE}i^;6G-vBKnsLLAZ$ZA~DldgPripe2{)vJ6U?_l2JC(r~Tjb9E1 z`3#$WkQXOcCTqlZNPj)xesi+3rK(^sV|pWM8QR3^utAo{^i+I!OvJL~&!kDp(`jm>6`dq-&*fAmKw|kiEkohgZ5kL%Ss} z+hp04bftZovfR2AAntRQ6Xrfd15dkp_>=X_!^Ins0J77`m{AZmA0Ro@ukJ-&LPIe$ zk`OK%g7>8DWPR6BL4I(}_zJ#C;M@kFt9G-H=y6W87Qc7564 z8G1Tjj1&o{@quP?)57`1`Y0_n4Y_BYU483e+GCKQ4X)~6YN)9^kdgQr>aC3RBB{;Z z;x2~Y)xQA1;wwKFq$$+tYhLlqM^3P28~;Wbxb#Y~beBvbtmKkQIZBhM6SkD1$LO;GmRA0|Z;LGLGkp6{dY`H0m`i`7rzQ^!h-p7V%e>RQ7c(v2YiA z;6mfRMNBzFY`qdm1lg^OO#=ICjbMsm!6Rj1%xSuo3qnd`lwx}`^wb&a@_Dl5F5I7t-`{y24;mMi zf8`GytU{lpA^t$WZtr#kf}76v+_=l3?g8qtg(^=j8~+f<2Hi~Gjv!b!GQ4{!fvXmn zGf*hOLB8IwsW~%m4BicMyyi2XAx)l@QaZvrrd+QWBP9*ZXw_icsx=$w;?^tar?*0a%I)%OpID_#g zTXK}WI@VRsyDfFl;qUhn!G2`QNqhkD z;lbc>ME+H3VWu+LxrWqY>tUeNQ(hkcv)*SS&1wTCFW>Y>)XBz|D}p@w-UQlI znGeQa-QJ+S?^zxDHM#tOt;LdB7T**>n_8x+P8cBu8^Vux@sXTzaDfa;{LHj>i2=R4 zy)`LFUvW8buoUuG1&v+%_NJfy_GJ|2)rCPF_ty73)yqw;22^A{3F`v?eJAUTt*t?< z6topVJ@SJ@+%#L!Cb(8tp;TVFl3AZU{;+s#cfoWE9aR!yhuhlDv)u@ewgy-4%ZR&Z zSsIUBUog0J?`8QMLJCL$^?5k4B2>Qy)F+r3!VrN2Qe}v5OEoek=I6lK*;f8dQ|Hz> za}N)z5Al}4BN|1$Ybe`VcHaZD1F^@ZzM-^-W{qkhjM>CK^r*7>p!0#LUa#Jh4{yOT z(SL%PNncczAp2=bKP~m0b^R-%>qaFFyi@>NkrS%A2TX`;{?7c&sr@KN${{W{0l;%& zbRe0UjVhdIBhniW^G3;-)-84Jc(%SID;__^|K+w#Q^%IbipgRMrEoU(ad!`CK? zJ#$wFEPeNu70GoY3IT51LityN@z;FbD1Om;R-jb<{1A5&)P#E{iiOkjE+SW2*vHdv zjmp;hFf#;!-z41eBku`6PU*h%0!?vUwE+L-z#*zliRXZPkn;C&EC$eZ|JU_Y+}V=M zTw17DWVS6ZAq~;Yl(gIBE}9Rp?~l5}5I_QSv5VYGi*Q$@3M+GzD(0c$G0s2uT^mx9 zCwRs7h>rUS&_*^PPTmDOlv#f#d@h&F38V;5Xmiyy7_;d9;@q4IDK_R6Dc#q61}0Mz zB!~OQ0;xb1HYF>tsac|S^s-u;1neyQpjqckpY)qpac$)uROgwg?`SY-uGY=69wT#` zLWdb%%QY;uoVH_XUr8cf=8d?wzZXTkP>Vc+Ge2rMsXo>-5^l_$8IpWM)K_K$Chql{ zF+e5zuj_57pWOI}a(=++kR4IQ&yutse^g17K}=406pUd+4-?{_9pM}_F;-Q?tH!hI zWyXsh{TYu06su|OYyQOjUOXP66hkn(Am;D1TOyyjycgHTUk#1v;2fmV&Ef<7R5x{X zA~OLnQl#Uw{$^H{J0`)iS{BS+%6NGc*yy*Zjq919jJn%p$f+!ezTB5N=!A!O$}m`x zvAKiFmJt<1jn^o_*vFMkzRe1)uKU?}7U0p|TrYWtw)i)WY8;l73 zBfQ!kW3aTtoK4YVcyZc}@%vVsG|$~<1`4T zd~e{Y^Xk|iOd_|B_hlfRUmFOw5N z@6`T@9a_w3pXS&AtrEF&)4n(>V-E*HBQs0hA2W7Q1+Yr4d%F3PRlZm-a`Q2fpt#GC z2_8z$Ud8T7u#b-}_AR!upxRKhf|)gEliQu#-$Cp2s|Kx-uo-|P?iNHGBEvFkiX%)^D8C^FBA5|@st-VC zdLH90_g5SWaW-uhoPaZ@$Blp5-R2!!yZ-5jjwI?8pAI|bp;@{b+Ul>I7VsBCv1~?_ zL`NVWQSz@u5HMhWy{wMqhk%r&s>ai6Yca5ncm0b`2dPClD|hPk39$KK&2G2izJ>J+ z?Ka(3FC-oWI(s78fn+o-`U$L&uFqo-}fc?=L>0Q>GTd6vj`gfC9SeJ zRuAOuX~SptVluKj!RjI^lCZKD_{B$gJeS<0LgSRM) zJUu%zr)geMp}y(Rs9*dqYc~8zdYiZzYmV!J+<0w@D(CU^nEZT;!&$dKd8!%S^l*jaKl}nEU|uETHb&( zi1~08*hi@w?1rzgq2O^dG0GWUtK1w-5N=R4v`0=<77A^J(c^NhXZKS z{@gfmHl*-#Ab|XxNq`jqEO`Cb^>*`cKh-yfu&}m`7s&~?Pk|piORm2Qrv%Rg{TtYb{CMfrJ-( zPdbO}0U=;%xq0Yu+rlTto6yD3)>#J_W}UsWcur=>p-gslm=C$vH!ZbzD6IH`mb<^e z(we-dQ0MGL*yubIGF?8@;)>ubnZ&?Svbk$8nGnkvCX)wBwsjWPl`d# z9H>DSVF4g(*O{!MgFz83FZgT@?v-tY;7$4JLLr zmG*F3%Ccp`oWbF7W_7@nu-iBy4WV%i}p# zTvtc!7pE)7#~Q<5aIuqecUv$NDf!aaBhmZ>_uC{V$wp|;1Mnghzp43G~QFLWv11Zo*8X4&$cKZe$8-FW2dhTyjn&Wu_l^L;(y_-z8hi;-KT4pnu&H}-1ULXs+ zeQFw2E~xb?H6Fz@7mmoGqaH+VL!hATbpxgIdelPdLyn{x}#^B55}jJ=g^z>IOy40x5aL}@9=Wy zXHq%Lawe;o;=ZT%>jW0NF7S?HcyF~g!Z4`*c;f6q5=u$9_YH!E9$9s*pA>uD#-iLq zyxKi{ZUl_>9#uW;=_0yDFKy{1J}{U#&e7(U7y{W-ssxCc#TlgsZ2qZmTk&E$a_QubOkxy6Zxb+9^g!oZXk0&=hS69-bo#_I$jBbKDKP{hlMi{bBG1b?%86kV3 z%%I(!%|}qmvDMug&q1x5?4x}W3u>c0+bGu2wFXJmCY9^b)Q=ay0Rs^+4iJYk(KO#j zx8@L*l7X+_)ZwMCE3qg;)vF^IwmDT5`W3rGoBF7n-wX||Cob)nN?shHxJ?36jBU<; zV#W0MZGI}9_T`5SON(scu*YYBG|wk-rkp=*qD}z+l&?Pba&i1;blZnm3Ie^e9oE6I9_&*_L+qE&roeZGFCIBx+`2v1k(N|^ zn0Ho71az6e>_1ac)z}{Ttxe>h!W#^P^l^02Stja5gV#7Tem9tedR(^G^gvL2nQ&HT z&y<^UKK3S9Hg(Spf6F%Q5mFH1F753?{v%;kFqDg8=0*U6Atc}!e{XxeK(YV3M*eVf zCo_MR3yg+VMCzRV=7Z7nZ`~Y0Y*Uz2`4Vbt-5L=(v#pxemG=0$uPndTx*~XvJXt=U zRZZv~;!y(`FZFv~Iy-oc&w0ZNj>-5H=IDA(tXf`zxd9|5$dAclSid!>?}@mps{nj_DoE(`j|ol8A9KdXmbFWM zRQUg>c5&QKIAKh99%K;Qrz#T-0Mwy_?^l{=S0Vn|m_MLW1wl1`Q`&vw*iEZt?R(I; z8?=Z;MP&0y9u=URc0@3W)hV#JUy6jEPrn&1lQ~P=&!-X%0#;p6fr~Q8VlStNKk>bn zC;@oq!PpS;u;3+FB4kM#fO7wh<2a?IP(gWY%Kq<+qrd5QZ(MDGRD% z^$3vLC!KEoby%QYhEOfCjL~NZR;gf0} z6ycj{aqj9%{JAbydZ_L0_C;+7L`$)S=Op3L1`<6Z**X|t%Q%YsY5(w*zvzk-5rF=> zz#aJ%>U^Ij`2KSMxw$)(&(9nugQ}Wqk*sjxhZ8#6-o3y6Q$TQYhhQn68 zfrImlJ-IoLvrR5y?|85mqfW(03mt)+?I!(6RYWRIRvvMhVK8wZoVE1I2f?{@JgujOcwL+ZbvwyJx(EZ5ywKL%oH;v>s{{MC z&nBP@`j@Sums{sytqExVQSGCu=^X|};RD$#LNeSPk25qo>xm`Rq;+Aw*DN0iz_;LE z*fkU(_~|bvDc@+(T){(-V1mmP)@&;eQX0f>VK$D8PBlBhHmRm8SBiNYy3 zpy+C%8B_gXN-=Tf;xSt{a2t}~e%H2HF+X*ilb+Hu=`ot>^GbRa&+=W}a(fSI|4x&h z4lF&l9~-e37d&V#=Fx!`jK$w9ij((0lK_;EXY(ZOkaFc2pmmunI`zIY1Boanxb)-; zHo-7%wV9NGa1*F&LVCYi63%E%fbuuHn)Fj7F1c~IUIa19Azn&5_YQ>h^m+kJ#h9J% zH!$UkM|y4F7nf)=$LW2n4ZRGXfOvL7^6-7;4H|NC2x=hZ^jKSNUC%%(%8`y!59Zn7 zVXQMS9WXAn)51eMEJ)5M3YE>`a#G`MQiEni$nURD{)Gh~@qwD1@yW(0SsoV@zSbWE zxXI`&qFom{2g(fNx3{73wm{);ZjM@Vc#r|)gRJwSHlh@TtdvrjLzK0lAa@a^7HoaH@RJt0_ujIM0djJ zt910S_S}=bg!(tRbxB`~O`Ut8$F9O_SGJ&%&aZsi%4-pSzm?70MU*!Mtd72%6peZs zU#3=a&H&Ewx6kv@4^dRx)^~M5Yd{_faXu5!94$uCRxOep_G@m_UA{`rpLU}mn==C- z)O_EX%46vxyaig%n8K?WTgI$PoFhxpAGM8_8QHD_0bpi`V`2y#d~R8`p@w$EtLaT! zX6qbI5re$PzI$wB&gL9@XW2+NJ0y*3)^I8Zq357{BzTM#&$5pZ(S~(Phg=x$N)McS z7DSkwJo`tyWA4|nqce7OxoiIM)u&R&b#^*deL(uFQUOyD3_X;1R+hkAsPQW{vDnI>Wmi)b)v6*j>xk#FE5XLW3ky1S2Sr_-%Y1y;x25oi zPxMCn3X$2eRBs~C9YZrMrp1`jVqW_jomx5}to8DsVEc=Qm-h5ewz#dX*fl&j{{}U= zGCS>L)M#x$^XUb79GiG{c>^xN0(H0C_3qTl{IN^$=QG*vpW#l}&FcczWcQy>@iD*8 z^)E!REtBx=6!f`C6`p>8y^9RgKsrym_FO?HI5Rhqt5foQ%ka_{h%_er@j_1_J?}Z< zahTR}QQzXPNCz8xCvRIj++B0qVFO!pnz5r@Z#&Xw8FUsfudxig50?3z)=h?{-Z9F+ zrOrL$CnJhV2DbPztl|y>H=bLM<+Hj_)!tBvwe152z}Xs@D->4^9Jc1Jbj+`XzE7$^ zKKHwdk?Kcnkr%E2STPbAD6p~-_ zL6=CY5SViaNcA952UAYX287dewZdI1fR5sxNoVKsJ)4mLG;@FHqw89u>|c>R1#xeY zZ|2%VJbIfwMLzq$CQwAg)%lc~7asQhW?xAjC=h>>R+Y_JWp_keyZa+j zB08HzPfp|S@E)u?ViTxY9b$0`lExZ&<+9?4LK1Ii2o%?X#X+> z#p4~0e@j`52cPO=zgsAGK9hmELNoJx9sw(+n?yR}t=O zrKd4z@W(Gtj#beh^=F?MxHtvp1f}X{PoA8P{TytxA#^Ip+Vy5{rO*OfJv5>)24Cmz z83*e?u$}}_&m_Y5fSJy|*w^O%Mu-mQCwoAi1~!Z?$U&RiE()c|gh^Z#A=^naS>2tdr{FN_1YDyadJhv369?eXK#;U?{2YXhMA<5=KaY3 z@~7TKaxs!cTIspOsbw7V!Z)T7E;z)$r6p>JeFEEE;zYAS>yL3+FMf~$fcnIF>4ECH zMDAvV)y$g_9s?*VKJMA9-FearRKOJ3D1PP-)c=# z412Jz<)Y8EwIha-X&i@W=_4y=vSXa(V(PqfC$(|VH1Gh))qm~_RqwND-@?WKR2CWn z2cxJDLMIbknM=P54ObqGMu7vU!yHu&6N$jp8F)@5$tw1X>!sSIXEoX(Sz{X+yNt0O z?e>!x>4S3DUjjxcjkw5&sq$L@w&E%M_J3wXACpOc*julDI(Z%vyQWnuVdV^LG}iG1 zpG!o58m#Wa2M~KjBKs5o2~Zml7r;I0{;W7A0vvk}Y-@roo7Z!@ePwPAky(${ioVq+ z$bU0&X$97}uiNzr?RF$Hvd02W?|MRDxfDb8dzQW7KX+MVl-)3y;n_Tt*WNNYOEnx4 zjl8GVcMt|^v3vCeW3z_=TVV~FYXFw=DNdqwt6wVmK^KT>^ujUH91QZq`+7avXZ&nEcwOPe-3z+Qb9`>b`t#Z>L=`UQA}Hf41gW))?J zlNE3Cr9B8>7-QjOhq=bLpp8i8SJ(0a*wWxdfQMpWy5;d{vI}+=%s=8R3%%PWh)K2x zZ+L|1zN94m;?BT5F;=)2H?>_|48#vuW{=)n(~I4Sc?ujZ|GI2$0^kjpUDpkLIkiYp zEfK%#`r!VXbTCJ|n618b2`>sJQJ&62M84_~{>iw8;wA0sf~C(<>h<)cbl7h0`iaJi zd(|T;ME{~rG*M)H6fcUIKN~vtcD{h>zMU+X~AVRtm6F)RT{C4p& zT~^`4OSUvsR4h?atMdD1;PJruJ(xe|OyG*o1%p|2^7U3m+~F_Q&hmc{eg)((Kf3-+ zk7Y^ofDIeOUnEEYEE+|%!pVv9U-y38H-8EO+jYKvGdaNBx=Hht`{6=WZX<2bZ1}OS7dd&Gp1=OrFbI-}E zQ9XIW;jerF&QOt~S5#)4qj{UNFViYI4=cB`^~I7x5MWOk5HuCeclUtSR6R7y1R?3Q zVm1i@#joHpKqPo^UG_~?i0qGwJ+#G`gGv!nKQUG5kQa^=oPnKwqd+dH>@$B>1we?zpz4med{ z#Ka+7E0`4+UE}WtL#O0Vx8P>lQO+-EFa-Xg0n5JFIFg;2MoHcwILxj>aCgb{N>@_Y zfwxlxYZ>X7#VPI33+xC542(dC7Hen}v?eQWPAe4+wg0JKHQgJn0dAQ}`bRosIiR{b z5f*z_$9fv<3luB-PwA(wTiWm8;kN!gg|G^|e!dywI@tw-ve*LAlc9^Sr<}E9`cClZ z_q1ztL%wgfHP}gNXl&{b|JvYJCyiI6x2g4a$OSzqTZ?aIuUtjQlt(PbEbe*oJ{pDtmBdp(wAJ%;G;8af|o0$CoIj(+5$!U&fb?*jx3s zyUzn-kBPB@z`<K%Ivk!SbdP_no0*q6Gaf-U#^ zEJp|j?p|;m&*6=i?=6bi3yO6Bg=}$d26??Ay?}MNklw(qQg0nc7@l%GACL2dN=oc~ z=CH1~fez)V@6OBUg0G_4egUifY&kDrYQGDr^@L|{`n%b(bf6du2Y0qCMO^j@s53ym z6izVe#O^whAJ<;@$8(T1Z~ZqnJ@q_xdkG-t5UU1u7zT(j_FboKi^=&eU~{T)>m#&6 z1w#-|OCe%C){k02r|<<8Po7;hKIM=gddJi^KGWnAw~N{uM42Y0^gb(P9Roqy))HTmq-NTYK$5m6x8A=FC2*Faihaw<{R*&mE#R+e_R^TfNw`y@o!y(z zRXMlX(!5-rTEv}!?cuG2w5%Za1trVpP@0v(gm;u0siy0kG^0FBA&Hhm5QC_bvbws! z8a5Z`PS^kVsj_vQdXsuo45YW)DKmP2YPO_yo_$~;3v2J$A4va^I+NQ6W)@zi7Su~W z2b$jGIf4A(>$CtMob*&hSU7pr%*FJc)FZdf-t{>%jE!l1v+{U@tsy1={v>Ww?SVTa z62jW`Q5u>`1KGA>pPZOD)%)m(z-bu0Onc!$ORST&b|g?1Bg^Iopc35Wtg)NN$Z~Vo zTFm+A@L02tf7_J1PP}>Bi3yci8(&clVr1(XX#xuul1JB{VYNsn>?6h#8|WpkQX0U3 zEevldbdb}TJ@A9el}n*kyi48ar&xp`1bMp|;U62!p$ydK_bn<``!&R*<1f(UN$nhW zJ6Z!n=4KEsmNz!A@!ii}Z67K(*2Q{A2|JB3kt=!6{Vb@A@U)7L6}6?19FnwkwnH0?k5oDJVg`zEmD_MKkc?IRB;}b z9Cy?p1j*qVvaL_XT7$7}&WWT=XaGO#CMOODK37v|6BDPtek3!4Z>;1QG-_zM=1GAnN zQVv)FDltP(DpId%P?3(bc)j;AQcy|4iTjsHJK>t8CDYS!@5K_g=(%}*f>SHh4W|Jv zM+*Fl++0djvwbT~8i{CqK0farTXr0|ALQ)+GM@bo4)!e`5Daq~Q_lL&8in`vJooTk9>Qe}MjISusWcid-SVC?E{%VFo5n4j}g*6EP4g7VK<|pff#kZ~Vwg87-Bn7Aw zp5Sig!&B1?bKq!4S`dcWMCJUhbyMFSVaHe3XOxpmNQ~deQ-Y-PyW8k+k_EY!8L}_w z60&6K*#)yDkAs)V_1oA>J$dJ}z(*RhN8{+uP1z-b+PK9U15ZoJtyq5ZzRk$S2Y7Bo zZ?D{ZA(|zBwI}q0i6U<_Jg|ByuG6ve5WrJRm}}Jqn%~&Jl?osKuzEl<8Kmq^USr8? zte&}$QsAG0c55X;fi=3|L!Oog_ox4H>o-Kz=g7p$^uo-Mm6Z7UuWXt=+`rT2(uoWN z-H)EDMII^@*grnZzZQNfEGv3{mGg_PpFPvcyom@~mu^_Krhg7YQomDX4QdEj)w zUE_VCrJGF8mp+x(pLRPwb&O5L4p?{zK*-{OtpL0s&ca;Z$oXMgMDXqqm(&#({;6)$ z>fvAC&^*r!(wm9^5;$3c&QN|&iT^WNQDC$Y4twS>apL>JE9Ee-f76?|`lxFjGj|!T zXX;-*DM`1_2?zok+ijZm-Ll<+D4xP4lp~}M z#WSnT;-$Qh7d^K=xR8_C(%S(cYQj!Yvn%uRxD%a|{=}y9+-aOwecU+FHgReoobx3g z?9gf>R#Y#i0(CuWxNhS+83Ci}t6ycx241K8{5H?utBDpI9XiuHHmM#hS#_BI2Z zXV#Wao(}5mgw-J+1-YRg+Yli>o08_P*Sgu>#}}&BiCqM?%~B4_mmU5fHC;2S>mNL* zzQ6wp?u-Vf%(oS#Qc<3Mr)b{RQetZ89~og%al*Rsuv_@`h4pg|*{^hEg}T>nHxY6- zkF2|JXvbUMoTZ#y@)P}Ob=2g&p$N9wA98t+pdf}w!=v9DXqTU5;OJM_1~{D)9wCCq zE8hsN{BYMzKo_pMJqG!h;|xa0xPd@aXrR)g4wW@^B_=4^MkG4Uj2Bg0Hi@h)uMMB} zYciDAV`6#C-w-}`yO1kRLbW6eyzZ^`N4Ed=?q8AUt<&4&*`&a3^?VR9Nv)JQ+qGSE z$q99FyO{}djkW;9>@32=cFK|0NNi88Y-3Awc_pHGhrmS_Tikm)@2HOrt+yPlMMD+D zH zCMLGy-KP==GaXYIk^}g}tS@)2TkZNNv|HW(t3F=c7{J^mBd&5GP281)*@L%jI9 zqoVHIxicG-4DCsH-!Cv#r;}+6f@~m>Oy6N$%NMl>H+!q45@Bz8D0>9u^m}4Z?L>uy zDKuH%HmCkhv6FqyP%>T3N`lmsND4BH)?LT!`m3V64gnaVWpzt~PAwU!ge5sJs8luO zs`LtjxktOJGujqx83bLTJ4<vqo9I?$d#~1TRy$v(L$*GM zoW}ftT?`PbRjR0Fd&NXQQ5_N|Sk*-l%t6WGdL;lH=Uf$V$M^>VR2!R?Gxp7QjAaI{ z1Z|&i+Bm_}O@i1yahjE_K1UG@@H)*IwM`MxIvN@nV)$ySY(~CIF+2o}VxJl(euM;% z()}wMEq${xs<2-j7jY8r+|lt8Z57XDe3;CB(Y6Vgm6Bz9YJz%3I42B+h)M zf+5kLm)mC%_BNl-4rf@O@PLuQ)oukKrFdzQze(4t65S(;KLvGFcMK-nx%0%WfO6o~ z3fwrLDQtE1;nNdgCh4pdo?aC$Haw5Ziz_hnlo=$C`h3mEXcWjx-7QP2e^KghR7mfz z_d(c8E93M#ca|n+p2!QUYe4JXW_(1f@Udn8G;mNQ<1QQM>Z-;u^>^>w$qJu7boCei z&L3svi1gC(H$CMrwjZthfb7pI#rLOoQaXd((nv?zkF^Xz5x%>@9_`0>(y>{UEUJVX z@P#Tq_JMu7!{CCd$92|%4i9%7sOi}eYng$&vz+I`7v?&J1&?uEbB&{Z!~lf97hXJ5>U4uk_Uy?6}` zlrP=1Br>P@DIjhl=_a`KUfJ7zjEHZg@8d3p!00I7V_1XT1Cxki_I@|CCq2F95`W@O z*>M>S(O^?a>N%4&>ud93m%xI82l?P@lFDC%Tr0mNey_*c#S^Q9os?Pnw#819AjOh* zhDzPR zQ|DGzC!)BQ`CKOAJ^}ud0lfq_Nx5pc&!Ys2YRO!@!fD7(aE+Y=wIeAFS!t|REo@rHg@1I|JB{J`{_Ac(=vT4ly11$- zimvVmQRycFUUkRA2+|$;bACN$VxGAa_77&vFl|D*^7B3(1K}mI8S~80%e!Wa+u~uH z=JPt%^3r7A`^@wm#=Smo)C((9qy6Q7@Nanvt6Hkto}`*8wuI+KB${m3Tn zuku-OC9SuSw{dQ_@Pt>nmr0U^+7hWXA{}hi&Fhw9d5ii1G8@PI)eHCb+^NV zfIYNxtpR5rfIv36?&d(lg`Ii~^9nc)X!k!d@PSzmpPcFSV$&M7u`7LIciX#;J8RG} z7KR33XTJ;dExks{bmnt1Adhpb;Wv6~`@&m$_p@FVj^m}~-^x#&H?ir76I>g+Dl@UW{0xTRqi;A^R6V(c$A<6 zL2$Zuu(`M2jngA+&(##*8bwqb#%p~2$B?AFjQ z4op5aJ1f@zd>!ZC94h}W-DLGkLQG^@k;(ylMM>uZG&c=P3rBL{LN3$7WMASPhO-2B z_AJA?CyaOx9N8Vm{09QcMLcXny{5ZIul9LDOCD`&Y<|d-9M5?DN9m^% zj*1$ilKY2faOR>GuI^~HQJj{0PVRTCfh4o~H%ar?%yEf&>8sqn!<5R9J$sx{9_Niq-I-jpw^8JXC z@uQ%7V!53gzgI&8qKxZF8H$_N)z!tOrx!@Yg!Bh!HcdY-N%efF%KlCDH|J5bG$Y|% z8%%o9T&~+6=)&WOoK0?SQ^Lhyyc@M`0*Nd>daQ&!7LSAc{Kl+vvlu{~lTbCi=N;Kh z>vJ_#S-ZYLv1djPkNH*og$0NU4Q50d%~_wDR!EO#R5diz0D;n>>X5)WNp}=c#QUF1Evkle|49g5%adb0<#a zl7U00EJ@cqXh8>a*yPHUIyVpV$V3Rf+0($J7{SGSAKzi_J(R)EM<`mRuC>wEl7j%=+`?2I3i z7Km4$;#SYw_t-2ls`@MTkk>PqIXoKN*rsw5f2e8zUW`7#w5B7M@A))f4X8XaYNDZv zP`?G&CKR}F_D~F1^Z^@&fw+}^;yQaG-0gWS=qmFekH(a-b?8g{$ZAQn@cjv`FW1FA z`ri-ISE>n}As{|csp)}16G_kYk0UzVo@0CYa=)i<8m1dx`ueXgZji&fYxgx2mhV%< zvH}zJ7*^_cLpAu(Ky)I_W>2*1fR;Hi;TPGjFVIkra#s_-+5!d~GZ4nI?}#1G?uO14 zL{ri^Aaf$!BS(*E7{u>ed>qHVnn>RlxvUzft5UzFe!dR#?O$0T0N>Gf`Pb;=I;4Ua zrTAJyV|KM{c)akH8Y2_!k!lXI>}3 z@y#YvF4n>9YMgytc%9!)#>&%`G6yrWhPE^kEj&5gT)>sxXgNIPF$L$e8MK8}TZoH7 zJXnF_v7HM3@RGdfUN~Eo?Gvp5_z6M5FB8qwKw?7Hy|w=ckN2^O%4Zs114D*E=jSoX zNmJbty0dRzzHr;ZahQOCo%-Ie#VQtj%82qsCldt0ljgKgzndW5j8QN9qAdfEm8rQU)f=;brm2QP zO7NC~m6fT-zlC?JcErA4J__6*^{-PCXrO%LL-Ic-?bO4IYXuEgA)UH&>ISM|st5AQ zmXZ4yJ79R(s4?8F8J!++*;ov>r`sEei-(agpySU!u3b4P^DV2A3{|zKN!u*=#|MkN zta)?ABYb!%D4sOhNX>B-hxNhVxAm5>U0jof2JDX@EzzVc_#5hS=Q5}Z3S!lQambY434Vz1Yf-KW2Wds3%EF?e>5RimG0a*j2?Nm_^GA;yJBn8Tnoh@MvSP`N` zNClE$!lK3yAqIqygb)(G$Cbs*n?CQV{%qc^+g}c$Ejr7q97&jrltGPl;#m4r4mzVQ{6i0xB z2tA{ciTnFxFYLH}VM!FY-mnE~Ew}9Xr=aI#k-PPtjQN?4ETJxoQR529c{gPWAFAUO z;5aK0&kT*&u++{@*X|$GD~d>Vk8Ti99fdi%e*=u#{r7L(-Igrtr>tryzzFip_CnVy zs+bLO()204|F&(cLRsx(=Rhe`|E#MT#xjj8zGYF*nP@JmAlio4XmBlWezQAg_C}}n6p8{ zNbiTj9On12C#YCFC);e>wkbSL@?8%QA9=O!wZf9+-gln7D|-!i(hdoP{*h;ir98Om zMdRKgYZ_OIA+@%EU=Be*j|NskJ4;72%+65C-?YVJv>-(PfTB4aY**=PkJZTn{T^U|-jK_9$_$Ts-SWt691z z44Ro;%x<|JpJ}l18x4QX_M~OdIErkXXtK8zh!oPY&KHw`Z?~8%|MXsFBI`>w?7~Xt z6o+u_8s0dSvwNFJO+L*8$$oU6)4mKG+$RXi0eR1Pj`9+1xA<@_v2J)!nhz93(a4>G zFJEt>H?eyoSID`HS`Si9J**^ed-87>(iT)oh&SVsA~`w*Lraq7^rSJ^q0eiu{n==b3sy%I?1#DDoOnWr$JG1i!pic?!) zF;}RA0&f^slj>A46TrKMyU8WyN4n)tjvadk6Nvqkfyh~=cM6WVqh() zz>Y#-b1HDt|NHwdvy&BVoJ)J>|Ar}NPn__CSNgK*$EnY*&iYf%eOE9;YeuE)s%(l& z@#U}@6-ONHuyZTqeQ@3xJH%B`q`%F4T1C8oOzwhWlpahh=*K~!&Jz3FIzNm)3_Tt$ zh_6VYnD;2LJ+2|97YdkmRm4ZXK!r_bG*6xg1H9jdoOFpUw^a*R z!iyL6pr{RsH#Vc;$$%K}vhx-{{mCw98T!s4`c~GfQO=jZt;#ZY;7)ZfjW`*l*3@x+ zl5ld4<0n-ui>)e`B6T6G-SmELg(N_KxvPg`8_qfoJ`M}^b%|GHU2U#%$IZwX;yHF} zqdw;iUj5P@@Pd;T+AMvy-$s+H@b@}sx8n)!AwWV~m*)A2qKp|YDS;tMZ~GmE)pukr z?O~_pOteM@$FHQ|LUWyn$9B<(PR#;G923Lp<@{O%%nQ0oiJYO_ITykL!3$n2ivvP} zT}4Uczy(Ft{qO{ysj@@T1(!tMqrgG6FQJ7~nC^VolL2S=WDGOLjOvqkdxCBV1zblL z5FwZ-%jDH*txCM%2Zt-`34=fG{eH}JlLew?YSjoJw$%}RVJp;2nc9(X5t{VQyS+&R~CU^>!iG2HHMNH>(ml`XTyR(Moh@>2%hlWAtN| zFx+Qv^#GS2AZWiv!wM3w8?sqo_P4^NU3$kUf3iFz=5yL0$NkKihrHcWz~8cjLifi; zd`~wCzR4u(^ACJgoVT4pIiFK_?b@0X;C-kU0`u+F2LiLQg6j^ZxX%cslFyXs zL}sQdND+t-4J-y?;j#r7eKv}gSi+&J@3BOO>d$VoptgAj)M_ z^Doe=;4tK2OlbdRft!G)QOIp0f1|b>=h&q{2lKAAjW!M!)imfTeZ04fS#$ zW>V@8rNLX=%#&NtLc$bh&vX`Kb)!jz>-I<>Y0WZRa=_}Tc9mCbvj2WZ0(bSdsr zL?Oja1ex7lQ_R?kU?9=EDw2k55k)UxPpL>QM^iDpuQ(vWHeAsCx)H^SDxln<{v;SH z0F8iku?gJc->K{WDwG$7j|XsZ4!RrdgBjw^XIfP$>MuO)`Q}5ZZ`Ob%m%v=h=e!R% zL;w%Iv%l3Bz~ScN!@hf%q9f0w)X@AbI&pT=AKdJ<-lMSi0rBYGr~3$^nc);C`JPtp zmo@?VmfD)=E0}ZN3`Wtn#}rVDskINFyD0I(nn9;RcTv*~Q7g{D^>boxas|7eb8n2h zz!Ek)3sH|Icd;}BLjPSj)e2RbjteXH*|^1|dwu(--+!`d64}%=7&zXX(*MDVQSE#sLZyCSd>y<;@?D|U8SMMukml!NI!>((29T%ed^!q7vaA-{QTmUYckT!QI8F$(^a zaA~@%Q<~)+83JU6-ADdlBLJVh{(Q94oNWBg21_j+>4ENUFuk;iR+<~UjRH)Jn5b^q zJUS`<3^Uh?9b#Q{q>vK0+}_5PzEPU5N8$bv1Pe|{8b6s+&}^U5d=VZI%Xf84oV1xb z&j1smb?8Gu9%mjq!*?;o2I6Z6TflbM>_WEP3H8$ugM}zJT(6``0AdoC_;r(;O9+rl zH@!b3*J_B+%rrdY_Uz^EdC`;evL9{TqWaLWQo`oI!!a+&yUP!F2hk4{3F>R0q^4bh z`QHnT|^*H>I7jg_sEyh{e{jm0{!Oit{m_U~J(<-L=gOVAp)|b?I`( zr0rR(K1cWkl8kfZWcL*n~$M9E^`^D>IlS8Hy*$Z*Ur@SDt zSYhdn$UTdp`rHH8M|GWkOo3DkbqFE(AQ3!lur+2Mb#R0Vm1Yy09wK<9=c1V60f;v< z*~c5Bz0|v6%wV#oV?%sfu=G7JRf!k#T2vv16pz$O*WT2+%F9F!({+Fa{`LJ9*iLc} zDKw3IJxloke4?soop%UOz>w%<%g&IJLaoEaLCj;4s;qWG!V%5z&S&)2taV)|s3~;+=C1p; zHe%xN>UQ`{*j#DP4@8GAuCnHi8h3`H;Iqq7O~>vLI>NFK+lrPJoV@h6-w>uIKEt@+ zUv4u=pIiOY=YOE9`#b&{a_8jw>JR}wJ>gU5zUsRWt77-Q)*HLelre=l>bjf*4NKn5 z-?2=;^5T2R_~ybFlgZnv&QVcyR(qbrbRLd*HhWuK!-I4Uw0l`>fuAtM8RIUTs&KEn z>)ta~$ZW68dS#m{Q2Amcb0ho%bCTY~K_l=2a#rX18cA0i-l4vT_dn6;$tfVrMMwzf z;f`}96!OxYA$y3BT&S#2lbbx=1n*C2DIeH*dtjnwqB;6E@&qhu1!_po%CghBi51S&KtoBP=?UI)zlP&5n_24Vz!nZ~fn}VH=WqOu zdPB)oadgv;2Zq)bKl_(1=igs#9ToQ^JN+ccE0}tCFoi-m@$1kw)->C~F8EY1 zzY1DWmh9&Wa7MJKlQ-4m0QZ~;m^Pe#0${AU$;uPFV^6w8&6fnHAy|CL9EUB%Nccs> z8CQX7Q;QTaKakPae#f=YxH>Mvg=#cC_oUY3HJfIUaEQ3>5{n}bfA;O=k>aWnM% z*~G=+1J+Noo@kvNhC38W_aZ=?%YtD4jH=kst1wbt$5NuTy%KVYc$0q1x~_4%fEs|! zvIJm<6j-FiqynHYUYtsrh2Tcpt~Wwh>TjVq3QF!=7y<;3xcOkGxS9NVtBEkh$uK73 z)dF=9HWS-meq7iuycN};2kI3obB8WWaDo8;F`*B!GkH7yhnWGNa2=wbwq$3I8H;Db zX{hf(*{#KN8!H~G!;*0JF){!MoutnV|9Sl3$?nm}T3RR_T-74%6H-GW7pbA! zB^to;;}hN$P3KWPK*EY&(BkJj4;`;!WPdab|<&ho6OEo-Gfb~S0TDc?tx&+fns%>wn@ z&-lsaoihtGXGXexi0pbP=1^~&-R%obQ{y`o7~5WB025%=U5A!o#D|3jmWWk|!KbSP z)$)%_Do(r~LWT${fo-KF-f;CfRDoRoV+9k<6&>PXJ0AlG&ek9nYj{Vv!s$cpgUyJJ zyhi7u6mm`RFZ~gt_Phh1IkInBg=5r2(c*(A6alR{ zp(Oz*@BKT}L7}mdtP1lrX)9N6&zUwexqtj$Tj&4n9M;h~?U*Hr@J|r^QAHp<&VMBcwcI)(i5y;*YxG6 zl@krM@1Wy{5O;{0$+RSc3m*=Tg3#J2Vys(I#)sxWe6df#*K5ot4V)8uWy*@Sl%N*nHi(Y{nG4?1| z`!JR%&gMJTuOlc7(_QvltPRel#8f5)=BhZ303A>BE;_mmS~ma*3n;U<3CzekZ1Ckk zSb{{K;%uwwklJ|ouErs$t_pplsYNjPO)%s!w&#s`E7r=Y**>rc<8I{7rjGKuvr~3* z;}Z&D{f2idh+NX%>rVL(C9wOH6t4?|)As`{8BRG^y=kMU`q}x+iCD{1z9mKVsC1hDE*3j%+Dd)0*{teDw zSZo9AGBQ5mFi`a?4xfuErHU$vGk=5C65E}@(QTSoAC+$9W))0XM4ObYyas2SWw`R7 znEm)z{;A>?dmW9pG?`RUs*h?jG-|Lxk!%Ncc8~bf$8RM59hr$Z;9OH#DM0C|M>nAd zs?YC#i!m=J4E~{FZ8hcc$WJh9g}=JG_#QwYBvI^SEy{U*2gG$2i6G2cQ^}W$M4BWR zjN)bUH`a@oPa?`4irauejo7~WE+2>Qi;_@*T#PsKvJ5PhR#?+C6-_&d%u1|?oK>XK zB-%+>{mYXP4hD{_(L4Cz@Zfxr?8*zVYiStkc(}WZsla3M*Jt zWVHeQ&{@#95&{&JY8ppvb1Wob+1i&YPglf%jjbDByAIWtJlZHUunWGbEgdb%8t~cm zD^c;Hk-Mw$iJ;!`G}BL(GxW4yEtT5gLMhBxP;f!7zAL3GblkpXUItcy^s1I>UYGFb zFY4EyV_;M-A*KIQ!La2q8@OGYSxOHm^js0m`0-el6;QI;J=FqUTdp;0h_L;6g9(4# z+URv4^>`!J(|YDbIB6&g*z8EXxruhpBebf2;z)GtC%FOKBJKl$ezKHT#sGpV+5$iat2@}XhzSc$js(+hiheqkx) z#f*OD5BE+yc7Q1jU+v=JtSG`!b6!^aik&5f9v0Z7}V%?LLwKfZ|WdgQd zHjF>$Q0B{9#o zZAMOzN+4~s7=|wJ3fBxbI4inroUQv<+$UjIn7v3 zTk-vkKghk_TX!#cBp%kACfkv-E+@=Icu$QlYbo&oOe8J9@5tgOs=oH>)FUR(wyioUD4r&qj}<*T^<=`q7X zufMl=ZHM$&Cqy0s9rW$RUTm(s!?HLP?dlETrVf4zl`Or4PDoz3Jk5hCVVK7oA^WGQ z1L?=iMk0~}z1}2asoCP%Cg`LzYpyHCqELHM@b=ejDOOvMPGMGvNHH;a$UqrO;at5D z!z!~?-kX;I#jUycIe_C+Q>A`D&+R*JcIW-x>}Fz3>%2qnk1OPxb~=cc%{Ravzs#*l zb-mOtHwAwwmwNz;t)UL@GX*!Tjt;rd$o0m<3bs^5wS_-{(-(3*#B{ss6CKm1N=qN^;r7F7h>nX}u+ww{vLLjG21z zdX1l^Z~fBw=0zIfCS0={Sp0%#I*R@NuCd9bf+|z%MJdV zVk=kEAB}QDvhz;zd~psCnXcM|C5U9OptYJza|iFq$Z|H3z|@tiS5_A?PSxH3+XQ0c z$Oy&&OLpBhyg)|v)ML~3TD8NeN$E_4Qf`R%0#rgB+QiTFOBZT5%uCiZmd^_H#ED+y zY|Ac_=c@N($0uE#fF=r;51OE5)I#fP^Po&0wJD-bT+QAn?6!)k4Y0aOZE^!X7Xpp0 zM!uf4y;#(U1*!_Gy|0MZ>r!3vw}CM*EZ)u<-T5q_KRJWYZbIZHhb*B1M1<~yXF*Cd z3AMUKi%}#ncpE^@1)LVv_$#sgBS1oyssr9_yky)x2Zwv|E(zch-*0p(BaoITS=uUN zwbXkm+6myIV2ADU>@emO@Aai_ooO8gc{}>&-;67Fcejst~U- zYT+iDv(mwiU&O`qbWdGAX*r_v4ps%!?F+JdS{2gB(z2e+P@LnNVeD6H&@z1|li>c0 zVOJ#JAx-W#zh4jaBrE-7l9%4Nuo33)EercyQKoL@jqg1(a*72rHjo*(!A4yQDFeZW zBm84n=*`Yi0?t9x$a$`%Y}86aLQJ7aga0wiO4^!uGhi5?4xWO8{o;hDM!7d-KvIQN*P z`Y`R zvrXR?5n=fhP7~O%a=HoXa9Yi}feB%vAsHYZq@BpR(Jb5}x+BLO#UM|=Q)2OlVTGNs zQg-SuZ?LYohqt(vK5n}>L#Je?60~Fgq8DM^nJH;ERwv#$-w%C1Z|`Fh0Fn1mii^9l zqKJI>3KV^2!U`aT!U|tPW829Ab%_2;kT)Z)$iLXw(*vN$EfIs;VLe7Elw#d49#wbn zkuV~q&|nLZjRp(rY8M4@)JP`5Z}evoqwd=B ziLv;>6@a!n_Q_G}X13oe@=6vsg3x$Lz=J6_Bn>1nqEA*xlW-#eFvZtX2t8nSDbC%m zaQVY)rn5^SHPPFsMfWw-kMpi|Sgpk%MmjpP0pZ^-0HT z=qa(+DYnSLn{--y=#(^b{8(tCEw@YOyZ8)K5TsaMwM!Rl*@Ji{ZvI&?`8PaXzkp9` zwuG4%n#{2z1NWg z81enS))^28JlGskRIUmC9w8=e_tub*?Xi3Jn{wO)fqry1v%t?WUe4JR`yv+AdWZs< ziIlY8vZgtII;Ob%TZ_ad)bQ}++pJ;oY|$nLsx@y+6`gz!VYAS?B+`FY zQ|D1FimK4v0FCeghj!6?hA?k+Ra!%G=zWwpKl^vPZBeJ(e6LVwrv*(d6J%!5Z&dQN zlxKv|kx~(BL7)E26P_KCCZrRORp0=e#-jIz-0RrOa3dX^Z}h?3RhY#%*@$*#2Q$$@ zBJFDyBjn97izzWjn0*rH!}8pK36+T7mEqIv-|sQV|031xHb9%$UkhlN*`Qvy;mLOY zLifGGl_Q^m)We1I%F<)yVK_?)lueYaELCH%l9~yCV5igo!Z$DIb+KsT>Jo0qgNb@E zYbwk`$OE_5IT$RD7V`Ax?lA)T!SQ-aZ;Pp3HmeG{Rm_D7o#$J%neU=fcSZ(~egf=z zoBm^f2>Rd=TdfMwg2{cp-gZ_NY3$;G%NMT$`h`MU6e}6=5D=aR2vcQ2{{V4b-?65} zeik*(R|tuU*+#}O7@2s;zb^M)@=z=dVA??e$YkL8ApCf*>hs;PWZi? ztw+AH=c$WJYaL=(rWvcNw*oDMNBEo;sbtBOruyp7T++wo#L=(>^0r`$p3x%A$sTiI z&Yu%=wAkkPjEO`ewNv`lUwVwQ%RA;0asVCq^NhDUe*U8ju&!#yAMMm@ntvp05As<% z`{1bVPEQ*=6My)?%lgGXIpH7@pO$M@T4u%?rB5N?pL@JCtpi>q91#@Pi@SaX?ilf_D)%nV(wgo_- zZ+$Q}k$(b6W+qOwVr#VR^?8?~&BwXvd8rSiE=UiRPKdW1r12Qy!Au%2~Ux?N5Umv}*dOKW5D#Rw7jk*E= zri_z;FuG-tnvA+WdxaX=dB+y3zMiX(19N3)w1dCeTl`~darLTNIp{o&v(J*H6jvzF z+G~D$6%a%-a^P#q=vZ=G*{N1lD5$Op zyo0#Qo*q;bW1lL}dsm~lA$e1Z`4pd|*MF@U*5oAPU0&l2O-0?aK~m(jQ(fuk&Vku0 zv>FGF87ry48Uv@_U=<(IIemqZVEIRt;&YJzO{bp}0v!nmg8PK=?k3JF<>k81Um;T_MkEZ@tLs5Z1%RDKtrcF@=oV*~LqJp-dOzD*fdGmf13`h6vAkoD zU96Q7>GGua`ABDqZ(m)_9aQeXO^l7dVYK3eBE*{)Cu`$CI{;O-s9QFEl(7)vPxWW% z<5FDk6AiP9!2@Goe~AgU3lL5vm5^`=&zh9)3b**|kqR=j)$v`?_WiXDmq1+p!R)q{ zCjkT-U|~=B2_KnWOs|PbMEn6RrXjj5t@rB4q!OsbD$hA2b9dU>1VL5lg1fZH@jRZ-0nSy z5tpl7(l~>15GNfBYil~fP5@xi%Rv#B^nHT(3c~3l6SuJUKPw2abaG zVBc7*paz?=P+9ECLgwC#>K!sC# zDOn5oPB>7wQFy|Eu)_gG1Dt>n1(4TnA0T2Ojzu{+m&|I|?g_XevVa(&|DBDAlN?1S z%v`m-P-Li&W~GnrZJV`9nuA@=t7zEA2wust=;x0Vk;|c&r5linjAu>$VRY|cOxERs z_K65uoHFp)Y}OrPZ9iDvc}cH;I@$2=%{yX3>0j)UnjcPU-NgneON6k$=vQR#7@-be z8=|}6D6seN1LR^6xP~+z{ERa6QLSl79tH6r^IDwa=*&yUh^;8~>}b=Ck20NXOpA}j zC3mB)?fD1XUy|#FZ=VaWAa!>*QO>Wu>`V|Fm*qn&tOK@?UkiBj)$9s*dW?h*j(HJfAxZ!t=wzRJf&;iME%H)-BDl%#|()46hEBe%VN%BP> zbcwyUgP1dw;CcAXuzmW?B1)`JY{_J#@PTl+7wRv;QI!`RLVYj;9@xG6f)}5PkG}yN zcjCyL4#@fduKOL__}||;d3%igmZ0P#Xt(c)jpFM_ep29|(*HV0-x>MH7~bYs_lR74 z^q(oPD)DvB?gkFSFtS$6&5O3<~=(G@t*(a1Ez2()Vnau}(S?m9UAT z?mJp5YAKYq?~mF$J>-Yke;#P5;2z8mQZ5Sf4soJW%BL6=7{=N0B`4n7t_)^P*iljI z*0m*>zq;cwn5~K$fJA*BhaI6S;}~?IIHBX=UFpE7=ynhfrCR%Dt!GSSXc-Q|ttFr= zSPWVTwiAeoS&a9?+;&q_PjD>edaa})d=E8{u+IxzwX`!(;UaK6%W-#9Cq22@N40g2 zT0X1@R90{<32cH9zwb-n_)#Atp~UI~2Q*@I2V*Z)HK_F5k*EiU{fO1qpet;%a^y3L=G910Wyc#tI;c0r ziB`<)_hE*3FoTLvZDIiUAJbS19aBkO@Ys^gh{N2dPcZYUm>1}*rYvE3Lc#DBxWv)z z?`t2$;qPS-T>P&(>2ucbC-WkiJsm&^yEu(|!@Z{`YYAcUgS-3tU&&mh;I?IE0U26^ zygIYvb6Wj2|4fhB`WU4?wLF-xail3H`OUnQ7;M^GZk-?WEFTo9o4t`(06gck6lVe{ zM#H|R*uJ*_S(^z{%A5Pa11qDBN_m8qoDLn@qR(6`9d32{^-~EQ`k1i`?BY#|$?WJX zldixW2<|gR4FD#yYCmwvxw{Y@Q<@j)*9paySDy!3a5V=45t8d=?6ntN(`bppA6o@Z zK=k8)1l-q&Qidwow*?^*G30|+v4?p_k_axSs|q&xXI6`;j_tK~H?(#U+Fe%ej#hfN zKTcM!#mu9KUwAhC$<^vgyXTon8%$~Q3%&cED+lgWHawm_7uDZ4@#(;(A^*D+&s*Oz z2fRJArVhL?*|~XB+|B$WI_%-liBOAePglC|Fg9D)R4(_iU*yhP0$KsgdY0AtkFUP$ z7tdcF=E{xFRIcI}LhH3L&rz~nB;l+ib@g^cLPBA+Vc)j2n%um=0s|;)u#bwp(@bP7 zQQ-HeuC>^wkvSC|shH%O6v6RVu3?Zvl%I<_S)prg7>|y08AM*zbX3l4i>A3}*L*%Q-KA&UGDDNB(VPV_^2P*cDxmOn*_b zeD=4DId$E}R(0LSt;r7!%fR9_m5ct^{NkS@Fj$((NnVdnpU~?zHA!`g;uWDNN=N42 z?YS>dRZtH*A;I0AHBmJ?OVwa!Z)L+m)19Hb14m`zrBphTx<5l8w|yLUz`lf#I$Npm2fT zH}SgL1UxWMprv01-e7{?unwm&|0DWbdki(3F{qTyT)4xQfNgXy2;J)(H>8!~#^NQq z*gF|d_7ISxA!QwfNT>xr5nI+jp>CU&a=3O{d+$&xXh-!$FgiH-OLVzaA|=CzWresW zF8)G@Y_1<^os?Fl&VGsL8h9iO;?-2NLhsqmv)~|`dGG*S=hp_9&NkqDW6a?(<(EHh zGQor2d&015_$+4%1amNU!fF#ORap7mCiKqI!i^&^85Jd{XAj+yCRNeBkg5hY^aXit zq;3QDA|**8u8&p%2ZUg&HY3b(DM(0gUQpwcX1geQqM_|{k3QjHI*4v z<_&k%wxKd)a!3JFp#_B(JQ!=tBlX~17{I&up~v=*2LUvR!2i>Ww)Tp0eMvEL6M>F7 z13GYk?et*h(W1(xhb^K?3LtF;N=;Kak8KiE<{7s^AqBk|*}+Xv9HWW_LJN*R*+kB9 zPb(xZkM!QX%s8*qc@{A!myOX*_DcOmSePHA2z{q&aXFh& z32%(Ghp>2&6{s)w23m2oc{)PS)|g+k-*+)r8~Mo~e?&(tMvSp8k{<^QPwvX}`e(3-MrER&K_*9`7}m@9uh z{Q0jB{5A`yS=(W}2^n47n4|#i_2VzT9)Lru2F?VYD%~nceH^a#yTR8M_pyC?JrB&% zd}OQb97wsMb>O^~T5%dx{dblf0i1gLE5YI;*&DQvsF)X|NUTD`SZrRtR@8sW(w~<3 zdw1bIRiuLBIYTY@0v2CrDU$XsbmLdw)#&g(f7~Ph82|fp!>$oT)m4{y`$nWujH7}{ zV@Y*!+=-=|4Fh?Qxp|JC#Ex>ONJ=dS51fbojvnDehG=ylQR)dJEz&Oe#sOhSCFLhz zLMz7HjNumQ)~~GzNZBhlZAI#`cgA&JgftC#iH`l^pr*TRzc3=MlIw@^M3F>pjLL*c~&nVdS#lcjB;M3}BC4wUS$n=*R^7 zzbmDW5Wkk0CE84>PZ?A&INZ}^!Mo+S0gRkH_pz^3 zF!Kj>*f`_;%QynbfE=s$F8m&x0@_s6eqU1By++0?|#qm-fTBZz+h4TS2tcMVCH zisgUq4ohCXbrabH0s9GR(PcL&&97Q$jkV8^`{kKSGvjXY&!+Q%GuMBwZtrHn>iQRM z_KTCmlytQ@NxSx>R5&{pwe#V0nWpB3K${VQbzn`~UNEd0q?g?{0BO8peYf>GYl2*v znSqtm*t$UJhnvsh1b3?@WTfdYpiD^MDErALRBRbFkOk;Kk$*LmTGNzcJ*;*l_$5@j z()hzscwfzT9+**t+9N>T#7foc%2~7PvWbS{%o?kunxnZ&i=t)cmLI_d*!W*=w_yX4&x9^ zU`6{iu2h7f z@l|GYZAT;!24$CA-iSK5cHGwFp_9}=yL_JomwVlk=%b){{H`yC(C{MaO44ixq((Rd z$EZrwE6x+e&Z2#v;*KV?G!FSs4BQeNLKTRGM;AYjN$|dhc{60MgoDix$OgQGw(2TgQ8Uo*Lu{s4F@7ZDElBi*{O39W#HB}fY+^=j)PtvNP-E- zVwue6U==qcld^v_8@Y6|N({{OcJWif8_{pHx>cgKP1sv;LN`8lUPdP#9LmUilQDOc z3(KZ$4#I3xWHD8)vz)%9oI8&elb1Ehr^4kgTi2u_ooa)L(d7eYqxf?0;C{*7fT$o&Zkd`nB{IjN0mIVcC zhBcs9&|&@1oOPF};*H$oP`Q*pv;Z}fLnDVg)Wwnfz#tdUEZm!UL`$CONJ>6LorrK%ur68ay7fmy%?i)Sa8B|vgHmpdARcxw0|md?o+!w-Pm4T&G$Yw305#1{ z;Dl2E@)po({_3t6pR`zqfMBP!%7JZr$MS^YJskz@D=w)tj^ja3@SugFtvrFFbxL4_ zcgKy-Z%?~I?eLh$WVTbj5Ee@jyLg>9ehMOy=mQ9js4eo<6#k^~dg~xzGcb|okB14w zsCCZdh*bpv9RMw*{7*`Mop{fw&G2e_=x4cpPTWAC0WzLzBqp&k58rt3PZ_4HQ7L^@j{O-&fJ-Ai1`?}Z(XG}9h|Gv88XZ_bJM(+qIprV`K?Y?15 z_|A6;bGJU}5T!#QmQd~^6-;nXRZ(b_7WOARhelyYfYjr~@zWNKnpcbup&1aWOJkvqcKwMEn zJUG20b#)-@l<{$+=R~ruy>~VC0oww5jW|pH%GK` zgqb{+g{-kBdu=Z0wDIB#l^_9_+(mk)TKnJMdS|SO$>dt5Q*n)z+pyo!$`AV7gN)ItYtD&h10_^)dQeZn$@&Ik8@WoUfjvx8mznVghATbFY@jgfk zDI0wTz(z?^T{-#943}+-t@~JN|Y#E zUzK9+>kcHhPM$VnOoJicP`4wY;*N=mcl`>|1;4JT?o)HCz$7(XBhutKVSRVtIxj=c z3n*$pQEox-iME-YQ~3buL|v)Naby&}D2@!areR5p{p$KB2qoqeh4aS8LUm6|p*%!1 z&5p2ePXG`CwZvpWDd-xf2_d^ndrP{{nz1i!NZmy{DqIvb;U62CXNxfPho03iN|}1<(g(52orB(-VdN2KzwGTs*wAXq)}L6%_Xz0ya88e8+qQ_4V3Ta`tg!0 z&l~(r**r_&Lllp?7r5+zMUexzB@1qLcCdQB-SZa7FC+soD+D%6)2v?FDEy z+8n>_p|d31)Q*T5@)ac#vYmTG2hcyExC)Lif|^ydsY${GT(gT2m zrJQxKW8^q<=|%g1Z}K1-!iZqNEFx6|+Y1v-mj%ZMTcQfkqtzO@w8L#G(&})Xboq4j zuV^C$ifz2Z?mynr_G;xj9f%*wc2tUVlyjj(Tuaorj%Fu1!fY?pjx%h!JocweEzV|V z6j%2Ps1zvw$nK{8n5S~wJ?kdt@3XchymPWIdyK0`2*8{J{s$rmd1Y8HrvXj6&78}c zTPsP6wuq>kWULcIqay9`1SyDGmwqhPEmUId2JSD=+uPMiv&t%B?vROJ3Un?|8FDU^ zza2VI%G}SQEId(FCGgY)WqI;wJLNU&2}|Ir0YyU*wzY;`#a;3RH;2g2oEpNC>0BLv zkR@G%Yi;<;CeQsokQ|ctjWGG1t}}7otXOyC8Rk!cwr2sMh8kG6rCbon7J+7P#==Y+ zW$=^QW|*K(WtJ*lBygfDJ_>sJ(l$`d-de(gg5hSAe%In8!6CG4vW6W=KRUP{n-ON{ z%9)3@3^;u^Y~ygRIwX-^Hm6EqO>xxF{EqnnYcHk6F&@;zbz!G)+?Jzc3oa+YazKlCF- z^CKsH2t(YjKgkva7fuzHIJ_e&)?~R-&cAx~{njh&)<54}!%V-{nfsT%i29sTuy&@! zr4vqxW#&QNRXr;yiN&^#q4EcUNz5ep3b?ph2yLC5D}0i|=#cL%DCIMu6beRA@6X=% zG11z#kM5Wkl-x(rHeXhMIVDROZJ)*@wCYgUz1p(*@Gh;GWM$MR03G^xmws1QU^qKK zmHr1402SGF3E8a3&ohV24e&4Z@>fskLTXAhl95KvtB`}wF7ux14R4#>puNIbNEtz! zp#>Ti9nsqbsp5zV1uUQ3KF7ExY`H_%m}?tC;0M{V4riRx{vhdmFlj#w`d5ht6e?>= z%#FlPX=4{%xncd6Ri&BuClir+<+l5IX$gh+MT5)$1`fAw-NgSnoI&M}pu8N3BKu>X z_O~COgWxanKIdx!QNz>JK6stfCF(VBfjcKRYmoWEY zLcGHC0d?Zp$;Q_#U>a6?q`w(e5$c2)Z6u1)j333hdAi|wfTZQYfPoG_tQeb@%wJ{OyJS)i9B=ofXwc$%9k} zK}E0-5XRrG_24f>5}x&1+r*S?Jf7~iyQRi9r95^7?64UI76o*R-HyZ0JhbLcEcQWI z5&62%B{z7-fL-Qj6IYKE4s#WhSs{WCw7?fgvHMQUIWd?qMpmn9mz_i_M;f& zR!0kWVQI2Ds(@F@HRp|E4~IeTVS=|l(YnanM~~a8&h*%1%i1w?u)K{{!jNr(>nLA} ziQ3;)*&-L{|46h4tu+lCfaW3Lfi(9A_p(0#>HlYZGntUv6@*IxUD-iRKHCyCBv3ZE zxFoa3x7S`0)!~`IHFn>*Cq$3dpMxHF`Q*HhRB|X@of6du{S2hlCK95Q`RqGAXgai* zf(ujZCGJmXywk)^Wu$d6OR2`Y1cJ7m4`nXc?%l4?aZeNb*yR_jR8xx`())b(?h@f@ zm2i{E>fHO0>3M!@b=6WA(}@CdX1%fXXi06^pZUa^>bTFx4`63wevI8;Ly>l{U8m3B zhITm3En_6p;5VFUzRLS7r4NzY@v6OhvEIcjbEtO<~EaiN+q|(#eAP?Lg?weShfv7OI=o!8X;k z-x`(DzUednW#7k{LyhyT<2^pwF|i##Y`*TgUEp8s6#n{B`o6uC)SkUX)Mw+2SvsIC z_$-6(|EQEN3S{{kOJkIgxK;Iea03VO%CeUMuLIa)9Ey2Qiv`qbn1x7Tige}niAoY zxdws$N`bK&MWQ7LwF455bF?`2x&>S8QgNIeY>9v3lrX{xcKlpy{vZzX2QC+F#Qaw{f~&_yQqt@{3(dqAg@8EaWth&sEl zubsR9)ROfPCd-qYvl7p1cUzM>OTXI8E$*1sWzxbPmf{~YL{AVCE~#_0)(tMuFq$~h z=+vD#YT=TH7F7c2y$$V`mFhXrI>sztn&2F+@& zHM@Y<{{F%#8dDrQb-+cyX zbedM`$}{Fc;e$PYOScSTFvC6?C-w=lT*VWnU)UGXU4XJ5Y%r0=_6n+AEiz3ue*b(m z@Mpc7h3lI59UG+V^}oNe(D_cxHDxqp1EkCQ`FMwMCMjMg^7j+ZZ9ZQ;{`Gcm%$Fcc zfWD4jks#@yw?|rvi29cHQ_#wKkT>*W#U%RhBPus&pr(CV4u zy7nKSX0?_|4>QVkZ`a_h9JynR!r=6=<=SXEk#3)1H2TW3Qp&`IIS{jEp_JnZFdWIV zCvghZ|D)^6<ySsw+tiwGdr2MTYp+Pbf=hA2 zr!HRt;E4Tl&)Fhy9Qo=kJ+imB9+A0)T$A00Yy&t_?}e+{EZ3+rHX~IU7v#%P0VE`> z(DMf8aQ&TWD&}SN^|6H@Fzl|5gnff=sd79$cFig^~A#ecwx0ri{Ii zZ9Veff(m3QtZH~X$qn4zrKqTsROI^QDw0qiZxg_B9q_@tA?|f*F_<%NeW-}PO9xJJ zWY4jK9@=|i|1<<$c$w$&StKr?QL%f;nADfS_@Hwq0>*QkPNv_5wN{!IqOGYgo1RhF z=glvBWtk?^XcUXt@ovD?baHvjtO4ZwUhR5jq;+*orBzSLs=FGXDXzV`sm)PwmU@)L1WH>dyzGs7M zC^o4J+yoWw7@~o=QOCF&>TxdkEl!$J>mW`F4ZYAu3#gYTus8GM^Vchy<3Bk)*2 z@c5wCq7EnyD# zOOwEXEW;egvLb25*H1&eL0wV7@=4wUpCNsNacUy8Oj3<5$!gy(gf+Uyx_S^S&kLbk zmmCC#8Qi<`O!vxass4Ocenq9b#tQFJSUbl%FQF9o9RMjJE$mUj_P+X_(PI*N`iKAm zWASruNLnuKxlHf;5oST3s-4!Zcsb*}|08mo*Jd35!X#d@1-IGgVtPdcL6OFcin1V)$`l7Oj2)fKW-*i@5rO zw|m@k98nxv9gN6C3hl+v_MIpfP2bEOwz2Jsgu;nXL13$#fCrK)B_mp%&SYkXrA=#B za$IEROUki!_RP`yipF=ERe>YW&Lu1GRDbmc{=ZX+jy##u9&gAKMWO4RD` z0}`O~%|=a#-(cN$+9pD8gz^mRQxRl*o0=)z6`^^=rQ8EPqL?SeaHRMtsNbV^-_R8P zH`aP}SBIfWalWNvOSnEFO||crRaKd;`^s)Mq&1I0zu`tHxD~JRe`CB_5Wsc#!q@uZ zv+Y}x=JI3I8f!x z<(PoNAa-%wUS{3uP^LJV8`MxN3WLP1{pQ+a@Fgn_yCo28&Aa>NprRt|bo>U#6p5zc zwJjtJwXt`0o*5j@>pBUK6*bjf%FLS1K$Cekw0B73r-dYUSqUf#x@fU{(!RdkJ97IA zR3b(sUKS$Y@PzdzbhZk`FVpkft8&kHhM$ux}BV1CK>d-}8gtRIenFAkPrCA)-z1~7^ zf{n(dwY$g>Dgc0Y2i;U!S6q3ArfE6TuzSMOaG$7+oju#6-r}8wlJPlrkVTxS*$ieS z%~|OnMd1SU-^XDCh0A27*>+LsCJRfenqy8Y7V=I=aax7);KdYIdc~5X?U7l7@_{n@r)sGy2nn5 ztC9!qW&bXuL?`&c*=y1e6lO&P+RoEvAGF5n{KTv3&vP1i`I01iLspJ|ZcPo{HHcGV zJS4)oMqE1$^Xa{jqY@=Ukm!nE3M|>fcQ~E_T2ga>(*Ok`F>;*7L8w2FTfu1WLU}pRqArB|3Utq4f^{Ip-edNI!gUTG6h_feFsqK^?*c zN@|bV^IlsjM;7>I=-TvXjq||QG|~qAG`tdt#v;ZepwX!Oy1d&+`rk1??+$l;-M@b z0(@d@JgiBMUkffKXhT)9Y#p897a3!k>NI7ApjqEYwH0_w%fJWe`!{Y;j0gkP!|^WM zC)+2ZLQ7aRsln5*^S~X6JiYo^uWvxFpS$`V=h)Ygvu&_P!Ub;9AQ}rG2X=|-chMSqSL#mAgk&hkFS%7bWF`XJw!*?lYynOmJiYPWD zz&e2+V9&BsbE$33FOlP%6=v<`%T^uiM=toIcGP&~Z+MT9-!NY|wZ=%>b#*Ajc=Q$y&*3)Sfo` z1G9V<<8*xmWB$$g4fl|P1?)tHG{^BLi88VG$eyu+iXskd21gygmMk(_QJGhq&mDrw zLUjmHsO682(F-`&Q`ZtIUO+a1f<)AErZQ&$_);?7n6PDr9mUMpk3XHqGl3hb2N+RH z6df=ceHHH-2D^_FO}1^UtvfC8P(VOcJk1o7wA2mi3#J;z_sz~YfX?x+^+W#;o)&gm zTnhFPP`0mwCht1#)?#Bjem(q~gR7@&4yq6)6Y>0H) z*Op0LuLsX4Zi`3hzYx>j&1c1BNNR@dDv%PcW| zPMl?}^o4{wp=%S^e}*2(tPp^%{U1w$W&LO9)tc4ePq(L+XijYJ@1sDGmUXV4Q#&KH zCQ_`f$~yU~g4+lpm^yRMI1u=t7+S+8d{@H>vGhBzD7|sKl)!*c)VbR;P@T$gIIPAx zMRXc|RS1)`qTzg7Rk7p0T`ZZ78HA|Zv{m>n+y*wqFHU5o(~>4?$DkiBfhnZs6{wMz z1qurM>D}LFrQO0%b3cIRWx>m4BP4@T0wh9rN`Sg%N0@$uj0m!dxoNBh}P!aN=7CqH8_lwxm9Av_9miL<; z?Y^MOt6wYvUYy}S;}HaLJc+m_TrV9K^R{i%mlK)J5N-1viSfJ-n|}5neFj#GQ*J}L zoZZ0S#!Mh3e9$H8bk!M>K~epqhzdY0P4UQ%Xl<{K(vI}AIc)qyYrw~@urVN-q5DOk z^BIZyvMy0a>YRDv!!3PVH9c%C0MGSD%JL220uUq&1?H}#ZiZCvzI^Mnr*+U6-3Mik zXvuCGTTr%qt{loG-;8SI44rFH-yeg|`^Oh9d{!*$ER*Xv0yzkMuR zo8WzLEA=-q)Oy+!Y$vh);6pRhp})CIJ8JHRXSS11e6RI~n4U`Ms;~Fh%3b{Il7<}F zp%*KiBeXy;hc|eh!p_y8%I!wwh-!c!u?Nm^IJ~_Hx$&Zzhs3@b{bIGhiQdVftxFzx zh*S>hBSiATglKnl5%{@%#??snX{q}|ZF(s=wP<7{t=TJ!(lBS7kN#u2-8k12hBlBQ zn?ZtN``@I$JNJWLqvw&`>annuLgxCb!AM#>X6dm7aA-*y@BLY%R$c0uG@AeY{AhDnCN9JgNQtQK0{^ zi`h?lCwG3~GcuKZgdks&=^1p9eqD%k+w4;Vt|^Nm;W@2idoB|YB;k-h9S5`14JV?a z(oy?AOADat8j%Nv3>{WUtNh*7UuT{Y1MB3#qAR!ZZ#!{>CDZR?HnG#mlVi(tHK5-yFt+`=r26Fr`=hO*^2b__f?<|(bFDK_LBLw znppFNH5t?%9r6q`IJ~j7gJw5vnn`RKwQJ9K(#57`o-q4^`u=*3|DjO@yt9X1_Yy(f zlb{^n8`x=F?^I53Z}}L_(Kiy@*tco!dY&*2M*lg=wlTCC1R@!ZVT80GX3dKr7!}}v z>1lR2k<{lv>6iItBRG_WEp$0?q!qA|A>IO;5Sc7k0bAcNm;McNDrlNWbwU$brulKc zBh%%)LzWM7$?HrC^Z3NR%Ol}i&EANY4@APyL$4odlQ-rk?tgI-zks`Y4_88?$NHA8 zta5aRy^h(~J7q{zxw zvfb0ryX>YB|IGMa6HClv+K_#eO+evE8RfyaoKq%cG28 zm8y_wYFrAIj{Utj)9P~JdbqcpU|I+h_yGO+7b^jOZQ2VhfAd(itzutlYBx!0(R^ctL)vG>1fd5^`k!7H# zlCIL-@HX+UKzBaQ*T_raK^{ZAG$a--+du!iPY7`hiQ?as3$GK;Yr=%;P>&W+4( z`PUiq3f+jcj&ChsH`d#LMTO>X{J8|K7gVVcM|%4k(mSItUdmgrkJ<(_=5 zNb`hN$?S&J$a9Nf^h)WLi@@!QGuo{ZmW#6bGsEnsne2>i{6JxG-^0c4qkMFi8)+mC zx5XA+%2oppAnmVwWXW3$yjJW{y40hR9?dc|xce#I$>oFokv{BgOYN%K0hSZw8u9pUoZ4`dDmiQhnJe>}yF!Ri zOrLFX`%VJUApOi3Vi?mg{Mx1(kK8%N3tj_UBa1 z|M!hEn+Q+ICMrnQxUrI99A$%3VHsZB$+`2f^p^aXN(zm>k+?YFXS2lY3)%ApSbXWv z&s$^aHcR9=jL;#v>!fFwZ*Ja8$@vzgiG~Xu<;TQS9Og(C>aShro-xw0!JS^%C=pCGRLDv##nR z;=r_7P$l+lAUFX;UKAuO>cI~pFIQ|jTE#dq=@+DSK0x4+eORIj=Cu~dkVKHYo2K9F zJruJ609dex6i{;Y0fzexw{&zm%dt!GR6fVoJ7hcLtcCmx%@M;dFAqz8LgZxOBLP?&LDyNK_?SqN4vo) z`PE1kIhJZlwia)bPTC2GtxFkTPUMpl1}l)edX5B1`J6nWY;>_YXv|n|^ArhV>i_9U zfTaj;^tScg_E-%8LKMhU9E8=QEXZuj+Q6ZBNUI}AY556#|h(_I$;{#;TG*)UaI63I=@U1?^DS-v8wQD`^XL45)RlsC^JH-fy$ zJik?V!}#SWL#?SRL97OlutUs>U7!Yurcz)`-%6++RRxuRc+OTG3)#06#;&0tN4eN3 z;w7(PFo(>q$1O_7XWUST6fr6(&mlL51$!(^Fz2;0#~48^z$mPxSRlz{HAWcVmTb)y z@m^BIyDnYyn>XhspcsMU-#Y}{w9hbkezQfiwnpoCax5!1Gl-g=T1al`UeWHlo&Hln z#^m=02K5wO&8ViSrYryB#wW+#TJiKuL1!vQrXgK7O_z9PC8x+vg?}kPk?D^%~=I-xWEwo+VPWMm@?h{X~aXXuuR{PHpcBaJ3s~LIYR?v z$!I)A+S1AIB8{{4Bmz8X+#8#zSSk zakm6>#+~2!p#QTzxlJp6WcKEN<6`gHv2F4-|1H@uwd59X=T`L3F$6D{+Ulf;jrUGx zWLUSuA2@s*hqA?VHeR;oD)&r>Ab?{>8nWPb<-sFJe8gzXcp?l{X${J-9Mke1NQ~O3 z2-~L2@p6Op8>_v%mp@2>i2@ja?f@Q-@}y|IX>nKBYnA(m57EmlQ7_~BXooxKfsL{LG~5#pY2BVWd66dg z6q|D%oLSYh0vEJJqpDogR9-X)=8DPd8l6uK#R-maQ9bQLKB?4tthr+5)*=I}(UyXj zH|<)?Fu7>XsbP1zzkki^!SNYUiFNy!HX{yy=lHH`XG42_cTF22E#5d<)5_5dgPP92 z_VOvHA-ZF5+BaqF^gb7=sxH3)m%^@-T0gK-mBmiB9pN|wGH{MjF|%kcl7q0KD;-ky z#l2+c5KrnoJo_lhbeY}uULcdRvc^#FNcCcrmkD9VKdqS@r-eSSw)<`Ni& z;%<@o5kM+Lc71M)PoR5AqHMeFz$j&UuvOf9_DL9x@$9fWkR9xjj^=1RkHTbJS`Um@ z&5t7|_|DERI&--GGxjNh( z+KYTFe?c-O9Y^1!c7uZt_3^xM)FB}_L%Y1$WE*FngDi!KTfzK;hKZ)25MkSN157nu8}%!Dy;0$5+WRad`fW{s65sEsYpD!+VpRYb>&1PtM5*4{B7vR* zkig#evEVUl^99mqD+AxXP5LlVTrOy&9fUu>hlxhEIhO8 zdk%IjOaY{E$G$-J>>5{VcFB}=dE4N2Ie7nX8Doa|si7H=ca$gb^>G5L4CuqZIAu%LER@~;2SWyu_#n|v&cMxXW zi@Yu&i@OOrv@gr|9Qu$r{(NN8(|C$_G#Q_eR!aS2apA$}5Lq)fe|4nQ6Rs5*l;A{= zczJ4BM|pYPtRyLp{<0yD+Jw?#rty^nUanBd8kGl{&p{6r;kWv4H3WWpg1Lq(9XU~o z&%&cb(Tgt`8}60+FsWU8!3gH`o-um=RZ^24)RBnfuusCHv<~W%w_w5-AufBmZ-ogz zfD^uMxY3&k7ZecSm6h;+<5ty7k&cJZk1-*JhSCkys()3Lz-eA*2#)lV#y71+oH693 z1iQ8Xg>56VfNmSgsjQuVFcK8}(P-@>V=?xgR~%teUrhal0z3;_TRd0{>iqcbPpg`I zD5^Q;HSuE68{G8Pz7L#Szy$tTT7v|S>wmiBKR!#YUP)6o8>Z&bKM1`-2e|(Z5gje~ zK)Od#91N%9p2l1|U;~$b+Di%&j7V42B^DIQ>foh)zam}mkCU$Ps?$?@Aki!EYH;&% zR>|xwkG&9Go^-fVYBRF!ML4_b8O$}NCTz&ul9jLP0c6Hvu@oOhSTGql(KfL;ro{~w zYAN}wCIXs+yzfPqwWTG1JjM3%_pcu^?_B!sw*`V>Nsz) z%UuMowN+z5=?A8uap7oL98+Vh+QTOt@9p}ncmMR9{2=tZay_yyp($>wlwwIwFtx;4 zWuroln~y&xGeX*^{E?}k%Y=tBkBuIGw5*HO#PhlV7`gq5X>q2hqwdTAy{C0terzlj z<)1lGAEq2aHqL;+J@m@*$Bd2ipL?YmXW72qbp&w;r%3irI+-+7D$@)k3$JIQ9YoRnZ$$I@q%~2htehl5Rmr|MtP7$}=yiyGWbH*}<~8GI3`8NI6jxrM zm7$>X)(89;WtefwJh-OhfKN~bETNhQSQk#G31zKXBD=+xN>H3&-Ac@5M2~Sx$%e$K z+`MT^v-$T|{Mr81B=bFm@K4v7_|}_e0}(;RmBD9=kqdw|6<>x!m!IEsHlRjQq-r9z zvIXD+)95sDwH%LLbfvHs+uV8ba`udc@Mo-5MyTh#9?kVx$)59!p32OF=v~TmP3A$2 zs95jUZ$N8Poz9-=0({8AV-mPb|2(B`auo{>LCLST9J+IxzFI_OjdMpB^>ZtV-FCE z2v&7SfgV%<@Uz)tE@2X!#%i@iE9<<`T%BMxPm@gYT3B=Gu&A=rTUDVqI6^Pm+WB%S zVUiw!r`*F0sJzvYlavD&RljMqHfOFdB+NPnF)@>VdaRbW)$sOCL`E7qcVw6eI;ych zEgsAd-+urDhtpGtAxj08ciVOqU@I98lh3Q3k&4DOSFY@ne)NcIqtXgqxjtTydlQFi zcM@l(A=8|)o_o_uIfZdTqDh+DIo@`)pdfqAfw6h4N+y*CHL7DG0CTiY)0a!1mS~wZ zteL25X;N6x3$LYPfFaah7$pX7G=o?ap*kuzxr? z%g*fn_GO*xr_;lQA4rkvqnZeRIP;Hu#hn5=Znfhl;qH;=HLfB=nXW&wv5+n0WBieZ zwJ(~O#N(cgZ!MVN73>oP#mNDyY&c>7S>=l*ySE8eelW^2t~i z)u#(K3~~<(-=`1#>(9sW`7j1NwEHLFknH@Ky98A849bq0{ryUMecWR4Xq_W$$MAUK zi++~fj)*8$(pmU6d`Jcnkk+eSGC#6Jv{=OrONXH%?+vwy4hFEzXiJ^jqW%qRujNSu)!{+YiaHlw%@N-3?aktFL4bvmPEV)`=L zNGt`IOIn$z8~$4`ydM-UH1T;LXhiG=LTlqtDT`5+JTTURZL@GHfMqyi$Ec1~uYVWc z9IL)kgv`P-1>^k6#C@M2(yBNnCqpRWzI^UHOc%SrhPMDaW^XATdB(S5ehvvR_Iq`; zai7nqtqZk}YSB7^%c;zSw5LN(IY`96Q1bI*^EdD|ooxIg1U+8DY0z<##hg+qsLie@ z^aMM)oB#9%;ED78Vxc~ooXk9U(0ZL9@edF2nzU*c(4)Q{C_=5EhZb?{%Y0 zrD>#Q_s!q$OZ?@=z8)O16V9D`l^czSiR-A!AEP02itCTTO#k2!h%b|?M~`j6vqq)2 z<0N7$dqL0w)i+jc#u0Rzt=IX3(q4 zMKH6B6>3x4{_>SoF^+`GF|WSmXf(m=p3o*5Y;uhY(h{$}QGChm#YReLWoC&$%48Eb z>*41^CUo-3-cw92L<;cb(w{%J%<($M{$VokCWi@1j19{E0hcx>E+SmMGh*1~;79HC z9KlnmLi;gNtnvozPc8udOOCX*fm4RwXc4k?zfAWP%Y9^qTOfX=)yzhZddm36z{D8y zzR18|xy*%q*8UZ*=jMK=ZjL%~3yC|#;O}?QzDaAHD2f(VZmb(WzMsHZ1(6^_{QV|) zHJ2{}(sMvY=5vRfKu^a5C;Ttft8OuZT!_O_ppm2u*tJR-iNpOi0y#Vrn$#TK8s-G9 zk%49;4nUCw(^Un`#9?O~cG8K;WTi79^zg>yX|A3kaCCx7Z}$e{qS@3!+yEjo=<fJe}kL%-pp7=!Tm%Rv8yOLISoDD#9Ir--}i?||Mzei zoNZc@{^3G}%dTTQ>dI=~Zo6@2K69LAT9xQHTK_4e8}Z0-w8}v@t92nzx&iN|)^erJcCx}E}d zO?fzygU4W(ex6J^u6;ph1*PzF#rD9*!ThA32E-!nV-`msZ>XP&`)q&XG zVx|Ps+f_fmX6$cc(#~0m>OF9td2x51oBRWg5PId~u^sdpT6Ma1zU?mKTP(P0b(ZfC zR*K*GVcllVLFz4J64@)#52{0tSY?MT*j^UGb5V_8pu0$~1vmRl?d{_w-sfUcBGjdx zM~7Y-`c*f362Qf5(VN&{J~O779WYL*o5Ad0-=FL~Gr6qVv^d3|Fvq;@n)a~C!>6=l zzIGrZ<6WWAvbJ-5Q@<#cSrHK_8fw<`_f~CRaXQ{G@3us@9yK)#doRBH!^>OLb&Hg3 z?%V6V81Y@!k9dW2jzl;VvUHK27M^jU7<12y>-Ie@(bUqD^s0ToB|ejjT^v@t`Rrn^ zv~9;8QtQNX@s{zVGHStfHm3Alpwhgj=lnl^+Ti@GStqM%HkhyJ0jDRAtC8ZuUCjAk z+Mn%}Wj`BSa_|s^E%g3q5U-L_UzS|j*0C*&#prk14pGbI0>8^oOtV<(cBy$Tehf(dd`I)}fmLX203z1yqtJC&d^x7nK?m%qN2_IFTXRJVN@ z72A88{YAItmkMETk^_doyZ{r09SFjYtSg{-+gd2X?^wlY?}bVV>yQgEn|;k6$`_nZ zuib0q6x!QGR@A`DR3g}9`Ht;@;t3-2`P*~G@Y-ToR>Y;w)9R(jsa7KXNlF{%=rm{@ zpd-IE7G1Km)y&LOR18><)?XWk8yDOJ*e-mD>488_y>x$+vdp zCvXl((orFgcITHQt`(f>P9se~u2}*JB;h~9d=*@6T1{(kffBWb4r(>;5lAt+@>#h| zpg>H?Vaf=EJLbNq{Zs`pwUdw@ZiyGpIHS7pyi~fPP%Mn5Na_s_y-t{!kuEG7AG^DU z{*!Xhb`cY@hRdjzUW9Nd$lEm_Og{chcYP0uk<*%{RUwP1cZU`vg(bOOiknMRwFhCY z%1?AofcGeydX`q5!qIt#HX*wl#pdAb8YdOTjKpej!`sF^>8I23vM4QI$_*|8H?jYM z3e_>H(PIR@D-`wR zw#qi)Zskl`JBEG?d(R;W)w}OdC5zw7j0G3%!0A@$p@;{_Kots04*%L$GyEj`IT2i5 zR}PgL2YVi7L|h(Kq>6t#wG&;&flQiHFVaagL%wG;W(1d1RtU9g&q^@;mhqvPT_uQD z|KGni|BKK`3>rW$DY??`bkqQyTiw@|;`RB>lhH#{Tt8Vn8S#8I51d@7@F4< zn}qA(tS|hnL?@-f+;m&JCS`& zmELWF3VnoR_rYd)({scu_cDP@`It`CgPXDN<@#Bet(~ktJB*m|M6D+JgI(QqvGg1a zzBZQiS$ROn@envCcj(7}NuN1;Mz}hicMi_`}U%ZpJ^wKjamI5SBVRxRoMq?yE*{I7Jqj1|g&Kk-g#?@fX1GvvQ^3`zF z84W^OC-u6^K6i*29pIl?oSqjZ7DexoiE;l?Ny97)jC_5QS&`5eRsvYJ5&d7{txlzsG-%!P>fw&3)Z@qs#0 z!9_-T3(Wb_8p&%fd4Kvjg6wUMmD1WjY_!Rnie;?1#AJ5D{6R7%b2`bTS6U7Y9E;v{ z?I`<{|&`^wGP;33<~KlP$-s>JcV z!Fh#~M&yYI$q!26en06g{c4H+R|`vv-gAwN0H2+wv{?GhRjNVMkm0`1i-x-rabw^1 z%a;qU)-vY2M`z$qL64!(U`--WB-6We|vYzbq9Hvm7@Y~L7J7sG z^-3EzzrYyfbu1YB7BsONJ*Ef631X5{?NUIZ?mV=LuF5qxWU||{HsPP9K zDfht8v}+E%=1E39Mfj}bwa2z?AU1bA=X64kI7RB;-*y*zXulIF~woaRAO z$iJm69C^`E4`%7}Lt)dP((t}zE#9_?@4Awq4bSnvm0ZocyD_o2{`Ur=vI=>>SQ#87 zryob97~!9UkHmpqHlca|5KBe-@@UO5pLk{7y~mybO6SU)nB^h$yG%Agb;K zqcqhx3o6J@|INM1Wbeq;XK&X~D3uOd&1sYd&K=3`vBHGjw1WpDTxpf(v$DWlN&+oE z*G-0{sRB{F>7j%iH(4~;-#&9>A15`mHJP;|v3V*I0E2`6p5#Y9xX7vQACNJU_LgG* z_qw0=txLkf07<>PbnJfdwA-}LL|#v&39*j(0>)O%4)`{7nii^_|0eiWihjg*N|IJ( z&_SQSJl7(J%CpH4uUhpo1{j{e{%0-cJ%D1iEl8wUz&> zlVI)}W%l`lKYLgg%$u6onEQNa-*!~vtxIkjJKorr#h^h2yK6MtcJ(+pF(@nhO-Juu z@ET1+A`pMHZg*A08{H!L-L z_sEo#wXo~olOp&IXu|v(`jIrT2`zZO!@8G0(t>&J*EZVl=rUXEmQKKD@o-dixZNM5 zrg76R)S%Ynd7DSPtR%IhK5@*ObZV{HtA$nH{uyK63tP62skVckgm-+Ji0i0o1v~dg zdxLdiRg;<@sh&wR4PY12ert5gLQkW5Muv?w#x*1CT-r}WZUL|D>TGXn#wsU1%&_-*+a{L*JXDx+qAxWeKxuRh(q23S^8K8HF<-k1R3 zJ*9@TV>pzKYVA$mB+IL_WRH_fiwt?-dZ{OO_EvjlP?l>VVzz2EXo60cJl*dcM01Ute- z!Bd(SuhpPadZ8s>r7I5DEP%gzG0iE;q`aMf&xFsfjn<-F_z*3O#R#4#sAldj=hlFd zbIj9{O${e7-{f}T;3fE-KY?PXQDp&Gu5*M>YUXv#9NwGzd|^!{6Q5Hv`I2TxlFdpI zww^fXgXU@wY13jHa$@$*B4WWP0XJxvFB=Ts+~+gF`y^(5X0bz3b-TDv7@n3|eYhi^ zeB;RnQh7jqDcEY!KK3ZQ^r&PLwId}A3dV6=7#X8<##WMjDUdR|9*~GerlLWnIhJ`0 zYlGXG7%505sidZR8zf=OM9OGaeI^5dJv_yXkmM>`)s{S}OgV^nj;!ND#uiAIPIslv zULx*~H&~sn#&X2CYv_#OQhGkiwGjCrJ$P6n0|oGxZEl&F$3iOdS29{F^9QOY-=4c! zK&!T=JAcRI)SdUv=RX^my_?GhS4jj&46dT}&~)P{_ytBAF$J8##kMD~>6x5SBFHwk zC!|Xv6{&KqtK4vA;|F&a(1K9GV_a8uI}*>Lda_2ALRhp6h-IPkVJT_8qdCSp`6 z0)v2ep8YmkX?5L++O;~bxU{y#C^llOy3Ln(wKW&=4`wlKC_Odsp%wS`Pn?$-*5gB% z5Eop)P#lAUCT zwSih&>;!uq?TU8VJO#Y+_6T2k2%*Y<|I@pK6bDx%Gc+<)aM^e0cdz+eOXfLtbYMA{ zpyfdg2+&kbB~a-KEI~%>X>V->{SnpW-J^NoJk292Vi^8w$LO_ZIgO0DQNbzJ?P*KJ zIg)pKVEIb=%sD7|BZsnw#YS*SC3`x!1L45AtbK4C z7X#J+4)0(3UrC{_%BT%EI8ktS;hPWW>}@{P$0Z*~xo5#yuRHvN1Lpw{olci-iuVPr zv(b&b9vqpAG}fU}DLXb7IT6;d+PDOnmjz z8u(M8QmAXx7EZ2Ye&NblS5Px!dm=JzkuDc^dfe?{?*ADVRYA<-e)Qp zR-wX7>T3cL9_L(|m1NPq{MH6 ztF0g;HHgnS=}1Nf>2S3F#(N)_?R$TF;s4TFzsQk6@DUW(&^G6Ur8T)>I8TC|_DY}u zQpeui=)K~q=CN|bkHE)DuW?c1e|tk1@c+xmCTwGVd$TLv1XanG#?#L@Jo7-S z)Qvtmj1aqXc$q2z5ex#G&1BG+z?sEDxTQ(}3zB4YgureJLF&$3OoVwzN z={xaTr=E6V^*D8-A{m^A6yuLhEHWa}GIoIcp{ix!=lSXq1<11nyAaw}+j^k;;sBRQ zf(jpmB7EzdwDFF9eW*cjvRTe$TGA_@7e^Ncf;X?kEW*IYu1Z;o7%%sqQRU$s!ikLb)a{Ac;%#euXm;f}&Fv1pn#^?_Oc-#ncZ-Q~L0cXeZQ zpxgErr)p#ViI|kokZs6DT6w#J0bk?fB0~7IOEt`E+FzgKOR9N23%z18C^kiH)hB?S zU8}?t@^Bkf?X6BaeLJSWL)u#v=-V_`ds^bS@c;*K`JB7CKAdMFmPVEHM?8St4#!FVaQ|6$m~lQPbxNd3e6FdYWz7koE6vU= z-vP?wvsW?<2V&f@_A&H=nttEG2XZ)y*M9ANTZ+oTLfxJ1!Q7s4X@r9hJ zKJA79#T}jD*xwwLaTY-Ov^6=_5HxaNpnR>e>bbPHi9)~(g@!@KMo-{}TLvqpY}I=L z#gl2GXtHmCet@prWL~~?c{J>gigki#=lIRd(}A&en-^E0oX!?N1I|itin?mpmtO6u zptBJ)E7G%aVub5MFlk`U-jL6iireSGG7k+Ue`aCPzM#^9KP)8Uiwzj(E6&+u^a1t>SsN9d`Q!E|~q!&|2RH)0q<=kjw>h z#oVc^q^mlNVy2c-FwGzK8lSVC`9|@kSW};7m}N}qM*lWk`C$>S0cpkIj50ucgtHA! zDIX6m%RXSk8HZltOS)na1wwtV_lBC;Y>~!8*KU{L_G~2wmE%>OeWjB zQxhEnkDZ#vJ&*6lhd#9#QOz(=9lOgIOtL--)S}3W)A*EwRcmJDZGM5ci8Xmp_e8J< zQ$`NIZw;zA^SC!)m=>_%{(sv0(x@iSt!-*gYg-47t%#z?vD#YZI-r6;j#adRfC5QK z2t-9h5(XKu_90h2ANU^ri@Hs2oP)$q6A2l3`hu3Fo`AtLQH^!kniR_ugbTU z{rmm;_{my?C-<}OJzV?R`wCdz+v(rH+f6~@^l~sg@7=l2WcL2wTwa7fi)FDQ5O0rR ze4D-NjC};XQWQOSG=Ln#ztz*==ILR72W;vt|0Q!@NQ$WgoUTIpMfuknryEKb- zua$!#=#aK#Vc+#UvfU4~P77bsITy*V?PW}JMqL^7dHp8kl-()W6l#pqgG79^KW0po zp5iK1v*69s^~D#FFv>N}qq@dYaX50aJ#R*NFhLHt-6AAO|m2Vn;eoPySc& z$HaI|Co4(PczM12!@TMusTK?AD?tB~jK0@HT3>R}5zcIPA!KDjoD22iT<^|;_Wbf* zgW7S?IYJDtK-vpdgD)&HbXCo0A<2K9s5Gy4aCBsOG&tG;`o2D9fFIp{1x+P~3ZKop zq+8n%*)dTN**^Sh-KLI}=oc6WE`XybsOoPtR4!M|JUHF&te#U&9V8H=W?%j>h9vq- z+0Af^(^3hW*Q_yD$R?VS*dSJ|A^h~ux25dUM{fgHMlJ?&U=VB+8?{j#4O+3=ThcuL zVsk!CXU3q7I^h&E3c~B+Y)N{Hgn0Y>KKHft6S-J@#2>go zV}oWgf|@ULbm{jpZa8+r6V7w+?0R)@vrEKVF2F;N7Jbqrq&dN4_W1|h2F{)-_GYf1v1p|Q~=X6EOqZfeWZ@6=HJo8V%a(E5bx%*4lkg{F4rIeXHmg#iG zmtC;eCj@1CO2e#+n7tC`q2|vt4i(9#bGbT^3}k2F#!L{N{<*ZT^$xF3XHZmrSuR4% z;Br%`3S3^#`t2&y3*-nTD(DEzL@0rLWn>O zNIE|j1AL9UCtg*+%+P=yE$}f54R369s{`(XZ4uOg9j0#>&(7qe=hOBt)SQ8?fFFE` z!79}MCWiGxa4|JJ4D)v=UbJHd`_MU8m6(b+lkqCjnixWuI;Qy8#Al9p_^qWZ0X^6v z&7yCha**CGDt}+`k;}emzgcJbFxd^3nXI~?2o^bl(YBDcqo0=P><5f6^GgX zAsQ{dfQ8$if;MJ8W4-(XXJwsD3liTHUJu=l-M?B9-|yTs#};4fnJUlk9AOXI2AM4F ze%*QJ9i=K=W5Dgz95AYdij?_g2c2ob{1_tW3E1zVnAL6Xq4ma7)%ITYq0BFZgh?2? z=Q7ORnKqt0vXxgbemx5~@Yxy20tl%iu0|3t^GZrFIB&ROu1m0Zn`0bFAh1&E*{>Vu zGDKa7ldpd|^`ksa(3}m$Pd#jjuBaCCRI4>11N;sVHI_MrxNqSZ7<8yt+{|Kc68>}w zH#`++YKQ11V?%rxIf3$N1}~&vl76rkD49AhHK2D~r*wv1uV>kJk&}nu`N)4nJlHah zBM)6H%y(f2R8>^x@L2q|z1!+GGtXX)P`W90cBX=gGHJqu;p!p*bv@~=%ag;o*(R{OymyKS@7$8EQy-;2by6=Aa1D9f=$hZ(YSP zy;@GK_TJ4f3~JdzLZ7o{SQ%=_M54VSz1)+WU+bO(h>$A~rYpwG-yq@M!Lj{IV?|pp(!cyKf|HMN17DGZx$XO$> z9Kcx#L4|;j)T*9UKXP)W94mmVH&$Pzd9#>mppVs-w{$`i(pe_Ic20->gh{c6)VgZ3qwmGGrr+3Y!OlRIAVkcnSDf{ z#U^5^H8e*^8pt3?9RzSkrG{s!Xf~1E4lXdn%5#J5iol@!-;tkVn?&V1w?ex&sTOu> zM0Wn}okOKoq}s`l@e5S#tAX>z)bz`jtVM`iOW_3W{>~C!nk>Aeni{szB}7x73R@N! z3z(^BsrxMdqo>#ZuPpMd;oqC-Ilb5szRdUZ9=Af=QZh(&Pj}}XzTY?^isiVRq>bH< z65Wb)T6KYfdlA*=oD@>9g_=6A$x?u;3P-1dAZUE8XZU1xP3DHJ>S$>J)w2~kgrCB_ zoqt`>;B*X6u@SlY8VEh@1{}UQorym)zo&oi-8x~EV{l(*cmh?l8T%6RP!!M<9#1&j zIi&Iyrj9;LNpS>xsWgLJVqx;y`h#50r)g2lB5>qETJ@oIl#4}v6qw)#J`6A=Q2YHj zR0IvT0Crv-Je^YwtJSXL^JD7ILw&=`v1A%K>cx+4?cd2NIu=HcfUoiV)ne3Lp!1vA zG~TRAcf}|Rvp(wuY7ZgbAmvp=Cj7kB9|>xV?O!Ol2^sW>riH(-_E z*Kv?(oSbVUxwyL8>^mC9%KyiN1_tMcBg3Lg4{7>-^I@hiUw1I!J_on)gL~4z2Gw7FTpkU z5~ih>?A6C_k}x;Pw2j8szBj_=+ir{nwWebPmAheghNfUQ$xc-*44-Uu8(st4JUdwp zx`c$8@z%K8Av3M5Aa2ap=GVBl?&JNcHEZ}%P?P^+vL*W_eL3$p871!dzANiR>{Yy? z@cOnL-ue#3smS~qWHxr3(f1HDYg?gnuSl5?x_a*guTYsnoZkvmbd2(M(P?Ra^mTh( z^qU1`#r`_xeb5!vhEb{h%&q>g>&nK>WvVIW1gRAA>)5Tkg+f@Jjj$-XNV^p$p4nda z3v=~Nvbiq__!wTt;;6@hR@4E~nb6Y7;?zGNl0_tim^#&f9y_YC=0erK$y|gUz6UpB zxT4=|8Jq%_KT5`s&&ZRWmW}MfJmCNz*1v<@e5!8;jMeChCe^buztPr|> zn50NSmED=_3l$(~QZIV>hvAFS=^F3f8xx5`w<+h&H9+K}*<%V}T3UF_&NQ8CS%A@oPtQfV5VgpdwR zfVxamUmraTAhW-H`auEC`lKax=w;-FVpHa|fE6%WFJB2o#5i%`O$)EkAlnmt&PVfU%0x*$3Y=X-5v)TS zrp!8>2B*Af32}4$rnWq!&{z!a>QZIC_dOBFpr#LOa-njH{E_*m4%zR^F0aUE^gvDs zqwG(HwcFSpQ}5)s7L?sD`lj-a(BODjn>HU#`!TE?(-Xd_EX?lQDna$j zGj!B*m;9Q|C05E{9Ey_ffu8Fzb0zw@cV>P0=jGOeAWprTJ~3G`hm>LUN?yVLU3lwa zL-xnw|HK}m1$Z-~nUbVCal>o1W5nkPWy3i zE*y>oLhH!46-k~L$e z*B2-X+|1UkS(BOiwO1gwp+oGJB`~K}=uQIMj-|WW&?Q$5DVt&UF+4w%unR);V_BgM zh(*J{{;rIL3`z|6CQD+_gwmETx+8k?rK0R$Ui`p)BYJj#5fQ*5KD*Csse_ zZOehA&7Ox$@{QY`owE?Ot%i6E5=9tQH;PaC(v?0}e<`fP9kyvwHKqGZoj=K7H$AId zS*a5=sCDD@aFEqVK;@TcGTYR@WU}x*rR4R`mY6*+wR^BfjB(4bD_x?VTq^7#*)-|) zCt(ee*6}lE780H=s0oJWI35sD_9$P zyf+|v{v6otD65Nj+0PK)@`0!Gm&GVBlu? zo!0@!3EJn?98-->jJ&8D_pT;LHswx5THlcacW)?ZsXz_6wiT3z6vS3jVX|3V;pBle z*!9G~_>0xqeMx1cCp*{H0nuJ@v|MYJ|*3UHN zaU3q*fAukZSVZr?m==$3;K;qZK#v40iwSK%NmJ8kC?{XMw@u|fp>m+agPJ&5vMZ@6 zy4BP!zo=68s2C3X<>*5ILZ!#!gM@yWMlCyl#ddr32^B^rht_4pM)F8`^lCALuj;>z z_R2ag_*|i-2F*CsMdytP)0fwd%P6;Q=Q(Z*MFinx+{X%LqwZdiLe-*M%pP0`Tlw8AvH-wcnCzON^m?NPIl;lB1)ed-7zx z9c-0Zm9;x+3P5JBQ_znijdw@?49CucoK|CrN%6!bglMOjQTAs6@ z%U_074}+Sr*j&czj}LzC;_hlPzwyJZHPd|N-5IzDL<+jq2GN&+_$ZqJ-+=^}uc${b zat9MnwQmpTr(I=Mx<6}R#+H)-K|iDD;s){8${|s-H;?4HsO^%zD6d4&a2P6=9{h+v zKR+RNSQx0^sXdKgDfZ|5NC>{#?yV%ctZp!l>;=L9hsN;z`a02Fi$dGZ|`k zM)rxnLt`F8Sz%Vw^B?CNa4$S&cWdYdQgEeoM8d(*{$0wv4M$fYGt=aAdRE~#I(6C>Dv@=t^hIDU?@>Y5w0$Z2 zP9h_9yz82X-&Z7dNt&?2UckPbWC~;btu|+Al0mF1Fqi$5rG9K|W<&2Sdphvp%EUC^ zsk%J_sy<3H{I$0f`J`GzH4jraZS*uaGp-HWqwSQ=5THetjj3 z2zvDzCfJsSKXf1ISfm;ZT}M@_it0~7XVkgfb4T3^8`_0-r!-a%2C{Z`4sfR(*!UzX zP@8wxPCyl68f-BpWs@(=M=9We9tiGJ8DYhR~>HSi4FJ&o7yjyC` z@8|QdgWaA`%kyQ+hg5d@mQmPaGL!D?g-{VXN=|oFL>8p}jz2qYV7`I{hraphjI(V; z^uO`#u_sJB(vj{ADKH%5hYcqyIJjU@W4-RdTC2}PWWT~P$h1p1TOg&IT&1?;rVp%D zxACzM6sG52{@7@|9oy+ju?i_-q9e|_HF^ClPsdvWZY3#pP((?t+7HhHlH z@OJdeC?`EX4S1N<5THQe}i$ zlR!5|F=hiQ*$)oS+(W<8=>V>t!@Qr6pLZ8_z9;=Lf4tv6;?O2#Vv(l|<9I+YzPoF8 zKsoXo%#SWnQ4?%FpB#k90y|%XNCiz_U|#L{#3^-E{PB)v{TG-N0@Je%A>*l6R&MP>Og7C{i1pH?ch8gd~J;R^=E z!6$4NM`CJ}8Ql)PYH}+U^+EPpBYI00mSl1TQX= zt6W}M#cmBfN}k(Vm)0A+h$y1g$(lYv#=aI=aP( z-c0V2b~bAxRN=j&0vI>c-*QF=NJ5}(vS1vS1ji4bP5u4Z@^ja2AG&;P{3vt}v(;#X zzd~HQzAcZut@SARnq*rDXRP*czTK}@5|g;s?xsZ<&uM16wP&hSE)k=ut`!;K*{n1- zxJmNwOYX{^_Y{U92`EB1%V1_D!V47#twrgti;`!Zp>+MUERWp zp2SS>${HA?B!CKLgW#OL`EQ>8*U(C9zpE$WgKX8a#yo1g*R*YfHnStqI(LtIIz3NYJ?(eIXEqoGi{ z+-m2QnoBU!048PqP~i5IqrotCMag~EFPi5kiu;}%-9I2i$Kb$ z(`LOzjIbuGTNc_4(5Ek{j~y^1r|q@U2d}$FXa<~EZg49-IArFy=zCIR3R;Jovw=|V z?tpj1br#+v+eFYZ!NMgC!|H(Z^OLP5eENi!LwK*P?idOen!Ps{bv=S(Ib=vqPXw_j zw}0rB6t&zWecgv&1v0O21ON*6+sOfRQn5c??-{pAtb<;$u4ws%$&C#nR9kThD{OYr zJYi-h$r|-Z=p*tO|BihV>&J@L#anc@_%a7WD$^3@K-{1^Yz9CyU`x!EFybnuXUtT- z{k)<1vCa!*XA_tQ1^N+|o**M+#-{W^*<_t)HpDEFW&VUb3J;2XY_H$slzD3!$xNY+ zO>a5~Yf`%BXiVZtj-4&lM0Itgq{$saBp`gO{+sUst)?@;Is;WEO3M4F%I>tc3JEnl zDq7Roz#9`QCKg%poe|{qeane37Ej=Il86t{Ini%4I>q3$@204C!e3 zfq0M2O+opbi!3yvN2%H%iglidkd_S%aAruGO0Y+A|FT7)wiuAjbv#5NGCXn zd(O&mDqu|4lcsN;d1>P_y+G@4XG`;@l)mCob!Fv8CZw<4+BxX$X1_i5jNF2`J9}e- zKEn2X@fdZ}A_x}oDqmI^x(3_JqdH_mY2*ri?I>S^s3DK=$rVntoGMuhi)j<;v96Z< zim#Z~0|6yYaG8-psRZ$vkZKVVJ-LoEe^x5jj!pn<#kao5sbBFbE~Pekw=c8jlog%W z*V@tKGAV6$;^<(sb5>)lbf>d(wp@6tWV)H~p5U5k!3Cr-+LQ9}ij3t;i{r?5rDmj7EAc+GiTK0o*;X9%0CJ&3x}N*f z!0v)l@?*X-U~KncwA-%{V5cJ&M)_d?^&h2BTmZSXm$XZh}U8@`~TB9U;GQMZ(uZ@o@gHme}oHu zW449TlFj`R<`c2-@Q!A-CdvSYf z^e5C)k!ID=Bac}}@Mvar1qFiPwfrVnR~akKDeHbAzY8TPE_DTBp+A$a3HCXx2!ygN z;_2!VgfMNp$F>afn02g<+I{ZR?2rCSMk}wbWJ=?n+Jui+B=(ty z1AHU6`5%Wy8wC3=0`d1yQ`$_lO_bGHM;eiV?x z=97a`DidFMJK%}pobA{5pn|B{dDE?PIX>Y#>_FVv4Gw$3V_3}}-& zsNsSO><24S@aIC^pJ=!bMZ>r0dsY4|ghH??_iIp!6WYRDGt1E`JUX$*!1y#DFnrqb*~fBM4o{h zB){%*0yWTn#c?Jf`p7ZbU8gGtkH!1k=4~BPd~fgX)7eb+^yX?*KS7~)F?b-seb^~L z7lB+?-;Em4;L}qCUj!<)kK2lx^fFDyW-&e`r3pk}bZOae@w3{`_M9oDIA{i+BJ&wO zx5**S3e-qf+{7BrV`vjO5(u)%j|*tQZdoO1K)8J;Z1rEFC;#WP33>_7yz_ zotERDvqR8Awld3Vfifux6yDsByas00T<7kzI(BLnbZ8t%4ZOXO`R09zq&s*pT4&71 zRjb+bCOLm$UqCSB+Y?S?vX_kchVmuM&T$7E*Af%LLEZ0>*`T4HQ**etp?RI;Wa!7Q z>d!N|AM55$IjlHk7_>RdbF9}np;h|$Pckz9z4V2=jm#(O$(w`GQU{@Le02o0wx@_+ z=v3ZvdoA=H`GiT2qdfl)8YvYT{r=yN0|LeZV^sFQ!Ny`{hQW@7x98PRvb6T zegJv>H~C>uGMJv}c;Y!uTc65p9EKxTVG*!u48CJ1B;L8KA}A6vEPlDI3F<-V9u^c* zc&uE*p#7d>2PGL{cr2mfMEp%taGkhnEiM5)69h2oQg`))8Qlh9SrPUv1_iCqQIA0*F%IWs3c5;; zuM`Ak>Ovht1z?pu7B}3Ck~*4p!2c>*$KC#DVywVdEPB*>?4*FX?B2m8`(Bn_UcuFo zVCnPe+AMy)h*=)yP4@GVpicE%yg%r{mm*L~y;dWCc0BYso$G&C1hvK@?$|)jla>5J z8RgV^5cSP#El7i{q>P>*=)T`?kI(m0kE z>#)!Mx;OMr5y;|^bPLfw`|WTKYODoZZ#k1vl2=*jyZOld+6*Y>TSsjawb*s0>u7OW zUPm`;2d5+;B&~IMCu%KL<;#kWO^4FE(?loGpTgH*9Z*m=Ed9LYM#K!K$V#GQ^S3G8 zdj+}Vq_7i!l^r~GXP}W&tTHu!X!6vwbV-A9NkBF`!eX~XaS@Or%F)icRQ?Q!a4+JkDb=Xwlu<@VGzkK-7F;|y4KZuV1DMw z(c($<;_H~z=?k)UU|yLc22$f6xbUM9Gh{>N%onHPFWNBLFC%IL(cH@5q&9X-x}b3a z#-z?^yE7HvhmDeRDATf+3uvKwchnx+n|Fv?c~FK8XDQdoBIWPF9U69 z&TUCd8QI|*!11`Eb|$~jbO}K7rsV7sWi)g_w_~|+{253sc)TIpgnUhLaNZwrbH54b zHt0SLnT!%RSvK8&=*kOwf-xMQuu|VLs1^cVlJ~r!$iPOIM$;5~KtgLy_2a#9FnPM= z9r9peGWbsBa`ud9FD=6fwt-P7wra=rOxu>8m85bz1mVYVa%UUu^RECz`&aT~-jCxe?B6Q7F9|8IGw50E}{x6n^Gsq$h?^(Wlm@U_l`(It)tin+lvOd@xEMfDuk9Nsu@1+ z#8CM1;tZ`O8JX{%)x_kz=XrWvGCbmOzxG=wv^*luyJ&(*pO{3CUph!1^j)Js+*PuK zXNtNz4Ywu`Wt2v%?l52FzC7)bJlaLO)7hN+FbCf(4Q~GXoEK*R+2h!RP16Fv)|0jkO9p;+U>r1bEiLn7n)HEUWI#K{TCrJ0Sj(To^1YJ5}YjW7!7I~den`F&27 zY$)b|W~|LEm*U4y8ym4b*`-58T`_zw$355G8bAIGrPXypB~Fw;`-gB`UW+I5@(IDd zl)wZWYEyw~awuG6?*(;weus@N!4_=viN{+?o5Y*KTYv~|nTj5)nmB{%y~R5+qENT& z~(7uJxzBM?8wk{C+^vo}U@eM}B)FiZFfyhBkq~M0~jjAwJ z`l~vCKi#Gg;}*UHNp)gnl%6i=9a(Ms)oQ)T{OaVlnZWEB%`#yy`*?t(pJpyT@haqJ zIOM>LO1hZPLJV0(z}9G*tN-bUslL24LNk|D^6D$o`31UtN3yen&{#mxUg=0J0^Q<{ z1A!3Eo6c74z}3voPC|uAI(z;fTmGBz0VT8d?sohBmE2{*wcJrCGdDUKx#}g)SeM5L z=}4Jb(SJ>vt&8|m8(=zjg){%8D>&M!0`{kFf+J2#`}khx2LtKrhh#!RTAB#?h)7f7mjJBawe)?QFju#}_+RTG$zOH>a(S{^>+*H_hPmHxH}!>wz+v@%@X+ra zQL(hnbKM&Y->RtN|JIn|;K2nb{o2qdW@poxGI!W?32l@<%M zVTgnwDuj?7k|-FEFvN;L8KXdw0s<;RBw-FAkdW|hdwxB~^MAei{yzObo&AL?aIyEZ zp0(C}-)pUB=f~r|N4IP=+h}BDv<30?R{=&w?|x%swBen1-iCg2N1}Zb`tceu;OHSE zUhnoP=);@DLkQ$M(3SSisUM7tJ~cvo^(8W?czPtH-}X$(*aRh#r#4OnG2tju-P_(- zN5Tbv`zYx9h<%?fm`*_29-_P8A-z=r- z#GJmFFmd-+GXF;14gbm-0*b>_x>lw+s5-iL%KSa6qSmE9pV|bi;-A-8?Lve5Ykz*a zFb90}&A&cPpL*@1KmT&q_rHID_Ts-=@**Jq8w`J>#eak0zrpZdu>3D3{s9L6|6^kO zN{rthk2W$gR3AKcnEFg{fZP=wyWgHbeReU5NPX6-UpwRbfzgH7FJJo?efhhZb6g3Up0hKPX*(w5WN~wPmfPNuXZ(Tn8Z0> z2<^v+r4^zgV{Qk+I72u_$l+X2Pw+)l)ayo%{jUGH=SD_1b6@`-xt8|2#UmtBAu`NZ z`ccy+PvrA0Frr_qKFP=!ENHOmh)aKnlE8+8m>de`&5K$^ zG^c1+RyK~lV{`$&>Cb2}GP+Rm;mv>U*W-idMi$tVwK~dP#Nz0PUg_P%07BGb^7W_QwEs(7h6$ zk69e6j+-S^t59K{gw25kVkk*@RxTE$I}lh(V_LQS2BW)-!asNCg?{Wei(&^hlt95xgGk0-xJ7X&+^lt=343PCRc2TE&MlG*dR;Yzf31 zT)LBU)Uu&kVv;=9GoENT38}*yukyy)Ct)Xn^$uFP6=G55L19?cn<@9yjh_n~m$GZU zaW{)|t%l=DHp3FOgJCck`&fq8$*jO=lW}%n)o3$r=sBY`?9DxXMQ4;5NK?#>u z7yRdgD4AVigMQL};2y_5onqUVa<1wvRQs)u;8~$FVvV3@>cv)tDpr!ezHIpMS9Ut@ zT(CBAW8iQ!_pKnpnCii%nu-&tXM9y78`Ry8tPvJtqs@*o+EFOAZC2ks^k;g!}NzTBTLT&nyAPLb9rwldLlFz%Y9FJl6)0x{P#oJ{eyGO18CU z=zrp!%^LB)^X$Vmv-R`QoK0w%NwYm-@u{9dwMt&R28Pa2=A)Y(jf@)p#2)C;)Bgfd zgh64_M6+5=r6^0RIxbE@S>}vl_)s@1zd-EI0-EUox~?e*+zyBZ+o2X!4CZWr`QITZM6VP*=5^@DrQejf_%X_3*nm zJbY=?WG5nBjsh*zr?p!V)S?z2>M5b)7U2b0Rbms)6nvEU8fQwXmi!dB%_hi>`D+ex^Lfo0e|N$r&?jfD$qBt5><& z5TJcDY(lkKe=f6xFx8JzY*p{k81zO#?{Qn8uya*!)!_(jO(8DL9kD;?zKyaz4j2!> z{o2DC!s1>>tH_txAeu}mKl0Zh z*GIqX`jFR6{)qa!IGb2_lP`5`T%?C`$T`-~Zq+ff;Do3iMRh2W){aq66>;)lF~D!G zqDog_)&ragdW(CWt&}%_p+2F4zZC?^IhVtwc4(jQl5GJxd3|ZUxiF0celA@&Va@OL z9tj5@03Iuya35-;`mhM%$b~fo_1TECXd#*m0ePDIWpoVqA1Zuoe~Fa?h5dS~NK*!p zYs@+e;v9EamO@ zff*k5*X3Fzis2A`r!P~MSIzD$Z8tJXBE8y6dEt~dmKlZyc(K*$p4c^ih}(G(SY3bn zSWE8Eg!OL4zoV-)rxc^rh!R72bNg6o+Xj=`w(%$RME1D1b3$y)XG#_HS6n^A42YW=hf~C zH_N5WGv~aiYtI`X%-$XVW1j)o@0#?3A57QdVF7W#nSu_<#To|$YU18D9%Zq40kLdd2pa-$DZ~>G7or_n!GR5e}P0k2Uv%LmVD8AI~ldkY$hBabRFbgZ?d`?OaYG>8&M-G!mB8$M2B)2e`-p-TD z1cCmA6EhlehPwE$>{h`OP>$@y+&43(@#mzp-Y9TMQX6gGv`$Z1miUZlR%<8)R>`Uk zl9AC${0mj`Ki9t)?5?I5rMpqY0AlgE)(#@)x=*C|zn%34%Ca-W5>FO*EGv}k z>BN9n>Q^Dj6_L*89h9s-iT9$0iAf`Iyg2DTl0ShR6%#07UG93;rX}2YM5%gTnj}aM z>*x$3x|MM5!7wBNXA|l$16MEvUml?emg_d2nlOa)K#8Oa z{uE9x>*X;Ah--ru6l1GXI}y}y?7)w!u893-2^H6S&3X8Sl8R>S8S1G*&gU?USBTsW zOPW&L#B4+ZztG_x>y0rEz`KN=h_H!D(i~rlbrIwRm$8 z8!ct#!F*w}Y1q{DKGgG6dmLwG<&xHo$Jx9*nX7rj=q~HMl1+{n*6bUG-ps(+t$!noMZc zrMQoKn%*{+0jt`zgC>8m!jyO&q;5^pCm^XZ9u8qSGvIi*-7ttT&#fX#s%yEm?bmGr zT1G5)B6`If4_Gv*=RhJ`vC6g(l5G+D#}b(!0g1xg@fwSr?UOVjU6lKfBs}{!z?gF5 z2bhWTCzowd(aOHqq$)yz9mW>8k4`OWPAF7X^bZA2XKZ%=#!V`}UAmr3eKx~tk1fU5 zmVN+1pxdVZDOgsB@&|B%Mk7MP*_!2XbP{QGRn#3mrxCBKzpIGW{(3gl*27G<^UaLa zmS%$O9eS^rYDHLI8>^K*WftR~NInys+Y`t~3-@L!TCs=uk!J1TW18P(62JG21J{50 zX8q%yG#pXnvE5-Qv$B8SiYR3?&<>s$eC2N2;pmL<3C-q=SZ(b7C6K2Yp(#V!yTW*> zonoliAg>t)HVL5&y8lYGy+Ryc%uN=lH$gz0{;UQla*fdw(+T7z(#PQRZMC1uyrPb3 zrP6&C_&8rsTF=%0#BIZ*r<`k?)iWse3XI==Y!RPEDgE2&14*yu>LD+kni=~;}}wR}?$rpN4HA1oeF;=%gThCGQs|19P%gjS2Fk-2!>TimI0!|lqo zvJL9lv6WAaj2b_GS?2u-_VXBxtogWvjnh80--*a>U;jH|e}X4o5jT(r(QoWP0(<6W zF~mQsb}jWb{^LOtAc+eOEI&ah`s!x|>L%l^4A^Xd&Ndktw z^YLa%Oo82LQqrFO5Foe4T~! z6{lpAM0Hrv79%5m!K*6mG=;@j(9~37`h<>Z#UGK%f@Fc3H(b|l+j`H9?L=H=;sg4Z z%Z)WtXPSBXeoV||VUjY+Cv=7}3F5a9BsXgNWrTy01t!CV=^f0D!kSwyrH>_6zAts9 z473ww598_*niTtd$Snr1nC7l?_3ghC2Pd0r+s?Yz-SQ3zwd<(LF&PMx^HR<2nl1^) z)EDcN7(X0>+PM7O720F;EBBb~vRoIqK93qZMs3ug^NX@ET-T+9!adQjtT`)08@mnn zU2qH96jVYrylO2==y$m)5f(`{G#Y-7QCNfm<#ze(GeSiODIbEjdQd2JN+c0D8FnpF zG4K3v(r~-ZPC2A8*SWxA8n=t-#I03r=ao_EY3Ic-dviZ$oj3nrVVM z*^T|WbV8M?JcGIeNzaH^O3!@dxj@53TpHbK^@(Qmg~Gd3aa|dx)E+?WHwO>FFgAgv zWu0HJEKqM%u7=4hCwT!S1!pZKkI(ajK@}Dbjg_gS%Y^ADG3JU{g_+1!UK$@=YxfNX zM21c_&s?-PPBgQhdw}~j3#0O))%vpJh1ySOnbLE~zdaz%xT4x?JxcFaWBY>jF5B_5 zT@S?58c{Nmp_F7W5Y#jS*W`7Gg_*BnVg4gp`tk|tGZtlK6M{M(31$pl(97pcnJo zkc|T@p_cHmQW(v-Az}Uu;{!uN#XUfnC*aA`eN#kpC}%c7XEA==1|3N8ZLv0$LaH)M z9L5?lZik<5%ndeSG!GM>C(`kDvF?&^XwM~UmRtW+I{$7XHSUM&FF{=ad-8$;N|V|#O)6!hU@7U&f%-s1<;@@;8yT-5VS=_3ug z;Rit}_!wrc8?p+;HI z|53LV3RGx&80!Y81$JvWqaO6{KUZY+NxQRhg}DPZHed)c|CX)vR|U1x6c@$|TI;#oW07-m~YO00q zO{+FOEH4)xf!PCh%~)m(;}cmWC9bhRr_gIA_OOIId0jp<%q9f2B=ib-_GD~JJ0;8B ze6YXV1Cr*PRlJ=-bi={p*kqJ*pBrHg#)AYx6gFMZG|Zt30`4oEZ#ADi?mwuiRQf(H@A0Efp)UswWj za==_y3*^#;UL-i`T|%)iK)`k9wehDE5@C8V=(?SUqqjH?Tn$7CjP+F$0mcmjb=owk z>&;T!5?L|7PkJ!Sk0jEyltEfBLtVJ`5M}+M!*=FXL3eYQ*|=nBSnRjzFlh{AGL=&U za?Zf*9w1HV8oz+AJm1py77GdBgO!(+s{zf5fC2WhjN3fwx)<}Et0bYx>W0+%FpAN3 zT@lRM3P`+YpxwJw3&-<$-VgBy63y|`C#6sY?UKM%1n}u?W}>|$MhjzCR963WR$QTq z`7=qsAU|I^w|?K9ph*JeD2b)1q71bz8lzTp?Z<#&BbWp3>n$mh%$uaNVyk5R`K|X~ zsI^zRCkCfg@~sigD<}wd!?J)F#e={CB8|^W--W2=0#}A?e$F39%4K$8St_Xvr?~?j zD;edV9C!lqEN92~s;M_oi5n`0opW_IIBq-W;X};lUS@X!v`l2}1T%5abq|b3z{rT9 zQl@;s9=23t2Y_7(TpIe|ri23nDq20G#_kjCMHi^{>w8A8O_>xXyvGq+9?T+%N<~w) zxl1cw2*?Wt5kzL{OCo@!8ys6vtmi{kb+k0kcfDrxIQNynJXXtC{l&&#f6tG+0}+S$ zmATp5w6J^6?vX{0%N-yCo#Xm|}tM5bw(#qOA(p^V1=@<_S zo+9VW>Ya-GdR+j-D|VlOUEc8ko~{@oDO_a{X|(Fgw|Zk~E{V+?%aU7jHR?O(i?s{n zbzc0ILU?IcUp}|XFf><}umF*p>`{qUMc1CdJV8stDOk13_Sn?kaC1>!Esuv^pJ6qB z^rle~@G>`6519Xf*%xBFG$Mz|xwRhg4nz#!&YA-a7s653sS5H4T0yqG`K=*e(t0@US}zOq^9jr^sckSJq^j=BrfPm|*ZlU#M3mmdAfv?78&PfP zlfgvuTAq(N-nVN??RI27~foT(PpxLJM_9hs0xc_7s=WQ_2|W&8D=N=P~yj zF#)LLDR0EdV%6+Q!R?U`WBon z4BNmJwR1aB{lBlzQn;^64>X~4L~DB6MDwy(uO5(Is;bYnC+5@J>~Q9FX3k?|&D!2{RzWYq{;dOAahKg)Yw5ab08He0=m!*oiMd~L06u3D7wj!htHOm zcAe|@ymc68E+x;b^P=3rdeI&Jc}A-4W2hyx<&`a=Kun_B)ZDt_;EO3DTzh9D>0KPg z3)NNc<=Zl!PCXSGOBj9+jArv$ZS`$ghx2b%)MxV(G2L{|p?n<}oYijTYy$jX<_B5W z;C!P@$2+|xgWk1IcB*!u<}#auY+s|;Oa@x4p3}EK>2XaA&94ea zmF>4o4Wn^{zuiu_WMdDFh8XzuJCYSu{rf&BlQA#q-otZ=ui*>fRl4mwT{0|ZBA#JE zCrw8!h1K#ROBxQrNX^RqG%hC~JXY*2s|b*@1`bw{Weag*y@+U<%VrcT9j#4<#f)D5 zY4}liMl3y~@5`#~ZQ){Wjy+7SM#|I!)zPpk*Xsya&P<#lnqr4?r^#WnS}^8ZBE=Xg zuQ&gzye=3`;Rd~?SHiVNsL!5UM4u9rHq+0lVg2f*<%oFdsqNaG8^r3|q!9eKl6t3l zFWYy_Xy{_c*c`?Euub1dyH2tU9ZmgVn|{u2`t%HWR8s<3B=~;HZNv(3Ik|U;Luk=3&+J+na;2`<^0g`D<#?P z43bNf@~t46XBds)e$4(hU99iF()0k#ptz+Er`YK~$j%5~FMl#3svLG(d1BSEE!J>~ z`fLwn#ZTc8I5{S*^nOt1yr%8XVrK7XXxo#7jvmEq;ylPF1{8|yzHhtG(` z&HlQU0XZS2W$jDM7+hDk1(DLtJVm18eTT!u!e(-q4pTH#o0H;;X)}w}x;K==mcxYS z1WOIrMda{uoDaU(VxU+KA)0_9Jh!dl7^a^tO|hT^{BCLZy@w-^$FJ762soJb zuHux2B|nqVrgbrX9r;#Ok>TC;tr`){Dmgw>ysp(jT=2mwhne=P_vFg4`SleIuv?)G z_GF#l4)r-^7hVQWZYj*QQU>I+u5opY^X-Pm$N7kq6WG;P`cDun$M(f5S4HY9G! zg(i0MP!I56Vlzg=awhnoP>5PkTJE@QlX!n z1do}=G^CNVl);8vYzTG9caC3JfAsz*b5{>XMD*+pc*7dD?foL;rq|z$e)IN6T4U{I zZNTfdW1=s;jXwL%>DNA_kNCjA`!dq3zruLfafvRe0ib5V+A$(p&TfyG^s+~{57)uRJVCjdv(j1SRdX!%$eIEF*1Ad=m+*EFpcYPI5;#27gCdwt}nhgg^(WgQcL(n=G=9E zaW3M2t_y{Q`VPw!^Qo4j*yc|BQRY*1xg&cB*&Gq%*WF#k4wir@Mx5HEI@70VZY_*i zbOfkeMq%%nQDqehsG+p13RG7I5`Ou~OfVx?XUSNdOMPNg4`{jUgksci?0~pFbQ)N3 zND^>6QyAn=?p#|5BOjCpj;zb+cjuVpC9{&cD1k|&xn*@}*2d64enBd-e#vZs`&&GW zf39#Nian~WCw|CBcG}#!oMiarZIu>P)cC!6z5@<(sIiCZy&W7}uz26;y#P8gr*BMubZ~c3 z&P-iRE%}k#>Z6GHK7gzq#2;k818~GN;Z{EVBbT#Hjid+EV`|WUq6&)(eTd#6shGUu zpU;j9aL3QXq~#p}Aw7c}S$UlFjXuJMg2`Dii$JkRi}oL)7tOlsj>a|hIB_=D?)G2m zBeI(*yKcR0%13_O1(G}$Y%Gwnrt-AeaVMHbjPAGYZjaTe^_g~RK-xisFv(s06RCSsQkT__LzAMVUyL&pv(qo@P z4Qu?GZXoNZhqw6erHnIMl9PYJ$mR*^!LdC>jYDd!14VxkzRrMrQ^qiCa&XW+{t^D- zRMpz-OCy&T_FhPR2@mH}6%Q}T^9)m#l+%%s)~QpS#teF4NGvwf%n3{I8o?>Aqv^;~ z3Xe#kaQTZGFF*pn>_r-I!4?g%og_yjl{Z#S<@Ty(++y@YEpM2o^A;-3dwA3}@iCXG z&?W`29rhQS-Uom-FJYv_Q2xQ?s+?YAnW6_5ICz?Vaap&L#lw&`bZ8gt9cn6Od^Aco zey%AV`5G zHjfi8|2tG)SZVa=gO`-pSm63N14l0$Y;n-{q&Mt$s3~qL$ZMEmD8n5byn6^fhw)BD zwBobPP()M74MW&)y?~P@ur=HoC_fZf)c627G(Cl$slT`6NceW)=q)K@b*zf#_5Mc#c{56?+Guw;*Ps^XFu?zaJ<)9giM4{N}C6 zXX5kSgLX&OH8f{_8n1s7*GK%N?6(w)5P6$n*Cpnuqc;>2p?)Gggdx+Ct(39_2r<0T zO}>I{kY(uy|2l$KdmFHUT0fD7S6HZ4w6acNPgE-e<$3x$r1h_N3kdME=LH&USM_B0 z@H9mOcOtN3~2@EhXW4(`Do*8nVaWwW=uc8+CG-rq8b50J@ z&E6D@;(gMix2>UJI(=;gK4_pke#Y(e(d`eIUfK8Z6-Z$QPvtepqkp*8zrHlq7#kVM+GY=n?u1ZWse;m=D+B;}Hv-i{YEM*TWYF|CLC8vl zKX&muN&FA!0$KqTVl+xbWMqcEoNcdP%i4N%$Xk@~VRZ`XU5?wr`BpJO!U;r3*fY-~ zDw|^L)MvS?#VyN^#19u6@F4|_7htE%E1Q=+w8XD7>>YbU-wq+lc464p^1FUC33RDy zCpqH25(Z?0KwZ}}Vp>Jc6uQ6uy-Qye? z>GbTV$ITQMo2jyLk5sY^M>sI~Yc*Tpn0$iW`$bS|MG+AeXS}1Yfv<0irnDyxG!+&` z1j5)UCHP%7Uzw*-e7E%*J2>nS6rBtR+L_O#GXf)f3iZXVDYjtcZ}FA(3qXMrLhL|y4xd6nsfn)T4QrII{wnAP3+`~syl zqi(Nf6~3K5`TLg85!sJz7AG%=PA^!``Vq{lrIjYJgc1Nvrca0U@ zc7h!E$mIX>?MvOnvE%F0Vhf0;24~&J-jlE=CG0ORv5MDXmjf3w^VlEf`!FjJt*mW) z#|ir0sjKX42}lF`j#$EH^3T!9y|*b7Wxy51Hhx@I%cWRnxX7~61GwV)x*5YcD&5?) z6wLHRz`$LxYIO7g%2DMgAx3iRnCULqMyjW$*LXF5cZ8_Ug>gDme3-DUn-h>*`el$m zhmFl&3LBm_z4@hQ6}hCRdTXO`N;yJoulYJ;3T=adVfIjiH{`c>Ry;@hk7d3aPC4dW zReNQ2;v%d0Ma-@(za+0-MDTy;=atLJX;bxOl%??v5IR#)c{jk@NG37|-=hp5E$$EU zk7nEa0E;hyuN?JOALq&-@zwX)#$(Ey5_IZ}4iHvX_rs76_uKFD0lh-hdjIdy8&Ni) zrrg0D0P`|8Cvb($Ie7f?$)?q?aO8DGmUK?Q9j;e2uMOFH*8Ia1j8hQ7T9}h)okt&N z4C`kE&Kb-EY)IC1`jUD?y9cXQ$j&7nka&$h0Uh4ru$-2+^Et+7?^|lK8z+NwUux1I z=Flm{km!2YKL@$3r{+aoK52kXXc%1>+wziUUs!(5?_80z$F(zZx@Tghw$ryiu{pN#Qyo>2Oc zwu~|SELTsM-rmbTYx-6t`%FJSAGi*7bou)i(&>H2Z4QTMR71Dx+&EvGu2#nJ>eG5! z9up-AHv}V!J6@<(M#~XdChQ~AYW%i%J|@xid3{ok%^6#F9dWt?=lw}l?-!AM^=2PL z>}iVnW!Wpm&PNma;TPVne6U=SH(_&eE*32EWLMqS-OxOV=Vpit(a*d9=B%Uw+ms;q zq(LyK4DoMNfIfl_LO@4aHiSy?Pffv|woQKO)}81)#c_FaZHl^31Wr4CB#NZ-ZjZ^8 zuBBy9nKzIYzEvbXBFlSZx6Scp_x3mZBRD_pG^BDMsT^IdwnDJVH_ky!M7*piAN($BUQRsfx-|?vKLI1I*!Hb9(8wPMQIiC zaj_CP*B&!2UXR2fsXWv+V=k!o&J^nYWdv)awYre(A z;seO|mi%Sin={w?0#(#N2J(A6XyqeGSqr7i!5!^!Js$zK_9%(|OJWL%W6JmG0lhrQ z;Aj$gk0~zIVQ*ETMsqYn-M+0HqDq^A@NKmXVQ?_Or|KLeiE?{Jlzx z$e!G#(&gk7RbNo&rNY83EWfmOYvBBm!nrxIUhgufP5UFrXLIcTeUd8eaGLTK<=v_2 z`=T(1&Dv@o$J{r!PTdqgWOL749Q0Hl02b?)OTX9n@X)^8*A zVNY(>KVZhkgr>8^-Q59eUSl1FIR~G6pVU4DWHc6DWe=NpD)U{~QeK|=(C-6Z?RR}Y zk9(g?RhF$cj+Qev@6{dx(iZkMyE#3-f>f0=b`5N;p=UdjKLM3;6X$wD7W&Y`t=wa{ z-}}UWZxe596B{|{pFO!M^g&ak^nkVUlW9|g1L|n!uwVf4BUBN71 zEqF@~R4w~g;ewL!ob{=_n7l@_|HJ+F{r>i^Ccz8$|9?<#<<|{Zmmy;;EtAo(EtBf= zi%*~5lo|owl*D0-4(kZpDAU6=IRqPAemP^dD0Z)(vj?y?P-5dp<}GTI_ zTm*ts-+tB=2SDeq^chnfyj5dgsz*%XURBKM_qUK*;EDmU=0?c>D024i>TAN65*0sZcIf!vX~Tcas1_>XIy zD$kOx0y%v{Ud!^Ik&Ge2mhpi5ab-LK>b1Qf07?4_SkY?JDO0F*l9_xvTN*<$X+^7U zZ3AjzSWUbMO@xnlj~5P|>Lh7+x}Zp|m7@5!j&MBuko8Yz>eCn4VwTFXxD^knm~*(7 z@co6;|D&~#)?=#g(AQa{n%YD)9l3%SEYI^ztHD#2H}*eh{~m?Oj*Ty1g@9J<)H0i;iY(!H(`oD@{d8m%*mZHYu$Ir=VaZ7C9v=@?r_Oq| zmvu7nl5#By^&01SW3f6+)i%^9`y&5Wq&%}V#(8VXF`UAqMyhD#q|9G=_9fupE*p(s zs65ZymAy(V)Y$7?Fm4OVX*-DYN80~zc>2q)|GdKQ>p^z8wPZ@s z+TU+f?le`U1O!MrW15mAJ%nShWZN^G>OgK!g@j zS1&Vp6XQ3=Z*NO8><$P9i4&lpM_4GtmBfypuF!Sbgj$z`yKFpBq06D%zk(x{eHRq= zIqd^nSA2M6WXtnmjAvDdWqm}0z7Ir2Lk)BrC6dz&pHFKIUJ;(vLC`@cMH6GXbkBGq6 zx_jffC9@O}y^J#nI~wh+=Iz2{wa&49Z1A2>@XI#9n}TEV*2s8XwK@VfYm>pOjPTsV z!Ea=QXKRkkg=Bpm+=y?x>asBuA^wzvQ}%FjdLWeJX%G=r8q1vjMbHOk?i|b!jeD}f zkUS83%51|}X-w0NQ$D2fSN9+20djfBkh&Kfx0I)x+JLev$xW zS=>@ZEoVbPe2mXRBU0Npzw0{^z!pl2pISKbY~4Ax(TClBJ1|6hJ*c{z;vCv_)Vhip z%M1u|8~Z{>B-mW^jJ|Fok`yU0?$Y?+oFZ~*Pb*Yt9Xz-YweQ24`WKCu*>C@>6}@yxJPk3%M;kmO*sB#l@H3SPKu;;y71@DyYK+z zKcta0G0E(+h#cLq*wX5scDY{Xq)EbKMp~+7f|~MR_uZXEb&fjXVCmKw%|gGUaJ*jUnK!kbpsuAX-f-Vkq4J zHZr@@7WBpp*GX|Hrh77vB@=nxm0tnm^+!9P&P6V&_VUPKxL-S0G1Sk6pompL$hwGX z+JRvW6iFO*30WbntVfYuWn*Juq?z|Ee`G@z7~=@C`X+ITF<-s?ta>P?whSxD&R$YK zVgB&**zd`SZ7Iv+gdxRq{(&2B99~H6ow{jO&>n~zuL}76xuj+nAzBYNKRCPvGV~kB z&HoPt4^xkuG(C1a#s5m8u->Tzz1ZIk+@>Jam8O;qoWG;r*IRSfFVw_?azk?n> z;P$X$-PvJ|aps{PgzSq|zwg9B^Zfs3xKq|LuorCx;fqs~6P$`p{})~6kbw8_u1PTb zZ&4n-$nO1Fb0B()2hM{m#&NdZTzssyDavKe66>CZ%ZF>Bq0S}c{QQfd)2RFM`4IAj zF9BQA;>-X)A123(5!I@=KQLRt~2}Mn)3dq4pXf9m|8FJo$^xPDmnF?VNLzaO51Nv>+gZ zbM2nUelHHw!g%^(vPv-Rv=yqJ@j($@67Kd(6?r5RuLD~={Ki(3^^^6z9CX`VjVct|Tr`N~72=AQUXzqwY_k=jwX+yjtI;Eafl|hn-FX)s(r;(Oz z^6gn?=x&zgIWrSOm|S()$)JI{?9AXGebY?t*7nPbzww<@zo>ftx}Qby)xkY~bRe_; zGS3SWEh-1f@Ad!8@9D0}0=JnrngL7x#|hZm(BOoIufvw%ouEhS9wWnnuZd?l~mvQJ4l0kxs81oq6xvb`jc^LQZO7W+}s zb+#{-?bX7bg(#D$TkuHQ-G!{7r_>g&c?2xFc*k%E`L(!`59qc(?irCQ&VA1F0sgwK<)rabc}JRWhDR zIX!o{hzFZ}lw)Ej9;3*iV{k_2;D4>$({yZEHZ?gKzt`Zp)&8Jl*77yAf>i#f=}l9h zybAu1kAiEGjX__Sg#9-E@62fuxZ1@y?EzG#)ZK1!bf`J=1C_d!Jz0J)Kz&c5qj}6O z4Q)E64w~2lG-x~Cu;jlU6XFzh`lri@;lt-PHU(?mE-;to8e`)6go zf7R>cc@WF7K<3>nxFN+yM8dp+={qxnC$gUA5Bj@!6KQ4P3CIz&O&GmFLvrD4&#yk2 zR%N>bZ#(fA5Wh9OF-gBGHqn5_T`e3e_X5sfXnaREDweoe7dd5mbA{ zi*^sgUe()@c5!!|40tcS6U4)^l-}id%yqPZNoZf$_38bDzHP8z^s+6}rYA(3V%i}k zwh6|WXVNld5i_na%CCX~ro3Xgg37Y!wefqoJ<{4T1~K*1Zy_e1FM8<}sz2iVKV~X~ zr`;C;Cu7jUR#3L`+s=d}0EF><)U)a`>QTxJDm@IwUOmU`2l|FY4-Vv4?*NME_+u@n zJ$F}3Nm%GS9t=Z>wmGpSy@zM_kDyODqJiX^95McoAPy8v6;y)(Jq|%Gsrej>#>o7| zBm8C&vnfAI{KZip0{iIhOM-NC7n&wSA}jl}E=QSrdVjJ3rhU(+-@miuO1B-CV!(!( z1f)#Z5LERLSGF&xtk-n6ZBtu9)kI8(!P4)O-ZTdj4s@9OERAKb7_k6fWHje5TkM3V z59?()mnS~30CKfG_y(I_^K?6#>%g-x%Cq*Jd|+ZwGraOZUKpb%H9ly>Qo+_efy-KG zT$O(+vS$xMV3Ec{m~x+5gKl4G5PSMp3TmX!U|?Qa!)^&OiXSxbe(PRbe|e7J@}v0C zYpDZ`Af}L1gd805%)FKyp}b>b8k*R|A~9?TUk%*RKD;@qF3wqQUr9sudKJv#Lu)-g z^1ebivS@Qe7JSk0kOR+nzlFAXa*NW72BTziXJv#S)977gm{OgCe#zwpXI&V3=`G(s zy!)R3_5ob`tBKxHAKTNtH)_3dr#1hx324FRkpP(dD_BJ1pfyhcB=v0xs4(P1R?ey% zCF~*fR*&^jem_v+C7%lkSOur%^krW~NW78WPw+$#rdxU6nW(*+IOe9&(;JRl-`zSy zHgJ1mYxrMuLY@2D5@Rz)RV4@`;1o67?Lg%r4_6Bk_&X&n2(uBTJVR3qEZ$fRs7rJ7 z{_s|THTUlrX*RDZtSfsX>K5FoOei?3JJyt9%T$CcmvUc5_8TY}jDR1unxgjIVL#T@PG}xD|2cjK1b_J3J~k8#}yMbdf&y+&g?B z3mP)YrqFzYHK$swN!eTGPQJ#V-~NNCQSE=#YfI`XVIl=vmOe-t+=B^ui#xG%Dc;^aea9`R{c3}p=%!Tfo07jjymYS)cwi$;kByXS zIQ2P{W^n<-csj*yh};N&yFwkir7g|B4RlXGat_0HZN_>{@xBpkchj=(t{@JDa&G-L z%|E>6bRq{jZ#KN&B3mWQnG#2 zZVHj^P!2ge+kcY$7p3V4sN(;35~;_Oum>Ho>Ta+zNFw8SJulC$8gnKuPN4kF{x}8)g`X2 zv|T~ZNcRBj^x5GKxNGN(M4_E|<_@RanOB*}f?}JOU|;z3-P$t52 zuW1Q-;X42xrhA_wtG%q0qdDRt=rD=TTehUa0FBCcQ1+oU>rAs?lx*uy7Vg2Bn^v6) z-Uukir)YQ}gwW@H+F-_n@Or~J?{}43yz6cF|A(+Q4@)}T`^RTFGo7g^XG*gy^US2V zrA~{QE7M{IrsjgULS<@-N~M^Jz|6F3>V%@XPbw}f;%+WLn>wzP3gljHq=<$H2nhZ@ z&2v4!)12pfb@;=pKkO>*`@OziulM_=H~)i@brBlrlzQ-RP)&!#KcJ~ZJo7Fz#=M2J zhB|ONq}6^8&oJYI@N5n8U#@=58BT3cSH_j1bGmww=WHrZbNbO^pv{mF{-_*aTwGxr z9lgEXi)dq{iTx~q%1~y9*gYAniA14E5aazc!_V_6d8v&Ya)*bDGK<>Li9#rvJ>nJ| z!%DMr4||-HHn<;p`VQH}>G3l#@iFUmZ)uwEPDfc_nF&nO@80E;&S|yoKcF>hDgF=os4$gUp%KpqEUT)W~Rx%3(=C%!vP2pSX=I&xrHvZvnuMx#B^il3l zC9e9H^C;5>n*$Q+d%W=Mm6fq?fjdTg{(qX0kE{UItcP131&kfF(b3ddTeX+8*iOmZ z=J>A!P-UKpH>b&E<3)OyMIdJhU1^`_5HW(e6|oC?B3Ffy57J;|bMij~QPgPjB(qHx zfqfwY-b1V#M)ZLGC~=BRzDvAKn`4SFFB3c>YOhUAZ?gcPrGBw0Mmz%RQXhix?7<=B zkz!ABw+qY!0&@l%Mx9QL_$C?bU9LIr@91l19_l3eLy9Q454oN|VZrt$FZkSil7+my z@q2N+mP|9enyeCtqWlV2O;KFTZfM=xdkE{if`V@qP2Gspe*iMXC$Nt;Uwtt6zw=1} z3+s!$fYeR-4g|Da{T>e2Za{p4r6%5uchvrEahD`9cvr&_$IJUH;1VH5o%sF)_a}wD zgiG=9*|#RR2djYigczfuc0sEaaI~ZHF<`v@w1iqPd6JxwUgXW}#;N~MHOP^#7$nl0 z8D1n{HdNbe$hq)Ui~uVYPGo;^9FgoT;O{KHt96Uq`YOBuZ;WsvLX>rJd)a%C%g#>J z$nmdrDN;(Gt>I>$LpLToC@vxh5=JuN5-z$rEIBb6O7a&&1SMzc9U`4>Jc7t!Nts!yL~@z)a8juN4sT~6Ls09(94#5#S9ts>P>f#JOJ8f z&R!p8wm5#k9dIA7@%eDye~)mUK=}fQKNh7N;7ixVI2GUC?x)X)rJpPi!hyi2e*b|- zG+uCikhqfFdVs*IEE{%l2184W72YkXXZ%rT4}mV8#<{(~p&nf;4kglxeJ$gPke=U| z&QcqsoQ7)y#om((?QHf9HmsG7HI5V_=6#AINO%6|^%jQOMELeRM4Oo`A;SDQX$0mKC>|v z1t=)3@p>^MBY)J7lx)GX9ToRKwA}yozB@tc2RS(o8?ueooSf7f>PEO$DL9;T0|F~Q z31|nLk|VsuCw%zXmYCysq|6zsx$t9}V&bCDqf*Mk3Tqf7aO`C*>skKt}do5+r(ORxClF zVD`yrAakXQm6I`JX%XHux(+N(lT;hg)zQWbg;zal&fd;VtlG;PSZdvz-I(2*HRor} z#C>f{lff7k?S$FI<+p=(O8$FgZYCMmm;l76+8Yy1&gss>Zt@D|(C_PdA&&tCZ(l|7 zkYlo+4n4t3I-Ts|=P5F=>$ZkiQAI&}Jlc69A9t zx*wfDdZMM%A@37%x4StY-f_x%#s%J$%PRZPwZ=KqI{_{xhJEN2EaV`Gv`_1nA+#RA zo4tDHm7PbGfTS-oquZs>1qgAnms5o)+<|Ce-+?{_Epka_N{F3`{yTajY}^XaheS@-7@NB2LT(f*N;i92 z(|4!l?a_T-?9m;N3cCf7mjveaSKBj7bov^ya z;(98*ElZ1YGq%1l9u-x2b^fuNFT}S7F`f7IDT%4YM$Oqn;)n^yVdZf*#zdw*;JScFV}%Suw5&gJ>F1KWdao^ zduuk%-Bkbze}*kzmuu6 z1L(f0Vz~U61M6)sFEMc{gqqQ*Ar!mdqw$JoJqT@+izLnEsG+9%(`FZpFShGI+sG}W z@p@Uc#M`c%jYIELe_{(77EE$T_P)k@0K_YnnILZbYxHtm=Tpd2+b!JMjpgAK_YDo; zZ}ESPBcD2Y5Py+X^@EeH@mBbqk!X86^h3sB;tKUG6ND^&K4Iz^@;*HcA`z0zp-FhX zAMXuODS?)k=mxs66_FN6f6k4u$1%EO1BBNkNQ^Wc@`e`a)FSrhRpqR6yk*G{&feLw zqsX>^2p=v@kWh-SEyK4R;`SbFcsS@&yZxNl8IC|PRx27ovF*_0Z2G*tZt zb%a=%aY_MLakTQZL~$CQQKX?$1|TVw-Zi-g=+LcQ^bGH|ZnB{(SiBnGqIeiio^Xbc zPZ8&kd5Dc?ommA{Z+Q?j9jRRN!6tF0>J*=sESaHcP~<^Qk6REDj9zbI(Zi442rk?TO(e)iVDWW4iZ>EziICDuMtzPUL?0Om~ zdzm#IlaKd?AzKC4Nt~gg0(pVD$Q?UV*U8*i9OK1ZeQU>*3{V2`>+LSUw>W@b3R-p_ zz@L16g{HhW4&{>`g*EEXH(EFnuTU&xuQcjRK) z6r$p3v$W3K^u~-1()BhYD+iAsDDqr)E50NAR&{9u$tcAsfqE$~Z=*F@#iUP&f8-7u zA{4tgWj~G((RhpN%ngePaWlwKvSHO&0;3#ISzpUrx7k=6;BQDLWGp-_A+I}FoJtRF zSxInXXY&ugbFj6O*hFv3_>fzdoj*0x5-`J%O#o@MXq|(2ea;^2UAy2}heBDabJNsZ zM`WPaR}p)mIVSM*k-P<$@f24;E?ZeK=A8^Hr(!;@3}N+`lA&ED_Qbs>vyi9b$(E{; zc$M*jKbY?F7HpW=mqRB-V)2?)fPexZH#v;xT10#m&cc{R@#$NN2=sWH{2Mg$Y4N`R zDx7o$%@Yo+SvU1AG{8zCrIz{mYdY43@QxM_DA_{mC#)u~&C_z5VcbKyWz!^2d$>qG zXb{>6$5`Xt5QRz;N05kL?I7W|jw@nDqujA=69QL}CAMCSWKkN@jn#SgWKmpnckR;E z_c7+|Bvlcp{DY$Wy~am-SN}@Ge*;0yR@BO6pq>oVQ*FUqt1KYzoSlUdD@!6gqXarb ze|U1^-v9QhVZp-~V`i+SRp3pF$Ze7w7k8X8LCn`;qeGpPvAtyvyGU$3j)|+3i~UCyPqXkyy-SruZ_jIOMZ6$=bh}u_pmD z@+}+N-31w1*o1KT>ED?z2UlmyGr5RA7aTqShri4qR)*gxe;##RKlKQI>Zl+Ec6I%n zYKyfKA|e;XS`|L+tBHW2;s4Bl0x74pVEsJ}3 zQyo%MjEO+A62C4}C8%^wj|h5d3b`P@Hex|%Kv7CaGxWoY$nBIu!4)BL!p(6BjU~xd zDZU~K?y7uk09qjH!2~P5$kJ6s&Wy7SI|k52if5eW16T(^54^|X=Y6qe*xl|((~%|r zlj#8*lr6W5RblDQ@5vsUa!5$D`D+fv;iCcCzZ~Xo!p?w8xoww@e%n>M;x@g@$yEDk z*(@}*?Aq#%TdvI|ef8j_x z;_4Zv@5x~J&_8P#Fw(#-1~d@7;}a3aqQxCf*a6fHgERR*k)U0ZPSi-N$f`_ zE_Dh>QQfyd2UP!fTar@i-}B1i7=TRu{7GOc<&>o{y3SRzydHIT!P_SRtVJ@iF|bU& z_9D|C2znKDb%4^Obr_?n2(dUX5#5{D(^*z#bi>L7tB?DC?+XQSlg+n>Q@|nQ01Hc} zKuQHr;!`Ut|IAEkyXe{Ifenv_CqY_WSp63UTr0mT>-KIyAL>46ro6}(bgCb`E>CBa zp|OuS#Ysv#deVA{MeL-@@yPHrdCvr0z8VI=<%_ey_&&XN&AQqR2baS6*@EG@MB&M4 ztQ(GHJmJOZ&27g}D>az-d~g1MdTfdz6oyTF_A17av^W>2u?nvoR&Nw8ja5EB6m;a`aR0 z<_?Ut#iJ8HaO&A)ukj@Yb12jT6ykbJZ|*8Z%m;!3YE;> zH%KoV%-fn5L%sytgfwTvMy;87dA8Ud; zPld*y>Pu-pb4m&Ub|ZYN4gwenLBHZcNds+H?XR5|9c;<5OusZdiJROIt=DK5SdmX^ zX;Bjs0nL9AlFV9vLYMH_*v?@|;*wGN@S9Gydm+GshD#FQ3-YXZ{AwG#7v4~7Gd%3M zu!3KVZgb3vZlWODF-f%dJeKmw^6c_J4C}N^IF?d1PfzTYE-fP4l4yy3mv(0*LpA># zs0}JtMMUw-)srV*9Z8pcc$Vjrv#V`R9UdVinUQrN@x-p3_ zQthu*&5V{LBdqIqq&eCFh9^{D{?(iXhFGsIDpE4k_a^S#c^=AWuOhDp{w4GEWM(s=3y%<&kN-vfz)nD#k+#yV!e12mF8NckaJX?C7w=(HQbz0_m z3R-IBr5{A-c6g1(8yiiJN8dR-4E@k&T6~i1G}|sAKf2WFVlJN?;`yL^uRAl0`tR-a zj9tA~ArsY3Sk3hlbLt7&j#g=PZHU7Oz~+h!;8Jz-=Q{S;hTO9-0bg5Hh`= zK_IrXv1H6{iH@ZKv34pqF>2wTXLIS9WeuGUuA(RFPIZnUAvM`UU{b zIpWp8*tr83x z`pXt|@#c8UTb`Oi%ce;8Kr7rBSAfC17~S=Fb|PB}--X#w06_3Q)i|xHm`~wnDO-xO zTxI@rDh!X0k=k^;(!QQBhm22f`cM|XfqlCAyGGODoa?PsXF8gNP>kTlHL>2I-91GU z<$ySGGsT2?bSK>zs5Lv~T@%0<1fugFWM6|x1dy}}_Yg}~COkzp%8G`DKaum@HK(Fv zIx)&Ls>#sUw7>D!3Kw47KA^G*$|Np~v(rs{zjg2G?Qg=79lsIm)H2iaR;KogEc-He zrTZons_1AeKA^BVCP*+*mz6E{SOn*qw@fdjZMNb(3D`|ufYA`2kJq%^ssl=jnt3=X17bj8Dhx{9$5rE)IHqP zN^^QuVTp&XbwR}Bfu*4yca44~5T68sG7$h*8ihFked>ig+7e>{@UQN?mX_1{g|*3N zqof3{2uCKnCA(DQAMBW#&5%wp6$c2dF?QyXOJ@qShQZg#u$eyZ@r)41*1_Zn;a&-!P6K_W%mDsKG6 zJ2}@oilqLWeDk~CHg7)qo%sn(j~{f-m0JDwbN<}{ljwm1HNkd`JM8w^9hny8rFM5_mbViXa!FTCI8BMe!*WJQ|odqIOZ}%cQR-+pH7XW3Y?{Id+Z=L z_ARbW7N>fdI8T1Dd3}xRzarf*fJXRJBA_f8wc#Ld2aFF?V^5aWf%^8{=TlGz0rX zG4Nr~Z{nYGYRh{(`y(z1-v9Ja$~e);s>L8A{A-dlt>;ysdhzx2B-a8Md#X8lw)xsR z>yL21gAiZNt?4xqy&7s)%Ykt`pRI0aw zSLWbqej5}-hQlD?Be#+juXaVReBnL)<+mybq5gG)zyeXPGe|+bjsxV}nQ6lH3kXgM zG=yrWg_p$eCq92a`OwC@2lPfv?a}!?pH^`VVxKh$XD5bb3`4U#&yxT%3EeSSt-m1E%Us>Sr@?}unp_MON zWowlg+S$d=EK^PpImNkOvZAj(P16Hq>Z6gS$1Q>R6u(1Z7E$4Ek&V2THWWXs^=iT; z;rv!p8?${Qj4+rme|p!EZbb0c-HoiI;ltj}TTFd)dr@ZyTzGY2{OWD}aK9)sjoT-| z1N}^`rs$)}#+?OgCDo!kPx~#N|Izr`S38}0xMAbT(s&0Zvuye5i?Z&=$6RG7&MT{i zy2nlF6yb)=Q5y>ba64BIUH7nuqza8m`>Ugg{4dAjSyhoqhY&_Ow!j{kjhK8-(hMm- zyt|}p@UV|@-0{J9VuVqK7~(+G7xvTsg_aYD>26s*NKdK1r-M&-Yn*V3tY5h&Ez*uw z784E(JSiG(q>iuoLmI_{i%+=q%;gx7SlruT>hmCZgcljj*MK8|9c6n#H5f$Fc-fVt zr&U4nme#{_MfzZDje^_Ka0uQKNw1S;^*t2?sFntnL#9K9$0n}6BEyyN>6SrVckWNC zR-MXnS**>lc%i78cdZBM1%J`)@tt`0P6TQPJ$N3HA-?F|);ZcmWxgJX5y_I)5%Uio zEYvfJdje#)RLzs4%Rg-Q1>7qAqh%t0g_^&6)v99LYhG@&H9_^~MmScJej@mhNy6Bf zI$+Jk%9n7f+yv?6Hb!F+!H$ctBH_xzB799HBwg3 z1_itdANR#lR^y)HCNlKR_Kdp0mvb@SL@co@Wi|~HwvQRLp4@9z%;UKI^dvOA!QV%i zzZXKN8mq@Nm5*Nv8mK>^1?-ir>5yHypD?VKkfg4`C<;3t*MKGlJ!^C8r*E*=bpqJ^ zV~qhDmumI^dGQzL|ICX=K02iLyA<6nbQ64@s-O;*(oy1JnH%lQx%{5&k&#lAeSmJc za>m94GMMZQ%7+l77E2IhQls!edHHby+*uv>ZqJ zt#pp0fX(41zDe=j*2t1tb%oA-km;>;y!cY`h0h>V=ui*tTcTluaLHxM9+?b(e0nlK zE#6wgUl8x)u05BghaAK^hA8%xJF8K(%Kpq+#$?x)3&67IoO1fMxF~Enr2#OC>i^U( z^xyq=L;NK89g@zhs$Vl7H7a_b&uN+09>xnT4J{7NRu~QYy*j4j;)iYtijWF6ffh&A z?rSi^B7(kyq-yzheOfEt2;71$HwrQJ31Od|l^5!V`y%R7_E=b0!n-}kreDsz9C1}l zz(;j^&Phy_YbH)BmGO*jo_~xWrb%?$*6h?)&)AC0wy&XSLiC2%CpuA)raOs!R^>1u zkt9Y6hB_VJ3$F8I24HQs#r1+6qZ{vyM;)6lBj2?h+*}tiXW%vY=r-0W5mGuAM{C=+AAJy zM1cpq*tj!FthCASj8-=vU(wuC1C|uwVsh<`rsxM%N#rcriEHBCcNV!)%NR*U6Xct#>2bvKI0w@p8MR)vc?Kz zzlJI3;cgr(v=sb^$`W2EttjIZa|IW#qU0NfQAi~{sCGMd3qAisySwK<$&LFTAx!pV z%#{Wp$A?V>8x+svlvp#;+D%8(zVP-YtoXWLn?~c9MZVVx^7YUZ$;cMBEflDOWYzj| zv$|G){?8t0aAl=r0P0Y4h;f+|*V!p05GN@CBcjk(iu@GBGE#cNyBot4b_Nr}FHHNm zhg7C@b}#?_ESc}gxXXzbxfuGyjfnfKq8zL@F3|#I&5Qnm^K-i73DfiK{CGj3L1Qj4 z3ehqit{!=HNq02FG-|vqtyRSkO^cGOZ0e7Wk0mnrezz?Gt7R92DUQb;>w{a0;mdge z!!Gb=5cSAW>3w<-9N^49Lw(p&|MBPV&a(gmi313w%ZWGzYN5`VKrX&HtLz+{y7{Le zr)$pFxqEQIQ{oSm*m@0{gwSC0GlVz|riZ&j0+bLdmW&cgX9uDudg?q2IVPMGcVShO zcB^wV<44P;?Oyj9GW#1h73INlawoQ&!>&wQxxuoSH*L*nYbQDfIFEb7e>mvxbuyKI z#5I&A@IjNCn)f+W|M+^vSXn_!NgwOz5%vp6(B^H4rq06aN5ZiSFTTf|zs}h+$Suw+dv5t&|kgywO_?oSxiUupRAzBN$Bt3w`j^aoh5{xG$6yo{$WhHXcU zHw0t#5EHfE=j9;k8jDOK=cMhF7AdB&!2O50NW^2ZC2r&;b10)0ySqYfeM`U%>??{c zUd>*n*jAyGTcDzL>e`P!ktiR~cv{bN>v`3)Dm&&o#O(;-lRwtBK3|LxE2)d<BotWS%GyR3|HnT^|^XTPNOf==2L_Qwo&X!b?i! za3I1=dUmoIcUcTybXyYj8ww4LKnkoom|)J>_y(whmVoLV*tC#GDAmRZIrI7eAvQ6$ z_V3rw{yMN@`#)0Ar2`8>`#eufuGdF7i^yGr#nAQG^ATl?QsFZ%%|E_od$+S*qw<84 zM)~U43+wfPePGo>3ZYc691kbd`(wd`A&n!fj?F$@$a7IKyv}MJ?_57u;yfL8o;XDYj)4FU3;r7KC20}Q2)vl{cabeZN=%=>^_xBuz zgokoSWugU7_-lU$Lk{4S!;W(c+003ofWH0g3w7IE3wwM5BMt`6(j=$R5rI!1ahh+F zh}ApiYm4}tst6t;nm#P206u-=PGd(|nP@JY(r@W9C^L~Zp-e6ftK+Fx)sgmWUUmHd zXXzfTm=QW({pg?}`$rf?4>o=;8TP_$MDS!<&(gQBsP%RvP zz+CwMslogY>p`f8wDrOG#nz(V^@CXP2j~0R$!krrE~M9UUuv!AE8pG~amdTlK-SlMb~t&_*5YviZ4lhUMwS?}wm8nB|zn^GHXVRR}C; zYL1PRznn{o3XxO=(QkpBPPTpG)dgO>iA#)3C6*`R(?T=nM0f zGcVc&fPs)aTtGi=<`oJA3X_?2AmR0W{`v2gS`P-#Jvh3rCx z3EHbi2Xa5+7HLa%VYa@6p;cu|KV5JzilFLlIV0Akn9{P#17xeYgsL-y+>SI2PDhUi z$=|Ol{NdINOETmnKUki);4>1@8c)Q2GqK>gVn}RS@anP{YYju%GEgz^!WtVp=%X04 zF}OwA5><}g&EF+X$M9;NH4rDS1r2qrdoiZJ%7rimkiDLqQU%-LYgYL! zclY?yB8+@$Oh{?On%GE5Z76%*=&PC9U(| z5A?AccS<6)=sy2~z+oos>aDoJ(;8jLPVJ^Ht~(kGKo;#+H=2~;wm8TG$HI=bz02o-810Whorz4g=M`yN^{Iax`iMlBr!6D*v-e{LCx-`r_jvZLe;4 zl+MK}LT>!FeHS4HT+utSbwh{$|g_M*1EN*#ZcQ!9Bgtg2MYBK_lutJb| z1*_`F8RXeKh~L=$g-fWGCYFMMNa9M@=g^~$BED#-yDEOANeJI`2VS211^0mv;hPUJ z-H81O5~vh1#|_PhUMFvEcbR<@zQqkUH#KiNR+ z6g_jHj|xnE%n~>3_=M5}qpW5+x|Kc?!1OD*GFz?%LcJFd!ZNN6JtWL#L!#CX)7?q> z8t&omHK776^GeyF$SPi85?!dvJP2+PKj~QD$KiCjR%v{4M9jay{%9X)M5yR$7HeBf zk@(9!<)VANCD({E>A_Tc8qecat+3`7OYGT_4i}gxkW4=$zY(r#?#(VNx0MJcj@1K8 z?RvI&h#J2g8EPi8z6mz_AtE$@ST%^XTW%_>Ig~EbL5!Y&z2Rm3uNHu?8c~zSnrooR z_PR|@-(t_!0=gCA??> ztE$nhq#A{W=z)@bNll-}+-rdjJy~CW3?G@Pt~ZVYdwTS8npAK~Ph<7CVPPYh=Y_~) zbCwI@+PJgCTBFR_1_z!r%Yj#moF@6LgU*kp9JGYDwKUaZ*5^c~gi^LcJ#Y3|p-MfL z4CC+>&&sL4qs7GiAKdSMmN$GjnE&~_`M8{JYhUk1jb-bPyvFxjqe#d)FamOaPbrm6~ zha#Xt-`BO`Tv4<9h^Xt-H;)_-M~}C3R%6rX6`~zkje)c_BcBXc+%DU^p6&^O3WHOv z{k%vL%i??&m4T{et=8zm>rqv8)G2{#=)CN)7ws|!-l#L|gh$2ktmfz{2h(8e+d7{o z3rbokAhUjA^U2;Tp!X-=@OeJ2z55jKmY*-jXtQhk##Y=uq%-b9GCmLWRmoy==~FMa z;BQQwo_4u-hWr0!Vwnz1E+^{MNrD}3PaZMx?|JV20ZmwggFTyCf@3Im2&J2xJw&xz zQs_0D?#4RZW%~f=9iw2<{By8pUq;9oc$`j>+NNqgDedG6|4n)4$Ua@~Jic8dhfHpS z1T+2Yky_K=qP-e*8q*x!3FnX&IER||+kH_Pi*BgVt9oq`CwSm!%%n}e535#VOe$@Y zCKtf4G*RI`3%xUhot6~T;zs%5rWktID03#JZQ(0wHllWlgG%avyF5w)G(r8=pLC;Q zb-&>sbaTWoR7`HromfGkgeAndH;+` zI1>@**AKPa4EK1p!dnpBKj9-i>&=p;C^Zcg4+r^LUpl@0L!x}K_eX$^FAs@5KB;c?>H?agGpMTdOoD z6#Rr-bZl*Y#hF+Vm6kt^4ou9}566efj8s_gfM_amh|N4nSl#59cxhAd=2?UC4%0IpNjigP)hJ0!grrh2DA3;BVm{%)8u1t9i zRou3Q)ez|Va+`MEA^4Go{Q55D`Q&!Sakt=9;uU| z9?T^+O)77*!tES+jWs+sD=G0t=;5#vK*#l_?UTr;*%E$ZQ&x)NDN2UN=v9(6zbZeY z>6F&pDDVxANU|I10v29VBQmR3$`X%qNk?_-hF+tBHTFG$JlIrWl|8M*!w5tDlNR7a zDHe2j)B+bsh~4;=n7gEu3nsE(r|o#J9G0FVX?C`a4PDReW%UotjKtH_V-fZpk713L znep3158FJU`)|!oqq@(bukA6Y6k}S<3qUk`o0PQS?C+A~Ser@^F(Ud+Z_pwPhvxQM4LAOywJh_mGrcTLnI z@vn?$O*D>$@4C2c&^FrwlV9h491v%SZXQr7_J>;r1D&x5sAU z#=Kx`xfz7Sn&aGA?Wx(=B~y%QWNX08{I8RjF7SvF2qE_Ab#~hTdSFytWz0OPT zUqyrYQ`3dTlk1`(8F`ynZRVGLtP^|E?ZN?W!fd}}RhjlU3%L$=mO?p(q1LLLd?@=>H zy7HHpiY9$9CY$L+SY6UcV(H@F9*J9D3IY$jx|cedaNC$v`a`mhqfbPV`VjAGzay{A zEsbyG3QvJmcrM2*HSzbsP9N&kNXL|H_aPmn1-E~huT&exQQs3gBVc2rE>PRc`NM zt^>v)hz7*aD}|pl2dk@MF3@RBZma{ZO-^pmnhc_n&ysz9idZjtXPrQ~t3^lq_v#>h zuKq^oj(1ypb*c5VZg+sYv7ebS*$Z-m-FIN{XkJZfL453nwgI?Rsh6eC5Hs{1=nEHd zeuP*h7bpbobjFQGKs)3e$?H37*86ai$zS+Nx`)0qw5oZ0Y!ZR}9%Zh3KSkD4ayNv3 z9lEeyyvScNA$v+|#xp!7{bd<7Q#A?Ikdz%P^-!b50lVNi85K7r$X4O(HaR})E{~W- z2(K?HO75%}8&%3eG??(B6i|g962)!Dw!Y#1HNNyF>67sxY7VcE^MC^oyN@~_Z?%I% zA%jz#vdGy^alJojXbnd1Cq>ZUHBCh)%; z0k;5Ptk~--VnQis#X%b}H;<_ZWA(O1e07rUOuqFZOiDj^j=wZ}&}YZf|51uKjd9DI6gh;P!MctT%6kXC%@_#^BQC zq$XJ7#B}htxby=~KOCGZ?LsaqTOZ!QZ;pRljnRnP)0d+AxEL_y*^<%58E<0Aw>t&9 zebmlFO^eY{!NK+k?SCP2{JozH30@mL8wr3rt0r4a!7XuJTin9^vvtH?9>=<+s5Okc zon?Z5zh_^1pbagUSQ9^MX+Xc6I!md!VtGFp?0N5M+fFS~`ILyXmq>ohzM>DdO?Zza zlnze?0qAhiM)gh%f(X>LLV#X+Rg>BbVd#gyD;Ln1x+J<)*6vD*(d~pO@+uB3FrYoH zY88~@`{^z7M0(YT^EKn;%gl$s$qs-CSuUmt4rhEa6q)IwQ?>k&J8!&3z(VetnpV|463RkoT9U?->Oa7syMGkFq9{6du3+~_o zIIlY^yV`TC)lCMoLm7Dttt@0-WJMX$Ax;-em+BlV*_{!&-{DkE2>yi0o&~A^? z+L+wXx3X2Fs%C6O!Nr+pG@k-Wj2O8(exIXdU&{jBqoy|fD>_Z6hAmG@1lXvE%ubon z!X?!)RNnL0ex5n-n@Iq=cC6@Q1@Y)ur~0jcP>NTVWCO8aEimco0p{fpzFd}abj|%` zgHW1XyiY#hrNbi51i#KkL+%}#&U3)I4kv~8bR0IoonW)BXo4(vfdtmLc~czuWoMT$ zuJ}qKYk*Pq_AQWf)#^fWJ108@j^6oab3gm2XYCHul`PZ+0j>CoU8eVj~c434vLxxqr8^ z^+UzbFWPbQF9Z1BAAfIG=cf2-+!QJRJx^CvU{4)I4$ibyoU=?&eDCRgE@?yH`5{iK?bE4OPN@&a5B6 zBjZ@0yd2rVb|G-bx5SN^dJAf<%!W{}$`3U{Ni7lWSa&0!ln}7h&m9id&3?c zV3*v}fuZQ)!CRn|4j$9;XJRsFMst>a@hdtm#HnUj?F9Dhw;Ju)B>kf}pX)sIL6nyN zpQ5zCQOfyiQ!YRcRiu6#lC6HXJejwb9vs@8mOTYE06E56RYrZ?&Jxpc^}w3&o(wlQ zS*PtL@u;i0)Az{t<23F1i`%Z^cK5*KuX;ND+Q%XqYQ4h*sG~_SLE$=svyshDEVa@6QBr>L#G4xlBmbv z3-x!kWNy<59svV0ZMD#sn@KP12g-`I1iNfOD^T#j(_4nZ!sm8?v|xj*KYt7Y+b8mD z)WtTY51BJ%0S4e@Q6IsRP>-5KsKgsPxA0j_)ndb#a8v`T>n z4`|>fWeXWB1-P|?Uu%eQ+(LH_vaRvYZu5p>7pM5ZGc}tp=J7+W1X}1807$=pzR7!*_r3Hw!3tR6cV6 z54fulK5>c%%S{ST?@arDkPcD|3@ltotCt^ir^{JNdTtqQ!Pjd=Y>y=--CU%5#BR>} z&8rTrXK^xojvnAd%>?9iMW}l%Sy37%@1vaw_4sN-u)hU>HAY9VFYJcWE`^j|K%0Pb z`$98p)S%(a>Zwvz%VD0C>( zF4-4-x7*LYNn`<~quMdPw@HZUThtEjPe`FnAmjWfy-nQ;+5~jlO{SkhBKn&*L}7>w zeeCF_LI5@%Y=zO26a= zG+WKscw4AH&yuJ39BaAuH2I8;tDV^wn#e#!~cmypQkbVDxEnF_%3#Voa;Mf~Ph{rLvsc+6zjsAbJQ*N$YqPw`EyP8Haa z*=Tejm4`WgaG%SmmWai>vMA~;jtJ|vpehY-I17l2!aMnwwQ2>h5BB?u_&+BiK9(ka zc7_0F#Q@P%V`C2Z_dshrv+SWpIHKF<1eqKR4yPVS6_sE1jRNMjW#`I*8(cN1#T5Ph4AopB#`F0YsVm z`l|aGLRNurBTPM<4!HN;*D->m4dE#248c(~4|q0C%?Fji(%iApR#IFerYgy<+sBd| z`m?{a#}C(tY{mhwLZF9nBdnI=4@ZTYj?%{pm+Kiz-*cvtAy*yj> zPhT^}FKCWwa7z9@2de8Mh$Ae|YlqWM_^7(^n7Ph6(9P0tKWbL^Zqu*(8zO)SnJ@QJ z0tQ=rx~1O-yT!37+KUcnMlT!!%sJ*i*QWmM#*>0T@)!WkD8#G)HM`!r)Q#Yj5pi!j z^sX)UC|=Wva(HJ=q#eXJq}KpC>6RflYSUr^GO#!g#pp%|I<4z;mcQ4kn2I_3%II!- zx6b6GYkvUU-2iN8=yQAFc7=1ot%Vt&Az*LZ*hDBrC`gF>F}m!ckFm!V)9DjB7Kk9x zZu{)EMlG+D2$&|T7-&E#utv`vX!4Z6B13TUNLF>(Z0#`z;_=F}Juuf?ZZCvY%X?}H z?^?oMWf$)MaGzJ;pK{<|COP;nGlO9FpNoSINHpi`Z_Ft-7jD>s04KI*#IYSWQ%$c zTs<>OS>Si(lYt7y!oP1_(MH_fGYr~ypWv%m0~r~rK5FAcTFt=xNeLd_;)`h&UNU#m z2cD07BLB}P;yzZRe1?NzQJgZ?`s6rJ0`T!mgb7(>Qm-bX)aaNiT%XvL5Z-HwRbir% zeR1eaddJmBbB|w=S9~ZW{qP{EUe2I&Y%vhgA0K~2%MO(g@fCHtgmYG z=Ssc{rPui)bIr}UFTWiG23Z0cyk{#y<$^a2Re{qCvCSHC)L(=|9TG>`(f9mMY`XPt zaoS)0`8P{lXI)Eb$&60Q&?BPgw=k-|Bt;de{1sE_P3{lr%n_tViBRD)XFF- zDr0(z!%+$-;Y|nuQjLHl280+OK!~SSpeUedKoLk4nKH_dAXB16h!6$^k^o_-1V~K? z2r+>W0^is6_SSQ5Z~uVrbN3HC%bK)a z?yI*ZF&z3L|6%tX9OphC=s!CsT4)poZjuHFO06pod9Ew^L_H?zkS9Kjux9j%PJnZg zfBaV_XyI7w%7qfh3d;S~P6NlXdZT!sr1%RH&QA8OBR*|HpOV1J-I#!|beYp)&3O~+ zvMG6O-NK=mLRGd^z)dlFfad6SlPJkIIL9KL@_chHUQB@JTueSM_4;9L)8+{*)_sRF zYxfs3QoQ5WCE}~dQ+I7LgJyPIb7CGkz~cFa-u*JYBr?-x&9`84OUxH#)+@!W*jw!T zmz1xAGp|H#0d>>U3a2lC38-^u1ax-vc;)rLoR9*}GT#iC!IEa8#g;#~3W! zJku)6!q5pnMRHtk?A+$*UZo;@T9v&1RCb22cpW9bE&slQC<-Wx9lq8(&Ro4wQu-w_ za`E%lx;8)#>Xe(8<0W_*dJbQLL|58&I0sGR-O z0d-SKThaVl6qs>%T=$nJu4_u%1k%>W$V*wEr!-WGpet8v>jpoNq*M=^9emP`czjF4)y`8V#Jh%yp3kt;xP42hAJ08E0 z2Kaww>mOQaCPXYNq=@4cl^9sH$4X#Cn`g`Z5ONlrpJz$MiMUo05Kn!HnE*MN`K!*9 zPIY#W__lCPG8TOX>PEKU7FLt``oojh)JJ7b|45&_BLrQw3~3;Zo(LpsA>fun z=?;Q$oA)vVcFe39exsh&8w)kN?AQBU@0PeZiO<8xpvZR5<&%oQb0<=|8h>z#vpy~q zRWv#Hfru@QJ3Jp6myx9FY~6b+x;EvgOlE}qkkOCA6yzB`d*JhNhs5QY?KPLh<_Zg6Y=jB0Z;uP`0CLVAm>fQ^6Mn) z<10P!K{y+m6KMNLy8}Ay-J{oRp!rkVPM9-!A%d}h(fFJPaWOtQee1Z%R)4e2Bmeva-PROI zE$%LS+cxdcu6LNGRm7+W)LO|2NOO z{DbaJHu*@-8xax&t;=)Sfmakg%QqhQ=ysp*nY~M#g_34_uUwW;?mu+CX1WvTG<07H z=?(l?iACwZ+xhCr3xbq7uiD&Xc=IhkRR4FkxFO_6EkcCI8{WCF>3h!~Jm*4YH(lv0 zhLSHjV_IWHHB%HcDdxzqOiE~0ExXCvFt?gYyUSi&EDU4#4QTC7oaXH~ z5h%UFR0!_gZh%O}H??VQe3zRYqO7TRzV#)#CDAuo>K!PucsiX0DQgWM72E~GxYq~% zv)#zQtx`(&P+c^qg8ya{6@(CNkcI8Xdn{K-V4{_2OXjSB&bmV9f}lT0PD9gaZSCL8 zPxBP>k1+CE?;rQSi|gofGz8h6KJuRJ1eojE(?2V|`;jOW&~6O4J5|gbnHm1n7LuuP z@H?veRP=yR161X6OCQt#+#d1rq3DJOqHEIL`><;p*}M0`mi@g0niL8CX7Wi6qx?L@ z>4r5J-ZNp`B%Mox{3ZN+lAuWV(&<-R`#+e|5X+9XSuyCZTTa+-AWBDYOd~f2FOu zBM;_uFODo9A7Mo zt{m*iUfxdk-Zm8!{qxIvqOvF+ulU~7i5$fRD=_FxYPYsIwf4Bb&90P@A}|RT_YcnN zn}eA7^six+*K^x{wye}#&X!AvnKnsI*w>1_o*6gq<1N_~CN1DorXpcTuCS($9h~n4 zyEK5!pUIiB>Q` zQDb=b{8~q_3gGA9|LoKKF5R~(`ZNCP3XrttFMlVhSne}YdFPA}W%WBFhfx-rU?tTX zp?9-XVFTweQNE^ZS6LqnWnz+zVr1Zy&aiO5l ze@Bw$t6K+Y4_p(1YzIgYKE-2_i%zDF0nCOjLB<0h|C;ms-(VUK(x;5Z^PFU)DI^+Kbz_e;BsBGY_-jE=k_UD(I`L!g$~}5)Amn-RWdhi)in2EOgO9;EnEsDB zBpb}%;-Ftg^k-m1y4*j*2U(2g>h9w?FmK0ymcYyy9RZ2-vjEsVzsnmaq~xCfdE$u? zEY#N4rL!p=NU}ZMmU?PV_2t*1FJHkd8U8c@R${1rG(uim@<)47g#Z495 zQ+nN5{SzSH#cd14Z#rVz5LF)LdVOZ4efEc)uMDO}=aVhj3s+)DcXM)3w+!Z}()_9J zPKk+#nefo7_Kk9i=&2tMqY8y@b5TZr>4ebH;vgr5-_p-u*go&6b^uQ}(ut;pB`UD6 zX{LoU!vf?5Ya%YM+b3l$8{eVkU4`HK$lH@LvNq6`eRzH7_cpMB6BV;bL{FQ6S+fZ{ zD*gm|5#vrSQVrg_)mC>I)u2#W#C!`he(yY4KDD?%m(^G`A%pSv_>x~eRRov@A=UWR zrmCe+5f5E?xzA#V-`E=QEXV-*a$M*q*nITyp2fZlbW)P(&f|We+P5yKVADIA$F~de zZz{i^E1ju`fmeRZ&!IUF*IunUk9lC3;^chSyNLwdVMG_pLqB4^{_iO zP4MzW{j>8of*_-G|Il`fVTlzqP;or2`#_S5P;PdwoQReX|LM(ySEL5*^iiI~X>pbh zwqb)jSNkDa0P75ZH{Cj)RB)mR&iIIbCggm91a5o0r$O7$cJ?NFw@Jk;HhIm7fv#6g z>o((sE;K}oJY1hdF3K~SA|AV9TMAaEzK;8~SHW+a>({UU=2I=)s>Or8E3KA~96+H^ zTZHxT=5H;dtq}tisL^WmO`If_!K$4Dpv)uBpV9m{)lT?N3o|JB^<7;3i1Os-tNyA+ z7NvM!*p;#;wovA-B1}Np{jVoJWODC-6lw{BV~Je~%09YVr#;zz)-7AEBZM;YoinL3 zN^M6#K;4;w%Xd7kCMl!#*0%0jpGgkB-4lK-;C?Mwn{`%Syrs02i^s|dN~}6 ztm~Y;==@d{pn69)_UoMf-BKTjQHCARIV5c)fB5 zhzKSXNw$ui#Y25ZjD?{M6l+$MX`%nj{IsgLnuqkx39nMRvA?l5gG@`UY0%K(48y6` z6LW^Rd@~d0Hu=nr-IibXETk3QH5=U;X6qQL`_R@Ap_7?iMHJ?-%^XjM6iN$Fs6ibb zyiWzxi;4du$tigT~=%%Q%d7Zq;~w06u( z2#^6((^(M_z<5e4Roi<`a`~W|1q^J$<3ioI zEicvXd)JyTM{B1`B)MTe%>_QA&+KS)3Gf!UGDoKPu!SVCz$>r%S#>Oiz`06X^>4&H*4^&%F zhYvrUdrmvyRGTO|ea?iI2FH;?W(HplyI5J33S3g1H~C;~5uI{wba2q!pJUsqpe#Ql z=JP(BrW~C$oZ+WT9`UPB?N%0~9`J3gzdw^UtOM?3B-os^N8F^Piu>UQPY-7jp8W)% zT4;75! zkBY^6*35~Ls4u=-waRnb65rz2$$(!jZT+>wC-~j#_tjhZ%Xnks7lr&!jg2iKOM!Sk#3bK5U1l+h&qB7nZ`%`Hnckwe4pjC+KPyB?6k8-=+HTbkvcu-4eQk z^Re~1+fwx)f?`(X?;O!Y6D9_r_`om?dHQmeM7z>*aL< zQ|)g;W9WOCQ= zLe$~I$=czF_g1}*dxbax zI|$O#Z+BZBIs9}B&LdZghg;$r3B1DvkSKvC_okpub8pcO#jN8U6_xGXLAh$Z64No* zcZ*X&1RJ|bQ6Dl&z#Dy*ssg;}uk;G2#>pP%n-_*^q+wv9N3`OTB4)-Z(X)^MfZiSm zu!G`deM8)D;M}Tul`DbcdH-v;kT6ScEkDj6GPx_sQQZ^7ywzuqD-8!ZpRc;)w|a#Q zW*2`OKOg;l`!AK~Gg10G>FK}7)6&xu3Pv*1(+M8O4nJ+CixY#YT}5FoG#XTW>%)qY zZ4gEoI6VjGVOX`VL7krd$eoL>-z@|X7lP1y^F^;vdI-KNEYIiiny=QA^7MFwHKVSx zj-3N5dT3H3w%&j!3aT9wrA+xNvx(EUE_=9z>*!tGveINBvQB(r2$K z?ZU<-es#T`dH81Xexm^7n zI&1U@KLm?VK(FeqDK~vz_e>CoA`dNZwp^NBF*Y`yS$@hlF*b%Q7g4R=1DA{XIT*P8 zHXhxObb+M|;8^fh&o67`JFL!xNO!H4Yi=v;=`~&1;2E3f2K%Ck^$h6xVbbBl1&*rT zE0ojiy|RZLP8V^~9BN-uLWh%Fe8)BH{?C>7{dGjX^;N$#ULpBT5THD?p#dx2^>^jX z=({H)Rm4&1;HYBHBt9SP zWb*e_uM^)1OCR0%Jp(ZsFMD3UiobXex&GCJ4m@q8c>c; zH)0bIkKP)cc&??45Gf1pGFA^Q4|{N(Xvu(~#AWM;B=Nm7hiWt>l%o1)8v{mL?@ZbR za$+zi(uOQUq~tpeIOpmBpjuG{;~cJ~lwtO!-NS_7i|#7%Td^VZ1QT6BX#sL`b?g+e zA`vdG<*J}rsQFv^>K^C5>U3g5H#C$vGe;wN=AB3uao%orp$x9hhk*7GJzBJ))*t9v zZ5a+?xu2ci5kvlAN_aENomBEJE35j1eO6YXyu@c3SW3PHoioMlC zHbAe7{%?8C^R=3Zo-SmWbE-KyNa_ccXFq7q56Go=sSD8XI~A0o+@a73noR`IL~DoV zxwE@>a329MdZ~NmiBl+ILb|D!+q~}f1lum46Iq09$4-)1y5v~jQ}a0jM?{q(c0(TM z2-d?P?@x|Pf*p`f*iKFQc0o~T9244gI<)E{XZ%yeU>&LRr@*{!!-Yf(W8?1Ww{Gfc z1T#+iB+c@}Rgabb{G(|54-1n#8sMxLU7mpbBeBt4=)tV2abV9q60bjm3VMaqc|jrjn&pM<^UXIJ!+>+5h^tC9f^nhlJJc;K3ayS5t(1s(;}o(Kr3{wP{_FI8v= zp*&=9jSz+PeMG}2Mnc{f9_Muj=eS zFl`v9Bt@GqvCd`wje>rIE=r2Tm*@08=fcBi3jZ`udJw(=2HbD0?6jUdFpbWw!4!Cf z$}7x8U6xhr2$K2PDh1MI1`VrOyfKSH;k ze1Z@g&p&z*F_6K`)dUDK(r=f2Lke?cSPssTMzz#3ZE|-uGd8X7T@V3D*I3A-Ofm(eSWbv0-B8aqI>pEV1VzRlrFMFsZJ`xDZ69 z=VS%dUy8yCDv)W+#Xh#E1~bW`FjE;{brPrZBkWEQSaB*(wkYfgCNn5nD0|7mQ7xsx zRpufe_FU1R#(`**mXg^p1Vcw(q1l}QGHrK2W7-vBFO%vjF5%9gIn^@D<#GOeZg+LJ zKP(H+&?Fv!Ut#bp&vbp%-wz)Ei5_2X0}7Kh0=Aqv29?1WW6C69(h8`(sU|z^T7xN;lJ`%wL@d9b`=49G8Fni`TV4^Gy zPoW0wRt|*dU6d~;tOZ!5Tp<4J(3`pHcp!B&xmq_X?7$a1pCXN zK}#H|$3;s*X@h`L$Qbr+6b1FmkypRO*Rp3}o#O7?bdNQ&Z%}~#)=L&yPfqIGIw5_U~qcz65)nfe6Uwpi1ZF>^GRW0gc zIgbxH5|_4Lg#m^6^>Lln^8RDUI7)1L%X9e0bQNUckP_ArGLXmI|K3h{71!H8smI>Mki*%3#!uRUW3+Vsp&+4>2xo#s$=7k#wa%In+8Np+*! z_{YPIccBM|YOz^3{cuI$g5vbsnZBcfe`g=#^(|B)hy+?^Rp7hPbY_Ft6=5;B*SBtk zRk$b22lFgQG_(f(BJ5-E-qQy*r-Jjh_2W!|}= zs5-zIH?OB1#R(^Ktmy|q|UM7FT#3gLJXW7 zQl;RI10&H$3w0wLn&jKvO1sF3@onDD-d5LCc(7Zw;7OGfNCo$#YhbeHDr&Dko-QqS znY^ttFYe~QnmY}KPH#BmeA8%2a?0B_>y1T!YL}=|a8c>oNwQ|xmHKa(-*7sZnmz(^ zgL5a-=;2ZN=S*dDR6%bAKS7D3=Hwq>UP`Y&lr7R8BmDEwcv{F7dx zN)YkUX#r@520veyMMg9e*@o#b;PeyqKT+^SU_(Kf#yBLmA(s_Ckek-XkFq7UOb>0( z!!P?R@rOUAFdWEuCThc-N#Pc$_)Cacy`v(wWZNjkc* zvC}%{KRHL~+mCF{zpww&%Bm}m@wq*s%1k=foQGR^^%~}ue7>YqSTi1jNNsoR?eVE& ze9^bPbT_-un$}xsU*^5JNX$5qiD0w`!9%T58JMQ_kDFBn} zit0}}XI(Hu;oEM!D8C(>MX3pzd$2tl$;tq*T9fJ6Y03aiW>IyUV1^-YeWU==z~H~d zhHPJ;x8A#VbJ{ndousW;mM&g1Rh>`KFwM^YGC#r4EuG#PeO^DBL^niF#LJq&J~UvL zgx`V_(CZBS4goLSHT>i^(e3j#PCRsx555Da`_=SxVUNPUxnFFFB7FkF@UP8i67OUlLS_u_MKKmf1uu>sTqSm{Rru`h77`@=IbRT z)6MSpft<++V44rU2snb}YEf+=s>O&dUI=+&{JR#wQ%=mr-DoNIHn~^z)BdonG-0{F zgrgzmTP+@Ft?#NkU&ol}$p}nylHbzndF!iSZM(OAq(<9*ok>x)tAw`%K6TD&C~zs! zrB+SDh}fcvjKBsP0*3@VqGiDNV85a@FvMtkT_I~tP+8;A@!96>RQQN=_f@#}vdtk4 z;uE(TRi2ajTZ0*T*?y9N&Lnni{zRzJy^8Xj4X{d0X2~i=&n+xHqwtT&wpLc)#h_sE zV`J8zp7i;tndM~tomYhigEYTjN6$MyATU>!Au z8~65b9S4lJ2*k*Ixo0+3=3Yck7v(~ir$qCDz*5*_GyQ?IFpP#7bzYf`$ab{|8lcgT zA>#Yfd%Z>TD$Cx)fsh9F=P-+d6Xuf)r0CFR#TkUom{ON4Lr(XOc?}@L$S>-Ka>1rF zh@}k1ISsf3sKEjUX|S4TF&I2OH--PGKZgD2O;T}VoGaPnfBney(OA~TF&;j7-c07%tZV)-U;&}_{&%A-`DhyovJ)a z-$4k` &H&^B=_f>DCn3T-EzAXsjV4f}ZB!h>GDNzG+##hBID(3Y(?*e}w*mEw+ySVkU-nb~}v*L)>}I)Td-xlU*9e4dzw;2hLjCrrLxu8?X+i2-RG2Az#Er@kYcA2X|PF2}Z~u z^~e5ig6!W2K#$M#>HOsu?Y>^irQ_o4`rM$w3}3_#u8z2sg4uFH=T0bmYZdF3a|zSc z+5Pb0!$lT(-bm{GLWo5W@JiIz<(8RE98Tv!xcFSy)%?l0Oud}BL9@`G8zQcrY-F<_ z@-3<*BF2S_p`Y+Vsx=$3RX?RZ}`aQ{~6|C#UeBB+(+ST%~Hc2hT=ztLK*Ln)W+yNK@fc=i^mJ z?m3}0BvGi|Q_3T>r8ht8wnGYQxqcsIkx1V?EQAcn<%^R`*HELOA1VDbd!cSoZ8P?9 z0(YM0t6FZ|eDm%}R;Gu!lryP%QlruY`syN|I138qj&K$a%d~gyCjXe1?4r2t7_d#f z@0wEE6X0N^`7T(>A1~Y1ke=RK)sXFp+CWEr+OQ~{Y{@fE>JJ@jU$GxIY#?T)!BL?3 z(l;zko#h1_=p5COPJrI;gy&ni&i~l^yZCSRp*wT~bzY>e9WMh$2$oqYx5H7@V$D~> zDG$7J>9MyH6eyM8E^9+ztt(V~YwjjVIOw@)L6MxrV$ITk(p1JpkzAkaB820;&twvf zLUOAd2$iftejMHbSwdUmOVQBUB@;OlOsLz8EP3;MJZB}0fnX%cz=~YH+J!ybg{b;o za~)vHPCrxWR;hXNS?!24O~y` zKLuX&&qd2FYrpv{G~?MuD1~)~RRa{|Ih8PnZtdyxHfpP3Bfrr6PiNku*205X zNd+%@2D-+%CT%5B^#uH6l z_RAAu+Ej>CGexLWYu$|!r#sJ}JL`rEgW52!9Eg@U9VQCBJ`LpAar)Wk)A8+k4|BCH z+y&d!BQoq}R~Jc}sHx@ApfsOuY3I1DE3M*F;ph11Fq-Ved}Xi{%LRSeT+Dmncs7r zQWDv<5w`g@tz&u3?3@YRfvVJLECp_u+P zY~*Q(_(4{-Y9w2CRjQ7_>0PKkkQ&W3WXqw$-{@vMu|aY>q~?Z(!OI)~jL)CbS9_Sq zaeI5Cd@2WQb$X9ibM<-XB@ZdYEqwXJ_| zatLoQnl1LH&}a#w2oFV$vd&DM%ciLiY}y(CwVDe?lE<;bt!=kq>wtklqq>S703opn zYnd)mJhW!Jz=LcZ-(09j3WC(R)TfMON{syGJ^T=Ju4j$y>=`B6`r}ImOn-nfqSmGe|U_|CpT8Co{_CoDx8G(AU zK9{S0UX$-}V__zhb5?%VOv1rX%0oB#gg_avulHJ2MF*c@GzP z)7D08H5x@9)UuuP3?7c^-U2HtvG>z_H|%n@COEdsP{Q;BUbJf(>`sSNxoWJu1M|}C zu1<6oP9wt^4j(q(z&s=JIQxng&7n0kIItVW_oW}QsAdr?Vn;ym3JHRMPVFFL zvEPYp?5JGGtLyk$ti5_xy1ZgoP6Kmyu77HlMn!sR#T+!ZAlF&U!68|6KWXAydKLbX zwgybz)qkT`i8sm<$w0q(kcQgZe{a2O$lPPSb{|SoI}!F7K1#J95Z=bO zCq0XjkaF1;7Ic{=fDSq^teTap!Qz+EEG zPBglJ2=n_t1Dbz5<%&8J)6r{F51v)8$-@%jJ6Uk8} zw3u>vj&+SLM@ml+$?+9uU~V%B?NqAh7EUxD2KvO4+h&|aMKm;9AK}! z#7OAu<$doQBB_s!Qi@h#B}eS^XytNlqxR&Ba`&Cs!Q*(L|tJl*Ip^Ed4L?6+{E?L;!TMrcCO0f^890cdn?x?^gNX8J^84Af`g->o2-bdlOLR*GqVx z-o;kw&%lCBYA_baQ#Mw6pVpW#bLsa*1d?sD-(5OV+J(v`y->KTvXkoNuFIGq!tmq; zcQJk-uW3S>B>yK5m|m24C=T2p2Y{J@<&iV^9xgs(=A7U z+ik^h<&fHYco)WB$V=vg8_}d`1!q7P8#V~9U?~GQe0C2&;n2P(5K<(-%gEteyf3~z z7J9Ult5S=cv0dt3l}cW;t1m$^&rOl;OCSCUV4Jl@xy94NLMArW+xSl`3rjM!V@JG$ z34~FDr-AT`vPj|LSl6IBWKsM6U;(Cz*hI(-+(+Qpsrp@J&Q8&jVR;>usr8+9Az?b& zRt2xjotLT3UZzI>@42aC5QEG6$2H9T0_XX+1PVHaW;zM+9NOmexz9eThaMk zi-5!KqH>$Z0d?gzffSqlI9Z2YlX23g?jDz|?Bxr?vWA@qFY=o~E77DrAm&{Y&Ft_; z9;dH4i3AiU0Cs6)rl;lOIHvjd#rBN=D;rVj8c=5=cOT!GihIsA=&H91?#2snE%e48 zQqIdW4a+n8HyFQ=RN^gqTZ8H2fYgY<^geuesBn5NNcW>eyXkBme&LsU+g9}Cxj8pa z%l{RWxGhQ{(v%ZsYRD^c%;<8=p=(a-01W2il6!CQYw(>4F8}LqfE$Ba7S&x*@wKxY zQqNlBgP_yY*h@ovSkbFZ03A0)&k$GPy0M)N_qZ-%b1_|3tLDyX@zRVymyrY2L!Rr5 zWs#^N1wMlElW!WA-~Bh32cLF+TP%54t8TCh3LBu=0BN(Bjg^k)nJ!V5K$GIWklzIx zR^&GF+q1%qv3FvxY5CdSq3S?95<3+)va;xgYEzBYee%(&*Ui3vnp8Z-U#y+pai4P6 z%F0*3ok~lgpBbhOLRw?G(1VMsEx9LpWF_0?=T1`_X=b7@8kIiyFQ7)DzBEB|1t#rW zI^kgqLP#y11zyYt@N9aMfyR29@J{L${Y`;AyoKJMCDhQ!qFLxu>(yJUF96mwW+0`F zZia8W*#PPs=GG9K=gUCNZX}8qr2IlmpB2-B!a8Z)IRlm1&T?+Jy)w4TN_@J*Ns)?m z&}EzB^QD|DK|Kt)!dy{qee0rr)r|cXHT;2`-Qp2@7Pq3#uPn454C+)|D1URR)}$a+ zSnpOV?C3jGv*EE9>{co-b9R=_O}SGwb!&pI%S= zooA>k!7a=JZ+=K^&KVa0abOaLUT5HyavXrhc9pmOZWp57Y!N@=omKso(Id|_SiS{M z-~8D!O)Yhp2G#v?-K3-eii|UWoS&Cv3@;#Z_gp{BBQZ{ri(Xy>Xvz;#Yu7hF91paI z0J6r!^Fr^<)yp-5eeNnj2-g)b;nWAl%6qrqu1A6h149nZTI zz)c=D$B=`EoA+FFn&d?e&bWDCjjDv$B1`G`bk+BSe%5f2^r}8C*@USmTKpywFs8Q$ zd5=sD&UgnZcWp$P2xxfvB~GRYFt!zRkgpBrC}q?4SC)*B#!94R;rpw8Cj6;ok4w?+ zdYd9XeXgzoEzT1!Me7>^i-n>7rU0eA3R+4NGj;$TSf;G{{{Hc~iMqW3cn6TQES?++ z=Fn)4I1@UN94uiXU)XTbtk&{;u_(}4z6K?V0sk-UBEhp(v+fE`79GaSv91U+JZ-EV zCp30vz&5k95F%G|H6mUFEgyt6+>u>%O6#gr-Y0@dQ-GtWI^lfOV2@7%egf@j#1`-` ze+TDJx6&%}IKv(NVH5D^w%&zjG#2H5ih4!y!n`%^9i@u?rwz+VN@^ zb3y+$iTub+^>t_YPWtx%-ZcU-<&aHx=^jq03MtwXl6&ZyOSos*_Lbb;0P;|NbA92a z7Yc;2ab5-G;fAyWkE2&cK~ny4+2!9wLj4t{xy!=QWH4>EB3seERo%7mSFAuemkeHn zqgpfa2#OZE?A~am@r%%&SNcJe<5`Yo@#%=6LOefe#KKBOATs6i_EG}bb&91!879HB-xz;|30ARyYOg=TzmEpwqi!HGL0*`j0e^OMp^n>l zHdL`U?1^I5&6E-9F})U^w_7Wp(Au01OSaitZX!3I56h~y1NTYm2&%d(WRetym8O7h zfCF1!;mQ*>_T@;n#*((+$(xIP%ecu42|u8h-R6P>&C~ud9g6`}bcls?r%|1ue+)W1 z#WU>K0mQg!h|xGw*KrFYppQ1d22;ndOpxVngy_z zi3fOsQMxPQ_shrpM^)W3_1u*`u$LIrPiEB%HD}u@6fjb55$$yi3+H0*C)q;(r^vAZ z???jf(OOL!u!4H_kxm4Cu(W6;5Z_4u7S@;uXex&HsHiUD>vz8Q9y!*jn-Io*1=K7K z#Z;W>7uuzS;b=4Sa>;mBJgKWP6Yk7%J^yS@w4FLLd+6!wDxb+Cn^~y^3%jGwde&6> z>T2sDT!SU4Z#fXP80)s;=Xq!~xP1SX{H*V9!h>C(-wtxjw4eRN8#@23{BmiSKY%&j z?aO@p=0cR{fy+Lq+#Bf`KKtrr@DT>LplXYACkHaOR3@Vp0Rne>^g*$%ij5N`8WLav zfP-OuC9dKNXeYPLNFfeJs!KK(0EF_Q0*%n3#dY|umkH;E4dzN&b}XZk7E*~s;TvZk zq9Epr=JCVZP<1Tm=Bnvw8z*k7Izly?M#F?TV>^!X^x?LrNt2le+Vs$n;%)QU%cC%e z-ZDi`f2$LHr!CJPn18uv9RgTHLi7V*THg)QoA@4;tS?Sapq(tFCs2fNME#%*pyXWw zD0G3^?6clM3{*YHBDU3w3#=IeAt6LbyG3X_9b|Tb-E%P=#yP73MNIO@;f#R1;I6uvSTNai9{@PC0_O=%E`i_FY9F%s z$6O*xnLoGCdryUexO9me@ti?`V53CfyG}nV_}YXirmumk*fF$FksLBj4I?Rsz94kO z(0YJ-jDw@@=MOGUr99K)iY?|mjqY?Nro^8Ux=+vcXjd+;yn0K-i#iFDs3f0<<9JE=-_6(h~z$f{B+ZLm5h#Qy58by^BmQoi-6lZmuD;GVI z{2~{td~2_($$3<{4pLMPfra5RxoyUeq2hU5{WK&(K|<=X_1=4;q}x7Ge7bb6&F zJ_;eC)dd*a(%K1x>=*D(y41d`Vq3y9O&F^NW{UT`Z4}DAn!Hf8O@EWB#81_qLx#pO z$aCG04dBD>`_qT@k_%C~$tZ-cz$s6C&WgfrcQ9Mu-53KVCDEf9zP)v#np74BdZ!qS9xm3M-^%3y zl$uGf=hZ1}X1e!g_FgNK_;}TAfn8|G5$=8V?s2Uvd#3jIM88X|-P!eM<(_Zy4hWkc zQHAak1+j)~&%iM!In0FBTiK0O$xj-MV@KUVY1ToMIP?8g$*%8)-sM*z8v5IdIl=Mx z5SP(6TuBO^yd^w+j(OSs76%S2*M`d?y^^uvvh~71}A_6$YuA zR{~1cLamIKaKnUde(ny4EuG4=a{$ZF82d%jBI6uMTi9?w`||qDyMx1FrAj0I-~qDc zF8gnwPx@0(4?f9%v%%o^k8b=9ufPvcWu}se_8vx7U2Kh z9=KQDj-QYI-{$%4P5gg$++HkPF8Z&Dy*9ic)OBchV*D|Q$F|;Rp*EYx4+T}wTzTv> z@-?sVD&fQhPLsV6+Jd|#PAR}O8NMITge=L(iyY9E&q=yQrJ(g(vi@B#3I5$bh?S*F z1o+A$)~T>>Y_bq}Un^ilz=pLOpG$PTa)K1kOI0=81?&%#Uh#w;_7kYu{)pTVz z@2z?dMD*-;+W-C`7k`YpM1uiNitGHR+XPXzz8-FziK`7TVxo*^Kbpux@rcwGn*PAE zYWHPNA>8jnI@dEi?p}9dAFL#Ufh16}Xe@y4&%~M%&t0r^M0w!Yct>KU;iND>jNW*Z z!VudlMO?=^&x-_=yQAe$&Mt=c`jw+gza%*hx)73lbI_XdgJA9sJP- zHq-bb1*4yx_XT0qO-N5JHA(--ZF>57%jxrBG&J%&g<%7%Cy9#{`O>}glZZ504$xZ6 zRltDKN#by4UAGE(5EH`cLQ&fR4g(uHyaH>?pT{$-V3O$LjNs8|woFnWO9a}@<_7GX zZ{pSE#8arZ9jOQs|q1yMGrG2{hB+x357)~VWr{;fmt_k z18dJcSbJZ|f_MZ*A620yGn94m)51pbOPfV{(m-jzR_**2VJwHwoOfzbL-kwDjc~8i z)L;PsS+wv0*m2;u@rQmh!JecqdtaJ5KXM*&!|+tkJgaG0y7;qvG*TH2iPrn+1|IX~ z{FTd_l0>ez%N8Gmk}%OIx}sQrm}nyp@bV;W-6OAG2_9{n76gk)f1`UkB^cU%Qaz$a zyolDdsIrPZMURE`l1O zd7Xuoj?h`j>i;jvQ~bf5Qo>QCVQ7tY;hrAe9(`u8=7$@Q496Esg+h zd8oQG9be`PT|5mxU#L?foH^1^D82bFHq2R8%Da|t`eJlKV4l|*R_bToFUXaLhW^%3-?|k*GWS8`9opSYCal^Y~=#xKS&8p;Z z#LnXl!nx+AUjMHb+b{cb7OMbOXj64@@8!8N_VAIe5~JGq^*2-5$^`+wP~&~hAdB}0NNh~0W`lCRyizA9Wo?AH!O_L0dB4S`aa=teJ2!e(%zS8k*w&uP6wxzzpmx zYASmwnW&Q1ZhMR=qrgdycg2caYyk++_^~=xFJu_TpH9)H(QyFDsW-?KN`Vi!n9wSfReX#)I{HtyPPT;1_Wt$o!q|3z92GRt6QC&8~*fH4Uy zc3L`X;@=b(11JH~5$SC{abG?ShB21TMS)_)rX7J4JwFaQ%@itAH$SU|N6T!bo)=?d zDIs8DwsblC@y$N%n$oJX;wVb_NlzIb)|Ay?6|D_+nt4ijI_l3HFRwz1FYvDM7tQ98 zZ4Ip_x$ycOQyFFO1~ciKS%^8t1q4^Rn^n;+M^%Ge8fV5T4#Ypmba*M=Z88Q};I(b^ zX=du}0=8gj^Cy#~9}k($Cyn_p*j6d(`Bim6ujz720m*P;2S!LROjHw~4GqcA#aWBW zOM$pw!It7G5AmPIBeSB4*86A8wN7LbM*}!-E=FE)2rlHdwgKw;?J=5zklxwV4Xb|m zg%~HzUBe05sx;Xca_9sg7v|RZPpYTyVN<>!+CD^3&xt-GH>O>T-NKoDDp@GcBHDGW)ew0IXL%jr8{^SU;F0xzts`;zk~rTT}}ybXWo+?KtjK9kL= z*~<|o+Y;v)(1tkaFkr{QLbxK_+yd5vQL%pQ=(42b+JZfHp;1P&{zfAP<1%~$HKz)X zcmPGcbgi$PTOex60GZDvjJg(I60fCy9Pcs129#B6SLatvA$lXq8-^2`-k!i;c1p*W z_~&&K?;>cW_PXVMRW9Uc3UWclV6>%%>a!)tAsIcJ4Ywms%BNx9y85?M(i!z;(9#eR zxqa9Ye0sgg|BiqKk4{TsVfuz2TavfuP!nK3`r4ZGzd;=nE81`JW!r(e?ZUtN2iE=a z$+xJ>*1Zh}#BGxgz0adb0gn)+I1$pzEhC+%Vbfa(1yei|uunVo82qwp;Xe8_w7k8v zJAam5V1V7u?R*?tx@~e0{qqOGXW8Isv|isPCF1tlwfjZ61(hc+^q_LuLQ)9^f-A#gAjxfDM&v44j(!QfrD#m{>| zX*&SZf!~!)JHDX=8?8BJzj>VUxhM5F{u@;pfNJ^x;&*DoEY zr-6Fy_^-^&P8>2wTsU=Kz;CWa6t;DG#5(4wf%^gG=K!CC=m1DK&94BLgV5o%C2IfT z9Z9~oFP@b^8joWBE2&Xlv#5hrl84XAl;gQs-YEg|svpLE$E%yav65^aatSb19Kc0H z4u8khq&X}->?~kSe0w`0wARA@-{7U?<)14^2n%JPy)}n9UY; zH^QHgwMmx#6>fm3dM&z0kChv^zqnhwQubcu20nd4(~vI#Cfg=E^Mq6cH3ENBRNF5! zh7_fni;%O2Yysi=xDU|P;~e$svH)MgR^}0peYZ`4l&!6 zN7PIZUGc*Sqgxr(%NDf5En`^p0@hC))AU7kS046bu>WKf{QvP0RD1-Whu3CI z`ezN2@B@FCykasTdpK5cHXDk_lySTlTA&W01j9|*yol@^O63*prdyWCrzVWi(nD3| zXO&T}e-q@4f0?Ppup)!@$IeX@r>?mvyddUaX|4m4U8~bwfZ86Ht%?zA1mZn96lep| zwn|0 z-1y5-bhD@J#(8!Q?c9sX-b(`LQ+1C`F zHxF%%JF87ObE;D`cYxoSp3Rk=n62dYzbFlf+$%YPY4k%i%i7+yIXev-pr}5v?&Nrn zU^n0WUmG=M=g^>-t@DwMEk3oq$fV=ePg`8!6@2dWA?x2K@qtkq=?^(&uS2R($0+A< z{yza4P;b2c-KR116AjiUnf%U1Bi-7v`^ zXzd8)n9e@EU=!}-F?h>H;Dap+6>ZH4ytyyEnP2yQci0?VU*iwOTMqa*)#~I0@8`Cn zwu4Rtes7TaJN~jYLH(>Wt3{{B%_A`WQo^90WMbgHVGvO2cr}hwW0GOxOf&EN*WQc5 zLa)$_Hb*;g*Hcf$>Fn8A4&pUGQs{WVKl2W<59)Kb!4mc;QYERIsM>%NDW-|4t@9RSOzD`8oSHS$7*Ui+!xYBW$w1} zRdPVy@^z`_y=Kdk_4i*PxOF7)<{UEwWF}BI6`+QE*bQ6m^<_W1nWS&`NVYqB2(@bW zV?;>jrpVhT_E%1KR~b%>JqRflwC&MbOO9UuyME^1_qlb{byZ^n+*JyRal3M`qyu=n zitWnqB}0Kq8+9Jn@b*t8KGeN|VFwr_Q`#4Q6`rEMgFTuX;JUz@Z+W4vP40$7Ef(n% zR-P4WlfDa9o5ZD2{Gl+)DSz|e=9@Sikm&z(_HlB}S9Z<=t8-z)nTG!T4uz=g*t^dD z?|TKmNg8rh3%3XC_K##%87Ryg9iwy~k@y$(oi`B{sP==sd3fi?i5d_gO(pAQz+v#ZNS|zmYa|PaqYra13CgMj- z*H`+yK9X&LbTSj60CnW8i@;WU7KU2JTDaowSHLsIc)wCil@~$(jQyQE@BI{`QZlCd zbgEcmmRHKi6iacw1D$lE31?K$rV*y6H5v>9q~KB<>csmj zyH4ZgkBQiKE@!o#cOM`U{kasBe)2}Ngp7S0Pv7ufqI3}G!<*U%rxoFvq$O2WB%Dbn z+#pXz{?XIcpOlQQPAq6tnDIx_y6to73;C|{m|{v44%U3u45S!&L4XZd@IMO5mt|=E z-^?WIw8vIXs&BKLmqP#bGG?hZ){mJgo*GF9R4^g4tK$&$$xciDtOm4$IEYbg__G14 z+EBVOwE|Tif!j4FeOsQyEK@f;QGRu_s5#eZGe2pm+@nXTs8>I8-;@^_NZgk@oq}LT z&Uxb(Uc;0hx^5&s3Jw}c(ZwaG@ARG2d@V8PZg2{{95$GhsIj`KNmzO9&Sa}!_Opb8 zi4TG`kG$fwiW-l}4L-=UT!J(|Bh-`Z83#A{Grytu!9<@>jug49cxt>TNJ-ujs3t#M ze0FhweRY2Z9v&@?2uX$&0&aG!qy=vvs1px0Ujs_PPkw(t=;K^)4*qpYBk2;1y`ekh zSl(m0gN2=krzdv`v(k`FUBSK&e*V%!3i66{sF0pg3OehN#bivqAgN%;ubS@5%FdF^ zN9JVYvRlCedLrAVZ?r4FV1A2hJUyZ#C(Q#9;wc9nHVuen7EaG(&r|=fN+;c8)Vvt> z#Q>_vtJ8O*r$OIJ`1hP%Mw?e94PoNlRZ;kbAqK^y0BnhVwo^*A+ z-7lB54KV?aN&u>~g^hBqyD+D=YFA@!Rt}X#7AvdTb$)E>^A_~-Nn1k(1)T;EJeoO` zPy;yF9(p`Cpx^l~0&Qj>+6rgcXSL1Q|LjHnff_f&v@520Pfo+Tdrlc9H4M|_PI;^_ zjxK|LUpfAwCb7pmCP!V}$rE%6u@!bRMwKD6IOd;;$%*mPLms{x(OUr(^G9Yp=4eX& zYe0zNL(nHs^T&Pv6zq7je*bf*K9JN9vjqCz=l*!|#l`iNbJd0uGbuTS5Uxw#p(|A{ zeTFYSy6jaLVoEvUZw~W~GOgi}{JeaFJ8uVrPB3a<$@g;J!pbVRA-sATxXe;WJnXk~~d3pPV8NT#v3>#1qA3_?VL=Us6!p3?e zadO!^y1<)ws{5Wuan1{isvdB162t{Zdd|nc=Cj6S1Svu#93ggV*Jh>AwI3Ze^}O^w zmuTa;H3uN;ELDCE*Lkx({1HNf)5J6<`9xo7xJbvj|L9A9|89t`>I8IL8|@n7;-Y&B zQ4E^%wCjl?sw<9lGfTAF%iKD4OZ)kX7nM~lmNEHN@Z#VGa(WO(3tcd|(T8z}w@V@U zL09Y~kgr^^gV#Et%r zA%}Q>uy7E98{p6i8hvuvTZi;k05KEKSB36>p<<~$t=YUmM` zk59II@^)YOofQ|x3&D==?YE9`D3Wgoj9&V%U57$BUk4Jit?-yt1gzOLZu^eS}kF}Q~hc=St#@1Ih z7}`0_Obg%H1hNS)B0QpINIB$)#@2rAmW1jQ?FZ1r2e|!iYG(GcX?}2*$Mw&xQ1>zH$eaR6=cH;h7AiF{htRbK$1hwvTEzLlY%!&s?3tI+_H39Qc1>T{SxLg$u6Puc1c3P?C!w7hn@PbXRFo&fqB5SHCB8U4G90jdHJ!Xb z@pnEbR&Lt`RB;VmVHPz-6+H4%hc89`DR*dS9@bW2W4^+hN4!)o(F^tjy_M7ZI-?@$ zP@N2y6BSKPYnkOIEVQ+){o-#ga2GH~*z3F8#*Q(A-0InJj49pZ15fDvEn6zyfG=s( zn!z&6R-2OteZ=jX5b)g_anH*=c7+VS*-q*wO0@Uvz}$AnO_(nI(5NgP-~GCeN1F8Z zswZBFJ%tt`CkNqGoMs(jV(!WwjuPEMpVL@2UDb9*mFYDI#Ey*zd}>FqCwtsr6}t?o z3|lI{eqa0+{y$s*-q3uvzmRrtDRN6J+O43%-wV?qYe`A%t+Ft(1Sgu$8|)ED^1Sj| zUE7JHe!HfKZ+g(NF}l_haUa9Z=NcMUyXrU80$3OgkO*?fw#be28q%cUsAcEYS6*2) znEG%UgI`#f{<8pO?Tfxh9}2fHBM3;F?%Mx1`}NuTA&$%g$RDh4BD{$$S~t$i(&H{!gLtgM&Kh5(w;1H(`^b=~)fG1A3<>#?-uwFWSHa(NJ&ATFIL z#Ogyl9Ah=ZLOCE<=;V}Nhwr@S??veltJ%KJ9zm^6QDSH_8|+&Vx}qPVpNz#8O>bw= z@~0wQhvq-1I@Pp4Y3C^q8R`f!d!rQDblHlu7)wb`Pa297JZ|4JA~Lb6Z5leT_%>ke zS$gx@`TvL^A5ZY#k|;^mjkJZPFns_faI<@(EY{n{k*)(lc(R`HQ_3^_?>h?`0sKp? zL`C1!&1ZQB=Jkh;p3eCR$8O6wjBvJu21Tj@f6 zt{QeR`Q^|V%wM|giEhslISihQ#blNU!;2kYxK?|{{IeHKb5dU0J$HYF<7(5h$MTgnHFut(i9OX`n! zA9Nk{5;^v%Rp6ZZcdG!5^=hDOJj*tqPv`z&GgW4je&x%o5EdrxTbxye)**Q!w<&!o$i8TRe1~BZvK3=tu;jg-jrKr_cW*qAI>Bt2rS(mfbZp zTuq!+yiph|uVYk-tsV{T^ki5BiuUR5u=X#&HlNR9a!}Mt`q-l0?Km8}G^ZxP5sW5$ zZ@2j7Xx;@O`N0-VJdk%p*1O?7wk|~i+{LAZPvY#_ZeQK;?$@^;w|(soG4d(uNRjz= z-lMy^sio(@qL#bXq`ye=)I*6%07g#dJ+uG=>Elz)!0LP0-mbm81KG1-UDt~{2H27+aSMrn=s89@_&oXq-=O%WpH|qj3Zr?-j;bcIA{aET^ zou!~)?PEmhg9w$l_ zI~v=(-A*T6V{1kJK=GYFXJnSlK5Ty4NZdYt&-DgQ4@jb(JscdNj*@^iIpRJWjy%%f zT5tchVPtC>O_cHG2efGA78q~<+=C?b=#FUSHcx2gz4bjT+Angbj8{Ln*rLbA6aYf{KMY_<4; zvh0QGceM>ODif++4Z&E2Z{pSaH$SDEL>FwdMxmaNNso{%!GZ(2Oja;~meqVsi0zZS zRg9ST3dSVvRt3Bh6x-+H#=@DtjK3C5d6FNebwhGFVE$?LceUwo@fB()AT9r<{B$UHW0A;M6cRGde2W!dPYrc zH>CZl-Q(t)BLC8UNB1|m!95qNAOva4H|e>vLErlCB7;uxiWi^dC|n(a1RQrQxEt!0 zgI1Ix3_IL+;NFN^Bj0wR#=jt#a?*hoQNQm(O>Vv9l8?W4qTEsNgZ-~#c>c4wYs~qF@-h+i~p(BQ##CkVJ$n{1Vprt~`3lZ@rt>f~xMdMb3GcAs4_?45K&fs6j6^>op&H4(^bja7q*Jw-=5g#COzN~r$< z+d8v{^<8$umnc1^M6nEriub!Sj76}k{@HzKZ9M#OJKbV7AjbC~vwbmhN^rmNo@cQh=!4fz| z(D1|C$xxFhMcsRk4-8egdqYyfu>R%5C5mHbe;{K;e=<>Et70rEdpaM_H?{I~1t(lJ zMCF53VaZ&DVNgu9sR(voHRlU-p`OgQZuoC0Wnc##B^EYfXA>v2i!%3#)AINk+wWG2 z4{KnT7RgD*n1Sk_rl-Cp08vKVPyVYuQU%zn=Y$bxd-6*czk*e$vOLrcjonGX?WyAK zB=ZMhYUk7PuYMa6>@f{XOfOemg@JD_eg*fkAtZm%;dI5yU-<^EDu{PhtlL8b^R+B) zEdOG@TGL~H>|zyZwM#2e`}Pd>M@bh#e4d@Wm%RE0Db$#@NVNj|oBH?&uhKZDEjyf+ z^VNdA(HN`uC`{G}r7Ld*yTKX0YOR_rUmc&B2Hag1)mSShndc19XR&umSpUn%gZe*z z{;dRPC;#rWq>?dktGvsey(@%E`?KS^EqxtcvS&Je@W>2IjX1tBuT7la0o-#gjRiP< z^kl3e@il0Xi!Aww~M8F#F~< zQ%>XL-S(6s?Z>v|6$@w`UA~v&muXY+d>gIhTqxrHB-a<6rzdQ~%=Sn`76Ed>V850A zK#bQg(ju>3MT_`rDBeCf@J!<$N_0cGoYB!J_rD(L4ziJqc_;P2DY7G;Th;C8H7}Xi z&&QWe%I{9gK%XawZV30g@^r8DSDB2zt_6}K3PTd$g=XPVN}$>u#$s{|r87WRx)aQ? zlAY6~-k?lz5d#)YkJw0YPgPKxF>Uw2ks^u-LwGnd;}&D?oD0~_9_Z35qYkpFUSza( z@2bsV{K0d7?0;XjKhlLm^g;>9Flwl~rmd;kfx1!s@YP8yEKm%Z4gsJf5U&cAzE z{%wDCpN}*p{sK8<2O<@X{z})NU9dk5;Gf%1()(y1K2vzs8_wUEVj91}A4A{>jy<&Go5Fxu zMsPdP8Ff|WN^r{SCe-Piq5L3*RaN1K*)H?`Nym zIcyTp0?>|zn*anZtXa;Kg1rR2umv~Yo{KVdVG{IlhxOCb_YJ}4Vz&pA872dDj|dK? z@yDD>qgVaj24hdv(@sn*W5W=&oVqF*$$E>GiQoWX3hOt?K}20ayp>s%R`InbV-t~X z*3C_wHNc<~*L*_`b0|&RUSO2GbqLAajTDKJ)-S@bAF#r&*vN;-YLUZBmeh>X;&q%>fOcx@yce$S_|pT&ia=-+q(5hq4>OJF6lXQDJ*c?EZ|aou zkboE<_!jW4;J_Qbox`$X0uq8n@oV zLQFj25pm1#`=g5n$AK8^3IlrPFq7B{5^b%t6g-u=3w=bT6pO1wlUjlHyKQF0%e zo57Q#-f|W_D^~FOQUb$5M_eZu2Cj4AhR>yq=r7Y;$XK9nv1l zSR)gF&EmXs(ot(aiL2mN7szHcvrbn4m&8RocIf!#9!JQX6cIE z^m^*x3EG3ob1tO*n*`=YxD?AiS3W8XhW>$O$t2zS#6Fp;S2@81GZw8RQz7+(xT(kr ztb94ksa7VujbOA!kxF>x|uMy!3nm}$JuP4Xq($qkSoNt)~J-rZ3|4l4RA)lO)D;tUfHn`uq55O zdAzi*X|aZoOBIwQKzeTb6zeiV^udNf7Uu3~_$1l02o%6m%WNxqN!A3h!Y>Co1@(tg zyg=@@AWqkWDGL2)lI)c-bUGO)nU}u+5xd+1)ei9tE~5I|BJ`*)i4r?CdMkBwFJzgm zPXw+lLhPBLfV=G&u@KTmv6%k1jHWY`swy4l^2qDU_E5W4e$C^(Z3^o1#SgB;wVr?G z=TH0iXc=ki!fP9_Aq0~UC`iAO6nw`}Jk9%sX5$iT7nI9-b=kKwcA2@>L!li9zA86A zCr8&h=Aw1a!F4Ge2M4UK!Lmbk1fW>5DaoKwQI^$GMp8xh%sng==fIf)md2j-grmqt zR6Uvu3U6!-rB!%}FYrk#NNc`_jGlQI)v4F;kjGofE|^vHIg}=)d37RO&!~NptI*A| z9yhz$0(X-$P07Buf@`tsD0wu>WuwN4_b@9OQrSdO&P-FwXH^LpaaRE)u%d3)u70A^ z$cSIOC$PuFuRnX>_vKY*-O#M8L0g(J;xPT!LT%I4n@-nn-~>#YiyTs+ID9wwjQa)B zRja|(WB8KH*LHw2kwK2S#}(lUcgkIX7CxtM#5XO@SzXq4o^OC>HazTG6fQ#vI~vp# zTf;W_7G5R0fRxsjk`ALvYd7uSCeyuqqB@_sY)PZ`_q&?~91Lt4L4G+kL#4%$LZ$VT ze-V~p3VYU(K)ceJ-HxGM2hOK-$Y&b7%bL$??P*$VO{55c#Q%nD1|C*3l0D(xKu+fpvz z?LlvhD%&?f2co--$_jP!S_k3937q=FJSLs>g*d*fuM_2D45q0^KkRd{K3a&?o_X#hc$T?6N4k`csxW;<5~J z5wW|u!n$C=w5ZP^Cb_<5UHFubQz^XFQYhpwLU*m1Qhs3l2ekD`IR9{Md2WXUFa-2; zLrg3@*GQ8Vg?C^T(<2LQcWUMaGj;Dz%g@i(tvpKF3yBl+fU};o^o*Tlm=^s|P{eva zR)6)wUpVqQL)t$7WUyDK{2nIYJsI*#4Fq)iB5xkLRg{V?YPa)9(S6Whb!9u*f+ra< zbxW%-_go+A0ID_S9RSKJne9A7(pL2|e_qD#cKp()LkvoG)NFW;+)Bw@QfEu60$-(5 zuglMwvX5aY#k;nq6z~yEoUik|TaSUO+9e9f{VBC%8PH3IZ+(otaoGgYkVvnI51QSv zcF#X0eXniw-%#95lS8QhhZa2I54<56is|Es9UHra7N9FVA!zZAw9VW>B5}=pkrDH7^8ZDro z{|H*!ezLV6kM-X`g7s0+wh&+gKe8=Xg#X$#Cp%RmJuRyIsq)Ra8>Yz)go+x+coe=y z#fdS37#joY*K$gNp09cVa{JNO;&gD8*_Qp*ZQ@b$3xu}C>ksyI;ZpI4vN7IXHW&o^huM0~CHBVE9EX1S%2EQl-07Izq{5aLk|U^P31MNC+h@H(r&&c{6i=2p z6reb%!@Lt7PepH@n)K7yLsjpwJ;6aVj0nW5ILHOm#bPT^DmkNS+1}wQVO;tk`q4;E zZ~-^0F8^{wof(!fhM)!m`C7uY&-YH<;d;yS22Oy9tRPwTPrUc2*P=6r|I5bAYlw%! z?@m#5{QVMsh6p=!@g;T&bT&ZJd%veW&}kV)9x7K zp?1R&LV^^h-G1AndOJ`a0Zpb%*)_N>4+sDW$VB z&#J;%Y}7dY1#az5w|} z(L;G@UyV!|k1yE(W}8Bg>i1oSkc#}$cHOt@&A0|)pK&*|+oY@SnQuGl_H|&>ie?=c z3SW%qT;g1?n3D*4mVLNXo&Emz&_&PTd=M43lz&GSO127|ntw?wnRA+c#w z%f@urx=lr$rzl7{lg3_kQRK%=KZh+iIWXIrj#vv`3+aF}ltQo@e&?`1tUdrth$Vo>dv5-0s!~T}NB#m?e$#`*FHAN;zn4M#E`DDG-A7Lz34>Jv zA5o>Qj z^}Su0Gk4r9DsFppB$ifL6Poq}(sUX9eZ>9_fpiuGFY079(d^2&CzOoLf_<^yQwsYn zf-O!nqAIE>C|*1;$sw1Uf#I=soD9`YFKR3!=KBVms490hP=D6w0Hx3foZ8XV()FjN z@Fqa6$HXTyfR@Q)GeL3LTJ7<~`1ACZgathBY9+~*M=xC)!Ub+g|C$@PfxpoPWGab{@+T*|rMi)`&N z6+=HZ3IY%`SMkHZBRMl0i<*vhQT)_;_z_x=((WuuK7C-1# ztjx?nG?Z1EEI&O8sAL7*{pyZe!CaR9~@>8!)dwK3Z zZ=|}{8*xhWDhsN7!aZ+>3Ai`?%w|ds_$~pXCJK!%P)|3>ZyE;WPiI;#o+)2`N?Eow zT0MCO{FJTJ<+Ssh!9Kd$d8_;@xIE=|c?!a@EZ3?NLlrd7I1O%NI#t$K^*ZhIcKWeT zN;9~*aXz)?q0rNuG~;~Ypz1-E!)#yT&dOEz^Zuc8l?J)k*$OtAqvUL$uDGebiBC#O zo@YEv!xCvDwd@P?i0_yf^Lr|*&XIKk`NlVvqf)(OH2uG#OPcP6n;AUO(*a82OlQqz z06Ho(_)o@GM$-QdlCj>bV23pC)_BA_C|)m~QXr8I?QTZ^AVtFdi6hY78Xh1KMtcEd z&;b>`L`7r4TUXz#nyG9^kGGwzhcjn)zKZl{PZw=f9j#y1zFuv9&OLY2iE5pDm2bS+ z(5_%q(x_Ffl}#lxLp59kLh)$AJa%!9aY%Y<>4(1Pl1YK=MstXEg8RZKVx@#8Ysd{Dz_orx7PN@qa3BF!-j2}u*n6G#Q-o%auld`dx{sIau5YGUSO z%nw5Kz|_-bk!<0T$r?-Ga}d%OK(4Vc52eP%p(nk|jv3jBwaF&OItY7dZiM7ngUZu{ z-n~Ip7YiI>z3`W(78QmNl?up5x!ly~!Vs*>ub`id?7j=0<5;f|a)Dkr@3)-$I{Mxm zh6`-G1~HEY2Pm;L2xD|5YC0G;S@k3KrAf%~_QN^DuxRYMbq-# zewZA+;4diVXF6U`77JVW%fTULH7?|Cf2_q{{;Pfgx=h)`cm&)AE#0c(o${#vriCdG zg-pd?h!oXj7QbK!*7!??pKHo|0qLbBJqCggPL%n~0RpA3oXnNMwK)K*_z7~WxXWYe z(OpCL?EQzFfG~aeQteKsCOLiWR=cj_M!M>BLv!t;`u1c5PrPg`(_Gms`vcCwS(`*} zFX?YBs@eujB6g>_F}~%cXE2{}H+WI657-N{X=6X)!YC7Q;deD}I2l+E~3ZU?Pmx0~T=iI2c!d$9Jp|&ZU|B<-y(g;k*5aYd^Kw$M4PHe{lad-*$ zIWpQ8_>zj}DGO}%n*c~}veICPPy>VAsvmzqZ!pU;qUboAXyHoJ41;z8Ri?x<$q3RA zw!TsvT)T6`uirjt3(YNd;N|>@?0tIDh@@CMaI2YnVjzcn+@Cz@IzR^5S8R94xu4KH zsQqx|1o%?N3##&vZLMuNpwE5&Ub4)ntZFa|n2c3O&L=db=TtA}9Ts9P&m;#pcmT#Lei12UD7PukZ`ZnpMeZ3 z>GtO`tg9vUUJJTTiMt_j5%A!{8#a(!wnfxIgJtxS%rE)har=1>vmRO40AN^~R5 zm!Fh;ka=S+9cQfYhKU(@!E+Szpb9p#Nw~B$bAD9^|#1Q53i$ zrY->)Fw%mf`KZAD#nRa4Ztc}p@CaavJe)x5qcqRi0dKG+Bp`T`n+buc`^VvhjlC`D zIkpzy;p!iOqWZszN40{J1aQZcw+gNCm8|-7>~xpWfVp^ zeC8b_syX&ZW5tcV;4?Skq;YnWo8bQcpj6cta0NcI9Xb-MUR70d0h@O9#v>SWvUB>D zPZB1n!{t2@5pNy^Sji-Q8=X`$Dn9-pJg7M*UwC0hWsS9abmxO{KU%I7&?~{y57w$|YST{p_NWs7J?&x#?LB?p6aQXTQi&Pj$SeH?08o zTc!)7m2v7afTibdeP-qs!qGkV^(pCZc7>xWk(<%+!SPW4l?r~zKqB|0c^ zwOvtWaZtO)znQ+@I_R&&x15}Av>mU(+vXJFd2T~4tX#V);`9eW)UuyvVZ*JyZilw+ zA;IH9N!C20Ezum^NtV-Wf9JCbd;PkQOOF{T%}D@nx0!F59VeQJKmdiDSCWb2TJyp< z^>c%gmZd-Z*t@Dp0m4c0oUy_Xz#r%V^&s;!=E%WQ1Bbr2?W5VrxbJ%Z{YpCuXkVb# zZ~-a6C+1H9A^Pbi6#AG93H@+33updk)=|*z8-AO-<*9?(RV$h?Y;7Er>MkB%K;~>z zZ&v0a=C#oOJdRpVZKi8uH&S-qKOE22{H8nP!qVfdr!&c$aDZMyWFu51>+$`i*2NSt z(i@l7oj*mQ{j&I?`fRzIEIzc2H^*FhbGs_A(vRYc(t1$e6$ioG9-57)#vAV1wM2CO z7B-@ITwmLCre&6I6PrsUU|f_6qv70S_E+Wr_|)# zkVB5m=8!m`%W*n3s@((eXjjkUFX2z<7c<|ThLzsaHq#}ThZCldsG{Uu!b4d(56+r9 z#KJfrx2V&x-vooate%tVqj{Lu;_kxNx&<;G&svx0jKnp8_&wFzXGd8_t;Xy1cnDxr z+?up(FI4XkRX?(+$fmtIC&-`FlNftzrWCy}DwN+E5yBmVJzjKp>3)NS8eI%jP`O*@nkT>bLeJH5jB8kGRXw{GepgY36pco z@5F6t*3(-a%>~%gj$MP*w}ylf3NM2KnS+6+4F~5Ah#i~)YRwOADQaqEG3mbjOYXTBLizBph9+GcubxRqb<|r~kHgI4|EZ3Z$2?tJ zc94uoYUe}bb<@KQ7qTLDP4TF)K|?7ESmCVT^lax)CZS-Y@Ef4k6@3oE`J&3oxBmU= z(p#WO%wCZwu&x(t0wN*ppyRk-u$j~!1KUl(7yZ$iqxj2LmQ#U(L;WM9S2?gD@QOKR zfYoCPiBkAAlXYvxyy=PUQxLRNM&dt$Ax=#`L;)jBiPs@grOB0b9DcRKBIhTo0982D z4xzY5t0A-g(4Nd~_*W7Ogf$6?DHmd+-R|FpGamA25B=TD{T%{2CJRRhxv=bPjaj5( zk20E)Z3OwnSI^wv74MO*!-VhnNTf{o@^dluiPQTH$*aIb$@__t%wm$E39{WJkY>cV z@i3MR&;7&-y#JwfQ}TFV z>TERZc<(BAxIoj7&sQd{x{UdfLwQ3Dc_H-F+_$eT9nJ5^tv39p&gQ4qo1ex7JOOY1 z>BA0H2IFV9+^2t)`_@IioY^xlEnf5wwln^9;azOu%O6igwa>hEr{^stp$97mcmH~D z>c#rWH}N$Cp$RHR!q2G1byV?kvt3|CNj8LzLp$^i<`5n}tTDLdfonaLcMA{m1CdY3 zXL4boQ5E4TDU=6g_WtaOQ0Ko}+M7%|lUyGKRyz!uW~KeZ!u$o<{#C_hmq!);jmcG~ z>Nw9dK9$9A9Z5y90YiP@#ldoJ<1N)<4Pr5}_zvM=E=;OhvYb9oRsRseXR0S}e!WIr z`wu?mub;f;Pr9@TMaipaWy|bUX^s)ZcEtZ*!Rw7j*dnDyIP2N2IS~~(51?NWUAGXD z3qWDmMa1mVugZ#yDX`pD4TZZM6jy*xchrMHjQg9#q;gmDC>r_ME^e?xK9XWdh*QKu zAP}`};BhFUg|KS5MVlPn8EjS6{F_dO5ksxsi6Ts$cGw~rD+NI3Ij)=Vw|5*IeKg> zTseIAjLZ*uggWk>wfi<90EO|pWiWXXt@jX0{lV(Rx}*d<>~9v6Zd5};Y8L-#M))gJ z)05KZ<=@-(k19Q=&04 zlOr2P5B@2!-?fcN?qWYbFn%&XQ_)Dgch1}fUn1osdCnGeudz(o_A8$Mi(`BYzW=sH zPpAH=_%I9vuRl`jbdY3}X$Z-6+xF+furVhz_4yn>%6O!_M;7I8AhsE8BEvj#6_7nSrl@8;$Bu@!n$m>D0W8f+?v1gM|oj| zh2RfUepSJ{uE)=NY2rT_2Sj&YF9ImqTi+Gm1>{-)ws!nKFN&)fW6P!Q!EEIT{DN-s zC5wp z(lE?i|9EfmBMM*qRic!#S5WkNmKqx1=O#A+n#7ilSBti3a}OjmVHU^We$CMe15D3P zUfY{ZFV#gilB!#^jVNzH-%jn*ENQ3KHt+dxdU*Z=>?&6+4|t&g?rNLjaRyKQ;Ycyx zs%`ewomCEgu{nJ4xuBtR=H6U$Z}$(kCK z@rCvx;E*~E9>?FhkcBi4djBg=Pi&frbP1YV>{0=b%!Lc^C!9>8O@^`}you=wFN}ye zA?Ib?JcM{o4GbK0#6ht!`MqD83h zD|cOxG%da_$=mb~Ga&MQs+at6^NxMe8M>M=J)}iVkQdZeUYCOneAZzXgHP>pJ#zP= z>8UzdU?{b8S|#m*Hx2>0(!@j}q&FIXq@-cf4OWw`LC0NW{m+)y`)(3u%PHRa z)ydl12=%>iYS3>AzPc8>b##jYj{5%yd-JfQ)3$xQrfHg~DW@j0TxUv4F{3OqSEeyD zwcJ=#Tqu`J+){JjnrX_y)KbwY7fK}sL{h_DtPC9`Wm3Tem(q}NK@63N_kAtrbzbN7gcz%sy!XN?uhff~Sd~L38O4l5Fp9#S*zu(b)$NqO zmyQ4TK=Y?}GPbVn%AaYgQ$Y66z9hG?cl6YEaHsA<^%S_$W*BhlMacMSs7V3PZ@Cx} zNKTUV>DsHQ0eipen#H+6_j+icp!SRES=~xwjE5^86!XWATWu@!f1mM z?R{?7W?E3`W!s=PC-*L}`khjYi1mRGjvHyF3*51o9#~xy3STKDAu4CG3zf7$58r5t$pkm2t5tXO-5Qz=ftlEbEUdn;f{%7r?`_UhkUelI4fLhbSIUFdw zBy_Sa;idmuP~T%6X>?V^g|&CHQa(w!Y6A#xP0!Ywq7fx(`l-L@Uts0It#WrVilXCg z@2%xsuQKR5e*|Ac90Ys)h}QS#y}cS3V^*EX8@idpax_HJe$;jkTcttUxbs%~&g%~5c*-%lTUR$2c588knhinFdiz$AOU&lI-Z0dnB`s*m?R zg5`VX8669aDE%`aftXhXgJD$b*&2qbVGZ?bQ|3Lku6IOKZ|o!5B@+_mtnK{=iR($& zd&tOchKB*sAteTchWbCV@30!3_cb!AvK(6@^S2MZ9GyoDt53P42acdeI+j}fQ*`K+ zc^v!5HHOZ2DGHZi2OHK|o9!V7gQ(-*(8ay9`RL3Yo-5UPycME;Dl5F|*sj5FD?1G< z2ak%vOrwTavPx$MfCgHx|LC|rxR}eIo}aW%FMYK=A{pT5pjMYBSJydz-;1Z%WtP6q zYt=Zcz){dtEi)kQJ2{ijzh9w`NfnZiBAj0KCBj_FW#{byYZ)H*Qxxx_F$-?D%w7cF z^;8EUynOf5nIt5m&EB4XeJcNzr8T{uJJVIr2!R}I2;3g8mZjXY#37cEJPf+ou&J5<=m_xK&r|qS}2&t=)p3`rNIJjK7zs<`SVONA( z+NqI{#cx@I^KIY|qmUE;MG5iQ|Gh0K9$%xavY&OLBJHv(4-+R|D1u~v0T`z9ksTk7 z?!*qAMWEFF*Z1_*SgP!F&iiZ#Fxage76SaLDA=7TYXJ;BcsI0-xU^U^57AW|WqTje zwLegyqH8~k^@$iuFzU`dLp^AVZ+=%ihxCoYAQ4{{TGmsmhG;K#-qqX6A{tkLU5T`X zK^Wm%1@bAus-!Yxs|lgi%8Ly|Hz}XMp(pdga#^AmLnE`Y42d zuwMs{d=$d}KB`Y*dRfAqGi$3608??5vL=bK z?@u(TFP85>WNl`-97H>UQCL4lUe)86)K~zPl@5OOy6dXF!!XG%cj(DQuz{__pn94y zvj@-VaXbQ7{5amDOHb59wT$}v5JwZpn=}S$1q=6;^Vgj6Aq||N28XnGE`*@dfPFZj z?Oz@Co-=kKPow{Edd+3{;81TZZWz!Fz_w@Cl(Ximq)c#Mc9N%7U!4_qmBV?f&;X==6m)dHK+2N+#SDra)_nO}>dX;&DeV2-LS>+Y# zJM8#CBPYkjQA4IhAr+jG_lU{ghpU=O#($tje)$CCSKb^i^P`=lOSQ( zezJdA0BbXf23h^fY-n}4Gcqtu&pt68P`z@6aI=FC1Fmx4Ke6RcGO`25lcdv-mA}h` z6(%re(Em=a)K4+%VgVwD)nXD-xSXpG%Sx^Xf;2OA;TFmYt)?MiG#N1~vDQ=PkQYFGPV*Y7f#rsf}5jM>%< z+pYj1;3U&&D5t!alhr!*H|Bu*NMQQ!XZL9s@O!mgJ}ac%(Y0!MGV$kf8v*hI+Rnz7 zkooTtR>k* zQfQ(X>ym{wt^4*3_fd_u$ydK4UlG9YbIbE?9wfWWj&CRFHhYA&!A*$FFA$kc=o4M@ zjo(K9&e@>TnL6x!W7f78l-14=il$K6Yi{lD)GzCx-G(Adv( z?PaZ2QN@vn5RJ5!8VQM%c;^A;-Ed%)X(bF2CMx$S>$v$m*HbybqK zS_pQ?L4;7Wmm?L!+1dTMK^rXN%iV6&Lh}k|I830Vtv|rNasLr9Ap0B{DMA-UjYNle&63Y!nSqt(^uWil54BZ$F8gYl;{O7_ zzefzriu6Wv3pTr}_sw;k*?tdc3>$qpvC^&ca!%p3=Vf+Amv2;>ZyQ`pY$$QuS<@+k zH^X%@)R8Yo5ACAX+VNNJ0j;^@#3dY1l>hs)ju}r-IOM#qQxRNqL#4)8X}(IkTA5;t zN`{X)(j38hil^{J%0}<7(5^)26Yg+&C}(JQ=cWe}NA01>^an!RWXO7fjTK$xteK2Y z4@#9YQCi8r6W5xb^28{{rfg1n-VMsS(1s!FK~~xW^vdM{(TF_cpbiwHVkN=-tdU*V zQfM$bGEs?zbS-&%o!w8{R+I7rNl=fA4Qy?By8%I1b73v5C+|i{-h^!C8e4n7S3KG& z(pEP}!-)u5{*&ZO^RJed6oB6KWy^n(d_F1aaLpBJ>~nGeYdDibd*5SYzX`Q{XtQlx z0mWBt5_cC*%%yN;8%sh-hrko0jmlZY#GeV3r|DFbTaW0E{GMY)kkq!~Y}3?f6rn>B zE+K3ik+a)c`08}xB61NL-Zg5q;6Xx1J1{!Gc0cDzBX*=rr5mk`R`Q-s7kDUP||4V;;Hef?dz1BGb zHxQWUTJ6Pot~V5|W6e4^8qGZTLzfW$T;FJq0ff25&i84L?^8~ZE|1V28|I(b-939I zHJI0Z;OMfn4II6*cn}AHH6w?*Wd*NGUtlMf@3*M81I^Rc2eg9v-~mrn{wBk1+Blqr75Qk6baA(!u?7p9f=A8ZMt4j=|KIJ z<>F2Br8$J1wKy+rqV&fnE4s5nX2FyQdq#AYAB@nSC%?u=$T1-jHQYoKeYeezhSazd zW4X8XB5ohux`&8pabOr`6bxcK^w^WuE9$FR6WI?Iz1>Eq7p~gLoaZ>J4;=Pre`t7j zeYE)O@3-~IIcRa0H_Lq*z$JD{!}Y+o5^sMoFCVOs*_xmukQPq z%y1tiGR-8pGyU@IkZS*V?i@M<~X-YA2TBeLJM)utzgXMJ*wR z+^t3$fbr=i%nYJ%z=ub%nCdUV>A2o#x)MXF`HfwIYE}T-s+@9kTzi}V4fT3SCKycN zw>WBEp8@#f_P1V*i3s6686f)zI{1InR~J8T%e(^8l%uPhvoZWGWg43)yj9D3%enBz0EAFV z5g3u!trtm_0?h>Wwq_b8T0R2Hqo8%~Tjs)~N@`SI?W30LLiy|dll)0t>wja3o{UH>4z zHVErxcqw6#aH@#__N8m8MCcK}CZFNiKB_sz>b!K15dNyZ!h8^qUVG!9h08X&IDVM^ zi$U<$zl~~>GKaIb2UfLZx5+lJeIIigwzsaT@-t=qXt=ViFQ*prKHfLXcv5M5oiQFm zit1fWuIT2UpCyH+?N7PPE&;CH(^sEAs&Hx4tAAxosI_Su`<$*ESVXa_aAf=23VkhG zvH`!mjbF>wplFikN=@rG1Qfad5#q>=)099r=7}4u0F!Abg|t7nm8Nm!M>Kz z**OP!AvhkncPZ;488U$=Xkschc%Y>RZoA2ts`4k{Mo3w?d} z-BBY|diLCrh97(p5=>-)eE6AT#Iw41?MNr>&Z3w~_J!J-_BmzA+&5Ou?LZsx>4ASP zX!z7O7^f++0qiwM4WXNO`CU5)SX5qvO4WeLvAt_=wgSM}(t~VadRq zr|3oEm3R_kUf+(jxNJ{)d;j4!+4k%U;f`s(shlKJKwje-*6Po5mgDi;QoX|`w_0$t z-tm0fR!r!Vq9AXFIETWJa4_l0P?iK)z49e@vFBQEar6ggapJS5<~~)S8Zw~%yt>D&5p$pvP{t~N70Tijy~ zo~MU{FRRWrj8#jST%dGX!KpZ_uI?pbhVi*QqB}Y z>*)3`H4J^oyN_=(^A<-%WL7Dl(#0Fdq4-qGjEAZDdU_Iiwf;lBwF?IR!^S1fhZfiQ z-%BZqF|Fv5nKsM=Siqaf&%zw2d!u836P*4#w|GzTeTp&98M-6&J?3B&M98b}=*tk@ z-9~crwL^L_g4=3gEKNEHa>!Y^+r-wlJ6mJ3M~wajs+r=O#q-<}CibgkWIAB4`e&A38Em=}6fxG1b%~MHcOh#wa_YGu}fTY`&TO z;qWe#Do*tUMpI{#a-{UUY8TE)diBs$e{q9)wV8@-l{EB5oRVUtJ{5d2L@VBf9Tjv8rqguXy0WIxmK@hQ#lpy_Tu6RF8M}rYfE3 z3%>Eqlh&fk*Ib{Yp}VC?Pe_@nEtBewi|EFS>U{&3OJ>Lu@UR3UTt=dewN1k1Qoi181R@TO@!+-AQb?RY%|g z>+=W(rMFNxb|z;`e$OaPmI<}rWKwQjdc~z+=IB{Or)b7?5$%RaK|qj6JbjP90S{TWBsFc6aXwQD_wixwD+Yp1np{EAT5?r>`)rYr{U zF=e;yMuap#zB-Xii=5*)A{K9U#ogg99)XF(p-lJs!ub-6JWf>&=hgc%pR_ovdFtuZ z?!9B4nL%2!%GDzS*cCl|JR$W>V(nh`vZv)Tu(^I+viC=z#fOCbQxqd4I>ukGw0(ID z=vKJ5U1fc7+UB|ey9_~j5eyO z)e`BRc+BW))ZXa(AbO(FDebqKR7jyF20HC@uZ>wH^B$!*FYV z_8QF_Qm=U2Zkl0}#wXDs(J5E@aOc*qd-~t0;gY`T2P^;nQp5JTymuc5Xya>AFe+C! zj9s51JvHcd2cr%(^QgNI&&+{_9+Y?StLG54mM#wD7~yYO8{FK$@(KAHdd}iYUVv|W?YgM_Ds(ovLR66jgKy% zy!UPO>NGnwZP>7B+?{me1oqLObCf#6o%XU{f0*aCkM=FXIE3wyCGH3Nz#^d%Kp&t;f8FL^+x{l=_&?P zia^X0JuBrMS^5(nwpy1acgs&?X9kg~0JwJo>lb!ZN54U+~4fiXXbrIi8X z5#SpB@Ar@U7ncx5FI|(T0K5&;)~hCVVW4fAj!v8KrRFPxXnWd-Anb8)SlV7jNdS=C z?dBdmBk)q})nTzy%o3)1h5*x|lksmgD=Kz%BWIi%+TS=g`%J1wSW5YCPrj4Fug|c# zhizUF>IGEt6VZ@IH)hX^=qC8+j3Jc#+{8Ofx=9mta(A}LW-q9^gGa0@WC-VFHPSTV zvBpc^wqMH{~+%8sqQ8UFW0Cw0~Rn36#6S0f-qCn*YYCwP`TG z)Mxt=FwJgzFfQckV?%nVLC|T0#r?KlpU89&8X8wxsGIv+W#1zrw}$M7wR_|}aA95!p0r_>D;~Ec%SusCgeQ(`u;F(e_~v zUzGDL?6y`?w4sNji}%ouHDw8Fd46uX%YHOjp>dX6&+{+n@5OKHq6^P~l5j7mMpAcx zFc35w?!-f^0no)8-e(iRqm!E;)V;41A6n^vnt@?3!Nqo1ALFzgMBGGu)Rfg`P{;K` zq3h~-oEwPdo8s0lv2ELUCgnTrugyg-e374Cd#r0@uQ`tkt=Dn$Av!w(i1a~K3GykC zER(@*h|5Nf8J6UNz1D-+>5FbTE2%xnvL?qaqE3kV{sht(&jPWinPS!B5m_9Vc5}i5 zZE~xgsS|}!P&!ugA+uY~`@0^TeN;G5CeG}oLjx3zz%Hk&*;hZ?IzL*1LT;H6rUiHs zhf1&VZdJ~t{4&>Dx%{{R2IMnk!z!$hGvZMGoD2csRE5s5dg=>?v%x6{LZ)d#696+& zu{FtW(-I0XIt?cjsxAK19{HXD!_ z7X@(B-?)oK*qj(*S++zj|fk`MRU6 zXjVmTvUAS+r+WhuC#|@ts{)ng4BIfGm0Ekx9R9J=Ft(tDOpa)+qNdD8k4u=QCH5~( zDxSPdY8<~p(z-YseXE&$=ev;hEx!G3D?bmfuh1|&U%cdvqX8QAPwhSn-r&r}m5V^z z;#yEXK2h?DBa06-cy9OV6p^6%`?f^qdPH>GTxx`E#c+WkO6@JO9$ z()+s8#iQx+H&eHCgWZ)0XQfrBl%!jO<$JX`croW*!ZJbv=z(c2SV;RtEa zKwWM;H0eW_hkZ88-xJUEqtA{f&H}h2McX=07pwmRwi1SqbrPi*VN3>dOV0tKr%9$> zyh|-(oUv|T&xxuo(~#AlUAQ;$4Pz#KsLlP}UdAzMD|RKv0Xda)IDizF2`3yIVa!3E z=oiSF=)IlG(K|cF9)nmdC@P4xDU~9m$zofk65AFZhK~1Spma)rUDhIa%PVn46n`Xw zb_M7k%g5IMv9e;d2tXG{Y8w0IR%UzB`RMrf&u1=DAk^7&B{Gaz5FYV674XE?pwHGvFYmS8ct13ra>!m@u=f6! za(w;ZVDrJ!U2u8gU=)V>jRSR}KQ&_Gqh3zWx!KG>;#9Fu>$gq#Ia`vs!ek%wUH7$C zk)$b>JD`hif|xeALC@Amp<%KiaF;P+XN~38Yydy)%-F#W0ob$6}?{TUb|;KIz<|yu^yx5HVIeN_Rx&s&-C*bA!W}GJuVw zbR4hk@uW>hm`^{5SCwhahV5Y|-7xNIYp=o;2xtM{ihWDCW7=>M6+E^ZJ1 zpU9hhF@;YCs8G3l1T^uA_8vX2K|N@UORl;!fn$I_0Z2N{g{8DLsP{kVOK;&Wy57L_ zxB+k=!->8MTUi>^G1bZ%RwMqLS2U65lD|RMz7E*N)X=0n)`dPx=6o%&6TX(uYIs5F z_>Cp|;m)2wvL!_3m-Zy^Y=-66aZsh|*~pqkHq~cVPER^63#C^XP{P*Gv$B8#zU77% zkpfkc1_h4iRbwDxgF~t+#@c6-ezH#Iy$p}?k32Ybt%oXX00RD|<3nDH#{kcc`{#Zrv zZbss_kBPpWJ;Pp`T%U@z3~DO&ZNv+ zb-*~odF5#s$)?vg^ZtI)Nx>wI4>(stuqSJ1o+}arjhe8NS~}Yt3mLqgG0#OlAvh@d zUItTd2XgV-P{myK`C>OiIJLq!pf8{ETLGOTjsN2KMT2xZdt$60ua(T3q)lu*_&1qv z@}EPZpYS%ARc&@Tt5Zn`FZsZDodf(uMgAXfH<2;R4T}ks;7P+nVG9ZM#!$i#5PCZ6 zg>i^0Xr7_YL-@VYoSlwfU)6EkzUpJa0Q=w@LzSb!B0;pFzoe9CGG2EwZniN}BVPI3 zjzhnh%3Qo!;(2}Mts>UB5X?~x7iD5}3R9}Q10yg$k|{t1kB(>M^*I$dsX9A;U7!7^>Q%bWFkL$<2F zJkiiE0W&?r^exa;zGDFMD9)%>|4nn`k@u_yfU!hr4YsZ5o^)IMw*Puq{K7MUlD}%B z!S6`kv)u?E>dvHRS&5s9<^)#@4O>npOwp^LNlvEiYrulPd5u&R-|x7|msqulff6#S zZz?t-DB67OmKvoL!E*3V6_PLP=T%~;#@KcZh-m?Pvi1nlzACLRdU1Sxdl!t~2&e|V zy{G#4(a72%!1u3Me%|-XR-+A7m2VCpp35gGNSuNE6g-`^Pw}u`1U!V&Yvti&7B09|k4in*7t#hFxm6ow z+<7!;M6xYIZX~L=0IzG= zs=WMNS3vtOO|LzmurkcK)wjz9y7of$mUeJUXL!)P%6CH}@^`3FE|n&lasvE9h3~GG zJyY+ZyHmw=K~)HY(fe!fR4lUYw%0YL^L&#>aY47WX7O7!!OUF;LJGy*>;_22t`DnS z|5d*IPe}X+Plex^#H?C)Kh=Wpk#izOa|3M4-Yu8aT*eN#yr{j@zr$T5#<*i+EiBGQ zH|Oh~GxWmA?ly`*zzi9*H?^(Oo6g%?ou`8K^sNWr{clxs2})w@DzvS}tP0`P{yhm6 zT+ff3nY2va-tbO#U%uGmjN`Vog--&L7BN-{B7cic;o24RI{)N8Qy!2eHib6%Dg?_^ zp$})IuVlDL+lrb&6P0K+B<#S}{%&i&6qn#zQ#4cCPE4!76D=CH(Mg;h_t+OtG^bUb zPN@rtdGYr3DOST7O=-;4+j4&a0QE0qd=|drcZNskm9;NdV~bK{48&6h11b4^;4E@NqIK?{Ush zT@)j-yX(o;SvACY&Pd&QsV@!Wi$kgw&UW{9>fFhUTi(ckVK>#Mn2x`eQn4i^MO<-G zYBT{3t4-ckP~e=IMt8j?bGI z+WHs}-J3uO&4l=8A($A*{$&%ccS=>=hY6m`K|GQgEk)XN&NsICtW=Y>>>T>ES4s;* z4X+x4PYIOTq5wvEpjJ(#^oQdIfSTz*EYNj&d_+5qfjK`A9v5HecpXId{|lD{BbA;- z$Qb~K{)Rx3Rg-TM(r~lzW(Zb2#ux|OP-L~o$_c~Y&e2wTHmu$T)L^X5|0@}`Zr=JI zTdy*UWjN2pX`M7Q{1IiXZbvLV#YaeCFQANe}!v7$QNLoX~vqPG@{rO>xyV`7|&IHY8n6 zj}~ztBhmgkH;^>Z9*O5uvIf_?3FMbIWq0M4x6*`ls#~6 z?ct-PI|J`@USRkL&Zf8Wq+2Qotz^-;^v+&;dlF%70TGO{+O6}`ETTZgfl9HPgWO?F zJs4IgR3c4NRbuh(!iW~L#bra_L5mkufBVmo{{8=_^!X9F)C&=mnA$Y3JUuAXq~%;* zR&Ta2)k!87-z&RHZE)z14V>hMqMlWBv$;cGbq=w%GK!!I_cY9P&m@eFm^XSX3wG4q8J0NtEl`Pyc%8) z(JJvBrq1KqFLEW-<0V$x&GxTcI*`e#Z@q6MW8Fx%u*eoGff?N* zg95sJG+jwfRz;b;ru}+Ysu(gvBsHio+kTi*!}xu0;y#~6siJ4Qw-~Ac>5e;)2V3Rp zs#1Q$15-5qE$*3qDf(dBa|X>$7U1(?Y=rH7M193e4U6$v_+2 zd+5%Zm8)MLS*D9~qH=VLlh1ETersdsVRfQLsUT;!QxoBdk^UNoLLX?Xk=|rLYLi}D zC+gZa7oqf%>fSDP8v;AvgzXVS@`py^u~|2>xaeWxA4|%(KugxpFs5|Wgm2Lj>f!nK2 zEo+q_E18{LdpC&KYiyE9$J1H|YhfkDXt*BOjD8`>`ItcIH_!ueO9paW9n^Aj&UGfke2u}M+?6NCk)M(u<$P>X4cZw7JGEhy)at1{6 z`7J{JAlfr*7*$24i%A`GE3JrrhvS7}sNwmrl{TO8ZwW>~w!h)C`D~M{O$RkSeH~k* zU1Ey>?Mhisfrd>nC2d9KFHnBh#gn0b6ddW3k<)2eaZ>+#6 z^w&nyZ&=m8LvN4na8LNXuz9j>{6(I;L$qM+;1g~vWxb{GJtTr$p@;Ko9~$=3ug^O6 zRL_Lv+K)HJh1I}JpO@n3OgFnTDfX4xAHYd&`z-&1KUT-^98XdJV9kg5&tSrS){)_3 zJArYkV?z&bv$i#SU-}!I4XCMmss@*k6YiAWgqOzhHUtJudQ97cQA6}WH60nB${UED5x})uCX-;i4 z{|}kMKbLcTQi`VTTUpQ|?X*g;b_6DoWf!5aoYJVl9w%2D2W4$+2EZ@s=?@Q@q&Uwx zhb7bsqDPmOVv{pL&>VEY_R_C-W$x_((k~Fc4H*tOkG{6(O%WMPS&yCczF2hzpQpg< z92SuFryVBmVmbNm095D^LWLq z*W(aAfkl-k8R?~}`Ax-wNulnk@qIWb&_DzK7jF8(uKs`eH47SVCpfiE;|U*dLogtM zlLOm#3Ja{;l9b_Lf2ut$&Dz=3AO{8{q;+bPl;5iakX;#W-V)cwM_N#>PiSupt5!b8ln27BdXmz3YUtxMtBNN$ z|6pplq-XWr@$osq!W^qy^WLLD40L-r`remdp9B~YOPLunJvBghamQMA{D98Iv#0Ql zU2{W{z`=^vF)WN5ZSTtL8PzM;3>OS|=*@S7k;p|NIGAqYA8{+nV@9SXkv&326l=^1 zw5aCyP{Re(Q|n1MD5lBw$UzA+@?cP#{Bm@BykRh4kmhH(EaUnSw4{ANvUN|D;F}a+ zOLRjggOi(!-XS8tRyWU~oOm*<2N*Ld5dubVxYk zwVYt+Y$7OI%9~vI@fX$W2Xszsc5=mGj0f{XZbfL>tXLXY?b^KAwQBPb1nRki4YG=b zPqr$F9(;Cu((11V$tIzh>XvAy@)(g zaUh1K%!l9hO#wEG{`kk>DV9FwT(`zoEHRA5@C5WDzU~i?fCyUss3m(*ye`{$P%rUS zC@^e8fY1+J@6A!#$wB zWp!el6S=H62^`5syS@MRZ<-(PicKv$wQ*Xwx(GZQ=Gww9y1^!ruwQE&sDoHH(>}M{ zTH7qQyn>pGOt&z$D@Sw|KDJZ~Iv1TLs6^YQ_V5uEku5sy0mS5OHtQJ$u6PWIYRq=I zfk`Svhc%4;3}3a$BEkx z>NHg0gZZ|+s#pu8JqhrO+Bhx_>TcaVn%Zgx{P2I42p=l}EoHu+Q~^3wvJ#HSk>c@? z$gVts)cOBcf!j9IS~ zAnN>=H3vU3Zz=OiUETdx4P&i$bOEBMUH!hyu>BMrmU$Hy$yK+n)C5HK6W5WjkB=LI zPYT)+@mRO|6skuVp}f*A0sLd_H^UlEuCZut$`MJl8Xn5Nv|4Ec!Z^K zCUYOgU72|MdpHs4x8~70!v_Rx-CKCAc}<;P4fkXhD~kvF+p8>FJ9wLp(!D$R6J6M4 zU=NKCp!!uD|IO^b*{=V!PVJMa6Agoj(`yShhUb+eNTR+yr)u)%pjLZc$zH*r+I=@e ziv+rZ>(kn)XW{L+y5xE9k|93W-#@P~H7Ygp>kHU`>-g5%)6n9!L%g99%h8=& zuGN!ud223mi%>>=l0D>{O#(6S;SFHbqk!=>41YoK-4nFk%hX>0KHlF|GZv!qlu%8ClMt+_(cvY*@)SRDH4(gg zk7|}@!gkq6j-&~39ZAb+`6}aF)Jpcms>aafb*f3vr*HgK}rEp1P|z@^m; zRip~sW$JKY66rxu-FcEa>#x0V#siKMo}X4n%afE3RiuoJhV8U#a9=F0& zAz>&D{1SF--_A9A6yis4gKGB`!61+B8-Gvb#aivG;e2fs7(;Szn{j#ABS^$jIikO! zDo^>G9;ABm(9wHH7@_^vh}slbBnP2jzIC)Squin|qnu*0P! zCt~LDfqVrPOHAyiwHzFH>k3B}fX)jf<*AA>Yo^FtzI+Hw>&=)Kdlya-lYgdYvhKsH z4<2VNG1Q3V6nUjIrXI-8X`v-PyZ)5VaIytrGa8)7*6_#!e_Y@_!HxEfThp5#^ zsI@~IpWRs`Q@TidCIv3_NX3e_lgV;r5=$aZW<(uK7i4%0DaG=+$pZuGq63`yT@(9vHmt$R?weT< zZ?Lm8DvNlrS5jq8<4HZZn2uD7mvLVQXYOV9KCFaS%Z3ttCO5tesiMNZ2}wTgZzOIL z@5_oYvz(3mX+Bl@YINn>_3JLb-SThI0!rS!eC+EaIG$@>TEUlYB`)N?N={3_wr)314JbS4Zd|j)3ka~M|3a8LO z4XTHn$N~g9s%9Ae42iQkyJ(UT8D?&MLyHEXYPLJG_~46@4jY}c<|FmWAVWw}ecE~w z?dyi(l#N@~H7tz1s3x;WY#Lf3z9Hu1JD9^yhK#P&1bjonp-r%b zJvd`aSoI<7ja`gI(=Q!IE#jDBa+h}jqwdRm_mLOgqeL`o+2tW}+Yu6P$&Vs*#a4AJ zE_!C-JgUAoOULefP0E~01Zn2n+S)--1A)o^?OPSo7YPZGdCRk&O;#Ls*S|oI?r87QDv5v9w%bQdp#ccUXF~ zz=ep+S3ZKjMDhm;cCdd8j`8j`o^hK5Zf7;y6;CSkUj~Kvgk7mcRug(WqTdpUJNd_j z+3N0@I;2Ww@LH<pa!@WrYF@SvFp`?yLX&aKQW8x&50!_@?+hYlwgI=8_5|UVHoY zwOPn=0OT&b{5bL}PaM&~O|`W4`4t?MK*mjJ1ULnA`y$N+diX-_irAYg9L+yqa%ucf zjJPSD#Ys)|tXs(gG;?jqvAG+V2|}_P@<>?0@uBLy^2#tR##VR%GQ@~`T;;^h+L=(D zF4>-;-{E9p_9=EUj_4BB))h9`EM7c448pbaMoVm}=ZbETXuW||C-Q(!HL!UkoKikI zD%e=1G7hocy6z*+*3&YB^ZzPG7o2+ja9x?#Sv>~0VTGym3wAR?HMm+Y^Dz`rKz#iq zpk!L21g_wTh>D`LcE91hPJD&ZL-jFx&bC+<#;Ao;Zo_s_IJG(y5uEZIj;%FrczjT? z6t-uR=*R5qmA}_VuMx7eK%QM0ht~dBj21u4e@(1{2a;MtN$FLxf=QJW@}=!%eKD=k zy$P1Dx#nl6 zt3fUGRZXK^lGcQX=tZLYUqrNz=L>X5mIZv6aNKGrXOj4S5Pa0cm((Vii}1!m4FCH{$8HGMU;HGk<<e~xuU>X3wpkK;9$;t~4mn!S$ zxMAE3Bw)-$t3cMs+`*12Fd^qFBtb3r>x?&h*3ZBjdv3$H;Ox{sf%z_KM81&IzElOBGl*|>o9Br3z=%XJ_1y*_&7!Ej@F!??l| z2r9U>3GvOF@oT{dVw891qw39@u*n=ld&i4}(|bZjWnLkX*6keriHHPdl>@m67g)8O ztIh?X1TEZ$J=hv@<+?#*jHlSLt;e-&H+GT|1&6m1sbK|Y5n08vo+d-*dR;sCyIJ^~ za7svCnW&9!T2YsHs!IIuRatWtB*Z_VA#u(~?bS?^zi)^RGrys4vMcVeb;a46Dg4|6 z{;dFu(dGa0zU%f*bfHE7KZRTQD-f_Edu^dZd5V>fep9K>TkL`Ip8CcRN5)2JYTQJP z?c4bRI<0pHLX}h+gbHcuO?p@4xU05)`7&uXswIH)|MB&uVNIUd`_zu(sI698w4y+( zrB&974ak=KS{FtUkmXHCfS@2!5(5f`9nxuSQ4pvKiL#|i+1_ky32TCi5FtXUkOUGI zH9{mYLf4X#u?_i?4J*Q^23|wInO!wxzByhsisaeh=Qa}9>?hdD>h(7;}9fy z`rrOe?9l>OS_Ud6tWn&X2{(U(20MHm8;Z&l5~<~#2~{WTGHZz`X={Lno{a`43R5}3 zl|)^vV)m%jP&}=Z|F)y zT)upneCv0s{=Wu`Z(wL^o)ljMKN|S{gdN@%#^=N~s#V4p-UZA!ru&%K7Dj*_Lzc%S zg@IqPEyHM63#{k|$BB3gghZ+*z;VM379RC}9@##W9}kU2xJ#TRl}8hl=a;q)6)Id5 z^RTn*+?E&>h2)SdQJ?pwDF=Vrfa*<#4ToD&tK| z4qtlv+mQTu#n&O(Fu%S&J zi@DVV){#6#^KZ2Pz^t`L?<5GG*I9=GaB!~vH&HOt@kS8v#8pxVz8(N~!M0cKwjeWd z$7%lWRYiW$K1Z-4eDgc_s|fspjCaeg&m||kI_YsSes6?brtrnLKik|ul`XP+MGVZ7 zBwy1nWp9wiI$ym|J;mu1NJzTH_kKuRC91i*=k3MZEwBzVE>qzUdR$Rcr`FQJ&vgk8 ztv*Df%?uQh9p!;&c`TBuP0QG_Ws9>QL#Un1m($>Yo*vvVnKWJjzGxUH#LUbm4+Z#m zZL765C5G06*8#VIGVl!1HV7c#F5ca=mR=b9NdxFq@NwRAc^UmrM5mt>F43CE4C`aQd!Pu{TNrC^=kGZ`hm3u2j| z9CJTu*RBgY3gN4j3I3KX7gFmRKb#s2QS9 z_*auvjnq%Cy?xtHcc!iI9iSh`CoNd--pw=6G)Eqk|7x0P-CzDQaZp8h8DLrjZW3{1 zyBfBW!-r_cxmhPNhmpdfSl~Q35RfAv2rdPLZ8qGxi&N0py%em+5phFT{On|M<1i`U zJ-XgHY>9yL8e)AS{%>UH^t65t~GI$~&`_^PcIh->0@{M$R)i`OX1t_QbmlZ7x z%{Z;+tJwhL9WwV5qF*!Qow12ZN=rKp+d5LW+;@wIiJ|ODOjf3src|UktL=C1hOf*YGcoz(tzE3fqCd3XH%7BQ zGxljnJ0Re&Fap8Xa5VS#wnRkTj%L7Y z(dT>C%L><4+Ir}$vVD_R*fD7_6lDM+zZzGoO9RTls2&v#Oc?Ci`=c5>N4%jORTw$L z_Q`E#feiLE55w9jY9oW^LYY^NL1`MI|MnvAabA$*S&P-!@v%9_p-N#4-_2dL@qLp~ zH1BQQiuB>ivM&`n#_b4M`zN{~PlNC=yCZgsI5ClTOrv$av^bv|VEhYqc_F6T0n5l_ zITIE-8EoEN80j9!8*eagUrX+%J1=yWFFiSl=p5G@aWCh^{Y#PMaCPWZdh?O=Z}ISq z9S9n$n2;Ikt)s=#LNjt+7m@mErr4at>ihET)e~~LG3SC-_+@TzUS0$5w*uiGdWTc# zGxtX3*I>YFQ|GB_fg>5DnA^~E2a(u^p6Yo&UHAvW_ayvzwex3{rY5^bi%7^ zdH(|YDx0I~pkx7S%al=D^1K;^Q!STaD_fs_Ee=9Ne5w`h*o1Ba?}&QmT{;gPv#~)6 z)Js2-r~C7oC)7s{A9hdGIK{-*N%WA@e$9Mm<~5H$7_~T=n6V;&ATp(WA^Py);o(PC zRgYtF@$0Rh?*x6*&CKjJ26?z`;FeUv8f-(3Sg9 zj~#@S`X)26^d=-MdFqrOzivGNu-?P5vacHzB=GS}LP#*)rYH zo&*8pf3kNM_I>vus^%us%J~@R(C*`Q^mcAW}#DsKs$i~XBE#5KTBofT!}30UH!O`DpSIKA9&v|4^4X!eIv`P8=o z2eO?1P^Tu#f5o1$5;$BDY5a9HeDEn+^cW+z&g%=XR|21zKysDv2HP? zX&(vULGPP@?}sc#(yp_Cj(@qId-)2J-RIwX)S?k zExp=g{(feT(Un>NVsIY8n*RBe{34n^GN<}Sk&8a>2>qq3VIpOW%{Y>$57W+GIE59= zhisy$Dr-x9snD7|lO)MoJorCA-TjRd-~HB!PmgTg^V~n9Wgwpk`j%-g79?k>QUZ}x zAlwu`r6Gw`>iqbrW0jHJX`;IECF0WgqVlaL?S!!|VLQ=us{;Y)G}k~zav{z=%sj7S zVfyQ`-`KH|Ly^{_C-1go9KySm_VPW%jmr5ZBDo#>4TgP?CM-Jf4|efNTS=wyLi>ee zUL%9gN{e&$h@nEOwnsmIClp-yaJe0k4Dlaf@OCK3`%*`|6{+n?XWg|HX`-ho=q(u- zbxPTgS{>coy+&-zU~z`03UR+;TAKs{ z4qS3K2D7azd?&RYN+MQC`d|P3?dQK9dkWz6- zwaFxnV9pV~e2SIF5G=L*DI{sX=b}2^ZpaLKLujsaeFXvTdd|8CS(SUv9>a2jbLcgN zWVlxy*OOc~kU#XZ+8tF5ajJ24j5uU739i4;Z>2&50uUDn{C3A&x+z&>2VMkp)$rKO zr>l^7i**x;Ck?@eJ#-!MD{Pl8GZmT>-5cSp`*wC=$I+i@7U}K*XnEP@(!&qN<9P_k zbnmtvUybniT)Gv*=G#G4;VhZ0kTy!GF(aY}8mb+|1aj@-?X99s&8#gY zX65vo9OL;B;<50Z8iseo;_c6nk88(k5YGe4lvtC*Oh_9u=4N(5?A^0u0nfQoD$+kh}6T1xQW@CKC*9vZzM=IlUs*7a{R-sl$dT2b7 zq0&w%y!!^iZ5`y_-tvu*tN1UsG9O$M88|t%^b7^LV+WE}e))2c1QwoOFn7nFbe?D) zy}9pj2<5j;>uHe=r*y~hkzjRKtXCiEUS%O~tDo0{x>w^B3`bwI1pJFQ@_W(mT_Cg4 z!bX!xFs*(5HM1v(O&Xn8@b!3J(R&0eoGe~3!@CVHxodK>P%kjbdT{#_p&@}w1Ew_L z1V!}Y;DU!7i$rGw6@y4aj7fZ_-Zx2dey59DvRjl}@*o1DeQ6SVc(IS~HS3(uumI2Y z#|@6LA4>hl8jT0f1=6Jr!4P_#h$EMGHd_Y>;7M*Teiz^L0{8{FZ1ca`mPv_KsX3pD zo(;t?^YY2 z1A})1|>kHItjYI<6AX=JmoDB5pC*Qf>Sl`M>$-<0;tOI8HIpjaC6 z{QrJx{+9B2XVUDO*sLC#|3X}34Fl|~<5td3Te0)smtMT{qmPFdDt&faUvroaG%k_( zs+NSCq-=}Fs4C@>`dh#{Pm%#K>K2J04gi=;sLJXp-Uds!l}nA7 zJH_;y&YHXhPO-11ptw(4;F@-|@8g&_9xtbrwD>p_K6X0B;z1U_g8>#mRzB8H1;%Ch&^<0P6BY%!p@`$>S^nJYmO`swlf z^sBe*n+M9eKAwyIzw9y)1!dS}xOf+Qw6*{rBSgiQ@|)XGeMC}HERi=l78hjT0QZ!G zlb}+}3p1@BRAwxc)?X4uTp`;SeKI(i!S9)9K3aYAZyy-c^hV_lwtACZQ+c^0-8t45 zz?apQ@&3Tit`#-Piv`r9M4ZO<9Qte)jD^TsuSfwvO8m@^f}2p)4t3fS`eqXjc<;1-%LLkGw8nFVBSb^xt|n^Sw9i~M0MdFrcpE`DcY z(MB{SZ`?_e;@p=$^D26Dk0eQacg+upt7I>$NF?Dsmu$b4iOua(Q&{w-gm zIGLV3x`*s;cx*6GLnLjJlebbX-~rx? zZ#4Sx*Xr_w`Q74!e(ekj;#iaD8=Y09U8Ao4$7FZX4Hjd|1?Ij9s*0xBRidhVPn9d* z7?><{Us161QSRf;!VLA~5?yzMxfmB{&PwL{Zo{T`pG)huv3xcEaTY%;j_w?QZ`slA z5rnV`LS!FY`Q%wb5{u%HCZasyM5n1B_8$uoSL-xtQe1jmYhJoe>if}}yRBW&zyJF5 z)#T~YF5|25eLQ`K0`eO}^`-%qWa-a>H|BX=+l70@_91x~J*UleWFJyo|&Cr72OSGA|cZGXe@J*!+tgF_<{ zE*#8QxOLa-CC)x9hwAkR?@0`A6Q)#Hhvw|l%i}*fm){{y8;rLYjC(qN?EVG!aDu_t z4xYN0arkhX{!IHEO~JM{c^djB@9*O1?&T5E62y5ecd|&3lEGOue5`6s|Nf1z9wcxd zj0-qhx%e;;@KC}VW#4>jO0}1Rdrcpc({t^-0KzSs5P{=%T8fXW_`1P2{w}F6(Bv@$6p?Vgn2WW}MEChm+*R?K>kmn+G;i1-u)Eo5zCJy(0?7*a&u>gJQE@G&gr>Orut@G>Ct~gL*y5+ zgj4%Ut3QDi%@gvA>aaj(RXK1DA6PDSuR9Y;YmB&Ut+?FmsLOzKxRFPca78L+^Zrb> zy)a>KL*bgra55%DGng|T?b5&9k?R5o+|gk_NrG4vg&JJ;3@j|OhB-CVqBZQb0{Faqn; zkq6gF7mTm=kW$wEkXW#aOW(6#_U~q#rQ(wMwpk5t1%N67TGH$r8X)9}4|K>)u2YTj z1zWiKTbf^!lGrw;;oIN=i2|Wy3bsC`-GQxR?w0ai+HG!tC$?BivPdS&S*C2vT z8{!7{HSXbwCfIafvgb-;Ml=5zJLGCDnpYU6aL%t;)RlE!H&E(=5LaXS-DR9{UFD!p zm_{)*3Z1YJ-onkGucKO-yq(p%ZP;)Pkez^Y4}bZ9l21|5~=3Eh5Hlq?^h19eiV)DJ)=`S zqpVl%nAzbAunIlZ&?-SJQMKq9dZQDJobow`R)Me>Sj=#_Vmf7uVV*6-?;NLf9B2%> z!!HzaSGslDyiy<4_BS5--8BE$H7ajV5IAOdhP@AMR+z@#1z!V`nd;h0#7DNe(s7#g zH^4dE7sV4sIEYLixJ`y;@Hbx)SwQo4%lof`TZ!wV*^@1i!;Ur~Fy549CgnUV+0A|a zdUh3Fe8}b1ryr%>EGx8BCMn>V9Q$$x5?~btN!8!H?2j@;HNV(6*k|^J0$R-{|EKsq z?-tj$RkUI-z9GWHmdbp0@4mw*sE|4nzPTmUJ@Y#wOx{`Uh=}?{9%*3vj2JgZ$J2{W)S5tw^c-X zv{f8ygfd67&dPPuzmr#bl>-;Q*$p0LGq!B0%{|$#N)JhmyXoL{l93b4hNe>=CDL*= ztzI&j9f;IW}#;I(nBNxALYE zSWlWicKC2Zxwri2WVK~(V=}ZbeMU%f1}LuM9Dg4}I-ejduKT zT5~WRw||B8>8-KeUQLe9F=*h2_>%y!m z=*XPI1EXPsajg$j?zM^K7&p(-PoerLIE7vd>P}WDGrvQMS~vu3Fr@cs1^_VN5uQLC zgKv7J&k_90p8*h`uyC4F00(+gg4OKHOAt8d!;+a?1ott*}L0W_UxV?m&s2mHt zoBQjgvj}VfQ@b}pE%Sn^7~|5ew1p2`YM^C#gl>6qcrmrHmO%MYvH-boXrDKtRS2K? zDhQ&MR`qYWUuT8=Yp>f~hleilzU?bi9>j#MELf&N!h$*x5~#Kg?JUkVJ59GesIxt# zld>=XLb05YA<%lw?$`SXhoC%mEj_-J1rF?mpZOUlP%oUU##qp~AX0ZVo{NhnJOWT+ zZl64Q~5|YI_y|<`Y4AnU+zRzscMdX5AIZ7l~(Go_@ zrCR3KGR0x>wuulbTJY4U4aq|Fy&LbF#I9<`_^*`Yhp?LMthuiKH-1T6uaDjHyv0mZ z;XRprD*qOER#e|n^GbUTeI8TyI#9y!I?O5_*tr!j{+fc@zr7Z$&_Pq*MI4;e3DqVJ z2^g=E0)8|dp)_KkDc49(&MBW@ZU9O~93|{sSwUq3VC*X^g3YsnV9dsdZ)ss++wd`s!}gh1QKD*cN6w;1Ya45gHQ#_FoTy!q z=YJ)RaD8=h5|mu%^M690EPbm52+A3qv1&NjcJ=a0Kq1ABJEO6-)c46xBcjEcyfyVq(1KiCLQN4vwf|rD@ruW-U?H%4ZWQW!x1wK1>_3=McYgUF4ZVP!jOL_R{tH?q55N_XZ_J{ zX^i9~A4JX{qSKEl{(;DfJDs&p+2$Lu=~yquOZN%7QXDc48ZT)4G@vm(wMg@HSP^yZ zafECWe#i$xR}&a`Z^}@4kEzMs;CF+x;5*-WA?CBUL;snO9KPw>&Z6++l;ePDS>0I? zCwh4lqBPz3PiPiwA4zU%;1+y-jq;IGN#3Dyyr9!kh;+dbV1l%faxt_+$SzaC{83bX zzaT#6x`@XOor{8WbEN{qEgMKJ35eT#7OpO!M7+?j(2dOOuyK#MM8g8V(GZV3g1_<>8Ne4;{?0A)9%wteiUSVKCEm`G#E;(&SC4R}7LdUiDpo2$K-LA6a zs-#O!xuSTTUqhj#VUR4{#OKRsTal%c1+}h{2U<=a>YzJ_vDM_M-Kz03t7t|$?UHC8#4@JTQflC78YkhI$jO^&S0GJm2)3AULMFv_>ZJ8BD zSyw#Qr^{=b;!G9Dz<`|Nowt(!c_UV{I~xrsK*Kqse`n9W7_gPig_!Ni#?<#zkaTz# zVqvB!!Q?67-JFbFysHLXPEC6wL|Pt=vON62YVe!D4BTN*nsx_8w3d0>(E_-%TFXnRV(W* zg9Kgj6?yu&S^clXr0j@bO_fd%LisMJk2?Y}6#cE6p?kcsS&!&mp3K8qqSl(US-lgF z^CCGX?2NCo-`qR33o4_Up6hw}WUphVbFAUn-w}sFjO_W7JXg-nnWO^NQ4dH)1W3S{ z03l78grptaK@0WW9vtYW`b^Wm`;O#&N$oIqpl(jCYC?IS$aQgZWN3$Fm^ODA;Qj~_ zp&FaV#$af5LRV@mC2@GOO#KODm8#{+L0?3R2mEsgGp_1#TtyC$tE~s9#?I{YmEz6{ zBAj&DD>TbzPXVm(qzm)7e{f9j;o{8_rb|Kzldwl!6P7xv+=MR`ZU8LCQcN494HE(6 zI&mcPBq6gpw*-ZmYN1K%=o51fxy)7?_wetcDd10|l@3=J_);7@%i%AYI;_F8p zM73$32ixP!3m9D6x$b)XoP2@j69w(UO_Kdj+Vb`g)4aGXh&Li3p?<5lQV11a9{K?= z>rLI29T|Dtt^otYr?h;*IBJErlx@n4_@s6M1~qSf`CH1$grj)xX>)OtE_vQN*G&%x z{fM1~GKtIC-j5aPv?L{2u1M9l9rNgTQkNu}V>@ss1lmk}YO)n!_?%!}6+1^Egr!4S zoiVLqzmEb+s2$%O^ZbF#l;t>wQy#B^A(k=e*{8p*rDHSe|5m^T#f{&i{~@g#sS#&D zg`V;{KY5x3bu<5Z_9Re}WdB|IjN|)YOdUEhz474BnhEBMPj^ zx{M?;t+C@q@}~~AknsqcbB8%a%cq#rxdvl{@ug7)dBwO!=Q`{Nb&W|<>z^DU;TDiG zox=K3*RfDLW^)Kw2hInY(yaIz(+aWu&y{}Xv#d`?9sxl=FC-P*2AleoA7LMy1HFyW zqu$o6M}gwKM+VY2b<#%-3ccr&*dQj{MnD4n{7MNrb+kSeotE9;91q>DStDs1@$A=OZ~r z!~lO~Z>MrjxG@-E0J|^wSS#=1Qkn83)Y1{c#6@^hTEx01_Flz&O9kWlK(fppcEuL3 zgXEXpVyE^@znZM(qp%4qZpt_xEmLs2f&IvFnr)2ez*W?NcHyWj=@0NqNn`VM zfY!_%8e33M-9Ln&|BJUBa@`zI?W-xr1E1A@$}D? z^@J>{;soP zI`M{yOKULPUvG+AI+p@25kpm4O1Jb`+N>JNP1qH&rDfyPGl-S>?uIUbulpL4_E$@P z`5Xe#|NL83J8K-4u=H`F`Da|0m!E77_m2oMelq45_K{1NMy_-=9zL~`g3Q4c`7~TB z0I4po`nh>WE++)(Qs)10FNIT-urHYFhi%!Fg@U0}@z0cJiy71pAIWv`SvqZYavB3B z+JkbThfOt1B)BcvK2P9{v4-AMn-rE~Y6CET{SEkAHR9rbzDpp1vb}?`sj%qKO}D^9 zlhq+DCxJ?7W3Z@F>JsjzsN#+fY}#Kf4V@|FZtzKNw9@D47+%?+(%-1G-;-}@{IG;( zL4gW*W#CCzF5j6|KI+M1dJ%E%{mXepkr@#(r)@-!-k-M1psE3_<#!Hc%~50*$G8BI z=}x=tsUuC>OGN^KK;+KKQ!y0yPnYuX2Q2srj$Zf9N zQULmk9ZRYf165;bBX2T_*t+`wAFp;6IQH^%UXO8?s^Um4!>PS;{FLOl?3ss7u<@ZB z(16LbFUVR;Yd{eXS9w2}%-6%0JK4B1#7T}s0ADx-wFL~n@=YS8Xe<9}vK03x;h%3+=%&TvZIt3Uzlh*>DcS>V|r1zlr^ZdbGizE0W;gf<5*GrU0X?#;@eNndz5JEb;W+?#i*L@5h8&j4i?gL`<>8<2vF63xMgeP(XRGumqu=nAkV@ zV;*$`O07xDS_MS?n!g*4jDvsCJ=bAruE^gx)2!x~f%|EU=O+pt;8^j77x!SntQk=n zrR8GirfAx*r5>vA2R(LQfd-0Bh%UBS2YR*U)4DzY_^!Lc__o?!&t99xG7fO0rdV_K zk)%Qn)DJ?!h9gWys8uUy&uMRDPniSvTgEikZlo7NhxJtbCrBMtTeY3#Yd}m?4M1z- zNezc=z$~BI!wrvxAZ_lKj&h3v7{fMHx23>!*q!DNJd|<{{Y-lv7#kE1R31HzPboDH z_Fj(CC3o`g10^rnzc}T%p|;W|+?+bQ%w!Giv$QzzGYiT*vf#m-kvPDf!y^nYxa)-L zAaj4Wh?h)r9oT!SJYo_IyN=Q>TsZZDHZyNVXznd~)2!skR5y=Rxb(Sr(g-DtC%_|7 zHRxqm_7~XpGW)nC;%=Lj&>UubUUWO|V}%qkx<_Q7X;r5`bFo~$Z)E#x8IZQwF{n`6Q-sG|j*$+YPDJ>33VonILyE>-j^ z4t)kQGsx*=Gs6A$h`y2BA#XrLPDfX#=3zu3wcvLTI@p%k{)DTHR6Q+TqMWZr)#CcR z?BomhG;$4wQSB>nNWUdcA~B-`az+-uX)U=k`5+*VC;( zJ@43IK9;z}@z^Iv_SuiT{&zjsFUx%@K=maMb~{&8QkUkpYUU`y6V!Od%Vs2^wK~w zv(6sqIviMH9gu#E&_X{kK3zWRrt=pe`LNKr^qcXwTA;2+*E~fwxWDHKGIbrn&#KW_ z7eCD5!q0|QSW7aNs3LV0#W-v9+tu3chS}jOe8Uuo-+l`eGlu{E*7uEG9t(z!X5T+x zMeqA2H%-j5)d)T|@9d#TVrBBHgOSKPDRy8R?-zO?RExI>u=`Auy@isHky9TdLb*vA z>NuwIT|$w ztROeL!p=6$MSE)(7LWVU=8hvZaoiMd>~*{_P9*ILlWO~{7+!FdBe$`*aw20#42hn; zQ+!jMO&DX%^}T0E$Y)wiSway(o~VZqrI2LY3L(mhx2+G*lF|RzR?;3g!dz6IjsTA* z+ClPG3m}a9iVm=^2N3pE5?12GZHalFI2jl zJeMoPp^ARDfSQ8!e2}yZt$OKP*=cfjXXU%Uk_Wd;uNEW(7EB%Zhi+X@Ls;s2HrZ%c z_>ipD7H0loCZ>zr@kw^iV`CDbxytr*3A-9u2FeR(GCXQ@akbp8g811KaiFLtPLzNx z4rqWVHs45wqq#77qAqAOilsOM!v`A+6NL1OkpK-2#fi|JuN$crkdDxDRiuddPv>v! zgLs>;P|l)qq23-ABlu>wz$X$dKZo|%93N?ipEL!X4t2ZCSja<&42{5@7BgU)ZMvLBpxLkzdfsq`k!KWb*5Gx}EyGm~!-{J;@a zCjEd5FEF@x?v&)^HNGNN^D3&(!8U2M;^~A7?fE>4)Q9vC_EY455xlq`s9Ur=rA>$CDukv<#7p`x%zHLn-$8}6xmB6p>NiMmvpyyi z8ZJ)gvPATw+iDz5iC4_>I&PL*?K*BQ0MOrC6IyK}*5H{Z2rkT61^cSyafofYTt&3Z z6*Zp(x)f8PHOMkd{FQ#gP=xI-y03a$P!3o&Z2T@K)N8Vn#tyyM_<|uDChU(im(aK=`22|owR{MB_2Gi{E93F%C;%krC$V1blKD0-1Zme;#eE`L~o0NHag_CevOZ#tYKd!uf6)^S0|H$)h8$KF(;tl#bO zud&M=!W0<)WMb@8_z~Ix5obhYHAg>W=eeFXzzB5{SK?TnIac&tNOJ9YV&g8m%K~KP zG;veJ_>ww_Ss7v;;%M`@Yqk!c*5}ylKNrtjo=2A}*(~1Wh+gg`fUnX!t%xoLyOHnJ zr1kk9NQUv+hh?&ji_fM%hsagK`K9i;F%oGL#B9E`eCYU^uKo9}cbr*NtNgsAD__YS zTLTp#K(9|n`kDIM`D}ByvmRc7{Dj^Q0NLzwU_|!J{W0Xok@)U4fjh^_0vL{_{o(Ne z$6v)0Xz9|5I$%_uHq{noo~u77dj0zrqUA=6OPD1(LQ0PBGlGLe?k`uP*hRML5{=Ai z_ihV~1>|)3nmokNvV`eoTPgV6F%jQsXdG8HpqUAMbHo1?3?DCm*-*w|}-pzTLjNL5Mhni2zA-lL%RANZZe zDQ+i7_U#b=gi(9M+^U!An{4{y8;{{g62>kuEf_Bg`$g?*Y3$x+GP+uJymP@7_AldW z+fU_L6o5&76tj>0QW=ugX~$b^&oj58jn57eB^!Kv!+vR2dRxhK$UZ3K}fp@+k% zUd)aKhL{qs;L47mOO!%%S1O@@y5Z_=8joyy&Mx2}4b>*SW<|z!^ynsF#!_NiLUpj) zYlu}%6!0N~ljWgcjwVmN-+hz&+ezHR5705n@`_IpZSJER{32bTz3&z931z?obb>VX zwzbf5Z56{Jp22WrOXNvt$mKS$+jtZ4VwIM!P~UVE(@(H#%b|fP67pAdmtbTT_EqCZ zWZDZXqvsj-ESsutwLvR!s!=}dRsT-~bG$nRHDaepL`L&Yv417BbY$$G!|nccM5}R+ z_Mg!l>SJh}xP`o3XpQ7Li4bQ>aCy=VL57U{TgTHam_3VuEKg`qN)GNet^QY_ivy5r zXExsm{<2g$ZF_Wpj%FL#`Bmz(UOR;29usSVEQA*x(;yH8sy~;3sxnN;hDj@v%Qu4|$TMpD?w6_^pR5AZZ2g_(Ou5(CSr@1{ zTu!wW$fs{dvU}=;+Z*x0L@@u^YzVby2G}$>R~-%`c(E|-X*TbsHsp8_Eq5*5RqbFW zEa2nYd1Dt3TJ$e?1#A5)&4TP6-wCN@>)DScLD!giB!*jB}L_iLia`wscKFgd#e?fhgfxfUc> zTQ9@M;X~4!atpTibyKjR0TZY$VAQUMQ5Y#ZKvrakJOwE02|!o$u<4P-?5?H?_pxkr zznOCOgXDBFCvG@&XCwRl$XL}7B&?nbpQ(LG9NjmT+{#~uUhEiqMx@WdPi7!&GDQnL;T^xuLOQ=)^^T-@*BaYIa%o~o*PehmIL5% z{I_)UeWj!wTaF2*dxx?N^vK9+<)H98z=s=|j;oeGLL+>^Sw#mm!3S@_3@6-MN2-d zuP)H;aWE2AghXeW?F8`XU%F?`-I|loeIrY(Z+sNsh&TM?4p3P~U+v${?7;9 zC;EUN9}=U%^x#S+-0)!$3!o35k{0W?xbkgDDQ&SI6Jo)=Hyh|8_Oy6<70oVpfbdYVJ5Spybes7GLh7ttw@a*%#vt$;s1=$S{J2C zQ7l=`xw4%vQ_(D zu`>8Fh8wQtWMZkx>PjRvtNK@%RmpOdeF2+h)dvPnM#!44ThU!V7*t)n*C4YAH9k1_ zI_*idvS2L}+n6<|JsV$wx0Kuz-e5UP+B9Lg7Z{gxc~na&@iB9w$7;uE7r zaQo!V+kd8EWv&oe()vuP-J!LRHT=?yy+E#y^M2f@1Al?;6|3s$wC|s0jNnHyL4TK>7955tBkm74vre4c&Xow>V9EJsa41S?axeTVPe;BxN2nTWw-A9` zSTPxcHBaPFdM=*1f@zG%wZ*dI(GPn3`~AfU<3T@Jb6@6L(W5_%92Tm?WR4>Z* z@Aa!p85o_bcYLhE7~mE{)l6ynQx#CXy|d=J-i_mxy3Xa9RP#}7R60Fp#Ne%U!Aimc zTJ`$8f9C8R7dkamy~O@~Xi~&~<^seHC@STGfCb}kL9)4}gg{v=!scMfAbv8e7-SnS zJzcy_kd@0Q5$&Y@@0Zsg4cGmbH=N2Cs$OY0W!}|`hzzQvzW?ZoAkJ7`F)2W+4_P4E zUj$~t9>qJT=bh3wtCp_Zn^wG6X{D0{;~pUS4#aV@K8H*;_1ogHblIy^Y+~`s)b#xN z`<6Vn_B`>MQKfE~O!so3-@l9Q-5u!O=az{7gHcuPO5YM%2YV!g+}r zP=~}K>m9!%d)F3Uh&8R_jx0el8s?nzy!06S5`>mA7N$Rklz^+NYX6O^M?DahA670d zARwhL-EO1-ZXug#|081W!dD%1gt=_=dd~)cTs(8Wf{yX9Rt0dkiZ-J73H#7e<;R=# zL%3XlXaIXhNojb$JuG)d;+v>CuW5c=APG%j(nj_yKMbnuDHQov_?35+M#zSnLvg8n zg`G8Rvi(o%%w@!qG1>IW>#&T4KXNzcePEK-@ir=Q;xGwzYE9W+U-qtA5ULK=cJ zrRg8^k{J~J)4#14GLeg5L=OIzq8R5Nu$Q*Ij?9}y4)nmt^iXIXG4{?2MKPVw=)rHm zAIJgtFm-A$zDN<{v3${>w>{+z#WG&#yU~;~?h^BPb^2c2_lFsjvAmB{@kbe+Ky;X9 z&+a?+Xq2^InW#49nssY{ti}#4RF>0_U40MQOr||sf{(t%*wxs0Tq4a?NE?gYx?rU?I2f2fW#lSYJ0a+W{!3BU83OG{&tkB> zHeO>F%<+JD92R1f9fcDyydjv(TRlx^75>A;Uih6wA)}QS$|Kqb93XwxImRWTJ}D$| zWpHj!N_}<1{&W(~rJ=*i;S{?gehYqw7dq7;a$Fa|unzFU3%%Gg0r?rMUE15dMp=UU zn8X8*CN?GP8(*v&3>ML#M00eHS5U|G2vz_Q%(cYX)ef{(^rD6F5?LDaNj56tXPb=? zhB??9GkrGy@l-#zQ$_uPl;zOL(L zz4}q{veT*#`OKk42zWA~s%Jgzw#VdSu%FHrWw=230usgD}Yk#y*SF)F9^R-|FwYgI`gn@8LI0cxm+sSLbaB@ezFdN#4 zJfYbXp|^BPb8`0y4BISoCUt+VR8I(@{d92V_m1MMbFXTrq%;;76&aJ*ywfS%1m(Ni z(YouB`xXw$mos7gLcF@Y4;ku|_vE;*aD;W4KFFVHYv(ER(pGYhYcC- ziKE!;BPlitgXe*X7{K;5tF)Xb7Kp9Vfk7BS&g(!N(hCuI4ujk0B6g;A=T;2A5=ujvt7b? z42Z}dM<_q44GwfZrq9V)wg!xPhR1lc0zD_g88Jl<*~J*T%Ia*9YmnMG1KwNK)I7bA zWj6Dy5tZFJ$45;ZZ?FHKV1MIl^YV}e2G)keBw`MF=>1^tIzJ-Am^P6VWndl=)u{## zCg@PuYCHKd3P=S2QGGaR_Jk1wWB7L(E{3Es_#g8;eWed56Ag3!nlz(5{LYl5{&o^h zuLjf5nT3dr;SkGEAKVm+f4lPnnB`!_L!V1{=8F~Ae_-fDwyS}s4(QeYBpJ1Ue(L+J zcHtqS7jpmu_%wr?eeLP*sD)pdWUuArduvd=f0rWiFb50(6eH*N4a#m_uNdd(Bhu`G zuRsjh=?Am(l~Mp5zKm@nps2Ix%Z$^`tSl+5_~=ebOygTJeyY_QFbc3cH;c$z$Lxy) zqR6z7YRAsiCj&2ewbRpoUve)g+lvlEAdnO{Tkzy0SPKCQmp>)f=z9(uW`_HR7&+o2 zgUqJCKylBiw}ud~MNh7x?qMcsdBs+tvFkB+9V2EvF=HNHo=qElA_ddK`3;-!>KfkWT1383dCP~Hnt}Bx zMm4(kCxwc^vcF9(mZQ^0J7fc#JKFHv6=hG5zD)$?&!UA;^j8VEL6$Co&63KK+8*Cg z3OxXnMueJO`F5rI<*d1BAdI-uos~1x)^L`u`vB*%)&_}^qo{?L0qNENqi4?{cn#{C zV$7)thiYjC9apq?Awi?Mv+sH+B3t-AL|P;FB)*`B@*92yk7iQgw|R7sug|G>JV{HY z4;|K!`3zhBjryG}vvk%*Vd6h+uXE%XFTtBkDgw_FLTTuamd;%hSHW!6sPJm+-O8^* zyNqByuNeT=>RbG~?V&3X$h^g%(Uv@1!_s{i_svsMt3vm$3_ z>=_3E#W@PPOB5P+0}JxX?_>;SES+d<)0(f{#KD&!a|((1O1mi6cf6{1M(_H5 z@|Hk!e#DhrPceKo26s?a387uWwA-`3ERsW72KzLP!C>s$>t|~e3#CU;((#OQ*Ow-8 zO~83@YZp0*Nz*hJv0gF@7BU2oQ|~-A&}y#W0orZ(L71o~xe2xR4SnurGQEqcVsO)W zb1Bj$3P5GT^8`)ym>c5TvV&+)Fgfc=s@Q7#HK6Am8Sc*ku?7M9Cwu2cB(He+M5l#x z&xQE*a8uwjo=QGTireDUgLq-2?%NyPX#(8XvKJ=KWLsPOzFYYp=2Ndq{EC#hC+E`p zrHtRs7&VX(d%x_T&xwP?gEq>*P2Q^-xHOIbyIFKsDxPqk~ElTWi(^f2F z_a%{7gMpsC^Xu92t`W5l*NQC^1j>XdF^XNl_MhBeO%tK z2$d?+nYg9o>?vL?U{XE7qn{YVAhkB1Gp~}(} zZzKUjEegZ;?F~%g^+ry<4FHzK`0y8zfZn@^(2&aU3_<8nomrCQU&22mj%I3s8I+GJ z`%qe8*DS539_M6v(xLc$@uO4gnJLnHnd|9Rr3D`i7O5DelG-EUfnHu71r(p(BP_aH z(-CO)k3RfbCv zZnrE(+IT@CmG`RVJF)@n$mNDDV_u(YQhpdA%%5EwU~5U(YhJz(OA+q61+Z?=HxBu1 zLf68h0gM4oO_ARJ1=c(!Co7Kow*Rn$z4$tnbhiOU4EJ$B3<=|QZVc9EPP*<_2Bwh) zxZm-bEfHPx49-NW_Pl}98x3CGANFRQt4>lskUx~4kO>*DnJX9MF zjRBFa(5|4mx5v!AR->NH*o^F|G4ivAm$O`|H-?fHvPLADi zuh(xdqSrB~N?Q4|d+!kQ@96szU%Qa?YUR9Ptk8^3IF9}bJGH$oMsfWM#MM%IFoXk@ zyq>>a3OiN2ld4tCHtCAgjs3i4;^sp66t@YM*jmkx6ooyOb2L$St`j4=^Dk0EGn_B1 zf|aZsAhNk5jVrz%7Hj01KAdy9T^ZQEGBftE#eDDDFC#`%3CKkw6!lBnl(Tv?7u55<@~S&F1h>qOJle1KMb~O!gGzC$;$=AFP-d~`eOu3FSDjli;kXo5?9|s?eb*$m^Ufw zuRxi+Hf(vIE27}qfE43z)P}_fJI&<#SnRPOz?N@&9lu-Vo>1~M7`~gTVxq1HFTruEhpzU`+Tc@^I{;)pV`P8hU>uZ{vZ5_rvQk@hCu)dR3GJ4h%`SK<%@TO19$DL36}{0G=j&z9Z%xY})Ty>gmXm{bNj$J0RBo}o8= zSdjL~VC*oNOGxgjN!1;f=pUZR8YSj)uWlz`vB&o>3dBah{DRVCaj|>trl%r3aXoXm zfAIxCbc6WEZPv`!O8~^~r4iyW-5Qw{-&1pAsF((rdAX7mJL=parw6U^rL^K~_V>2^ zIx_{`an3Okzyocy;dlbwZYrKh3n<&pk@q&6x*Mun-T8(~FVhFz$y|+Bfk;=11^%-r z?@>$RHh_GZwA!xVzW{i}(+z`zl)E%|x)2#6+OI>zTuUM6Sl@<%LjrCozS+;DpqZyt zhRMlu-wr{X&NvH};k_7GVJHx_K3a^}RifF>LdhHlH#AySoerhTK!vjV#;PJ7*`sz#PQw(tfU+>*+Kg)E_zefY!oY= zzL%)g+yZE0BACJZw7y}ueu`BJ6Cd8PMLQzkn|KvTm#cA(v1lL6>1Z^`sn;ZNkJ$0* zhGP&h*|CJGVuK>ko|xV269NFBk+#XNc3L%6Z&b{irt_kw?7225Q(NOBUXz(M?kQhj z<_Cb;OWw~O!9J;%F4fyjH4lA2RQ1Z~Ua7ui^255Yu}y2vUp#K1Ys6w-pZL#Dbe`K! z9tf=bjln#v)1~ik*i+b-`OO{!WHbh=6uHHfOX>!$1x%kP?~?PQq3tV(o5z9KBbz>0 zCxVhoJ)&qg;>NYJ7b-Ln_(SiWbObHB6A275GjkfqYz4Q{aE2q2*2ToK!)gSPpnbXg z{`E<~0Cd#O6a`2D=D+`wm~q1ay-r&w50&}U$Ol7MEydv4woZ2=pM?AP;0Fy|x&8Ii zta37e-q6(%e`;taBrxNj9f5iB5GYZ4zgqpw41(*;?v+t;&w~r~>Hw5N*U$lzU&U8i z6Ft(#de4$T8^iEhv{@XbCt$*Up{wMne5J=&=o_wV=bMdVf)zW9-#M$qTdU@h2O8Y< z6Y(o{mRb5Y!v(gr1EMg*J$lddCbX)vaVz;U1N5yvRkHE`PNsZqMv>z2&lpifH0Jaf zgL^?c){bAEhQ!|;_x6Zh@PENB3?q7CLAk15?R(XuN4sEnXB@kf%qE3lbCPtAEG-Lx z5UVu$#wfd&KNP)N)(#uv%{BWV` zT%PFc5*&_OK1tb!{K?7Bf%NYIHPBUb8HVRme$Wf7u#~s52G0k8V{;Y;hNhb1H@=`g$c>z#@ z8V@JxR^kv3-3wNfYST1gd%eZ)F6#fZ4EKIL?TcHs zn6l#))7MX_$~(;-IY-YeefEg7lVrB%E)(jO7oG%KP!{s!3rnrtMfig~^Ca)d%)8l> zNq432>a+%RmN{-6_S7@#R-2L|Bn}AEN8S6*a*OOb$dn$ra^#iUZ|9e5>|4(o zsz-u%Kp5rz<{)I7gA)whHZ_{#I!&*VxQgZmFX270NfP$JI1+hU(?G?4e+sm41EIu# z8NmV#bhO)GR$gikj%EP<=_A-WK#FWFn^14YH=dorI9|mO*+5qH5XN+8EuClHGsnK3 zeUb#&bwzyul>fhftH9a*6FA@P6RqgtJ+gO4iqC9IPA#b_VIc3(OG*uAB6hGa&x8OJ zua)_DWWRIiSkC+M4=w=iAxe1Oi(It6F14NU_o0aQ8XlWp&3oRNcbEb8Y0uXxr~|E*Q*5k6_*5V-4chx+D45n2nA2!?-oXDs-&ai4sPE%eL!dd{IgK7-zx`@ z$GEIb{*3GY2+sH#jdt|#_Y_^IuJ?;4)U^KVOU0okS#1jar9iunQ+69JXtCeDrSmFy zq&c$tF+wJ0p5qm~W-uOx+8T&rdP#j%eu{=gG>)8ZWU!3*f zk7QW_5QXgKdY1n=bUap334q2u=IH~YQ{Fad%d#=P6=S`{a>UvZaKDou;!&mpBv}81 zTdT@+soGv|0G*IDCKEPA72+uM6jBRYb|2Y~p(=t@=p@aZsg6*%eSZF6o_VC zpeh@K$xgUIXLP)=G9{w(FP!%89;&$5);tq@`o~_PbH?pD zSDtY%yd%@g1;By1Ce_XkNpik<2ZCQ(6=J@-*cr3)=5{)23bUTc4Ad)KE``N;ykkGU z(D!P>eUfXbHb$H}{o`zUmn=ewB`@VW6*M;X0*n_Vi~#i5v%zf18OzM zBOlB_wO->Q2{&+d$aPpOjUgZKhcJTlnM2E25upO&J5SXGn{Mo`x^izU4B}5?EpM`y z^1D!77`2qP$&}&c6r#OQcqHG0%4-7O!1gP7IQ90#pv94rRJ~WH2&JSWBp(_#gn6Z^ zz~~N%&G>yjCq3-LfVF!m^H>33%fMN+-gH&Mjce$dn`o6VB1RjeejNtLNMGs)tM6=kQW)1aHom zoZu3^yW8d{M-P08IV;oYQw*S7UQ(^y%=+_hX6MMSeB60!XhRTfWm}N^m1jr*5&l5V z7r$_Xx+UVCRExq|O@<2zGS|>RR~&9G+jEH-sH$&uhxIB6!+<+5ZLahbzk;$; zEl)Y@CX?`bN~;?rqrD>mGSyXd+d(lq?qf#IsODw8@Y2hMxCwf`Hto2D1K5ypa(ezEw&z=EVe_6?p1J1 zL1B&%hQFlU6&Nvz<?a8(AgcEIHP zPn+bak&0a1;z4z)1EJ+te{`MFe-}Fgu$^tKo{`K5BerY->_>T4w90BbY@q$jA~_W99ZOT)h&#Q#SRABaVAkBuxSw(N^AL0SB>R;P-tPwf1o3G^q=q z?kU8`!OAl=U%$Wx;`|G}o`gM=W6KzupH_uTG)BoU>*kNZ8RLntF)Wr&+axID@mn=b zz43jdg80cJWKKgr&;Qe2V&yDzVbkD=AdX*@ZrENX9}iRe%jPaMW|6l!4-#v2B=rfz z|0s<6>{FXh0D*zy?FeXr{-i)S?HO5s8JOJ?a81zep!jl2+=|0sXw2O@spwEbBp}1$ z*_cew)KW%J=Mi$=)uSiDH(WYfU~2M{B5*Cg+eq}sQj6=B$k@I%=%}ekd}t&cc;vid ze5aYDidZ;vVsuRH1@ByJY`PhSvztUB65_YLBQ3Kc(`@GTHMwW{TriOq4|Dzx1^5pb z@1cjj!*)AOP3jLqzo={K4?gAK+kUS%tiiGK#T>x@BRU;&?t~H|LMbNK7o+2Ou9Ndk zAf>gTbhddmMm(W`8z*TzhrHq#nOEo$Ntr6lH+%->nZAS% zpzWxq)?#%C8MSO3$08B4+CRHLmhhNy&`usAvZAI z@&O9-&$?!y0bj^f26kzSKDg&Uq^?~6o~2PJl7Qhj zvBc_FU#WD|(C{@p*BpV{@lC@;-rP!Ve3mDCb`X%y$fW=YT(op$-NluJwF4d|N%9~t z5aA=lz$S=<(}83rgoncgD9#y zsdllpjrypx>t{*#{bFxYb5kp7CAngG+hsE(QkexFcZtsTK69t>;NY<)Oy}a(Fb{GR zQy#PA)|J)IyWtIJ>??Ej)URB4EeSk~5_dmt=^fskb1=Ch6%{iYBXWVNjLaEG%z`I< z;=m_HLmyk;l`nQdIjf0o1s~KImX;q#1cAoCt9Z~Fz! z{Mx5nRX6RsL3|j3$aOPP&LRCwAu-PY539k;ymz<=I9;Bdbm~U;?w2{sF8xJt&JRN} z2s93d8Lkw+nyj#APFwv|tQ^!YU@wZATFN=!w=VwtxUNA`aL}`gjJII```lb|c)4yl z$ImZ0JR;c@R8kE97L?xMu_4Uc{2oa4D`VYR8!Ubo)7Df@sk2wwc!9p2@vV-3*QbO8 zg8J^(!f(sFyE3~#v##obh!VjEc0Or6DrQx<6on}W@w^lm ztbo;%eRaxraDm&((@|O0rVeVa3?+2;0*Pi8FCL-POG8i7KK;Z~|;OQ8boUM`N9 z@qeYz7JMul_xDMayGABNtLW;c9z^fatsy){Z(@TSBJ=PzXl24=rY1VoU`V< z4F9;Qcsd=2tFdMk!x}JzFrnMb9X0cZxx1Q(LF+~Y!Mgjb4`7?DLgFh8Hx{y`UPlV2 zdKR|Y%asBejV(P~1omyLn&h}N$ezj

(RCU2OpNoD&F8vyK61ZK1h~upIaoi{+5D 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 Ci0aA! diff --git a/test/game/components/dino_desert/dino_desert_test.dart b/test/game/components/dino_desert/dino_desert_test.dart index 262ddc2d..20c9ad38 100644 --- a/test/game/components/dino_desert/dino_desert_test.dart +++ b/test/game/components/dino_desert/dino_desert_test.dart @@ -14,6 +14,7 @@ void main() { Assets.images.dino.animatronic.head.keyName, Assets.images.dino.animatronic.mouth.keyName, Assets.images.dino.topWall.keyName, + Assets.images.dino.topWallTunnel.keyName, Assets.images.dino.bottomWall.keyName, Assets.images.slingshot.upper.keyName, Assets.images.slingshot.lower.keyName, diff --git a/test/game/pinball_game_test.dart b/test/game/pinball_game_test.dart index 52ce156d..884037f4 100644 --- a/test/game/pinball_game_test.dart +++ b/test/game/pinball_game_test.dart @@ -48,6 +48,7 @@ void main() { Assets.images.dino.animatronic.mouth.keyName, Assets.images.dino.animatronic.head.keyName, Assets.images.dino.topWall.keyName, + Assets.images.dino.topWallTunnel.keyName, Assets.images.dino.bottomWall.keyName, Assets.images.dash.animatronic.keyName, Assets.images.dash.bumper.a.active.keyName, From 5edfc2f17a036f3c946f92b5946c45922cd99d1d Mon Sep 17 00:00:00 2001 From: Elizabeth Gaston Date: Tue, 3 May 2022 10:34:53 -0500 Subject: [PATCH 2/9] Update app_en.arb (#310) --- lib/l10n/arb/app_en.arb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index 562d9b1f..162b0d19 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -20,7 +20,7 @@ "@flipperControls": { "description": "Text displayed on the how to play dialog with the flipper controls" }, - "tapAndHoldRocket": "Tap & Hold Rocket", + "tapAndHoldRocket": "Tap Rocket", "@tapAndHoldRocket": { "description": "Text displayed on the how to launch on mobile" }, From 58468bde2ff1ea9aa1769d0bbd473f9b589863e6 Mon Sep 17 00:00:00 2001 From: Jorge Coca Date: Tue, 3 May 2022 10:42:24 -0500 Subject: [PATCH 3/9] feat: improve UI of the initial loading screen (#309) --- lib/assets_manager/assets_manager.dart | 2 + .../cubit/assets_manager_cubit.dart | 0 .../cubit/assets_manager_state.dart | 0 .../views/assets_loading_page.dart | 46 +++++++++++++ lib/assets_manager/views/views.dart | 1 + lib/game/game.dart | 1 - lib/game/view/pinball_game_page.dart | 35 +++------- lib/l10n/arb/app_en.arb | 8 +++ .../lib/src/theme/pinball_colors.dart | 5 ++ .../src/widgets/animated_ellipsis_text.dart | 61 +++++++++++++++++ .../lib/src/widgets/crt_background.dart | 23 +++++++ .../widgets/pinball_loading_indicator.dart | 66 +++++++++++++++++++ .../pinball_ui/lib/src/widgets/widgets.dart | 3 + .../test/src/theme/pinball_colors_test.dart | 20 ++++++ .../widgets/animated_ellipsis_text_test.dart | 30 +++++++++ .../test/src/widgets/crt_background_test.dart | 25 +++++++ .../pinball_loading_indicator_test.dart | 45 +++++++++++++ .../cubit/assets_manager_cubit_test.dart | 2 +- .../cubit/assets_manager_state_test.dart | 2 +- .../views/assets_loading_page_test.dart | 38 +++++++++++ test/game/view/pinball_game_page_test.dart | 11 +--- test/helpers/pump_app.dart | 1 + 22 files changed, 387 insertions(+), 38 deletions(-) create mode 100644 lib/assets_manager/assets_manager.dart rename lib/{game => }/assets_manager/cubit/assets_manager_cubit.dart (100%) rename lib/{game => }/assets_manager/cubit/assets_manager_state.dart (100%) create mode 100644 lib/assets_manager/views/assets_loading_page.dart create mode 100644 lib/assets_manager/views/views.dart create mode 100644 packages/pinball_ui/lib/src/widgets/animated_ellipsis_text.dart create mode 100644 packages/pinball_ui/lib/src/widgets/crt_background.dart create mode 100644 packages/pinball_ui/lib/src/widgets/pinball_loading_indicator.dart create mode 100644 packages/pinball_ui/test/src/widgets/animated_ellipsis_text_test.dart create mode 100644 packages/pinball_ui/test/src/widgets/crt_background_test.dart create mode 100644 packages/pinball_ui/test/src/widgets/pinball_loading_indicator_test.dart rename test/{game => }/assets_manager/cubit/assets_manager_cubit_test.dart (93%) rename test/{game => }/assets_manager/cubit/assets_manager_state_test.dart (98%) create mode 100644 test/assets_manager/views/assets_loading_page_test.dart diff --git a/lib/assets_manager/assets_manager.dart b/lib/assets_manager/assets_manager.dart new file mode 100644 index 00000000..438b75d1 --- /dev/null +++ b/lib/assets_manager/assets_manager.dart @@ -0,0 +1,2 @@ +export 'cubit/assets_manager_cubit.dart'; +export 'views/views.dart'; diff --git a/lib/game/assets_manager/cubit/assets_manager_cubit.dart b/lib/assets_manager/cubit/assets_manager_cubit.dart similarity index 100% rename from lib/game/assets_manager/cubit/assets_manager_cubit.dart rename to lib/assets_manager/cubit/assets_manager_cubit.dart diff --git a/lib/game/assets_manager/cubit/assets_manager_state.dart b/lib/assets_manager/cubit/assets_manager_state.dart similarity index 100% rename from lib/game/assets_manager/cubit/assets_manager_state.dart rename to lib/assets_manager/cubit/assets_manager_state.dart diff --git a/lib/assets_manager/views/assets_loading_page.dart b/lib/assets_manager/views/assets_loading_page.dart new file mode 100644 index 00000000..ddb76803 --- /dev/null +++ b/lib/assets_manager/views/assets_loading_page.dart @@ -0,0 +1,46 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:pinball/assets_manager/assets_manager.dart'; +import 'package:pinball/l10n/l10n.dart'; +import 'package:pinball_ui/pinball_ui.dart'; + +/// {@template assets_loading_page} +/// Widget used to indicate the loading progress of the different assets used +/// in the game +/// {@endtemplate} +class AssetsLoadingPage extends StatelessWidget { + /// {@macro assets_loading_page} + const AssetsLoadingPage({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + final l10n = context.l10n; + final headline1 = Theme.of(context).textTheme.headline1; + return Center( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + l10n.ioPinball, + style: headline1!.copyWith(fontSize: 80), + textAlign: TextAlign.center, + ), + const SizedBox(height: 40), + AnimatedEllipsisText( + l10n.loading, + style: headline1, + ), + const SizedBox(height: 40), + FractionallySizedBox( + widthFactor: 0.8, + child: BlocBuilder( + builder: (context, state) { + return PinballLoadingIndicator(value: state.progress); + }, + ), + ), + ], + ), + ); + } +} diff --git a/lib/assets_manager/views/views.dart b/lib/assets_manager/views/views.dart new file mode 100644 index 00000000..8c60627f --- /dev/null +++ b/lib/assets_manager/views/views.dart @@ -0,0 +1 @@ +export 'assets_loading_page.dart'; diff --git a/lib/game/game.dart b/lib/game/game.dart index 7de964eb..ad02533d 100644 --- a/lib/game/game.dart +++ b/lib/game/game.dart @@ -1,4 +1,3 @@ -export 'assets_manager/cubit/assets_manager_cubit.dart'; export 'bloc/game_bloc.dart'; export 'components/components.dart'; export 'game_assets.dart'; diff --git a/lib/game/view/pinball_game_page.dart b/lib/game/view/pinball_game_page.dart index 9ac25cfe..4557c243 100644 --- a/lib/game/view/pinball_game_page.dart +++ b/lib/game/view/pinball_game_page.dart @@ -4,10 +4,12 @@ import 'package:flame/game.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:pinball/assets_manager/assets_manager.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball/select_character/select_character.dart'; import 'package:pinball/start_game/start_game.dart'; import 'package:pinball_audio/pinball_audio.dart'; +import 'package:pinball_ui/pinball_ui.dart'; class PinballGamePage extends StatelessWidget { const PinballGamePage({ @@ -71,32 +73,13 @@ class PinballGameView extends StatelessWidget { final isLoading = context.select( (AssetsManagerCubit bloc) => bloc.state.progress != 1, ); - - return Scaffold( - backgroundColor: Colors.blue, - body: isLoading - ? const _PinballGameLoadingView() - : PinballGameLoadedView(game: game), - ); - } -} - -class _PinballGameLoadingView extends StatelessWidget { - const _PinballGameLoadingView({Key? key}) : super(key: key); - - @override - Widget build(BuildContext context) { - final loadingProgress = context.select( - (AssetsManagerCubit bloc) => bloc.state.progress, - ); - - return Padding( - padding: const EdgeInsets.all(24), - child: Center( - child: LinearProgressIndicator( - color: Colors.white, - value: loadingProgress, - ), + return Container( + decoration: const CrtBackground(), + child: Scaffold( + backgroundColor: PinballColors.transparent, + body: isLoading + ? const AssetsLoadingPage() + : PinballGameLoadedView(game: game), ), ); } diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index 162b0d19..5566066f 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -123,5 +123,13 @@ "footerGoogleIOText": "Google I/O", "@footerGoogleIOText": { "description": "Text shown on the footer which mentions Google I/O" + }, + "loading": "Loading", + "@loading": { + "description": "Text shown to indicate loading times" + }, + "ioPinball": "I/O Pinball", + "@ioPinball": { + "description": "I/O Pinball - Name of the game" } } diff --git a/packages/pinball_ui/lib/src/theme/pinball_colors.dart b/packages/pinball_ui/lib/src/theme/pinball_colors.dart index 5db27229..df1ddce6 100644 --- a/packages/pinball_ui/lib/src/theme/pinball_colors.dart +++ b/packages/pinball_ui/lib/src/theme/pinball_colors.dart @@ -8,4 +8,9 @@ abstract class PinballColors { static const Color orange = Color(0xFFE5AB05); static const Color blue = Color(0xFF4B94F6); static const Color transparent = Color(0x00000000); + static const Color loadingDarkRed = Color(0xFFE33B2D); + static const Color loadingLightRed = Color(0xFFEC5E2B); + static const Color loadingDarkBlue = Color(0xFF4087F8); + static const Color loadingLightBlue = Color(0xFF6CCAE4); + static const Color crtBackground = Color(0xFF274E54); } diff --git a/packages/pinball_ui/lib/src/widgets/animated_ellipsis_text.dart b/packages/pinball_ui/lib/src/widgets/animated_ellipsis_text.dart new file mode 100644 index 00000000..9b52d604 --- /dev/null +++ b/packages/pinball_ui/lib/src/widgets/animated_ellipsis_text.dart @@ -0,0 +1,61 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; + +/// {@tempalte animated_ellipsis_text} +/// Every 500 milliseconds, it will add a new `.` at the end of the given +/// [text]. Once 3 `.` have been added (e.g. `Loading...`), it will reset to +/// zero ellipsis and start over again. +/// {@endtemplate} +class AnimatedEllipsisText extends StatefulWidget { + /// {@macro animated_ellipsis_text} + const AnimatedEllipsisText( + this.text, { + Key? key, + this.style, + }) : super(key: key); + + /// The text that will be animated. + final String text; + + /// Optional [TextStyle] of the given [text]. + final TextStyle? style; + + @override + State createState() => _AnimatedEllipsisText(); +} + +class _AnimatedEllipsisText extends State + with SingleTickerProviderStateMixin { + late final Timer timer; + var _numberOfEllipsis = 0; + + @override + void initState() { + super.initState(); + timer = Timer.periodic(const Duration(milliseconds: 500), (_) { + setState(() { + _numberOfEllipsis++; + _numberOfEllipsis = _numberOfEllipsis % 4; + }); + }); + } + + @override + void dispose() { + if (timer.isActive) timer.cancel(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Text( + '${widget.text}${_numberOfEllipsis.toEllipsis()}', + style: widget.style, + ); + } +} + +extension on int { + String toEllipsis() => '.' * this; +} diff --git a/packages/pinball_ui/lib/src/widgets/crt_background.dart b/packages/pinball_ui/lib/src/widgets/crt_background.dart new file mode 100644 index 00000000..202af1d3 --- /dev/null +++ b/packages/pinball_ui/lib/src/widgets/crt_background.dart @@ -0,0 +1,23 @@ +import 'package:flutter/material.dart'; +import 'package:pinball_ui/pinball_ui.dart'; + +/// {@template crt_background} +/// [BoxDecoration] that provides a CRT-like background efffect. +/// {@endtemplate} +class CrtBackground extends BoxDecoration { + /// {@macro crt_background} + const CrtBackground() + : super( + gradient: const LinearGradient( + begin: Alignment(1, 0.015), + stops: [0.0, 0.5, 0.5, 1], + colors: [ + PinballColors.darkBlue, + PinballColors.darkBlue, + PinballColors.crtBackground, + PinballColors.crtBackground, + ], + tileMode: TileMode.repeated, + ), + ); +} diff --git a/packages/pinball_ui/lib/src/widgets/pinball_loading_indicator.dart b/packages/pinball_ui/lib/src/widgets/pinball_loading_indicator.dart new file mode 100644 index 00000000..ac9b4f46 --- /dev/null +++ b/packages/pinball_ui/lib/src/widgets/pinball_loading_indicator.dart @@ -0,0 +1,66 @@ +import 'package:flutter/material.dart'; +import 'package:pinball_ui/pinball_ui.dart'; + +/// {@template pinball_loading_indicator} +/// Pixel-art loading indicator +/// {@endtemplate} +class PinballLoadingIndicator extends StatelessWidget { + /// {@macro pinball_loading_indicator} + const PinballLoadingIndicator({ + Key? key, + required this.value, + }) : assert( + value >= 0.0 && value <= 1.0, + 'Progress must be between 0 and 1', + ), + super(key: key); + + /// Progress value + final double value; + + @override + Widget build(BuildContext context) { + return Column( + children: [ + _InnerIndicator(value: value, widthFactor: 0.95), + _InnerIndicator(value: value, widthFactor: 0.98), + _InnerIndicator(value: value), + _InnerIndicator(value: value), + _InnerIndicator(value: value, widthFactor: 0.98), + _InnerIndicator(value: value, widthFactor: 0.95) + ], + ); + } +} + +class _InnerIndicator extends StatelessWidget { + const _InnerIndicator({ + Key? key, + required this.value, + this.widthFactor = 1.0, + }) : super(key: key); + + final double value; + final double widthFactor; + + @override + Widget build(BuildContext context) { + return FractionallySizedBox( + widthFactor: widthFactor, + child: Column( + children: [ + LinearProgressIndicator( + backgroundColor: PinballColors.loadingDarkBlue, + color: PinballColors.loadingDarkRed, + value: value, + ), + LinearProgressIndicator( + backgroundColor: PinballColors.loadingLightBlue, + color: PinballColors.loadingLightRed, + value: value, + ), + ], + ), + ); + } +} diff --git a/packages/pinball_ui/lib/src/widgets/widgets.dart b/packages/pinball_ui/lib/src/widgets/widgets.dart index 34d952b6..3aa96c3e 100644 --- a/packages/pinball_ui/lib/src/widgets/widgets.dart +++ b/packages/pinball_ui/lib/src/widgets/widgets.dart @@ -1 +1,4 @@ +export 'animated_ellipsis_text.dart'; +export 'crt_background.dart'; export 'pinball_button.dart'; +export 'pinball_loading_indicator.dart'; diff --git a/packages/pinball_ui/test/src/theme/pinball_colors_test.dart b/packages/pinball_ui/test/src/theme/pinball_colors_test.dart index 36e45c0d..3c54c60b 100644 --- a/packages/pinball_ui/test/src/theme/pinball_colors_test.dart +++ b/packages/pinball_ui/test/src/theme/pinball_colors_test.dart @@ -27,5 +27,25 @@ void main() { test('transparent is 0x00000000', () { expect(PinballColors.transparent, const Color(0x00000000)); }); + + test('loadingDarkRed is 0xFFE33B2D', () { + expect(PinballColors.loadingDarkRed, const Color(0xFFE33B2D)); + }); + + test('loadingLightRed is 0xFFEC5E2B', () { + expect(PinballColors.loadingLightRed, const Color(0xFFEC5E2B)); + }); + + test('loadingDarkBlue is 0xFF4087F8', () { + expect(PinballColors.loadingDarkBlue, const Color(0xFF4087F8)); + }); + + test('loadingLightBlue is 0xFF6CCAE4', () { + expect(PinballColors.loadingLightBlue, const Color(0xFF6CCAE4)); + }); + + test('crtBackground is 0xFF274E54', () { + expect(PinballColors.crtBackground, const Color(0xFF274E54)); + }); }); } diff --git a/packages/pinball_ui/test/src/widgets/animated_ellipsis_text_test.dart b/packages/pinball_ui/test/src/widgets/animated_ellipsis_text_test.dart new file mode 100644 index 00000000..3800cfed --- /dev/null +++ b/packages/pinball_ui/test/src/widgets/animated_ellipsis_text_test.dart @@ -0,0 +1,30 @@ +// ignore_for_file: prefer_const_constructors + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:pinball_ui/pinball_ui.dart'; + +void main() { + group('AnimatedEllipsisText', () { + testWidgets( + 'adds a new `.` every 500ms and ' + 'resets back to zero after adding 3', (tester) async { + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + body: AnimatedEllipsisText('test'), + ), + ), + ); + expect(find.text('test'), findsOneWidget); + await tester.pump(const Duration(milliseconds: 600)); + expect(find.text('test.'), findsOneWidget); + await tester.pump(const Duration(milliseconds: 600)); + expect(find.text('test..'), findsOneWidget); + await tester.pump(const Duration(milliseconds: 600)); + expect(find.text('test...'), findsOneWidget); + await tester.pump(const Duration(milliseconds: 600)); + expect(find.text('test'), findsOneWidget); + }); + }); +} diff --git a/packages/pinball_ui/test/src/widgets/crt_background_test.dart b/packages/pinball_ui/test/src/widgets/crt_background_test.dart new file mode 100644 index 00000000..65f27456 --- /dev/null +++ b/packages/pinball_ui/test/src/widgets/crt_background_test.dart @@ -0,0 +1,25 @@ +import 'package:flutter/widgets.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:pinball_ui/pinball_ui.dart'; + +void main() { + group('CrtBackground', () { + test('is a BoxDecoration with a LinearGradient', () { + // ignore: prefer_const_constructors + final crtBg = CrtBackground(); + const expectedGradient = LinearGradient( + begin: Alignment(1, 0.015), + stops: [0.0, 0.5, 0.5, 1], + colors: [ + PinballColors.darkBlue, + PinballColors.darkBlue, + PinballColors.crtBackground, + PinballColors.crtBackground, + ], + tileMode: TileMode.repeated, + ); + expect(crtBg, isA()); + expect(crtBg.gradient, expectedGradient); + }); + }); +} diff --git a/packages/pinball_ui/test/src/widgets/pinball_loading_indicator_test.dart b/packages/pinball_ui/test/src/widgets/pinball_loading_indicator_test.dart new file mode 100644 index 00000000..a2cc6d1a --- /dev/null +++ b/packages/pinball_ui/test/src/widgets/pinball_loading_indicator_test.dart @@ -0,0 +1,45 @@ +// ignore_for_file: prefer_const_constructors + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:pinball_ui/pinball_ui.dart'; + +void main() { + group('PinballLoadingIndicator', () { + group('assert value', () { + test('throws error if value <= 0.0', () { + expect( + () => PinballLoadingIndicator(value: -0.5), + throwsA(isA()), + ); + }); + + test('throws error if value >= 1.0', () { + expect( + () => PinballLoadingIndicator(value: 1.5), + throwsA(isA()), + ); + }); + }); + + testWidgets( + 'renders 12 LinearProgressIndicators and ' + '6 FractionallySizedBox to indicate progress', (tester) async { + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + body: PinballLoadingIndicator(value: 0.75), + ), + ), + ); + expect(find.byType(FractionallySizedBox), findsNWidgets(6)); + expect(find.byType(LinearProgressIndicator), findsNWidgets(12)); + final progressIndicators = tester.widgetList( + find.byType(LinearProgressIndicator), + ); + for (final i in progressIndicators) { + expect(i.value, 0.75); + } + }); + }); +} diff --git a/test/game/assets_manager/cubit/assets_manager_cubit_test.dart b/test/assets_manager/cubit/assets_manager_cubit_test.dart similarity index 93% rename from test/game/assets_manager/cubit/assets_manager_cubit_test.dart rename to test/assets_manager/cubit/assets_manager_cubit_test.dart index d0afee34..27d9cedb 100644 --- a/test/game/assets_manager/cubit/assets_manager_cubit_test.dart +++ b/test/assets_manager/cubit/assets_manager_cubit_test.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'package:bloc_test/bloc_test.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:pinball/game/game.dart'; +import 'package:pinball/assets_manager/assets_manager.dart'; void main() { group('AssetsManagerCubit', () { diff --git a/test/game/assets_manager/cubit/assets_manager_state_test.dart b/test/assets_manager/cubit/assets_manager_state_test.dart similarity index 98% rename from test/game/assets_manager/cubit/assets_manager_state_test.dart rename to test/assets_manager/cubit/assets_manager_state_test.dart index 12a42485..4882f880 100644 --- a/test/game/assets_manager/cubit/assets_manager_state_test.dart +++ b/test/assets_manager/cubit/assets_manager_state_test.dart @@ -1,7 +1,7 @@ // ignore_for_file: prefer_const_constructors import 'package:flutter_test/flutter_test.dart'; -import 'package:pinball/game/game.dart'; +import 'package:pinball/assets_manager/assets_manager.dart'; void main() { group('AssetsManagerState', () { diff --git a/test/assets_manager/views/assets_loading_page_test.dart b/test/assets_manager/views/assets_loading_page_test.dart new file mode 100644 index 00000000..a6210e0c --- /dev/null +++ b/test/assets_manager/views/assets_loading_page_test.dart @@ -0,0 +1,38 @@ +import 'package:bloc_test/bloc_test.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:mocktail/mocktail.dart'; +import 'package:pinball/assets_manager/assets_manager.dart'; +import 'package:pinball_ui/pinball_ui.dart'; + +import '../../helpers/helpers.dart'; + +class _MockAssetsManagerCubit extends Mock implements AssetsManagerCubit {} + +void main() { + late AssetsManagerCubit assetsManagerCubit; + + setUp(() { + final initialAssetsState = AssetsManagerState( + loadables: [Future.value()], + loaded: const [], + ); + assetsManagerCubit = _MockAssetsManagerCubit(); + whenListen( + assetsManagerCubit, + Stream.value(initialAssetsState), + initialState: initialAssetsState, + ); + }); + + group('AssetsLoadingPage', () { + testWidgets('renders an animated text and a pinball loading indicator', + (tester) async { + await tester.pumpApp( + const AssetsLoadingPage(), + assetsManagerCubit: assetsManagerCubit, + ); + expect(find.byType(AnimatedEllipsisText), findsOneWidget); + expect(find.byType(PinballLoadingIndicator), findsOneWidget); + }); + }); +} diff --git a/test/game/view/pinball_game_page_test.dart b/test/game/view/pinball_game_page_test.dart index d3b32d85..0ed6e744 100644 --- a/test/game/view/pinball_game_page_test.dart +++ b/test/game/view/pinball_game_page_test.dart @@ -5,6 +5,7 @@ import 'package:flame/game.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; +import 'package:pinball/assets_manager/assets_manager.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball/select_character/select_character.dart'; import 'package:pinball/start_game/start_game.dart'; @@ -66,7 +67,6 @@ void main() { Stream.value(initialAssetsState), initialState: initialAssetsState, ); - await tester.pumpApp( PinballGameView( game: game, @@ -74,14 +74,7 @@ void main() { assetsManagerCubit: assetsManagerCubit, characterThemeCubit: characterThemeCubit, ); - - expect( - find.byWidgetPredicate( - (widget) => - widget is LinearProgressIndicator && widget.value == 0.0, - ), - findsOneWidget, - ); + expect(find.byType(AssetsLoadingPage), findsOneWidget); }, ); diff --git a/test/helpers/pump_app.dart b/test/helpers/pump_app.dart index 7347989d..8c852f4e 100644 --- a/test/helpers/pump_app.dart +++ b/test/helpers/pump_app.dart @@ -12,6 +12,7 @@ import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:leaderboard_repository/leaderboard_repository.dart'; import 'package:mocktail/mocktail.dart'; +import 'package:pinball/assets_manager/assets_manager.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball/l10n/l10n.dart'; import 'package:pinball/select_character/select_character.dart'; From 62be5f636d23b477aa83f152de036244bc6b1df0 Mon Sep 17 00:00:00 2001 From: Erick Date: Tue, 3 May 2022 13:36:02 -0300 Subject: [PATCH 4/9] feat: adding start screen sfx (#308) * feat: adding start screen sfx * fix: lint * fix: lint * feat: PR suggestions * fix: lint * Apply suggestions from code review Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com> Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com> --- .../widgets/how_to_play_dialog.dart | 7 ++++- .../assets/sfx/io_pinball_voice_over.mp3 | Bin 0 -> 55308 bytes .../pinball_audio/lib/gen/assets.gen.dart | 1 + .../pinball_audio/lib/src/pinball_audio.dart | 6 ++++ .../test/src/pinball_audio_test.dart | 18 +++++++++++ test/how_to_play/how_to_play_dialog_test.dart | 28 ++++++++++++++++++ 6 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 packages/pinball_audio/assets/sfx/io_pinball_voice_over.mp3 diff --git a/lib/how_to_play/widgets/how_to_play_dialog.dart b/lib/how_to_play/widgets/how_to_play_dialog.dart index 3dc2c62b..e91698f5 100644 --- a/lib/how_to_play/widgets/how_to_play_dialog.dart +++ b/lib/how_to_play/widgets/how_to_play_dialog.dart @@ -3,8 +3,10 @@ import 'dart:async'; import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:pinball/gen/gen.dart'; import 'package:pinball/l10n/l10n.dart'; +import 'package:pinball_audio/pinball_audio.dart'; import 'package:pinball_ui/pinball_ui.dart'; import 'package:platform_helper/platform_helper.dart'; @@ -50,10 +52,13 @@ extension on Control { } Future showHowToPlayDialog(BuildContext context) { + final audio = context.read(); return showDialog( context: context, builder: (_) => HowToPlayDialog(), - ); + ).then((_) { + audio.ioPinballVoiceOver(); + }); } class HowToPlayDialog extends StatefulWidget { diff --git a/packages/pinball_audio/assets/sfx/io_pinball_voice_over.mp3 b/packages/pinball_audio/assets/sfx/io_pinball_voice_over.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..7829086c476ecf2b6ea5a0f2e130eafc089f6dc7 GIT binary patch literal 55308 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 z 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 G!2bf@%362; literal 0 HcmV?d00001 diff --git a/packages/pinball_audio/lib/gen/assets.gen.dart b/packages/pinball_audio/lib/gen/assets.gen.dart index 1b3bdfb9..0f68e170 100644 --- a/packages/pinball_audio/lib/gen/assets.gen.dart +++ b/packages/pinball_audio/lib/gen/assets.gen.dart @@ -15,6 +15,7 @@ class $AssetsSfxGen { const $AssetsSfxGen(); String get google => 'assets/sfx/google.mp3'; + String get ioPinballVoiceOver => 'assets/sfx/io_pinball_voice_over.mp3'; String get plim => 'assets/sfx/plim.mp3'; } diff --git a/packages/pinball_audio/lib/src/pinball_audio.dart b/packages/pinball_audio/lib/src/pinball_audio.dart index 8bda14e5..f87b05d1 100644 --- a/packages/pinball_audio/lib/src/pinball_audio.dart +++ b/packages/pinball_audio/lib/src/pinball_audio.dart @@ -74,6 +74,7 @@ class PinballAudio { await Future.wait([ _preCacheSingleAudio(_prefixFile(Assets.sfx.google)), + _preCacheSingleAudio(_prefixFile(Assets.sfx.ioPinballVoiceOver)), _preCacheSingleAudio(_prefixFile(Assets.music.background)), ]); } @@ -88,6 +89,11 @@ class PinballAudio { _playSingleAudio(_prefixFile(Assets.sfx.google)); } + /// Plays the I/O Pinball voice over audio. + void ioPinballVoiceOver() { + _playSingleAudio(_prefixFile(Assets.sfx.ioPinballVoiceOver)); + } + /// Plays the background music void backgroundMusic() { _loopSingleAudio(_prefixFile(Assets.music.background)); diff --git a/packages/pinball_audio/test/src/pinball_audio_test.dart b/packages/pinball_audio/test/src/pinball_audio_test.dart index c92b876d..9d6dff98 100644 --- a/packages/pinball_audio/test/src/pinball_audio_test.dart +++ b/packages/pinball_audio/test/src/pinball_audio_test.dart @@ -125,6 +125,11 @@ void main() { () => preCacheSingleAudio .onCall('packages/pinball_audio/assets/sfx/google.mp3'), ).called(1); + verify( + () => preCacheSingleAudio.onCall( + 'packages/pinball_audio/assets/sfx/io_pinball_voice_over.mp3', + ), + ).called(1); verify( () => preCacheSingleAudio .onCall('packages/pinball_audio/assets/music/background.mp3'), @@ -163,6 +168,19 @@ void main() { }); }); + group('ioPinballVoiceOver', () { + test('plays the correct file', () async { + await audio.load(); + audio.ioPinballVoiceOver(); + + verify( + () => playSingleAudio.onCall( + 'packages/pinball_audio/${Assets.sfx.ioPinballVoiceOver}', + ), + ).called(1); + }); + }); + group('backgroundMusic', () { test('plays the correct file', () async { await audio.load(); diff --git a/test/how_to_play/how_to_play_dialog_test.dart b/test/how_to_play/how_to_play_dialog_test.dart index 2570c846..232aa1d5 100644 --- a/test/how_to_play/how_to_play_dialog_test.dart +++ b/test/how_to_play/how_to_play_dialog_test.dart @@ -3,10 +3,13 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; import 'package:pinball/how_to_play/how_to_play.dart'; import 'package:pinball/l10n/l10n.dart'; +import 'package:pinball_audio/pinball_audio.dart'; import 'package:platform_helper/platform_helper.dart'; import '../helpers/helpers.dart'; +class _MockPinballAudio extends Mock implements PinballAudio {} + class _MockPlatformHelper extends Mock implements PlatformHelper {} void main() { @@ -93,5 +96,30 @@ void main() { await tester.pumpAndSettle(); expect(find.byType(HowToPlayDialog), findsNothing); }); + + testWidgets( + 'plays the I/O Pinball voice over audio on dismiss', + (tester) async { + final audio = _MockPinballAudio(); + await tester.pumpApp( + Builder( + builder: (context) { + return TextButton( + onPressed: () => showHowToPlayDialog(context), + child: const Text('test'), + ); + }, + ), + pinballAudio: audio, + ); + expect(find.byType(HowToPlayDialog), findsNothing); + await tester.tap(find.text('test')); + await tester.pumpAndSettle(); + + await tester.tapAt(Offset.zero); + await tester.pumpAndSettle(); + verify(audio.ioPinballVoiceOver).called(1); + }, + ); }); } From 6e4651f89e3a5a7c18f1306cd34273b2197c010b Mon Sep 17 00:00:00 2001 From: Tom Arra Date: Tue, 3 May 2022 12:41:24 -0500 Subject: [PATCH 5/9] chore: remove VGV copyright (#292) --- lib/app/app.dart | 7 ------- lib/app/view/app.dart | 7 ------- lib/bootstrap.dart | 7 ------- lib/l10n/l10n.dart | 7 ------- lib/main_development.dart | 7 ------- lib/main_production.dart | 7 ------- lib/main_staging.dart | 7 ------- packages/pinball_components/sandbox/lib/main.dart | 6 ------ test/app/view/app_test.dart | 7 ------- test/helpers/helpers.dart | 6 ------ test/helpers/pump_app.dart | 7 ------- 11 files changed, 75 deletions(-) diff --git a/lib/app/app.dart b/lib/app/app.dart index 2b135918..f23ab3c8 100644 --- a/lib/app/app.dart +++ b/lib/app/app.dart @@ -1,8 +1 @@ -// Copyright (c) 2021, Very Good Ventures -// https://verygood.ventures -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - export 'view/app.dart'; diff --git a/lib/app/view/app.dart b/lib/app/view/app.dart index 528954a6..d778b55b 100644 --- a/lib/app/view/app.dart +++ b/lib/app/view/app.dart @@ -1,10 +1,3 @@ -// Copyright (c) 2021, Very Good Ventures -// https://verygood.ventures -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - // ignore_for_file: public_member_api_docs import 'package:authentication_repository/authentication_repository.dart'; diff --git a/lib/bootstrap.dart b/lib/bootstrap.dart index bbd87f0c..c5e42951 100644 --- a/lib/bootstrap.dart +++ b/lib/bootstrap.dart @@ -1,10 +1,3 @@ -// Copyright (c) 2021, Very Good Ventures -// https://verygood.ventures -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - // ignore_for_file: public_member_api_docs import 'dart:async'; diff --git a/lib/l10n/l10n.dart b/lib/l10n/l10n.dart index 548a81a6..0945f30f 100644 --- a/lib/l10n/l10n.dart +++ b/lib/l10n/l10n.dart @@ -1,10 +1,3 @@ -// Copyright (c) 2021, Very Good Ventures -// https://verygood.ventures -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - // ignore_for_file: public_member_api_docs import 'package:flutter/widgets.dart'; diff --git a/lib/main_development.dart b/lib/main_development.dart index 529c66e2..21166057 100644 --- a/lib/main_development.dart +++ b/lib/main_development.dart @@ -1,10 +1,3 @@ -// Copyright (c) 2021, Very Good Ventures -// https://verygood.ventures -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - import 'dart:async'; import 'package:authentication_repository/authentication_repository.dart'; diff --git a/lib/main_production.dart b/lib/main_production.dart index 529c66e2..21166057 100644 --- a/lib/main_production.dart +++ b/lib/main_production.dart @@ -1,10 +1,3 @@ -// Copyright (c) 2021, Very Good Ventures -// https://verygood.ventures -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - import 'dart:async'; import 'package:authentication_repository/authentication_repository.dart'; diff --git a/lib/main_staging.dart b/lib/main_staging.dart index 529c66e2..21166057 100644 --- a/lib/main_staging.dart +++ b/lib/main_staging.dart @@ -1,10 +1,3 @@ -// Copyright (c) 2021, Very Good Ventures -// https://verygood.ventures -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - import 'dart:async'; import 'package:authentication_repository/authentication_repository.dart'; diff --git a/packages/pinball_components/sandbox/lib/main.dart b/packages/pinball_components/sandbox/lib/main.dart index 9bce5632..cb268b41 100644 --- a/packages/pinball_components/sandbox/lib/main.dart +++ b/packages/pinball_components/sandbox/lib/main.dart @@ -1,9 +1,3 @@ -// Copyright (c) 2022, Very Good Ventures -// https://verygood.ventures -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. import 'package:dashbook/dashbook.dart'; import 'package:flutter/material.dart'; import 'package:sandbox/stories/stories.dart'; diff --git a/test/app/view/app_test.dart b/test/app/view/app_test.dart index 5ba5aca7..ca1cedff 100644 --- a/test/app/view/app_test.dart +++ b/test/app/view/app_test.dart @@ -1,10 +1,3 @@ -// Copyright (c) 2021, Very Good Ventures -// https://verygood.ventures -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - import 'package:authentication_repository/authentication_repository.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:leaderboard_repository/leaderboard_repository.dart'; diff --git a/test/helpers/helpers.dart b/test/helpers/helpers.dart index 50bb9bc1..febf8d36 100644 --- a/test/helpers/helpers.dart +++ b/test/helpers/helpers.dart @@ -1,9 +1,3 @@ -// -// Copyright (c) 2021, Very Good Ventures -// Use of this source code is governed by an MIT-style -// https://opensource.org/licenses/MIT. -// https://verygood.ventures -// license that can be found in the LICENSE file or at export 'builders.dart'; export 'fakes.dart'; export 'forge2d.dart'; diff --git a/test/helpers/pump_app.dart b/test/helpers/pump_app.dart index 8c852f4e..a7d7ae67 100644 --- a/test/helpers/pump_app.dart +++ b/test/helpers/pump_app.dart @@ -1,10 +1,3 @@ -// Copyright (c) 2021, Very Good Ventures -// https://verygood.ventures -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - import 'package:bloc_test/bloc_test.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; From c67db0e55c9c1835f7b5a18d4a041320742f116e Mon Sep 17 00:00:00 2001 From: Alejandro Santiago Date: Tue, 3 May 2022 18:54:11 +0100 Subject: [PATCH 6/9] refactor: moved scaling logic to `BallScalingBehavior` (#313) --- .../lib/src/components/{ => ball}/ball.dart | 29 +++--- .../ball/behaviors/ball_scaling_behavior.dart | 24 +++++ .../components/ball/behaviors/behaviors.dart | 1 + .../lib/src/components/components.dart | 2 +- .../src/components/{ => ball}/ball_test.dart | 63 ++++++------ .../behaviors/ball_scaling_behavior_test.dart | 99 +++++++++++++++++++ 6 files changed, 171 insertions(+), 47 deletions(-) rename packages/pinball_components/lib/src/components/{ => ball}/ball.dart (88%) create mode 100644 packages/pinball_components/lib/src/components/ball/behaviors/ball_scaling_behavior.dart create mode 100644 packages/pinball_components/lib/src/components/ball/behaviors/behaviors.dart rename packages/pinball_components/test/src/components/{ => ball}/ball_test.dart (78%) create mode 100644 packages/pinball_components/test/src/components/ball/behaviors/ball_scaling_behavior_test.dart diff --git a/packages/pinball_components/lib/src/components/ball.dart b/packages/pinball_components/lib/src/components/ball/ball.dart similarity index 88% rename from packages/pinball_components/lib/src/components/ball.dart rename to packages/pinball_components/lib/src/components/ball/ball.dart index 7469396a..4f913c2c 100644 --- a/packages/pinball_components/lib/src/components/ball.dart +++ b/packages/pinball_components/lib/src/components/ball/ball.dart @@ -1,11 +1,11 @@ import 'dart:async'; import 'dart:math' as math; -import 'dart:ui'; import 'package:flame/components.dart'; import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flutter/widgets.dart'; import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_components/src/components/ball/behaviors/ball_scaling_behavior.dart'; import 'package:pinball_flame/pinball_flame.dart'; /// {@template ball} @@ -20,6 +20,7 @@ class Ball extends BodyComponent renderBody: false, children: [ _BallSpriteComponent()..tint(baseColor.withOpacity(0.5)), + BallScalingBehavior(), ], ) { // TODO(ruimiguel): while developing Ball can be launched by clicking mouse, @@ -30,6 +31,15 @@ class Ball extends BodyComponent layer = Layer.board; } + /// Creates a [Ball] without any behaviors. + /// + /// This can be used for testing [Ball]'s behaviors in isolation. + @visibleForTesting + Ball.test({required this.baseColor}) + : super( + children: [_BallSpriteComponent()], + ); + /// The size of the [Ball]. static final Vector2 size = Vector2.all(4.13); @@ -81,26 +91,9 @@ class Ball extends BodyComponent void update(double dt) { super.update(dt); - _rescaleSize(); _setPositionalGravity(); } - void _rescaleSize() { - final boardHeight = BoardDimensions.bounds.height; - const maxShrinkValue = BoardDimensions.perspectiveShrinkFactor; - - final standardizedYPosition = body.position.y + (boardHeight / 2); - - final scaleFactor = maxShrinkValue + - ((standardizedYPosition / boardHeight) * (1 - maxShrinkValue)); - - body.fixtures.first.shape.radius = (size.x / 2) * scaleFactor; - - // TODO(alestiago): Revisit and see if there's a better way to do this. - final spriteComponent = firstChild<_BallSpriteComponent>(); - spriteComponent?.scale = Vector2.all(scaleFactor); - } - void _setPositionalGravity() { final defaultGravity = gameRef.world.gravity.y; final maxXDeviationFromCenter = BoardDimensions.bounds.width / 2; diff --git a/packages/pinball_components/lib/src/components/ball/behaviors/ball_scaling_behavior.dart b/packages/pinball_components/lib/src/components/ball/behaviors/ball_scaling_behavior.dart new file mode 100644 index 00000000..7fc06fb1 --- /dev/null +++ b/packages/pinball_components/lib/src/components/ball/behaviors/ball_scaling_behavior.dart @@ -0,0 +1,24 @@ +import 'package:flame/components.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_flame/pinball_flame.dart'; + +/// Scales the ball's body and sprite according to its position on the board. +class BallScalingBehavior extends Component with ParentIsA { + @override + void update(double dt) { + super.update(dt); + final boardHeight = BoardDimensions.bounds.height; + const maxShrinkValue = BoardDimensions.perspectiveShrinkFactor; + + final standardizedYPosition = parent.body.position.y + (boardHeight / 2); + final scaleFactor = maxShrinkValue + + ((standardizedYPosition / boardHeight) * (1 - maxShrinkValue)); + + parent.body.fixtures.first.shape.radius = (Ball.size.x / 2) * scaleFactor; + + parent.firstChild()!.scale.setValues( + scaleFactor, + scaleFactor, + ); + } +} diff --git a/packages/pinball_components/lib/src/components/ball/behaviors/behaviors.dart b/packages/pinball_components/lib/src/components/ball/behaviors/behaviors.dart new file mode 100644 index 00000000..22928734 --- /dev/null +++ b/packages/pinball_components/lib/src/components/ball/behaviors/behaviors.dart @@ -0,0 +1 @@ +export 'ball_scaling_behavior.dart'; diff --git a/packages/pinball_components/lib/src/components/components.dart b/packages/pinball_components/lib/src/components/components.dart index c5ea7f9f..6e79ac56 100644 --- a/packages/pinball_components/lib/src/components/components.dart +++ b/packages/pinball_components/lib/src/components/components.dart @@ -2,7 +2,7 @@ export 'android_animatronic.dart'; export 'android_bumper/android_bumper.dart'; export 'android_spaceship/android_spaceship.dart'; export 'backboard/backboard.dart'; -export 'ball.dart'; +export 'ball/ball.dart'; export 'baseboard.dart'; export 'board_background_sprite_component.dart'; export 'board_dimensions.dart'; diff --git a/packages/pinball_components/test/src/components/ball_test.dart b/packages/pinball_components/test/src/components/ball/ball_test.dart similarity index 78% rename from packages/pinball_components/test/src/components/ball_test.dart rename to packages/pinball_components/test/src/components/ball/ball_test.dart index 26a03886..321e137b 100644 --- a/packages/pinball_components/test/src/components/ball_test.dart +++ b/packages/pinball_components/test/src/components/ball/ball_test.dart @@ -6,18 +6,29 @@ import 'package:flame_test/flame_test.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_components/src/components/ball/behaviors/behaviors.dart'; -import '../../helpers/helpers.dart'; +import '../../../helpers/helpers.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); final flameTester = FlameTester(TestGame.new); group('Ball', () { + const baseColor = Color(0xFFFFFFFF); + + test( + 'can be instantiated', + () { + expect(Ball(baseColor: baseColor), isA()); + expect(Ball.test(baseColor: baseColor), isA()); + }, + ); + flameTester.test( 'loads correctly', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ready(); await game.ensureAdd(ball); @@ -25,11 +36,20 @@ void main() { }, ); + flameTester.test('add a BallScalingBehavior', (game) async { + final ball = Ball(baseColor: baseColor); + await game.ensureAdd(ball); + expect( + ball.descendants().whereType().length, + equals(1), + ); + }); + group('body', () { flameTester.test( 'is dynamic', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ensureAdd(ball); expect(ball.body.bodyType, equals(BodyType.dynamic)); @@ -38,7 +58,7 @@ void main() { group('can be moved', () { flameTester.test('by its weight', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ensureAdd(ball); game.update(1); @@ -46,7 +66,7 @@ void main() { }); flameTester.test('by applying velocity', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ensureAdd(ball); ball.body.gravityScale = Vector2.zero(); @@ -61,7 +81,7 @@ void main() { flameTester.test( 'exists', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ensureAdd(ball); expect(ball.body.fixtures[0], isA()); @@ -71,7 +91,7 @@ void main() { flameTester.test( 'is dense', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ensureAdd(ball); final fixture = ball.body.fixtures[0]; @@ -82,7 +102,7 @@ void main() { flameTester.test( 'shape is circular', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ensureAdd(ball); final fixture = ball.body.fixtures[0]; @@ -94,7 +114,7 @@ void main() { flameTester.test( 'has Layer.all as default filter maskBits', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ready(); await game.ensureAdd(ball); await game.ready(); @@ -108,7 +128,7 @@ void main() { group('stop', () { group("can't be moved", () { flameTester.test('by its weight', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ensureAdd(ball); ball.stop(); @@ -116,19 +136,6 @@ void main() { expect(ball.body.position, equals(ball.initialPosition)); }); }); - - // TODO(allisonryan0002): delete or retest this if/when solution is added - // to prevent forces on a ball while stopped. - - // flameTester.test('by applying velocity', (game) async { - // final ball = Ball(baseColor: Colors.blue); - // await game.ensureAdd(ball); - // ball.stop(); - - // ball.body.linearVelocity.setValues(10, 10); - // game.update(1); - // expect(ball.body.position, equals(ball.initialPosition)); - // }); }); group('resume', () { @@ -136,7 +143,7 @@ void main() { flameTester.test( 'by its weight when previously stopped', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ensureAdd(ball); ball.stop(); ball.resume(); @@ -149,7 +156,7 @@ void main() { flameTester.test( 'by applying velocity when previously stopped', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ensureAdd(ball); ball.stop(); ball.resume(); @@ -165,7 +172,7 @@ void main() { group('boost', () { flameTester.test('applies an impulse to the ball', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ensureAdd(ball); expect(ball.body.linearVelocity, equals(Vector2.zero())); @@ -176,7 +183,7 @@ void main() { }); flameTester.test('adds TurboChargeSpriteAnimation', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ensureAdd(ball); await ball.boost(Vector2.all(10)); @@ -190,7 +197,7 @@ void main() { flameTester.test('removes TurboChargeSpriteAnimation after it finishes', (game) async { - final ball = Ball(baseColor: Colors.blue); + final ball = Ball(baseColor: baseColor); await game.ensureAdd(ball); await ball.boost(Vector2.all(10)); diff --git a/packages/pinball_components/test/src/components/ball/behaviors/ball_scaling_behavior_test.dart b/packages/pinball_components/test/src/components/ball/behaviors/ball_scaling_behavior_test.dart new file mode 100644 index 00000000..42cd9073 --- /dev/null +++ b/packages/pinball_components/test/src/components/ball/behaviors/ball_scaling_behavior_test.dart @@ -0,0 +1,99 @@ +// ignore_for_file: cascade_invocations + +import 'dart:ui'; + +import 'package:flame/components.dart'; +import 'package:flame_test/flame_test.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_components/src/components/ball/behaviors/behaviors.dart'; + +import '../../../../helpers/helpers.dart'; + +void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + final asset = Assets.images.ball.ball.keyName; + final flameTester = FlameTester(() => TestGame([asset])); + + group('BallScalingBehavior', () { + const baseColor = Color(0xFFFFFFFF); + test('can be instantiated', () { + expect( + BallScalingBehavior(), + isA(), + ); + }); + + flameTester.test('can be loaded', (game) async { + final ball = Ball.test(baseColor: baseColor); + final behavior = BallScalingBehavior(); + await ball.add(behavior); + await game.ensureAdd(ball); + expect( + ball.firstChild(), + equals(behavior), + ); + }); + + flameTester.test('can be loaded', (game) async { + final ball = Ball.test(baseColor: baseColor); + final behavior = BallScalingBehavior(); + await ball.add(behavior); + await game.ensureAdd(ball); + expect( + ball.firstChild(), + equals(behavior), + ); + }); + + flameTester.test('scales the shape radius', (game) async { + final ball1 = Ball.test(baseColor: baseColor) + ..initialPosition = Vector2(0, 10); + await ball1.add(BallScalingBehavior()); + + final ball2 = Ball.test(baseColor: baseColor) + ..initialPosition = Vector2(0, -10); + await ball2.add(BallScalingBehavior()); + + await game.ensureAddAll([ball1, ball2]); + game.update(1); + + final shape1 = ball1.body.fixtures.first.shape; + final shape2 = ball2.body.fixtures.first.shape; + expect( + shape1.radius, + greaterThan(shape2.radius), + ); + }); + + flameTester.testGameWidget( + 'scales the sprite', + setUp: (game, tester) async { + final ball1 = Ball.test(baseColor: baseColor) + ..initialPosition = Vector2(0, 10); + await ball1.add(BallScalingBehavior()); + + final ball2 = Ball.test(baseColor: baseColor) + ..initialPosition = Vector2(0, -10); + await ball2.add(BallScalingBehavior()); + + await game.ensureAddAll([ball1, ball2]); + game.update(1); + + await tester.pump(); + await game.ready(); + + final sprite1 = ball1.firstChild()!; + final sprite2 = ball2.firstChild()!; + expect( + sprite1.scale.x, + greaterThan(sprite2.scale.x), + ); + expect( + sprite1.scale.y, + greaterThan(sprite2.scale.y), + ); + }, + ); + }); +} From 01dc3f387ac9e2eea881c3c10c9291ba53f0e748 Mon Sep 17 00:00:00 2001 From: Alejandro Santiago Date: Tue, 3 May 2022 19:48:06 +0100 Subject: [PATCH 7/9] refactor: moved gravity logic to `BallGravitatingBehavior` (#314) --- .../lib/src/components/ball/ball.dart | 27 +------- .../behaviors/ball_gravitating_behavior.dart | 35 +++++++++++ .../components/ball/behaviors/behaviors.dart | 1 + .../test/src/components/ball/ball_test.dart | 25 +++++--- .../ball_gravitating_behavior_test.dart | 63 +++++++++++++++++++ .../behaviors/ball_scaling_behavior_test.dart | 18 +----- 6 files changed, 121 insertions(+), 48 deletions(-) create mode 100644 packages/pinball_components/lib/src/components/ball/behaviors/ball_gravitating_behavior.dart create mode 100644 packages/pinball_components/test/src/components/ball/behaviors/ball_gravitating_behavior_test.dart diff --git a/packages/pinball_components/lib/src/components/ball/ball.dart b/packages/pinball_components/lib/src/components/ball/ball.dart index 4f913c2c..dea4c0b4 100644 --- a/packages/pinball_components/lib/src/components/ball/ball.dart +++ b/packages/pinball_components/lib/src/components/ball/ball.dart @@ -5,6 +5,7 @@ import 'package:flame/components.dart'; import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flutter/widgets.dart'; import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_components/src/components/ball/behaviors/ball_gravitating_behavior.dart'; import 'package:pinball_components/src/components/ball/behaviors/ball_scaling_behavior.dart'; import 'package:pinball_flame/pinball_flame.dart'; @@ -21,6 +22,7 @@ class Ball extends BodyComponent children: [ _BallSpriteComponent()..tint(baseColor.withOpacity(0.5)), BallScalingBehavior(), + BallGravitatingBehavior(), ], ) { // TODO(ruimiguel): while developing Ball can be launched by clicking mouse, @@ -86,31 +88,6 @@ class Ball extends BodyComponent body.linearVelocity = impulse; await add(_TurboChargeSpriteAnimationComponent()); } - - @override - void update(double dt) { - super.update(dt); - - _setPositionalGravity(); - } - - void _setPositionalGravity() { - final defaultGravity = gameRef.world.gravity.y; - final maxXDeviationFromCenter = BoardDimensions.bounds.width / 2; - const maxXGravityPercentage = - (1 - BoardDimensions.perspectiveShrinkFactor) / 2; - final xDeviationFromCenter = body.position.x; - - final positionalXForce = ((xDeviationFromCenter / maxXDeviationFromCenter) * - maxXGravityPercentage) * - defaultGravity; - - final positionalYForce = math.sqrt( - math.pow(defaultGravity, 2) - math.pow(positionalXForce, 2), - ); - - body.gravityOverride = Vector2(positionalXForce, positionalYForce); - } } class _BallSpriteComponent extends SpriteComponent with HasGameRef { diff --git a/packages/pinball_components/lib/src/components/ball/behaviors/ball_gravitating_behavior.dart b/packages/pinball_components/lib/src/components/ball/behaviors/ball_gravitating_behavior.dart new file mode 100644 index 00000000..bad129a6 --- /dev/null +++ b/packages/pinball_components/lib/src/components/ball/behaviors/ball_gravitating_behavior.dart @@ -0,0 +1,35 @@ +import 'dart:math' as math; + +import 'package:flame/components.dart'; +import 'package:flame_forge2d/flame_forge2d.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_flame/pinball_flame.dart'; + +/// Scales the ball's gravity according to its position on the board. +class BallGravitatingBehavior extends Component + with ParentIsA, HasGameRef { + @override + void update(double dt) { + super.update(dt); + final defaultGravity = gameRef.world.gravity.y; + + final maxXDeviationFromCenter = BoardDimensions.bounds.width / 2; + const maxXGravityPercentage = + (1 - BoardDimensions.perspectiveShrinkFactor) / 2; + final xDeviationFromCenter = parent.body.position.x; + + final positionalXForce = ((xDeviationFromCenter / maxXDeviationFromCenter) * + maxXGravityPercentage) * + defaultGravity; + final positionalYForce = math.sqrt( + math.pow(defaultGravity, 2) - math.pow(positionalXForce, 2), + ); + + final gravityOverride = parent.body.gravityOverride; + if (gravityOverride != null) { + gravityOverride.setValues(positionalXForce, positionalYForce); + } else { + parent.body.gravityOverride = Vector2(positionalXForce, positionalYForce); + } + } +} diff --git a/packages/pinball_components/lib/src/components/ball/behaviors/behaviors.dart b/packages/pinball_components/lib/src/components/ball/behaviors/behaviors.dart index 22928734..038b7833 100644 --- a/packages/pinball_components/lib/src/components/ball/behaviors/behaviors.dart +++ b/packages/pinball_components/lib/src/components/ball/behaviors/behaviors.dart @@ -1 +1,2 @@ +export 'ball_gravitating_behavior.dart'; export 'ball_scaling_behavior.dart'; diff --git a/packages/pinball_components/test/src/components/ball/ball_test.dart b/packages/pinball_components/test/src/components/ball/ball_test.dart index 321e137b..02175f16 100644 --- a/packages/pinball_components/test/src/components/ball/ball_test.dart +++ b/packages/pinball_components/test/src/components/ball/ball_test.dart @@ -36,13 +36,24 @@ void main() { }, ); - flameTester.test('add a BallScalingBehavior', (game) async { - final ball = Ball(baseColor: baseColor); - await game.ensureAdd(ball); - expect( - ball.descendants().whereType().length, - equals(1), - ); + group('adds', () { + flameTester.test('a BallScalingBehavior', (game) async { + final ball = Ball(baseColor: baseColor); + await game.ensureAdd(ball); + expect( + ball.descendants().whereType().length, + equals(1), + ); + }); + + flameTester.test('a BallGravitatingBehavior', (game) async { + final ball = Ball(baseColor: baseColor); + await game.ensureAdd(ball); + expect( + ball.descendants().whereType().length, + equals(1), + ); + }); }); group('body', () { diff --git a/packages/pinball_components/test/src/components/ball/behaviors/ball_gravitating_behavior_test.dart b/packages/pinball_components/test/src/components/ball/behaviors/ball_gravitating_behavior_test.dart new file mode 100644 index 00000000..de291f21 --- /dev/null +++ b/packages/pinball_components/test/src/components/ball/behaviors/ball_gravitating_behavior_test.dart @@ -0,0 +1,63 @@ +// ignore_for_file: cascade_invocations + +import 'dart:ui'; + +import 'package:flame/components.dart'; +import 'package:flame_test/flame_test.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_components/src/components/ball/behaviors/behaviors.dart'; + +import '../../../../helpers/helpers.dart'; + +void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + final asset = Assets.images.ball.ball.keyName; + final flameTester = FlameTester(() => TestGame([asset])); + + group('BallGravitatingBehavior', () { + const baseColor = Color(0xFFFFFFFF); + test('can be instantiated', () { + expect( + BallGravitatingBehavior(), + isA(), + ); + }); + + flameTester.test('can be loaded', (game) async { + final ball = Ball.test(baseColor: baseColor); + final behavior = BallGravitatingBehavior(); + await ball.add(behavior); + await game.ensureAdd(ball); + expect( + ball.firstChild(), + equals(behavior), + ); + }); + + flameTester.test( + "overrides the body's horizontal gravity symmetrically", + (game) async { + final ball1 = Ball.test(baseColor: baseColor) + ..initialPosition = Vector2(10, 0); + await ball1.add(BallGravitatingBehavior()); + + final ball2 = Ball.test(baseColor: baseColor) + ..initialPosition = Vector2(-10, 0); + await ball2.add(BallGravitatingBehavior()); + + await game.ensureAddAll([ball1, ball2]); + game.update(1); + + expect( + ball1.body.gravityOverride!.x, + equals(-ball2.body.gravityOverride!.x), + ); + expect( + ball1.body.gravityOverride!.y, + equals(ball2.body.gravityOverride!.y), + ); + }, + ); + }); +} diff --git a/packages/pinball_components/test/src/components/ball/behaviors/ball_scaling_behavior_test.dart b/packages/pinball_components/test/src/components/ball/behaviors/ball_scaling_behavior_test.dart index 42cd9073..cd0a0486 100644 --- a/packages/pinball_components/test/src/components/ball/behaviors/ball_scaling_behavior_test.dart +++ b/packages/pinball_components/test/src/components/ball/behaviors/ball_scaling_behavior_test.dart @@ -35,17 +35,6 @@ void main() { ); }); - flameTester.test('can be loaded', (game) async { - final ball = Ball.test(baseColor: baseColor); - final behavior = BallScalingBehavior(); - await ball.add(behavior); - await game.ensureAdd(ball); - expect( - ball.firstChild(), - equals(behavior), - ); - }); - flameTester.test('scales the shape radius', (game) async { final ball1 = Ball.test(baseColor: baseColor) ..initialPosition = Vector2(0, 10); @@ -66,9 +55,9 @@ void main() { ); }); - flameTester.testGameWidget( + flameTester.test( 'scales the sprite', - setUp: (game, tester) async { + (game) async { final ball1 = Ball.test(baseColor: baseColor) ..initialPosition = Vector2(0, 10); await ball1.add(BallScalingBehavior()); @@ -80,9 +69,6 @@ void main() { await game.ensureAddAll([ball1, ball2]); game.update(1); - await tester.pump(); - await game.ready(); - final sprite1 = ball1.firstChild()!; final sprite2 = ball2.firstChild()!; expect( From 40104d037dd0bd92d4a23a7962c640f4c6dd8445 Mon Sep 17 00:00:00 2001 From: Tom Arra Date: Tue, 3 May 2022 14:01:43 -0500 Subject: [PATCH 8/9] first config changes for release --- .firebaserc | 5 +++++ firebase.json | 8 ++------ web/__/firebase/8.10.1/firebase-app.js | 2 -- web/__/firebase/8.10.1/firebase-auth.js | 2 -- web/__/firebase/8.10.1/firebase-firestore.js | 2 -- web/__/firebase/init.js | 11 ----------- 6 files changed, 7 insertions(+), 23 deletions(-) create mode 100644 .firebaserc delete mode 100644 web/__/firebase/8.10.1/firebase-app.js delete mode 100644 web/__/firebase/8.10.1/firebase-auth.js delete mode 100644 web/__/firebase/8.10.1/firebase-firestore.js delete mode 100644 web/__/firebase/init.js diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 00000000..98857542 --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "io-pinball" + } +} diff --git a/firebase.json b/firebase.json index 80e2ae69..99025785 100644 --- a/firebase.json +++ b/firebase.json @@ -1,11 +1,7 @@ { "hosting": { "public": "build/web", - "site": "ashehwkdkdjruejdnensjsjdne", - "ignore": [ - "firebase.json", - "**/.*", - "**/node_modules/**" - ] + "site": "io-pinball", + "ignore": ["firebase.json", "**/.*", "**/node_modules/**"] } } diff --git a/web/__/firebase/8.10.1/firebase-app.js b/web/__/firebase/8.10.1/firebase-app.js deleted file mode 100644 index c688d1c4..00000000 --- a/web/__/firebase/8.10.1/firebase-app.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).firebase=t()}(this,function(){"use strict";var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};var n=function(){return(n=Object.assign||function(e){for(var t,n=1,r=arguments.length;na[0]&&t[1]=e.length?void 0:e)&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function f(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||0"})):"Error",e=this.serviceName+": "+e+" ("+o+").";return new c(o,e,i)},v);function v(e,t,n){this.service=e,this.serviceName=t,this.errors=n}var m=/\{\$([^}]+)}/g;function y(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function g(e,t){t=new b(e,t);return t.subscribe.bind(t)}var b=(I.prototype.next=function(t){this.forEachObserver(function(e){e.next(t)})},I.prototype.error=function(t){this.forEachObserver(function(e){e.error(t)}),this.close(t)},I.prototype.complete=function(){this.forEachObserver(function(e){e.complete()}),this.close()},I.prototype.subscribe=function(e,t,n){var r,i=this;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");void 0===(r=function(e,t){if("object"!=typeof e||null===e)return!1;for(var n=0,r=t;n=(null!=o?o:e.logLevel)&&a({level:R[t].toLowerCase(),message:i,args:n,type:e.name})}}(n[e])}var H=((H={})["no-app"]="No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()",H["bad-app-name"]="Illegal App name: '{$appName}",H["duplicate-app"]="Firebase App named '{$appName}' already exists",H["app-deleted"]="Firebase App named '{$appName}' already deleted",H["invalid-app-argument"]="firebase.{$appName}() takes either no argument or a Firebase App instance.",H["invalid-log-argument"]="First argument to `onLog` must be null or a function.",H),V=new d("app","Firebase",H),B="@firebase/app",M="[DEFAULT]",U=((H={})[B]="fire-core",H["@firebase/analytics"]="fire-analytics",H["@firebase/app-check"]="fire-app-check",H["@firebase/auth"]="fire-auth",H["@firebase/database"]="fire-rtdb",H["@firebase/functions"]="fire-fn",H["@firebase/installations"]="fire-iid",H["@firebase/messaging"]="fire-fcm",H["@firebase/performance"]="fire-perf",H["@firebase/remote-config"]="fire-rc",H["@firebase/storage"]="fire-gcs",H["@firebase/firestore"]="fire-fst",H["fire-js"]="fire-js",H["firebase-wrapper"]="fire-js-all",H),W=new z("@firebase/app"),G=(Object.defineProperty($.prototype,"automaticDataCollectionEnabled",{get:function(){return this.checkDestroyed_(),this.automaticDataCollectionEnabled_},set:function(e){this.checkDestroyed_(),this.automaticDataCollectionEnabled_=e},enumerable:!1,configurable:!0}),Object.defineProperty($.prototype,"name",{get:function(){return this.checkDestroyed_(),this.name_},enumerable:!1,configurable:!0}),Object.defineProperty($.prototype,"options",{get:function(){return this.checkDestroyed_(),this.options_},enumerable:!1,configurable:!0}),$.prototype.delete=function(){var t=this;return new Promise(function(e){t.checkDestroyed_(),e()}).then(function(){return t.firebase_.INTERNAL.removeApp(t.name_),Promise.all(t.container.getProviders().map(function(e){return e.delete()}))}).then(function(){t.isDeleted_=!0})},$.prototype._getService=function(e,t){void 0===t&&(t=M),this.checkDestroyed_();var n=this.container.getProvider(e);return n.isInitialized()||"EXPLICIT"!==(null===(e=n.getComponent())||void 0===e?void 0:e.instantiationMode)||n.initialize(),n.getImmediate({identifier:t})},$.prototype._removeServiceInstance=function(e,t){void 0===t&&(t=M),this.container.getProvider(e).clearInstance(t)},$.prototype._addComponent=function(t){try{this.container.addComponent(t)}catch(e){W.debug("Component "+t.name+" failed to register with FirebaseApp "+this.name,e)}},$.prototype._addOrOverwriteComponent=function(e){this.container.addOrOverwriteComponent(e)},$.prototype.toJSON=function(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}},$.prototype.checkDestroyed_=function(){if(this.isDeleted_)throw V.create("app-deleted",{appName:this.name_})},$);function $(e,t,n){var r=this;this.firebase_=n,this.isDeleted_=!1,this.name_=t.name,this.automaticDataCollectionEnabled_=t.automaticDataCollectionEnabled||!1,this.options_=h(void 0,e),this.container=new S(t.name),this._addComponent(new O("app",function(){return r},"PUBLIC")),this.firebase_.INTERNAL.components.forEach(function(e){return r._addComponent(e)})}G.prototype.name&&G.prototype.options||G.prototype.delete||console.log("dc");var K="8.10.1";function Y(a){var s={},l=new Map,c={__esModule:!0,initializeApp:function(e,t){void 0===t&&(t={});"object"==typeof t&&null!==t||(t={name:t});var n=t;void 0===n.name&&(n.name=M);t=n.name;if("string"!=typeof t||!t)throw V.create("bad-app-name",{appName:String(t)});if(y(s,t))throw V.create("duplicate-app",{appName:t});n=new a(e,n,c);return s[t]=n},app:u,registerVersion:function(e,t,n){var r=null!==(i=U[e])&&void 0!==i?i:e;n&&(r+="-"+n);var i=r.match(/\s|\//),e=t.match(/\s|\//);i||e?(n=['Unable to register library "'+r+'" with version "'+t+'":'],i&&n.push('library name "'+r+'" contains illegal characters (whitespace or "/")'),i&&e&&n.push("and"),e&&n.push('version name "'+t+'" contains illegal characters (whitespace or "/")'),W.warn(n.join(" "))):o(new O(r+"-version",function(){return{library:r,version:t}},"VERSION"))},setLogLevel:T,onLog:function(e,t){if(null!==e&&"function"!=typeof e)throw V.create("invalid-log-argument");x(e,t)},apps:null,SDK_VERSION:K,INTERNAL:{registerComponent:o,removeApp:function(e){delete s[e]},components:l,useAsService:function(e,t){return"serverAuth"!==t?t:null}}};function u(e){if(!y(s,e=e||M))throw V.create("no-app",{appName:e});return s[e]}function o(n){var e,r=n.name;if(l.has(r))return W.debug("There were multiple attempts to register component "+r+"."),"PUBLIC"===n.type?c[r]:null;l.set(r,n),"PUBLIC"===n.type&&(e=function(e){if("function"!=typeof(e=void 0===e?u():e)[r])throw V.create("invalid-app-argument",{appName:r});return e[r]()},void 0!==n.serviceProps&&h(e,n.serviceProps),c[r]=e,a.prototype[r]=function(){for(var e=[],t=0;t>>0),i=0;function r(t,e,n){return t.call.apply(t.bind,arguments)}function g(e,n,t){if(!e)throw Error();if(2/g,Q=/"/g,tt=/'/g,et=/\x00/g,nt=/[\x00&<>"']/;function it(t,e){return-1!=t.indexOf(e)}function rt(t,e){return t"}else o=void 0===t?"undefined":null===t?"null":typeof t;D("Argument is not a %s (or a non-Element, non-Location mock); got: %s",e,o)}}function dt(t,e){this.a=t===gt&&e||"",this.b=mt}function pt(t){return t instanceof dt&&t.constructor===dt&&t.b===mt?t.a:(D("expected object of type Const, got '"+t+"'"),"type_error:Const")}dt.prototype.ta=!0,dt.prototype.sa=function(){return this.a},dt.prototype.toString=function(){return"Const{"+this.a+"}"};var vt,mt={},gt={};function bt(){if(void 0===vt){var t=null,e=l.trustedTypes;if(e&&e.createPolicy){try{t=e.createPolicy("goog#html",{createHTML:I,createScript:I,createScriptURL:I})}catch(t){l.console&&l.console.error(t.message)}vt=t}else vt=t}return vt}function yt(t,e){this.a=e===At?t:""}function wt(t){return t instanceof yt&&t.constructor===yt?t.a:(D("expected object of type TrustedResourceUrl, got '"+t+"' of type "+d(t)),"type_error:TrustedResourceUrl")}function It(t,n){var e,i=pt(t);if(!Et.test(i))throw Error("Invalid TrustedResourceUrl format: "+i);return t=i.replace(Tt,function(t,e){if(!Object.prototype.hasOwnProperty.call(n,e))throw Error('Found marker, "'+e+'", in format string, "'+i+'", but no valid label mapping found in args: '+JSON.stringify(n));return(t=n[e])instanceof dt?pt(t):encodeURIComponent(String(t))}),e=t,t=bt(),new yt(e=t?t.createScriptURL(e):e,At)}yt.prototype.ta=!0,yt.prototype.sa=function(){return this.a.toString()},yt.prototype.toString=function(){return"TrustedResourceUrl{"+this.a+"}"};var Tt=/%{(\w+)}/g,Et=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i,At={};function kt(t,e){this.a=e===Dt?t:""}function St(t){return t instanceof kt&&t.constructor===kt?t.a:(D("expected object of type SafeUrl, got '"+t+"' of type "+d(t)),"type_error:SafeUrl")}kt.prototype.ta=!0,kt.prototype.sa=function(){return this.a.toString()},kt.prototype.toString=function(){return"SafeUrl{"+this.a+"}"};var Nt=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|font\/\w+|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\w+=(?:\w+|"[\w;,= ]+"))*$/i,_t=/^data:(.*);base64,[a-z0-9+\/]+=*$/i,Ot=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;function Ct(t){return t instanceof kt?t:(t="object"==typeof t&&t.ta?t.sa():String(t),t=Ot.test(t)||(e=(t=(t=String(t)).replace(/(%0A|%0D)/g,"")).match(_t))&&Nt.test(e[1])?new kt(t,Dt):null);var e}function Rt(t){return t instanceof kt?t:(t="object"==typeof t&&t.ta?t.sa():String(t),new kt(t=!Ot.test(t)?"about:invalid#zClosurez":t,Dt))}var Dt={},Pt=new kt("about:invalid#zClosurez",Dt);function Lt(t,e,n){this.a=n===xt?t:""}Lt.prototype.ta=!0,Lt.prototype.sa=function(){return this.a.toString()},Lt.prototype.toString=function(){return"SafeHtml{"+this.a+"}"};var xt={};function Mt(t,e,n,i){return t=t instanceof kt?t:Rt(t),e=e||l,n=n instanceof dt?pt(n):n||"",e.open(St(t),n,i,void 0)}function jt(t){for(var e=t.split("%s"),n="",i=Array.prototype.slice.call(arguments,1);i.length&&1")?t.replace(Z,">"):t).indexOf('"')?t.replace(Q,"""):t).indexOf("'")?t.replace(tt,"'"):t).indexOf("\0")&&(t=t.replace(et,"�"))),t}function Vt(t){return Vt[" "](t),t}Vt[" "]=a;var Ft,qt=at("Opera"),Ht=at("Trident")||at("MSIE"),Kt=at("Edge"),Gt=Kt||Ht,Bt=at("Gecko")&&!(it(J.toLowerCase(),"webkit")&&!at("Edge"))&&!(at("Trident")||at("MSIE"))&&!at("Edge"),Wt=it(J.toLowerCase(),"webkit")&&!at("Edge");function Xt(){var t=l.document;return t?t.documentMode:void 0}t:{var Jt="",Yt=(Yt=J,Bt?/rv:([^\);]+)(\)|;)/.exec(Yt):Kt?/Edge\/([\d\.]+)/.exec(Yt):Ht?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(Yt):Wt?/WebKit\/(\S+)/.exec(Yt):qt?/(?:Version)[ \/]?(\S+)/.exec(Yt):void 0);if(Yt&&(Jt=Yt?Yt[1]:""),Ht){Yt=Xt();if(null!=Yt&&Yt>parseFloat(Jt)){Ft=String(Yt);break t}}Ft=Jt}var zt={};function $t(s){return t=s,e=function(){for(var t=0,e=Y(String(Ft)).split("."),n=Y(String(s)).split("."),i=Math.max(e.length,n.length),r=0;0==t&&r"),i=i.join("")),i=ae(n,i),r&&("string"==typeof r?i.className=r:Array.isArray(r)?i.className=r.join(" "):ee(i,r)),2>>0);function ln(e){return v(e)?e:(e[hn]||(e[hn]=function(t){return e.handleEvent(t)}),e[hn])}function fn(){Pe.call(this),this.v=new Je(this),(this.bc=this).hb=null}function dn(t,e,n,i,r){t.v.add(String(e),n,!1,i,r)}function pn(t,e,n,i,r){t.v.add(String(e),n,!0,i,r)}function vn(t,e,n,i){if(!(e=t.v.a[String(e)]))return!0;e=e.concat();for(var r=!0,o=0;o>4&15).toString(16)+(15&t).toString(16)}An.prototype.toString=function(){var t=[],e=this.c;e&&t.push(Pn(e,xn,!0),":");var n=this.a;return!n&&"file"!=e||(t.push("//"),(e=this.l)&&t.push(Pn(e,xn,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.g)&&t.push(":",String(n))),(n=this.f)&&(this.a&&"/"!=n.charAt(0)&&t.push("/"),t.push(Pn(n,"/"==n.charAt(0)?jn:Mn,!0))),(n=this.b.toString())&&t.push("?",n),(n=this.h)&&t.push("#",Pn(n,Vn)),t.join("")},An.prototype.resolve=function(t){var e=new An(this),n=!!t.c;n?kn(e,t.c):n=!!t.l,n?e.l=t.l:n=!!t.a,n?e.a=t.a:n=null!=t.g;var i=t.f;if(n)Sn(e,t.g);else if(n=!!t.f)if("/"!=i.charAt(0)&&(this.a&&!this.f?i="/"+i:-1!=(r=e.f.lastIndexOf("/"))&&(i=e.f.substr(0,r+1)+i)),".."==(r=i)||"."==r)i="";else if(it(r,"./")||it(r,"/.")){for(var i=0==r.lastIndexOf("/",0),r=r.split("/"),o=[],a=0;a2*t.c&&In(t)))}function Gn(t,e){return qn(t),e=Xn(t,e),Tn(t.a.b,e)}function Bn(t,e,n){Kn(t,e),0',t=new Lt(t=(i=bt())?i.createHTML(t):t,0,xt),i=a.document)&&(i.write((o=t)instanceof Lt&&o.constructor===Lt?o.a:(D("expected object of type SafeHtml, got '"+o+"' of type "+d(o)),"type_error:SafeHtml")),i.close())):(a=Mt(e,i,n,a))&&t.noopener&&(a.opener=null),a)try{a.focus()}catch(t){}return a}var oi=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,ai=/^[^@]+@[^@]+$/;function si(){var e=null;return new fe(function(t){"complete"==l.document.readyState?t():(e=function(){t()},en(window,"load",e))}).o(function(t){throw nn(window,"load",e),t})}function ui(t){return t=t||bi(),!("file:"!==Ei()&&"ionic:"!==Ei()||!t.toLowerCase().match(/iphone|ipad|ipod|android/))}function ci(){var t=l.window;try{return t&&t!=t.top}catch(t){return}}function hi(){return void 0!==l.WorkerGlobalScope&&"function"==typeof l.importScripts}function li(){return Zl.default.INTERNAL.hasOwnProperty("reactNative")?"ReactNative":Zl.default.INTERNAL.hasOwnProperty("node")?"Node":hi()?"Worker":"Browser"}function fi(){var t=li();return"ReactNative"===t||"Node"===t}var di="Firefox",pi="Chrome";function vi(t){var e=t.toLowerCase();return it(e,"opera/")||it(e,"opr/")||it(e,"opios/")?"Opera":it(e,"iemobile")?"IEMobile":it(e,"msie")||it(e,"trident/")?"IE":it(e,"edge/")?"Edge":it(e,"firefox/")?di:it(e,"silk/")?"Silk":it(e,"blackberry")?"Blackberry":it(e,"webos")?"Webos":!it(e,"safari/")||it(e,"chrome/")||it(e,"crios/")||it(e,"android")?!it(e,"chrome/")&&!it(e,"crios/")||it(e,"edge/")?it(e,"android")?"Android":(t=t.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))&&2==t.length?t[1]:"Other":pi:"Safari"}var mi={md:"FirebaseCore-web",od:"FirebaseUI-web"};function gi(t,e){e=e||[];var n,i=[],r={};for(n in mi)r[mi[n]]=!0;for(n=0;n>4),64!=a&&(t(o<<4&240|a>>2),64!=s&&t(a<<6&192|s))}}(t,function(t){e.push(t)}),e}function Pr(t){var e=xr(t);if(!(e&&e.sub&&e.iss&&e.aud&&e.exp))throw Error("Invalid JWT");this.h=t,this.a=e.exp,this.i=e.sub,t=Date.now()/1e3,this.g=e.iat||(t>this.a?this.a:t),this.b=e.provider_id||e.firebase&&e.firebase.sign_in_provider||null,this.f=e.firebase&&e.firebase.tenant||null,this.c=!!e.is_anonymous||"anonymous"==this.b}function Lr(t){try{return new Pr(t)}catch(t){return null}}function xr(t){if(!t)return null;if(3!=(t=t.split(".")).length)return null;for(var e=(4-(t=t[1]).length%4)%4,n=0;n>10)),t[n++]=String.fromCharCode(56320+(1023&a))):(r=i[e++],o=i[e++],t[n++]=String.fromCharCode((15&s)<<12|(63&r)<<6|63&o))}return JSON.parse(t.join(""))}catch(t){}return null}Pr.prototype.T=function(){return this.f},Pr.prototype.l=function(){return this.c},Pr.prototype.toString=function(){return this.h};var Mr="oauth_consumer_key oauth_nonce oauth_signature oauth_signature_method oauth_timestamp oauth_token oauth_version".split(" "),jr=["client_id","response_type","scope","redirect_uri","state"],Ur={nd:{Ja:"locale",va:700,ua:600,fa:"facebook.com",Ya:jr},pd:{Ja:null,va:500,ua:750,fa:"github.com",Ya:jr},qd:{Ja:"hl",va:515,ua:680,fa:"google.com",Ya:jr},wd:{Ja:"lang",va:485,ua:705,fa:"twitter.com",Ya:Mr},kd:{Ja:"locale",va:640,ua:600,fa:"apple.com",Ya:[]}};function Vr(t){for(var e in Ur)if(Ur[e].fa==t)return Ur[e];return null}function Fr(t){var e={};e["facebook.com"]=Br,e["google.com"]=Xr,e["github.com"]=Wr,e["twitter.com"]=Jr;var n=t&&t[Hr];try{if(n)return new(e[n]||Gr)(t);if(void 0!==t[qr])return new Kr(t)}catch(t){}return null}var qr="idToken",Hr="providerId";function Kr(t){var e,n=t[Hr];if(n||!t[qr]||(e=Lr(t[qr]))&&e.b&&(n=e.b),!n)throw Error("Invalid additional user info!");e=!1,void 0!==t.isNewUser?e=!!t.isNewUser:"identitytoolkit#SignupNewUserResponse"===t.kind&&(e=!0),Fi(this,"providerId",n="anonymous"==n||"custom"==n?null:n),Fi(this,"isNewUser",e)}function Gr(t){Kr.call(this,t),Fi(this,"profile",Ki((t=Ni(t.rawUserInfo||"{}"))||{}))}function Br(t){if(Gr.call(this,t),"facebook.com"!=this.providerId)throw Error("Invalid provider ID!")}function Wr(t){if(Gr.call(this,t),"github.com"!=this.providerId)throw Error("Invalid provider ID!");Fi(this,"username",this.profile&&this.profile.login||null)}function Xr(t){if(Gr.call(this,t),"google.com"!=this.providerId)throw Error("Invalid provider ID!")}function Jr(t){if(Gr.call(this,t),"twitter.com"!=this.providerId)throw Error("Invalid provider ID!");Fi(this,"username",t.screenName||null)}function Yr(t){var e=On(i=Cn(t),"link"),n=On(Cn(e),"link"),i=On(i,"deep_link_id");return On(Cn(i),"link")||i||n||e||t}function zr(t,e){if(!t&&!e)throw new T("internal-error","Internal assert: no raw session string available");if(t&&e)throw new T("internal-error","Internal assert: unable to determine the session type");this.a=t||null,this.b=e||null,this.type=this.a?$r:Zr}w(Gr,Kr),w(Br,Gr),w(Wr,Gr),w(Xr,Gr),w(Jr,Gr);var $r="enroll",Zr="signin";function Qr(){}function to(t,n){return t.then(function(t){if(t[Ka]){var e=Lr(t[Ka]);if(!e||n!=e.i)throw new T("user-mismatch");return t}throw new T("user-mismatch")}).o(function(t){throw t&&t.code&&t.code==k+"user-not-found"?new T("user-mismatch"):t})}function eo(t,e){if(!e)throw new T("internal-error","failed to construct a credential");this.a=e,Fi(this,"providerId",t),Fi(this,"signInMethod",t)}function no(t){return{pendingToken:t.a,requestUri:"http://localhost"}}function io(t){if(t&&t.providerId&&t.signInMethod&&0==t.providerId.indexOf("saml.")&&t.pendingToken)try{return new eo(t.providerId,t.pendingToken)}catch(t){}return null}function ro(t,e,n){if(this.a=null,e.idToken||e.accessToken)e.idToken&&Fi(this,"idToken",e.idToken),e.accessToken&&Fi(this,"accessToken",e.accessToken),e.nonce&&!e.pendingToken&&Fi(this,"nonce",e.nonce),e.pendingToken&&(this.a=e.pendingToken);else{if(!e.oauthToken||!e.oauthTokenSecret)throw new T("internal-error","failed to construct a credential");Fi(this,"accessToken",e.oauthToken),Fi(this,"secret",e.oauthTokenSecret)}Fi(this,"providerId",t),Fi(this,"signInMethod",n)}function oo(t){var e={};return t.idToken&&(e.id_token=t.idToken),t.accessToken&&(e.access_token=t.accessToken),t.secret&&(e.oauth_token_secret=t.secret),e.providerId=t.providerId,t.nonce&&!t.a&&(e.nonce=t.nonce),e={postBody:Hn(e).toString(),requestUri:"http://localhost"},t.a&&(delete e.postBody,e.pendingToken=t.a),e}function ao(t){if(t&&t.providerId&&t.signInMethod){var e={idToken:t.oauthIdToken,accessToken:t.oauthTokenSecret?null:t.oauthAccessToken,oauthTokenSecret:t.oauthTokenSecret,oauthToken:t.oauthTokenSecret&&t.oauthAccessToken,nonce:t.nonce,pendingToken:t.pendingToken};try{return new ro(t.providerId,e,t.signInMethod)}catch(t){}}return null}function so(t,e){this.Qc=e||[],qi(this,{providerId:t,isOAuthProvider:!0}),this.Jb={},this.qb=(Vr(t)||{}).Ja||null,this.pb=null}function uo(t){if("string"!=typeof t||0!=t.indexOf("saml."))throw new T("argument-error",'SAML provider IDs must be prefixed with "saml."');so.call(this,t,[])}function co(t){so.call(this,t,jr),this.a=[]}function ho(){co.call(this,"facebook.com")}function lo(t){if(!t)throw new T("argument-error","credential failed: expected 1 argument (the OAuth access token).");var e=t;return m(t)&&(e=t.accessToken),(new ho).credential({accessToken:e})}function fo(){co.call(this,"github.com")}function po(t){if(!t)throw new T("argument-error","credential failed: expected 1 argument (the OAuth access token).");var e=t;return m(t)&&(e=t.accessToken),(new fo).credential({accessToken:e})}function vo(){co.call(this,"google.com"),this.Ca("profile")}function mo(t,e){var n=t;return m(t)&&(n=t.idToken,e=t.accessToken),(new vo).credential({idToken:n,accessToken:e})}function go(){so.call(this,"twitter.com",Mr)}function bo(t,e){var n=t;if(!(n=!m(n)?{oauthToken:t,oauthTokenSecret:e}:n).oauthToken||!n.oauthTokenSecret)throw new T("argument-error","credential failed: expected 2 arguments (the OAuth access token and secret).");return new ro("twitter.com",n,"twitter.com")}function yo(t,e,n){this.a=t,this.f=e,Fi(this,"providerId","password"),Fi(this,"signInMethod",n===Io.EMAIL_LINK_SIGN_IN_METHOD?Io.EMAIL_LINK_SIGN_IN_METHOD:Io.EMAIL_PASSWORD_SIGN_IN_METHOD)}function wo(t){return t&&t.email&&t.password?new yo(t.email,t.password,t.signInMethod):null}function Io(){qi(this,{providerId:"password",isOAuthProvider:!1})}function To(t,e){if(!(e=Eo(e)))throw new T("argument-error","Invalid email link!");return new yo(t,e.code,Io.EMAIL_LINK_SIGN_IN_METHOD)}function Eo(t){return(t=yr(t=Yr(t)))&&t.operation===Qi?t:null}function Ao(t){if(!(t.fb&&t.eb||t.La&&t.ea))throw new T("internal-error");this.a=t,Fi(this,"providerId","phone"),this.fa="phone",Fi(this,"signInMethod","phone")}function ko(e){if(e&&"phone"===e.providerId&&(e.verificationId&&e.verificationCode||e.temporaryProof&&e.phoneNumber)){var n={};return V(["verificationId","verificationCode","temporaryProof","phoneNumber"],function(t){e[t]&&(n[t]=e[t])}),new Ao(n)}return null}function So(t){return t.a.La&&t.a.ea?{temporaryProof:t.a.La,phoneNumber:t.a.ea}:{sessionInfo:t.a.fb,code:t.a.eb}}function No(t){try{this.a=t||Zl.default.auth()}catch(t){throw new T("argument-error","Either an instance of firebase.auth.Auth must be passed as an argument to the firebase.auth.PhoneAuthProvider constructor, or the default firebase App instance must be initialized via firebase.initializeApp().")}qi(this,{providerId:"phone",isOAuthProvider:!1})}function _o(t,e){if(!t)throw new T("missing-verification-id");if(!e)throw new T("missing-verification-code");return new Ao({fb:t,eb:e})}function Oo(t){if(t.temporaryProof&&t.phoneNumber)return new Ao({La:t.temporaryProof,ea:t.phoneNumber});var e=t&&t.providerId;if(!e||"password"===e)return null;var n=t&&t.oauthAccessToken,i=t&&t.oauthTokenSecret,r=t&&t.nonce,o=t&&t.oauthIdToken,a=t&&t.pendingToken;try{switch(e){case"google.com":return mo(o,n);case"facebook.com":return lo(n);case"github.com":return po(n);case"twitter.com":return bo(n,i);default:return n||i||o||a?a?0==e.indexOf("saml.")?new eo(e,a):new ro(e,{pendingToken:a,idToken:t.oauthIdToken,accessToken:t.oauthAccessToken},e):new co(e).credential({idToken:o,accessToken:n,rawNonce:r}):null}}catch(t){return null}}function Co(t){if(!t.isOAuthProvider)throw new T("invalid-oauth-provider")}function Ro(t,e,n,i,r,o,a){if(this.c=t,this.b=e||null,this.g=n||null,this.f=i||null,this.i=o||null,this.h=a||null,this.a=r||null,!this.g&&!this.a)throw new T("invalid-auth-event");if(this.g&&this.a)throw new T("invalid-auth-event");if(this.g&&!this.f)throw new T("invalid-auth-event")}function Do(t){return(t=t||{}).type?new Ro(t.type,t.eventId,t.urlResponse,t.sessionId,t.error&&E(t.error),t.postBody,t.tenantId):null}function Po(){this.b=null,this.a=[]}zr.prototype.Ha=function(){return this.a?ye(this.a):ye(this.b)},zr.prototype.w=function(){return this.type==$r?{multiFactorSession:{idToken:this.a}}:{multiFactorSession:{pendingCredential:this.b}}},Qr.prototype.ka=function(){},Qr.prototype.b=function(){},Qr.prototype.c=function(){},Qr.prototype.w=function(){},eo.prototype.ka=function(t){return ls(t,no(this))},eo.prototype.b=function(t,e){var n=no(this);return n.idToken=e,fs(t,n)},eo.prototype.c=function(t,e){return to(ds(t,no(this)),e)},eo.prototype.w=function(){return{providerId:this.providerId,signInMethod:this.signInMethod,pendingToken:this.a}},ro.prototype.ka=function(t){return ls(t,oo(this))},ro.prototype.b=function(t,e){var n=oo(this);return n.idToken=e,fs(t,n)},ro.prototype.c=function(t,e){return to(ds(t,oo(this)),e)},ro.prototype.w=function(){var t={providerId:this.providerId,signInMethod:this.signInMethod};return this.idToken&&(t.oauthIdToken=this.idToken),this.accessToken&&(t.oauthAccessToken=this.accessToken),this.secret&&(t.oauthTokenSecret=this.secret),this.nonce&&(t.nonce=this.nonce),this.a&&(t.pendingToken=this.a),t},so.prototype.Ka=function(t){return this.Jb=ct(t),this},w(uo,so),w(co,so),co.prototype.Ca=function(t){return K(this.a,t)||this.a.push(t),this},co.prototype.Rb=function(){return X(this.a)},co.prototype.credential=function(t,e){e=m(t)?{idToken:t.idToken||null,accessToken:t.accessToken||null,nonce:t.rawNonce||null}:{idToken:t||null,accessToken:e||null};if(!e.idToken&&!e.accessToken)throw new T("argument-error","credential failed: must provide the ID token and/or the access token.");return new ro(this.providerId,e,this.providerId)},w(ho,co),Fi(ho,"PROVIDER_ID","facebook.com"),Fi(ho,"FACEBOOK_SIGN_IN_METHOD","facebook.com"),w(fo,co),Fi(fo,"PROVIDER_ID","github.com"),Fi(fo,"GITHUB_SIGN_IN_METHOD","github.com"),w(vo,co),Fi(vo,"PROVIDER_ID","google.com"),Fi(vo,"GOOGLE_SIGN_IN_METHOD","google.com"),w(go,so),Fi(go,"PROVIDER_ID","twitter.com"),Fi(go,"TWITTER_SIGN_IN_METHOD","twitter.com"),yo.prototype.ka=function(t){return this.signInMethod==Io.EMAIL_LINK_SIGN_IN_METHOD?Js(t,Is,{email:this.a,oobCode:this.f}):Js(t,Ks,{email:this.a,password:this.f})},yo.prototype.b=function(t,e){return this.signInMethod==Io.EMAIL_LINK_SIGN_IN_METHOD?Js(t,Ts,{idToken:e,email:this.a,oobCode:this.f}):Js(t,xs,{idToken:e,email:this.a,password:this.f})},yo.prototype.c=function(t,e){return to(this.ka(t),e)},yo.prototype.w=function(){return{email:this.a,password:this.f,signInMethod:this.signInMethod}},qi(Io,{PROVIDER_ID:"password"}),qi(Io,{EMAIL_LINK_SIGN_IN_METHOD:"emailLink"}),qi(Io,{EMAIL_PASSWORD_SIGN_IN_METHOD:"password"}),Ao.prototype.ka=function(t){return t.gb(So(this))},Ao.prototype.b=function(t,e){var n=So(this);return n.idToken=e,Js(t,Bs,n)},Ao.prototype.c=function(t,e){var n=So(this);return n.operation="REAUTH",to(t=Js(t,Ws,n),e)},Ao.prototype.w=function(){var t={providerId:"phone"};return this.a.fb&&(t.verificationId=this.a.fb),this.a.eb&&(t.verificationCode=this.a.eb),this.a.La&&(t.temporaryProof=this.a.La),this.a.ea&&(t.phoneNumber=this.a.ea),t},No.prototype.gb=function(i,r){var o=this.a.a;return ye(r.verify()).then(function(e){if("string"!=typeof e)throw new T("argument-error","An implementation of firebase.auth.ApplicationVerifier.prototype.verify() must return a firebase.Promise that resolves with a string.");if("recaptcha"!==r.type)throw new T("argument-error",'Only firebase.auth.ApplicationVerifiers with type="recaptcha" are currently supported.');var t=m(i)?i.session:null,n=m(i)?i.phoneNumber:i,t=t&&t.type==$r?t.Ha().then(function(t){return Js(o,js,{idToken:t,phoneEnrollmentInfo:{phoneNumber:n,recaptchaToken:e}}).then(function(t){return t.phoneSessionInfo.sessionInfo})}):t&&t.type==Zr?t.Ha().then(function(t){return t={mfaPendingCredential:t,mfaEnrollmentId:i.multiFactorHint&&i.multiFactorHint.uid||i.multiFactorUid,phoneSignInInfo:{recaptchaToken:e}},Js(o,Us,t).then(function(t){return t.phoneResponseInfo.sessionInfo})}):Js(o,Ps,{phoneNumber:n,recaptchaToken:e});return t.then(function(t){return"function"==typeof r.reset&&r.reset(),t},function(t){throw"function"==typeof r.reset&&r.reset(),t})})},qi(No,{PROVIDER_ID:"phone"}),qi(No,{PHONE_SIGN_IN_METHOD:"phone"}),Ro.prototype.getUid=function(){var t=[];return t.push(this.c),this.b&&t.push(this.b),this.f&&t.push(this.f),this.h&&t.push(this.h),t.join("-")},Ro.prototype.T=function(){return this.h},Ro.prototype.w=function(){return{type:this.c,eventId:this.b,urlResponse:this.g,sessionId:this.f,postBody:this.i,tenantId:this.h,error:this.a&&this.a.w()}};var Lo,xo=null;function Mo(t){var e="unauthorized-domain",n=void 0,i=Cn(t);t=i.a,"chrome-extension"==(i=i.c)?n=jt("This chrome extension ID (chrome-extension://%s) is not authorized to run this operation. Add it to the OAuth redirect domains list in the Firebase console -> Auth section -> Sign in method tab.",t):"http"==i||"https"==i?n=jt("This domain (%s) is not authorized to run this operation. Add it to the OAuth redirect domains list in the Firebase console -> Auth section -> Sign in method tab.",t):e="operation-not-supported-in-this-environment",T.call(this,e,n)}function jo(t,e,n){T.call(this,t,n),(t=e||{}).Kb&&Fi(this,"email",t.Kb),t.ea&&Fi(this,"phoneNumber",t.ea),t.credential&&Fi(this,"credential",t.credential),t.$b&&Fi(this,"tenantId",t.$b)}function Uo(t){if(t.code){var e=t.code||"";0==e.indexOf(k)&&(e=e.substring(k.length));var n={credential:Oo(t),$b:t.tenantId};if(t.email)n.Kb=t.email;else if(t.phoneNumber)n.ea=t.phoneNumber;else if(!n.credential)return new T(e,t.message||void 0);return new jo(e,n,t.message)}return null}function Vo(){}function Fo(t){return t.c||(t.c=t.b())}function qo(){}function Ho(t){if(t.f||"undefined"!=typeof XMLHttpRequest||"undefined"==typeof ActiveXObject)return t.f;for(var e=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],n=0;n=function t(e){return e.c||(e.a?t(e.a):(D("Root logger has no level set."),null))}(this).value)for(v(e)&&(e=e()),t=new Wo(t,String(e),this.f),n&&(t.a=n),n=this;n;)n=n.a};var Qo,ta={},ea=null;function na(t){var e,n,i;return ea||(ea=new Xo(""),(ta[""]=ea).c=$o),(e=ta[t])||(e=new Xo(t),i=t.lastIndexOf("."),n=t.substr(i+1),(i=na(t.substr(0,i))).b||(i.b={}),(i.b[n]=e).a=i,ta[t]=e),e}function ia(t,e){t&&t.log(Zo,e,void 0)}function ra(t){this.f=t}function oa(t){fn.call(this),this.u=t,this.h=void 0,this.readyState=aa,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.l=new Headers,this.b=null,this.s="GET",this.f="",this.a=!1,this.i=na("goog.net.FetchXmlHttp"),this.m=this.c=this.g=null}w(ra,Vo),ra.prototype.a=function(){return new oa(this.f)},ra.prototype.b=(Qo={},function(){return Qo}),w(oa,fn);var aa=0;function sa(t){t.c.read().then(t.pc.bind(t)).catch(t.Va.bind(t))}function ua(t){t.readyState=4,t.g=null,t.c=null,t.m=null,ca(t)}function ca(t){t.onreadystatechange&&t.onreadystatechange.call(t)}function ha(t){fn.call(this),this.headers=new wn,this.D=t||null,this.c=!1,this.C=this.a=null,this.h=this.P=this.l="",this.f=this.N=this.i=this.J=!1,this.g=0,this.s=null,this.m=la,this.u=this.S=!1}(t=oa.prototype).open=function(t,e){if(this.readyState!=aa)throw this.abort(),Error("Error reopening a connection");this.s=t,this.f=e,this.readyState=1,ca(this)},t.send=function(t){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.a=!0;var e={headers:this.l,method:this.s,credentials:this.h,cache:void 0};t&&(e.body=t),this.u.fetch(new Request(this.f,e)).then(this.uc.bind(this),this.Va.bind(this))},t.abort=function(){this.response=this.responseText="",this.l=new Headers,this.status=0,this.c&&this.c.cancel("Request was aborted."),1<=this.readyState&&this.a&&4!=this.readyState&&(this.a=!1,ua(this)),this.readyState=aa},t.uc=function(t){this.a&&(this.g=t,this.b||(this.status=this.g.status,this.statusText=this.g.statusText,this.b=t.headers,this.readyState=2,ca(this)),this.a&&(this.readyState=3,ca(this),this.a&&("arraybuffer"===this.responseType?t.arrayBuffer().then(this.sc.bind(this),this.Va.bind(this)):void 0!==l.ReadableStream&&"body"in t?(this.response=this.responseText="",this.c=t.body.getReader(),this.m=new TextDecoder,sa(this)):t.text().then(this.tc.bind(this),this.Va.bind(this)))))},t.pc=function(t){var e;this.a&&((e=this.m.decode(t.value||new Uint8Array(0),{stream:!t.done}))&&(this.response=this.responseText+=e),(t.done?ua:ca)(this),3==this.readyState&&sa(this))},t.tc=function(t){this.a&&(this.response=this.responseText=t,ua(this))},t.sc=function(t){this.a&&(this.response=t,ua(this))},t.Va=function(t){var e=this.i;e&&e.log(zo,"Failed to fetch url "+this.f,t instanceof Error?t:Error(t)),this.a&&ua(this)},t.setRequestHeader=function(t,e){this.l.append(t,e)},t.getResponseHeader=function(t){return this.b?this.b.get(t.toLowerCase())||"":((t=this.i)&&t.log(zo,"Attempting to get response header but no headers have been received for url: "+this.f,void 0),"")},t.getAllResponseHeaders=function(){if(!this.b){var t=this.i;return t&&t.log(zo,"Attempting to get all response headers but no headers have been received for url: "+this.f,void 0),""}for(var t=[],e=this.b.entries(),n=e.next();!n.done;)n=n.value,t.push(n[0]+": "+n[1]),n=e.next();return t.join("\r\n")},Object.defineProperty(oa.prototype,"withCredentials",{get:function(){return"include"===this.h},set:function(t){this.h=t?"include":"same-origin"}}),w(ha,fn);var la="";ha.prototype.b=na("goog.net.XhrIo");var fa=/^https?$/i,da=["POST","PUT"];function pa(e,t,n,i,r){if(e.a)throw Error("[goog.net.XhrIo] Object is active with another request="+e.l+"; newUri="+t);n=n?n.toUpperCase():"GET",e.l=t,e.h="",e.P=n,e.J=!1,e.c=!0,e.a=(e.D||Lo).a(),e.C=e.D?Fo(e.D):Fo(Lo),e.a.onreadystatechange=b(e.Wb,e);try{ia(e.b,Ea(e,"Opening Xhr")),e.N=!0,e.a.open(n,String(t),!0),e.N=!1}catch(t){return ia(e.b,Ea(e,"Error opening Xhr: "+t.message)),void ma(e,t)}t=i||"";var o,a=new wn(e.headers);r&&function(t,e){if(t.forEach&&"function"==typeof t.forEach)t.forEach(e,void 0);else if(p(t)||"string"==typeof t)V(t,e,void 0);else for(var n=yn(t),i=bn(t),r=i.length,o=0;o>>7|r<<25)^(r>>>18|r<<14)^r>>>3)|0,a=(0|n[e-7])+((i>>>17|i<<15)^(i>>>19|i<<13)^i>>>10)|0;n[e]=o+a|0}i=0|t.a[0],r=0|t.a[1];var s=0|t.a[2],u=0|t.a[3],c=0|t.a[4],h=0|t.a[5],l=0|t.a[6];for(o=0|t.a[7],e=0;e<64;e++){var f=((i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10))+(i&r^i&s^r&s)|0;a=(o=o+((c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7))|0)+((a=(a=c&h^~c&l)+(0|Zu[e])|0)+(0|n[e])|0)|0,o=l,l=h,h=c,c=u+a|0,u=s,s=r,r=i,i=a+f|0}t.a[0]=t.a[0]+i|0,t.a[1]=t.a[1]+r|0,t.a[2]=t.a[2]+s|0,t.a[3]=t.a[3]+u|0,t.a[4]=t.a[4]+c|0,t.a[5]=t.a[5]+h|0,t.a[6]=t.a[6]+l|0,t.a[7]=t.a[7]+o|0}function uc(t,e,n){void 0===n&&(n=e.length);var i=0,r=t.c;if("string"==typeof e)for(;i>r&255;return q(t,function(t){return 1<(t=t.toString(16)).length?t:"0"+t}).join("")}function vc(t,e){for(var n=0;nt.f&&(t.a=t.f),e)}function oh(t){this.f=t,this.b=this.a=null,this.c=Date.now()}function ah(t,e){void 0===e&&(e=t.b?(e=t.b).a-e.g:0),t.c=Date.now()+1e3*e}function sh(t,e){t.b=Lr(e[Ka]||""),t.a=e.refreshToken,ah(t,void 0!==(e=e.expiresIn)?Number(e):void 0)}function uh(e,t){return i=e.f,r=t,new fe(function(e,n){"refresh_token"==r.grant_type&&r.refresh_token||"authorization_code"==r.grant_type&&r.code?Za(i,i.l+"?key="+encodeURIComponent(i.c),function(t){t?t.error?n(zs(t)):t.access_token&&t.refresh_token?e(t):n(new T("internal-error")):n(new T("network-request-failed"))},"POST",Hn(r).toString(),i.g,i.m.get()):n(new T("internal-error"))}).then(function(t){return e.b=Lr(t.access_token),e.a=t.refresh_token,ah(e,t.expires_in),{accessToken:e.b.toString(),refreshToken:e.a}}).o(function(t){throw"auth/user-token-expired"==t.code&&(e.a=null),t});var i,r}function ch(t,e){this.a=t||null,this.b=e||null,qi(this,{lastSignInTime:Li(e||null),creationTime:Li(t||null)})}function hh(t,e,n,i,r,o){qi(this,{uid:t,displayName:i||null,photoURL:r||null,email:n||null,phoneNumber:o||null,providerId:e})}function lh(t,e,n){this.N=[],this.l=t.apiKey,this.m=t.appName,this.s=t.authDomain||null;var i,r=Zl.default.SDK_VERSION?gi(Zl.default.SDK_VERSION):null;this.a=new qa(this.l,_(A),r),(this.u=t.emulatorConfig||null)&&Ya(this.a,this.u),this.h=new oh(this.a),wh(this,e[Ka]),sh(this.h,e),Fi(this,"refreshToken",this.h.a),Eh(this,n||{}),fn.call(this),this.P=!1,this.s&&Ii()&&(this.b=xc(this.s,this.l,this.m,this.u)),this.W=[],this.i=null,this.D=(i=this,new ih(function(){return i.I(!0)},function(t){return!(!t||"auth/network-request-failed"!=t.code)},function(){var t=i.h.c-Date.now()-3e5;return 0this.c-3e4?this.a?uh(this,{grant_type:"refresh_token",refresh_token:this.a}):ye(null):ye({accessToken:this.b.toString(),refreshToken:this.a})},ch.prototype.w=function(){return{lastLoginAt:this.b,createdAt:this.a}},w(lh,fn),lh.prototype.xa=function(t){this.za=t,Ja(this.a,t)},lh.prototype.la=function(){return this.za},lh.prototype.Ga=function(){return X(this.aa)},lh.prototype.ib=function(){this.D.b&&(this.D.stop(),this.D.start())},Fi(lh.prototype,"providerId","firebase"),(t=lh.prototype).reload=function(){var t=this;return Vh(this,kh(this).then(function(){return Rh(t).then(function(){return Ih(t)}).then(Ah)}))},t.oc=function(t){return this.I(t).then(function(t){return new Bc(t)})},t.I=function(t){var e=this;return Vh(this,kh(this).then(function(){return e.h.getToken(t)}).then(function(t){if(!t)throw new T("internal-error");return t.accessToken!=e.Aa&&(wh(e,t.accessToken),e.dispatchEvent(new th("tokenChanged"))),Oh(e,"refreshToken",t.refreshToken),t.accessToken}))},t.Kc=function(t){if(!(t=t.users)||!t.length)throw new T("internal-error");Eh(this,{uid:(t=t[0]).localId,displayName:t.displayName,photoURL:t.photoUrl,email:t.email,emailVerified:!!t.emailVerified,phoneNumber:t.phoneNumber,lastLoginAt:t.lastLoginAt,createdAt:t.createdAt,tenantId:t.tenantId});for(var e,n=(e=(e=t).providerUserInfo)&&e.length?q(e,function(t){return new hh(t.rawId,t.providerId,t.email,t.displayName,t.photoUrl,t.phoneNumber)}):[],i=0;i=xl.length)throw new T("internal-error","Argument validator received an unsupported number of arguments.");n=xl[r],i=(i?"":n+" argument ")+(e.name?'"'+e.name+'" ':"")+"must be "+e.K+".";break t}i=null}}if(i)throw new T("argument-error",t+" failed: "+i)}(t=kl.prototype).Ia=function(){var e=this;return this.f||(this.f=Rl(this,ye().then(function(){if(Ti()&&!hi())return si();throw new T("operation-not-supported-in-this-environment","RecaptchaVerifier is only supported in a browser HTTP/HTTPS environment.")}).then(function(){return e.m.g(e.u())}).then(function(t){return e.g=t,Js(e.s,Rs,{})}).then(function(t){e.a[_l]=t.recaptchaSiteKey}).o(function(t){throw e.f=null,t})))},t.render=function(){Dl(this);var n=this;return Rl(this,this.Ia().then(function(){var t,e;return null===n.c&&(e=n.v,n.i||(t=te(e),e=oe("DIV"),t.appendChild(e)),n.c=n.g.render(e,n.a)),n.c}))},t.verify=function(){Dl(this);var r=this;return Rl(this,this.render().then(function(e){return new fe(function(n){var i,t=r.g.getResponse(e);t?n(t):(r.l.push(i=function(t){var e;t&&(e=i,B(r.l,function(t){return t==e}),n(t))}),r.i&&r.g.execute(r.c))})}))},t.reset=function(){Dl(this),null!==this.c&&this.g.reset(this.c)},t.clear=function(){Dl(this),this.J=!0,this.m.c();for(var t,e=0;es[0]&&e[1]>6|192:(55296==(64512&i)&&r+1>18|240,e[n++]=i>>12&63|128):e[n++]=i>>12|224,e[n++]=i>>6&63|128),e[n++]=63&i|128)}return e}function u(t){return function(t){t=i(t);return o.encodeByteArray(t,!0)}(t).replace(/\./g,"")}var o={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray:function(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();for(var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[],i=0;i>6,c=63&c;u||(c=64,s||(h=64)),r.push(n[o>>2],n[(3&o)<<4|a>>4],n[h],n[c])}return r.join("")},encodeString:function(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(i(t),e)},decodeString:function(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){for(var e=[],n=0,r=0;n>10)),e[r++]=String.fromCharCode(56320+(1023&i))):(o=t[n++],s=t[n++],e[r++]=String.fromCharCode((15&a)<<12|(63&o)<<6|63&s))}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray:function(t,e){this.init_();for(var n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[],i=0;i>4),64!==a&&(r.push(s<<4&240|a>>2),64!==u&&r.push(a<<6&192|u))}return r},init_:function(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(var t=0;t=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}};function h(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function c(){return!function(){try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(t){return}}()&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}var l,f="FirebaseError",d=(n(p,l=Error),p);function p(t,e,n){e=l.call(this,e)||this;return e.code=t,e.customData=n,e.name=f,Object.setPrototypeOf(e,p.prototype),Error.captureStackTrace&&Error.captureStackTrace(e,m.prototype.create),e}var m=(v.prototype.create=function(t){for(var e=[],n=1;n"})):"Error",t=this.serviceName+": "+t+" ("+o+").";return new d(o,t,i)},v);function v(t,e,n){this.service=t,this.serviceName=e,this.errors=n}var w,b=/\{\$([^}]+)}/g;function E(t){return t&&t._delegate?t._delegate:t}(k=w=w||{})[k.DEBUG=0]="DEBUG",k[k.VERBOSE=1]="VERBOSE",k[k.INFO=2]="INFO",k[k.WARN=3]="WARN",k[k.ERROR=4]="ERROR",k[k.SILENT=5]="SILENT";function T(t,e){for(var n=[],r=2;r=t.length?void 0:t)&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}var k,R="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},x={},O=R||self;function L(){}function P(t){var e=typeof t;return"array"==(e="object"!=e?e:t?Array.isArray(t)?"array":e:"null")||"object"==e&&"number"==typeof t.length}function M(t){var e=typeof t;return"object"==e&&null!=t||"function"==e}var F="closure_uid_"+(1e9*Math.random()>>>0),V=0;function U(t,e,n){return t.call.apply(t.bind,arguments)}function q(e,n,t){if(!e)throw Error();if(2parseFloat(yt)){at=String(gt);break t}}at=yt}var mt={};function vt(){return t=function(){for(var t=0,e=J(String(at)).split("."),n=J("9").split("."),r=Math.max(e.length,n.length),i=0;0==t&&i>>0);function qt(e){return"function"==typeof e?e:(e[Ut]||(e[Ut]=function(t){return e.handleEvent(t)}),e[Ut])}function Bt(){G.call(this),this.i=new Nt(this),(this.P=this).I=null}function jt(t,e){var n,r=t.I;if(r)for(n=[];r;r=r.I)n.push(r);if(t=t.P,r=e.type||e,"string"==typeof e?e=new Et(e,t):e instanceof Et?e.target=e.target||t:(s=e,ot(e=new Et(r,t),s)),s=!0,n)for(var i=n.length-1;0<=i;i--)var o=e.g=n[i],s=Kt(o,r,!0,e)&&s;if(s=Kt(o=e.g=t,r,!0,e)&&s,s=Kt(o,r,!1,e)&&s,n)for(i=0;io.length?Pe:(o=o.substr(a,s),i.C=a+s,o)))==Pe){4==e&&(t.o=4,be(14),u=!1),de(t.j,t.m,null,"[Incomplete Response]");break}if(r==Le){t.o=4,be(15),de(t.j,t.m,n,"[Invalid Chunk]"),u=!1;break}de(t.j,t.m,r,null),Qe(t,r)}Ve(t)&&r!=Pe&&r!=Le&&(t.h.g="",t.C=0),4!=e||0!=n.length||t.h.h||(t.o=1,be(16),u=!1),t.i=t.i&&u,u?0>4&15).toString(16)+(15&t).toString(16)}$e.prototype.toString=function(){var t=[],e=this.j;e&&t.push(an(e,cn,!0),":");var n=this.i;return!n&&"file"!=e||(t.push("//"),(e=this.s)&&t.push(an(e,cn,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.m)&&t.push(":",String(n))),(n=this.l)&&(this.i&&"/"!=n.charAt(0)&&t.push("/"),t.push(an(n,"/"==n.charAt(0)?ln:hn,!0))),(n=this.h.toString())&&t.push("?",n),(n=this.o)&&t.push("#",an(n,dn)),t.join("")};var cn=/[#\/\?@]/g,hn=/[#\?:]/g,ln=/[#\?]/g,fn=/[#\?@]/g,dn=/#/g;function pn(t,e){this.h=this.g=null,this.i=t||null,this.j=!!e}function yn(n){n.g||(n.g=new ze,n.h=0,n.i&&function(t,e){if(t){t=t.split("&");for(var n=0;n2*t.i&&We(t)))}function mn(t,e){return yn(t),e=wn(t,e),Ye(t.g.h,e)}function vn(t,e,n){gn(t,e),0=t.j}function Sn(t){return t.h?1:t.g?t.g.size:0}function An(t,e){return t.h?t.h==e:t.g&&t.g.has(e)}function Dn(t,e){t.g?t.g.add(e):t.h=e}function Nn(t,e){t.h&&t.h==e?t.h=null:t.g&&t.g.has(e)&&t.g.delete(e)}function Cn(t){var e,n;if(null!=t.h)return t.i.concat(t.h.D);if(null==t.g||0===t.g.size)return Y(t.i);var r=t.i;try{for(var i=C(t.g.values()),o=i.next();!o.done;o=i.next())var s=o.value,r=r.concat(s.D)}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}return r}function kn(){}function Rn(){this.g=new kn}function xn(t,e,n,r,i){try{e.onload=null,e.onerror=null,e.onabort=null,e.ontimeout=null,i(r)}catch(t){}}function On(t){this.l=t.$b||null,this.j=t.ib||!1}function Ln(t,e){Bt.call(this),this.D=t,this.u=e,this.m=void 0,this.readyState=Pn,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.v=new Headers,this.h=null,this.C="GET",this.B="",this.g=!1,this.A=this.j=this.l=null}En.prototype.cancel=function(){var e,t;if(this.i=Cn(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){try{for(var n=C(this.g.values()),r=n.next();!r.done;r=n.next())r.value.cancel()}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}this.g.clear()}},kn.prototype.stringify=function(t){return O.JSON.stringify(t,void 0)},kn.prototype.parse=function(t){return O.JSON.parse(t,void 0)},K(On,_e),On.prototype.g=function(){return new Ln(this.l,this.j)},On.prototype.i=(Tn={},function(){return Tn}),K(Ln,Bt);var Pn=0;function Mn(t){t.j.read().then(t.Sa.bind(t)).catch(t.ha.bind(t))}function Fn(t){t.readyState=4,t.l=null,t.j=null,t.A=null,Vn(t)}function Vn(t){t.onreadystatechange&&t.onreadystatechange.call(t)}(k=Ln.prototype).open=function(t,e){if(this.readyState!=Pn)throw this.abort(),Error("Error reopening a connection");this.C=t,this.B=e,this.readyState=1,Vn(this)},k.send=function(t){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;var e={headers:this.v,method:this.C,credentials:this.m,cache:void 0};t&&(e.body=t),(this.D||O).fetch(new Request(this.B,e)).then(this.Va.bind(this),this.ha.bind(this))},k.abort=function(){this.response=this.responseText="",this.v=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted."),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Fn(this)),this.readyState=Pn},k.Va=function(t){if(this.g&&(this.l=t,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=t.headers,this.readyState=2,Vn(this)),this.g&&(this.readyState=3,Vn(this),this.g)))if("arraybuffer"===this.responseType)t.arrayBuffer().then(this.Ta.bind(this),this.ha.bind(this));else if(void 0!==O.ReadableStream&&"body"in t){if(this.j=t.body.getReader(),this.u){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.A=new TextDecoder;Mn(this)}else t.text().then(this.Ua.bind(this),this.ha.bind(this))},k.Sa=function(t){var e;this.g&&(this.u&&t.value?this.response.push(t.value):this.u||(e=t.value||new Uint8Array(0),(e=this.A.decode(e,{stream:!t.done}))&&(this.response=this.responseText+=e)),(t.done?Fn:Vn)(this),3==this.readyState&&Mn(this))},k.Ua=function(t){this.g&&(this.response=this.responseText=t,Fn(this))},k.Ta=function(t){this.g&&(this.response=t,Fn(this))},k.ha=function(){this.g&&Fn(this)},k.setRequestHeader=function(t,e){this.v.append(t,e)},k.getResponseHeader=function(t){return this.h&&this.h.get(t.toLowerCase())||""},k.getAllResponseHeaders=function(){if(!this.h)return"";for(var t=[],e=this.h.entries(),n=e.next();!n.done;)n=n.value,t.push(n[0]+": "+n[1]),n=e.next();return t.join("\r\n")},Object.defineProperty(Ln.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(t){this.m=t?"include":"same-origin"}});var Un=O.JSON.parse;function qn(t){Bt.call(this),this.headers=new ze,this.u=t||null,this.h=!1,this.C=this.g=null,this.H="",this.m=0,this.j="",this.l=this.F=this.v=this.D=!1,this.B=0,this.A=null,this.J=Bn,this.K=this.L=!1}K(qn,Bt);var Bn="",jn=/^https?$/i,Kn=["POST","PUT"];function Gn(t){return"content-type"==t.toLowerCase()}function Qn(t,e){t.h=!1,t.g&&(t.l=!0,t.g.abort(),t.l=!1),t.j=e,t.m=5,Hn(t),Wn(t)}function Hn(t){t.D||(t.D=!0,jt(t,"complete"),jt(t,"error"))}function zn(t){if(t.h&&void 0!==x&&(!t.C[1]||4!=Xn(t)||2!=t.ba()))if(t.v&&4==Xn(t))ie(t.Fa,0,t);else if(jt(t,"readystatechange"),4==Xn(t)){t.h=!1;try{var e,n,r,i,o=t.ba();t:switch(o){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var s=!0;break t;default:s=!1}if((e=s)||((n=0===o)&&(!(i=String(t.H).match(Xe)[1]||null)&&O.self&&O.self.location&&(i=(r=O.self.location.protocol).substr(0,r.length-1)),n=!jn.test(i?i.toLowerCase():"")),e=n),e)jt(t,"complete"),jt(t,"success");else{t.m=6;try{var a=2=r.i.j-(r.m?1:0)||(r.m?(r.l=i.D.concat(r.l),0):1==r.G||2==r.G||r.C>=(r.Xa?0:r.Ya)||(r.m=Te(B(r.Ha,r,i),yr(r,r.C)),r.C++,0))))&&(2!=s||!hr(t)))switch(o&&0e.length?1:0},vi),ci=(n(mi,ui=R),mi.prototype.construct=function(t,e,n){return new mi(t,e,n)},mi.prototype.canonicalString=function(){return this.toArray().join("/")},mi.prototype.toString=function(){return this.canonicalString()},mi.fromString=function(){for(var t=[],e=0;et.length&&zr(),void 0===n?n=t.length-e:n>t.length-e&&zr(),this.segments=t,this.offset=e,this.len=n}di.EMPTY_BYTE_STRING=new di("");var wi=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function bi(t){if(Wr(!!t),"string"!=typeof t)return{seconds:Ei(t.seconds),nanos:Ei(t.nanos)};var e=0,n=wi.exec(t);Wr(!!n),n[1]&&(n=((n=n[1])+"000000000").substr(0,9),e=Number(n));t=new Date(t);return{seconds:Math.floor(t.getTime()/1e3),nanos:e}}function Ei(t){return"number"==typeof t?t:"string"==typeof t?Number(t):0}function Ti(t){return"string"==typeof t?di.fromBase64String(t):di.fromUint8Array(t)}function Ii(t){return"server_timestamp"===(null===(t=((null===(t=null==t?void 0:t.mapValue)||void 0===t?void 0:t.fields)||{}).__type__)||void 0===t?void 0:t.stringValue)}function _i(t){t=bi(t.mapValue.fields.__local_write_time__.timestampValue);return new ti(t.seconds,t.nanos)}function Si(t){return null==t}function Ai(t){return 0===t&&1/t==-1/0}function Di(t){return"number"==typeof t&&Number.isInteger(t)&&!Ai(t)&&t<=Number.MAX_SAFE_INTEGER&&t>=Number.MIN_SAFE_INTEGER}var Ni=(Ci.fromPath=function(t){return new Ci(ci.fromString(t))},Ci.fromName=function(t){return new Ci(ci.fromString(t).popFirst(5))},Ci.prototype.hasCollectionId=function(t){return 2<=this.path.length&&this.path.get(this.path.length-2)===t},Ci.prototype.isEqual=function(t){return null!==t&&0===ci.comparator(this.path,t.path)},Ci.prototype.toString=function(){return this.path.toString()},Ci.comparator=function(t,e){return ci.comparator(t.path,e.path)},Ci.isDocumentKey=function(t){return t.length%2==0},Ci.fromSegments=function(t){return new Ci(new ci(t.slice()))},Ci);function Ci(t){this.path=t}function ki(t){return"nullValue"in t?0:"booleanValue"in t?1:"integerValue"in t||"doubleValue"in t?2:"timestampValue"in t?3:"stringValue"in t?5:"bytesValue"in t?6:"referenceValue"in t?7:"geoPointValue"in t?8:"arrayValue"in t?9:"mapValue"in t?Ii(t)?4:10:zr()}function Ri(r,i){var t,e,n=ki(r);if(n!==ki(i))return!1;switch(n){case 0:return!0;case 1:return r.booleanValue===i.booleanValue;case 4:return _i(r).isEqual(_i(i));case 3:return function(t){if("string"==typeof r.timestampValue&&"string"==typeof t.timestampValue&&r.timestampValue.length===t.timestampValue.length)return r.timestampValue===t.timestampValue;var e=bi(r.timestampValue),t=bi(t.timestampValue);return e.seconds===t.seconds&&e.nanos===t.nanos}(i);case 5:return r.stringValue===i.stringValue;case 6:return e=i,Ti(r.bytesValue).isEqual(Ti(e.bytesValue));case 7:return r.referenceValue===i.referenceValue;case 8:return t=i,Ei((e=r).geoPointValue.latitude)===Ei(t.geoPointValue.latitude)&&Ei(e.geoPointValue.longitude)===Ei(t.geoPointValue.longitude);case 2:return function(t,e){if("integerValue"in t&&"integerValue"in e)return Ei(t.integerValue)===Ei(e.integerValue);if("doubleValue"in t&&"doubleValue"in e){t=Ei(t.doubleValue),e=Ei(e.doubleValue);return t===e?Ai(t)===Ai(e):isNaN(t)&&isNaN(e)}return!1}(r,i);case 9:return Jr(r.arrayValue.values||[],i.arrayValue.values||[],Ri);case 10:return function(){var t,e=r.mapValue.fields||{},n=i.mapValue.fields||{};if(ii(e)!==ii(n))return!1;for(t in e)if(e.hasOwnProperty(t)&&(void 0===n[t]||!Ri(e[t],n[t])))return!1;return!0}();default:return zr()}}function xi(t,e){return void 0!==(t.values||[]).find(function(t){return Ri(t,e)})}function Oi(t,e){var n,r,i,o=ki(t),s=ki(e);if(o!==s)return $r(o,s);switch(o){case 0:return 0;case 1:return $r(t.booleanValue,e.booleanValue);case 2:return r=e,i=Ei(t.integerValue||t.doubleValue),r=Ei(r.integerValue||r.doubleValue),i":return 0=":return 0<=t;default:return zr()}},to.prototype.g=function(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)},to);function to(t,e,n){var r=this;return(r=Ji.call(this)||this).field=t,r.op=e,r.value=n,r}var eo,no,ro,io=(n(co,ro=Zi),co.prototype.matches=function(t){t=Ni.comparator(t.key,this.key);return this.m(t)},co),oo=(n(uo,no=Zi),uo.prototype.matches=function(e){return this.keys.some(function(t){return t.isEqual(e.key)})},uo),so=(n(ao,eo=Zi),ao.prototype.matches=function(e){return!this.keys.some(function(t){return t.isEqual(e.key)})},ao);function ao(t,e){var n=this;return(n=eo.call(this,t,"not-in",e)||this).keys=ho(0,e),n}function uo(t,e){var n=this;return(n=no.call(this,t,"in",e)||this).keys=ho(0,e),n}function co(t,e,n){var r=this;return(r=ro.call(this,t,e,n)||this).key=Ni.fromName(n.referenceValue),r}function ho(t,e){return((null===(e=e.arrayValue)||void 0===e?void 0:e.values)||[]).map(function(t){return Ni.fromName(t.referenceValue)})}var lo,fo,po,yo,go=(n(_o,yo=Zi),_o.prototype.matches=function(t){t=t.data.field(this.field);return Vi(t)&&xi(t.arrayValue,this.value)},_o),mo=(n(Io,po=Zi),Io.prototype.matches=function(t){t=t.data.field(this.field);return null!==t&&xi(this.value.arrayValue,t)},Io),vo=(n(To,fo=Zi),To.prototype.matches=function(t){if(xi(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;t=t.data.field(this.field);return null!==t&&!xi(this.value.arrayValue,t)},To),wo=(n(Eo,lo=Zi),Eo.prototype.matches=function(t){var e=this,t=t.data.field(this.field);return!(!Vi(t)||!t.arrayValue.values)&&t.arrayValue.values.some(function(t){return xi(e.value.arrayValue,t)})},Eo),bo=function(t,e){this.position=t,this.before=e};function Eo(t,e){return lo.call(this,t,"array-contains-any",e)||this}function To(t,e){return fo.call(this,t,"not-in",e)||this}function Io(t,e){return po.call(this,t,"in",e)||this}function _o(t,e){return yo.call(this,t,"array-contains",e)||this}function So(t){return(t.before?"b":"a")+":"+t.position.map(Pi).join(",")}var Ao=function(t,e){void 0===e&&(e="asc"),this.field=t,this.dir=e};function Do(t,e,n){for(var r=0,i=0;i":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},ga=function(t,e){this.databaseId=t,this.I=e};function ma(t,e){return t.I?new Date(1e3*e.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")+"."+("000000000"+e.nanoseconds).slice(-9)+"Z":{seconds:""+e.seconds,nanos:e.nanoseconds}}function va(t,e){return t.I?e.toBase64():e.toUint8Array()}function wa(t){return Wr(!!t),ei.fromTimestamp((t=bi(t),new ti(t.seconds,t.nanos)))}function ba(t,e){return new ci(["projects",t.projectId,"databases",t.database]).child("documents").child(e).canonicalString()}function Ea(t){t=ci.fromString(t);return Wr(Ba(t)),t}function Ta(t,e){return ba(t.databaseId,e.path)}function Ia(t,e){e=Ea(e);if(e.get(1)!==t.databaseId.projectId)throw new Ur(Vr.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+e.get(1)+" vs "+t.databaseId.projectId);if(e.get(3)!==t.databaseId.database)throw new Ur(Vr.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+e.get(3)+" vs "+t.databaseId.database);return new Ni(Da(e))}function _a(t,e){return ba(t.databaseId,e)}function Sa(t){t=Ea(t);return 4===t.length?ci.emptyPath():Da(t)}function Aa(t){return new ci(["projects",t.databaseId.projectId,"databases",t.databaseId.database]).canonicalString()}function Da(t){return Wr(4";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";case"OPERATOR_UNSPECIFIED":default:return zr()}}(),t.fieldFilter.value)}function qa(t){switch(t.unaryFilter.op){case"IS_NAN":var e=Va(t.unaryFilter.field);return Zi.create(e,"==",{doubleValue:NaN});case"IS_NULL":e=Va(t.unaryFilter.field);return Zi.create(e,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":var n=Va(t.unaryFilter.field);return Zi.create(n,"!=",{doubleValue:NaN});case"IS_NOT_NULL":n=Va(t.unaryFilter.field);return Zi.create(n,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":default:return zr()}}function Ba(t){return 4<=t.length&&"projects"===t.get(0)&&"databases"===t.get(2)}function ja(t){for(var e="",n=0;n",t),this.store.put(t));return Au(t)},Su.prototype.add=function(t){return Kr("SimpleDb","ADD",this.store.name,t,t),Au(this.store.add(t))},Su.prototype.get=function(e){var n=this;return Au(this.store.get(e)).next(function(t){return Kr("SimpleDb","GET",n.store.name,e,t=void 0===t?null:t),t})},Su.prototype.delete=function(t){return Kr("SimpleDb","DELETE",this.store.name,t),Au(this.store.delete(t))},Su.prototype.count=function(){return Kr("SimpleDb","COUNT",this.store.name),Au(this.store.count())},Su.prototype.Nt=function(t,e){var e=this.cursor(this.options(t,e)),n=[];return this.xt(e,function(t,e){n.push(e)}).next(function(){return n})},Su.prototype.kt=function(t,e){Kr("SimpleDb","DELETE ALL",this.store.name);e=this.options(t,e);e.Ft=!1;e=this.cursor(e);return this.xt(e,function(t,e,n){return n.delete()})},Su.prototype.$t=function(t,e){e?n=t:(n={},e=t);var n=this.cursor(n);return this.xt(n,e)},Su.prototype.Ot=function(r){var t=this.cursor({});return new fu(function(n,e){t.onerror=function(t){t=Nu(t.target.error);e(t)},t.onsuccess=function(t){var e=t.target.result;e?r(e.primaryKey,e.value).next(function(t){t?e.continue():n()}):n()}})},Su.prototype.xt=function(t,i){var o=[];return new fu(function(r,e){t.onerror=function(t){e(t.target.error)},t.onsuccess=function(t){var e,n=t.target.result;n?(e=new yu(n),(t=i(n.primaryKey,n.value,e))instanceof fu&&(t=t.catch(function(t){return e.done(),fu.reject(t)}),o.push(t)),e.isDone?r():null===e.Dt?n.continue():n.continue(e.Dt)):r()}}).next(function(){return fu.waitFor(o)})},Su.prototype.options=function(t,e){var n;return void 0!==t&&("string"==typeof t?n=t:e=t),{index:n,range:e}},Su.prototype.cursor=function(t){var e="next";if(t.reverse&&(e="prev"),t.index){var n=this.store.index(t.index);return t.Ft?n.openKeyCursor(t.range,e):n.openCursor(t.range,e)}return this.store.openCursor(t.range,e)},Su);function Su(t){this.store=t}function Au(t){return new fu(function(e,n){t.onsuccess=function(t){t=t.target.result;e(t)},t.onerror=function(t){t=Nu(t.target.error);n(t)}})}var Du=!1;function Nu(t){var e=pu._t(h());if(12.2<=e&&e<13){e="An internal error was encountered in the Indexed Database server";if(0<=t.message.indexOf(e)){var n=new Ur("internal","IOS_INDEXEDDB_BUG1: IndexedDb has thrown '"+e+"'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.");return Du||(Du=!0,setTimeout(function(){throw n},0)),n}}return t}var Cu,ku=(n(Ru,Cu=R),Ru);function Ru(t,e){var n=this;return(n=Cu.call(this)||this).Mt=t,n.currentSequenceNumber=e,n}function xu(t,e){return pu.It(t.Mt,e)}var Ou=(Uu.prototype.applyToRemoteDocument=function(t,e){for(var n,r,i,o,s,a,u=e.mutationResults,c=0;c=i),o=Hu(r.R,e)),n.done()}).next(function(){return o})},dc.prototype.getHighestUnacknowledgedBatchId=function(t){var e=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]),r=-1;return yc(t).$t({index:Wa.userMutationsIndex,range:e,reverse:!0},function(t,e,n){r=e.batchId,n.done()}).next(function(){return r})},dc.prototype.getAllMutationBatches=function(t){var e=this,n=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return yc(t).Nt(Wa.userMutationsIndex,n).next(function(t){return t.map(function(t){return Hu(e.R,t)})})},dc.prototype.getAllMutationBatchesAffectingDocumentKey=function(o,s){var a=this,t=Ya.prefixForPath(this.userId,s.path),t=IDBKeyRange.lowerBound(t),u=[];return gc(o).$t({range:t},function(t,e,n){var r=t[0],i=t[1],t=t[2],i=Ga(i);if(r===a.userId&&s.path.isEqual(i))return yc(o).get(t).next(function(t){if(!t)throw zr();Wr(t.userId===a.userId),u.push(Hu(a.R,t))});n.done()}).next(function(){return u})},dc.prototype.getAllMutationBatchesAffectingDocumentKeys=function(e,t){var s=this,a=new Qs($r),n=[];return t.forEach(function(o){var t=Ya.prefixForPath(s.userId,o.path),t=IDBKeyRange.lowerBound(t),t=gc(e).$t({range:t},function(t,e,n){var r=t[0],i=t[1],t=t[2],i=Ga(i);r===s.userId&&o.path.isEqual(i)?a=a.add(t):n.done()});n.push(t)}),fu.waitFor(n).next(function(){return s.Wt(e,a)})},dc.prototype.getAllMutationBatchesAffectingQuery=function(t,e){var o=this,s=e.path,a=s.length+1,e=Ya.prefixForPath(this.userId,s),e=IDBKeyRange.lowerBound(e),u=new Qs($r);return gc(t).$t({range:e},function(t,e,n){var r=t[0],i=t[1],t=t[2],i=Ga(i);r===o.userId&&s.isPrefixOf(i)?i.length===a&&(u=u.add(t)):n.done()}).next(function(){return o.Wt(t,u)})},dc.prototype.Wt=function(e,t){var n=this,r=[],i=[];return t.forEach(function(t){i.push(yc(e).get(t).next(function(t){if(null===t)throw zr();Wr(t.userId===n.userId),r.push(Hu(n.R,t))}))}),fu.waitFor(i).next(function(){return r})},dc.prototype.removeMutationBatch=function(e,n){var r=this;return hc(e.Mt,this.userId,n).next(function(t){return e.addOnCommittedListener(function(){r.Gt(n.batchId)}),fu.forEach(t,function(t){return r.referenceDelegate.markPotentiallyOrphaned(e,t)})})},dc.prototype.Gt=function(t){delete this.Kt[t]},dc.prototype.performConsistencyCheck=function(e){var i=this;return this.checkEmpty(e).next(function(t){if(!t)return fu.resolve();var t=IDBKeyRange.lowerBound(Ya.prefixForUser(i.userId)),r=[];return gc(e).$t({range:t},function(t,e,n){t[0]===i.userId?(t=Ga(t[1]),r.push(t)):n.done()}).next(function(){Wr(0===r.length)})})},dc.prototype.containsKey=function(t,e){return pc(t,this.userId,e)},dc.prototype.zt=function(t){var e=this;return mc(t).get(this.userId).next(function(t){return t||new za(e.userId,-1,"")})},dc);function dc(t,e,n,r){this.userId=t,this.R=e,this.Ut=n,this.referenceDelegate=r,this.Kt={}}function pc(t,o,e){var e=Ya.prefixForPath(o,e.path),s=e[1],e=IDBKeyRange.lowerBound(e),a=!1;return gc(t).$t({range:e,Ft:!0},function(t,e,n){var r=t[0],i=t[1];t[2],r===o&&i===s&&(a=!0),n.done()}).next(function(){return a})}function yc(t){return xu(t,Wa.store)}function gc(t){return xu(t,Ya.store)}function mc(t){return xu(t,za.store)}var vc=(Ec.prototype.next=function(){return this.Ht+=2,this.Ht},Ec.Jt=function(){return new Ec(0)},Ec.Yt=function(){return new Ec(-1)},Ec),wc=(bc.prototype.allocateTargetId=function(n){var r=this;return this.Xt(n).next(function(t){var e=new vc(t.highestTargetId);return t.highestTargetId=e.next(),r.Zt(n,t).next(function(){return t.highestTargetId})})},bc.prototype.getLastRemoteSnapshotVersion=function(t){return this.Xt(t).next(function(t){return ei.fromTimestamp(new ti(t.lastRemoteSnapshotVersion.seconds,t.lastRemoteSnapshotVersion.nanoseconds))})},bc.prototype.getHighestSequenceNumber=function(t){return this.Xt(t).next(function(t){return t.highestListenSequenceNumber})},bc.prototype.setTargetsMetadata=function(e,n,r){var i=this;return this.Xt(e).next(function(t){return t.highestListenSequenceNumber=n,r&&(t.lastRemoteSnapshotVersion=r.toTimestamp()),n>t.highestListenSequenceNumber&&(t.highestListenSequenceNumber=n),i.Zt(e,t)})},bc.prototype.addTargetData=function(e,n){var r=this;return this.te(e,n).next(function(){return r.Xt(e).next(function(t){return t.targetCount+=1,r.ee(n,t),r.Zt(e,t)})})},bc.prototype.updateTargetData=function(t,e){return this.te(t,e)},bc.prototype.removeTargetData=function(e,t){var n=this;return this.removeMatchingKeysForTargetId(e,t.targetId).next(function(){return Tc(e).delete(t.targetId)}).next(function(){return n.Xt(e)}).next(function(t){return Wr(0e.highestTargetId&&(e.highestTargetId=t.targetId,n=!0),t.sequenceNumber>e.highestListenSequenceNumber&&(e.highestListenSequenceNumber=t.sequenceNumber,n=!0),n},bc.prototype.getTargetCount=function(t){return this.Xt(t).next(function(t){return t.targetCount})},bc.prototype.getTargetData=function(t,r){var e=Yi(r),e=IDBKeyRange.bound([e,Number.NEGATIVE_INFINITY],[e,Number.POSITIVE_INFINITY]),i=null;return Tc(t).$t({range:e,index:eu.queryTargetsIndexName},function(t,e,n){e=zu(e);Xi(r,e.target)&&(i=e,n.done())}).next(function(){return i})},bc.prototype.addMatchingKeys=function(n,t,r){var i=this,o=[],s=_c(n);return t.forEach(function(t){var e=ja(t.path);o.push(s.put(new nu(r,e))),o.push(i.referenceDelegate.addReference(n,r,t))}),fu.waitFor(o)},bc.prototype.removeMatchingKeys=function(n,t,r){var i=this,o=_c(n);return fu.forEach(t,function(t){var e=ja(t.path);return fu.waitFor([o.delete([r,e]),i.referenceDelegate.removeReference(n,r,t)])})},bc.prototype.removeMatchingKeysForTargetId=function(t,e){t=_c(t),e=IDBKeyRange.bound([e],[e+1],!1,!0);return t.delete(e)},bc.prototype.getMatchingKeysForTargetId=function(t,e){var e=IDBKeyRange.bound([e],[e+1],!1,!0),t=_c(t),r=Zs();return t.$t({range:e,Ft:!0},function(t,e,n){t=Ga(t[1]),t=new Ni(t);r=r.add(t)}).next(function(){return r})},bc.prototype.containsKey=function(t,e){var e=ja(e.path),e=IDBKeyRange.bound([e],[Zr(e)],!1,!0),i=0;return _c(t).$t({index:nu.documentTargetsIndex,Ft:!0,range:e},function(t,e,n){var r=t[0];t[1],0!==r&&(i++,n.done())}).next(function(){return 0h.params.maximumSequenceNumbersToCollect?(Kr("LruGarbageCollector","Capping sequence numbers to collect down to the maximum of "+h.params.maximumSequenceNumbersToCollect+" from "+t),h.params.maximumSequenceNumbersToCollect):t,s=Date.now(),h.nthSequenceNumber(e,i)}).next(function(t){return r=t,a=Date.now(),h.removeTargets(e,r,n)}).next(function(t){return o=t,u=Date.now(),h.removeOrphanedDocuments(e,r)}).next(function(t){return c=Date.now(),jr()<=w.DEBUG&&Kr("LruGarbageCollector","LRU Garbage Collection\n\tCounted targets in "+(s-l)+"ms\n\tDetermined least recently used "+i+" in "+(a-s)+"ms\n\tRemoved "+o+" targets in "+(u-a)+"ms\n\tRemoved "+t+" documents in "+(c-u)+"ms\nTotal Duration: "+(c-l)+"ms"),fu.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:o,documentsRemoved:t})})},xc),kc=(Rc.prototype.he=function(t){var n=this.de(t);return this.db.getTargetCache().getTargetCount(t).next(function(e){return n.next(function(t){return e+t})})},Rc.prototype.de=function(t){var e=0;return this.le(t,function(t){e++}).next(function(){return e})},Rc.prototype.forEachTarget=function(t,e){return this.db.getTargetCache().forEachTarget(t,e)},Rc.prototype.le=function(t,n){return this.we(t,function(t,e){return n(e)})},Rc.prototype.addReference=function(t,e,n){return Pc(t,n)},Rc.prototype.removeReference=function(t,e,n){return Pc(t,n)},Rc.prototype.removeTargets=function(t,e,n){return this.db.getTargetCache().removeTargets(t,e,n)},Rc.prototype.markPotentiallyOrphaned=Pc,Rc.prototype._e=function(t,e){return r=e,i=!1,mc(n=t).Ot(function(t){return pc(n,t,r).next(function(t){return t&&(i=!0),fu.resolve(!t)})}).next(function(){return i});var n,r,i},Rc.prototype.removeOrphanedDocuments=function(n,r){var i=this,o=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[],a=0;return this.we(n,function(e,t){t<=r&&(t=i._e(n,e).next(function(t){if(!t)return a++,o.getEntry(n,e).next(function(){return o.removeEntry(e),_c(n).delete([0,ja(e.path)])})}),s.push(t))}).next(function(){return fu.waitFor(s)}).next(function(){return o.apply(n)}).next(function(){return a})},Rc.prototype.removeTarget=function(t,e){e=e.withSequenceNumber(t.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(t,e)},Rc.prototype.updateLimboDocument=Pc,Rc.prototype.we=function(t,r){var i,t=_c(t),o=Pr.o;return t.$t({index:nu.documentTargetsIndex},function(t,e){var n=t[0];t[1];t=e.path,e=e.sequenceNumber;0===n?(o!==Pr.o&&r(new Ni(Ga(i)),o),o=e,i=t):o=Pr.o}).next(function(){o!==Pr.o&&r(new Ni(Ga(i)),o)})},Rc.prototype.getCacheSize=function(t){return this.db.getRemoteDocumentCache().getSize(t)},Rc);function Rc(t,e){this.db=t,this.garbageCollector=new Cc(this,e)}function xc(t,e){this.ae=t,this.params=e}function Oc(t,e){this.garbageCollector=t,this.asyncQueue=e,this.oe=!1,this.ce=null}function Lc(t){this.ne=t,this.buffer=new Qs(Ac),this.se=0}function Pc(t,e){return _c(t).put((t=t.currentSequenceNumber,new nu(0,ja(e.path),t)))}var Mc,Fc=(Kc.prototype.get=function(t){var e=this.mapKeyFn(t),e=this.inner[e];if(void 0!==e)for(var n=0,r=e;n "+n),1))},Jc.prototype.We=function(){var t=this;null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Fe=function(){t.Se.enqueueAndForget(function(){return t.inForeground="visible"===t.document.visibilityState,t.je()})},this.document.addEventListener("visibilitychange",this.Fe),this.inForeground="visible"===this.document.visibilityState)},Jc.prototype.an=function(){this.Fe&&(this.document.removeEventListener("visibilitychange",this.Fe),this.Fe=null)},Jc.prototype.Ge=function(){var t,e=this;"function"==typeof(null===(t=this.window)||void 0===t?void 0:t.addEventListener)&&(this.ke=function(){e.un(),c()&&navigator.appVersion.match("Version/14")&&e.Se.enterRestrictedMode(!0),e.Se.enqueueAndForget(function(){return e.shutdown()})},this.window.addEventListener("pagehide",this.ke))},Jc.prototype.hn=function(){this.ke&&(this.window.removeEventListener("pagehide",this.ke),this.ke=null)},Jc.prototype.cn=function(t){var e;try{var n=null!==(null===(e=this.Qe)||void 0===e?void 0:e.getItem(this.on(t)));return Kr("IndexedDbPersistence","Client '"+t+"' "+(n?"is":"is not")+" zombied in LocalStorage"),n}catch(t){return Gr("IndexedDbPersistence","Failed to get zombied client id.",t),!1}},Jc.prototype.un=function(){if(this.Qe)try{this.Qe.setItem(this.on(this.clientId),String(Date.now()))}catch(t){Gr("Failed to set zombie client id.",t)}},Jc.prototype.ln=function(){if(this.Qe)try{this.Qe.removeItem(this.on(this.clientId))}catch(t){}},Jc.prototype.on=function(t){return"firestore_zombie_"+this.persistenceKey+"_"+t},Jc);function Jc(t,e,n,r,i,o,s,a,u,c){if(this.allowTabSynchronization=t,this.persistenceKey=e,this.clientId=n,this.Se=i,this.window=o,this.document=s,this.De=u,this.Ce=c,this.Ne=null,this.xe=!1,this.isPrimary=!1,this.networkEnabled=!0,this.ke=null,this.inForeground=!1,this.Fe=null,this.$e=null,this.Oe=Number.NEGATIVE_INFINITY,this.Me=function(t){return Promise.resolve()},!Jc.yt())throw new Ur(Vr.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new kc(this,r),this.Le=e+"main",this.R=new Mu(a),this.Be=new pu(this.Le,11,new zc(this.R)),this.qe=new wc(this.referenceDelegate,this.R),this.Ut=new nc,this.Ue=(e=this.R,a=this.Ut,new Vc(e,a)),this.Ke=new Xu,this.window&&this.window.localStorage?this.Qe=this.window.localStorage:(this.Qe=null,!1===c&&Gr("IndexedDbPersistence","LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}function Zc(t){return xu(t,Qa.store)}function th(t){return xu(t,ou.store)}function eh(t,e){var n=t.projectId;return t.isDefaultDatabase||(n+="."+t.database),"firestore/"+e+"/"+n+"/"}function nh(t,e){this.progress=t,this.wn=e}var rh=(hh.prototype.mn=function(e,n){var r=this;return this._n.getAllMutationBatchesAffectingDocumentKey(e,n).next(function(t){return r.yn(e,n,t)})},hh.prototype.yn=function(t,e,r){return this.Ue.getEntry(t,e).next(function(t){for(var e=0,n=r;ee?this._n[e]:null)},Kh.prototype.getHighestUnacknowledgedBatchId=function(){return fu.resolve(0===this._n.length?-1:this.ss-1)},Kh.prototype.getAllMutationBatches=function(t){return fu.resolve(this._n.slice())},Kh.prototype.getAllMutationBatchesAffectingDocumentKey=function(t,e){var n=this,r=new Dh(e,0),e=new Dh(e,Number.POSITIVE_INFINITY),i=[];return this.rs.forEachInRange([r,e],function(t){t=n.os(t.ns);i.push(t)}),fu.resolve(i)},Kh.prototype.getAllMutationBatchesAffectingDocumentKeys=function(t,e){var n=this,r=new Qs($r);return e.forEach(function(t){var e=new Dh(t,0),t=new Dh(t,Number.POSITIVE_INFINITY);n.rs.forEachInRange([e,t],function(t){r=r.add(t.ns)})}),fu.resolve(this.us(r))},Kh.prototype.getAllMutationBatchesAffectingQuery=function(t,e){var n=e.path,r=n.length+1,e=n;Ni.isDocumentKey(e)||(e=e.child(""));var e=new Dh(new Ni(e),0),i=new Qs($r);return this.rs.forEachWhile(function(t){var e=t.key.path;return!!n.isPrefixOf(e)&&(e.length===r&&(i=i.add(t.ns)),!0)},e),fu.resolve(this.us(i))},Kh.prototype.us=function(t){var e=this,n=[];return t.forEach(function(t){t=e.os(t);null!==t&&n.push(t)}),n},Kh.prototype.removeMutationBatch=function(n,r){var i=this;Wr(0===this.hs(r.batchId,"removed")),this._n.shift();var o=this.rs;return fu.forEach(r.mutations,function(t){var e=new Dh(t.key,r.batchId);return o=o.delete(e),i.referenceDelegate.markPotentiallyOrphaned(n,t.key)}).next(function(){i.rs=o})},Kh.prototype.Gt=function(t){},Kh.prototype.containsKey=function(t,e){var n=new Dh(e,0),n=this.rs.firstAfterOrEqual(n);return fu.resolve(e.isEqual(n&&n.key))},Kh.prototype.performConsistencyCheck=function(t){return this._n.length,fu.resolve()},Kh.prototype.hs=function(t,e){return this.cs(t)},Kh.prototype.cs=function(t){return 0===this._n.length?0:t-this._n[0].batchId},Kh.prototype.os=function(t){t=this.cs(t);return t<0||t>=this._n.length?null:this._n[t]},Kh),Ch=(jh.prototype.addEntry=function(t,e,n){var r=e.key,i=this.docs.get(r),o=i?i.size:0,i=this.ls(e);return this.docs=this.docs.insert(r,{document:e.clone(),size:i,readTime:n}),this.size+=i-o,this.Ut.addToCollectionParentIndex(t,r.path.popLast())},jh.prototype.removeEntry=function(t){var e=this.docs.get(t);e&&(this.docs=this.docs.remove(t),this.size-=e.size)},jh.prototype.getEntry=function(t,e){var n=this.docs.get(e);return fu.resolve(n?n.document.clone():Qi.newInvalidDocument(e))},jh.prototype.getEntries=function(t,e){var n=this,r=zs;return e.forEach(function(t){var e=n.docs.get(t);r=r.insert(t,e?e.document.clone():Qi.newInvalidDocument(t))}),fu.resolve(r)},jh.prototype.getDocumentsMatchingQuery=function(t,e,n){for(var r=zs,i=new Ni(e.path.child("")),o=this.docs.getIteratorFrom(i);o.hasNext();){var s=o.getNext(),a=s.key,u=s.value,s=u.document,u=u.readTime;if(!e.path.isPrefixOf(a.path))break;u.compareTo(n)<=0||Ko(e,s)&&(r=r.insert(s.key,s.clone()))}return fu.resolve(r)},jh.prototype.fs=function(t,e){return fu.forEach(this.docs,function(t){return e(t)})},jh.prototype.newChangeBuffer=function(t){return new kh(this)},jh.prototype.getSize=function(t){return fu.resolve(this.size)},jh),kh=(n(Bh,_h=A),Bh.prototype.applyChanges=function(n){var r=this,i=[];return this.changes.forEach(function(t,e){e.document.isValidDocument()?i.push(r.Ie.addEntry(n,e.document,r.getReadTime(t))):r.Ie.removeEntry(t)}),fu.waitFor(i)},Bh.prototype.getFromCache=function(t,e){return this.Ie.getEntry(t,e)},Bh.prototype.getAllFromCache=function(t,e){return this.Ie.getEntries(t,e)},Bh),Rh=(qh.prototype.forEachTarget=function(t,n){return this.ds.forEach(function(t,e){return n(e)}),fu.resolve()},qh.prototype.getLastRemoteSnapshotVersion=function(t){return fu.resolve(this.lastRemoteSnapshotVersion)},qh.prototype.getHighestSequenceNumber=function(t){return fu.resolve(this.ws)},qh.prototype.allocateTargetId=function(t){return this.highestTargetId=this.ys.next(),fu.resolve(this.highestTargetId)},qh.prototype.setTargetsMetadata=function(t,e,n){return n&&(this.lastRemoteSnapshotVersion=n),e>this.ws&&(this.ws=e),fu.resolve()},qh.prototype.te=function(t){this.ds.set(t.target,t);var e=t.targetId;e>this.highestTargetId&&(this.ys=new vc(e),this.highestTargetId=e),t.sequenceNumber>this.ws&&(this.ws=t.sequenceNumber)},qh.prototype.addTargetData=function(t,e){return this.te(e),this.targetCount+=1,fu.resolve()},qh.prototype.updateTargetData=function(t,e){return this.te(e),fu.resolve()},qh.prototype.removeTargetData=function(t,e){return this.ds.delete(e.target),this._s.Zn(e.targetId),--this.targetCount,fu.resolve()},qh.prototype.removeTargets=function(n,r,i){var o=this,s=0,a=[];return this.ds.forEach(function(t,e){e.sequenceNumber<=r&&null===i.get(e.targetId)&&(o.ds.delete(t),a.push(o.removeMatchingKeysForTargetId(n,e.targetId)),s++)}),fu.waitFor(a).next(function(){return s})},qh.prototype.getTargetCount=function(t){return fu.resolve(this.targetCount)},qh.prototype.getTargetData=function(t,e){e=this.ds.get(e)||null;return fu.resolve(e)},qh.prototype.addMatchingKeys=function(t,e,n){return this._s.Jn(e,n),fu.resolve()},qh.prototype.removeMatchingKeys=function(e,t,n){this._s.Xn(t,n);var r=this.persistence.referenceDelegate,i=[];return r&&t.forEach(function(t){i.push(r.markPotentiallyOrphaned(e,t))}),fu.waitFor(i)},qh.prototype.removeMatchingKeysForTargetId=function(t,e){return this._s.Zn(e),fu.resolve()},qh.prototype.getMatchingKeysForTargetId=function(t,e){e=this._s.es(e);return fu.resolve(e)},qh.prototype.containsKey=function(t,e){return fu.resolve(this._s.containsKey(e))},qh),xh=(Uh.prototype.start=function(){return Promise.resolve()},Uh.prototype.shutdown=function(){return this.xe=!1,Promise.resolve()},Object.defineProperty(Uh.prototype,"started",{get:function(){return this.xe},enumerable:!1,configurable:!0}),Uh.prototype.setDatabaseDeletedListener=function(){},Uh.prototype.setNetworkEnabled=function(){},Uh.prototype.getIndexManager=function(){return this.Ut},Uh.prototype.getMutationQueue=function(t){var e=this.gs[t.toKey()];return e||(e=new Nh(this.Ut,this.referenceDelegate),this.gs[t.toKey()]=e),e},Uh.prototype.getTargetCache=function(){return this.qe},Uh.prototype.getRemoteDocumentCache=function(){return this.Ue},Uh.prototype.getBundleCache=function(){return this.Ke},Uh.prototype.runTransaction=function(t,e,n){var r=this;Kr("MemoryPersistence","Starting transaction:",t);var i=new Oh(this.Ne.next());return this.referenceDelegate.Es(),n(i).next(function(t){return r.referenceDelegate.Ts(i).next(function(){return t})}).toPromise().then(function(t){return i.raiseOnCommittedEvent(),t})},Uh.prototype.Is=function(e,n){return fu.or(Object.values(this.gs).map(function(t){return function(){return t.containsKey(e,n)}}))},Uh),Oh=(n(Vh,Ih=R),Vh),Lh=(Fh.bs=function(t){return new Fh(t)},Object.defineProperty(Fh.prototype,"vs",{get:function(){if(this.Rs)return this.Rs;throw zr()},enumerable:!1,configurable:!0}),Fh.prototype.addReference=function(t,e,n){return this.As.addReference(n,e),this.vs.delete(n.toString()),fu.resolve()},Fh.prototype.removeReference=function(t,e,n){return this.As.removeReference(n,e),this.vs.add(n.toString()),fu.resolve()},Fh.prototype.markPotentiallyOrphaned=function(t,e){return this.vs.add(e.toString()),fu.resolve()},Fh.prototype.removeTarget=function(t,e){var n=this;this.As.Zn(e.targetId).forEach(function(t){return n.vs.add(t.toString())});var r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(t,e.targetId).next(function(t){t.forEach(function(t){return n.vs.add(t.toString())})}).next(function(){return r.removeTargetData(t,e)})},Fh.prototype.Es=function(){this.Rs=new Set},Fh.prototype.Ts=function(n){var r=this,i=this.persistence.getRemoteDocumentCache().newChangeBuffer();return fu.forEach(this.vs,function(t){var e=Ni.fromPath(t);return r.Ps(n,e).next(function(t){t||i.removeEntry(e)})}).next(function(){return r.Rs=null,i.apply(n)})},Fh.prototype.updateLimboDocument=function(t,e){var n=this;return this.Ps(t,e).next(function(t){t?n.vs.delete(e.toString()):n.vs.add(e.toString())})},Fh.prototype.ps=function(t){return 0},Fh.prototype.Ps=function(t,e){var n=this;return fu.or([function(){return fu.resolve(n.As.containsKey(e))},function(){return n.persistence.getTargetCache().containsKey(t,e)},function(){return n.persistence.Is(t,e)}])},Fh),Ph=(Mh.prototype.isAuthenticated=function(){return null!=this.uid},Mh.prototype.toKey=function(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"},Mh.prototype.isEqual=function(t){return t.uid===this.uid},Mh);function Mh(t){this.uid=t}function Fh(t){this.persistence=t,this.As=new Ah,this.Rs=null}function Vh(t){var e=this;return(e=Ih.call(this)||this).currentSequenceNumber=t,e}function Uh(t,e){var n=this;this.gs={},this.Ne=new Pr(0),this.xe=!1,this.xe=!0,this.referenceDelegate=t(this),this.qe=new Rh(this),this.Ut=new tc,this.Ue=(t=this.Ut,new Ch(t,function(t){return n.referenceDelegate.ps(t)})),this.R=new Mu(e),this.Ke=new Sh(this.R)}function qh(t){this.persistence=t,this.ds=new Fc(Yi,Xi),this.lastRemoteSnapshotVersion=ei.min(),this.highestTargetId=0,this.ws=0,this._s=new Ah,this.targetCount=0,this.ys=vc.Jt()}function Bh(t){var e=this;return(e=_h.call(this)||this).Ie=t,e}function jh(t,e){this.Ut=t,this.ls=e,this.docs=new Vs(Ni.comparator),this.size=0}function Kh(t,e){this.Ut=t,this.referenceDelegate=e,this._n=[],this.ss=1,this.rs=new Qs(Dh.Gn)}function Gh(t,e){this.key=t,this.ns=e}function Qh(){this.Wn=new Qs(Dh.Gn),this.zn=new Qs(Dh.Hn)}function Hh(t){this.R=t,this.Qn=new Map,this.jn=new Map}function zh(t,e){return"firestore_clients_"+t+"_"+e}function Wh(t,e,n){n="firestore_mutations_"+t+"_"+n;return e.isAuthenticated()&&(n+="_"+e.uid),n}function Yh(t,e){return"firestore_targets_"+t+"_"+e}Ph.UNAUTHENTICATED=new Ph(null),Ph.GOOGLE_CREDENTIALS=new Ph("google-credentials-uid"),Ph.FIRST_PARTY=new Ph("first-party-uid"),Ph.MOCK_USER=new Ph("mock-user");var Xh,$h=(bl.Vs=function(t,e,n){var r,i=JSON.parse(n),o="object"==typeof i&&-1!==["pending","acknowledged","rejected"].indexOf(i.state)&&(void 0===i.error||"object"==typeof i.error);return o&&i.error&&(o="string"==typeof i.error.message&&"string"==typeof i.error.code)&&(r=new Ur(i.error.code,i.error.message)),o?new bl(t,e,i.state,r):(Gr("SharedClientState","Failed to parse mutation state for ID '"+e+"': "+n),null)},bl.prototype.Ss=function(){var t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)},bl),Jh=(wl.Vs=function(t,e){var n,r=JSON.parse(e),i="object"==typeof r&&-1!==["not-current","current","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code)&&(n=new Ur(r.error.code,r.error.message)),i?new wl(t,r.state,n):(Gr("SharedClientState","Failed to parse target state for ID '"+t+"': "+e),null)},wl.prototype.Ss=function(){var t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)},wl),Zh=(vl.Vs=function(t,e){for(var n=JSON.parse(e),r="object"==typeof n&&n.activeTargetIds instanceof Array,i=ta,o=0;r&&othis.Bi&&(this.qi=this.Bi)},Vl.prototype.Gi=function(){null!==this.Ui&&(this.Ui.skipDelay(),this.Ui=null)},Vl.prototype.cancel=function(){null!==this.Ui&&(this.Ui.cancel(),this.Ui=null)},Vl.prototype.Wi=function(){return(Math.random()-.5)*this.qi},Vl),A=(Fl.prototype.tr=function(){return 1===this.state||2===this.state||4===this.state},Fl.prototype.er=function(){return 2===this.state},Fl.prototype.start=function(){3!==this.state?this.auth():this.nr()},Fl.prototype.stop=function(){return y(this,void 0,void 0,function(){return g(this,function(t){switch(t.label){case 0:return this.tr()?[4,this.close(0)]:[3,2];case 1:t.sent(),t.label=2;case 2:return[2]}})})},Fl.prototype.sr=function(){this.state=0,this.Zi.reset()},Fl.prototype.ir=function(){var t=this;this.er()&&null===this.Xi&&(this.Xi=this.Se.enqueueAfterDelay(this.zi,6e4,function(){return t.rr()}))},Fl.prototype.cr=function(t){this.ur(),this.stream.send(t)},Fl.prototype.rr=function(){return y(this,void 0,void 0,function(){return g(this,function(t){return this.er()?[2,this.close(0)]:[2]})})},Fl.prototype.ur=function(){this.Xi&&(this.Xi.cancel(),this.Xi=null)},Fl.prototype.close=function(e,n){return y(this,void 0,void 0,function(){return g(this,function(t){switch(t.label){case 0:return this.ur(),this.Zi.cancel(),this.Yi++,3!==e?this.Zi.reset():n&&n.code===Vr.RESOURCE_EXHAUSTED?(Gr(n.toString()),Gr("Using maximum backoff delay to prevent overloading the backend."),this.Zi.Qi()):n&&n.code===Vr.UNAUTHENTICATED&&this.Ji.invalidateToken(),null!==this.stream&&(this.ar(),this.stream.close(),this.stream=null),this.state=e,[4,this.listener.Ri(n)];case 1:return t.sent(),[2]}})})},Fl.prototype.ar=function(){},Fl.prototype.auth=function(){var n=this;this.state=1;var t=this.hr(this.Yi),e=this.Yi;this.Ji.getToken().then(function(t){n.Yi===e&&n.lr(t)},function(e){t(function(){var t=new Ur(Vr.UNKNOWN,"Fetching auth token failed: "+e.message);return n.dr(t)})})},Fl.prototype.lr=function(t){var e=this,n=this.hr(this.Yi);this.stream=this.wr(t),this.stream.Ii(function(){n(function(){return e.state=2,e.listener.Ii()})}),this.stream.Ri(function(t){n(function(){return e.dr(t)})}),this.stream.onMessage(function(t){n(function(){return e.onMessage(t)})})},Fl.prototype.nr=function(){var t=this;this.state=4,this.Zi.ji(function(){return y(t,void 0,void 0,function(){return g(this,function(t){return this.state=0,this.start(),[2]})})})},Fl.prototype.dr=function(t){return Kr("PersistentStream","close with error: "+t),this.stream=null,this.close(3,t)},Fl.prototype.hr=function(e){var n=this;return function(t){n.Se.enqueueAndForget(function(){return n.Yi===e?t():(Kr("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())})}},Fl),Cl=(n(Ml,Dl=A),Ml.prototype.wr=function(t){return this.Hi.Oi("Listen",t)},Ml.prototype.onMessage=function(t){this.Zi.reset();var e=function(t,e){if("targetChange"in e){e.targetChange;var n="NO_CHANGE"===(o=e.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===o?1:"REMOVE"===o?2:"CURRENT"===o?3:"RESET"===o?4:zr(),r=e.targetChange.targetIds||[],i=(s=e.targetChange.resumeToken,t.I?(Wr(void 0===s||"string"==typeof s),di.fromBase64String(s||"")):(Wr(void 0===s||s instanceof Uint8Array),di.fromUint8Array(s||new Uint8Array))),o=(a=e.targetChange.cause)&&(u=void 0===(c=a).code?Vr.UNKNOWN:Fs(c.code),new Ur(u,c.message||"")),s=new oa(n,r,i,o||null)}else if("documentChange"in e){e.documentChange,(n=e.documentChange).document,n.document.name,n.document.updateTime;var r=Ia(t,n.document.name),i=wa(n.document.updateTime),a=new Ki({mapValue:{fields:n.document.fields}}),u=(o=Qi.newFoundDocument(r,i,a),n.targetIds||[]),c=n.removedTargetIds||[];s=new ra(u,c,o.key,o)}else if("documentDelete"in e)e.documentDelete,(n=e.documentDelete).document,r=Ia(t,n.document),i=n.readTime?wa(n.readTime):ei.min(),a=Qi.newNoDocument(r,i),o=n.removedTargetIds||[],s=new ra([],o,a.key,a);else if("documentRemove"in e)e.documentRemove,(n=e.documentRemove).document,r=Ia(t,n.document),i=n.removedTargetIds||[],s=new ra([],i,r,null);else{if(!("filter"in e))return zr();e.filter;e=e.filter;e.targetId,n=e.count||0,r=new Ns(n),i=e.targetId,s=new ia(i,r)}return s}(this.R,t),t=function(t){if(!("targetChange"in t))return ei.min();t=t.targetChange;return(!t.targetIds||!t.targetIds.length)&&t.readTime?wa(t.readTime):ei.min()}(t);return this.listener._r(e,t)},Ml.prototype.mr=function(t){var e,n,r,i={};i.database=Aa(this.R),i.addTarget=(e=this.R,(r=$i(r=(n=t).target)?{documents:xa(e,r)}:{query:Oa(e,r)}).targetId=n.targetId,0this.query.limit;){var n=xo(this.query)?h.last():h.first(),h=h.delete(n.key),c=c.delete(n.key);a.track({type:1,doc:n})}return{fo:h,mo:a,Nn:l,mutatedKeys:c}},Pf.prototype.yo=function(t,e){return t.hasLocalMutations&&e.hasCommittedMutations&&!e.hasLocalMutations},Pf.prototype.applyChanges=function(t,e,n){var o=this,r=this.fo;this.fo=t.fo,this.mutatedKeys=t.mutatedKeys;var i=t.mo.jr();i.sort(function(t,e){return r=t.type,i=e.type,n(r)-n(i)||o.lo(t.doc,e.doc);function n(t){switch(t){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return zr()}}var r,i}),this.po(n);var s=e?this.Eo():[],n=0===this.ho.size&&this.current?1:0,e=n!==this.ao;return this.ao=n,0!==i.length||e?{snapshot:new lf(this.query,t.fo,r,i,t.mutatedKeys,0==n,e,!1),To:s}:{To:s}},Pf.prototype.zr=function(t){return this.current&&"Offline"===t?(this.current=!1,this.applyChanges({fo:this.fo,mo:new hf,mutatedKeys:this.mutatedKeys,Nn:!1},!1)):{To:[]}},Pf.prototype.Io=function(t){return!this.uo.has(t)&&!!this.fo.has(t)&&!this.fo.get(t).hasLocalMutations},Pf.prototype.po=function(t){var e=this;t&&(t.addedDocuments.forEach(function(t){return e.uo=e.uo.add(t)}),t.modifiedDocuments.forEach(function(t){}),t.removedDocuments.forEach(function(t){return e.uo=e.uo.delete(t)}),this.current=t.current)},Pf.prototype.Eo=function(){var e=this;if(!this.current)return[];var n=this.ho;this.ho=Zs(),this.fo.forEach(function(t){e.Io(t.key)&&(e.ho=e.ho.add(t.key))});var r=[];return n.forEach(function(t){e.ho.has(t)||r.push(new Cf(t))}),this.ho.forEach(function(t){n.has(t)||r.push(new Nf(t))}),r},Pf.prototype.Ao=function(t){this.uo=t.Bn,this.ho=Zs();t=this._o(t.documents);return this.applyChanges(t,!0)},Pf.prototype.Ro=function(){return lf.fromInitialDocuments(this.query,this.fo,this.mutatedKeys,0===this.ao)},Pf),Rf=function(t,e,n){this.query=t,this.targetId=e,this.view=n},xf=function(t){this.key=t,this.bo=!1},Of=(Object.defineProperty(Lf.prototype,"isPrimaryClient",{get:function(){return!0===this.$o},enumerable:!1,configurable:!0}),Lf);function Lf(t,e,n,r,i,o){this.localStore=t,this.remoteStore=e,this.eventManager=n,this.sharedClientState=r,this.currentUser=i,this.maxConcurrentLimboResolutions=o,this.vo={},this.Po=new Fc(Bo,qo),this.Vo=new Map,this.So=new Set,this.Do=new Vs(Ni.comparator),this.Co=new Map,this.No=new Ah,this.xo={},this.ko=new Map,this.Fo=vc.Yt(),this.onlineState="Unknown",this.$o=void 0}function Pf(t,e){this.query=t,this.uo=e,this.ao=null,this.current=!1,this.ho=Zs(),this.mutatedKeys=Zs(),this.lo=Go(t),this.fo=new cf(this.lo)}function Mf(i,o,s,a){return y(this,void 0,void 0,function(){var e,n,r;return g(this,function(t){switch(t.label){case 0:return i.Oo=function(t,e,n){return function(r,i,o,s){return y(this,void 0,void 0,function(){var e,n;return g(this,function(t){switch(t.label){case 0:return(e=i.view._o(o)).Nn?[4,wh(r.localStore,i.query,!1).then(function(t){t=t.documents;return i.view._o(t,e)})]:[3,2];case 1:e=t.sent(),t.label=2;case 2:return n=s&&s.targetChanges.get(i.targetId),n=i.view.applyChanges(e,r.isPrimaryClient,n),[2,(Hf(r,i.targetId,n.To),n.snapshot)]}})})}(i,t,e,n)},[4,wh(i.localStore,o,!0)];case 1:return n=t.sent(),r=new kf(o,n.Bn),e=r._o(n.documents),n=na.createSynthesizedTargetChangeForCurrentChange(s,a&&"Offline"!==i.onlineState),n=r.applyChanges(e,i.isPrimaryClient,n),Hf(i,s,n.To),r=new Rf(o,s,r),[2,(i.Po.set(o,r),i.Vo.has(s)?i.Vo.get(s).push(o):i.Vo.set(s,[o]),n.snapshot)]}})})}function Ff(f,d,p){return y(this,void 0,void 0,function(){var s,l;return g(this,function(t){switch(t.label){case 0:l=ed(f),t.label=1;case 1:return t.trys.push([1,5,,6]),[4,(i=l.localStore,a=d,c=i,h=ti.now(),o=a.reduce(function(t,e){return t.add(e.key)},Zs()),c.persistence.runTransaction("Locally write mutations","readwrite",function(s){return c.Mn.pn(s,o).next(function(t){u=t;for(var e=[],n=0,r=a;n, or >=) must be on the same field. But you have inequality filters on '"+n.toString()+"' and '"+e.field.toString()+"'");n=Lo(t);null!==n&&ag(0,e.field,n)}t=function(t,e){for(var n=0,r=t.filters;ns.length)throw new Ur(Vr.INVALID_ARGUMENT,"Too many arguments provided to "+r+"(). The number of arguments must be less than or equal to the number of orderBy() clauses");for(var a=[],u=0;u, or >=) on field '"+e.toString()+"' and so you must also use '"+e.toString()+"' as your first argument to orderBy(), but your first orderBy() is on field '"+n.toString()+"' instead.")}ug.prototype.convertValue=function(t,e){switch(void 0===e&&(e="none"),ki(t)){case 0:return null;case 1:return t.booleanValue;case 2:return Ei(t.integerValue||t.doubleValue);case 3:return this.convertTimestamp(t.timestampValue);case 4:return this.convertServerTimestamp(t,e);case 5:return t.stringValue;case 6:return this.convertBytes(Ti(t.bytesValue));case 7:return this.convertReference(t.referenceValue);case 8:return this.convertGeoPoint(t.geoPointValue);case 9:return this.convertArray(t.arrayValue,e);case 10:return this.convertObject(t.mapValue,e);default:throw zr()}},ug.prototype.convertObject=function(t,n){var r=this,i={};return oi(t.fields,function(t,e){i[t]=r.convertValue(e,n)}),i},ug.prototype.convertGeoPoint=function(t){return new Lp(Ei(t.latitude),Ei(t.longitude))},ug.prototype.convertArray=function(t,e){var n=this;return(t.values||[]).map(function(t){return n.convertValue(t,e)})},ug.prototype.convertServerTimestamp=function(t,e){switch(e){case"previous":var n=function t(e){e=e.mapValue.fields.__previous_value__;return Ii(e)?t(e):e}(t);return null==n?null:this.convertValue(n,e);case"estimate":return this.convertTimestamp(_i(t));default:return null}},ug.prototype.convertTimestamp=function(t){t=bi(t);return new ti(t.seconds,t.nanos)},ug.prototype.convertDocumentKey=function(t,e){var n=ci.fromString(t);Wr(Ba(n));t=new Fd(n.get(1),n.get(3)),n=new Ni(n.popFirst(5));return t.isEqual(e)||Gr("Document "+n+" contains a document reference within a different database ("+t.projectId+"/"+t.database+") which is not supported. It will be treated as a reference in the current database ("+e.projectId+"/"+e.database+") instead."),n},A=ug;function ug(){}function cg(t,e,n){return t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e}var hg,lg=(n(pg,hg=A),pg.prototype.convertBytes=function(t){return new xp(t)},pg.prototype.convertReference=function(t){t=this.convertDocumentKey(t,this.firestore._databaseId);return new ap(this.firestore,null,t)},pg),fg=(dg.prototype.set=function(t,e,n){this._verifyNotCommitted();t=yg(t,this._firestore),e=cg(t.converter,e,n),n=Yp(this._dataReader,"WriteBatch.set",t._key,e,null!==t.converter,n);return this._mutations.push(n.toMutation(t._key,ds.none())),this},dg.prototype.update=function(t,e,n){for(var r=[],i=3;i Date: Tue, 3 May 2022 14:02:58 -0500 Subject: [PATCH 9/9] Revert "first config changes for release" This reverts commit 40104d037dd0bd92d4a23a7962c640f4c6dd8445. --- .firebaserc | 5 ----- firebase.json | 8 ++++++-- web/__/firebase/8.10.1/firebase-app.js | 2 ++ web/__/firebase/8.10.1/firebase-auth.js | 2 ++ web/__/firebase/8.10.1/firebase-firestore.js | 2 ++ web/__/firebase/init.js | 11 +++++++++++ 6 files changed, 23 insertions(+), 7 deletions(-) delete mode 100644 .firebaserc create mode 100644 web/__/firebase/8.10.1/firebase-app.js create mode 100644 web/__/firebase/8.10.1/firebase-auth.js create mode 100644 web/__/firebase/8.10.1/firebase-firestore.js create mode 100644 web/__/firebase/init.js diff --git a/.firebaserc b/.firebaserc deleted file mode 100644 index 98857542..00000000 --- a/.firebaserc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "projects": { - "default": "io-pinball" - } -} diff --git a/firebase.json b/firebase.json index 99025785..80e2ae69 100644 --- a/firebase.json +++ b/firebase.json @@ -1,7 +1,11 @@ { "hosting": { "public": "build/web", - "site": "io-pinball", - "ignore": ["firebase.json", "**/.*", "**/node_modules/**"] + "site": "ashehwkdkdjruejdnensjsjdne", + "ignore": [ + "firebase.json", + "**/.*", + "**/node_modules/**" + ] } } diff --git a/web/__/firebase/8.10.1/firebase-app.js b/web/__/firebase/8.10.1/firebase-app.js new file mode 100644 index 00000000..c688d1c4 --- /dev/null +++ b/web/__/firebase/8.10.1/firebase-app.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).firebase=t()}(this,function(){"use strict";var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};var n=function(){return(n=Object.assign||function(e){for(var t,n=1,r=arguments.length;na[0]&&t[1]=e.length?void 0:e)&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function f(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||0"})):"Error",e=this.serviceName+": "+e+" ("+o+").";return new c(o,e,i)},v);function v(e,t,n){this.service=e,this.serviceName=t,this.errors=n}var m=/\{\$([^}]+)}/g;function y(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function g(e,t){t=new b(e,t);return t.subscribe.bind(t)}var b=(I.prototype.next=function(t){this.forEachObserver(function(e){e.next(t)})},I.prototype.error=function(t){this.forEachObserver(function(e){e.error(t)}),this.close(t)},I.prototype.complete=function(){this.forEachObserver(function(e){e.complete()}),this.close()},I.prototype.subscribe=function(e,t,n){var r,i=this;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");void 0===(r=function(e,t){if("object"!=typeof e||null===e)return!1;for(var n=0,r=t;n=(null!=o?o:e.logLevel)&&a({level:R[t].toLowerCase(),message:i,args:n,type:e.name})}}(n[e])}var H=((H={})["no-app"]="No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()",H["bad-app-name"]="Illegal App name: '{$appName}",H["duplicate-app"]="Firebase App named '{$appName}' already exists",H["app-deleted"]="Firebase App named '{$appName}' already deleted",H["invalid-app-argument"]="firebase.{$appName}() takes either no argument or a Firebase App instance.",H["invalid-log-argument"]="First argument to `onLog` must be null or a function.",H),V=new d("app","Firebase",H),B="@firebase/app",M="[DEFAULT]",U=((H={})[B]="fire-core",H["@firebase/analytics"]="fire-analytics",H["@firebase/app-check"]="fire-app-check",H["@firebase/auth"]="fire-auth",H["@firebase/database"]="fire-rtdb",H["@firebase/functions"]="fire-fn",H["@firebase/installations"]="fire-iid",H["@firebase/messaging"]="fire-fcm",H["@firebase/performance"]="fire-perf",H["@firebase/remote-config"]="fire-rc",H["@firebase/storage"]="fire-gcs",H["@firebase/firestore"]="fire-fst",H["fire-js"]="fire-js",H["firebase-wrapper"]="fire-js-all",H),W=new z("@firebase/app"),G=(Object.defineProperty($.prototype,"automaticDataCollectionEnabled",{get:function(){return this.checkDestroyed_(),this.automaticDataCollectionEnabled_},set:function(e){this.checkDestroyed_(),this.automaticDataCollectionEnabled_=e},enumerable:!1,configurable:!0}),Object.defineProperty($.prototype,"name",{get:function(){return this.checkDestroyed_(),this.name_},enumerable:!1,configurable:!0}),Object.defineProperty($.prototype,"options",{get:function(){return this.checkDestroyed_(),this.options_},enumerable:!1,configurable:!0}),$.prototype.delete=function(){var t=this;return new Promise(function(e){t.checkDestroyed_(),e()}).then(function(){return t.firebase_.INTERNAL.removeApp(t.name_),Promise.all(t.container.getProviders().map(function(e){return e.delete()}))}).then(function(){t.isDeleted_=!0})},$.prototype._getService=function(e,t){void 0===t&&(t=M),this.checkDestroyed_();var n=this.container.getProvider(e);return n.isInitialized()||"EXPLICIT"!==(null===(e=n.getComponent())||void 0===e?void 0:e.instantiationMode)||n.initialize(),n.getImmediate({identifier:t})},$.prototype._removeServiceInstance=function(e,t){void 0===t&&(t=M),this.container.getProvider(e).clearInstance(t)},$.prototype._addComponent=function(t){try{this.container.addComponent(t)}catch(e){W.debug("Component "+t.name+" failed to register with FirebaseApp "+this.name,e)}},$.prototype._addOrOverwriteComponent=function(e){this.container.addOrOverwriteComponent(e)},$.prototype.toJSON=function(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}},$.prototype.checkDestroyed_=function(){if(this.isDeleted_)throw V.create("app-deleted",{appName:this.name_})},$);function $(e,t,n){var r=this;this.firebase_=n,this.isDeleted_=!1,this.name_=t.name,this.automaticDataCollectionEnabled_=t.automaticDataCollectionEnabled||!1,this.options_=h(void 0,e),this.container=new S(t.name),this._addComponent(new O("app",function(){return r},"PUBLIC")),this.firebase_.INTERNAL.components.forEach(function(e){return r._addComponent(e)})}G.prototype.name&&G.prototype.options||G.prototype.delete||console.log("dc");var K="8.10.1";function Y(a){var s={},l=new Map,c={__esModule:!0,initializeApp:function(e,t){void 0===t&&(t={});"object"==typeof t&&null!==t||(t={name:t});var n=t;void 0===n.name&&(n.name=M);t=n.name;if("string"!=typeof t||!t)throw V.create("bad-app-name",{appName:String(t)});if(y(s,t))throw V.create("duplicate-app",{appName:t});n=new a(e,n,c);return s[t]=n},app:u,registerVersion:function(e,t,n){var r=null!==(i=U[e])&&void 0!==i?i:e;n&&(r+="-"+n);var i=r.match(/\s|\//),e=t.match(/\s|\//);i||e?(n=['Unable to register library "'+r+'" with version "'+t+'":'],i&&n.push('library name "'+r+'" contains illegal characters (whitespace or "/")'),i&&e&&n.push("and"),e&&n.push('version name "'+t+'" contains illegal characters (whitespace or "/")'),W.warn(n.join(" "))):o(new O(r+"-version",function(){return{library:r,version:t}},"VERSION"))},setLogLevel:T,onLog:function(e,t){if(null!==e&&"function"!=typeof e)throw V.create("invalid-log-argument");x(e,t)},apps:null,SDK_VERSION:K,INTERNAL:{registerComponent:o,removeApp:function(e){delete s[e]},components:l,useAsService:function(e,t){return"serverAuth"!==t?t:null}}};function u(e){if(!y(s,e=e||M))throw V.create("no-app",{appName:e});return s[e]}function o(n){var e,r=n.name;if(l.has(r))return W.debug("There were multiple attempts to register component "+r+"."),"PUBLIC"===n.type?c[r]:null;l.set(r,n),"PUBLIC"===n.type&&(e=function(e){if("function"!=typeof(e=void 0===e?u():e)[r])throw V.create("invalid-app-argument",{appName:r});return e[r]()},void 0!==n.serviceProps&&h(e,n.serviceProps),c[r]=e,a.prototype[r]=function(){for(var e=[],t=0;t>>0),i=0;function r(t,e,n){return t.call.apply(t.bind,arguments)}function g(e,n,t){if(!e)throw Error();if(2/g,Q=/"/g,tt=/'/g,et=/\x00/g,nt=/[\x00&<>"']/;function it(t,e){return-1!=t.indexOf(e)}function rt(t,e){return t"}else o=void 0===t?"undefined":null===t?"null":typeof t;D("Argument is not a %s (or a non-Element, non-Location mock); got: %s",e,o)}}function dt(t,e){this.a=t===gt&&e||"",this.b=mt}function pt(t){return t instanceof dt&&t.constructor===dt&&t.b===mt?t.a:(D("expected object of type Const, got '"+t+"'"),"type_error:Const")}dt.prototype.ta=!0,dt.prototype.sa=function(){return this.a},dt.prototype.toString=function(){return"Const{"+this.a+"}"};var vt,mt={},gt={};function bt(){if(void 0===vt){var t=null,e=l.trustedTypes;if(e&&e.createPolicy){try{t=e.createPolicy("goog#html",{createHTML:I,createScript:I,createScriptURL:I})}catch(t){l.console&&l.console.error(t.message)}vt=t}else vt=t}return vt}function yt(t,e){this.a=e===At?t:""}function wt(t){return t instanceof yt&&t.constructor===yt?t.a:(D("expected object of type TrustedResourceUrl, got '"+t+"' of type "+d(t)),"type_error:TrustedResourceUrl")}function It(t,n){var e,i=pt(t);if(!Et.test(i))throw Error("Invalid TrustedResourceUrl format: "+i);return t=i.replace(Tt,function(t,e){if(!Object.prototype.hasOwnProperty.call(n,e))throw Error('Found marker, "'+e+'", in format string, "'+i+'", but no valid label mapping found in args: '+JSON.stringify(n));return(t=n[e])instanceof dt?pt(t):encodeURIComponent(String(t))}),e=t,t=bt(),new yt(e=t?t.createScriptURL(e):e,At)}yt.prototype.ta=!0,yt.prototype.sa=function(){return this.a.toString()},yt.prototype.toString=function(){return"TrustedResourceUrl{"+this.a+"}"};var Tt=/%{(\w+)}/g,Et=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i,At={};function kt(t,e){this.a=e===Dt?t:""}function St(t){return t instanceof kt&&t.constructor===kt?t.a:(D("expected object of type SafeUrl, got '"+t+"' of type "+d(t)),"type_error:SafeUrl")}kt.prototype.ta=!0,kt.prototype.sa=function(){return this.a.toString()},kt.prototype.toString=function(){return"SafeUrl{"+this.a+"}"};var Nt=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|font\/\w+|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\w+=(?:\w+|"[\w;,= ]+"))*$/i,_t=/^data:(.*);base64,[a-z0-9+\/]+=*$/i,Ot=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;function Ct(t){return t instanceof kt?t:(t="object"==typeof t&&t.ta?t.sa():String(t),t=Ot.test(t)||(e=(t=(t=String(t)).replace(/(%0A|%0D)/g,"")).match(_t))&&Nt.test(e[1])?new kt(t,Dt):null);var e}function Rt(t){return t instanceof kt?t:(t="object"==typeof t&&t.ta?t.sa():String(t),new kt(t=!Ot.test(t)?"about:invalid#zClosurez":t,Dt))}var Dt={},Pt=new kt("about:invalid#zClosurez",Dt);function Lt(t,e,n){this.a=n===xt?t:""}Lt.prototype.ta=!0,Lt.prototype.sa=function(){return this.a.toString()},Lt.prototype.toString=function(){return"SafeHtml{"+this.a+"}"};var xt={};function Mt(t,e,n,i){return t=t instanceof kt?t:Rt(t),e=e||l,n=n instanceof dt?pt(n):n||"",e.open(St(t),n,i,void 0)}function jt(t){for(var e=t.split("%s"),n="",i=Array.prototype.slice.call(arguments,1);i.length&&1")?t.replace(Z,">"):t).indexOf('"')?t.replace(Q,"""):t).indexOf("'")?t.replace(tt,"'"):t).indexOf("\0")&&(t=t.replace(et,"�"))),t}function Vt(t){return Vt[" "](t),t}Vt[" "]=a;var Ft,qt=at("Opera"),Ht=at("Trident")||at("MSIE"),Kt=at("Edge"),Gt=Kt||Ht,Bt=at("Gecko")&&!(it(J.toLowerCase(),"webkit")&&!at("Edge"))&&!(at("Trident")||at("MSIE"))&&!at("Edge"),Wt=it(J.toLowerCase(),"webkit")&&!at("Edge");function Xt(){var t=l.document;return t?t.documentMode:void 0}t:{var Jt="",Yt=(Yt=J,Bt?/rv:([^\);]+)(\)|;)/.exec(Yt):Kt?/Edge\/([\d\.]+)/.exec(Yt):Ht?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(Yt):Wt?/WebKit\/(\S+)/.exec(Yt):qt?/(?:Version)[ \/]?(\S+)/.exec(Yt):void 0);if(Yt&&(Jt=Yt?Yt[1]:""),Ht){Yt=Xt();if(null!=Yt&&Yt>parseFloat(Jt)){Ft=String(Yt);break t}}Ft=Jt}var zt={};function $t(s){return t=s,e=function(){for(var t=0,e=Y(String(Ft)).split("."),n=Y(String(s)).split("."),i=Math.max(e.length,n.length),r=0;0==t&&r"),i=i.join("")),i=ae(n,i),r&&("string"==typeof r?i.className=r:Array.isArray(r)?i.className=r.join(" "):ee(i,r)),2>>0);function ln(e){return v(e)?e:(e[hn]||(e[hn]=function(t){return e.handleEvent(t)}),e[hn])}function fn(){Pe.call(this),this.v=new Je(this),(this.bc=this).hb=null}function dn(t,e,n,i,r){t.v.add(String(e),n,!1,i,r)}function pn(t,e,n,i,r){t.v.add(String(e),n,!0,i,r)}function vn(t,e,n,i){if(!(e=t.v.a[String(e)]))return!0;e=e.concat();for(var r=!0,o=0;o>4&15).toString(16)+(15&t).toString(16)}An.prototype.toString=function(){var t=[],e=this.c;e&&t.push(Pn(e,xn,!0),":");var n=this.a;return!n&&"file"!=e||(t.push("//"),(e=this.l)&&t.push(Pn(e,xn,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.g)&&t.push(":",String(n))),(n=this.f)&&(this.a&&"/"!=n.charAt(0)&&t.push("/"),t.push(Pn(n,"/"==n.charAt(0)?jn:Mn,!0))),(n=this.b.toString())&&t.push("?",n),(n=this.h)&&t.push("#",Pn(n,Vn)),t.join("")},An.prototype.resolve=function(t){var e=new An(this),n=!!t.c;n?kn(e,t.c):n=!!t.l,n?e.l=t.l:n=!!t.a,n?e.a=t.a:n=null!=t.g;var i=t.f;if(n)Sn(e,t.g);else if(n=!!t.f)if("/"!=i.charAt(0)&&(this.a&&!this.f?i="/"+i:-1!=(r=e.f.lastIndexOf("/"))&&(i=e.f.substr(0,r+1)+i)),".."==(r=i)||"."==r)i="";else if(it(r,"./")||it(r,"/.")){for(var i=0==r.lastIndexOf("/",0),r=r.split("/"),o=[],a=0;a2*t.c&&In(t)))}function Gn(t,e){return qn(t),e=Xn(t,e),Tn(t.a.b,e)}function Bn(t,e,n){Kn(t,e),0',t=new Lt(t=(i=bt())?i.createHTML(t):t,0,xt),i=a.document)&&(i.write((o=t)instanceof Lt&&o.constructor===Lt?o.a:(D("expected object of type SafeHtml, got '"+o+"' of type "+d(o)),"type_error:SafeHtml")),i.close())):(a=Mt(e,i,n,a))&&t.noopener&&(a.opener=null),a)try{a.focus()}catch(t){}return a}var oi=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,ai=/^[^@]+@[^@]+$/;function si(){var e=null;return new fe(function(t){"complete"==l.document.readyState?t():(e=function(){t()},en(window,"load",e))}).o(function(t){throw nn(window,"load",e),t})}function ui(t){return t=t||bi(),!("file:"!==Ei()&&"ionic:"!==Ei()||!t.toLowerCase().match(/iphone|ipad|ipod|android/))}function ci(){var t=l.window;try{return t&&t!=t.top}catch(t){return}}function hi(){return void 0!==l.WorkerGlobalScope&&"function"==typeof l.importScripts}function li(){return Zl.default.INTERNAL.hasOwnProperty("reactNative")?"ReactNative":Zl.default.INTERNAL.hasOwnProperty("node")?"Node":hi()?"Worker":"Browser"}function fi(){var t=li();return"ReactNative"===t||"Node"===t}var di="Firefox",pi="Chrome";function vi(t){var e=t.toLowerCase();return it(e,"opera/")||it(e,"opr/")||it(e,"opios/")?"Opera":it(e,"iemobile")?"IEMobile":it(e,"msie")||it(e,"trident/")?"IE":it(e,"edge/")?"Edge":it(e,"firefox/")?di:it(e,"silk/")?"Silk":it(e,"blackberry")?"Blackberry":it(e,"webos")?"Webos":!it(e,"safari/")||it(e,"chrome/")||it(e,"crios/")||it(e,"android")?!it(e,"chrome/")&&!it(e,"crios/")||it(e,"edge/")?it(e,"android")?"Android":(t=t.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))&&2==t.length?t[1]:"Other":pi:"Safari"}var mi={md:"FirebaseCore-web",od:"FirebaseUI-web"};function gi(t,e){e=e||[];var n,i=[],r={};for(n in mi)r[mi[n]]=!0;for(n=0;n>4),64!=a&&(t(o<<4&240|a>>2),64!=s&&t(a<<6&192|s))}}(t,function(t){e.push(t)}),e}function Pr(t){var e=xr(t);if(!(e&&e.sub&&e.iss&&e.aud&&e.exp))throw Error("Invalid JWT");this.h=t,this.a=e.exp,this.i=e.sub,t=Date.now()/1e3,this.g=e.iat||(t>this.a?this.a:t),this.b=e.provider_id||e.firebase&&e.firebase.sign_in_provider||null,this.f=e.firebase&&e.firebase.tenant||null,this.c=!!e.is_anonymous||"anonymous"==this.b}function Lr(t){try{return new Pr(t)}catch(t){return null}}function xr(t){if(!t)return null;if(3!=(t=t.split(".")).length)return null;for(var e=(4-(t=t[1]).length%4)%4,n=0;n>10)),t[n++]=String.fromCharCode(56320+(1023&a))):(r=i[e++],o=i[e++],t[n++]=String.fromCharCode((15&s)<<12|(63&r)<<6|63&o))}return JSON.parse(t.join(""))}catch(t){}return null}Pr.prototype.T=function(){return this.f},Pr.prototype.l=function(){return this.c},Pr.prototype.toString=function(){return this.h};var Mr="oauth_consumer_key oauth_nonce oauth_signature oauth_signature_method oauth_timestamp oauth_token oauth_version".split(" "),jr=["client_id","response_type","scope","redirect_uri","state"],Ur={nd:{Ja:"locale",va:700,ua:600,fa:"facebook.com",Ya:jr},pd:{Ja:null,va:500,ua:750,fa:"github.com",Ya:jr},qd:{Ja:"hl",va:515,ua:680,fa:"google.com",Ya:jr},wd:{Ja:"lang",va:485,ua:705,fa:"twitter.com",Ya:Mr},kd:{Ja:"locale",va:640,ua:600,fa:"apple.com",Ya:[]}};function Vr(t){for(var e in Ur)if(Ur[e].fa==t)return Ur[e];return null}function Fr(t){var e={};e["facebook.com"]=Br,e["google.com"]=Xr,e["github.com"]=Wr,e["twitter.com"]=Jr;var n=t&&t[Hr];try{if(n)return new(e[n]||Gr)(t);if(void 0!==t[qr])return new Kr(t)}catch(t){}return null}var qr="idToken",Hr="providerId";function Kr(t){var e,n=t[Hr];if(n||!t[qr]||(e=Lr(t[qr]))&&e.b&&(n=e.b),!n)throw Error("Invalid additional user info!");e=!1,void 0!==t.isNewUser?e=!!t.isNewUser:"identitytoolkit#SignupNewUserResponse"===t.kind&&(e=!0),Fi(this,"providerId",n="anonymous"==n||"custom"==n?null:n),Fi(this,"isNewUser",e)}function Gr(t){Kr.call(this,t),Fi(this,"profile",Ki((t=Ni(t.rawUserInfo||"{}"))||{}))}function Br(t){if(Gr.call(this,t),"facebook.com"!=this.providerId)throw Error("Invalid provider ID!")}function Wr(t){if(Gr.call(this,t),"github.com"!=this.providerId)throw Error("Invalid provider ID!");Fi(this,"username",this.profile&&this.profile.login||null)}function Xr(t){if(Gr.call(this,t),"google.com"!=this.providerId)throw Error("Invalid provider ID!")}function Jr(t){if(Gr.call(this,t),"twitter.com"!=this.providerId)throw Error("Invalid provider ID!");Fi(this,"username",t.screenName||null)}function Yr(t){var e=On(i=Cn(t),"link"),n=On(Cn(e),"link"),i=On(i,"deep_link_id");return On(Cn(i),"link")||i||n||e||t}function zr(t,e){if(!t&&!e)throw new T("internal-error","Internal assert: no raw session string available");if(t&&e)throw new T("internal-error","Internal assert: unable to determine the session type");this.a=t||null,this.b=e||null,this.type=this.a?$r:Zr}w(Gr,Kr),w(Br,Gr),w(Wr,Gr),w(Xr,Gr),w(Jr,Gr);var $r="enroll",Zr="signin";function Qr(){}function to(t,n){return t.then(function(t){if(t[Ka]){var e=Lr(t[Ka]);if(!e||n!=e.i)throw new T("user-mismatch");return t}throw new T("user-mismatch")}).o(function(t){throw t&&t.code&&t.code==k+"user-not-found"?new T("user-mismatch"):t})}function eo(t,e){if(!e)throw new T("internal-error","failed to construct a credential");this.a=e,Fi(this,"providerId",t),Fi(this,"signInMethod",t)}function no(t){return{pendingToken:t.a,requestUri:"http://localhost"}}function io(t){if(t&&t.providerId&&t.signInMethod&&0==t.providerId.indexOf("saml.")&&t.pendingToken)try{return new eo(t.providerId,t.pendingToken)}catch(t){}return null}function ro(t,e,n){if(this.a=null,e.idToken||e.accessToken)e.idToken&&Fi(this,"idToken",e.idToken),e.accessToken&&Fi(this,"accessToken",e.accessToken),e.nonce&&!e.pendingToken&&Fi(this,"nonce",e.nonce),e.pendingToken&&(this.a=e.pendingToken);else{if(!e.oauthToken||!e.oauthTokenSecret)throw new T("internal-error","failed to construct a credential");Fi(this,"accessToken",e.oauthToken),Fi(this,"secret",e.oauthTokenSecret)}Fi(this,"providerId",t),Fi(this,"signInMethod",n)}function oo(t){var e={};return t.idToken&&(e.id_token=t.idToken),t.accessToken&&(e.access_token=t.accessToken),t.secret&&(e.oauth_token_secret=t.secret),e.providerId=t.providerId,t.nonce&&!t.a&&(e.nonce=t.nonce),e={postBody:Hn(e).toString(),requestUri:"http://localhost"},t.a&&(delete e.postBody,e.pendingToken=t.a),e}function ao(t){if(t&&t.providerId&&t.signInMethod){var e={idToken:t.oauthIdToken,accessToken:t.oauthTokenSecret?null:t.oauthAccessToken,oauthTokenSecret:t.oauthTokenSecret,oauthToken:t.oauthTokenSecret&&t.oauthAccessToken,nonce:t.nonce,pendingToken:t.pendingToken};try{return new ro(t.providerId,e,t.signInMethod)}catch(t){}}return null}function so(t,e){this.Qc=e||[],qi(this,{providerId:t,isOAuthProvider:!0}),this.Jb={},this.qb=(Vr(t)||{}).Ja||null,this.pb=null}function uo(t){if("string"!=typeof t||0!=t.indexOf("saml."))throw new T("argument-error",'SAML provider IDs must be prefixed with "saml."');so.call(this,t,[])}function co(t){so.call(this,t,jr),this.a=[]}function ho(){co.call(this,"facebook.com")}function lo(t){if(!t)throw new T("argument-error","credential failed: expected 1 argument (the OAuth access token).");var e=t;return m(t)&&(e=t.accessToken),(new ho).credential({accessToken:e})}function fo(){co.call(this,"github.com")}function po(t){if(!t)throw new T("argument-error","credential failed: expected 1 argument (the OAuth access token).");var e=t;return m(t)&&(e=t.accessToken),(new fo).credential({accessToken:e})}function vo(){co.call(this,"google.com"),this.Ca("profile")}function mo(t,e){var n=t;return m(t)&&(n=t.idToken,e=t.accessToken),(new vo).credential({idToken:n,accessToken:e})}function go(){so.call(this,"twitter.com",Mr)}function bo(t,e){var n=t;if(!(n=!m(n)?{oauthToken:t,oauthTokenSecret:e}:n).oauthToken||!n.oauthTokenSecret)throw new T("argument-error","credential failed: expected 2 arguments (the OAuth access token and secret).");return new ro("twitter.com",n,"twitter.com")}function yo(t,e,n){this.a=t,this.f=e,Fi(this,"providerId","password"),Fi(this,"signInMethod",n===Io.EMAIL_LINK_SIGN_IN_METHOD?Io.EMAIL_LINK_SIGN_IN_METHOD:Io.EMAIL_PASSWORD_SIGN_IN_METHOD)}function wo(t){return t&&t.email&&t.password?new yo(t.email,t.password,t.signInMethod):null}function Io(){qi(this,{providerId:"password",isOAuthProvider:!1})}function To(t,e){if(!(e=Eo(e)))throw new T("argument-error","Invalid email link!");return new yo(t,e.code,Io.EMAIL_LINK_SIGN_IN_METHOD)}function Eo(t){return(t=yr(t=Yr(t)))&&t.operation===Qi?t:null}function Ao(t){if(!(t.fb&&t.eb||t.La&&t.ea))throw new T("internal-error");this.a=t,Fi(this,"providerId","phone"),this.fa="phone",Fi(this,"signInMethod","phone")}function ko(e){if(e&&"phone"===e.providerId&&(e.verificationId&&e.verificationCode||e.temporaryProof&&e.phoneNumber)){var n={};return V(["verificationId","verificationCode","temporaryProof","phoneNumber"],function(t){e[t]&&(n[t]=e[t])}),new Ao(n)}return null}function So(t){return t.a.La&&t.a.ea?{temporaryProof:t.a.La,phoneNumber:t.a.ea}:{sessionInfo:t.a.fb,code:t.a.eb}}function No(t){try{this.a=t||Zl.default.auth()}catch(t){throw new T("argument-error","Either an instance of firebase.auth.Auth must be passed as an argument to the firebase.auth.PhoneAuthProvider constructor, or the default firebase App instance must be initialized via firebase.initializeApp().")}qi(this,{providerId:"phone",isOAuthProvider:!1})}function _o(t,e){if(!t)throw new T("missing-verification-id");if(!e)throw new T("missing-verification-code");return new Ao({fb:t,eb:e})}function Oo(t){if(t.temporaryProof&&t.phoneNumber)return new Ao({La:t.temporaryProof,ea:t.phoneNumber});var e=t&&t.providerId;if(!e||"password"===e)return null;var n=t&&t.oauthAccessToken,i=t&&t.oauthTokenSecret,r=t&&t.nonce,o=t&&t.oauthIdToken,a=t&&t.pendingToken;try{switch(e){case"google.com":return mo(o,n);case"facebook.com":return lo(n);case"github.com":return po(n);case"twitter.com":return bo(n,i);default:return n||i||o||a?a?0==e.indexOf("saml.")?new eo(e,a):new ro(e,{pendingToken:a,idToken:t.oauthIdToken,accessToken:t.oauthAccessToken},e):new co(e).credential({idToken:o,accessToken:n,rawNonce:r}):null}}catch(t){return null}}function Co(t){if(!t.isOAuthProvider)throw new T("invalid-oauth-provider")}function Ro(t,e,n,i,r,o,a){if(this.c=t,this.b=e||null,this.g=n||null,this.f=i||null,this.i=o||null,this.h=a||null,this.a=r||null,!this.g&&!this.a)throw new T("invalid-auth-event");if(this.g&&this.a)throw new T("invalid-auth-event");if(this.g&&!this.f)throw new T("invalid-auth-event")}function Do(t){return(t=t||{}).type?new Ro(t.type,t.eventId,t.urlResponse,t.sessionId,t.error&&E(t.error),t.postBody,t.tenantId):null}function Po(){this.b=null,this.a=[]}zr.prototype.Ha=function(){return this.a?ye(this.a):ye(this.b)},zr.prototype.w=function(){return this.type==$r?{multiFactorSession:{idToken:this.a}}:{multiFactorSession:{pendingCredential:this.b}}},Qr.prototype.ka=function(){},Qr.prototype.b=function(){},Qr.prototype.c=function(){},Qr.prototype.w=function(){},eo.prototype.ka=function(t){return ls(t,no(this))},eo.prototype.b=function(t,e){var n=no(this);return n.idToken=e,fs(t,n)},eo.prototype.c=function(t,e){return to(ds(t,no(this)),e)},eo.prototype.w=function(){return{providerId:this.providerId,signInMethod:this.signInMethod,pendingToken:this.a}},ro.prototype.ka=function(t){return ls(t,oo(this))},ro.prototype.b=function(t,e){var n=oo(this);return n.idToken=e,fs(t,n)},ro.prototype.c=function(t,e){return to(ds(t,oo(this)),e)},ro.prototype.w=function(){var t={providerId:this.providerId,signInMethod:this.signInMethod};return this.idToken&&(t.oauthIdToken=this.idToken),this.accessToken&&(t.oauthAccessToken=this.accessToken),this.secret&&(t.oauthTokenSecret=this.secret),this.nonce&&(t.nonce=this.nonce),this.a&&(t.pendingToken=this.a),t},so.prototype.Ka=function(t){return this.Jb=ct(t),this},w(uo,so),w(co,so),co.prototype.Ca=function(t){return K(this.a,t)||this.a.push(t),this},co.prototype.Rb=function(){return X(this.a)},co.prototype.credential=function(t,e){e=m(t)?{idToken:t.idToken||null,accessToken:t.accessToken||null,nonce:t.rawNonce||null}:{idToken:t||null,accessToken:e||null};if(!e.idToken&&!e.accessToken)throw new T("argument-error","credential failed: must provide the ID token and/or the access token.");return new ro(this.providerId,e,this.providerId)},w(ho,co),Fi(ho,"PROVIDER_ID","facebook.com"),Fi(ho,"FACEBOOK_SIGN_IN_METHOD","facebook.com"),w(fo,co),Fi(fo,"PROVIDER_ID","github.com"),Fi(fo,"GITHUB_SIGN_IN_METHOD","github.com"),w(vo,co),Fi(vo,"PROVIDER_ID","google.com"),Fi(vo,"GOOGLE_SIGN_IN_METHOD","google.com"),w(go,so),Fi(go,"PROVIDER_ID","twitter.com"),Fi(go,"TWITTER_SIGN_IN_METHOD","twitter.com"),yo.prototype.ka=function(t){return this.signInMethod==Io.EMAIL_LINK_SIGN_IN_METHOD?Js(t,Is,{email:this.a,oobCode:this.f}):Js(t,Ks,{email:this.a,password:this.f})},yo.prototype.b=function(t,e){return this.signInMethod==Io.EMAIL_LINK_SIGN_IN_METHOD?Js(t,Ts,{idToken:e,email:this.a,oobCode:this.f}):Js(t,xs,{idToken:e,email:this.a,password:this.f})},yo.prototype.c=function(t,e){return to(this.ka(t),e)},yo.prototype.w=function(){return{email:this.a,password:this.f,signInMethod:this.signInMethod}},qi(Io,{PROVIDER_ID:"password"}),qi(Io,{EMAIL_LINK_SIGN_IN_METHOD:"emailLink"}),qi(Io,{EMAIL_PASSWORD_SIGN_IN_METHOD:"password"}),Ao.prototype.ka=function(t){return t.gb(So(this))},Ao.prototype.b=function(t,e){var n=So(this);return n.idToken=e,Js(t,Bs,n)},Ao.prototype.c=function(t,e){var n=So(this);return n.operation="REAUTH",to(t=Js(t,Ws,n),e)},Ao.prototype.w=function(){var t={providerId:"phone"};return this.a.fb&&(t.verificationId=this.a.fb),this.a.eb&&(t.verificationCode=this.a.eb),this.a.La&&(t.temporaryProof=this.a.La),this.a.ea&&(t.phoneNumber=this.a.ea),t},No.prototype.gb=function(i,r){var o=this.a.a;return ye(r.verify()).then(function(e){if("string"!=typeof e)throw new T("argument-error","An implementation of firebase.auth.ApplicationVerifier.prototype.verify() must return a firebase.Promise that resolves with a string.");if("recaptcha"!==r.type)throw new T("argument-error",'Only firebase.auth.ApplicationVerifiers with type="recaptcha" are currently supported.');var t=m(i)?i.session:null,n=m(i)?i.phoneNumber:i,t=t&&t.type==$r?t.Ha().then(function(t){return Js(o,js,{idToken:t,phoneEnrollmentInfo:{phoneNumber:n,recaptchaToken:e}}).then(function(t){return t.phoneSessionInfo.sessionInfo})}):t&&t.type==Zr?t.Ha().then(function(t){return t={mfaPendingCredential:t,mfaEnrollmentId:i.multiFactorHint&&i.multiFactorHint.uid||i.multiFactorUid,phoneSignInInfo:{recaptchaToken:e}},Js(o,Us,t).then(function(t){return t.phoneResponseInfo.sessionInfo})}):Js(o,Ps,{phoneNumber:n,recaptchaToken:e});return t.then(function(t){return"function"==typeof r.reset&&r.reset(),t},function(t){throw"function"==typeof r.reset&&r.reset(),t})})},qi(No,{PROVIDER_ID:"phone"}),qi(No,{PHONE_SIGN_IN_METHOD:"phone"}),Ro.prototype.getUid=function(){var t=[];return t.push(this.c),this.b&&t.push(this.b),this.f&&t.push(this.f),this.h&&t.push(this.h),t.join("-")},Ro.prototype.T=function(){return this.h},Ro.prototype.w=function(){return{type:this.c,eventId:this.b,urlResponse:this.g,sessionId:this.f,postBody:this.i,tenantId:this.h,error:this.a&&this.a.w()}};var Lo,xo=null;function Mo(t){var e="unauthorized-domain",n=void 0,i=Cn(t);t=i.a,"chrome-extension"==(i=i.c)?n=jt("This chrome extension ID (chrome-extension://%s) is not authorized to run this operation. Add it to the OAuth redirect domains list in the Firebase console -> Auth section -> Sign in method tab.",t):"http"==i||"https"==i?n=jt("This domain (%s) is not authorized to run this operation. Add it to the OAuth redirect domains list in the Firebase console -> Auth section -> Sign in method tab.",t):e="operation-not-supported-in-this-environment",T.call(this,e,n)}function jo(t,e,n){T.call(this,t,n),(t=e||{}).Kb&&Fi(this,"email",t.Kb),t.ea&&Fi(this,"phoneNumber",t.ea),t.credential&&Fi(this,"credential",t.credential),t.$b&&Fi(this,"tenantId",t.$b)}function Uo(t){if(t.code){var e=t.code||"";0==e.indexOf(k)&&(e=e.substring(k.length));var n={credential:Oo(t),$b:t.tenantId};if(t.email)n.Kb=t.email;else if(t.phoneNumber)n.ea=t.phoneNumber;else if(!n.credential)return new T(e,t.message||void 0);return new jo(e,n,t.message)}return null}function Vo(){}function Fo(t){return t.c||(t.c=t.b())}function qo(){}function Ho(t){if(t.f||"undefined"!=typeof XMLHttpRequest||"undefined"==typeof ActiveXObject)return t.f;for(var e=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],n=0;n=function t(e){return e.c||(e.a?t(e.a):(D("Root logger has no level set."),null))}(this).value)for(v(e)&&(e=e()),t=new Wo(t,String(e),this.f),n&&(t.a=n),n=this;n;)n=n.a};var Qo,ta={},ea=null;function na(t){var e,n,i;return ea||(ea=new Xo(""),(ta[""]=ea).c=$o),(e=ta[t])||(e=new Xo(t),i=t.lastIndexOf("."),n=t.substr(i+1),(i=na(t.substr(0,i))).b||(i.b={}),(i.b[n]=e).a=i,ta[t]=e),e}function ia(t,e){t&&t.log(Zo,e,void 0)}function ra(t){this.f=t}function oa(t){fn.call(this),this.u=t,this.h=void 0,this.readyState=aa,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.l=new Headers,this.b=null,this.s="GET",this.f="",this.a=!1,this.i=na("goog.net.FetchXmlHttp"),this.m=this.c=this.g=null}w(ra,Vo),ra.prototype.a=function(){return new oa(this.f)},ra.prototype.b=(Qo={},function(){return Qo}),w(oa,fn);var aa=0;function sa(t){t.c.read().then(t.pc.bind(t)).catch(t.Va.bind(t))}function ua(t){t.readyState=4,t.g=null,t.c=null,t.m=null,ca(t)}function ca(t){t.onreadystatechange&&t.onreadystatechange.call(t)}function ha(t){fn.call(this),this.headers=new wn,this.D=t||null,this.c=!1,this.C=this.a=null,this.h=this.P=this.l="",this.f=this.N=this.i=this.J=!1,this.g=0,this.s=null,this.m=la,this.u=this.S=!1}(t=oa.prototype).open=function(t,e){if(this.readyState!=aa)throw this.abort(),Error("Error reopening a connection");this.s=t,this.f=e,this.readyState=1,ca(this)},t.send=function(t){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.a=!0;var e={headers:this.l,method:this.s,credentials:this.h,cache:void 0};t&&(e.body=t),this.u.fetch(new Request(this.f,e)).then(this.uc.bind(this),this.Va.bind(this))},t.abort=function(){this.response=this.responseText="",this.l=new Headers,this.status=0,this.c&&this.c.cancel("Request was aborted."),1<=this.readyState&&this.a&&4!=this.readyState&&(this.a=!1,ua(this)),this.readyState=aa},t.uc=function(t){this.a&&(this.g=t,this.b||(this.status=this.g.status,this.statusText=this.g.statusText,this.b=t.headers,this.readyState=2,ca(this)),this.a&&(this.readyState=3,ca(this),this.a&&("arraybuffer"===this.responseType?t.arrayBuffer().then(this.sc.bind(this),this.Va.bind(this)):void 0!==l.ReadableStream&&"body"in t?(this.response=this.responseText="",this.c=t.body.getReader(),this.m=new TextDecoder,sa(this)):t.text().then(this.tc.bind(this),this.Va.bind(this)))))},t.pc=function(t){var e;this.a&&((e=this.m.decode(t.value||new Uint8Array(0),{stream:!t.done}))&&(this.response=this.responseText+=e),(t.done?ua:ca)(this),3==this.readyState&&sa(this))},t.tc=function(t){this.a&&(this.response=this.responseText=t,ua(this))},t.sc=function(t){this.a&&(this.response=t,ua(this))},t.Va=function(t){var e=this.i;e&&e.log(zo,"Failed to fetch url "+this.f,t instanceof Error?t:Error(t)),this.a&&ua(this)},t.setRequestHeader=function(t,e){this.l.append(t,e)},t.getResponseHeader=function(t){return this.b?this.b.get(t.toLowerCase())||"":((t=this.i)&&t.log(zo,"Attempting to get response header but no headers have been received for url: "+this.f,void 0),"")},t.getAllResponseHeaders=function(){if(!this.b){var t=this.i;return t&&t.log(zo,"Attempting to get all response headers but no headers have been received for url: "+this.f,void 0),""}for(var t=[],e=this.b.entries(),n=e.next();!n.done;)n=n.value,t.push(n[0]+": "+n[1]),n=e.next();return t.join("\r\n")},Object.defineProperty(oa.prototype,"withCredentials",{get:function(){return"include"===this.h},set:function(t){this.h=t?"include":"same-origin"}}),w(ha,fn);var la="";ha.prototype.b=na("goog.net.XhrIo");var fa=/^https?$/i,da=["POST","PUT"];function pa(e,t,n,i,r){if(e.a)throw Error("[goog.net.XhrIo] Object is active with another request="+e.l+"; newUri="+t);n=n?n.toUpperCase():"GET",e.l=t,e.h="",e.P=n,e.J=!1,e.c=!0,e.a=(e.D||Lo).a(),e.C=e.D?Fo(e.D):Fo(Lo),e.a.onreadystatechange=b(e.Wb,e);try{ia(e.b,Ea(e,"Opening Xhr")),e.N=!0,e.a.open(n,String(t),!0),e.N=!1}catch(t){return ia(e.b,Ea(e,"Error opening Xhr: "+t.message)),void ma(e,t)}t=i||"";var o,a=new wn(e.headers);r&&function(t,e){if(t.forEach&&"function"==typeof t.forEach)t.forEach(e,void 0);else if(p(t)||"string"==typeof t)V(t,e,void 0);else for(var n=yn(t),i=bn(t),r=i.length,o=0;o>>7|r<<25)^(r>>>18|r<<14)^r>>>3)|0,a=(0|n[e-7])+((i>>>17|i<<15)^(i>>>19|i<<13)^i>>>10)|0;n[e]=o+a|0}i=0|t.a[0],r=0|t.a[1];var s=0|t.a[2],u=0|t.a[3],c=0|t.a[4],h=0|t.a[5],l=0|t.a[6];for(o=0|t.a[7],e=0;e<64;e++){var f=((i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10))+(i&r^i&s^r&s)|0;a=(o=o+((c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7))|0)+((a=(a=c&h^~c&l)+(0|Zu[e])|0)+(0|n[e])|0)|0,o=l,l=h,h=c,c=u+a|0,u=s,s=r,r=i,i=a+f|0}t.a[0]=t.a[0]+i|0,t.a[1]=t.a[1]+r|0,t.a[2]=t.a[2]+s|0,t.a[3]=t.a[3]+u|0,t.a[4]=t.a[4]+c|0,t.a[5]=t.a[5]+h|0,t.a[6]=t.a[6]+l|0,t.a[7]=t.a[7]+o|0}function uc(t,e,n){void 0===n&&(n=e.length);var i=0,r=t.c;if("string"==typeof e)for(;i>r&255;return q(t,function(t){return 1<(t=t.toString(16)).length?t:"0"+t}).join("")}function vc(t,e){for(var n=0;nt.f&&(t.a=t.f),e)}function oh(t){this.f=t,this.b=this.a=null,this.c=Date.now()}function ah(t,e){void 0===e&&(e=t.b?(e=t.b).a-e.g:0),t.c=Date.now()+1e3*e}function sh(t,e){t.b=Lr(e[Ka]||""),t.a=e.refreshToken,ah(t,void 0!==(e=e.expiresIn)?Number(e):void 0)}function uh(e,t){return i=e.f,r=t,new fe(function(e,n){"refresh_token"==r.grant_type&&r.refresh_token||"authorization_code"==r.grant_type&&r.code?Za(i,i.l+"?key="+encodeURIComponent(i.c),function(t){t?t.error?n(zs(t)):t.access_token&&t.refresh_token?e(t):n(new T("internal-error")):n(new T("network-request-failed"))},"POST",Hn(r).toString(),i.g,i.m.get()):n(new T("internal-error"))}).then(function(t){return e.b=Lr(t.access_token),e.a=t.refresh_token,ah(e,t.expires_in),{accessToken:e.b.toString(),refreshToken:e.a}}).o(function(t){throw"auth/user-token-expired"==t.code&&(e.a=null),t});var i,r}function ch(t,e){this.a=t||null,this.b=e||null,qi(this,{lastSignInTime:Li(e||null),creationTime:Li(t||null)})}function hh(t,e,n,i,r,o){qi(this,{uid:t,displayName:i||null,photoURL:r||null,email:n||null,phoneNumber:o||null,providerId:e})}function lh(t,e,n){this.N=[],this.l=t.apiKey,this.m=t.appName,this.s=t.authDomain||null;var i,r=Zl.default.SDK_VERSION?gi(Zl.default.SDK_VERSION):null;this.a=new qa(this.l,_(A),r),(this.u=t.emulatorConfig||null)&&Ya(this.a,this.u),this.h=new oh(this.a),wh(this,e[Ka]),sh(this.h,e),Fi(this,"refreshToken",this.h.a),Eh(this,n||{}),fn.call(this),this.P=!1,this.s&&Ii()&&(this.b=xc(this.s,this.l,this.m,this.u)),this.W=[],this.i=null,this.D=(i=this,new ih(function(){return i.I(!0)},function(t){return!(!t||"auth/network-request-failed"!=t.code)},function(){var t=i.h.c-Date.now()-3e5;return 0this.c-3e4?this.a?uh(this,{grant_type:"refresh_token",refresh_token:this.a}):ye(null):ye({accessToken:this.b.toString(),refreshToken:this.a})},ch.prototype.w=function(){return{lastLoginAt:this.b,createdAt:this.a}},w(lh,fn),lh.prototype.xa=function(t){this.za=t,Ja(this.a,t)},lh.prototype.la=function(){return this.za},lh.prototype.Ga=function(){return X(this.aa)},lh.prototype.ib=function(){this.D.b&&(this.D.stop(),this.D.start())},Fi(lh.prototype,"providerId","firebase"),(t=lh.prototype).reload=function(){var t=this;return Vh(this,kh(this).then(function(){return Rh(t).then(function(){return Ih(t)}).then(Ah)}))},t.oc=function(t){return this.I(t).then(function(t){return new Bc(t)})},t.I=function(t){var e=this;return Vh(this,kh(this).then(function(){return e.h.getToken(t)}).then(function(t){if(!t)throw new T("internal-error");return t.accessToken!=e.Aa&&(wh(e,t.accessToken),e.dispatchEvent(new th("tokenChanged"))),Oh(e,"refreshToken",t.refreshToken),t.accessToken}))},t.Kc=function(t){if(!(t=t.users)||!t.length)throw new T("internal-error");Eh(this,{uid:(t=t[0]).localId,displayName:t.displayName,photoURL:t.photoUrl,email:t.email,emailVerified:!!t.emailVerified,phoneNumber:t.phoneNumber,lastLoginAt:t.lastLoginAt,createdAt:t.createdAt,tenantId:t.tenantId});for(var e,n=(e=(e=t).providerUserInfo)&&e.length?q(e,function(t){return new hh(t.rawId,t.providerId,t.email,t.displayName,t.photoUrl,t.phoneNumber)}):[],i=0;i=xl.length)throw new T("internal-error","Argument validator received an unsupported number of arguments.");n=xl[r],i=(i?"":n+" argument ")+(e.name?'"'+e.name+'" ':"")+"must be "+e.K+".";break t}i=null}}if(i)throw new T("argument-error",t+" failed: "+i)}(t=kl.prototype).Ia=function(){var e=this;return this.f||(this.f=Rl(this,ye().then(function(){if(Ti()&&!hi())return si();throw new T("operation-not-supported-in-this-environment","RecaptchaVerifier is only supported in a browser HTTP/HTTPS environment.")}).then(function(){return e.m.g(e.u())}).then(function(t){return e.g=t,Js(e.s,Rs,{})}).then(function(t){e.a[_l]=t.recaptchaSiteKey}).o(function(t){throw e.f=null,t})))},t.render=function(){Dl(this);var n=this;return Rl(this,this.Ia().then(function(){var t,e;return null===n.c&&(e=n.v,n.i||(t=te(e),e=oe("DIV"),t.appendChild(e)),n.c=n.g.render(e,n.a)),n.c}))},t.verify=function(){Dl(this);var r=this;return Rl(this,this.render().then(function(e){return new fe(function(n){var i,t=r.g.getResponse(e);t?n(t):(r.l.push(i=function(t){var e;t&&(e=i,B(r.l,function(t){return t==e}),n(t))}),r.i&&r.g.execute(r.c))})}))},t.reset=function(){Dl(this),null!==this.c&&this.g.reset(this.c)},t.clear=function(){Dl(this),this.J=!0,this.m.c();for(var t,e=0;es[0]&&e[1]>6|192:(55296==(64512&i)&&r+1>18|240,e[n++]=i>>12&63|128):e[n++]=i>>12|224,e[n++]=i>>6&63|128),e[n++]=63&i|128)}return e}function u(t){return function(t){t=i(t);return o.encodeByteArray(t,!0)}(t).replace(/\./g,"")}var o={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray:function(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();for(var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[],i=0;i>6,c=63&c;u||(c=64,s||(h=64)),r.push(n[o>>2],n[(3&o)<<4|a>>4],n[h],n[c])}return r.join("")},encodeString:function(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(i(t),e)},decodeString:function(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){for(var e=[],n=0,r=0;n>10)),e[r++]=String.fromCharCode(56320+(1023&i))):(o=t[n++],s=t[n++],e[r++]=String.fromCharCode((15&a)<<12|(63&o)<<6|63&s))}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray:function(t,e){this.init_();for(var n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[],i=0;i>4),64!==a&&(r.push(s<<4&240|a>>2),64!==u&&r.push(a<<6&192|u))}return r},init_:function(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(var t=0;t=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}};function h(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function c(){return!function(){try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(t){return}}()&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}var l,f="FirebaseError",d=(n(p,l=Error),p);function p(t,e,n){e=l.call(this,e)||this;return e.code=t,e.customData=n,e.name=f,Object.setPrototypeOf(e,p.prototype),Error.captureStackTrace&&Error.captureStackTrace(e,m.prototype.create),e}var m=(v.prototype.create=function(t){for(var e=[],n=1;n"})):"Error",t=this.serviceName+": "+t+" ("+o+").";return new d(o,t,i)},v);function v(t,e,n){this.service=t,this.serviceName=e,this.errors=n}var w,b=/\{\$([^}]+)}/g;function E(t){return t&&t._delegate?t._delegate:t}(k=w=w||{})[k.DEBUG=0]="DEBUG",k[k.VERBOSE=1]="VERBOSE",k[k.INFO=2]="INFO",k[k.WARN=3]="WARN",k[k.ERROR=4]="ERROR",k[k.SILENT=5]="SILENT";function T(t,e){for(var n=[],r=2;r=t.length?void 0:t)&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}var k,R="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},x={},O=R||self;function L(){}function P(t){var e=typeof t;return"array"==(e="object"!=e?e:t?Array.isArray(t)?"array":e:"null")||"object"==e&&"number"==typeof t.length}function M(t){var e=typeof t;return"object"==e&&null!=t||"function"==e}var F="closure_uid_"+(1e9*Math.random()>>>0),V=0;function U(t,e,n){return t.call.apply(t.bind,arguments)}function q(e,n,t){if(!e)throw Error();if(2parseFloat(yt)){at=String(gt);break t}}at=yt}var mt={};function vt(){return t=function(){for(var t=0,e=J(String(at)).split("."),n=J("9").split("."),r=Math.max(e.length,n.length),i=0;0==t&&i>>0);function qt(e){return"function"==typeof e?e:(e[Ut]||(e[Ut]=function(t){return e.handleEvent(t)}),e[Ut])}function Bt(){G.call(this),this.i=new Nt(this),(this.P=this).I=null}function jt(t,e){var n,r=t.I;if(r)for(n=[];r;r=r.I)n.push(r);if(t=t.P,r=e.type||e,"string"==typeof e?e=new Et(e,t):e instanceof Et?e.target=e.target||t:(s=e,ot(e=new Et(r,t),s)),s=!0,n)for(var i=n.length-1;0<=i;i--)var o=e.g=n[i],s=Kt(o,r,!0,e)&&s;if(s=Kt(o=e.g=t,r,!0,e)&&s,s=Kt(o,r,!1,e)&&s,n)for(i=0;io.length?Pe:(o=o.substr(a,s),i.C=a+s,o)))==Pe){4==e&&(t.o=4,be(14),u=!1),de(t.j,t.m,null,"[Incomplete Response]");break}if(r==Le){t.o=4,be(15),de(t.j,t.m,n,"[Invalid Chunk]"),u=!1;break}de(t.j,t.m,r,null),Qe(t,r)}Ve(t)&&r!=Pe&&r!=Le&&(t.h.g="",t.C=0),4!=e||0!=n.length||t.h.h||(t.o=1,be(16),u=!1),t.i=t.i&&u,u?0>4&15).toString(16)+(15&t).toString(16)}$e.prototype.toString=function(){var t=[],e=this.j;e&&t.push(an(e,cn,!0),":");var n=this.i;return!n&&"file"!=e||(t.push("//"),(e=this.s)&&t.push(an(e,cn,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.m)&&t.push(":",String(n))),(n=this.l)&&(this.i&&"/"!=n.charAt(0)&&t.push("/"),t.push(an(n,"/"==n.charAt(0)?ln:hn,!0))),(n=this.h.toString())&&t.push("?",n),(n=this.o)&&t.push("#",an(n,dn)),t.join("")};var cn=/[#\/\?@]/g,hn=/[#\?:]/g,ln=/[#\?]/g,fn=/[#\?@]/g,dn=/#/g;function pn(t,e){this.h=this.g=null,this.i=t||null,this.j=!!e}function yn(n){n.g||(n.g=new ze,n.h=0,n.i&&function(t,e){if(t){t=t.split("&");for(var n=0;n2*t.i&&We(t)))}function mn(t,e){return yn(t),e=wn(t,e),Ye(t.g.h,e)}function vn(t,e,n){gn(t,e),0=t.j}function Sn(t){return t.h?1:t.g?t.g.size:0}function An(t,e){return t.h?t.h==e:t.g&&t.g.has(e)}function Dn(t,e){t.g?t.g.add(e):t.h=e}function Nn(t,e){t.h&&t.h==e?t.h=null:t.g&&t.g.has(e)&&t.g.delete(e)}function Cn(t){var e,n;if(null!=t.h)return t.i.concat(t.h.D);if(null==t.g||0===t.g.size)return Y(t.i);var r=t.i;try{for(var i=C(t.g.values()),o=i.next();!o.done;o=i.next())var s=o.value,r=r.concat(s.D)}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}return r}function kn(){}function Rn(){this.g=new kn}function xn(t,e,n,r,i){try{e.onload=null,e.onerror=null,e.onabort=null,e.ontimeout=null,i(r)}catch(t){}}function On(t){this.l=t.$b||null,this.j=t.ib||!1}function Ln(t,e){Bt.call(this),this.D=t,this.u=e,this.m=void 0,this.readyState=Pn,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.v=new Headers,this.h=null,this.C="GET",this.B="",this.g=!1,this.A=this.j=this.l=null}En.prototype.cancel=function(){var e,t;if(this.i=Cn(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){try{for(var n=C(this.g.values()),r=n.next();!r.done;r=n.next())r.value.cancel()}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}this.g.clear()}},kn.prototype.stringify=function(t){return O.JSON.stringify(t,void 0)},kn.prototype.parse=function(t){return O.JSON.parse(t,void 0)},K(On,_e),On.prototype.g=function(){return new Ln(this.l,this.j)},On.prototype.i=(Tn={},function(){return Tn}),K(Ln,Bt);var Pn=0;function Mn(t){t.j.read().then(t.Sa.bind(t)).catch(t.ha.bind(t))}function Fn(t){t.readyState=4,t.l=null,t.j=null,t.A=null,Vn(t)}function Vn(t){t.onreadystatechange&&t.onreadystatechange.call(t)}(k=Ln.prototype).open=function(t,e){if(this.readyState!=Pn)throw this.abort(),Error("Error reopening a connection");this.C=t,this.B=e,this.readyState=1,Vn(this)},k.send=function(t){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;var e={headers:this.v,method:this.C,credentials:this.m,cache:void 0};t&&(e.body=t),(this.D||O).fetch(new Request(this.B,e)).then(this.Va.bind(this),this.ha.bind(this))},k.abort=function(){this.response=this.responseText="",this.v=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted."),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Fn(this)),this.readyState=Pn},k.Va=function(t){if(this.g&&(this.l=t,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=t.headers,this.readyState=2,Vn(this)),this.g&&(this.readyState=3,Vn(this),this.g)))if("arraybuffer"===this.responseType)t.arrayBuffer().then(this.Ta.bind(this),this.ha.bind(this));else if(void 0!==O.ReadableStream&&"body"in t){if(this.j=t.body.getReader(),this.u){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.A=new TextDecoder;Mn(this)}else t.text().then(this.Ua.bind(this),this.ha.bind(this))},k.Sa=function(t){var e;this.g&&(this.u&&t.value?this.response.push(t.value):this.u||(e=t.value||new Uint8Array(0),(e=this.A.decode(e,{stream:!t.done}))&&(this.response=this.responseText+=e)),(t.done?Fn:Vn)(this),3==this.readyState&&Mn(this))},k.Ua=function(t){this.g&&(this.response=this.responseText=t,Fn(this))},k.Ta=function(t){this.g&&(this.response=t,Fn(this))},k.ha=function(){this.g&&Fn(this)},k.setRequestHeader=function(t,e){this.v.append(t,e)},k.getResponseHeader=function(t){return this.h&&this.h.get(t.toLowerCase())||""},k.getAllResponseHeaders=function(){if(!this.h)return"";for(var t=[],e=this.h.entries(),n=e.next();!n.done;)n=n.value,t.push(n[0]+": "+n[1]),n=e.next();return t.join("\r\n")},Object.defineProperty(Ln.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(t){this.m=t?"include":"same-origin"}});var Un=O.JSON.parse;function qn(t){Bt.call(this),this.headers=new ze,this.u=t||null,this.h=!1,this.C=this.g=null,this.H="",this.m=0,this.j="",this.l=this.F=this.v=this.D=!1,this.B=0,this.A=null,this.J=Bn,this.K=this.L=!1}K(qn,Bt);var Bn="",jn=/^https?$/i,Kn=["POST","PUT"];function Gn(t){return"content-type"==t.toLowerCase()}function Qn(t,e){t.h=!1,t.g&&(t.l=!0,t.g.abort(),t.l=!1),t.j=e,t.m=5,Hn(t),Wn(t)}function Hn(t){t.D||(t.D=!0,jt(t,"complete"),jt(t,"error"))}function zn(t){if(t.h&&void 0!==x&&(!t.C[1]||4!=Xn(t)||2!=t.ba()))if(t.v&&4==Xn(t))ie(t.Fa,0,t);else if(jt(t,"readystatechange"),4==Xn(t)){t.h=!1;try{var e,n,r,i,o=t.ba();t:switch(o){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var s=!0;break t;default:s=!1}if((e=s)||((n=0===o)&&(!(i=String(t.H).match(Xe)[1]||null)&&O.self&&O.self.location&&(i=(r=O.self.location.protocol).substr(0,r.length-1)),n=!jn.test(i?i.toLowerCase():"")),e=n),e)jt(t,"complete"),jt(t,"success");else{t.m=6;try{var a=2=r.i.j-(r.m?1:0)||(r.m?(r.l=i.D.concat(r.l),0):1==r.G||2==r.G||r.C>=(r.Xa?0:r.Ya)||(r.m=Te(B(r.Ha,r,i),yr(r,r.C)),r.C++,0))))&&(2!=s||!hr(t)))switch(o&&0e.length?1:0},vi),ci=(n(mi,ui=R),mi.prototype.construct=function(t,e,n){return new mi(t,e,n)},mi.prototype.canonicalString=function(){return this.toArray().join("/")},mi.prototype.toString=function(){return this.canonicalString()},mi.fromString=function(){for(var t=[],e=0;et.length&&zr(),void 0===n?n=t.length-e:n>t.length-e&&zr(),this.segments=t,this.offset=e,this.len=n}di.EMPTY_BYTE_STRING=new di("");var wi=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function bi(t){if(Wr(!!t),"string"!=typeof t)return{seconds:Ei(t.seconds),nanos:Ei(t.nanos)};var e=0,n=wi.exec(t);Wr(!!n),n[1]&&(n=((n=n[1])+"000000000").substr(0,9),e=Number(n));t=new Date(t);return{seconds:Math.floor(t.getTime()/1e3),nanos:e}}function Ei(t){return"number"==typeof t?t:"string"==typeof t?Number(t):0}function Ti(t){return"string"==typeof t?di.fromBase64String(t):di.fromUint8Array(t)}function Ii(t){return"server_timestamp"===(null===(t=((null===(t=null==t?void 0:t.mapValue)||void 0===t?void 0:t.fields)||{}).__type__)||void 0===t?void 0:t.stringValue)}function _i(t){t=bi(t.mapValue.fields.__local_write_time__.timestampValue);return new ti(t.seconds,t.nanos)}function Si(t){return null==t}function Ai(t){return 0===t&&1/t==-1/0}function Di(t){return"number"==typeof t&&Number.isInteger(t)&&!Ai(t)&&t<=Number.MAX_SAFE_INTEGER&&t>=Number.MIN_SAFE_INTEGER}var Ni=(Ci.fromPath=function(t){return new Ci(ci.fromString(t))},Ci.fromName=function(t){return new Ci(ci.fromString(t).popFirst(5))},Ci.prototype.hasCollectionId=function(t){return 2<=this.path.length&&this.path.get(this.path.length-2)===t},Ci.prototype.isEqual=function(t){return null!==t&&0===ci.comparator(this.path,t.path)},Ci.prototype.toString=function(){return this.path.toString()},Ci.comparator=function(t,e){return ci.comparator(t.path,e.path)},Ci.isDocumentKey=function(t){return t.length%2==0},Ci.fromSegments=function(t){return new Ci(new ci(t.slice()))},Ci);function Ci(t){this.path=t}function ki(t){return"nullValue"in t?0:"booleanValue"in t?1:"integerValue"in t||"doubleValue"in t?2:"timestampValue"in t?3:"stringValue"in t?5:"bytesValue"in t?6:"referenceValue"in t?7:"geoPointValue"in t?8:"arrayValue"in t?9:"mapValue"in t?Ii(t)?4:10:zr()}function Ri(r,i){var t,e,n=ki(r);if(n!==ki(i))return!1;switch(n){case 0:return!0;case 1:return r.booleanValue===i.booleanValue;case 4:return _i(r).isEqual(_i(i));case 3:return function(t){if("string"==typeof r.timestampValue&&"string"==typeof t.timestampValue&&r.timestampValue.length===t.timestampValue.length)return r.timestampValue===t.timestampValue;var e=bi(r.timestampValue),t=bi(t.timestampValue);return e.seconds===t.seconds&&e.nanos===t.nanos}(i);case 5:return r.stringValue===i.stringValue;case 6:return e=i,Ti(r.bytesValue).isEqual(Ti(e.bytesValue));case 7:return r.referenceValue===i.referenceValue;case 8:return t=i,Ei((e=r).geoPointValue.latitude)===Ei(t.geoPointValue.latitude)&&Ei(e.geoPointValue.longitude)===Ei(t.geoPointValue.longitude);case 2:return function(t,e){if("integerValue"in t&&"integerValue"in e)return Ei(t.integerValue)===Ei(e.integerValue);if("doubleValue"in t&&"doubleValue"in e){t=Ei(t.doubleValue),e=Ei(e.doubleValue);return t===e?Ai(t)===Ai(e):isNaN(t)&&isNaN(e)}return!1}(r,i);case 9:return Jr(r.arrayValue.values||[],i.arrayValue.values||[],Ri);case 10:return function(){var t,e=r.mapValue.fields||{},n=i.mapValue.fields||{};if(ii(e)!==ii(n))return!1;for(t in e)if(e.hasOwnProperty(t)&&(void 0===n[t]||!Ri(e[t],n[t])))return!1;return!0}();default:return zr()}}function xi(t,e){return void 0!==(t.values||[]).find(function(t){return Ri(t,e)})}function Oi(t,e){var n,r,i,o=ki(t),s=ki(e);if(o!==s)return $r(o,s);switch(o){case 0:return 0;case 1:return $r(t.booleanValue,e.booleanValue);case 2:return r=e,i=Ei(t.integerValue||t.doubleValue),r=Ei(r.integerValue||r.doubleValue),i":return 0=":return 0<=t;default:return zr()}},to.prototype.g=function(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)},to);function to(t,e,n){var r=this;return(r=Ji.call(this)||this).field=t,r.op=e,r.value=n,r}var eo,no,ro,io=(n(co,ro=Zi),co.prototype.matches=function(t){t=Ni.comparator(t.key,this.key);return this.m(t)},co),oo=(n(uo,no=Zi),uo.prototype.matches=function(e){return this.keys.some(function(t){return t.isEqual(e.key)})},uo),so=(n(ao,eo=Zi),ao.prototype.matches=function(e){return!this.keys.some(function(t){return t.isEqual(e.key)})},ao);function ao(t,e){var n=this;return(n=eo.call(this,t,"not-in",e)||this).keys=ho(0,e),n}function uo(t,e){var n=this;return(n=no.call(this,t,"in",e)||this).keys=ho(0,e),n}function co(t,e,n){var r=this;return(r=ro.call(this,t,e,n)||this).key=Ni.fromName(n.referenceValue),r}function ho(t,e){return((null===(e=e.arrayValue)||void 0===e?void 0:e.values)||[]).map(function(t){return Ni.fromName(t.referenceValue)})}var lo,fo,po,yo,go=(n(_o,yo=Zi),_o.prototype.matches=function(t){t=t.data.field(this.field);return Vi(t)&&xi(t.arrayValue,this.value)},_o),mo=(n(Io,po=Zi),Io.prototype.matches=function(t){t=t.data.field(this.field);return null!==t&&xi(this.value.arrayValue,t)},Io),vo=(n(To,fo=Zi),To.prototype.matches=function(t){if(xi(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;t=t.data.field(this.field);return null!==t&&!xi(this.value.arrayValue,t)},To),wo=(n(Eo,lo=Zi),Eo.prototype.matches=function(t){var e=this,t=t.data.field(this.field);return!(!Vi(t)||!t.arrayValue.values)&&t.arrayValue.values.some(function(t){return xi(e.value.arrayValue,t)})},Eo),bo=function(t,e){this.position=t,this.before=e};function Eo(t,e){return lo.call(this,t,"array-contains-any",e)||this}function To(t,e){return fo.call(this,t,"not-in",e)||this}function Io(t,e){return po.call(this,t,"in",e)||this}function _o(t,e){return yo.call(this,t,"array-contains",e)||this}function So(t){return(t.before?"b":"a")+":"+t.position.map(Pi).join(",")}var Ao=function(t,e){void 0===e&&(e="asc"),this.field=t,this.dir=e};function Do(t,e,n){for(var r=0,i=0;i":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},ga=function(t,e){this.databaseId=t,this.I=e};function ma(t,e){return t.I?new Date(1e3*e.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")+"."+("000000000"+e.nanoseconds).slice(-9)+"Z":{seconds:""+e.seconds,nanos:e.nanoseconds}}function va(t,e){return t.I?e.toBase64():e.toUint8Array()}function wa(t){return Wr(!!t),ei.fromTimestamp((t=bi(t),new ti(t.seconds,t.nanos)))}function ba(t,e){return new ci(["projects",t.projectId,"databases",t.database]).child("documents").child(e).canonicalString()}function Ea(t){t=ci.fromString(t);return Wr(Ba(t)),t}function Ta(t,e){return ba(t.databaseId,e.path)}function Ia(t,e){e=Ea(e);if(e.get(1)!==t.databaseId.projectId)throw new Ur(Vr.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+e.get(1)+" vs "+t.databaseId.projectId);if(e.get(3)!==t.databaseId.database)throw new Ur(Vr.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+e.get(3)+" vs "+t.databaseId.database);return new Ni(Da(e))}function _a(t,e){return ba(t.databaseId,e)}function Sa(t){t=Ea(t);return 4===t.length?ci.emptyPath():Da(t)}function Aa(t){return new ci(["projects",t.databaseId.projectId,"databases",t.databaseId.database]).canonicalString()}function Da(t){return Wr(4";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";case"OPERATOR_UNSPECIFIED":default:return zr()}}(),t.fieldFilter.value)}function qa(t){switch(t.unaryFilter.op){case"IS_NAN":var e=Va(t.unaryFilter.field);return Zi.create(e,"==",{doubleValue:NaN});case"IS_NULL":e=Va(t.unaryFilter.field);return Zi.create(e,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":var n=Va(t.unaryFilter.field);return Zi.create(n,"!=",{doubleValue:NaN});case"IS_NOT_NULL":n=Va(t.unaryFilter.field);return Zi.create(n,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":default:return zr()}}function Ba(t){return 4<=t.length&&"projects"===t.get(0)&&"databases"===t.get(2)}function ja(t){for(var e="",n=0;n",t),this.store.put(t));return Au(t)},Su.prototype.add=function(t){return Kr("SimpleDb","ADD",this.store.name,t,t),Au(this.store.add(t))},Su.prototype.get=function(e){var n=this;return Au(this.store.get(e)).next(function(t){return Kr("SimpleDb","GET",n.store.name,e,t=void 0===t?null:t),t})},Su.prototype.delete=function(t){return Kr("SimpleDb","DELETE",this.store.name,t),Au(this.store.delete(t))},Su.prototype.count=function(){return Kr("SimpleDb","COUNT",this.store.name),Au(this.store.count())},Su.prototype.Nt=function(t,e){var e=this.cursor(this.options(t,e)),n=[];return this.xt(e,function(t,e){n.push(e)}).next(function(){return n})},Su.prototype.kt=function(t,e){Kr("SimpleDb","DELETE ALL",this.store.name);e=this.options(t,e);e.Ft=!1;e=this.cursor(e);return this.xt(e,function(t,e,n){return n.delete()})},Su.prototype.$t=function(t,e){e?n=t:(n={},e=t);var n=this.cursor(n);return this.xt(n,e)},Su.prototype.Ot=function(r){var t=this.cursor({});return new fu(function(n,e){t.onerror=function(t){t=Nu(t.target.error);e(t)},t.onsuccess=function(t){var e=t.target.result;e?r(e.primaryKey,e.value).next(function(t){t?e.continue():n()}):n()}})},Su.prototype.xt=function(t,i){var o=[];return new fu(function(r,e){t.onerror=function(t){e(t.target.error)},t.onsuccess=function(t){var e,n=t.target.result;n?(e=new yu(n),(t=i(n.primaryKey,n.value,e))instanceof fu&&(t=t.catch(function(t){return e.done(),fu.reject(t)}),o.push(t)),e.isDone?r():null===e.Dt?n.continue():n.continue(e.Dt)):r()}}).next(function(){return fu.waitFor(o)})},Su.prototype.options=function(t,e){var n;return void 0!==t&&("string"==typeof t?n=t:e=t),{index:n,range:e}},Su.prototype.cursor=function(t){var e="next";if(t.reverse&&(e="prev"),t.index){var n=this.store.index(t.index);return t.Ft?n.openKeyCursor(t.range,e):n.openCursor(t.range,e)}return this.store.openCursor(t.range,e)},Su);function Su(t){this.store=t}function Au(t){return new fu(function(e,n){t.onsuccess=function(t){t=t.target.result;e(t)},t.onerror=function(t){t=Nu(t.target.error);n(t)}})}var Du=!1;function Nu(t){var e=pu._t(h());if(12.2<=e&&e<13){e="An internal error was encountered in the Indexed Database server";if(0<=t.message.indexOf(e)){var n=new Ur("internal","IOS_INDEXEDDB_BUG1: IndexedDb has thrown '"+e+"'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.");return Du||(Du=!0,setTimeout(function(){throw n},0)),n}}return t}var Cu,ku=(n(Ru,Cu=R),Ru);function Ru(t,e){var n=this;return(n=Cu.call(this)||this).Mt=t,n.currentSequenceNumber=e,n}function xu(t,e){return pu.It(t.Mt,e)}var Ou=(Uu.prototype.applyToRemoteDocument=function(t,e){for(var n,r,i,o,s,a,u=e.mutationResults,c=0;c=i),o=Hu(r.R,e)),n.done()}).next(function(){return o})},dc.prototype.getHighestUnacknowledgedBatchId=function(t){var e=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]),r=-1;return yc(t).$t({index:Wa.userMutationsIndex,range:e,reverse:!0},function(t,e,n){r=e.batchId,n.done()}).next(function(){return r})},dc.prototype.getAllMutationBatches=function(t){var e=this,n=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return yc(t).Nt(Wa.userMutationsIndex,n).next(function(t){return t.map(function(t){return Hu(e.R,t)})})},dc.prototype.getAllMutationBatchesAffectingDocumentKey=function(o,s){var a=this,t=Ya.prefixForPath(this.userId,s.path),t=IDBKeyRange.lowerBound(t),u=[];return gc(o).$t({range:t},function(t,e,n){var r=t[0],i=t[1],t=t[2],i=Ga(i);if(r===a.userId&&s.path.isEqual(i))return yc(o).get(t).next(function(t){if(!t)throw zr();Wr(t.userId===a.userId),u.push(Hu(a.R,t))});n.done()}).next(function(){return u})},dc.prototype.getAllMutationBatchesAffectingDocumentKeys=function(e,t){var s=this,a=new Qs($r),n=[];return t.forEach(function(o){var t=Ya.prefixForPath(s.userId,o.path),t=IDBKeyRange.lowerBound(t),t=gc(e).$t({range:t},function(t,e,n){var r=t[0],i=t[1],t=t[2],i=Ga(i);r===s.userId&&o.path.isEqual(i)?a=a.add(t):n.done()});n.push(t)}),fu.waitFor(n).next(function(){return s.Wt(e,a)})},dc.prototype.getAllMutationBatchesAffectingQuery=function(t,e){var o=this,s=e.path,a=s.length+1,e=Ya.prefixForPath(this.userId,s),e=IDBKeyRange.lowerBound(e),u=new Qs($r);return gc(t).$t({range:e},function(t,e,n){var r=t[0],i=t[1],t=t[2],i=Ga(i);r===o.userId&&s.isPrefixOf(i)?i.length===a&&(u=u.add(t)):n.done()}).next(function(){return o.Wt(t,u)})},dc.prototype.Wt=function(e,t){var n=this,r=[],i=[];return t.forEach(function(t){i.push(yc(e).get(t).next(function(t){if(null===t)throw zr();Wr(t.userId===n.userId),r.push(Hu(n.R,t))}))}),fu.waitFor(i).next(function(){return r})},dc.prototype.removeMutationBatch=function(e,n){var r=this;return hc(e.Mt,this.userId,n).next(function(t){return e.addOnCommittedListener(function(){r.Gt(n.batchId)}),fu.forEach(t,function(t){return r.referenceDelegate.markPotentiallyOrphaned(e,t)})})},dc.prototype.Gt=function(t){delete this.Kt[t]},dc.prototype.performConsistencyCheck=function(e){var i=this;return this.checkEmpty(e).next(function(t){if(!t)return fu.resolve();var t=IDBKeyRange.lowerBound(Ya.prefixForUser(i.userId)),r=[];return gc(e).$t({range:t},function(t,e,n){t[0]===i.userId?(t=Ga(t[1]),r.push(t)):n.done()}).next(function(){Wr(0===r.length)})})},dc.prototype.containsKey=function(t,e){return pc(t,this.userId,e)},dc.prototype.zt=function(t){var e=this;return mc(t).get(this.userId).next(function(t){return t||new za(e.userId,-1,"")})},dc);function dc(t,e,n,r){this.userId=t,this.R=e,this.Ut=n,this.referenceDelegate=r,this.Kt={}}function pc(t,o,e){var e=Ya.prefixForPath(o,e.path),s=e[1],e=IDBKeyRange.lowerBound(e),a=!1;return gc(t).$t({range:e,Ft:!0},function(t,e,n){var r=t[0],i=t[1];t[2],r===o&&i===s&&(a=!0),n.done()}).next(function(){return a})}function yc(t){return xu(t,Wa.store)}function gc(t){return xu(t,Ya.store)}function mc(t){return xu(t,za.store)}var vc=(Ec.prototype.next=function(){return this.Ht+=2,this.Ht},Ec.Jt=function(){return new Ec(0)},Ec.Yt=function(){return new Ec(-1)},Ec),wc=(bc.prototype.allocateTargetId=function(n){var r=this;return this.Xt(n).next(function(t){var e=new vc(t.highestTargetId);return t.highestTargetId=e.next(),r.Zt(n,t).next(function(){return t.highestTargetId})})},bc.prototype.getLastRemoteSnapshotVersion=function(t){return this.Xt(t).next(function(t){return ei.fromTimestamp(new ti(t.lastRemoteSnapshotVersion.seconds,t.lastRemoteSnapshotVersion.nanoseconds))})},bc.prototype.getHighestSequenceNumber=function(t){return this.Xt(t).next(function(t){return t.highestListenSequenceNumber})},bc.prototype.setTargetsMetadata=function(e,n,r){var i=this;return this.Xt(e).next(function(t){return t.highestListenSequenceNumber=n,r&&(t.lastRemoteSnapshotVersion=r.toTimestamp()),n>t.highestListenSequenceNumber&&(t.highestListenSequenceNumber=n),i.Zt(e,t)})},bc.prototype.addTargetData=function(e,n){var r=this;return this.te(e,n).next(function(){return r.Xt(e).next(function(t){return t.targetCount+=1,r.ee(n,t),r.Zt(e,t)})})},bc.prototype.updateTargetData=function(t,e){return this.te(t,e)},bc.prototype.removeTargetData=function(e,t){var n=this;return this.removeMatchingKeysForTargetId(e,t.targetId).next(function(){return Tc(e).delete(t.targetId)}).next(function(){return n.Xt(e)}).next(function(t){return Wr(0e.highestTargetId&&(e.highestTargetId=t.targetId,n=!0),t.sequenceNumber>e.highestListenSequenceNumber&&(e.highestListenSequenceNumber=t.sequenceNumber,n=!0),n},bc.prototype.getTargetCount=function(t){return this.Xt(t).next(function(t){return t.targetCount})},bc.prototype.getTargetData=function(t,r){var e=Yi(r),e=IDBKeyRange.bound([e,Number.NEGATIVE_INFINITY],[e,Number.POSITIVE_INFINITY]),i=null;return Tc(t).$t({range:e,index:eu.queryTargetsIndexName},function(t,e,n){e=zu(e);Xi(r,e.target)&&(i=e,n.done())}).next(function(){return i})},bc.prototype.addMatchingKeys=function(n,t,r){var i=this,o=[],s=_c(n);return t.forEach(function(t){var e=ja(t.path);o.push(s.put(new nu(r,e))),o.push(i.referenceDelegate.addReference(n,r,t))}),fu.waitFor(o)},bc.prototype.removeMatchingKeys=function(n,t,r){var i=this,o=_c(n);return fu.forEach(t,function(t){var e=ja(t.path);return fu.waitFor([o.delete([r,e]),i.referenceDelegate.removeReference(n,r,t)])})},bc.prototype.removeMatchingKeysForTargetId=function(t,e){t=_c(t),e=IDBKeyRange.bound([e],[e+1],!1,!0);return t.delete(e)},bc.prototype.getMatchingKeysForTargetId=function(t,e){var e=IDBKeyRange.bound([e],[e+1],!1,!0),t=_c(t),r=Zs();return t.$t({range:e,Ft:!0},function(t,e,n){t=Ga(t[1]),t=new Ni(t);r=r.add(t)}).next(function(){return r})},bc.prototype.containsKey=function(t,e){var e=ja(e.path),e=IDBKeyRange.bound([e],[Zr(e)],!1,!0),i=0;return _c(t).$t({index:nu.documentTargetsIndex,Ft:!0,range:e},function(t,e,n){var r=t[0];t[1],0!==r&&(i++,n.done())}).next(function(){return 0h.params.maximumSequenceNumbersToCollect?(Kr("LruGarbageCollector","Capping sequence numbers to collect down to the maximum of "+h.params.maximumSequenceNumbersToCollect+" from "+t),h.params.maximumSequenceNumbersToCollect):t,s=Date.now(),h.nthSequenceNumber(e,i)}).next(function(t){return r=t,a=Date.now(),h.removeTargets(e,r,n)}).next(function(t){return o=t,u=Date.now(),h.removeOrphanedDocuments(e,r)}).next(function(t){return c=Date.now(),jr()<=w.DEBUG&&Kr("LruGarbageCollector","LRU Garbage Collection\n\tCounted targets in "+(s-l)+"ms\n\tDetermined least recently used "+i+" in "+(a-s)+"ms\n\tRemoved "+o+" targets in "+(u-a)+"ms\n\tRemoved "+t+" documents in "+(c-u)+"ms\nTotal Duration: "+(c-l)+"ms"),fu.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:o,documentsRemoved:t})})},xc),kc=(Rc.prototype.he=function(t){var n=this.de(t);return this.db.getTargetCache().getTargetCount(t).next(function(e){return n.next(function(t){return e+t})})},Rc.prototype.de=function(t){var e=0;return this.le(t,function(t){e++}).next(function(){return e})},Rc.prototype.forEachTarget=function(t,e){return this.db.getTargetCache().forEachTarget(t,e)},Rc.prototype.le=function(t,n){return this.we(t,function(t,e){return n(e)})},Rc.prototype.addReference=function(t,e,n){return Pc(t,n)},Rc.prototype.removeReference=function(t,e,n){return Pc(t,n)},Rc.prototype.removeTargets=function(t,e,n){return this.db.getTargetCache().removeTargets(t,e,n)},Rc.prototype.markPotentiallyOrphaned=Pc,Rc.prototype._e=function(t,e){return r=e,i=!1,mc(n=t).Ot(function(t){return pc(n,t,r).next(function(t){return t&&(i=!0),fu.resolve(!t)})}).next(function(){return i});var n,r,i},Rc.prototype.removeOrphanedDocuments=function(n,r){var i=this,o=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[],a=0;return this.we(n,function(e,t){t<=r&&(t=i._e(n,e).next(function(t){if(!t)return a++,o.getEntry(n,e).next(function(){return o.removeEntry(e),_c(n).delete([0,ja(e.path)])})}),s.push(t))}).next(function(){return fu.waitFor(s)}).next(function(){return o.apply(n)}).next(function(){return a})},Rc.prototype.removeTarget=function(t,e){e=e.withSequenceNumber(t.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(t,e)},Rc.prototype.updateLimboDocument=Pc,Rc.prototype.we=function(t,r){var i,t=_c(t),o=Pr.o;return t.$t({index:nu.documentTargetsIndex},function(t,e){var n=t[0];t[1];t=e.path,e=e.sequenceNumber;0===n?(o!==Pr.o&&r(new Ni(Ga(i)),o),o=e,i=t):o=Pr.o}).next(function(){o!==Pr.o&&r(new Ni(Ga(i)),o)})},Rc.prototype.getCacheSize=function(t){return this.db.getRemoteDocumentCache().getSize(t)},Rc);function Rc(t,e){this.db=t,this.garbageCollector=new Cc(this,e)}function xc(t,e){this.ae=t,this.params=e}function Oc(t,e){this.garbageCollector=t,this.asyncQueue=e,this.oe=!1,this.ce=null}function Lc(t){this.ne=t,this.buffer=new Qs(Ac),this.se=0}function Pc(t,e){return _c(t).put((t=t.currentSequenceNumber,new nu(0,ja(e.path),t)))}var Mc,Fc=(Kc.prototype.get=function(t){var e=this.mapKeyFn(t),e=this.inner[e];if(void 0!==e)for(var n=0,r=e;n "+n),1))},Jc.prototype.We=function(){var t=this;null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Fe=function(){t.Se.enqueueAndForget(function(){return t.inForeground="visible"===t.document.visibilityState,t.je()})},this.document.addEventListener("visibilitychange",this.Fe),this.inForeground="visible"===this.document.visibilityState)},Jc.prototype.an=function(){this.Fe&&(this.document.removeEventListener("visibilitychange",this.Fe),this.Fe=null)},Jc.prototype.Ge=function(){var t,e=this;"function"==typeof(null===(t=this.window)||void 0===t?void 0:t.addEventListener)&&(this.ke=function(){e.un(),c()&&navigator.appVersion.match("Version/14")&&e.Se.enterRestrictedMode(!0),e.Se.enqueueAndForget(function(){return e.shutdown()})},this.window.addEventListener("pagehide",this.ke))},Jc.prototype.hn=function(){this.ke&&(this.window.removeEventListener("pagehide",this.ke),this.ke=null)},Jc.prototype.cn=function(t){var e;try{var n=null!==(null===(e=this.Qe)||void 0===e?void 0:e.getItem(this.on(t)));return Kr("IndexedDbPersistence","Client '"+t+"' "+(n?"is":"is not")+" zombied in LocalStorage"),n}catch(t){return Gr("IndexedDbPersistence","Failed to get zombied client id.",t),!1}},Jc.prototype.un=function(){if(this.Qe)try{this.Qe.setItem(this.on(this.clientId),String(Date.now()))}catch(t){Gr("Failed to set zombie client id.",t)}},Jc.prototype.ln=function(){if(this.Qe)try{this.Qe.removeItem(this.on(this.clientId))}catch(t){}},Jc.prototype.on=function(t){return"firestore_zombie_"+this.persistenceKey+"_"+t},Jc);function Jc(t,e,n,r,i,o,s,a,u,c){if(this.allowTabSynchronization=t,this.persistenceKey=e,this.clientId=n,this.Se=i,this.window=o,this.document=s,this.De=u,this.Ce=c,this.Ne=null,this.xe=!1,this.isPrimary=!1,this.networkEnabled=!0,this.ke=null,this.inForeground=!1,this.Fe=null,this.$e=null,this.Oe=Number.NEGATIVE_INFINITY,this.Me=function(t){return Promise.resolve()},!Jc.yt())throw new Ur(Vr.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new kc(this,r),this.Le=e+"main",this.R=new Mu(a),this.Be=new pu(this.Le,11,new zc(this.R)),this.qe=new wc(this.referenceDelegate,this.R),this.Ut=new nc,this.Ue=(e=this.R,a=this.Ut,new Vc(e,a)),this.Ke=new Xu,this.window&&this.window.localStorage?this.Qe=this.window.localStorage:(this.Qe=null,!1===c&&Gr("IndexedDbPersistence","LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}function Zc(t){return xu(t,Qa.store)}function th(t){return xu(t,ou.store)}function eh(t,e){var n=t.projectId;return t.isDefaultDatabase||(n+="."+t.database),"firestore/"+e+"/"+n+"/"}function nh(t,e){this.progress=t,this.wn=e}var rh=(hh.prototype.mn=function(e,n){var r=this;return this._n.getAllMutationBatchesAffectingDocumentKey(e,n).next(function(t){return r.yn(e,n,t)})},hh.prototype.yn=function(t,e,r){return this.Ue.getEntry(t,e).next(function(t){for(var e=0,n=r;ee?this._n[e]:null)},Kh.prototype.getHighestUnacknowledgedBatchId=function(){return fu.resolve(0===this._n.length?-1:this.ss-1)},Kh.prototype.getAllMutationBatches=function(t){return fu.resolve(this._n.slice())},Kh.prototype.getAllMutationBatchesAffectingDocumentKey=function(t,e){var n=this,r=new Dh(e,0),e=new Dh(e,Number.POSITIVE_INFINITY),i=[];return this.rs.forEachInRange([r,e],function(t){t=n.os(t.ns);i.push(t)}),fu.resolve(i)},Kh.prototype.getAllMutationBatchesAffectingDocumentKeys=function(t,e){var n=this,r=new Qs($r);return e.forEach(function(t){var e=new Dh(t,0),t=new Dh(t,Number.POSITIVE_INFINITY);n.rs.forEachInRange([e,t],function(t){r=r.add(t.ns)})}),fu.resolve(this.us(r))},Kh.prototype.getAllMutationBatchesAffectingQuery=function(t,e){var n=e.path,r=n.length+1,e=n;Ni.isDocumentKey(e)||(e=e.child(""));var e=new Dh(new Ni(e),0),i=new Qs($r);return this.rs.forEachWhile(function(t){var e=t.key.path;return!!n.isPrefixOf(e)&&(e.length===r&&(i=i.add(t.ns)),!0)},e),fu.resolve(this.us(i))},Kh.prototype.us=function(t){var e=this,n=[];return t.forEach(function(t){t=e.os(t);null!==t&&n.push(t)}),n},Kh.prototype.removeMutationBatch=function(n,r){var i=this;Wr(0===this.hs(r.batchId,"removed")),this._n.shift();var o=this.rs;return fu.forEach(r.mutations,function(t){var e=new Dh(t.key,r.batchId);return o=o.delete(e),i.referenceDelegate.markPotentiallyOrphaned(n,t.key)}).next(function(){i.rs=o})},Kh.prototype.Gt=function(t){},Kh.prototype.containsKey=function(t,e){var n=new Dh(e,0),n=this.rs.firstAfterOrEqual(n);return fu.resolve(e.isEqual(n&&n.key))},Kh.prototype.performConsistencyCheck=function(t){return this._n.length,fu.resolve()},Kh.prototype.hs=function(t,e){return this.cs(t)},Kh.prototype.cs=function(t){return 0===this._n.length?0:t-this._n[0].batchId},Kh.prototype.os=function(t){t=this.cs(t);return t<0||t>=this._n.length?null:this._n[t]},Kh),Ch=(jh.prototype.addEntry=function(t,e,n){var r=e.key,i=this.docs.get(r),o=i?i.size:0,i=this.ls(e);return this.docs=this.docs.insert(r,{document:e.clone(),size:i,readTime:n}),this.size+=i-o,this.Ut.addToCollectionParentIndex(t,r.path.popLast())},jh.prototype.removeEntry=function(t){var e=this.docs.get(t);e&&(this.docs=this.docs.remove(t),this.size-=e.size)},jh.prototype.getEntry=function(t,e){var n=this.docs.get(e);return fu.resolve(n?n.document.clone():Qi.newInvalidDocument(e))},jh.prototype.getEntries=function(t,e){var n=this,r=zs;return e.forEach(function(t){var e=n.docs.get(t);r=r.insert(t,e?e.document.clone():Qi.newInvalidDocument(t))}),fu.resolve(r)},jh.prototype.getDocumentsMatchingQuery=function(t,e,n){for(var r=zs,i=new Ni(e.path.child("")),o=this.docs.getIteratorFrom(i);o.hasNext();){var s=o.getNext(),a=s.key,u=s.value,s=u.document,u=u.readTime;if(!e.path.isPrefixOf(a.path))break;u.compareTo(n)<=0||Ko(e,s)&&(r=r.insert(s.key,s.clone()))}return fu.resolve(r)},jh.prototype.fs=function(t,e){return fu.forEach(this.docs,function(t){return e(t)})},jh.prototype.newChangeBuffer=function(t){return new kh(this)},jh.prototype.getSize=function(t){return fu.resolve(this.size)},jh),kh=(n(Bh,_h=A),Bh.prototype.applyChanges=function(n){var r=this,i=[];return this.changes.forEach(function(t,e){e.document.isValidDocument()?i.push(r.Ie.addEntry(n,e.document,r.getReadTime(t))):r.Ie.removeEntry(t)}),fu.waitFor(i)},Bh.prototype.getFromCache=function(t,e){return this.Ie.getEntry(t,e)},Bh.prototype.getAllFromCache=function(t,e){return this.Ie.getEntries(t,e)},Bh),Rh=(qh.prototype.forEachTarget=function(t,n){return this.ds.forEach(function(t,e){return n(e)}),fu.resolve()},qh.prototype.getLastRemoteSnapshotVersion=function(t){return fu.resolve(this.lastRemoteSnapshotVersion)},qh.prototype.getHighestSequenceNumber=function(t){return fu.resolve(this.ws)},qh.prototype.allocateTargetId=function(t){return this.highestTargetId=this.ys.next(),fu.resolve(this.highestTargetId)},qh.prototype.setTargetsMetadata=function(t,e,n){return n&&(this.lastRemoteSnapshotVersion=n),e>this.ws&&(this.ws=e),fu.resolve()},qh.prototype.te=function(t){this.ds.set(t.target,t);var e=t.targetId;e>this.highestTargetId&&(this.ys=new vc(e),this.highestTargetId=e),t.sequenceNumber>this.ws&&(this.ws=t.sequenceNumber)},qh.prototype.addTargetData=function(t,e){return this.te(e),this.targetCount+=1,fu.resolve()},qh.prototype.updateTargetData=function(t,e){return this.te(e),fu.resolve()},qh.prototype.removeTargetData=function(t,e){return this.ds.delete(e.target),this._s.Zn(e.targetId),--this.targetCount,fu.resolve()},qh.prototype.removeTargets=function(n,r,i){var o=this,s=0,a=[];return this.ds.forEach(function(t,e){e.sequenceNumber<=r&&null===i.get(e.targetId)&&(o.ds.delete(t),a.push(o.removeMatchingKeysForTargetId(n,e.targetId)),s++)}),fu.waitFor(a).next(function(){return s})},qh.prototype.getTargetCount=function(t){return fu.resolve(this.targetCount)},qh.prototype.getTargetData=function(t,e){e=this.ds.get(e)||null;return fu.resolve(e)},qh.prototype.addMatchingKeys=function(t,e,n){return this._s.Jn(e,n),fu.resolve()},qh.prototype.removeMatchingKeys=function(e,t,n){this._s.Xn(t,n);var r=this.persistence.referenceDelegate,i=[];return r&&t.forEach(function(t){i.push(r.markPotentiallyOrphaned(e,t))}),fu.waitFor(i)},qh.prototype.removeMatchingKeysForTargetId=function(t,e){return this._s.Zn(e),fu.resolve()},qh.prototype.getMatchingKeysForTargetId=function(t,e){e=this._s.es(e);return fu.resolve(e)},qh.prototype.containsKey=function(t,e){return fu.resolve(this._s.containsKey(e))},qh),xh=(Uh.prototype.start=function(){return Promise.resolve()},Uh.prototype.shutdown=function(){return this.xe=!1,Promise.resolve()},Object.defineProperty(Uh.prototype,"started",{get:function(){return this.xe},enumerable:!1,configurable:!0}),Uh.prototype.setDatabaseDeletedListener=function(){},Uh.prototype.setNetworkEnabled=function(){},Uh.prototype.getIndexManager=function(){return this.Ut},Uh.prototype.getMutationQueue=function(t){var e=this.gs[t.toKey()];return e||(e=new Nh(this.Ut,this.referenceDelegate),this.gs[t.toKey()]=e),e},Uh.prototype.getTargetCache=function(){return this.qe},Uh.prototype.getRemoteDocumentCache=function(){return this.Ue},Uh.prototype.getBundleCache=function(){return this.Ke},Uh.prototype.runTransaction=function(t,e,n){var r=this;Kr("MemoryPersistence","Starting transaction:",t);var i=new Oh(this.Ne.next());return this.referenceDelegate.Es(),n(i).next(function(t){return r.referenceDelegate.Ts(i).next(function(){return t})}).toPromise().then(function(t){return i.raiseOnCommittedEvent(),t})},Uh.prototype.Is=function(e,n){return fu.or(Object.values(this.gs).map(function(t){return function(){return t.containsKey(e,n)}}))},Uh),Oh=(n(Vh,Ih=R),Vh),Lh=(Fh.bs=function(t){return new Fh(t)},Object.defineProperty(Fh.prototype,"vs",{get:function(){if(this.Rs)return this.Rs;throw zr()},enumerable:!1,configurable:!0}),Fh.prototype.addReference=function(t,e,n){return this.As.addReference(n,e),this.vs.delete(n.toString()),fu.resolve()},Fh.prototype.removeReference=function(t,e,n){return this.As.removeReference(n,e),this.vs.add(n.toString()),fu.resolve()},Fh.prototype.markPotentiallyOrphaned=function(t,e){return this.vs.add(e.toString()),fu.resolve()},Fh.prototype.removeTarget=function(t,e){var n=this;this.As.Zn(e.targetId).forEach(function(t){return n.vs.add(t.toString())});var r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(t,e.targetId).next(function(t){t.forEach(function(t){return n.vs.add(t.toString())})}).next(function(){return r.removeTargetData(t,e)})},Fh.prototype.Es=function(){this.Rs=new Set},Fh.prototype.Ts=function(n){var r=this,i=this.persistence.getRemoteDocumentCache().newChangeBuffer();return fu.forEach(this.vs,function(t){var e=Ni.fromPath(t);return r.Ps(n,e).next(function(t){t||i.removeEntry(e)})}).next(function(){return r.Rs=null,i.apply(n)})},Fh.prototype.updateLimboDocument=function(t,e){var n=this;return this.Ps(t,e).next(function(t){t?n.vs.delete(e.toString()):n.vs.add(e.toString())})},Fh.prototype.ps=function(t){return 0},Fh.prototype.Ps=function(t,e){var n=this;return fu.or([function(){return fu.resolve(n.As.containsKey(e))},function(){return n.persistence.getTargetCache().containsKey(t,e)},function(){return n.persistence.Is(t,e)}])},Fh),Ph=(Mh.prototype.isAuthenticated=function(){return null!=this.uid},Mh.prototype.toKey=function(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"},Mh.prototype.isEqual=function(t){return t.uid===this.uid},Mh);function Mh(t){this.uid=t}function Fh(t){this.persistence=t,this.As=new Ah,this.Rs=null}function Vh(t){var e=this;return(e=Ih.call(this)||this).currentSequenceNumber=t,e}function Uh(t,e){var n=this;this.gs={},this.Ne=new Pr(0),this.xe=!1,this.xe=!0,this.referenceDelegate=t(this),this.qe=new Rh(this),this.Ut=new tc,this.Ue=(t=this.Ut,new Ch(t,function(t){return n.referenceDelegate.ps(t)})),this.R=new Mu(e),this.Ke=new Sh(this.R)}function qh(t){this.persistence=t,this.ds=new Fc(Yi,Xi),this.lastRemoteSnapshotVersion=ei.min(),this.highestTargetId=0,this.ws=0,this._s=new Ah,this.targetCount=0,this.ys=vc.Jt()}function Bh(t){var e=this;return(e=_h.call(this)||this).Ie=t,e}function jh(t,e){this.Ut=t,this.ls=e,this.docs=new Vs(Ni.comparator),this.size=0}function Kh(t,e){this.Ut=t,this.referenceDelegate=e,this._n=[],this.ss=1,this.rs=new Qs(Dh.Gn)}function Gh(t,e){this.key=t,this.ns=e}function Qh(){this.Wn=new Qs(Dh.Gn),this.zn=new Qs(Dh.Hn)}function Hh(t){this.R=t,this.Qn=new Map,this.jn=new Map}function zh(t,e){return"firestore_clients_"+t+"_"+e}function Wh(t,e,n){n="firestore_mutations_"+t+"_"+n;return e.isAuthenticated()&&(n+="_"+e.uid),n}function Yh(t,e){return"firestore_targets_"+t+"_"+e}Ph.UNAUTHENTICATED=new Ph(null),Ph.GOOGLE_CREDENTIALS=new Ph("google-credentials-uid"),Ph.FIRST_PARTY=new Ph("first-party-uid"),Ph.MOCK_USER=new Ph("mock-user");var Xh,$h=(bl.Vs=function(t,e,n){var r,i=JSON.parse(n),o="object"==typeof i&&-1!==["pending","acknowledged","rejected"].indexOf(i.state)&&(void 0===i.error||"object"==typeof i.error);return o&&i.error&&(o="string"==typeof i.error.message&&"string"==typeof i.error.code)&&(r=new Ur(i.error.code,i.error.message)),o?new bl(t,e,i.state,r):(Gr("SharedClientState","Failed to parse mutation state for ID '"+e+"': "+n),null)},bl.prototype.Ss=function(){var t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)},bl),Jh=(wl.Vs=function(t,e){var n,r=JSON.parse(e),i="object"==typeof r&&-1!==["not-current","current","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code)&&(n=new Ur(r.error.code,r.error.message)),i?new wl(t,r.state,n):(Gr("SharedClientState","Failed to parse target state for ID '"+t+"': "+e),null)},wl.prototype.Ss=function(){var t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)},wl),Zh=(vl.Vs=function(t,e){for(var n=JSON.parse(e),r="object"==typeof n&&n.activeTargetIds instanceof Array,i=ta,o=0;r&&othis.Bi&&(this.qi=this.Bi)},Vl.prototype.Gi=function(){null!==this.Ui&&(this.Ui.skipDelay(),this.Ui=null)},Vl.prototype.cancel=function(){null!==this.Ui&&(this.Ui.cancel(),this.Ui=null)},Vl.prototype.Wi=function(){return(Math.random()-.5)*this.qi},Vl),A=(Fl.prototype.tr=function(){return 1===this.state||2===this.state||4===this.state},Fl.prototype.er=function(){return 2===this.state},Fl.prototype.start=function(){3!==this.state?this.auth():this.nr()},Fl.prototype.stop=function(){return y(this,void 0,void 0,function(){return g(this,function(t){switch(t.label){case 0:return this.tr()?[4,this.close(0)]:[3,2];case 1:t.sent(),t.label=2;case 2:return[2]}})})},Fl.prototype.sr=function(){this.state=0,this.Zi.reset()},Fl.prototype.ir=function(){var t=this;this.er()&&null===this.Xi&&(this.Xi=this.Se.enqueueAfterDelay(this.zi,6e4,function(){return t.rr()}))},Fl.prototype.cr=function(t){this.ur(),this.stream.send(t)},Fl.prototype.rr=function(){return y(this,void 0,void 0,function(){return g(this,function(t){return this.er()?[2,this.close(0)]:[2]})})},Fl.prototype.ur=function(){this.Xi&&(this.Xi.cancel(),this.Xi=null)},Fl.prototype.close=function(e,n){return y(this,void 0,void 0,function(){return g(this,function(t){switch(t.label){case 0:return this.ur(),this.Zi.cancel(),this.Yi++,3!==e?this.Zi.reset():n&&n.code===Vr.RESOURCE_EXHAUSTED?(Gr(n.toString()),Gr("Using maximum backoff delay to prevent overloading the backend."),this.Zi.Qi()):n&&n.code===Vr.UNAUTHENTICATED&&this.Ji.invalidateToken(),null!==this.stream&&(this.ar(),this.stream.close(),this.stream=null),this.state=e,[4,this.listener.Ri(n)];case 1:return t.sent(),[2]}})})},Fl.prototype.ar=function(){},Fl.prototype.auth=function(){var n=this;this.state=1;var t=this.hr(this.Yi),e=this.Yi;this.Ji.getToken().then(function(t){n.Yi===e&&n.lr(t)},function(e){t(function(){var t=new Ur(Vr.UNKNOWN,"Fetching auth token failed: "+e.message);return n.dr(t)})})},Fl.prototype.lr=function(t){var e=this,n=this.hr(this.Yi);this.stream=this.wr(t),this.stream.Ii(function(){n(function(){return e.state=2,e.listener.Ii()})}),this.stream.Ri(function(t){n(function(){return e.dr(t)})}),this.stream.onMessage(function(t){n(function(){return e.onMessage(t)})})},Fl.prototype.nr=function(){var t=this;this.state=4,this.Zi.ji(function(){return y(t,void 0,void 0,function(){return g(this,function(t){return this.state=0,this.start(),[2]})})})},Fl.prototype.dr=function(t){return Kr("PersistentStream","close with error: "+t),this.stream=null,this.close(3,t)},Fl.prototype.hr=function(e){var n=this;return function(t){n.Se.enqueueAndForget(function(){return n.Yi===e?t():(Kr("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())})}},Fl),Cl=(n(Ml,Dl=A),Ml.prototype.wr=function(t){return this.Hi.Oi("Listen",t)},Ml.prototype.onMessage=function(t){this.Zi.reset();var e=function(t,e){if("targetChange"in e){e.targetChange;var n="NO_CHANGE"===(o=e.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===o?1:"REMOVE"===o?2:"CURRENT"===o?3:"RESET"===o?4:zr(),r=e.targetChange.targetIds||[],i=(s=e.targetChange.resumeToken,t.I?(Wr(void 0===s||"string"==typeof s),di.fromBase64String(s||"")):(Wr(void 0===s||s instanceof Uint8Array),di.fromUint8Array(s||new Uint8Array))),o=(a=e.targetChange.cause)&&(u=void 0===(c=a).code?Vr.UNKNOWN:Fs(c.code),new Ur(u,c.message||"")),s=new oa(n,r,i,o||null)}else if("documentChange"in e){e.documentChange,(n=e.documentChange).document,n.document.name,n.document.updateTime;var r=Ia(t,n.document.name),i=wa(n.document.updateTime),a=new Ki({mapValue:{fields:n.document.fields}}),u=(o=Qi.newFoundDocument(r,i,a),n.targetIds||[]),c=n.removedTargetIds||[];s=new ra(u,c,o.key,o)}else if("documentDelete"in e)e.documentDelete,(n=e.documentDelete).document,r=Ia(t,n.document),i=n.readTime?wa(n.readTime):ei.min(),a=Qi.newNoDocument(r,i),o=n.removedTargetIds||[],s=new ra([],o,a.key,a);else if("documentRemove"in e)e.documentRemove,(n=e.documentRemove).document,r=Ia(t,n.document),i=n.removedTargetIds||[],s=new ra([],i,r,null);else{if(!("filter"in e))return zr();e.filter;e=e.filter;e.targetId,n=e.count||0,r=new Ns(n),i=e.targetId,s=new ia(i,r)}return s}(this.R,t),t=function(t){if(!("targetChange"in t))return ei.min();t=t.targetChange;return(!t.targetIds||!t.targetIds.length)&&t.readTime?wa(t.readTime):ei.min()}(t);return this.listener._r(e,t)},Ml.prototype.mr=function(t){var e,n,r,i={};i.database=Aa(this.R),i.addTarget=(e=this.R,(r=$i(r=(n=t).target)?{documents:xa(e,r)}:{query:Oa(e,r)}).targetId=n.targetId,0this.query.limit;){var n=xo(this.query)?h.last():h.first(),h=h.delete(n.key),c=c.delete(n.key);a.track({type:1,doc:n})}return{fo:h,mo:a,Nn:l,mutatedKeys:c}},Pf.prototype.yo=function(t,e){return t.hasLocalMutations&&e.hasCommittedMutations&&!e.hasLocalMutations},Pf.prototype.applyChanges=function(t,e,n){var o=this,r=this.fo;this.fo=t.fo,this.mutatedKeys=t.mutatedKeys;var i=t.mo.jr();i.sort(function(t,e){return r=t.type,i=e.type,n(r)-n(i)||o.lo(t.doc,e.doc);function n(t){switch(t){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return zr()}}var r,i}),this.po(n);var s=e?this.Eo():[],n=0===this.ho.size&&this.current?1:0,e=n!==this.ao;return this.ao=n,0!==i.length||e?{snapshot:new lf(this.query,t.fo,r,i,t.mutatedKeys,0==n,e,!1),To:s}:{To:s}},Pf.prototype.zr=function(t){return this.current&&"Offline"===t?(this.current=!1,this.applyChanges({fo:this.fo,mo:new hf,mutatedKeys:this.mutatedKeys,Nn:!1},!1)):{To:[]}},Pf.prototype.Io=function(t){return!this.uo.has(t)&&!!this.fo.has(t)&&!this.fo.get(t).hasLocalMutations},Pf.prototype.po=function(t){var e=this;t&&(t.addedDocuments.forEach(function(t){return e.uo=e.uo.add(t)}),t.modifiedDocuments.forEach(function(t){}),t.removedDocuments.forEach(function(t){return e.uo=e.uo.delete(t)}),this.current=t.current)},Pf.prototype.Eo=function(){var e=this;if(!this.current)return[];var n=this.ho;this.ho=Zs(),this.fo.forEach(function(t){e.Io(t.key)&&(e.ho=e.ho.add(t.key))});var r=[];return n.forEach(function(t){e.ho.has(t)||r.push(new Cf(t))}),this.ho.forEach(function(t){n.has(t)||r.push(new Nf(t))}),r},Pf.prototype.Ao=function(t){this.uo=t.Bn,this.ho=Zs();t=this._o(t.documents);return this.applyChanges(t,!0)},Pf.prototype.Ro=function(){return lf.fromInitialDocuments(this.query,this.fo,this.mutatedKeys,0===this.ao)},Pf),Rf=function(t,e,n){this.query=t,this.targetId=e,this.view=n},xf=function(t){this.key=t,this.bo=!1},Of=(Object.defineProperty(Lf.prototype,"isPrimaryClient",{get:function(){return!0===this.$o},enumerable:!1,configurable:!0}),Lf);function Lf(t,e,n,r,i,o){this.localStore=t,this.remoteStore=e,this.eventManager=n,this.sharedClientState=r,this.currentUser=i,this.maxConcurrentLimboResolutions=o,this.vo={},this.Po=new Fc(Bo,qo),this.Vo=new Map,this.So=new Set,this.Do=new Vs(Ni.comparator),this.Co=new Map,this.No=new Ah,this.xo={},this.ko=new Map,this.Fo=vc.Yt(),this.onlineState="Unknown",this.$o=void 0}function Pf(t,e){this.query=t,this.uo=e,this.ao=null,this.current=!1,this.ho=Zs(),this.mutatedKeys=Zs(),this.lo=Go(t),this.fo=new cf(this.lo)}function Mf(i,o,s,a){return y(this,void 0,void 0,function(){var e,n,r;return g(this,function(t){switch(t.label){case 0:return i.Oo=function(t,e,n){return function(r,i,o,s){return y(this,void 0,void 0,function(){var e,n;return g(this,function(t){switch(t.label){case 0:return(e=i.view._o(o)).Nn?[4,wh(r.localStore,i.query,!1).then(function(t){t=t.documents;return i.view._o(t,e)})]:[3,2];case 1:e=t.sent(),t.label=2;case 2:return n=s&&s.targetChanges.get(i.targetId),n=i.view.applyChanges(e,r.isPrimaryClient,n),[2,(Hf(r,i.targetId,n.To),n.snapshot)]}})})}(i,t,e,n)},[4,wh(i.localStore,o,!0)];case 1:return n=t.sent(),r=new kf(o,n.Bn),e=r._o(n.documents),n=na.createSynthesizedTargetChangeForCurrentChange(s,a&&"Offline"!==i.onlineState),n=r.applyChanges(e,i.isPrimaryClient,n),Hf(i,s,n.To),r=new Rf(o,s,r),[2,(i.Po.set(o,r),i.Vo.has(s)?i.Vo.get(s).push(o):i.Vo.set(s,[o]),n.snapshot)]}})})}function Ff(f,d,p){return y(this,void 0,void 0,function(){var s,l;return g(this,function(t){switch(t.label){case 0:l=ed(f),t.label=1;case 1:return t.trys.push([1,5,,6]),[4,(i=l.localStore,a=d,c=i,h=ti.now(),o=a.reduce(function(t,e){return t.add(e.key)},Zs()),c.persistence.runTransaction("Locally write mutations","readwrite",function(s){return c.Mn.pn(s,o).next(function(t){u=t;for(var e=[],n=0,r=a;n, or >=) must be on the same field. But you have inequality filters on '"+n.toString()+"' and '"+e.field.toString()+"'");n=Lo(t);null!==n&&ag(0,e.field,n)}t=function(t,e){for(var n=0,r=t.filters;ns.length)throw new Ur(Vr.INVALID_ARGUMENT,"Too many arguments provided to "+r+"(). The number of arguments must be less than or equal to the number of orderBy() clauses");for(var a=[],u=0;u, or >=) on field '"+e.toString()+"' and so you must also use '"+e.toString()+"' as your first argument to orderBy(), but your first orderBy() is on field '"+n.toString()+"' instead.")}ug.prototype.convertValue=function(t,e){switch(void 0===e&&(e="none"),ki(t)){case 0:return null;case 1:return t.booleanValue;case 2:return Ei(t.integerValue||t.doubleValue);case 3:return this.convertTimestamp(t.timestampValue);case 4:return this.convertServerTimestamp(t,e);case 5:return t.stringValue;case 6:return this.convertBytes(Ti(t.bytesValue));case 7:return this.convertReference(t.referenceValue);case 8:return this.convertGeoPoint(t.geoPointValue);case 9:return this.convertArray(t.arrayValue,e);case 10:return this.convertObject(t.mapValue,e);default:throw zr()}},ug.prototype.convertObject=function(t,n){var r=this,i={};return oi(t.fields,function(t,e){i[t]=r.convertValue(e,n)}),i},ug.prototype.convertGeoPoint=function(t){return new Lp(Ei(t.latitude),Ei(t.longitude))},ug.prototype.convertArray=function(t,e){var n=this;return(t.values||[]).map(function(t){return n.convertValue(t,e)})},ug.prototype.convertServerTimestamp=function(t,e){switch(e){case"previous":var n=function t(e){e=e.mapValue.fields.__previous_value__;return Ii(e)?t(e):e}(t);return null==n?null:this.convertValue(n,e);case"estimate":return this.convertTimestamp(_i(t));default:return null}},ug.prototype.convertTimestamp=function(t){t=bi(t);return new ti(t.seconds,t.nanos)},ug.prototype.convertDocumentKey=function(t,e){var n=ci.fromString(t);Wr(Ba(n));t=new Fd(n.get(1),n.get(3)),n=new Ni(n.popFirst(5));return t.isEqual(e)||Gr("Document "+n+" contains a document reference within a different database ("+t.projectId+"/"+t.database+") which is not supported. It will be treated as a reference in the current database ("+e.projectId+"/"+e.database+") instead."),n},A=ug;function ug(){}function cg(t,e,n){return t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e}var hg,lg=(n(pg,hg=A),pg.prototype.convertBytes=function(t){return new xp(t)},pg.prototype.convertReference=function(t){t=this.convertDocumentKey(t,this.firestore._databaseId);return new ap(this.firestore,null,t)},pg),fg=(dg.prototype.set=function(t,e,n){this._verifyNotCommitted();t=yg(t,this._firestore),e=cg(t.converter,e,n),n=Yp(this._dataReader,"WriteBatch.set",t._key,e,null!==t.converter,n);return this._mutations.push(n.toMutation(t._key,ds.none())),this},dg.prototype.update=function(t,e,n){for(var r=[],i=3;i