From a5a1d8c75951297943a204c9a759a0fd4eafd86e Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 02:41:30 +0900 Subject: [PATCH 01/15] =?UTF-8?q?[FIX/#28]=20=EB=B0=94=ED=85=80=EC=8B=9C?= =?UTF-8?q?=ED=8A=B8=20=EC=99=84=EB=A3=8C=20=ED=81=B4=EB=A6=AD=20=EC=8B=9C?= =?UTF-8?q?=20=EB=A0=88=EB=B2=A8=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/rhythm/RhythmBottomSheet.kt | 5 +- .../main/rhythm/RhythmFragment.kt | 8 +-- .../main/rhythm/RhythmViewModel.kt | 19 +++++-- .../main/res/layout/bottom_sheet_rhythm.xml | 54 +++++++++---------- 4 files changed, 51 insertions(+), 35 deletions(-) diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmBottomSheet.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmBottomSheet.kt index f9e9bb5..827851a 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmBottomSheet.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmBottomSheet.kt @@ -29,6 +29,9 @@ class RhythmBottomSheet : } private fun initSubmitBtnListener() { - binding.btnSubmitLevel.setOnSingleClickListener { dismiss() } + binding.btnSubmitLevel.setOnSingleClickListener { + viewModel.setRhythmLevel() + dismiss() + } } } \ No newline at end of file diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt index 37cf5b9..c927e79 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt @@ -15,6 +15,7 @@ import com.kkkk.core.extension.setStatusBarColor import com.kkkk.core.extension.stringOf import com.kkkk.core.extension.toast import com.kkkk.core.state.UiState +import com.kkkk.presentation.main.rhythm.RhythmViewModel.Companion.LEVEL_UNDEFINED import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.launchIn @@ -80,7 +81,8 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy } private fun observeRhythmLevel() { - viewModel.rhythmLevel.observe(viewLifecycleOwner) { level -> + viewModel.rhythmLevel.flowWithLifecycle(lifecycle).distinctUntilChanged().onEach { level -> + if (level == LEVEL_UNDEFINED) return@onEach setLoadingView(true) if (::mediaPlayer.isInitialized) { mediaPlayer.pause() @@ -88,13 +90,13 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy } setUiWithCurrentLevel() viewModel.postToGetRhythmUrlFromServer(level) - } + }.launchIn(lifecycleScope) } private fun setUiWithCurrentLevel() { binding.tvRhythmLevel.text = getString(R.string.rhythm_tv_level, viewModel.rhythmLevel.value) - val (textColor, background) = when (viewModel.rhythmLevel.value?.rem(3)) { + val (textColor, background) = when (viewModel.rhythmLevel.value.rem(3)) { 1 -> Pair(R.color.purple_50, R.drawable.shape_purple50_line_17_rect) 2 -> Pair(R.color.sky_50, R.drawable.shape_sky50_line_17_rect) 0 -> Pair(R.color.green_50, R.drawable.shape_green50_line_17_rect) diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt index bcc5584..37ebb4b 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt @@ -17,18 +17,25 @@ class RhythmViewModel constructor( private val rhythmRepository: RhythmRepository ) : ViewModel() { - var rhythmLevel = MutableLiveData(1) + var tempRhythmLevel = MutableLiveData(1) var filename: String = "stempo_level_1" + private val _rhythmLevel = MutableStateFlow(LEVEL_UNDEFINED) + val rhythmLevel: StateFlow = _rhythmLevel + private val _rhythmUrlState = MutableStateFlow>(UiState.Empty) val rhythmUrlState: StateFlow> = _rhythmUrlState private val _downloadWavState = MutableStateFlow>(UiState.Empty) val downloadWavState: StateFlow> = _downloadWavState - fun changeRhythmLevel(level: Int) { - filename = "stempo_level_$level" - rhythmLevel.value = level + fun setTempRhythmLevel(level: Int) { + tempRhythmLevel.value = level + } + + fun setRhythmLevel() { + filename = "stempo_level_" + tempRhythmLevel.value.toString() + _rhythmLevel.value = tempRhythmLevel.value ?: -1 } fun postToGetRhythmUrlFromServer(level: Int) { @@ -56,4 +63,8 @@ constructor( } } } + + companion object { + const val LEVEL_UNDEFINED = -1 + } } \ No newline at end of file diff --git a/presentation/src/main/res/layout/bottom_sheet_rhythm.xml b/presentation/src/main/res/layout/bottom_sheet_rhythm.xml index 298746b..a7af9c9 100644 --- a/presentation/src/main/res/layout/bottom_sheet_rhythm.xml +++ b/presentation/src/main/res/layout/bottom_sheet_rhythm.xml @@ -61,11 +61,11 @@ android:layout_column="0" android:layout_columnWeight="1" android:layout_margin="16dp" - android:background="@{vm.rhythmLevel == 1 ? @drawable/shape_purple50_fill_circle : @drawable/shape_gray200_fill_circle}" + android:background="@{vm.tempRhythmLevel == 1 ? @drawable/shape_purple50_fill_circle : @drawable/shape_gray200_fill_circle}" android:gravity="center" - android:onClick="@{() -> vm.changeRhythmLevel(1)}" + android:onClick="@{() -> vm.setTempRhythmLevel(1)}" android:text="1" - android:textColor="@{vm.rhythmLevel == 1 ? @color/white : @color/gray_700}" /> + android:textColor="@{vm.tempRhythmLevel == 1 ? @color/white : @color/gray_700}" /> + android:textColor="@{vm.tempRhythmLevel == 2 ? @color/white : @color/gray_700}" /> + android:textColor="@{vm.tempRhythmLevel == 3 ? @color/white : @color/gray_700}" /> + android:textColor="@{vm.tempRhythmLevel == 4 ? @color/white : @color/gray_700}" /> + android:textColor="@{vm.tempRhythmLevel == 5 ? @color/white : @color/gray_700}" /> + android:textColor="@{vm.tempRhythmLevel == 6 ? @color/white : @color/gray_700}" /> + android:textColor="@{vm.tempRhythmLevel == 7 ? @color/white : @color/gray_700}" /> + android:textColor="@{vm.tempRhythmLevel == 8 ? @color/white : @color/gray_700}" /> + android:textColor="@{vm.tempRhythmLevel == 9 ? @color/white : @color/gray_700}" /> From d6a5d165a171598955b0b8987c043646989ce5d8 Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 02:47:03 +0900 Subject: [PATCH 02/15] =?UTF-8?q?[FEAT/#28]=20SharedPreference=EC=9D=98=20?= =?UTF-8?q?level=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/main/rhythm/RhythmViewModel.kt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt index 37ebb4b..5297ef8 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.kkkk.core.state.UiState import com.kkkk.domain.repository.RhythmRepository +import com.kkkk.domain.repository.UserRepository import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -15,7 +16,8 @@ import javax.inject.Inject class RhythmViewModel @Inject constructor( - private val rhythmRepository: RhythmRepository + private val rhythmRepository: RhythmRepository, + private val userRepository: UserRepository ) : ViewModel() { var tempRhythmLevel = MutableLiveData(1) var filename: String = "stempo_level_1" @@ -29,6 +31,15 @@ constructor( private val _downloadWavState = MutableStateFlow>(UiState.Empty) val downloadWavState: StateFlow> = _downloadWavState + init { + initRhythmLevelFromDataStore() + } + + private fun initRhythmLevelFromDataStore() { + filename = "stempo_level_" + userRepository.getBpmLevel().toString() + _rhythmLevel.value = userRepository.getBpmLevel() + } + fun setTempRhythmLevel(level: Int) { tempRhythmLevel.value = level } @@ -36,6 +47,7 @@ constructor( fun setRhythmLevel() { filename = "stempo_level_" + tempRhythmLevel.value.toString() _rhythmLevel.value = tempRhythmLevel.value ?: -1 + userRepository.setBpmLevel(rhythmLevel.value) } fun postToGetRhythmUrlFromServer(level: Int) { From 9d767f530a95c21bf9352dcdcac1b090d6dc7483 Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 03:01:36 +0900 Subject: [PATCH 03/15] =?UTF-8?q?[ADD/#28]=20=EB=A1=9C=EB=94=A9=EB=B7=B0?= =?UTF-8?q?=20=EB=A1=9C=ED=8B=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/rhythm/RhythmFragment.kt | 2 +- .../src/main/res/layout/fragment_rhythm.xml | 22 +- .../src/main/res/raw/stempo_loading.json | 441 ++++++++++++++++++ .../src/main/res/raw/stempo_rhythm_green.json | 301 ++++++++++++ .../main/res/raw/stempo_rhythm_purple.json | 301 ++++++++++++ .../src/main/res/raw/stempo_rhythm_sky.json | 301 ++++++++++++ 6 files changed, 1363 insertions(+), 5 deletions(-) create mode 100644 presentation/src/main/res/raw/stempo_loading.json create mode 100644 presentation/src/main/res/raw/stempo_rhythm_green.json create mode 100644 presentation/src/main/res/raw/stempo_rhythm_purple.json create mode 100644 presentation/src/main/res/raw/stempo_rhythm_sky.json diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt index c927e79..de7644b 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt @@ -177,7 +177,7 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy } private fun setLoadingView(isLoading: Boolean) { - binding.viewLoading.isVisible = isLoading + binding.layoutLoading.isVisible = isLoading if (isLoading) { setStatusBarColor(R.color.transparent_50) } else { diff --git a/presentation/src/main/res/layout/fragment_rhythm.xml b/presentation/src/main/res/layout/fragment_rhythm.xml index 3b6ade0..1790b1d 100644 --- a/presentation/src/main/res/layout/fragment_rhythm.xml +++ b/presentation/src/main/res/layout/fragment_rhythm.xml @@ -107,16 +107,30 @@ - + app:layout_constraintTop_toTopOf="parent"> + + + + \ No newline at end of file diff --git a/presentation/src/main/res/raw/stempo_loading.json b/presentation/src/main/res/raw/stempo_loading.json new file mode 100644 index 0000000..35f3c3b --- /dev/null +++ b/presentation/src/main/res/raw/stempo_loading.json @@ -0,0 +1,441 @@ +{ + "nm": "Main Scene", + "ddd": 0, + "h": 100, + "w": 100, + "meta": { + "g": "@lottiefiles/creator 1.19.0" + }, + "layers": [ + { + "ty": 4, + "nm": "Shape Layer - SVG", + "sr": 1, + "st": 0, + "op": 150, + "ip": 0, + "hd": false, + "ddd": 0, + "bm": 0, + "hasMask": false, + "ao": 0, + "ks": { + "a": { + "a": 0, + "k": [ + 50, + 50 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 0, + "k": [ + 50, + 50 + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 0, + "k": 100 + } + }, + "ef": [], + "shapes": [ + { + "ty": "gr", + "bm": 0, + "hd": false, + "nm": "Group 1", + "it": [ + { + "ty": "el", + "bm": 0, + "hd": false, + "nm": "Ellipse 1", + "d": 1, + "p": { + "a": 0, + "k": [ + 74, + 50 + ] + }, + "s": { + "a": 0, + "k": [ + 12, + 12 + ] + } + }, + { + "ty": "fl", + "bm": 0, + "hd": false, + "nm": "Fill", + "c": { + "a": 0, + "k": [ + 0.5451, + 0.8627, + 0.0392 + ] + }, + "r": 1, + "o": { + "a": 0, + "k": 100 + } + }, + { + "ty": "tr", + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 1, + "k": [ + { + "o": { + "x": 0.65, + "y": 0 + }, + "i": { + "x": 0.36, + "y": 1 + }, + "s": [ + 0, + 0 + ], + "t": 24 + }, + { + "o": { + "x": 0.65, + "y": 0 + }, + "i": { + "x": 0.36, + "y": 1 + }, + "s": [ + 0, + -14 + ], + "t": 36 + }, + { + "s": [ + 0, + 0 + ], + "t": 48 + } + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 0, + "k": 100 + } + } + ] + }, + { + "ty": "gr", + "bm": 0, + "hd": false, + "nm": "Group 2", + "it": [ + { + "ty": "el", + "bm": 0, + "hd": false, + "nm": "Ellipse 2", + "d": 1, + "p": { + "a": 0, + "k": [ + 50, + 50 + ] + }, + "s": { + "a": 0, + "k": [ + 12, + 12 + ] + } + }, + { + "ty": "fl", + "bm": 0, + "hd": false, + "nm": "Fill", + "c": { + "a": 0, + "k": [ + 0.3294, + 0.8196, + 0.9765 + ] + }, + "r": 1, + "o": { + "a": 0, + "k": 100 + } + }, + { + "ty": "tr", + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 1, + "k": [ + { + "o": { + "x": 0.65, + "y": 0 + }, + "i": { + "x": 0.36, + "y": 1 + }, + "s": [ + 0, + 0 + ], + "t": 12 + }, + { + "o": { + "x": 0.65, + "y": 0 + }, + "i": { + "x": 0.36, + "y": 1 + }, + "s": [ + 0, + -14 + ], + "t": 24 + }, + { + "s": [ + 0, + 0 + ], + "t": 36 + } + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 0, + "k": 100 + } + } + ] + }, + { + "ty": "gr", + "bm": 0, + "hd": false, + "nm": "Group 3", + "it": [ + { + "ty": "el", + "bm": 0, + "hd": false, + "nm": "Ellipse 3", + "d": 1, + "p": { + "a": 0, + "k": [ + 26, + 50 + ] + }, + "s": { + "a": 0, + "k": [ + 12, + 12 + ] + } + }, + { + "ty": "fl", + "bm": 0, + "hd": false, + "nm": "Fill", + "c": { + "a": 0, + "k": [ + 0.4706, + 0.302, + 0.9412 + ] + }, + "r": 1, + "o": { + "a": 0, + "k": 100 + } + }, + { + "ty": "tr", + "a": { + "a": 0, + "k": [ + 26, + 50 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 1, + "k": [ + { + "o": { + "x": 0.65, + "y": 0 + }, + "i": { + "x": 0.36, + "y": 1 + }, + "s": [ + 26, + 50 + ], + "t": 0 + }, + { + "o": { + "x": 0.65, + "y": 0 + }, + "i": { + "x": 0.36, + "y": 1 + }, + "s": [ + 26, + 36 + ], + "t": 12 + }, + { + "s": [ + 26, + 50 + ], + "t": 24 + } + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 0, + "k": 100 + } + } + ] + } + ], + "ind": 1 + } + ], + "v": "5.7.0", + "fr": 30, + "op": 81, + "ip": 0, + "assets": [] +} \ No newline at end of file diff --git a/presentation/src/main/res/raw/stempo_rhythm_green.json b/presentation/src/main/res/raw/stempo_rhythm_green.json new file mode 100644 index 0000000..e5a9e25 --- /dev/null +++ b/presentation/src/main/res/raw/stempo_rhythm_green.json @@ -0,0 +1,301 @@ +{ + "nm": "Main Scene", + "ddd": 0, + "h": 382, + "w": 382, + "meta": { + "g": "@lottiefiles/creator 1.19.0" + }, + "layers": [ + { + "ty": 4, + "nm": "Shape Layer - SVG", + "sr": 1, + "st": 0, + "op": 150, + "ip": 0, + "hd": false, + "ddd": 0, + "bm": 0, + "hasMask": false, + "ao": 0, + "ks": { + "a": { + "a": 0, + "k": [ + 127, + 127 + ] + }, + "s": { + "a": 1, + "k": [ + { + "o": { + "x": 0.65, + "y": 0 + }, + "i": { + "x": 0.36, + "y": 1 + }, + "s": [ + 100, + 100 + ], + "t": 0 + }, + { + "s": [ + 250, + 250 + ], + "t": 45 + } + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 0, + "k": [ + 191, + 191 + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 1, + "k": [ + { + "o": { + "x": 0.65, + "y": 0 + }, + "i": { + "x": 0.36, + "y": 1 + }, + "s": [ + 100 + ], + "t": 0 + }, + { + "s": [ + 0 + ], + "t": 45 + } + ] + } + }, + "ef": [], + "shapes": [ + { + "ty": "gr", + "bm": 0, + "hd": false, + "nm": "Group 1", + "it": [ + { + "ty": "el", + "bm": 0, + "hd": false, + "nm": "Ellipse 1", + "d": 1, + "p": { + "a": 0, + "k": [ + 127, + 127 + ] + }, + "s": { + "a": 0, + "k": [ + 252, + 252 + ] + } + }, + { + "ty": "st", + "bm": 0, + "hd": false, + "nm": "Stroke", + "lc": 1, + "lj": 1, + "ml": 4, + "o": { + "a": 0, + "k": 100 + }, + "w": { + "a": 0, + "k": 2 + }, + "c": { + "a": 0, + "k": [ + 0.5451, + 0.8627, + 0.0392 + ] + } + }, + { + "ty": "tr", + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 0, + "k": 20 + } + } + ] + }, + { + "ty": "gr", + "bm": 0, + "hd": false, + "nm": "Group 2", + "it": [ + { + "ty": "el", + "bm": 0, + "hd": false, + "nm": "Ellipse 2", + "d": 1, + "p": { + "a": 0, + "k": [ + 126.952, + 126.952 + ] + }, + "s": { + "a": 0, + "k": [ + 213.764, + 213.764 + ] + } + }, + { + "ty": "st", + "bm": 0, + "hd": false, + "nm": "Stroke", + "lc": 1, + "lj": 1, + "ml": 4, + "o": { + "a": 0, + "k": 100 + }, + "w": { + "a": 0, + "k": 3 + }, + "c": { + "a": 0, + "k": [ + 0.5451, + 0.8627, + 0.0392 + ] + } + }, + { + "ty": "tr", + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 0, + "k": 30 + } + } + ] + } + ], + "ind": 1 + } + ], + "v": "5.7.0", + "fr": 30, + "op": 45, + "ip": 0, + "assets": [] +} \ No newline at end of file diff --git a/presentation/src/main/res/raw/stempo_rhythm_purple.json b/presentation/src/main/res/raw/stempo_rhythm_purple.json new file mode 100644 index 0000000..a9ea8a6 --- /dev/null +++ b/presentation/src/main/res/raw/stempo_rhythm_purple.json @@ -0,0 +1,301 @@ +{ + "nm": "Main Scene", + "ddd": 0, + "h": 382, + "w": 382, + "meta": { + "g": "@lottiefiles/creator 1.19.0" + }, + "layers": [ + { + "ty": 4, + "nm": "Shape Layer - SVG", + "sr": 1, + "st": 0, + "op": 150, + "ip": 0, + "hd": false, + "ddd": 0, + "bm": 0, + "hasMask": false, + "ao": 0, + "ks": { + "a": { + "a": 0, + "k": [ + 127, + 127 + ] + }, + "s": { + "a": 1, + "k": [ + { + "o": { + "x": 0.65, + "y": 0 + }, + "i": { + "x": 0.36, + "y": 1 + }, + "s": [ + 100, + 100 + ], + "t": 0 + }, + { + "s": [ + 250, + 250 + ], + "t": 45 + } + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 0, + "k": [ + 191, + 191 + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 1, + "k": [ + { + "o": { + "x": 0.65, + "y": 0 + }, + "i": { + "x": 0.36, + "y": 1 + }, + "s": [ + 100 + ], + "t": 0 + }, + { + "s": [ + 0 + ], + "t": 45 + } + ] + } + }, + "ef": [], + "shapes": [ + { + "ty": "gr", + "bm": 0, + "hd": false, + "nm": "Group 1", + "it": [ + { + "ty": "el", + "bm": 0, + "hd": false, + "nm": "Ellipse 1", + "d": 1, + "p": { + "a": 0, + "k": [ + 127, + 127 + ] + }, + "s": { + "a": 0, + "k": [ + 252, + 252 + ] + } + }, + { + "ty": "st", + "bm": 0, + "hd": false, + "nm": "Stroke", + "lc": 1, + "lj": 1, + "ml": 4, + "o": { + "a": 0, + "k": 100 + }, + "w": { + "a": 0, + "k": 2 + }, + "c": { + "a": 0, + "k": [ + 0.4706, + 0.302, + 0.9412 + ] + } + }, + { + "ty": "tr", + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 0, + "k": 20 + } + } + ] + }, + { + "ty": "gr", + "bm": 0, + "hd": false, + "nm": "Group 2", + "it": [ + { + "ty": "el", + "bm": 0, + "hd": false, + "nm": "Ellipse 2", + "d": 1, + "p": { + "a": 0, + "k": [ + 126.952, + 126.952 + ] + }, + "s": { + "a": 0, + "k": [ + 213.764, + 213.764 + ] + } + }, + { + "ty": "st", + "bm": 0, + "hd": false, + "nm": "Stroke", + "lc": 1, + "lj": 1, + "ml": 4, + "o": { + "a": 0, + "k": 100 + }, + "w": { + "a": 0, + "k": 3 + }, + "c": { + "a": 0, + "k": [ + 0.4706, + 0.302, + 0.9412 + ] + } + }, + { + "ty": "tr", + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 0, + "k": 30 + } + } + ] + } + ], + "ind": 1 + } + ], + "v": "5.7.0", + "fr": 30, + "op": 45, + "ip": 0, + "assets": [] +} \ No newline at end of file diff --git a/presentation/src/main/res/raw/stempo_rhythm_sky.json b/presentation/src/main/res/raw/stempo_rhythm_sky.json new file mode 100644 index 0000000..67dbdcf --- /dev/null +++ b/presentation/src/main/res/raw/stempo_rhythm_sky.json @@ -0,0 +1,301 @@ +{ + "nm": "Main Scene", + "ddd": 0, + "h": 382, + "w": 382, + "meta": { + "g": "@lottiefiles/creator 1.19.0" + }, + "layers": [ + { + "ty": 4, + "nm": "Shape Layer - SVG", + "sr": 1, + "st": 0, + "op": 150, + "ip": 0, + "hd": false, + "ddd": 0, + "bm": 0, + "hasMask": false, + "ao": 0, + "ks": { + "a": { + "a": 0, + "k": [ + 127, + 127 + ] + }, + "s": { + "a": 1, + "k": [ + { + "o": { + "x": 0.65, + "y": 0 + }, + "i": { + "x": 0.36, + "y": 1 + }, + "s": [ + 100, + 100 + ], + "t": 0 + }, + { + "s": [ + 250, + 250 + ], + "t": 45 + } + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 0, + "k": [ + 191, + 191 + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 1, + "k": [ + { + "o": { + "x": 0.65, + "y": 0 + }, + "i": { + "x": 0.36, + "y": 1 + }, + "s": [ + 100 + ], + "t": 0 + }, + { + "s": [ + 0 + ], + "t": 45 + } + ] + } + }, + "ef": [], + "shapes": [ + { + "ty": "gr", + "bm": 0, + "hd": false, + "nm": "Group 1", + "it": [ + { + "ty": "el", + "bm": 0, + "hd": false, + "nm": "Ellipse 1", + "d": 1, + "p": { + "a": 0, + "k": [ + 127, + 127 + ] + }, + "s": { + "a": 0, + "k": [ + 252, + 252 + ] + } + }, + { + "ty": "st", + "bm": 0, + "hd": false, + "nm": "Stroke", + "lc": 1, + "lj": 1, + "ml": 4, + "o": { + "a": 0, + "k": 100 + }, + "w": { + "a": 0, + "k": 2 + }, + "c": { + "a": 0, + "k": [ + 0.3294, + 0.8196, + 0.9765 + ] + } + }, + { + "ty": "tr", + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 0, + "k": 20 + } + } + ] + }, + { + "ty": "gr", + "bm": 0, + "hd": false, + "nm": "Group 2", + "it": [ + { + "ty": "el", + "bm": 0, + "hd": false, + "nm": "Ellipse 2", + "d": 1, + "p": { + "a": 0, + "k": [ + 126.952, + 126.952 + ] + }, + "s": { + "a": 0, + "k": [ + 213.764, + 213.764 + ] + } + }, + { + "ty": "st", + "bm": 0, + "hd": false, + "nm": "Stroke", + "lc": 1, + "lj": 1, + "ml": 4, + "o": { + "a": 0, + "k": 100 + }, + "w": { + "a": 0, + "k": 3 + }, + "c": { + "a": 0, + "k": [ + 0.3294, + 0.8196, + 0.9765 + ] + } + }, + { + "ty": "tr", + "a": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ] + }, + "sk": { + "a": 0, + "k": 0 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ] + }, + "r": { + "a": 0, + "k": 0 + }, + "sa": { + "a": 0, + "k": 0 + }, + "o": { + "a": 0, + "k": 30 + } + } + ] + } + ], + "ind": 1 + } + ], + "v": "5.7.0", + "fr": 30, + "op": 45, + "ip": 0, + "assets": [] +} \ No newline at end of file From 5ab9afebfa99541ab595cbe77440947ad0c5abad Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 03:16:45 +0900 Subject: [PATCH 04/15] =?UTF-8?q?[FIX/#28]=20=EB=B0=94=ED=85=80=EC=8B=9C?= =?UTF-8?q?=ED=8A=B8=20tempLevel=20=EC=84=A4=EC=A0=95=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/rhythm/RhythmBottomSheet.kt | 6 ++++++ .../presentation/main/rhythm/RhythmFragment.kt | 2 +- .../presentation/main/rhythm/RhythmViewModel.kt | 16 ++++++++++++++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmBottomSheet.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmBottomSheet.kt index 827851a..cd5f543 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmBottomSheet.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmBottomSheet.kt @@ -1,5 +1,6 @@ package com.kkkk.presentation.main.rhythm +import android.content.DialogInterface import android.os.Bundle import android.view.View import androidx.fragment.app.activityViewModels @@ -34,4 +35,9 @@ class RhythmBottomSheet : dismiss() } } + + override fun onDismiss(dialog: DialogInterface) { + super.onDismiss(dialog) + viewModel.resetTempRhythmLevel() + } } \ No newline at end of file diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt index de7644b..229ad27 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt @@ -83,7 +83,6 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy private fun observeRhythmLevel() { viewModel.rhythmLevel.flowWithLifecycle(lifecycle).distinctUntilChanged().onEach { level -> if (level == LEVEL_UNDEFINED) return@onEach - setLoadingView(true) if (::mediaPlayer.isInitialized) { mediaPlayer.pause() switchPlayingState(false) @@ -120,6 +119,7 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy if (File(requireContext().filesDir, viewModel.filename).exists()) { setMediaPlayer() } else { + setLoadingView(true) viewModel.getRhythmWavFile(state.data) } } diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt index 5297ef8..4c4249d 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt @@ -21,6 +21,7 @@ constructor( ) : ViewModel() { var tempRhythmLevel = MutableLiveData(1) var filename: String = "stempo_level_1" + var isSubmitted: Boolean = true private val _rhythmLevel = MutableStateFlow(LEVEL_UNDEFINED) val rhythmLevel: StateFlow = _rhythmLevel @@ -36,15 +37,26 @@ constructor( } private fun initRhythmLevelFromDataStore() { - filename = "stempo_level_" + userRepository.getBpmLevel().toString() - _rhythmLevel.value = userRepository.getBpmLevel() + val currentLevel = userRepository.getBpmLevel() + filename = "stempo_level_$currentLevel" + _rhythmLevel.value = currentLevel + tempRhythmLevel.value = currentLevel } fun setTempRhythmLevel(level: Int) { + isSubmitted = false tempRhythmLevel.value = level } + fun resetTempRhythmLevel() { + if (!isSubmitted) { + isSubmitted = true + tempRhythmLevel.value = rhythmLevel.value + } + } + fun setRhythmLevel() { + isSubmitted = true filename = "stempo_level_" + tempRhythmLevel.value.toString() _rhythmLevel.value = tempRhythmLevel.value ?: -1 userRepository.setBpmLevel(rhythmLevel.value) From dcb17d5a92cb35190d7ba0313f777a309cffdc2a Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 03:43:53 +0900 Subject: [PATCH 05/15] =?UTF-8?q?[FIX/#28]=20=EB=A6=AC=EB=93=AC=EB=B7=B0?= =?UTF-8?q?=20=ED=8C=8C=EC=9E=A5=20=EB=A1=9C=ED=8B=B0=20=ED=81=AC=EA=B8=B0?= =?UTF-8?q?=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/drawable/mock_rhythm_stop.png | Bin 197992 -> 0 bytes .../src/main/res/layout/fragment_rhythm.xml | 20 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) delete mode 100644 presentation/src/main/res/drawable/mock_rhythm_stop.png diff --git a/presentation/src/main/res/drawable/mock_rhythm_stop.png b/presentation/src/main/res/drawable/mock_rhythm_stop.png deleted file mode 100644 index 1a6a81ef556e664a1d4bdddb77bdb8af245b56ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197992 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
  • PtH8J6*A|4c{ zZyHuKf3R|`x#+QAF?{Ev*{C&o+F~S0*FX58n)nXjZ=bwa!s>x0(x*r){j+_XaY02s z5GAMa#eP_mN2>eHH%|hA#=5kue$TYkdr9Ywp~D6J$whx!7&nx>WElv;hmxn?4scp7=-b%QH#Fvq%(Ma?DgKg{VOGC*!&rDV8%h6Lpkp_R6D z-9^{|k22NK;!haAyY+51juUbkwLE=lb;DKZoN|RYnf*dAa--+%f7$=Z1e0^jD_UL# zL<@oJ`zV-?p|LRJv2YdeeYhsb>RmPU$Jfz=mra44H3Y3lSd(0LkkOM(&YEVEzm3gZ zhSiTfBdThmBKY3bk9yESqlL`U&@`}$gqh{8kn2&nkn0zoRH!tzb?Beg_MoN+K$~bc zvGY%wgXN!bgEo&_v$dnM2YKbF*W(0#8xqbYmtlS~hdO9)esm0cx#Ju3v!J<+IeA}|7d%($8R2g$QTy1=fnD>&?7 zu{-nx;|eF(3sWx~)1Y>5!o6)8AuS%Ja?csc(t?t#d!5!h1|I&VGZ1u3;E>JcdYOJ` zpU>w_c;!zv>oeRs(w&Eg4jR1roD;HzFpb!>%867mA!kib$=Qq_ic|-T@r0RRNi$wj z)|!ELZcqfaTVHVOT3=|*dFJo=YSwyZ`l;E2EIH7iEdh&w&eZu(vOX(Ag6COC*Ekx>~#pgi) z;W=ZZ<}%<iIn;Qq+r(hivd9AJ#Wp{$^&hGANv@@ljKXlnP@@`v22#Xbf3v(K11ayu zMGyK#1k0q(=`jq^y76na&Ch03-X!4B7-S`~#1%oEI3p?q8#QR!|0GOQOX#x>cCXuF zpo`hNyAd*BeYPsh+)cclYD|~#9(wmlpN>&jAqy;YW=ydBtrU0P-Y8(l8VOBs|ev}M)0VO$qR+L0A#eEnrWt2l2K z!qBE^0LRFC3r(Dtb`{clP^Ex*q@6zlW5f-BbkjAK0G2XVQ3I)4@!hF?%O+R~nk;Jy zx*Wh=i8!RUKvM^!7B*Su5hzB+exG+BKJ~YxmL)%B82eN_Vbwo1f7V-&QK>yAFwt|O zuEWcGRJ;f@`jcKdhDxC$r8x#$R(x8z?mqSx1u&n!AI%qM1eVE}?>q!aeN{K!W3n0w zc2+=7?%u}T!tlW2bexL5ff%TKy-S=GimmqR@c?wrwlCaRpb;7 z8A3-hHe}j_w7i5K+T>ewm6?;Re#5OsBlXTNIc)#5UDL|_f-U^;WR_DD2;z-_no~i9 zX+M8Jeq9B1_(ycKO-8Pro^(V)HB8Gncm zeJb)^m>4Df&_~gnDdlo@F{(ChSsWpw6r*SA{u9-Zl8@)cS!Fo|fzuz5ED~qC0!8TN z9Mg`Dyh0DR#3rp;PeF}#QXHD&$HrVPcPCzDNUYoOzSe-@+E)OFa<)r7vT|`-RtK#7 z<7^}xij6#$+(rVKw1@eA6qZwzQ}k#x_gr3&OAL|33n65rmzpEU;vW|#-4|=DvKlYs z3$ph1u3W63ERFSYQuspe8(kodP8^uA46qGb#%q*7nv-ogJY35zd9hmKS8R)6Zv6fn zTJNAvCW0pmRZy;nId5D|TW4oZaF7E4AqG7cR0Jh(y11K0qfZI&-i%56LE-{8){f2b zlpS#3o`h!y{DJ5@m`b1BSXELE+m@Fn!m}Kw){e89vtz46BFvMQ1}{+S6FNU7zq#&d zn}AGZ<4Rc6l29C_6|#%2wIN zqTmXgN$8{S7U?I6j^+r*9IcWTeiEqK^b8k`)F7iRbH zm`|TBfj6b20mCN~$x4P~W57RKEd(78v%7Z(QhxFUKP^;JLh+I%qXa=~i>7Z*N31LT z4SjG-EVi4yj;f0^_%+y%dcc`vjP}a(2@k75vzM{4 zzim1lR1+}pYsu=G*XyvS z8CM*p@B0-8VVlstt-FKjFKTY~@o{4fwWJ>AE!+%`1zDC>(Aeqz_NB?ICgpwE;e-B7 z>s^T3Zg=|bF%m9F;^LpHyajRfgA}y&0l2`;6%K-b!rKdi0b5$H>T>V?>U627(Ha;? z!-+sJn^)^}z1>hYmvPJ)SsL!9#)ARSMBv*Mkk{ysJApD^tr)AR7x$EwO$VQtmC=Rv zDwDasb@S6d-C1(}!ZLJvtnO)hY(nq`6E zrRb(rZ`1#*n{3(aSdl0s3+7dP??W4mKZHcZQw;=Hw^*v$1_oe>Uv4oFR&2;XRx7_% z7x2^l+^5D*or7&8?^RZzh$AicU*&7G0_|RL=0&YQ7MC8u)s;HKiWjy!cX zT1WAPo3l>EFfSh4>dkEadc!-v^A-7nua6DiN~>wrbx#WXW*Kxf$URb6TK#-ka}eKj z>w~b@-7L=(Q`ZmcM%C=AEDyhR5PeX%E{1~Lp)t;52Q+9$dLaiGGcPZr8c{YDPk+o1 z$-i!d9K46#H4mDbSBkW^e!d0jJ3X&VDUQ^BdiQejq_d<^iYHW`(s9%HXTRR!udmouu8OUFaNi$sp!u5-=e%f_%wsJn zF(Oqx{X`Y+XJT{2>wrUSzLd#}DiGIO?~F|wK5ioiC{`DCag~v>`i5kZj87U&kA0Oj zXiAKScW-!>?&*9T_)9_>lUj761W&nb5viAu_i|@qJM)y^oQ*!(+P&vV!{3DX5JLdG zExD@(MoOO-CY$>d>ckTt_{q6Aay(2MqUeIB{Bm*|k2$;QG)iMBMd-ZQ=Usn!n0)o# z|0qg21^5o|Y65Ed*m70*sHBt*5+|OJekwy;)@!#XXGNT3+&kr@Zt=*+0Qc zr;dcUv482&&Tv+{t77tOA#+1NZ{mZ|P#u;opln=I^C60p;L9JQmC%xp6-MYF*QpHl zurG)iF1RIKl!bHp3AtuM6{m~%40UJ*B;E_xi~nuO0;-0~tC(TKGxEC|n)lGg1V@!*`ZsPeD^GW??%Pqlw>cbAry|%kqC+$e zA!f$E`OrPzo#&AtCX8@TcENfAYXU7JSqhgoW|>4C0Git%amvTe4ht8uvj9))0m zB27oG_rNF95;TvLN9O|QfaK#a6?6m5k%1yW^7;Ks@y##2@*5w5zw*>c#&daTtWTe+p3O6TFXY+53P^^43w4s~Vn&g9z4en;xF(c|$xkc-=UH3d|+sZSk#U>Iu$R zR~ce-M6a!oSnbb5K979QujPe{VTZJz6h{1sba=p0mW7X`=RV=WcoBL`QbJml!S>X< zkeH#@%$!{8h{0|Q2ZUdy8P6SLhh|OqdUE zwb>|grRg%?`aG&PP zzl$MVWvO}Z*l#H>5tXrG>E*eLeDz6M7qYAoXsVQZ^*YXo(7}IFZ(0%wn==iPxbYx2 zAbg&OGT0qA@xp(R8A~!9Q#v}==t(o@^nd4aRE}q{vs1MD$pS{F*OEn4zlogsU%`EI zh5*=WeWSQC9aw0k#7ZeIDT&>%>McdwOvnvRO*P}+;Yk?l{qtwL@*F@i%5WMTkOv<@ zuZgOS9mp#~Os6uAdrj5UnMYh7CvZdEYyo?(MbI^v@|G4^=t7*y6=^Hsvma3;^ zolw}`@gc@=czYDzvs9A;9JLd2s`5%72Ls0f$1UB9Yw$ixLO!vsHX|CzbjVXA-gv0w z#nrX$)IPtPTeTqgeXi0hJOOCd+?ssF(MnL-4tf{Ek&3fBu|CNJsVE{(F->gfK(seTS zSy$Cu(A8gO_?XD(tlzuo<>$jXbXk#Dk~iN_YW`FzcCSTMC$rqg*E$Wu7(Y~|*GRO) zq=p{9Z{A-GMjn-$1i_VZhT$FM2rvOpx`um9!(q-(eO(v%JV0tL-`&l(vE_*2$^qx| zY0DRH=Yei)LA9^Of_Za}azhl&<`vv^GSVm-^w2eyQ^(&FwUM-W_Xn9TuzUTMSim2H zkiId(r1;kJCLKGaz-D#N{atNrT6)e!CM;91jNGf4gc?l)2b(y-tJRpB^sf=0TFMXb#^=$xc|c!_GEb#l1S*>wdLg{8se`1Jdp6SpB)X&Ig{5^(F_ zzYYQJ3%DBneUf9283#sf-V$_PK9OwFt!V$p><7cLb4-i0I z7O*5wKXB_r!aQv@9gV<3o8d6%Z%^a9*|%Lo=3pQ1HEi6$XqV2_3_~+t)1^S+F-I+W zbYW;8M4`?8bq#>-Ukh{(r@M3bVt8hB_c_Jpv5}scEqE?n@a(D&X4S+|!YB3ylW=va zn!om2rOg*E(rL{3M0cu*^&DJL;Ef@)U7P)WGuI7TQco{g%P;EZ`GtEw|GCb-MS3eq z!)6sIH-9}78Ak2`y-{_lFRKev{QM?mP)l#FxVGY`^_d&`Pang30@k0DLYvGU`x1aF zbWhfXi1F(vcLdSd^l;2obJ3mEhO7e8I&`ZocnQ(Jo9TH=7C?4&iBQm;_ zX7Wc4OL4Lxyg^&#M9z_-%f8hE_&}CwV%~$8xl#Pf`JC$#rm8E=P?cF3RTVqql-tCX z=vHaN3vxw=D`HX_utA%a>44eQR%VH9kbS)dsPkE z>QIfBO-02~H6~#wR_s-id7c?1iAUqY$w9w+ywNwSD9gd*vneX<ZWlQM$P$>2sh3*ej5z_&#@I%^2E}GQ;=`Dy$0MWLn(HZUP3OxBk zTECf3h`5>C10FsPXlz;zf|&Q#LPAU$vDMDe^ zBp{_?{^qY^uLq7q9nA_T7KILpqpusKZaLJpoQD^O~x<|X>>FWPg z23zozW;mTdmL~A7&J_+EPsT7LD})Efgghj~jLy9V)`zoA3R{b%?)MapvGvC~Z~F6& z((#;O_9E(sr8z1-80rDJsyB03=?gkrU*;5g|Lqc$ZyvXL)e;dsYgX&441$!&;^^xW zE(~J{F-zV90YP!K;NBrYRo=Hx!_jsKC^WtA5&{kwd<#leGr=v77jX2KFq>noV8RRU z>fX!Qt5vi2m>M=AK4atWyOT>Pq`4O0k8(?BQ281pRMDvD^O2slTD=P|41|NK*Z4Vo zq#)+NoP@&_n^pC8>=;j7k4K z2O1(EGh(khF5!i>2|PCN9&*Gsmm_lBQ@(g;8$hT<)XQRHtHG%f`59t(xc&!&92CxZ zQtyZvH0=)fo_s8FB0{GNja5_$+-_ANr1CrIe>>-b8=LH|fcpFAU!4WZ{=b*F$+b)i z`{*uI1AGb<$Ke=Y;8n=G4lou8GXJ|@O@Sz4HzN4ua;Swbcj9{F#GHT3i(kHIgi`9# zaHKhf2%TBH-;UzUAYmxv=%?@Z>N~F7IgR(~{40!A?P>wgl8U#ShTu;CMEji&y&#Ll zMk*t9XL&3I9pWNQT$QpRnDHE~y79N}%SG&TU&(O65R2UJyJEXPTd zU^1Acgvb-rqYVz8I|sTS=o3%<3p*(NJrfmyTLR`4&&#>n)aWk@Y`lU~rK_x` zzKdP)Ua{Yi$R+0(WWSdkUMl$ghGR3Y{{T<#uakQ`@(S4D1@A&z2;aGxh3%l<3u40A zaLAzXdX3)KtB%0pI9;hl`2H-|+AjGrw3?O`%0;*#bpH;+H5SkPjnKR$Jlj(1J}Fq{ zf=~PYYiUzbkY@1ON)}L`&5~|MU%8+6a6b6Y|8Nb$>|FB%Jf^z2K>!8xV zk}l5fKyNP?#)Bm*8w2eNYo@FIA^SDgB4KrujI*58D2)Y&)KDHLI0!FInqrVSG{J7& z{Z)3~>8R;fbZ$U4?#I04Ws2DmO48YBl&l7v6wQX8(|rP~YhKNd6Y=1~e@{jl0fW-2 zsrgtfQ&>mi)UcaT;znx@r>6Z4+&C&4N==QS&F*~OPZ{OSbBiR5ADjyR3E&HN&j_=Q zfwWxbBAI29*jCil(Y#Zw8q~?}X|RkSMRUW;KUfYV?ZHhsupVo_Me5_^joA=cSR~s6 zIzV{dL~4hA4APd6gaVRxj;5ziDG!RNAx3%&`LH5owUHOUvIVbP`ro3gNW)jQEa?Ja zzy}w@^KPukWDM1jM|WcST#J@Dc)@1NMHUZ7Q(!1Rhgg`8f1g585!LQo*t#z`>E$=k zw~~s!iI+nDS+dNzdSvtNKVJU4E?TbqSc_XYLOlvy-*G^xY0QrPq}EyQwJP3d`}yBp zN4t*1tb_rB^8qE50V*4(`7Fz0r&E)&q$f+GS02l+B?Df~)9z*Ai`hz@$1AXn#Brbr z<9LRbWA0}d8*7n6q}4<%S6&t{5nCt#*ROzJyNsH=l6)Un+NG9@3-Q2RyLEzok?i+6 zFxx*agZ1!5Z)BI>D8nlLlKhnpO$#!T4xJuvve^i@?V9BiJKp)9)&O*UfD4(x4@U!! zM<0CZH$##TM@jlT+P3Sw%QNw$Ms-L>mUvaMIW{&{_8SI~$M%wHem0JKz;dV+ zbsxw`<6S}j=D&pU&9wI#ueWnAY^YnovU-^KdG$@6aWQPQ9VW? z?BLu(M?heh!Uf#HD22r<>;C3X&{=Kmv;m!0P*_ltW6y`(_r%UMR&B56(GThQ8)hOU zS;L7Jcgwhb)c-y(ds=C-zLgq(&KAVS0V~NzmZMxY@DPNnl^{I3>&yL6C*t1&Eb#v5 z$Dc0&%7VYtLxTnMdgxaVbK{hIGJw{6^`Zv&3GCAF3iPgk9SKo?t8exo9YoQABe0#I$yju^BbKFry6h#A)_%ub^Rt*hLLF8S{F>;U#-QD z`Lnu4&fEAd1Fk3mHFxc;K6E+!z$?^G z166Sm!5Xa?L>u(Wjet$;Aj$h2=6A{_oDiY|9UjN=Z^2(+DouaV{(0QzWulN6N8HBh zJgQ46Ahn}1e6)&dB$TR{bSKmEp;3ZDbc`+~T3U9(ZIbl$Do4LsDn~=mff(}4P!nqN z5w@d}osv^J+uOW&U$EA94H$DS!O{HV)2R)0;TIr(k6|b5qkjRvXRn*1brhRn7usmy z%Dxv#G2XDXr+nNw?6 z1|O4Gr+IH*1Xp8V84>Ri6B@k?GI52dImM?fg%M3N-T&Ohd5rX8_^rEexQH`-PjR?X z2X?SA`brQbodhU^Bd11iiBw&{F0X|B%bcrV^&V~bRW=5ccQHy?BNT&3-iYjWu?$m7|%Ux&x`8%H@hg`Tu z!08-l{z@XUU-CKJihxUh(}3+6*bUFCj>~#=VhqtX46CkpVQ$=Y>--kRVt7w_+-S6E zl1cY`tj650(x80o8^q0@Rzng4`-GEYj$Zxn{rso(z;|%AL#FnuaYNgl+2pN~i3Q&M zjfd;YF92xrbO^KZTdePQg(nV#u+8Y!HeBam{`!%JcoiI(6vVGEpNdPF12V%%T~qe8 z?w9T>Pky#11q=r53Z(LtUen7BAR5&AO_hd1rFZJ+w>uxPrWAqaTx`1@rk4Sw5|G5P z2ZrVjv32LMjYiy+rT^ocx8Tv*YIv10zB>t+>b%*Z)$_rj^uaEpwZz`V-tz9 z7$pJ;=L~r#-?S_Y|CJBf83dwn&w>yn>VAT}!N{Pw3MltR-q$gq2Tv?A#^ zy>+b0{)FD8K=*WWptboT7=yoN2$Z_aKi!YgC+z(8q@>8qv>y4(Gz zG>QT%L1X*V-Zm&+!(LtrWHs+nC_R`5mFKlftStKSOj7DX7&vB8Irv3L`4&Ktco%6qSQugKD0d?jmbAO3J8{nD|KK5eeV2job%*DBoLgUGIp^PW+hV# zYPcUBA9vqR?&bA*BaYd-#e;tD+b`43xF5=pi`o-9$OqESuTHp4%^K%Zn(jFkW}9qE zOzJh?ors)tKNny2&rs}s6rR9z(&}{p;|V;+FbzV;&}qGhwM!w{>}p+l`tdsl%wQSn zX;CSoTO|rtW{w`x-+W7vc;U~_Lzx&>;qar+7L(oyGRQF{EYtWN%015n;4PW9Ni7%Q z)g|ahokwd^nGG8CfYqf|Zrt7y$FOO84R^a_`aNzodIpDXZ3n6Ri#YPAFS8x<6T608 zIlkqKhS>E451x+c*&C5b)%#izbKvYZ+G2>^I+-ASN0PDaNOdM4Q&r*l)RQM0U!m7| zqnZ1wqMgPG=jRfXqM`AvTx&e`?&9%BAcZ3zw-0+E9!WFLy#xm7GS66A1lQG9RRc1* z%lfs#Eu@lH5R+G7LfUA~QRO9_HpEbKY)&`<^jWO!dXO6K%te@s)*>Le%~!d=^I5Vw zU>5>u+^Z6As=X6y491DySszR-B@jN&-q1E?7D?ao&zsJTBOldG#(IHT&BwE7dzuU= z|MlyW4;aQBWg!N+v#!QMH@EdFnl$)rf#)rI%kf4WZG2?rae>{Cu5xx{m*h^+fTfTf z7Ha*gJm!ygXnli&txOBS`sO@^EG)0G0Wno^^PdRN#SP4<*rJ7f>6eFHm|i`)9V|_M zHtROd!oim)FY)`&8VQUG>7@(7Yf<9wozW5%0J7t5bHoIJ*cdE|!y>3A`!$r2zW=VU zzfxo2>lVC2;~7w#G$2N?&D_AbT{`iZWpC9qi8YqcQgBb-2*OeubgX-h~?nxoNN7L!S1NPe5$F>mj}?t=J^<4 z{DH%dK0RB-1416}m1bxk@0FL&*fawkzTHUdMZFb?*g&Qx8BY-Z>{u-h2`L>gHfCN6Fm8SiTr_Ej3@q-L@SX#C+k0v738Tbm_)v}Rs z{l)gUR9FrR>1=K$$9|Ey#9}&Vg(q9ITY-{HH-V2M@US zWIjD0W*~f0T?Cmx!pJSYTEUm~)|7IA+NF6vFdIW3jYmK=-_cznT=_~gJYeb=SKrtW zfADPQ^3Rb3xH1XuoCBp+5e=lz)C6$l9`4_{*UkT&2QMy9NPH1}V2?j%+u_!On~B_% ze1D`clVVF%))~rS!usaL%riKUaIz$v-dC%9CTNLI|NXaZH>wFq5?A+66@ z+n_F;P!4YqZ)cdAVZQmqKa`w3O*6 z<3F7W+}SH2%aod$X2XKxxDV)7%KYF<_LXnr0YN7*YxemT*g3Y|qlbT&I^ycbgT)NA z8>(dG@Qh1n1~G>#o4)_aWUJ$S^TR56r*^Rl;(ca4ZJIvuq(gFiYT>yTocR-F7| zjaD6$tOw+=}KiSDiU^i~xe4w-iwUwUKGLZN53g?XQGkqkM2^BR+HvA}1U0R$ zRF$J>mCJW=MU!xvc~115m%ae>3-Bx$(pqBr57REx8?21bLa7mcC#~QAO0!<^u__g4 zdcGA21)6=8#xFPc_g;DoR?kGD(cPb2)#4GH+ULF!C)ahx`Q!5(FR15Z))#x#mQ-Jx zDozMA?b=8?(`K4J1Vj&(o-){(eb%^8ssG! z`9;m+zIXnm9xOZ}B7N<<__92*4QainCi{H#+f|cuXl8;?=*1n<_qic%&EuF>#$Cu; zdpZqIvU)7{24QE6Yg_u!JZ@0AK>l{$_uEOoaHarlypeDlc1}v~my-2*DMd|9YKdCZ zX|zO11NDM0G3c3Mni}9~M}#yRLrNCA;B=LgrCTz&FL?qy_=OF3qP$yy8jZjHl2Bh} zXz&}Lp6BJ~AV&Yt3@;pEFR5CP&v)89R+`m+l^FcQsz(O8ETjR%my=)mY<9dBFKVLb3d=wKw+>*(YB zia@ZFZYa72%1>!iz!&X3@kYK`daOe*Ie$HAMe+I4IP0U%g3>k%&Bce<Z&~H{U#8ebG{qwVnKl?;!|NZGzNmH!Bb_(Yim(_a1cF!Ewm)u|Ekf5D9 zY|mCP`|IWO+BP%ZO0~LOTi{o=!Cw_dvzSDo%q{P?hadG&tbApEz{)^JlIVo&#FmiY z{r|_wNKHKfSuS%WeE_tGWkHbDt|9*e)*lPt+Gbnj$i1vrEFsy%SVIPMQi#c@t{K>7 zI-tK?$;v@>G4wL2j{(2ZGzNBLs81U1N5VO1hZyIB<5Sf^Z1P>B6ZzK4Y}T<7IF)KC z`ZkU=R>jdn2hNc#@_(3;=6GI%=m)gZ6iVkLv{CE%Qo{DBoB*5R42$G6NePTAR03Nf z@5R0~)u(;omqwEbUt9LHWSHxEZQg7=!WG^BUKn+=MQA)( z6XyTowFTBkiZtlU&ovE76^6&rqQ9jLp)Z6P6asnVASnWs$j9wOSx0ynNMyd5Z_j)U zGK~w(=Fc?LitX8dP(~CnX`^oc4>%#X&B8VK`PA7Oyg5kXx&rZJtXPQv2@hr}*n;-* z@|V4WMh&iR0cs{e&O855hnF?A$)d18t3$pxj8jI0<3%-G$%FwptA` zlT-s3Ay&~s80dfWNkc9Yr3akN+E|DycLcV}g)AI6;dN|80GnD|4Wzf7Y!uktsTpD+ zgfZd&{y7}pF4QPp268GX`O<9s>&~=tX!3T)B|)eE(JfE6>n;>SA@lv$ zHZ%NR1D=cD{DOtG0>de2N1#njGKp>lX@=IO}5N>eye@ZJ;Zc z!}&a30Td!;b}l!vUR3;|;}Uvh!hEYZ-V)gw&=h^FT2Uer@kf3EvE7ozRO=$%XaUyH zmfxOl>T{VwXsC};`PD+#Qu$8(W|P=bSgS7?N*&pwl&bqWez`{k;c=r1?A!mYKmzHEH#u{x{n@i`^Btb=DQw ztOorFQb9r)-}`J-t>KM_PKooCY9t5mn{p3$_jB<`Gwm=jQK*ElyD889Sbk!kE`fJ? zV7leZ3D`C6yjg>6RRFNgC-$3=Pe+DP4M0XakLu51E?1^dV22#%GqPyjV0WtRUHr%x zXrnrmH*+|0$jJz)eM2o~eWgg7bkW1Ng0Zil%@4{{?K8|r>gT4{n!B6=I3A{F%JcFW zHuCB9H-=lRHx1L%DV?&0D)ZR;5)ZE|q*?b-C<_=heC6B48c};c^cRAe=EsR4FS9(2 zkK%O0eh!v0Fcql{ZulR$JpzfPl5nZZQlMy+TM9($);pOKlb|+3saVJRetRm5$z3sTES8?~b@s>y;H;xC1vcv#ziNy+5=3EmI%>Z> z3Y`^iESY=(t?MwbNS(+q!qEk8r%!@yq13Lx!e(U`lkMW0EZ(2Ns;v%?r}K|{QsS)A zcOhd7r>XvO&sD=OC%%JuYSkpluyx%ZWOU-s@Yi)FBs2Xltq~NoO8GWfL@6-ikJ_v@ z^HS`v-ir{Bcan5Vl00g_2iBRAeis3|!s#d;qZFfM%1$I55MQl?kTCyV0#+CaNv1Or z4XoR(usYwCEk3JIXfVn4aZO=P|MF?pJL98pWF2X?EZ>YJO(fp`f9!^nlm_7mSbg`i zj_+2)5s&=WVK&KAC7|5Rf^9X?*WN)2nke26dy$w5UkIPHfwpM5M$NpPd!QF=^(+d4JV6E%XKU)sp`B zP|FE8vnrTqOwr6C;?7|UeG2gxpPZ4bqT)}Dew+f1tp5vNTsCGHt4(=Lde|M#ho!@u zq&DlYdt-u0D_<5$eox1CwC}~GW6#JZO=uA6EdId?oKI)Yo9x9{1f%J%VFcQ9+QNqw z{3ElJW9^%!S7SoIM+WA<|3&tHQqwtH2@0=@fFpjU=Rt5oGKhXrgV-l(&fEaF+DXz8 zEFnW~pH_@b|NVUWy)IgQ$mAIscbP$D&h%?f8p0tsqmxZVcePcuomUM;w<%jFYdXrJ z-svS0bF^O6oV&9zr*#}9N^FIjEzIq0gm^dq7WNO8C;*ZGZ^Ox5Ii>%LS~S*^%dt=D-C;s46sbm9Bo`vDiW1^v?HXoxDYYhJdy-@<#qG1Qqx+aSP0OE} zkiipwwm38CKlHsSBU5+uOsvTbwG>c{xTcG|_&iEqsJ25Ff7bM$B>A5h*L4GbIk{q5 zwG^;{z`5_VM&2E^-!(r3+NO(3>nC1BJ9C@vFfgi~_hoa_UOkf|pju|XZ z`0}i37E5i)u%9rr9rpQ7d5ne=7c`nwKaZj@jL{vxiARJI=)5Q`jrdId1??1K^zCD1 zhDq~qJqx~lcfl`-@29US0Bsx_)X~(-s|xpR_UlB$jdz~;fAnx=vS6e0&$$bOd(xioV(T3eq`j~y2>Q)I#|MWe0 zHQzAh&xnasv@Mk;qheCE>qg-w+E~vCb1_3*616E9{r$J@$k`w7QHJY5xmwZ$l=!#U zP9Ip)F6(f&V5*1P? zw0QKp=EvMo=@VfIhPyj#$;lX}ka!uQTgC8hZJy}^UOaFV_5$$C4F z(sAT$cCU%Bf&IsTcs!pLW;6e-=pFoGY1`66wFt#a`i(Uiqi#L`t23vx7^Q%Dq4XuK zC2hNWASIPpA;UUO4zW5VzhS;2KYbd!ah850=jG%2CGbc(LLHVNxm-3ftcbxoMU`rjE<_MH6MKcvZ2gSbU|U+ zr+~-GM#FTO$0cCTvzD6#+h1+|K888{noZ{|&gze9^Idx(8>ukGn0wm-s1wPeprXJW zwfecx!WZrEpM{GS$kFuB6qRKshcul0z$jtCS)tyWI5$o3Cgo}TjD42c;QgmOo+a2e zBoR%dI{c#r{0C|#q7C-BAm&j(Fl0tta4E^IgYT#UMbx4_b;Q>|-hlG^5zVQCiAJgsMta^1AV!vLE-B?#F*!ky~7vM}Lz5Tlbo&wp38 z@(RS*uP|SW-NfdRFz~|>t^2FOah7@7kt;H=-4}P)pn)7gy;G9G;Rc1QCEMV?I>9qv zaybc}@VHGVJQ451uB3QUB64%2xax;Bzq{lzf-kz={+nM+($t=8hC%u)TsD zJG>wsiQEp{T07TTYmsvmQR(5r>ZMcy8}hE{XAdM23w6aaFH9CzjC`q%Yvk6Pw)m+K zYciO0{f#{Ku#Mg?w}y@#|NW6Z>hV|L-k}3Og-EI`am5B;A-W7;(e_FK{maAjuwZH253LWm! z93ll`IiD~HLLk@=JTZ!93EY$|bi+*}$#clrv*P5Qc`I6^095Uwnw;gqAGbl><+=NhC>}mKs2XE-n%{DVnG9z{Xqsa=a zyL)}6I`i{yL5=8LckRM4MkKzK&Bpj z1UNqb_KF#lOIJZNUg7&=C*U~Q5j*tbMbIDh?Qvxg&*iyBwXg1;~`MZzeDa7`o^7Gms z*1mIAS;rDZOJrFPrTA{F{D9Gu)^EOn7cVfL%z=Dl?PFdrGFx`=6bm(^Zm2{)FE9ng z%&}|`d5BvCX`*{~TY#_fv9Iwk>(MVUxQR8vfhU_+ob|lNc2v_3Q}z=f<2?aE)Ua{n zw5?6=b zWehj;lSBerPNn!XmW@*usxTDqyPv^97*SzB!dWQMSpx$Ib5ZaRO!^3;*p3ZH!N(i_}%^Tqp8JO3WHFrQ4FCgXV@?|%C;sGs9h{O0JkvH!xH#iVS zz3Lx@rhf}C`(!u3IB_`m+WF+K3$4cbUV(tOpDUopMU$UfsN+S339Z-!@lP z{_*9n-|lkGRA`{@!B@M$dfy`P36G@#^_{-IaCmqlf6>G1gCTn9vdMIh|cuq?TsT%usO2(xpW z>RC;;0O%JZ(g!@X(nOs%47JJ=QQQMQrBNnJxTWcNUxY(LG!W^zWT)qaLe6j$%uO;d zZa#QE*|q*yOO1eh1>%pHe=M-g<7$?4kiu-$`pOh8|YAL1FvvCnc8G{J?mXf8C zgyqrXFF5-*wye6rtykcqW4=&Tc!%xaVe;=iAhPSpaEFKA%*s<~*P>ie=TVw_<5!6} zuRQC;08~bf!Ep1yTP$t@96L!1bgc55-lspIjfo{H?T5x(R=+FF!d-u-A>!&R*0Xuk zBOrZ*{LFYUtrW9#qUl6zDNaYW@V-G}!u=yEhJE7oM^mBsquuiogUn`@Uo$~iQX3ay zH8-=CenspV98WJ(E?UvlLJ2xS6Snky>J9aYBJZlt-#UQG<|z&8I(k8tj#4eBtpE^H zvtUN?Aj_SQCEhjADq&;qXwFq|ry7y0zQLtC4f4xAyz9i_@-5>lyD>-L@tcL9ws3~n z8bSM0Am3x}y*s@=lA>%({LYf*;PO?1eF8wg%T+rxT8;ammm~y=jBkTosALq6m5UhR z|15W940HPS*WFGTQ{X^k7zbM4SJ(r5&9HXMQ0wTQ72~)+0NZKrfvn^V+#yk;;lTs8Gs_|TPgdPGwkW*&&dL3=?63gu z3%e(=LM$Eo2iTIs@1m_hI+HrKJlilBl4`dS?=5(C zIhE(Zg8*A3W542tUMf)QgO*V?0z`5lwB?%cM1Pv*I@qWT$|s|nF_rqNV!0wwiSqL@ z+qzDlyFT+V(X(QEj*o}#!`Na~m)M4qEnmoDSsLVmUzd9HYd7WKCvO7BXV%2GgElj0 zb(~$Gk$BGBLnVyFPl{lxSnF8RdS23@2Wl=>D6%kax4S6il_x*{O@pH)yiVLzsljkK z6Go~d*DCv`r9ypCuOIJ!DtXUhG0!qT=1)1RmyE#2c{!WG!)J+q<4})hCPcWQ4JLdoi_*-DKG2t#iuB4-t&bE zD+Z>)2X2sV6Z`sfsc@a8W!qSMF}q!a_+v0)H)t6(P!WC!XlUTO#Y?oW>6`z9{HV5r z^FSzi63f86EN^%8(mg)T8>%Sqs@XEbzH7dqq`rWj4(XwhLLRw>M-7F~N_BiA(7nde zz;V3;?B5sbMdMB_(K25*s+vYQ>PABtkbi`@!tTvjnRRE##QRUh~R~o;2D3yw75ON&Ug_G2%a%^xSW73WHNQUh}IQ$tW7taI$$TKgTlQ z_5l>$=I3H_2==_Ly*jGUffq;m4$#K|dfKo2SR#*RoMCpjH?_+{(r_x$M&vDEj`2}Wp# z{DX7SQ?HqVa}=m>y*Ln*j^>PxqO8nsvPmBV=6sms)JuCAr4huawu8NYV28+(k<<`Z z_vdN`XZ|{$T>!aj9*O(9tByBJaDhGAM2B#=WLUN&MB(EV;;ue+qV5E) zDSR&!o8)6S9aYytS}{OGw;g?yO?Mi=J%jRjo}8+IY@M2WE}-3&r8>Ij2PNMzCo*~I zj;vVWJd=v`Qn^|5&x7SYx$~AwL@_ko4Mw&ufFB9w`hAAr%Sf7zzrkMBsQ=%$a+MBl z?S1eip#x~frRO^LTy3|D{S4bWrxFgiXmK}b*}pPGCm8IMJ;#xp4oc3-MjusM?9hLRD+&Ch37n zlR1z>5j&#L;P#43E`$)B!Xpf|ER572^3D$Si^jLOnFs~}F$f|DaZn`5VzizON*FGoMEimvp&?DhVU z2r2%>WxMY@$t&w9_4!5g8hd zga)UBQAgvi#b}KvVw6bChgCB|8e{!e{MBrJlsWvTPBRYQVbgH+P+v`ZTI)oCy#X7| zD(CD(!x$2|UE?Dvd4Uxdb7VrA{dxp6@q&hZ$!L4rL&}F+0*zz;z5RNz=hC4+|-e_icB?u?tm^?Xx znvUsf&6lkeMXblst-B731^E<4U=9o;pHfgURk`IpSw?j`04T#NSw4eOj{EI3T-5vq zvMU7Po&pqfnAk=>D)qi3mlos>fBcnX4-T+q8#xlYaeg`Smfi}OIt8TI`jrj> zNjQQr*pIRKxWa#c*CF-RH~Q-5up6#PbRr7OqfNF0$<3*8)agG7M2I@!E}xGU?_#cX z8G4~L=O4fv!iU;qrxQ6eO+dk8^?s5?DHCcL{bl%KKfy^-|O{HzWB`C&4N=| zd3pOB*}>0M;Wgq9&-H_->WO&ap|a=d!5WFyY9fzGLLWdNFs~q%b|5H0Ljec>DA6!? z@7q+I9!0%)R2vT2ZTkDs;3@?-p;_hF`?GuE(ISPIpsecdsHFLL`7e<#>gcA~ZS7+X zR}ZRfuPT}`Y$axrMwXMM+t^;&htwu`04iZ!P%7?R=o#79xi|p5$Uy)8Li!#%(=P4}_xK zQ5{(xNKBiCcI<~~m=OM4>|S`AY;-K98oUBi%JlENDrBQy+I}$Ujbzs3`*@c*OL?l;)i&d^ui7DtSw+82anG&OzSQ0s z_v0ybwn#P!byDfIz59{L#pzpd(XeFOHBn|;dq+oDur7&m+#d; z*-&$Y10vYw>UwMNj|I%HO=Q7JGbc{xZ$UN2s<5nM1tL$qjHog%r17zXHJ_2(geFPG zA!ZlTw?aF}knQ2vbo517*RM9U*Ea>}$km3cLC$pbS$;8eq3v%F9_nM0wzn^K25si9 zO%*2xh3x4CqZCGuz!dkglS}9zYU>+(ZlB2TD^_bBsC7*+6Wu^2#xwmaK_{C5wjz$7cEYG*fQCtuzta%RA;0=+&Y3j8@q0YN6tj zn<{&ViWK7Ul6yz@UOt{~^HzkI1W4s1meekV5-BhKtdnuoLV8r8ZuDPid8!E9zyS>l znlCyeM+uiw#lR>7FZ1^=}DGaoxWRCefl=jEByMk#**hyoRw+$`$2 zqiQ5McVIZrKyBXjyunhf%4^OnXC>UON4vzdM$S6NpwQ!H1mwQ1cQcOMei~hQ6%d7- zt21dnZuft()EpS_H)Qp;7Y%+^IUfK0`SE?>4SNEfRhWkX=};Nf*qcsB%dZ9K5?xh5 zDc`x?kh3Ban&VCC>!nojV6XR9^+txH=+gMeCB3M3I0!gy)=4f%WwUG2rvqWl>T|y6 zdY1;P@2Ihpa+@{zQQIndeZ!}35|O*7pwtZbnro{R@*;3Kp$;`f9!Wcf;idA|l@)n) zO7XfS`BA+*XaB3PHziNcIEjf<~|L!)2G)N!;O;z0gs zkA(s>N03Q!IS=(r=WqaY>{IZCSKEirKalqm7FFWi)`1cLOQdwdb^paZ>0$V(H9Y0% zfN%^5r)vG4tn}QL!la2=z3*M;9&5ZTJ0do?!OC?&e2pq(_etCOZTQ-Z)r`IsSqPeb zP}6**AoW|fB@?gSAg^A53tV!`c~;Q_WWYem_*Ee>3LQwtGiGL6DL^>=>lwqVhZ7Y) zKuL(*SDk5{>}u2h<)jg?Z$CE9m+Wnziqul-@Z5j@@@zuIS$Bh46&Cvg`gA zdMS)i=oi^x!Q3u9j<1~=*b|D{gBFp>=qZiA>>>txS&8&t5(POGNeQp|&0Yl#!<9_sb4c5Fv6>KxxEjAngvlW6?U#a8h+c-AOjwE@r7Zew#7l#u z$TSA&9&Jxi2qZs*h6Q=79uO9g19<2xh|msAnsxO*u*zpBQ;+L+$RHtS2x#m*Wj(FJ zHo-A0VR(K4BLo%KWv9%`vi6oW-+RqBFQzGU3*`xV8j&a*BE3ZKEnnBju}(0~&u{uiTe(9S=4m6%)qOJ=$_{Ss zl4Hy?Y#uJ)_RpVxL)dBxO!Wb7*5>NQj=AUQ>bM|ibw+ir>z;~kHMxhkUMy@NE&6?P zG`P!$MJbBoj!R?2z(H5>raP;dBrvf{G3{IH9EEb0q<8}$Rz_vTl4CG7$!D??+p66PIW~ACLygjk=}Yx*s)7uM z+DUbr#B5HG0N;et?wxA|k!grEH_x6YJAvHHY*ioGkU`80$Ap?&p33jUlHWT^HFXJ` zpvqQrWX@np)b2;&xWBxdMZ~y(tI^#^zeoN0+<*n}jVbnCTc)U9jzr|hVP)($QB<(8s$L+{$ zXGc_d<*#Ux&s3D5SOzT!Eb6m8(ZQLFL)P!w4Q|K3dwUAe(A;y%Wk2gC^rCtLd6^St%0R z1?L2|8cs!Pu{kM}REqHh(jg1686!bHZo&Pw!qB5Snkic1)QMdY{$38`JLkWI$W_h1 z-_L;T*+`Ij_|?~KtE3lKlG#2`MR8Yw-#nDBeD{eddUO$13-;n4kl2{IB3Cni_T{85 zm^;&Y2zuntkUXXMf+v+TM0QtHXdUlqWm_ovGpV;uE%i*s1UI z^LxUAR0=*#2IV(k22r*yve-9jh?85c0*v)yg1mo{rc?Kkzrq{i)5H#EXo>+JgRne_A+1eOQI0Dg@Wb&Bzo0+g?I#??MC`a zT+)F>j_HN$%&wQh@mzriV+(-s1p3jUzy0zYzkgUu&ouI9Y6)ViQPaZnpa28f0Q@pk zMYJc3Ea_Na@|Bg=rBdCmlNYFYXDq@AnoTHEKhRd_}%Se9U zrs1FWvRR8>cxZ3Go-UB=l>1=HhEOwm3o~vPZI@j43>M;V*PUCWT!)^{qGS+3*|6W< z#zK6{M|_$4nT-w|<~klsI=12CM%{d@@HxQW+$P3D@@^Qu-+m4(gdb_-`1Hd=lb;FG zL;cxLRPEvW`|zDijDt8#9P4l?ROX zYI4Fm&ERT3Mqxt98;gP9?{Yd%n!pfW0*l-~0ArNxjQC1=gkREoL4J9wgV$6CEssq) zh4kv_^koW@`HF#F9eFCvpZdP}w^$GYGk$lbIu7dCUT{2BZ0;MtR-X2UF+lPf#%YH* z)sIva#xQYa{!@LJxWlPV--`@Zc+S8Dd~O3CngBcxXKaVYslxth&dV8`ysxIjXsT;F z3?o=gr~1Wj`g|x zF5{$e&~2tTaIltcaw$q8%rFR@dr%ILG+!|rW0vY%w>h;smeE)1w_@V4LM+ou8&Y?C zpsR094;+KkgH9$+OW^MX^ZXripqmUwd>Zxkg!$#6Jtw-d2QB?K_BU9saw|!`zj<=N z5WH8Zv{u?!S3S{?o<8<*_~^#InjREfPoST!I-cxcCaZrk&Gs~P0fhfUtT=4>8%RL= za54%(OwdW#w^ISRCfdSAmMxo;&Op>9eiI;x3G&e5HH+-T_IKgM|$*A;sWhTBSjsGsEcqsD~V z|IbtMyh8=D*j+P0%X*wLZ2^yizDU+}IP14pN3I*CnUOSUVm`S>sClq&baORv393Wb z4On-=9no<;3oNhE%4oVr)^Olk^6%0c-qoAa4LRsL&$e~|J;f>{#hWNCSmX?N42-#i zHX3<5Uea_K3GZ24bKaGWrG7Mgo98`?@Aq3>C(g!hg#56Bdk@w+uFkt= z-V=fBzFO(K)c3Si&Bxs#oU_c3TC{-;U#2LR$ZZJQJ-~4b>gJQ*rVeRKPFV|@nN8x| zTuA<>nyXJg41dc0i#eVb>WIVOj|DK|Y`Hgk!*f&*16)kmw#Y?T7eZ@*r)z#i;;)By zs#wKCnnW?lN=gOIv=WBGu!xK zT!?+#*%v(U{nVSI2iz8aTE#W)MQ-=?BSKL|C_}K)xc8qvGS;7`v8e_?T-R(RGjaMD z^M=Sxc_YpEsH~$tXFC>p`N?KmlA@8P`9E~KScX0b*zpjPO8Ii$w_^~lS^fTR#syHZ z!)5x4q9Mn6vHWegZO!DfAg~(rUkpa21Q&njJD1aXKMz!jsp1sPzX->DT)!cwh2MRx z9r0;iGpy)Ylk*tcnSB9M=A6LW=FXkI6N&LKA=T-}Q5-J?p}`fK6GM$Qmi+US{nWpX`oWu6SDuzaNO`AZEIIBIYFkLIkc+one=XR%En4SL|(SB{|>Rz zw#JD4$KEjA^cN8!)UX*kZD@opGe6I`Xv}mn&T3Kh36ysO9KVhIal_<$O zU6vL_+~A`4wiKe4%I1L&LlD^(@N7`F)!)0+b3ju*)|-9@=XvOKU?QG%y2kSMaOpm9 zA5K8pD1jLm2kDzr4lQb8cqRV9_PQT$e*)_-Ch&HRw5=En?CMp?brU z*zByEUTZ!ogeP{C=<~u&d}}mLbl!t4P%jOOCi7UzY({!AC<;>l0~fRQ$Z}z&|5;e| zNgq$teWm_Sf?NtheR!0*YDj~Zh4{2za0N?OkF;iLqL(7NHNu~tK-EUuOCeMn;LkV^we+ebZUZS(?Rcx7_B8 z@5=bUnTWOEF#H$J^T=V3WBl%JUJmQYC6TIo+vaRLL z_1y{=y**gKTVRBIHmJA_pTAOTnJM1EvXfdK8#;WMd)SN0^F*d0=Q9`6lsM{PyVxfw z#zY)AJ`~L-E85I@Y~JH=7#?HO@w^xgl<=o&?ayq^BIjnoJ_(y7oXzTLw}Xw{nfuN9`@!IOV@t6`V{C@5r9Jdj zGK$1u%Wc0umZ&O8+hKv?s7M!S;`D?_tRF@kJw1LjFMYYDFVlj&Qu=U)t|TTLNiRMQ z{&N=f%VtEWwkN19mdP!!JRVYAt=#zjU?!&%fi;iO$*rNnSw8S_#ivbb@J?>X({dDa_tpk^2KibgQV+HQVc1 z+@H8^tX>3j=Wi6gxk7?!{QqOJKUd1(1sm{~jc0FpxhD=k`s^P($|fvU;}Acb5U==w z4;hEivYx&I+GJQYV`3^vb5pKHW*`)>->Q3vTo{Os#x3(+Q}v8-sAc;zdOK<2NF3LE z1FnxRoleDYK%vLRq%I0pbtmNm-}eZ-CGPnI@Qc!plaAitV1)pTlS^H{%dYO?U?&(bs|dg@Hv+)Wf<2ayh?^UuKx+pL2C1J!taA)pwFhUMP84 zNm*+K>4xW?9@nj|!T|IE7#MMMD_i`-1-@H&o6NxItyfBoJ8*^in(_7sQ z&;xQn9p_>c#UR5sbe#jej5 zsCRb6Q~^tb);s`yb)-jc>eMnDO%Y+C8x=g|UgL$G9{&N9QOtzk2Y8gk7x*Qkkaln%MxrY$Hrcydc_Apy<7viB<~L`h(tA(Zyb|GXK16Cc_Zp z-0C9BTpT5;r%ruqt|}6XZ(we@pp?a3BB+?R$~}OJNrX{;&9U3_g^%)Cbmfqh~jIe%}u6Pqq7XEEPF`gX5bS-neDets-u7gHFeN*OU^@vac9wx)`F` zC%~XMw-6xYO&TbohBSP%sYzFOo&qm`ac~-YM2$umMjGG0-yf<(`?C8pJJVTx)s&@@ zer{?$itBY7SN+XvEEe5je)*QobLr4ibU^dFkT@@eXLX4;ioeNex7l)tEb>*+7bor& z`}*Mjos1}WL-Zy85%$7L7{`6b)AK|kzmo%~vg#cGA%q&iJNjU}ytI4oB+znv*Su2} z;ij4{sI{4D{-P1Abb z9tHLAc-`GI!thRn`^T2@Y7a&=k4Tdz>~wlzT=vt0Y0z^cc6KY= zAz$~K;q{{JGMr|y1xra*Zc4+WK@Jf$3Q>Rj{n5$Ty1TXxpRUibkkXcr`IXz%|2=3% zFyW57sMQBcA7s9UIp2q4<9q1mQQQ@n@#=?lIX8s~?oT}j&qKKgFE8X4=1^iv8#;9) zOy#;i37Xjl<> zO_tyrsG*>oxs@b0M_#h$3s6thEw$pkkt8=?)#aa0{PU4-o;yCV59Wra*hUq4t~WA3 z-!BB4@UHS;3y(MwVt7(|Xf$wJRP2540Z=ZdT%paY)<&j0LaX->lVLpl;?|riQ>U7LS$);PQwHDDLjX!)v zaxI$U4et*5cPk;PmPoPVn#qQi2<>4A863Ah3jTb61r&U+Rr1Fi>&J84r*Ti%z4#+8 zJOgN7c@AClyc)wbdK~)GBL4N8qL8m|I#FXhZmD|^!#o?;@bLYXkd*tE`@)1HBrQ4W z6dlRpC8x_JL2dRT#7;xR-5;Bx!f!y+ss`V8twjM5%Q)-~;8J=G3n}WNh!{rM*RE~T5WR#0He)N5qBk_UH`J}#gDQK7oVUKo`anpYM$5D>O!W- z18McWyID)FMEB}PRVVL18O8az7mOx$Bqy0t4VZ1B))G>@iscrTuu)bLQo1Lf=4cVE zy>|ZDt54s3u){gZt!?85Sm}M8r+6^4JOp0k4^=)_E*{KUr!j!A+G`4CTJ9?}U7x%k?VWT3g z*ZF;AFG&LS?4}~T-W6U74eNcRxXi4e(Wd?^h4cfFCc7DVk|K?-Ypm5}|4NC#c(gJi z{SP$*;&Cr4iVOcYyA-KGcx%cw4aYTdOajjQ+U-GbURel^dRD%x7htGwT}{EM+BPgp zE~tD|ci26c8iP(O+jPZ3x@jOh|zQz5sywR`KiDeGu{31#kt|32x%D!xmZ^WLIdd@#!>EQVj_4uVH%$BELN1P+=6}C5+ZAi~?r( zR-JeJ&oRCQlAen{-M}Yup8BEbj-hRR5Nz^}uI;gi%!xmZ-@2}`0ttr;_7Khl<|M4_ z`}f`i2a(UEy@1Z#X@nwXMKhonbO3g4=Ma@;<@&^sG|7!n6(gCGS3j&r21y zGNES9A8LpndL)!Jzkmynjcxo8u|nH|1Nt$YTu}2{<&)>zcShY7%${#~0j&aETU39> zmE%8~pkN#`HBmR*MA>J;cY5qdq%L18`Ux=!7~y=O4l5s$zJ`%OXiyavdL4F30E!i*cA zpbhPJ$DYT$%Q!yD4XgKetMD29d0)$ekl?c^?2VKf^J9U`*{m%50Sv470>G!+TW}Xw zXr$>{Hv$F;`h3e5QJhgCoei2ryxJi9p|PT%{H3sbkS!T~zIr7FKc|)Up;vluY}VfB)+DaGK%p;*%*RHTVkpMK ztP7ywhse>3jjK(3tc#tuMaoRbGwtq(;Fy=z#xA~Dxj3B3<#%~7$D6ZN8-G3a zGOH2G%$aJRg;C%8YHGUE>)+BYE)P`a_&UngtPuzQTB|nC;W1_M@Bg#69e$sE@heYj zu5o>^8_q|3V~m-(h2E8RAQXMgC@;jU7J zvWgb1itfk~d4%i8o4LovDj6QxD90y-J-JVD5FE`$9dfg^=oHa0Dx~+%I7vj_I`^m< zljse!&U$8UC~Q&KQ4dukT4;%);TzTO?#g3DD$^y0GnJSR;;9827z+4Gf=}En#W-&( z2Vr7X5EXjbqxbS;#?^f(VJ4pYM9)U+G3q(? z-90uQe4YG5NhLnwzBz(D(AO~AJNljH5dlFtPHT`}vB=?4kg z)TCOT@kLTmm55igZ|Tx}7}2EaB3y(g5Xcjoyf)wOrDr7~NqWVt+45jy3!rT(4co+? z<53)CGCQ$?aUhh{s)N+uT9!-)8}5{lU}FMSJNZYC62<{O0qr3|&H5%+w0-?t?3dl0 zX^mc3E4Y&`Il^?HCFHG`T{{LP>2AMlypuXlob-HARB75=uiX2Tq!I5d$|t;ZJ~sR1LEZbrm+(W^B%Ei`Xa(43`0e`7-hxub>hepZt6 zHBpKfV&JTPVK2y0s!ClI#JMtKWb8SXHab#SYpi&qz%kYkvAbzf{?~%Q{?~tM|L38A zBfuM`;FBFUQLAtTpFj0IMh$F_{3<2#y4iDe=H)BvYoPuncb7g)R7Z|;gC&uuegqk6 z+RUh4i{f54rMG_3%RPgWQ>HRv?y7;OBh;ey49DsefyUJ?xE4r(nIfk)2=3NvN(hGU zOpqkcX2RbL+sb@!s3fTdNmO6{j?h1f7!tX1LwFdF#+&j8EAl`Kz7%NYqITuTYU)jU zJv=MOyOIW#NkL!!i3q5_ig=tU{+!u5051B$`;?LsE>$4@x|?>8d~$-jZ&z1L35i$# ztxzwQTxkB_m`pi1hEDu_;#Q|L-}Het&Gi^p>_}yfaM2U49rvz}e^ZwT(HuZLro?dc zE8A|Zzeaw16ymW+rJ1h*=%9ALujB81`+G7=K0I*c2n<-r-Igt#`>+~|48Fg1Kw*jytd6T$I&kXBgPzsIBd+x0)-^)G;ZhOppcx!>^P zW#C!IqbmI98GH>w7kwu>9P_>Iy3pWcRN~P@xRRU$qi#(MlyQf&Yt(CUbmSD{-dF=N z$T=C@+3}!Q*llq%n#mXY7mi3CA8|anXInijq^prXrxHviB1l6|kVIlbcb6qn=BC)H zU#=xO9|b=4kQaREw~L>qkay_gN*HJ^aZtEO1P&zJfS5_OvFMh6f82-$7vhBYi`5r6 zh|}kyDR?}oSB*3<)L#h4$YgS7pN&?>LMbN2%0!R)OUwX`L@^+OyrlZs0 z@Te(Fil6-+Ot~9g4U?=3Up$(4`1^Aq|D-rY%lt5LN|+P;(d9N2c;lZ& zRcBH8p0V)9`2Qpq)pi!K$_Jag(1D$7f_qF=Zi$!i) z81i}22*SFrkhS{BTI`JisG5>Syq_i8#a+{tM;b^FN<>BiM@{w_`}x7KEwtA2Yvlz| ztn1mh3(fsq8X>Cid5W(_K`oXWaVtRag>KpB~3?H=2AAL-e za>Q>8P=6eQMNShQJseDd{;b0d^hNVim)e!7M`}afoVICl<^J;G#=Ezfc(IWN1W0mk zc2iVoQu_Nn>S^VIeapb<8VQey;~VUPDWmKPMDg{HNt`A*^@J`o!>8v%!T$lzzklI= zYjD8I>*bX@A|K`F4A7*7vgq#OxB*sx-^JnRFP;+di*LG8uc_mp4iWvjZ&yXqB>YuU zwK+4J0?W=&lD>!8$O+ze6RP2~MJ<9f%4~k51+!x&5wY3Que=Olbu_>kL5+rPDuDew zh0bpFird0OZ=p!VEZ2nP8QSu9N`|vX!&7tSPIIy{-%TXx7h(V?*BNNvb=9LsZ>8I9 zmoQ1y%%VDDzEX(vW|so`a_(2NO{PnHOQXJpGQ_+1^ds8+j-<$0YUsUKrlN1y_SyxD z`PpKlW^1&DVo3wgi2Szcvc_D_Qi5jTe{r(>T<4#E(tr{`{LK%pW$H zMn3?OT<80orW-lB1))wC!mLM$V2!d&3PV~L`QpvQ$j2_OCG*Qorq1{!`B80TspkNk z#J!F{V4sNoGsWx04F&L{{Pv^FXmU|58DjP4Yb^xp$#{&$g3`SKEsnT>lXs7a5awZ& z3rrmj-8;`2Lv96bHz^I8$rUyY>U{8_V}WlPR`<^Mz)6}fUl^;yR#MXl!v=+jctRG) zrqyfJx+f9`rB-m4q$(+g+*G&zil)5t&WeHzzz!}5=LdB>4hoPca0{FG-~5(hP{kE8KfCh=;Z2vI16q!nxO`SsQGWtS`Y zu;;K#X{>N(4&Z)ooG<)EgZ!-(TFil}wDEJ|R%LC1ij8EP%YM^%XZfEyLPh2H{FDrb zts=u4#KrF*m0g>BIY2phq_N+X3tE`~wgk1{MJ|TI9>Er*cq}4?d##K~#=}-XL?;W= z3XPf0w3!aG@?6f$i*)%G9otz@y;=4bQ^3C820}fX1h3ZQX{W%BaQ_%~Geg-z;c(NQ z)r?E8tV{T1o2Ze$5~QTUp*Flsk5Uh?g^6o=(Db&4?puW#qr~WE!?Nic)+zlkR+bX4 z;|3Pf6)u%Nsgp_)Y2hf)ujR(@uf#|(^k9iTW|3WvS5lH05Lq!c)!h_gx=|06jE=2w zcI`Wv_C|x}xlg6^g~H7ef}v@{xLd&?F}`r&mUbdpSG61wI=_DdXC)Uu>~JayNHN0) z6Gwt=@_H@p)WGt^oA0bn4J)ljUJgW3`3P~QGlI)>&|8F}jd)#F9J3`i3;CJi#*_5= zc3;P`z%cgg0@Mb5#9pT6DXAcYnN6_RAB4P8=9ch|GD9oJ^JGqMR=FWS+#)=`W|vlc zwcr!`zCYYM2e(-!Rq552mgey}tc%$mlhyQ91)i!_b4o!+v)99PNp$l0S#+uM-wHNU zTLeD9Scl~#fPV;;-6_PubOosxV-6|_A@;rIotyHi9_*L-?_yH?N7b8r^Y9?l%q@{t z1F#zYujG}vKVKDGm|0qOYx?5;DIh>Bi8B>p zGVRUl%TLmw9-ECn4q0ZQNo`z1_7t9)evW;qytW(Po>#%~ku&Rc+*d zu@;c#wxjKS^9(op_}M!g8={e<@VDU(D*cEi^0;Of z!$624-Y;W4XqQtp>g)Gb52JDQ<14C0OBx&Yu14D$u6r*&Fn^a!)Vhp_4i)QNq#ylf z{UR_$G61%j4*F$mH?(XjH z?k+)sJHZL=7Tn$49rpgx zj}nbBqUc-)Jyx0X=pY( zYQ=a_?vli640;`3GKI}2ki}FdVq^v_jLRVGop{MyzgtO_WKE+GVDPBt?STawDee_ zt&#|s!Jd#vHLg3pJ-Bw{HBn+M=XxObb)Dk$@cp6YCU;+%ce;#LL+OJ)5Ar`l_YD(-$?p+{mXDG^l}kxfch8AfVRb}}x-+VdAH zD2{I!cK%ShWT%?92GEGegK{JSY0rv;TJ}i=%n2C#4psdj3kP! zd*a3%Z~4$W_m#p3XHwBJJ++_u3x=^;-Iwxjr0z=oi>D9bSdid#Bk1kHhT3 zhqr`wO83C;$g%0TbDp3y<(A6aw7u>F-`C!HX;*+Rtsvl0J<3``vCO~H zQ{7qAGd-BLH#b?R({TP?;XH1r<)cr)al36Y;V-tgn9GMMSF`t-O8zRfZ=u7!z~Mk+ zR~vgTf!YcVB`r>0oah&TWr3AyBC!ImvRIm8zeoSfyw9T8sl0F6R3fqHw{GI)ODU|o zO)zR=BLa9RW1fCkF#ZItZh}g*c7H@mNd-N;bHnvYw`t7NJ7_(^_2NS*B-KkzD!%xa9Tc;v#o|!CBC;eN!NgdIn@KR4r$1Tm1N&KX*i~s(Ym$Z#J8s3H9~g zBrTemIP3vlzqk2ul4rSt)lST??+c`gGB4d&aS*axGLc z*Y&l%F$PBI3%}BseAoMj{^O4ZKy`*YAhsURXbot%6BG+P6>K!E<1df#@j3_uaqEDu z?mfFnn$2T&(YM<*aG+JBzO?hg2tWEGM)w=LVxr4&9bA6mkS{gz3*VJ^C=Ddfx7Upl*? z5@PQ9MseTP*!#-{mHv)Ldh(<&t92ONlcnnO2)CT@%6F~1jmI-WkE&KTsY`>voDuq$ zisz(0>rnXsr>Y@ByVOU9s6W4~iDl~nd$Zh6-8 zGfxx7OYXZLNi2!)e}QmT-w)CZeaql4I9qzp+kHYF=c%7$7A%$3sCEzWq$qx!TQDezgc)mo?i#M~sDEMYt?ve0|{&A8N_{i9b zSqVT%o*&ply5{{_RlWkHR$Ua{%Ql+ch=cfEITs6Y|7d6XF#i7O&@N$lt=OeNHfs9{ zdjRF;gv4_5B<_Nr(a{0X8&S<~ubI2i|;hXvurqjc_O6*$40mMo7df)i_)<0Z8 z(D60brqg25$P-)l7PQU@8m-=t1@6=c$RdC0XYtRRadd=dYAPF|R|l+W^h?L>9=O}6 z?6YG}kPzWvC%T*K+@7k+c(_?B`u1`&+2bb;J;`7=BldC2rDS-xqxQ!7ql3wEHERs_ z8*vCDZX#yVJum0qx8cZely2f4TQDx`+f+SGh%LjuuH2-rp&5+md?g{trqTl_D-C=; z^GVvUsMvLDvLNj`UlKIL5%$h8QtJM^ZAIQE6ad#ucFYFMHWN>M&1Oluf>bTk@3@H# zAD<~f!+sc!+d3S$_+%)ZYCLVG8pM*gsc<{=7Qe_e=P00 z8|~&cJ-x~9EH$k0{1+;{8wa_+16GCI=Q>Nvf8!;;ORAiBL*3QB04(`y%84j0hAihY ziXi&*&q&HF7-i7h6%vu#O~=!lGer%hM+S^?*NCYyh}n#YQ=wpGFwH~n9#V6VSeT{E z&%PV;x%J0gfh-NgvvRin&Em66c1S#|UQ>GrK)JBMTp2acutSLWDa3BVw$9N_7JX>Iw;5F~Z7l}(q%K6^8pcweGYC0iMjP0kr3rrZxE$M=F zSYqhS;pL4A{4qy3AIc+u7GbJJMu=1kV%x*+8upO-}X7Rk3byI}0A1|V@c=@dfH2%?8^ zn$9H3Xn~xN&6?&&y}|O$=wVoF2%zlo`*p&fb?3l+D|xfT)=%TAzxx*wO!Sea*kD`R zCKb$ftZ1t))1uywa(5BfhPrrKL>$k(T&=JBxO>Q)at!_hM#@>AniG>CTO~$Y{~vvA1cMB!ED#AbJ?^S4BAd}QiId{cr*h^eA36mgQMNWVc#PNj6+BbWoYNDkXAz9&e7ow1W))XWE|1=MYV9 z1UKSntP;HytMVSpZzq3M+J#@jT3@NSaG9TK9}vwt?=UEd8x_v>SRS1;JR$u}dNcV~ zgjR}PbFMlWJGhVkQQlO)_-aAf4_p_uWf=)Rlr1Ge(u7)C-5EpX_VC9 z0uJ+xE{l7?SQG#WG{~sM65vmKSL=qz=EK6iIA|12k(%(DRaPf1k=>XRMdJmJF5-> z9IhFMHURf~v!w)jjat90iFAxc2Pc{i>xMj6MKv^GP~!8nsaA$;&$pF1dvFRQMO48m zsHs0E-W^4`bnj)B2&hy5J>UluN~DibwgfaaquX@&4vXnu7y%I+qer6bqy|bWb^+>^ zNCumm6D8c(9fd1LwzJ{z>qWy&7$WYpM)jA|+Fk%mOT)N3t|dVI(7A*^-#S8Gt8gfs zyBuKnZ`A$!RX_$6559obF)oe;&tibi);|wU3a&Op_R7Qd%q))M zw)z!H35BBj20#KDpgxyfK%qzmcqpxqmL|f5>)}NdK z1|q^CkFU%K%U>J^oR4y{F_UX50s&b0nvWF`KDAIpGGxEkzkPwe$xu2%NG9xgT zSCc~%K4Nsr-CPnjNtc)^ueO6>%PI-zm;@NroD!DQmvZ!5cgL#wrs~Gk}K(<26y{t2}RjrP>(yS+a`T#=q)- zlhBgX@8u&D8zhpFFt4zt1)3 zTITNDX_dHmac9z&(uc#P5G4pgh|r`g&UkBCT4lQJL;u_&oaqdst--SQ)7}stf-Mu4 zO9^dh0U059snRXYlT!(jh%k8N^wt+Xr?ltW{v9xJc@US_Z?xf@>Vo8()2`><#~U2K z{{MLq7U&+R^hXsm>@y`u?qdx_6g6IQOtFazF;d$Hr>tTu4|Z9>vm#*^icXM~BF+h2 z+g+A|c_??B=AR5m{UH^m#ldSlkr<>sUDPhVi5^CA>F#rBhB$i@ZCpjcZC4iyk?06z z1&)fknyef#OIEMEtRi2GW|{}xifZ{K`+GcrBr`AB%x~8P(^Gl(nSnU()6DK_&MPNV z(z?;@)6XT9tUfWvs99%`5V!Hwyf@BX{#nw3$EURVFZ>TY!?U!^-b2o>mpY2#4&#)1 zhIw`Og|pD<{vx$B!&IYX|DO)RGSJg7#kQe7tlPoK%)B+HSJRV;NT}(lM)0u`<_`B&QS#6CUmO8B8EELsmaa4 zIx~AiLwk~#c@se_1Ha@$hr;&S3Zb2JzD)fUz&!fSC1phAu9*Ngj0MHV6{(#sy2~Xe z`Q0dKQmH--C{|d0}8sTBGCb9SG3Q?i>FC%T>&HCrMT+a zw!@r7^UIC()5*eJ8<%P>^c`J?Q`|oZDgyHv?h0WZd>XrhXsfIAx4r)l66!pAP=4nq zUxo$z4{E5JqesFJvQv9&j3iholNMQMU>!H$@SFF>@S_*Lm|Q6|j-|$fNT7_k1j~6Y zEHM=>?NtKQZTZM*@9b6ZFnkD=AlQ;h2uBsQhpF=9x2N1Y^rN>L#=#)&i&5q4qUx{4 z^rv)8RmZS6_;93(R;2lP?R8emwy#*g4w3BSGlt_2fE_7? zkeQa@$?`dCrQBFU4&}1U?pDfd&Ozr9N+QlZap_U0o|Cq+2)4pI&md=lhv6MBN`1-L zOiMc?kw7=zL3Ct$s$fldjSKBl6VsLI=4G<5D}kwgZ6b z!zz~!$E@rr`QpRx{_wxcG!T@k(C|K5^Uon@pBV^z;ne(-J0+0wn-|=@`7Wv@V@DTC zSLGBI{;({j?HD#ye-*I=ZT4q!J1S9NGW5~u?LmGx~ zU20zQSC(V^egG59pG(ShE+=LPE-1dkWRDopKtKpZ>}0uaX1CaeQU@rEA?wFzd? z$6DeYVx`iKHgw=k-)xN(iL`+2x9ix;yMTO4lD5l20l=j5TgeN220jw5RhEjX4nm=e zVpuHU8fA|DtVwFB{)%qAaDE7|5lH~tHw5-IJtK<^ES3P2cBwhOB$!Ha(o*B+;5d{S z`GL3-m{Nj0D_CLKG^vk|&4|5EC9?qE5>>KU3A8dueloPFEyX8K-DQ0W zc9GNbEVmIGlsz^v+*m~FoMTyE!y;7GE(&j+rB+|p=A`mjZi>}+2%eb6lQg*Yp#yu( ztj#70)rv8iwpn3QjNM5uQAjI9hptT~8*6r6WZXqS7&K*27TLi`>n*or-QRku%&zSF zaXS&SLB>Q7?zSUX+4K*16#Ni``rgq`dIdcCp1`}@t>yf^U+KK1)(uAyd{vN5!8@>6 z->0mhpPdZWLeuM2!5EH;b$~}bAmPeQzG!&e?ZeyfWF*3-wIkNXrkwJlQBSU4uCPR7 z-0yVe>j{P$Iv-!W$fj8=CGGy1U~}k)DIO}}+goI&x>UN+D!g%zaH#eM)`FzcINWKP zAnZbvAKuc6H7mTAVyK*Sv#W#EZ2&frYEFwkEZU6B!d|qRHjvBB`r% z*;1GOlq@vz)twNIa^%;oQChjJQw}@=g$=3#Ecs@`wP=6x65&aT*rfaSi>Ncd;2$^_ z@=;o;vIM;7=JC|0YCvp0{-}Crh5vhTO~QkkXhDOZNZ(siP%VG_nUwRpCRXs3oe3}I z!Q}TUSDCnSm0@BLG1Jee1;jK`+n*y)_S%CEls1G^Sf^aMSsYXk$%kQ7AH)iy8#PuoJUls?MhfEOEM&W?WbR)6%_pRCa{X29hU8))KY@S zFOACB?S)|ygcu*TxKz(3q;q7VO^X>Kcb9+S@CveEgJG02ZyX6dLy9<0N?Sc)@sA^qU42SZU- zMWllgSDCJ$GdwS=z#>0jeRMgaF@w#IJ?nWmSD)yv`l=GHjbyo?#~M^G6W`wFZcy>7 z5s7ASRwM4*uOr{^`$2d`_3|%i?10trQG3OmU!PRhN&%@!m1T~12u{C*)$m3@u>wll zQ^*O=WLoN9cSVYejBBY9yN(~}TRB{PQl$kesC6c13`f~*w0N@jXYKa2>gA*iWFE>> zf<@uv6Y?js3DK>B=GRqTgHJc;-&BAm9w1rb z(9NMvotu+d4Yyyi@M5J&)!t8%;HHB@O`m|UVzMo^GS#j5E=n`Sd$r5%ji=P*?lOHy zmt@~&s&oR;;flu;j3?29yKp9MctA6 z>;-W7MTWKcOu_PTu55UGRGbZgAI5q{Y|Lj+Km!dv-7~LXEamj!yp?DAvi;?})=ro% zuuxLX0t@37TI3#Dlfq5CQlO-k5ut>0B=JQcla*plE#CGggioUv`|8(;i@ELW%4yV* ze-LNfPj(_&m+d@GTHh>K^QN+f;UvXsSD!`%o7Idso0qWihVldP{GrT8LK}fshuSeb zG1cH#hjp2iiVqXZi2yzOYL5y3fe|~#dSA3F;4%(_%ghxP`QVfG=UUdS{R8X=&WNH5 zvq8t4#;EoY&FmEUuOd#WwPl5B+J)aeh)--F$+Qhov=@{7aLu~$q&RsI6U^REs`ppf zXzvZLZAl!SFYz-&O_!_sxLnvb0UBfj^T^op7ViIIz_Y2wt6X3Ee9~}UBoel`bEIl5G@eE+} zg4z^{%0cgT=)A<~+d^iv-ko+0O&AlFt&LkIpb{wzJxnqk} z>PQKK>1#M(UkX_hnQR!g3gNfbr_-lR?8=^0cP4Hc8Rp(-*AV3dkJ}8R2IeHmFB;ld z-mAkJK^P*NiC+YU*)TGBjU$}Hm0L-j&oGZu zhELqtSyteJNfhY1LD{UJ+*B3UiMdBki9iL$qxkl1v?Y}5q{e)%Z6FcQ;&Pp06X{5s z$s%xgb1Zhmm;8)F?laYhyMQnATDgJ?g7dn%Z0q>Ae+fT`@s9;!?*g?kZ}%%K9khGD z8^reaT=hYDkcDyqMIdN-x|zrw{!}ZUV9wHm<{YwZQX@6`7imNAH}H4CWy@&3SxMex zNGObKoN`^Dej*|ME~Ol_D{M`U<5&CiL_&{K`(i~}%w{RcHt6yg{60k%;G#~$gCtl2 z;;$)UhWa|l{6Uhzs8=cCn&|f~^*;4M!u4=en4k0607#!Jv+v^twwAu3$9u6)Zgq1l zi^18c$6bf~rlU{AG(W{$#`Z(J^PR-}5K5&T_+})ze@Bs5^Wz$J?D8@eun7>4v3c1o zeLG;uwVK$)pPM>yhbjGWl2NR8enTATu=_s+qW41?VyV_%8H?`O?2I?uwY9d}ZjKKZ!nP=Co{%*o~ zq+CX%O@iPu^&=Ysmh`4nJp83PSdNtj6Pb&;=zep@zk=sv6{2_D-h^RB3#fkW{WDynp zuw7g*R88U5x^KVJX}tPTAc^J#dcJ-H$C8c$38<-H9du^<3RGA=X!fqsz1=bP@@C)- z-nuF{>l?1Ap_O9A-Y!4s#O{HQ{1LF@DZ42xy}y=R;uyjfs{ZsY)oiX{+!wNBId8)x z%cbwWoN!C+x^vIv3{R_exg4fCStasn(i2>Xsb!#UgUcoI`!@X6ABntKw*rtTFKSfN z%+V9gS8F4vn=DO*7CIlS&VeKbaN8rsAuG;@< z#5WTC9tYq(!7a*8XZA4Z_{8$<|16h}OAkj=>}w8g8jxDB*HoGZ_OGp}$*ZppxN)h?jV9iQ z%52=Ad8|KM^7VP~GefI+DtJU=d{n?WfeTlhz?A`u*mrOD#Q+JwzIN6$fwW(;8Yj;p zfm;VJ5L^T*I`QH9=EmBrpTI*q>$W4!^!6PTlL{Kptu_a4bE*d!c1xu~p42IMz?*27 zqG@{!=86N#4dFRKshILGo+afYI|#yzyE&0LkTmOg?n1NMp`Pvs<5SS2%|c8movH@t zx6(srn#sB;q$G<30I>vnXmjN`zQCqQmFv0A6GCZRoh%MW&BW5J94ZtkbiGr@2>O`Z zVKph?!M!Jr7T$>00bi6M={vhbH}LT4L8H%KsmWrXFAr0pH93~+CUQ?(T{J~b>EOk! zn*T{R|5fVRCU#Zh0e5aZXZH`T#X(IzK$K4VwV=@lNJ#Vn#2yJD7~7{$i##|&J6y+J zNV70bvIpz&7vzD0U~lb{)YF<1jS|mM_FOi%MJW_{J#dk&#OMxli_VTpPT#tb!R#S4 zDVoA|w>VVF?@}wy>0b?h`=3{GYlGLR4)J08T4(3Nep%lCaG%{%`*x*hAB>@Vv-t%xhZ;+X%ldLmE zkQ=y1`GV41RHmu{-VQk2Uc1`RUqT~u;BZw#`sk*d(|qz3y^}UCmMbgA9%6%P)VBs> z`H{YxkQlN)_C)o>7$?C+ZnnaVn(s!_uN*w zPdINIug@2qzV*GHOru|aD@n1(!>}8&rwgQRWkH zLyEkhEY5t7n)8{(iVZYob0kik+)9{KhD2!=A;%K+@7*Qi2Go@^=@yYdY zD(q>oYozz)PmWft`!%J+QYHYa(=64KbB;iWI@#6>CIJD6Jl6VEA@?1YdW{YEcC0++ z8u@%4eAjC5Q@*Yo+?I?_zD5F(a$20G7V_mRnVhqfWl0-`ncZ_#Exexz{cbj50fqw= zI;dRHnt4j@*5tKqEDL$xy^}V62@dSWaZFqI;9H`vlc**pDL8)*QjikSFr=L&fV<%y z8QtN}k=8p|q_Y^WJsf2r)$|{zpf@91cL&yZcJ@12-TritJ<-IjO~0kJq-rdwC8n&D zuDOP5h0Mmm39mM7iWY+t@$Ivx_D$eLL_%#x8Uxa7))1k5?TZ#=v&X|yO7!p#kxq&lcqX#An0jta^k zaRTFNBoT7ny~B|AdAWg@bJnDM&H3{n^^CA+R9GW)*_uamVf^K$`Gn;PaiZ}brr`5W z_EE?FEgkAah~buaSMC!RTCBgDsa4e&i4G$8uplLim-?>}xqM(Z;hxtwq5icW* zSN=oZAIf0gol8(+?wwpq?h(%0tf z$s#4g-osFSkGD^81vYN!;bVVGOQCA%Ruzoh3QrCh*5VastPtl#9^myzfH71F`ncui zGGt5|)0K%jXnMc#$uqt&YfOC8F!&^D>h)D)gx#+VK_5s%ig%%e=Y_1wmWx(+9ooK7)fpl z$y_6p0z)7CAk-4RP}mVzmP3U6i7p|&_a_jih8Pb;O^Jh!>U^Mfblt8*m-^>0Li>P< z@Y=*QqnIQq>mDU$aFpEC%?zy!vyz!^lMI>FDODiNliSz`t^WM)`m|o%t3LP>Og0Vs zh`A%&A%-O5eWfVu#uT!<(Lfx<@Z982p;+#2L;dh5cZ-jmtNAM#C*To351J-2bv z?q%%Hp)TjvI>VFBI&M6i^|f97V7y*PeyotwYe?S~Rzy^Skc#|gKhDZDJ*Ynilk9D% zLzsnjgWYe4q@zqyL*w+~PT${hjq(ZwsHXyMNu^;OVZJ>=N!FS9x9HsDl$qgqgr9nN zb4b9D@Rjf1_VXQLsg=;wo(XmnD#CW5$*0fSJ%8wm@=1Gm&yb+1Ldw!)n%5tgsuCMUItNrQzCfp;X za)lzvF%R`VYfD|s{Ae_jLO|JM3}gICo*+1tMCd%S$d4%1lF*sQ{rn0J>dF<9hkZTd z!s?&P>K`4-`+NYc*UY!k&Zo$QKy!i2Gq#s}-^d7ijB_l)g~G!hf9s6%>?@$uRULm6 zsU}1B^7uxqWQ_1oR3uIWaZeFhHL9LN>akmf2&`cHqZSon7 z5`v;!14UsLa!;x2eoz4nXYwRL88cS!TQ`kiqd&0nJiwCf$`72sXzl=4wjJz(wH>LGGnb!jmm`^||8QV7{LEG;- zk|fo!JUCLHt~O<*n;yg+tZh;2R^K1pv|;PslZv87cK((VC1@(E#3W^*my@TiNQMyi zcs(by@`cbcEE9@X+gCcuE(evQ_((}%j$Oz9=;O%zz44!>wbTFcA@x38`_E1KyN1oC zr=!1bQnwnM#*Ih_W>G843omdXC!4DmH>ms57`P5o%PtZA7q3?4S1`w{$4N;ee45n( zKArC|PiPHNCOU$Qa@=s3{61mfRY(wxJQS-=Ee*n&bI)tocM9Y5+Q~lXV8aw+TH*cr z`Y`15*9n7v--Ok|HiP*vmWY#BES_ny^Lfc(!PR}vSjsZH`;wpFM~l=$`(D8Ob0Up} zX6@tUG3CBU{Lm9eu`w|18!4g{MZHyQWlh%tiBbQ&*Kg$}ZM&Q4Bm_rXGag0*#Xbva zip_;10EW{r4$S3@rp*)7!FA%^5!HRQO_mc{WtIi{(eDOpaid$^u5f3MwX~Gk@d>1% z8Vq?#w7Z1?(Bi*z7w0?J0d9PI^)=z#^P$qcrO^2^`3a#*x}a4`qPP4z3WI)~K~5Jg zyeh-m){G8$!PFqTvI%~aAxZfJISH4Y6J7*YAo4*iR^EDy^9X<_pKIi*M)*RO{v#e6H$dYXm!jN^RZWvSLvADwQ0%~f?U!P z5M(eXPP5d!AZZ-b>lIgW`b6q7UyCp_b4xP>tF>rCPBk>%v2K-e(W{x?xIb znc<9R2H_Cr^5pov0fQkH1$Flldf(qywhe#Z+VDb5KlyW1-TzhT*uG+bI7NX;?}jJ_ zek2FyD88>IcMlVrkkBRuL&w7>9yMqPIu9&|(~8zPU_A-)p{me12vU00xLg~VP|P4! zq4r7st=)=`#7UD6!oW-i8Hh>}|1^zhqSx8&*ZdC5t;8NW+s ze%@z?4Xngi6d%E=8>9>F1GeiJc!wE-x+lN~;XF~3%x6m5{E9?7BT)cM=+Lp+i8Hh8 z@U`~0bp>N=M4bbuAjf04&eV07ga`3*%9sef?zb9=iaupuZFGmErwY$++`n9)BOBQ7 z$&PCQq{l<={_tZc4-}x*cPGr!9E=pOgg8R#C=i#6x zGbjbC#?##tn{*nlWPd`dDg5L@>n>K&0+0G#8Z2!>`0yEuA0E8BRrUPm-wyrc(Gc4D z7Rw89&V!Mnp9E;m*_44mazUiLR(VvzTulG&Sjx{jauR<-=6=Vq#HT`0h&yTgDFDt* z(V*_a7yHeP_S_^A%*vaJ#s6)s_3T;zw9f5g9ECit?Q%USF9u2WbXcn$%BZB|09LIkDe%N+)gylB=YmALw zkHe1Lp*%q$+*jPGAY>?sM(_$hBw43CslVkjQe22SIwZyxRyZPwwONHiuOcxgiH`Gq zx2-KT#-$cvQ%HEKVFdO4M2 z;^YZj+k8p!jib%DI2Qv+sA*pcY{?5N_X|6m9zU++|Cu+#35?#E3AH5$+A?>(51&bT zDfO8GRpx?vZQc4jfB0j49_JB4k`ENE21#mBG#f3MW`+1Y94VbQI3PEP29g)wUha9} z)G>qtN-tZ5M>)4NAG^dgl4*6b+4G++gUyX2woG~nYL(3-uy zW)1s?=%u%XU#5NLpAlCuHn&lx1}1}LBjJP=en-KL&N}>@6N7Fie@ddJ>g=9aEpBb< zEU2;sq!T3wC4c)A#dIswW_WnSBcR(Vo*fkNDi;oWI|Nn2+LlT0PGTT zHo4pP@7C}&XZFpIVg1t1!yrqRyl;GZwOCfer@$PSabuEIB~l5Qi&mkH;DWl_T58Xi zts=vQuC>!1jEO{&@~V!=d-aUErg|;;*WEu7pu$?;CJlq}rxTXV-}(rETk zLyd`b7YQ;6b2@DQD|7f@3vKy7;OxaEXxe8@ zpnv>KX}QYuU@(;A^&IKwajWr#^y+XBi4rLJg=n4Z1tMgx1%Q#T$a7A1peCmFy5!W6 z3NNjUoh|c#=9Hy*r@miz^f-rnpqEzD+!SlW)KK;kj4G|BT7^kQoK@WjfFruT+-{ce zDUdF&Cf`$Zw&y-FM2Vt2vLa8z0A`R*6aIGLJyw;lTmA{!^){%=E zf8p-GSya@|Rol&EAo^WT=pg4`coRH_LNr#l$H3Ec{4<#lp3cte{RwnR(ZmsV+d(p& zFYuaym3#V|+ku8DO#!;84htv!F+SM>JlE=HC3bw`4NzWxO%kncw#JJUVf#I-o><|B zaXJZ)E$?(YIO%OsNblUvRt)8_$*vU+79lnFH|Mk?C}Eh>gE3*dRiYR-nKw+oT|0Ek z{^8<;g!UMBskWD1uz!WCvNx|Bcw3B_2gh{~z~!mTG$eVrk-g88hjqSx4cL_4|8V$! zyPDs-&b&E*qu2;Q!Ew`L--y)ntPL8!lR+o~e+!dZC@CJ&kt-!}6LgA5w#N_|8dwnb zal4kzk!A}oF4zdX7?K_}3VIZ2B)J-lAvERC`Lk`@))FfgcosrjjAu4P?ksSYc@=v< zyL={zlc9n2uDM?A8!$P{(l=L=rwXLmWd6E!X`x1hFy7MDTZHLa( z0xFe+P+G>)L7sIdpBoq{b?T^Tso@!(eVS1ED^99k)mR@pKZ=`Q`@oVPy>{=lA!N|~ z5x@7~nbKm_sLRBK*JZBirG7dT#vcdTn#NY7Hg|APVL_kUs;*&#dJ_u*~+)fKh+DSqu*JFOi!k>qnw+xp3GLS1P1@M927|;>K14Q#K<_&ceh*I zPz9ev{cXYNES#LU@6Z^f=b&wqfA-FjJ2QW1)o=kfhz7S5l&_PwH!`_P_iH<)l*vZl zasAVoctr@z@p}2|6M@#eO z(TA8@aGzwy=Mv!`MFD7qy4{+7fzFau9*Fm+ z>;&B0%@U9NeBuaWkK^%}&WzIl{%gz~Dd|fZY@rtEBul_csE_5GD^*$p!DqR@mgV62 z@B6GBdmLiz)FkHH-ME>H(p|%Gac~%pzu~`*tR^jPm+qnFcgE*s?Dn3RQB%DZEi)DajQ-`jgP*lqzpmW|(5k9%SgQ<5cmGG>qe&L@Hy7TIosM z_uI3VDQf`b520H$_5IDB?NYb3&VCekIP%ig&cDP{^^U6OM=AJY(F1k+Rs?Nxdt4Ta zYsCv|1blS6vD}OSs%!^{ekY5G^8A(b6iXrc!H4L|IWc<&D#m*&SV_0a34v^Wti;#} z3~{+AaB(Z}ek^(ibdB_?7edUi%sbzJ$E1YTxyf0bBX?j=FYU6N3DH=iPkOVI~1wyX_LA>1-&s``+?= zq*yn8b8OVIn&FIV8@psmjH$Xx~u6NH8iHk>Zo7J%CAx<0><%1{nwGHWF7)q#q3~g394+<00MI~{@ z4UWjW_Uw!9%#PqN0BjTQP`Nu8rBJ-~< zh*i2Uguatzx`WfnKN`WkCN z@^j0sNm$TbS-uC^Pe=u^-e`Hw-TMidriV)14m;eg7|oO-Y&k?zB_>kA_jr>SOpB|N6_g?(5sb8OFN674tLjdT%4fukI}Fr|e_-aHKyR%H9*4R_Ybi zH@%JVVSo2iu3fE@b5Z+Tm@8j|- zMl6qRruTxEevHRYktHq`gS!xl?TTeLL?W^+i^+G zj4mXudBkj8gbqU*T2vTm_Wl}a653Z);MaSg_JCiRNKMAg3Mw>QjgumYy`dHg1D02? zxZ*DRG(fjfcT+1c53?D0HRYsb$3y0}(`^kJu$@6ge^QUn&kY-)9H!;GNQ+Cx`Wt4l6&0?vHxI zu1m35Od9WZLfL<-4bJtTVt4p8otTckk4?n^(dJA~tKVjXlR2J%1stXe|76r|H{;|b2up@ zUz$)Hv|u!w<$dc_JU&dd%rPTmX>bL5L+HVD?; z9?j6K$^4n1zB(STpC$mfy2_%W)YX-RAi5l+t@{Y}%zr!XQz!n}G!m$35}4xMvqJqW z4*KEHd~}Nyupq9;4izmwjVD4HXVzsNPT5LVK?+Bo+R`V+Xx}f!s*|h}!%19Uq~g`J zd2ECHJ`Ap1UOGk-)SG8eBQeiQMmVJQ35@YS)dLCx>88LlK;S;j$MOF_8< zAZ--cdgdsUb)fbjLDprJ?GxW4^`9daYu&)6Sc=ssLml>=>N-?TEm+kE}aEb>M!(y(4VC}UMkT;()h9)U| zDT5Ebs^$PBM*Vu+q3PJjTr`Mz8L2kxQW2K0-6T(8u0tz`*5wh8VkXZ9vE@V`gy_C$6y3C9IT1)zu6>fN5MXpW{J+YKEl#i$W<62JbQ1}Y7 z4$4zd=UfXb6Ka=ESQ)WGLVC$^$e2~e#We1vmU^$?UM@UAkORhMz0BPs*;tLK{9?=r zm(E66+CSAQz&2IPSEOO|l^BGm9?jy2y#=)k+&{%5)F9k$heowoA@Vf_qvkGF!*#Ku z(ST6}a08@F=v=0{=LQIG>U@VDk$n~5F5{ViCo z$JK0D_69#^n`_rsO;UP|4QqMJYu>bsWVaYuYqv&-|EW>CH&`Vn2la2cS zQT3HkZKzAvxVyU*hvM$;QlMxlPH}fA1b26LC{`SbyK8YTUfd}fk}o~y-gVz^Wv%4@ z=T3;fpk4N-UIs2Cu2%+i2T+j}q<4Gf? zVfPI-XoQNJCD(aptsZv7(3YkdM3^r? zS`iGv@clv(6i!v5p^)J*z z_{V4>nP=L!WT}HNg#`(dKv+UwP^rgBfotnqvWjwT3VWlXX6Y5`&ERqaP7h4vkdOjX z4RF%ZR*@#eg5+t-zr#p(N(Q%cJ$fsd+mak^@L6yMS?FA*o0hh_$i}4JQqNyTU!Znu zH_asT%wb=A`~L!H0Kn4^!iW2w#yTPav92g)-k{oJ~tW&3kdAHVg}6=En^qr18x zIEdvTbE#Nh2xeOl#I*O_UF%~`47;RamCtrr6fl2!?8%B5RYZj0ntqs45;p8a5XwNs zO4VcZ^CT$WHe%v%6TBVMYWht$FlX(WQ^4l6qa`mND ziWtu7T5f^6ddREToE$stwz-xz`gtgHdCC7!d=_!QF|O;#Y#8%KE8SbfNpEw_0{Dk+ zcYyvLJjaDNKHnT;wKe>6O#mZ3MtVO;O!&)ZZstpz!j(n`Q=G;ycX99kjM2Sy{VgvZ zq8{Etl)W(6YFu^}K3q}av08i86K38Aj3k0aCSgsqm*Rjm+0%EPT2Yx}PnpD}HV{IBO z-4nS&1<;dyHri95m7D0l%fXXl;uCxjVyg*|beQsASE+Y5#Fb*t%1$H<`H=ot40<^~ z=<8(*P3$xi!8zm8n}jI3=ej75&vtJ}=#x>W8Djjma8()b5-@gVW1EFP4yHgkk z(-`Hu{+6GArAYttVF(9D)_ZP5`+{eFf~}KLqs|-_I`eV*AK>DiHR+r2ZUK3Wp`FQ+CqK?YlO)w0aom z?(P3;Ww>bl9sx$NY#bRXtdZ?#oUCT=+cR~i-J+{;#;Q^&n=7)l_Gi>dEYB;Ga?m$zDXs=LVuh2Ez&)y2s<#al+{2j6D2%9S z!$7(RC(7ZxEt>}eShm<7;RgK)OR3 z9~&!UfAh-Yc*%=Lw$`0}T>BoZR&&+Y1Q`Gt0r>wFto@H#cL5P7;mPI|n*Rr-NoP8q z(dq`+N*X^|8**u@{?x|j3FcnkMzkHi4xdBwK5UUGL}yA8{v`AEJOo`tH<@ z?S~l=v;o;k;8%1(0fYqfkfzszpC}yZ=A%b6xW8TVz4F|q=hAHA9a0>f<7fF4){4!z zRmPww`zq;H6nA{ugT?~YIKvuGn_#53g!9+U zfWml?@MwWgFD#yr-<=FQs$dPg2a_1=5Kf6xd=tt_G z!tZ*Ax88)CGM5sQW&?JR#5KOBXa~hu!+59lTX(juOr$8xs@s zS&?p4>(~YUKvs=fn3$_M*?SS%ju5_l2KM0iAkTC8M(J5wTuHhu!R5-^93l;VvQhI(XW%yIYE{rG+2(WD$xIaC4TMw|6t& zkWdix?E;UWI3~@wQWd)-`?Z-7=b>kJOb4bkmJd5vcpBkH9vx!F&XRP4O zIemXM8|nvXPh+k%t1u+XdS8JoNts>i>h!Y7O?1i(88KJ-|Zb zy_Pcf=fqKv9Gf}KS4cTV>`Jn!&Wo@c#{&~9B$CYiUpQOFjehk|tDNc&DaQWxXj1a! zD#wM(-KUXBuodK(+BsMdzSc4F@Yi0wv*jC-IWUnOZTRTff-T9X7DJb*0)-_dx)?U( zpgP~5g+k?jL2{)-3D+M~3}XbH-`F3oMW@AIT?~%eDJls&d0?g5O=* zQ8mh+P=6_1%nMGyZ4#Tc8J=2tjh>lM&r>Y?&9na+;2)4$YXD4q!~Fnjzx_z~=H!33 zVcZS9!?F-j(~o|};9eCIV77C1INs+b82HH>cez72G&FUJr;SPzfwGp86%YFp^$qRJ zkMz$BI+$=F2C~J((HJkV$~gylo2JcJp7;LDVIuf_4ET9-6e0XIx*2F+cYKrMcg?^z z&7ma%NDLIz32kNI=&3i1igT<~`+%)dhlYt^!Bl$+hr5IVOv_!iR0R+sDS%qPF`6w2@fmWfJ7U5gPqutLcW~J{w_npF}5)PD~ zI;-F}J@Q)P>y?QsFr5-5WX8vQXn*O-6k@QIa>prez#ocwcHHb^Gv$U|V|Bu&HBKoV zFsrhiWWV`|c1L7}cuYZ-+emlw8>gsg{_%vXjYQ{y)|F3Cj=k)5Z!SJ1pL<(pueg7~ zGhf}<*}Wqh$dYexrTj4XRh7ON>>YY_N)v~uwGd_(?yrJabY!JfCgeqw>Vm(nPqRN@ zoBj1NiX>4{d~w<}1x?J$hU4YG0^SSRf8zs0zyp;Li7#4npDX}TlzJEdM>PW9*NU-}%C$!0_a+}@`#jMYAU4kx4rZ;aN z+&9D>=qUtABBU?g5MK*0>S3;_~?Mm zLfXe2Bcpb_arpk5_yc_*AJVyFwgt2Pv%6==SDNrlDC(hIFC4vs2p})Qbk(+e#L03T zQDZKF$5x?!g0b|Fh={kz>Q!tTLym+|CGBU}HS*yX5$Akk<;U;QeR~`^d%B2$TmC|b zbr7g_7@qb1vUuVFuF0CSSFtCC%pup zDlb*~St{O&hz;|12^<_UPHitF1Fsy%$ObeWINA4R%XSEl15A56yHB_bzPj!{WH2sO z*WH%)p;4n!weSLy4amQtpd1k?$@trVB;T#B2D#D+F||NHclL<-)s*ATFez7fg9-U` zg%PpZVT`v!+U~gKjgqUKAJ*b6+Y=94X-H0k1RJnEaSr?I&iT`ST~|v#o70-YXfChf*(`>uhEh;FJ8|}-1J#t=9=HEs7Ex1;F{Zr> zmH?DBRv+m~BQX&zPoJ8L<{IF8iww{Ad4FWWwb9Ff?)?X8T$87M( zq?Q;VL-C88fVLY~++%cTM?R>>Be~QCE9F?{^QiJ@6;cq?m*6fV!Uhh48Sk$bMg}yQ zj6#+Z*el*+F(9fL1zMW~m4?`NIQ~Ynw&a6{nC3^r|2Jwv+B9))V1Y5Dx)N)>I*S2C zj7EsZ_-KhCt%jozxo8vyuUB(byXE!F2(rD)Cx1hWVuZIsN znh_MOzGeJ?tw0_ruj5I4&Obdw9CdfUn^Y~RI!rK$%6`W6Eu*BNl(4Eyb@|&^oOZ|o`rRZx5E>gvp zs%!!$^J%sMqh+nJ@4ALvmdVMKN%O8%y|GoXJzir!r!Yd}=*SVy^WkHP7)Or%h9m8s zQWMVmUYE5ld?8J)nH68#L{q$P*7cYAufzT~?RxyhJiwAS0Mf(i2Y>s&4=U&Us!7NO zQAXQ7LlP5c5dK5zU0{S{Z2`70thTmrq6BT-4s@-a0M~cd(Py|l0lDB13{^yaNr?x6 zr`Mr)B7T)s+7qUC2PEb^PZ-YUS@6EW;k`lRoXo1yJE3Der-@gCOL7iP2L;L*_N4A6 z*<%B4nu!}WR)}cEgw#S~tMi_`Ql*teR*tlS?(BN_ur-5xkjvuflR7vk!5Mce*8(7s zl6c{bZ5K!pd#FO2V;Z**YpzR1w?9yO;uLQTI(m-PDp5s?YEbABVi8FYvTTe};>iH( zQhk1%k?~AM`z?5U*BD1jnCSB&h-(Q^SD@VU8de*g8`s$&^NL(cc3Qo09!tqp^-sV+ zyZ*GEl1F1^3UN8{i-v!oc1-!d90b7ki62Z1d1wi5vfxkKz?4Tvt@u$}S06Mp9lH7c zG$HG6rYd?ei4hgpqKMOUGDP=gctEMG+s$vTa_q#*R?o2&M!_~xCMLs-b#1d6Dr?su z7g}nCKPOzn-r|vP<{CZwiF7~RVhL+@SnU)GEM2>L$OBr9sMWky8Ch0iJE29eh6Jvl zkSRxSN6&DU{l=RjMQW5jB3v@H?x`}JWQcsp6+egl<#JLp_RLnuf{l~-l9l{Nfg^Xp zB&PZMN`i)UpX;wihV#gr`RMzm#&ES_<6gv|*e4jDwlwvo&Q#w)ii#(Hn$1G25evlL zY{Gs98#?`P%h7{*{c+CXaqHE4C0iQy@fcsGq_UnYBAQkIQ%cxMJrS*)^vRvZ%g{xf z00ouExBr%QyTATz3n4NI6n}xF?SNUa-wzECq1*Zl;~1TqsyV#$B^weLDgKI@D4Nn} zC3$M+ExT#<9Y$W61ne@XkW6!7=2;D!=lQXtm54$8kP6u)=S7?P2dxPb8 zMXhdgED9mlanFc!?SGwOkdkfI0U{g@^?udxSXdr?aTkreGp&v~XdB81x9OD8d!rYA zNO)w>FPr&84bg(qi=Glt^5e@YQrt^TS&?1OYEY&5rp~5fAwrAls*`A)vM~pjc_SvU zS12aJAAFNaIEo=f@YXZ#}TG;mV;;tJTi%@z}Js!?}?$0lP{aX}x(u69{w(5#i=;|udMl*QN7U3m|1oy8cu|k0tA!fKAqJ~6Mw=Zd z+3~JcjWGC;V=gM7YbDL15$8QF0&G`*}aye8D2}51B zmwHhZ9c*4M+R!Q~1GpP>k63Zdz32%H=Mv7!$9v4wfCFtjzd;P~V0O^;&0Za_4e+)t4h(@vmHauR{Q3%h-1XuE_40$j z?Oslxm$IB*P#U2za6Wg&m@e>x~Sr&p})`D{@9sT&Lg&WwnI3?~0INW;BRfn)*-Q5+TZ6;%7f!pE`nsb=EH9A`KaAmaYhk2hV~xBEW~>6To90;MNcPJb6{~$_JVT z9E=)uz3~U^L)N_jpwWWlUeJAkq45(x$b}5#gYmTe3^)SwQ-gb(_nqD#$j1rTfzstw zkNgdD_Gw*P;IsCm%VHe=FPIV(qu82>!n3}8pFw5pz_mA7B7V^QP*zntRcz1vo14s`Mth`IXt)jm4Ak zGySy&B~hBHPy9)N(|I_#lk&=?9-I{Bu3PR?y!0ZS7_Ro7m$?aj_1|K^1#f3gfM<5_ zJYm2+s`vr>d6Yf)0(|)iaM}AO!w7f{J`{i6DF9l5cMAgi_8}ZMH{dRh@_7)%Nm6GM>BxXLJKVg~h2K~O(Ov>4Ju}YZ{`jPxaH?8UG z#UrQALBkty(4^1p*I4MBDGQ;Hl+o5-`q}fp(boIQEP!@l4d;Q)=*c1)hry+a-i~*h zIuwbz0v;x?*_a8*w14J zllDH%B&_3ZgW`<6kK_Rl8QagdIq_ht{koi3@i+dS>%+4@BamhbaMpV#?y>d^{xbun zd=z?10Lp?p#KiZ2IM6@SR0^fM7Rs;@VqhB3hpZB3^1|pVKRyUdJoo5KyM1`bbnD~G zY)hysYx)px@)*2Be=PXz-R_=?bhN_^)A zxtk?lq{Bfiw9Z^9|(A!rMxoC0IYJavFX>nBGs-yX2$^s-Gol! z?11jK62N8mJ}N0#9rqun6W@4M9S0v}^mx3gIYL6(nDM=Mvx_QLa9;n%3BMF6l^KP4 zW~8r`o`$*V!@(w{Nh1NCcx^4%ohTV>($--Z=3ykazSGPfGddV^D7K-iC99M(+wIF| zZ1TQIr0$>^!{TPAp&ywv+F(#iy@PW2Mc=Lc1Hr9=LfM2a%Fmg&Dxsy)*I}nAdZx0( z9zCMwHcI7lnwya-2~hX}-}IBhO5YO2Jt4B%n7aEoC}8mKZ6AY` z13=wH@}D~JNWn9z6Eg@r4er0YTiFK2QNH}oF6?5y5I!pC>VVSnuT7lrhgOKl3`7Th z)-ZR6&{vOhJ1OYJ>MmL6$3QJz!n_sF@Z_W-svino!snl?+QA~@%_SL@qDpECybvvo z(jw&;)+o%#)?VxD=u}Bws|0>&QMt{(XkLGB5s$Z7^arU{a5J@jI$L6W^xjQ( zcX8C`a*=npO%3(kzRBa)kG3_J>W^0wQD zq{2L~7wF1G+!(km_vZ2%xgifK259}RCg?&ggDG~-Mu=99fyIyK9#g5pdlQCPUbGpJ zhsyCJ906c|7ZD$9(-_UrD5>TtTqUg#QbRO)=1`DeQ~r>mg2Tw^xa_oVw==C=ObI{q zJtEi?+>E$D&&+{BkOR_?zrO2w$+T56f zbI_kNxi}zZVnjQy2O}ty{-#NJCSx&0JlDAFvlw;dFp{vgw~b}y&=_^h7Cc=bP6q^6 zgI_)wH$v{`r1d^LBuo`_fu6v+;6FbKT6+0FUZB4P13(Y#HVVGjFK9_<^Dkw80aMk% z`?6=1gz$#sa(~+o|D;K^_CZ@}gIJGKkk{cOc{qw^-iBQ}R)H++4;KH+(Y|nMg8F)n z%N=G{vk0ks*+dB|I^B4F8_}fP@!SD~#P)H?>hot2>JaLC{3#qLf!XTjbIVE`YtWid za?308MzOq3XC}*zn;qcb-3*r=JMJ>OvU-%%=q}(CF;6g&V}5$eQqa(UgMq^|*DAPs zpUxI?4$Xz^B>QI~mjCh^eK6$#yNOsya-{kBq6>`uGfrPR6K(riX&7x!)2J!UpS>Wz zTm3^mT(l>WJl}Ji(aXkd2N3XN2h7m(@PN6&y#*=*9KIKUtOE9fn;uq-zn;aALV}Lg z#NXEg2HsHqmB0er=KF_Uyz_@_aXc*LHX7PBar&Mx?Xjta-&RP3vtgr1WfVG|b!?{) z@#j*K)repx)CQeK6GhCZC=BpaSMjUQj-FNt)qYN3`Z+)n+M;6aZ}0q-tc2h50CY|> zB*Ur?(auKHsqv2gF50ZFedlAG^kb`DefGi*@!5+UAC!eO?LW>S{l}oC#xbSEM>Rv% zn7SpN7#|Z?EV~QO+he&eJ8GW{|E_*(&it{>=NM18=XCp}6c2;OMjy&{Vd7UqYfR}) zpo}2J9|sPZaaBnV8>1sVi@0ZxWV&fhVI@a*{L6H@24gWl+b8g?@ipb&Cv)A~XB^<~ zb`7q1`|}PoGXlxtWGQVI?VgZl18#yS5N5E8&wIR3p2P&?3hG5PA+)78&rRYj_m@n} zLJyoq12~IyQbqU$`+HW$^>5h)=~^#+_KEP@*kOY!Gc?h?T%Lwv@o@Vwq$EKQO#E%mhIl3X_ewbHq z)@QG&s+KQ4%7ss5B9M$%Q{=ee`X)eo6eYCM*(gh=f&(SdNrH*)3tghRmF2C#L387^ zhG^DV-OO8fIhx}J<<4#B>B---Zc+Y}hOjF7q21r0HYKUMi}d0SLDFbyMGWXjFwwp+ z8)F+F&LDa5D-nLTO{!&7`@7u0y>`aXFbmQ5(TUm!(bK@n+RG*z8*t^Fd2H|aBeYL_ z(^nJ!J3>tRKYpuMwfzfy;JaVHc!1)Mkdc(j`^~?N1kjq;=Lmeow$Bg>-bgA?k^hTD zJ#_w<3ot`lXZ8%lqtf?x?hc0*V~?ttbcwv6LTZ{Zfc+U5cdeJ6y&i;Qovm=d441A^ z@>CbHVJ0*b{ZhW;M+Uj8Oe28e)RSl{V8Dp7G(Xe)1hZ)Ghfj)(blzujVcp5s$&P->?psJ`(ISg9#AeW7|&V$ zB<(s)fpEoEUEMZMfJ?~W#ovE=fgbX2!vnWL&!!W=j$X5GIPe979G*yk zp6ZVtbaxDpsLvcuVC;qM&KbRp=N+suQl~RacX0wP3z`utgZyWa49}f8O+j4_A6%q( zMSmaNN4z=WW?FmW+3z;l&dkT%l6~d!$TTwx-zqW%8N-d zlw9YN4ccNgc zYd|6Hxci;*_B)(aAY&0Hcl*|2#0{Z|J^^qq==;Eq!eW3d!Xratm%^Z$hsAfeBUVljDd?Jhr zy?~wPlY2{5=x%k?)IG1m*d0k1+77kxfdF>vgpd5o7G2RBS3Fm9&6Z+sg@n1tNXXc! z+c&$OTD)exJ1ZL0qUG!jE|;>;Oh*HWqO*Te163%*p2r0%NJ3V!={faIj@|aCeZ07` zfTotk1GIY!G1jFycyw1OgJ8GqUm`&9D+qmh1lV}q?g0R=fOQW|>PX;-XH1anHfQ7! zpl#fAC%+I?hf)=#(&QC!N$rUYS1yDtt*0OPq!(V#;4mz3gdx@3*qK$0EGfO9JC^aL zeSNVuLbah)XZ_9!?z$eYlce5+Rav-V9I=HqX^Fk7VSSQwOPfC@h&?Yf3b~j`GPrH~ z(|ha|x_Yol<5=ghsrg(3zL&2`WY&H%nL9@Eha~pRQE8|>F$VhJaB6&{lSKhHYnVh& z<2-z;ppS6=T&A{KAJim{*#ch^Na**Ud>!2Eoi!N4E<*x=c}SmJZ9i1{g7pA@}<jKzmV`iz7M9hvj6ceaxq>jB3oVjd??8TDO{dQHJPD;=^)zWpP@?7}0_$Q5)Uxgu+_%on?5qZnY6$daR#`DH zTtP_dUiEhZu;E`E%}u-kAM#iQbA(pxFsYeZ&7tCsE!$LBElk|s*;3Fm(}$8t3_oPW zexHeaz8fg{G)#zGk<2qvwlV%-bTHEV1bIHb_D%$#f;-5<;9c(p5c0Ktp|}I~13NE! zK~5FqL3(6c8-{$%kcF|`&v*n9P(0)kafkOGL4MXdJ{Rs!0zuOz-0|>dzjKG=^LaW5 zjx7`z1NFX0?FmE{FOGGruUr=rpe>?Jo%kzB#{{DICTjSrd-A|47Ac)qwY7zZOS+un zMll9*5~ytSP1(_~Ji+0KB+yG7FT^ay?4Z1is%{E@*4zy(5yHp#gP@z&^OIUwT@Hs& zpkcX|i_)9nJuM7Ta|hh7K3Um3-FbSmrF@B4!J;5iw za`y5x4wyx};bC5_5c&{=6Rr}*1Wz?Wd}kZQ=!9zw{VVAy4?`}~bp9K#&=K-JxZTN# z_P?efvV>$_SV%4cFh2n%dtUGEd(Q~pGT8SRV$?(j@m(4bmEU2uAV`>NI$uKlMlo3nt%S5`De-);0 zDjCBN-s59bHoGM`=cjVdCgJ8np3mg4A}UZvKnGnD9zR$~iI#jM=DD<@b6zbvM3M#W z`lkEerw#l!2i{^qK?Qzp)XmIHsq)tGJ2>wH?KqeO`6Xig_qC?L$*jYOX^F++aF4RX z>T`C1JUf?M${i@mzSI~qAl9%ohY6!_C%MLc1IG_Dj2zngW;Gu4 zAsM^OHhZN&UDP7Uyu#aYJ(DC5NB5$fn8Jay*tIbwWwz6fA6F7W&}3-OYSr^9Tw+@- zH!1x&P=&`~ZP$#V9-%TzZ;2NhDmIh988)Sq559E>E0S-m)l4r=|C^?K%!rBszTPdp z5cBksWb&{;xBxS} z3C#l_dg(WB#vS{koa~78ByMcIefN&Tv^;FETrtVCq$II37J6wge7Z~7Gkz2T#g*e4 zIj$&S!z!%N{#q&f?)*nj_juKIJnusp&B8-h{@6OQttV#D%iS2jz8jSkf5w2V3``KA zKXl#eG-sS`;lmlr%SdVeHe9v}?oh;Hk zrxSVc0FBR%J>cu9A1e#Xnv9z0>zpQF5U8>&5gy zujm~_Jt=AzQpH+@L0|xJRbavPpYToHfI0B%_7i)+Ip0oapWO%MnsL_a+;oa615LUR z=U6ly9gAielyfhPm_)PGreKkYPf4&Ey1p4qX` zCsSqD2n_75lH#|+!3ZRar(=@C!rqUQU;BBuH;MPtC;th_lFAu=fF@G$d8&aT?^lbpg4EAW(_NT`^ZrnP}9bRTo|cl zFCy|q7K!armPcWttc+{ZLUXxx2QAT&C=gJuy2nibBR|*mmC1EfN z5h8$2xS=(4)?CEJ4>l&qX9g9#K0t7iHOR22FnH1wl9pz`>ImTNw}0#cIC)soj8Wn} z?d~&Q#{W|3s6B!H&J+IEoROrC2b$^N9%jQ4IT2i75R{=5<*1*3@IEK&mI92a&!!qG z0z^zcur#z(BLxv!nyvIOudggQH^WaPV=(-ylu@N){DG|D+!-HD;Nyomqi?g5vP^GG z!%m3o0A0HGd^#^Xs$}W++fbxpn5;2AJUhgx^i;tY1E^E@I~SO_7&bO{4<4^&7Gc4j zTPV_`?L+VEQAVL1DO9y}Xus5wt&G+DmgeOxwx5hw#kB#jtrBd7*5nvh4F+=3Mkp95 z=i4cg=iv>H5%IrwpkPCqwA8v*U`;|2yA|9K6E3(NXEj(>qQoVSdOkm&RLOj8&L=z>?J?VKDwn!vy<|@2 zRSvs>Fg7MF?4q1^bLIv)weUyngT{w+X#5?&hLaF7A4+Nf6#C{3~o09R9)shuq z$YB|*_YM(mIE4$<6f^&1>%T7sQs}K8?R(w7y~rA-8ZUGC%t*_Z!xy`JEGyL;C;B+3 zVycPXf>Rpq$qv3aTjjt~M;)rmXic0lRD)>9?F|@EP#0aR_Bmr$IDRij4lkHGlTCCr ziO^4u4Xh1z0(uCwMW%h+oog0I;Yt{_#z5i2$-+J1Ug3rLx-RVrXBrQPqQYTACfd~W zM5VTc;-ggyWeSabT3O&ivo@vs<}g0E9C#%-)B{Zwrn>t@3588&eVk6}D>SM0B28ei z8Cz5pe}c_&VjsR3CPGDd3ql*dt!-{*L;8b@xikOx?OnjP0D9;jV!2$0I>n_?SphXL zeHWFGNc;LAw+H5h$VUAI%?ivefnb?y@NKiMnAzPD|Gr!oe+WKBQ4rQgn-=R3#2c9X z8(PN6D(fz*VfhTy2J4;XG=+EVPBjYfh-w;Celwc*8oxg6;na&@um<}`qvc~zj4o8H z8I0K-(OhWsOMde`%WS06uuh!*@R5%A-Ev{Xf>==!QIChImfY6EzYDAsRX zwS+vUSIu#%K0k}w=qA3wNSLmV>(?(6aO$4uCuSHT0@}gloe}=mO8#p*YfePOKmURCDB^p4=(MjE3iLci& zpdUTY7hX?jG|0xO@zGV>NM27zFC#5k zg%(KTPd-$C?DxKnuJ&wP;tf2ti}G2k7l|zM*7OWPAyg-kZlA>*d!HBjEf(N+xj`BZ zaUlmt$?}hJo*zzj!F-c`fX8hR`0F@@JtkyI#lZ>C@^j<`k&V>!P&7eOZeeJm2V4XS>?i9PG^)}HkbpYzY&vw|&;tm=zWtQ1_YT9d)cPDs-jjhEVUZ0}! zw!-irdq#?WIt?|h*ocxag%`;x=niE-V|Lw2JE7k~0X6PLzjuR0VG1h`>-YZ5wBlZN0a6;BC@>UbzKzhs2kRH^YYNW9sww~1%sNXqS&HKd&Xb~hqwAZ8~Qr_N{N zBvP*B)HFfX3{X)LvHUkpLz?Tq4h3l<9ge^dww5yBmHq4Rzg8hzIU?=fn&7TQ_*q<{ zxxcUrb1r}$&X{3d!xhkMjyhG*SPW~MI-$QSx79Ec$PoAQmzp%eaer zx4eI1;S*!XSXI|P?b*ohZVG05$id;j@;R$6hM^K+ERw|38i`fSG*NB%9@h&!Ecx?G z*3H^?zV}-PBW!ckV{rG5wEFR=>l0b_U*Sc}YA^2+5EMPQP$FWa7x*>Ot3$(A zVn>hLSYVXV4G0L)vYA+#oDQ^-^91V`KBn5`aFFqJ3t=nzo<>t4oJRLWJ`|oB^{aP{ z*0_=Wp1y3O8+yOs3Ibne=vi`}$B$L`-Bshg4N7OyQCDbS9Z!D?nDkuEDt47{h4dq8r zSl>v6PRBxs#vaj93TL+(x#Xp`4GvjZa~9m^@g&t)7g>W;k$A;Zfk{q%;`Cn?fgz@Q zhi!~UrBG_G9PY&xP1DIMUGNv=pu!jf*{&8{L$SNlSQ(6hOk)IMF$;1Qf|2S5_C)7m zu?6Oigp09k!zIVZWUKE3{>v%k?-EV*R1EdV;o~>~SREcUxxb3=OGS0xxUtGB`ZX(T z>_4j0o8uuT@CD})^{$oexIr@4%8^HHkVJq+)@%kfYOAP(lR%fmjbQ z|2cy_8V$5=AZuZfXD>e=T-<s3Voba*WkJyM1M1 zWfh!h(Fn7Ul~+hYnje*=@=C_uE}G3tvUoZ=U#9TE;{NQ%O!q>d^7$gQqt_Ic0|Cqo zDnsPE((`iUiSb@UGegh#$|Q;oP~xv#VC4I8aEBxUw;Ywftc` zqIHTVRX*1(BQ<2HdTkFQ8f=DoPZ}3OeE%!$J+q>*j{a*e%$y98Y&UfFB>$h$%6HJ! zq4wIUei-=7+6;~7BFMee--lAMk0Xi;OjEoSDv_$KKQROr8Tg zfx7iT)jcs5uZu!iSu2iJC)dn1W(UzOniyN;f&Iyc2Yv!m9Nc}x*hj-uXduRAP&x?Lt{I*v zBMXkOh&WyKu6UnUbd^j&&c$xRAI5W)v@mw?$5%nBtUBnl?>84C%EApAfPLI(m>}0oD|L|5t&5}x=#P%t=LAjxgSAFm(G#3jU`^>6B zPaaGoBNR_>kHn|EJ$s$O-+MjYj}I|4O#F=2_Y1?%KjT4BgGbEwVld{TLMg07F99ujE2q zCviA=%5W`Suv!SS%}um-9p2{VGhb#v(U0u6(n}3Fr5hn6Yh;tvmJ5a zC%l|{LvG^f@kH0zdwF7ReTfStk}$yHHEqH3*B3N5_bIugYn-NT73xq zg8ez+|Fl3?K=C#Azm8Qv1)A=;!##`jGQQv1eqNUuN1}%&Np1Vx=I9;OPNSq1_tx#c zXkz006A2<$L!K*F0;_*n|L!NWrCa^Nnr3Ag9DI6UmV{9hBh2k7+s`pMIv-@t(WMayYDJBM7kX!`Y+0XX{006@&*1p=HtVfvk23cYo*zwlEBpkcjJ zIY#)_I1){P|BUq2$lRmvIeZ5{9`k$BX_H9f)O*v39mHUvTJp~bAJ)jYDOBBEYo-nN z=?aveo$y!9zZ{Nxe$=kS#~`xT+o^p)p_ViZuD~PH*2c7fSLz2AH9{R`{a z&ze~?v-ipqQx^->xjwyfKWqd5Pg&{OgU|?j%TDL*CS=1~?Kpb&Ot`;!mwxyffT^Xn z$WGDG-ZAm^4K@@ZTG40bmuML@9wT?`%?OnjtVYJ`punzc?FUv?>)iWb7% znmWUA+Vy$Il9)_%vYyWQ^1?|CRI1O6blu1JJ0OphEvkPe;XgM7T#(B6Ait}Fd^qAa z?>T6D71bjfhscx?;v!I@mwKxDhHERyk=e6e-$rMBLAe3GZBMlO^&C4x( z3)28Rw+XOgpJ=sh3`j=Gx!>T=QrrIsuxK)LKSd`!#-N|a3dg8kkP(<(b#VRe^cY_j z(bY4nu&&xbUmT}el+S^W=|azWD3vLtSfP^|wmN;@ghu)ERCa|iW)Vqi4i+@$@3(mM z50+>ng8tKkwO_Z7K(fSd{j!v8s*C8<7!Wbm5zc1Xw|W&>!}6b_r+P*-h2$TK|C445<2^}Ka7?Bw>9%tXJk!hG4JOL9;} z*DhK_XL2N{BAtOrlgGWU@i+M}uy0WR+aHRL6?mWOsW_7Bdp6Pk)IDIiO`Fn#;-Oud z4=2OdbNdwigr$l)cN|J*Vt1dvOeSE$J#n}1wD3-}kf71taFWN|*r>Sk)=X1+-_po+ zpz#0dl1^oyZs_vWksqie$)$>>RUW7W#|XeY=06AKZ%^5N+CKZW4<3MSRVt>vD!_dI z^Y(|<8p$y^0yRG0E;=@>X|G*iobhLOQFe1|6biJ@t_?Mj<9hfRQYGOvHIH9t*nBE8 zQi69=%0>D~@aM0-aCyjh%v^_*;gSzH1KKmW@)Lw+NHoiSy`y0e!atNA?{O!0YxEGn zM>@>BsI6M+6d@zp!XX3s_2@ z{YnreVEpPhKtH<-O}>cL`9x?1%77fiv?a>=tcb;hY>h zo~6xzj#h3L_Kc|x_A??W|MBld4UWjgm%~+@RfZ{~;~&H%oK^6Z6MTJF=@w`bz~3FE$EZ($J5+vEu4eIjK*n-8Tvk9T zL`ZK!&zJ5BHA#(Pk0L`+g(5kaGDeTy!81dpT6h{f_R05xQl%q!l$ph_qa-{sCH0#s`F2@ELqb^RwQ<}q@GT(t<}nj8 z9ARr*b-}FU1Iz>}^Fuz!stvu5O4vT1N_Z8;wfF_Crm&2VwD#JoLp66G1eC-xKQN}J zzyHX-hSJ@TY`h?9N9FgFND=+^k-8;@!77uIPHc=w`&Ws5v2iLQqbt6h2FdZ{Z|qsc zbB!;DCbWFnY?@Tz=|q%KN(s`B zBL13fBP)$G2&%}afv>blL6u59=5s<0ZM*C zcHmEP@dk-iK^K_3-1b=m27X+j-m1z9WD-nFIoAskrXr0!>XHS;q~J^X>(X=TJBO zTevUgYM4^Nuq$%P`xQO$MnQa(?;?fk9ME+9U8D#%S94uH-!_kOn0qKUQ!|}5^Q*93V)FcwZKMqFfr?}DQY?Z3> zfw>kOpf#+jc9iqiNX_}>?~&=7GlZ0jH|2zTf#Q;UT+uBKvO*uI@QI^7aq5;aQ(uL| z)74GFW6xo2-(E}HffPFKC9URrlb15zzPU=W+`Qz27E9J$?%hSUSMg+I822&z{ zGjV8uCWimSmwGRifluak%f%Op{4q`97&51!sf8Qc9J5fO6b@LT#M7Bp)|C-JIABCUoOEZ^g3{Tgvd+U@*dX$)s|B00FTN zJ*sl{3l4m}pg38`P6&{+iq5hfyxVPhfY%q<#T9NJ0-Cg~zB8cxMJ#9URjosPh%ObU z`mP1rN#G$IndZq<*=kzMtO}Xrk1n%U_}Zk4HtL~OTw6cKz52%o0TXOf0CZN*!6yvl zZ%U_p&w`53B{C&^3@p7YR|1@$1XCqC;J*YcMWkG4Lv+u|1ZXdW`8;PSE@Sqo%M6xf)2$8<7b8c_(zKVctqkk;V4~$m7_CPd~UcXO_1(sHIXDv4h zw6G1|liaY#;to<^KY8p13Ij%MSTLXe;0D+9ST@|k@BFshc`vXIjjM_H%qUF|q=KJ2 z;su`r-+=P!pX~MPF=%${<#nUOa#_sn;-%&+t0ptaRqHk@;qxO+R4?fTl#A*}39s9;#IF;PqD!j!tggb6Uikzkg29+rk0jqMgr?@b z1#K@1Wl4EENCb0A%iQ%teJdFQowRSvZE`PDh~^ZEQ`acVoj3Z_jE5M0$-XfPNlfP@ zq%OGj*VXrO$@{Y2+~4${lJvv7(+OSZ7WBukZn$CLjcSsw2$W*@!4YX-MjHE2>Y?oN&h=Ywe$Aj+N^Pl7dpKq6GG`}= z!Z|HlJ;HZAw9cTq$anlm-Pwrq`+jGanhlz0$==#fxzbjK|E>csy{qXNg`b1&Cu5^k zEl63ep10G{`n;C`U+LIT#}Ynt$F`|~Wxqv$-Fq`aW3@bq)APQ4bD? z@(`^XzJ#zYz`pIH{!f@;YYxB6ex(MRtC^*2Rz`=NuTE((EB_MOSYv6&7~HM)yEEXT z5j0;&j5d2WpFTl_EbN+L83!SCTJ856^fA9TKJ}Y*9)Zw@xk2W6k$e3CcOvf(pw%9W z{7&ur!Q~GnY$@p2&!%S(G_h;yQa1%<-a&EE4v`k%T^`Jg4RsL_<{m0PceB)_F4kJ? zlAU8q6zNtd-qpHuixP!CGotS_u_Ljg!3A$bx$7IzqH!jFEv&DC6?YVxmsF3&PCHS^ zO9OIW&=^`LTq~Xy7sn;HjRi>Jb$A-JLi9tGG2!HnOJ9F)@k6sOfbS42fUFVNOIb-u zowB!aW?y*;X?n61t>bEOxq{^u1cf#wNfyn5YJzf zbbLmmglN4vT_qKZHyy)LWO;9&-Z~udNkGeQt*rVd%xM8D`6sBxmy;knydv+2E>D+| zcbl6p7@)(O^X^C1OsClYIYK$0#z9cy*V}UAv}(9!uY~gVc>5#yv>M9PPr=&Hxvu$V z(2c)mo^c4GMBs_V;7otpO-y`uP~~7~tZ9mQ5dezgF^-L2th0aPO$;gAZwf-IJUL!r zo{4eF)VfwH*L|B8(sjw}29W8DF3SICWB5TtyWei9IF@gwPq?omXX9cM1Pd&;!YCZI zm4+sM$l*hIBN4F0A|0+lNr?3ny|`o5B49Ya+U^_@kMh^&Lny#ZbQr2d7T67WS?`@T zPnzX{w`<@i%Np+}GskY6bbM@I*4gc}9pip!){%lFsUMx9h24(O9F-luXaD8h-|i~u zKOt;ePLagQM{n`E-@CImkFM+}_fNpFs^ zPE<}G^+Hrj4EbGCbOsM&Bl z-D7hul#U@}wb;{#rgT~)JttGrSBnuJH$tY1m%7Sr=1xsY7D{b%ONJ4ChP$k@vy}>@ zSOQ`DI-=-@Y@!waKmyP@Fn5j}0;|F%J%Uyx0UdO(Y})Tb%dSx=(oj}Vt0%PH?(o@G zv8s|cf~BCbagih+l=+_m1@S$7ISP8fT&{Zp`P8E6UUPS{yArTccEP(UQtN~2P_@f*`hhbQUU_fjNqYZ{gc*KGO zvV`}?ARU?)PeN`IgVXhz)_Qe)UyDv><*uo;w=>4Wo(sZtfoxg~0oZ$GXj;V;Ql2a- zIUhyie7?Q5<>60@(2?7QMGshDDWuk~&&~t>_r7YTFKOHOG06m7tZnXO*2UDGo2JP|yZ-2-3wcp>5<=wcK`F%PEWcjyMM}AM7 z1sQH_=zhn2dHyUGD@st)dD0h5k0Kclu)u&G{3c%tw}z=iv9tG?6W$x=lAH}%{+2np zDRxNkEc&!kdqIM#&Rq z9rTlzdfZXBV^rw1IHP@PYn5;8(mP{vB1UjFcWAsAlhS4D={>1)NAd#th_EWwuyH2q zEZ^F5;%?fpV8ymv;&-h!&3PLw@+U9wJ~T=UaNg4kI>yGZHDD-=lGd3`A>C_Iv8Tf{`l+#3|Qu1R6gAG5XwLCr?hVw;Q*Afs-#alf1(cr5Hv=;h%30sjmvI zhSb(1burG1M&q^6J7?cOqRv35sK>0o=A>QdV5xfMc5Mw+%^#>r>Q&z?nc##pt6eZB z>X>!ixT5ZenrcKVt{z2`&0gn-tw${tZ=K})- zJ^EgH?K`=UU7fk{B@j~AgHU2M%MQ6a1S3hqS$CJR2c{kGt}WYb+3oA)w?zf9VS5WX z%}&%St_60_JgGfv$!EwhJV;5Ro6@^X7WkcLK7DIHa;v7SEq@h zcEa{CHlwci*^1XpNl3=q4fGwEi8!Ix{zme#KjMXz-GNkvnpc~hJ}D}0319PT;C(Rz z8A~H9{T{jCDx}J_FOE9n+2`9}lDxK;O_9BC`ut z-}12pj>7c5Bhjyxr%y@kJFdgH)M2ch?aP^LOg~Q^t~tYml|?635fg($>`T`TIa)PB z-xxzbgb7X_^rx7Xm*^LI2vK`(+h@e@#pgZO6q0oV3unzuU1v;$*3;2VXm8dByn7Yu z?;|g#=G(qK=mWPYlIYK}OxRmnGY8R-KcbN&j3z239L7 z{4rlB@jis^qLcwT^aOM(u^dcSG%wk6@7g+|dj{Qzeaxr%aD(jx) zFbaky+I^6M^?xy(bs(tJX`EP#)HoxYL7)?Yh?m4*Re%1Kt$;t#_D2|lI%+{XmHkt< zMoul{>qrZ{QzCD62PETJG{e|jGL3apyKHB<$qo^cFQ<;Gns&H+dc~4f`H{SY5VV?T zJuh!}RftxJ__AJC zFg;($)ayl+u}(ceJ7Qe!LohX7xNI9e24k})UTg8F6M2^TMR8pj_Ah&qjKPvH;tDoD zd0Lvf_y>^GPl>T1E&9#0Ee2HK9)Js@G772%qc@l1-|jm;Z}*PtqxrtC&>Hb^Jk#=t zP#?_{z|FrJ{UaTV)B?4(!^Ek+C0~2PjFAe4<`OlunU@tR_+^7Gi^A1tQbOc?#CN69 zO)9EpT#=0TFg277s$Xefdrz4AUC#*~0n%uxm-{FLjaroeP-RP!plJXVc3pst$B65( zUDO09Le;2SkQ7dOtrKqkvY-A%w*G|Z*bY(D9yOZ%dl@u>@bc75#uJyh;(>)YDqH%F z{zgB3W4U&7d(K`h%wt;QuilNJG&A=xuQ*zD{ly6Xv6au|!%)Ohu3{lKBpg6q zz4b7JF~9+iC{v^_HgUBY{G2xww$h5F9*|2mG$$Z+jiI!L9tKcLpmx2t#ctZv6YrB> z#6OlXNh6m7{mK)MyJUvAt_7Xp%S*j)CVre2U=7GGFZ)4D^2d!Lkz(p?aBM0R8n2UL zxVg6C?oYRN6!}3;;ild)CR_dwv{d4!d5XQ2g+GN6b4~GT(SNAZ1lAipT`!ML#o8knmkDh(LRWP`84PK7MgUaBxnQHNw|v9aX3 zu#|_)-nPa@P*RtV8X(KXlopiVOmVMTXG z2Fc^jhKZfQ`MLYq)o+hB>U?5Sz8ixyFhwcFY!kB|j>&XxYcO3~osbHt5YvJ?gfR9M z2BmDf(uND)IuK*%=M7G;+?;+H-N`)er-!K0%(BQ-=2t`SRb0J>U&xNCb3I%wU1h7-maD{w8y7k z526l!qqY1Y63v74~*p({UPIO z9$Jawo;@GXxK?5ulplv4UaId9RO+?hJTVNc>)NN#$I%sHBKP36jQHyVfRMm#-qc&V z2@fRz_*K5MDlLVT2r;bz%;b&~NIxZAZ?ii%0B*yO9W}rcsW&m}hXWxRt}*_aM&8Ry zlX>E@WocxymZ<;lr$lxd z9li$p9%dE!#S#9^-ry0+_4+T{3;fIWM85tHauD5oK_f7f0&6iFf6#<5 z0uvy*);=)+GLy)xv(Xy2utXUKOr^*)N)LH39OW`73cq9L0?4qd^w8tjk*T_HReva= z^wAAr-^Xv)Kf9JdaLE>|GD%7@L&^%$a!FgFr*8aVp9-Hw)k3^@`vvu#jzTod%y8(k z6N=6Ll~ycAty9l%RgP>|=1`@DloJPohN`%DX1B@tb#a$+%8?W18AKR+v@pl=5`*R8VpY`u)Wa9%~OeqXYa{ z*`)rT0AMk%8~6M4==$w7Xzl+BHtCQ3lkdQoukU8mMR5fHCYUNA2n6SGm5-C1pQ~K= z$sm*R(2}Gvb$~t)7E)hiYsme3MNm*+B*|3YgMIR~J%L5&l2KvNKRuK0b5;YSxOMx) zyR5^9c2HxZY#n+Jh5Uc80=U-WmJK$quXX?M@HIl~06_2t@*JPX_aRas&a4CkgNQB2 z3KEm|Wsu2^qR2&*NILWnH%>NcTsPt7)ONYqM&2y?nGQ%UbD}<}g#fB|QlY*CabL&E z#v;5E-{WR(++W8ZuDL;&rW;7D!SGhYetp1BWDkTF8_m2eJWiE`Xe3&;y8)e^gYU`R z{kKWAhUHlr;72w-}TAd6F1rM?ZdP+>L_h#Fe&mP7-p6czLaXJdGTE*jL=X33_VJn#AZ zDL66;E=RV)(u&DSXqYF=Kez%G^mOSKUif+}BH$XkYT~jyd+Jj4DenbW%jV}jc%D@6 z({67Op<=yOaPTCN-R-@ePnA~#2})Ib$IKsVUwD=zoWd|E`hB*eF&{#k)?PO?!Z^LM zvB&>R5Su=|!m&|yn_Uc73L2+?aGg}9LBBgjL66bf%dh_cLWB*J?zp*nSKDs5`*Wb$ zNH>P2vn)SxI>P)#IB&fq}5#7p1T<7zlw`nxSt&ud1~JB>dwk<3Kh3)?Ye!d=R2qGcw4f2O| zjs5IQ>SB*UO`Y6J05TT$qj~So>Uaz~T@Ly;|=Eos`KqfsJ5M2!p2nTFbyfqWJI*Wy-T}ur?%ifdNVaDNedV|mWGZ2*3?+# zLCg@31xV^V>bfO^P>d6o)~L?IMvT=|)~&QDlV!JdmZM>Pj>@zgNXD2JCzC2yl$CkQ z2v_?OmhHj0m7#qRpibeGuqZhMm-{+oJrNR2=wQ-jCup-CeJA&gXGEN_hg27b_qsq? zhh5vT_zA&;bBg>ZirL0cpQ4h`fEttC1$nwHYhY zsCT(`#qD_L(w?w|O2m-NC4(02#VvP@l;t;2@=lN9KC%Yt=G0>EW7ub&ct+Z+MIaZ| zR-oRkjkk4S&(QcqUJ^txsx@CNE*w$uK0Dy3=IIOEk9xx6B?iP<&B$(;d16M)7LFxB zf}qbdIJec@Bg?)y)Re(s#b{R$ArLkql)m!11~bhC3=fDjYEi=2vFP|7>%YXLGlII(7t8T<|_tGa4E3L?1rmy{D>$)`S_F3c-D?< zFSiy$PncU2DcOo9dBMkF49$OZ{70f@P@3_yn-b$V8PQ&~mJ5A*6%hBE41w$?{!c#Z z$#boG>F6|+6E!>TZp&bpyh45?q^^*1d|7Fc8PxX)afD$_r5@VXiEV%Fstq=Wze zxe1U$=V(yi|2h=hkNv&Te%?1TZ9m%l?A7~G$45y?Sb~4}aCX&}Qa1H?4APPM-T^Q_&vZD`L6M9I4RGpJ={A z;a!%Ir3^=i|{`yTBX7 zWEnNm7ygYk{>5WAH*RKG7HD`plhXILk4&~2|U4cQuLEcYwF zC$fEo{;C_s@c}<}u>~Sre8=z4^q%!E>l##s3;sqk3Cc2J9I};43nf5n#>pg)G0rcS ziM|-vsV;dJQhlL#F};${XbKyNUit_S+2s%#6TFAm_(?A7lG$ujEL%aCaD3#k$c^l2 zW=Zb}ks6X)&oV{5z1z;y=4S39M_-l3y4ih2La2m(+8BqIqiOATAZXi^(_TOk^ZmSf zX*z$UW2kx1p=;q%4KBvg@vDt8iUTb>&Q1QCwz)yIbx+_Aue}S(B?Ucho~NI(=4_${ zYwaQa?A61?+r77h{Q4Z1=1qONlrH6-7Y&Sm;r3unfrV$jU&%|=f+A#iabA#`kWS%! zT+=Z_2k-P*$vRL+*l*JkU@JQ@>{@~hG$`edMHZ?nUTrLc_g0L% zIJ*seEkiFwXKXS4_4QA*@o->uSBH*H#>%*l0J@8w!}VKh^8)$+Pb!9(&KcPf!FG7d zSdu}z>`>JV-*uwxv>S&_#v-z_{6lTKFeeU0Ge7mgT$Fi?XMQEEKOj3f1VUoS2=nNR zs`yMIQXCX?RD{r{@Z!^t;KzG)ID{j_-fm3wg8<0yq2uT&wKv8MTLtmpAL73fP37;y z?@x`!&o|nRtXpxRYc*IZ93IMdumT7u#aOggWuiMCJ>Tw|6DLa41{tnKn|bY~d--Tj zD#%$Nyg#s4!|OtsNo_#HP0jYqm^|q?4)fya2dJ|b#}NIrLqqRR1wXO9ubo&Qp)|GR zSwKj|Xkrsji7D2*7s*W1-NH8daVrgN219O;x7n+Fh-Z0JawL$5Z{To3#SpF?lF7F& zJ1up>26SxJmut?_C>4~&CMoB@$)Hh~*F!?XQ#*#gpTkA&6?Gt=M!*u&b;UcNF*-#B z4TDL?CeJAG^M)$qcX$}QnLE*nPSnjBUuI4!#f_KLyK$co@jvmd{MqQQbhrNqmhbXF zPLAVV>wP3@95&d5KDiD&{L)&r3)LlIgB8MLEGKa=G`{Vp;v!+$$AV)J;~K_xneoyOA&F<6zZcb--VGJq52Dz zNbfuvAop_sX`ir(>)N8mAKkZBGJ0F5N+C@{K4AFlP8KJLzN#@FR$g4hv7Obu$iJB- zk%me*4>JoZzLz<##CF8w;mdy|7R(#a!oSvF>UaCk2ne!x-(GmWQvzp_3C=yq z+1MIuf<92x%AT9%cN*%sq(hvc%IY{In#2LpI(qSh_*C?nNW>QiEy;MN7JU?$=P~#P z1FY;fqTVn31R|g!wDDECwqeR3ZLaS~qTL$b>T0g|Gcf@voU1QcijD>H=@5g@$2W4H zR1=(st}kc^_bRcFw2^R11%kZk5tM~Gff71-Wkc9@6rLw_X+s?J>1PeJ@97BaDPQOt z2{oBc-+Km{zxB-kgOcdyx+_)vQEl?A{s_xh@xyVBU$Z42O)2Up+wN;Jx#PT8DDG$C zyKZ^J&?YJT#X|h2|3@PTas>My`~A6R>)MytWTSZd42mh`lnS;>^&DNprJV3wjy@8& zKjf(7qTSUMiDjaX@>A(qteA_5P0qS`01E6hV`RT^cARcwI&IdZZ)6ACj;8cBqyhoyW#v`&BLl{ zwvd~(hxA{MJWF01q{1n5R+y;GVw&67^lD1#XsNX-mbSl7lX#Afh$VMsXnZ55P-px= zf_><}gAq8ZzcGgSdFVbyD%V|qqBfDlum6&@orS#VFryAhomp;FeiZl=boUn#$p04+ zi2k}AxPw8PXPf3SziNM~j{$|hQGvYuih;j*Q1vU-M50ysNQ~&sEbq>_NG};DBl<5V z+&5D^iM5+9RKj@PeR%SK@D%5R)O0Z~l6uhsrzwgAOAf$D-j4#U?y3I5t!5iuyp6sy zwOHse%$+!lf*FuJ(C&+T59El3cCU9lp7`Y|1D-TOVT#AM;-Wp1^Aa^Bx6joS=ZLA4 zYQDAFJCb3@TG;`^wn-3)rx4I$SQ(gHJH2o`KppJ zF?<8+5V^UiFIw|Zrh}~Q8etfClv{FrMG=)lHUd)b@z+$sUzyHV9SwYdf{OO1!J@nU z_-2!PfLw!Tjsdf?{wRMh8N60+$h-%iA{~JY>7^;7ACogwc7`9k8s~3)N#4~|4ZOr_ z-z&N>sIv(pdI~zluOfmJ5MIrdADgms~YE>k?PLF(7axEF8BxlgVR`@GwoE z6qE~&gT_ik6o}H*pi$U+c2xxQsue6Xr=>^ol(%iNY(0<}!=W0gGr}D9e!nEpuRu$= zCFS|aRjY+O#{G(~YyMe6d3k@z;EA2Pj^$}G1Ib+7ZwiOyKJXwdh3M;64-Tkt0}Kb+ z|AB*`Hg1q{B#3|E?i3fFS#Q5aB6b5wj|MH(H0GQ<$hcYuVZZk#t+Zi<@%d+z37v`} z5@?F{cY!4n^(uf-9Yzp+b7GeG=pv^j+l6JU6P;XcJO2vDrKxDUnq$Awj>QpC3yG^{ zw?l{?Xb}2?gqM;qIb_8=Y#&ChpE}D2_t#B2y#CROp1Dxmiak_+xRj zG;Ab(!*>bIp}=u9!8D36X3QgD*?kbPIZ#ni7B;-rzfg{goWMW2i>Q`mYD~A3mF$+y2;6RVNsbIo>zqp85;SFm)>FA5{zIi)a)=`;Q z0DHxW_v=>-P~%!b!hcaR$Pg?@+g*X~U$i?BcYgRtO0+S&PLR=&?a%`=T$IF+mH`t4 z#HMv6x{|pUyQxEv7%3P-JXYEf^`eq#AUrZX36(HwQXYE9m|JrXNEB>%1&Uqwh&fSp zD?9uuBLtP*qqrO_0y4TLuKhrwt#Zc+`6Ans;zJh)eNkRPGfYzGqVrjP;4r~*{pSKD zd7{*+6h+dA?D7)ycQZ(5^+(!Txg)au%g%GDy8;ee`(1=se?*NNr9s5R*i7B%Oc!K5 zn7X`R^?nUrS4hUR`_v4fPe`i2;D_V_F@AoX!f zU}JrHYUU9re7*G=^gqAMliuy=UuhLI_!P8J+7Bhe@UxAqF7-4i7+&NY$SrCmaJ&K+! z0xK6nHa5`!DT(d7nV@tb5M(KU#EAxY7NCF3Q-mjDWXcNNcuE{xbf zl1T1W)Wo+-0Xaz~$;_@jxHtMJM#eDvMM0hdSt6;jE{|Et-ahEV1fIY`B@0GE9xc<7 zT=^&<+VNnqk5;}GTKozLK{c1TsEM5j$>wu#n})7vsJhf4J&c0~OFo^{O)zx|1@wTt zfwS(rao1nBZwm*+{_WrFRG1C6Z$M^`LG~ItVe4J)UTzBvNG6s(zw>vO=_uMn4^7>v zyi>SSSk6jH7BrG+U;&8FisM-881%|TqAhfo>J8=}sZ=K(aHTOqN78>ILp@(N=_;r* z3wD{n#~3jCG0$4yME_ad7a!)tflPt9_6Ug#wFyzg`z${XNg~~ujjs^N+0&X*ua0?0 zyY5B}NT?L`O-E=#92teIq*GGjcul6{q_ zx>a$0@e%$YmsvgsQ zh-7ABOii9x`4p|Tprc>{o28mpRqjoNUk5Q7z2`OXp{NQTYH%^bvR0Z)ouUqdC{bpF zK4*vRla75kS)Vupc6A6mi0Dx^Fe*2aHl~ZL2k61V10fzuhn_W~SI)u>w`RApfViVy zdy1tv!F!vdWFeO3Mm5A|yH-%Lo3E?R7EW-wSYX-mQ}>91CDK{G+2HXhieKY3v~42LL6wEOv4=fU{JiE z@&)~`0?QEJu7DdQ%jGY}9CR18%r^d}fP=x$U~bLwms_(I|E;FIK%C7p2tfvCYAc}^RJ?C6O+U@$UAal|SvYT_Hufney0l+57k0`5p5 zjLzD)P!jW+o7R!t;sCU~i8y_5E5EB9k|+YJqAW{i`Iw2ZDMSgYI*v}A$qjKsIdaJ2(wR=f;$1a#nti6n7rp zGL1XIXb7Xc+q^b*Wz!aewa268m|hlamT&$<_M{2#Oto^%Uce3(X&jW~2+0ykEy>pf zi$=6^?ft-lqmOpHVI2nQbfz#(y1U^^iuxSUrAKieR<)`Tpq5P`liXz?W4Y)Lcy}qA zWP<@j(1ux*3CV#>Bg2u=v?ioupy7yJqUrE-~<%-gv9kHB% zM)wjvHS?3>&GY)C-zpJ>M1jpDr#%IE9}lQ;yC4!ANBUce#^Aaq5ur!-f0SzoG~C7f zN*Ht{BWR5e0AfSfCNY1*jD|}zXH;Q8p#5Ap)nZYqi--iZY5}?6O{xYUxqTBJdmL)V zDv2Vi`?=F2c|Y||z~C=8v`Zo(=7^;E%l;AZ=CgHkJPjH@c((=T)JR!iFrCBozBk>d z{0$L&Fj1ifQ9}lY_7(jH$inkSrh4>ZW|BO4SN$=Pp`>p07Sg45$m(p6w?K-_Ud}@7 zxhc6gcDAc)jB1#H{+w8yU^>~7f9ZRHF1)*o@^C~xG&&zka%YT-Cqc-kZcCwtwQ#eH zz?98b85M+FS5m%c%~s!&YBP2U;=wg6)^z7k=M1Fq&8EYWzwsmf_x|92;yaE+z8U?$ ztf<6wkUx}5kqzmaY;71+n`V<4+E%Vx!{eLH2UVW*LG(ZFjNRhF_1LgS$(YK`txF+5 zSqC6TWho{GiSz<{Qad7cVg59N+EyeIpdwxB2XwJq^7>t!BqojKcGEN-nL6$8G8U|j zseKXTAa_NXml-m0qO5)sfdjkb?2Gt)Wi{hxXzGu`hCzAvkEQP$oImB3H2ndjg zK^+!$@V5}Eh(|4tvwMnTEhOAotE9r4Em~H2KBJeq&u$tgx4o`RT3mH`*mAoqe_F<% zg6&d*7q4wu<7q=udQ*ew!*Gv4Yn-=Fm-Q5ko^VUNrUc5gWqqr z)a;uP_{76*IQUAAi?q!;ctXuHi-qsUUm9X60QEKv#yyyan)G+N^|+mi?+O5zC;}3;71W%yUDiGqiX--bMJ$ z3mm;@;`R+;YY>EA#$> zi^>$GoocZcy%MWTsVtjxNQ8-FPyZ(bh=JafeabbCxVNMgSQoJbp3k4pCm%tOYkU2I z$lzqvKcgmy|J?~8*!#H4L_>iDQ5*-BIvRZ>1*KZvxJqR@5(W@F(6V<|L6=sBSu?N+ zK-{&h4<;FSkgs{%DOZMIXO?f(UmS6#ll;QTzdDBb=N&XLDfh>psXB{1x$5fLAZFYY zqxib4t-^$Y&s%tEJ9b8|Ro_*A(kqMUl8{@<9t&CATW&EQOJUm_SPRyY^^vu$xHcQz|a|}LSs2tNMHw~*g=kDYY^%W@O z9O0i_0qO!nN6^~az&`{T0YQqUeHgzc7E?uZ#J|ixyU04~Q0uY^L@u@Z<6>@1a8?9V zsYq{;Fukguw(iW%+5XcH~~8hzS%sxl7IO)rJxTzoe8pj*Tw zE#&0VYjimLekx(z5~eP)_)98=y_zK%g-7-uEMxW)28nj}Dc~@(0!?|A4gsxW>=JZl zdp{k*A1$hdeY=iC<9!WME-Q@kSBWU}Tj-|#hD4N75no5zGXcp(*MufC+lwzpgrolY zlHXeMf_4-W_BCt~+#6=T&msLabHUEW^?%J=P|WLgFf^RGZwd3yV6)W#f5`qw_r?*w z97wV%=jK_o?;i`Qu+z-}_|XrJC#Iways>oZjLEKueLMb1cyh~e*$?)L(6eG`rZNF! zT~`?cDwm9sE_of{L}}lAc5M0)kHbG)u-z0V>;THj(c;~x7{9rA$9@}YPjCD{kdReY z1#z&|FaLDvdyRS(0L?p2uI#d-BlAc@Sz;fmw$gTq%z8eMSrv}owLEwn*@+&DT%K#`|^sGwc z3wL?t6grt3z(<;!zLmV_QM0nDFCq9MEe+4q0EssjQ>3UIWrJ=kTUD(Xjm#r| zR1xBw}drvL;YZDKo7Y zNj+@(xyS7_df(B0x>4&9LApWt$R%+& z=kXzk`k(pzud~d&g+KPIf#0#K(2dv8G9}bB$h)iC&$SKHK(a@NawP%k_ zh1D#Pu8sAQ_839fmDZdOg*1uy;%?rtQd08DqaFIi7y4bZ>Ms)#qY1IUj?$fHk|6s&gedrbs^1P@WCltBkWg z2Jj^N|62gyXaF;R9o3<36$hg|z#}BN7Oy^%V2ZasHdjhKIHu^FD-fEluM>BG&i~BP zB7roT07x^21{&+fs;C#;A5H%<+H<_VAlONciw1C(RgTk6@aZo_je+R%>KbjQHqLqE z{R)}YMvbRS!G=X{wToviZUHfm&sKE+p+yuK6t%4!LgIZT1trJML4K1Q#GRn3{B=$8 zE`LPJ*wmDr@oYpg1fp)rqo2nk+KebQczGAc`#NR?q~E9ilxL?P;f#I<_6xhV$$dUs7R=kRpO(A^ zLHvz`{Ock?oeDo+MUeGwLBK~5;d&YFX}xfW7;$sT(uEX$R*2|9x*atj&ZU{^jdhK4 zlO+`b1F!Hs#=}Wvv3^+W48)%%4?(;+reUouBMa#zOP7rbIr>eTS~7YQfJc%zeTMl9 zr#WY~fxbUV+6OZ~Dy#7fU0&Sv?D8DHQMPT_mwI?YDiczG@Z@thLYBm~rQxU3hr$_|11gDX6m}FD$;%tkVebQuSd$L~e1T zsYW5^R!H;JsVV!3Y>I2g*WtZ-n3@jw(id(iDF^9p3j?r|=Nkhi%I;&{7mriv^jt=t zqh{9#ey_du+xyAC8+S6lFLv>QopNqar`YQR*d75>lG^)4pT-cb8h&L-zut6{0Z}mw z7ZMTDb7<#Ge`E zj1B2_AoL72`M(DN+BSr31KE> z6;u?0yFw)jv>#$;A{*utvjSlF$?GjV(Et-Vpb(%&eOgO3%elx2qYf+*X{RDyE?k}*vaw5I2>X4~Szd!~L=FgVS9U|6g1D4rR)So^=#pR?5N>TenjuyOw z9}w-N+ny+V_Ur1~&ZlX}qNV$Pb9(;9%+U_blX!zKI)!O>D2-fT?P?j~9wsvw8rxUM zOd`vWP}rtyO2@k*s*n%RJ)%u+;iwB~$sq9*59g@cla9^o5O7}`B-_Nz`2`ym{jgd| zEv~8Z;UYjKwdk0>hUUoB@MqWH@^z%T=X1!L4-pEdY6upI(_CAiYpEDrmD08k_6L2bHY!*K)$WqEpsUwVI=M*Uq3NBa@ow~TC)KII~mg1Ww%2xAe%vAo^u zfW};q*5sd0#|z~H9_wIve<`2<2dl?zIa%!@du;K65M97x+y3*YXKHDlu=weEgd5J= z3k?9B{dK7nVS=qY6H2wqy@87QTR#RIIJ);=dOQjjv_q&uZ3A^4 zq-yAwqhyVX3_{X%J2RXun!T90RqUA~vd9=!Tv{lD;dwadY*7)((`g}bRBdNN=lJ*@ z+#%NJEGEhC?pUbuh6&_-ilN-1tP%C551Bg-@I81WSn4Jw0=e!aVLE^J0S}5|n%9AC zdQ>ze27t+5%G!aXKib0;KUZUy^`V!(o{G_xrXE&n)^xe1J*zmDP{-B~EHC_q#x4^$ZKvgnZ2Z|!EbJ3?u0dokM7 zuXu&qk;p~tS;_m1A=e0^l;maDR`OlcqX*GEhyo1XI0Ax^R^;nq`x=*U8Q?O?(3Fdb zpgwhFUytKnB~BJfKsXB3L>%;NLHXitK2z7nY`z|{qPL^@gqI}Vb#hN}Ov8EKJ? z8BOl(ls_Ry)jXt$RC}emF|7%Rf6hp74b`(z#G|4zLZu6a)o%8RtPAWyq~cePf~d+A ziVA3{_&Og5SL8zuI0c~jNdZ91yu04@aw7>1O{E;jB;Sqjqs$+smP)Ks4s=CwIt9zxz2QLNHU-%?SZ}}5W0SBeU*i*bK~_$`+JyTTD99PzG70;n2Y-YJ z_2oz-P>F))qh;yLEh1Zl!!^hVL|mipmm)oSwdAfE_e14Exj|y!i`k-0rZaBGL7<qaA(A-bDJ$;-u1wbbU~JFcW^L3wfYeV->9 zz9=~*OmSnI=^XEImk3fB)t|+LdGxi-gLd9%4_y)~ zyKy;jVJDy4CrH?9c*w6rG|=<9TJI#@Z6AM5OOdhS0RCy#VG)xM|d9xJfp! zM|Wdpi0F!60!vX*pFWGstTjW(sO8RQP~nLFls`y`180kB{rr`c)7x98|K%$BFE<4| zppktVnNER^Gq~DU()7!!P>5y$16ZXdJl-}BOdpiV5yj3JR4zstd8EIN#0Z#@o(MG* zPRT*~H^M%sZz7S?taKunMc-#k1|$}$qAXn@?(Cg#m^UCAwxccz@dxe4qz&!h0~C4K zW0r?MH8$99hrV{Yxr4S-{{J_E(b=IsCYWh*K}LM5FaXx6{`CjV1-x?U_UGna#GAe( zT}n+T zBu0+XhHovvdpDPta3$^MOv;Xk_$-tZF-oh}0~EO%YB&4oK0d58JqfM1F559O1J`F? zmj=taeyK(B|_2&*vI4h9h{RI<-AoFHN6^^lH~Mlm+*$Hok{J! z5G8AMg%C22(c2$&@(lFUj`)!k%{nPHl(iis5|*T=LQOYfC4A( z<3MuD_s&V+PMDjJlGU$M1X^^>J*3j%FEw>whie$4BFI6n$TBt&1VR;n9fL3$e!1MS z#=j4drI%LSgf47yH^g1vEkRS0-7ie?6f+VM=wHq!HpHXQ@WKwYmx-L-7HSRn&sJ&$ zYxa>LiBN!fzCZkLa#>^0${TD7=tV5AI%;#xYV+Z}6qR!h+8mgaX<3YD)Y zeTmoejoN6tZROjl?83!ArR}0fZQTnL3u_GJ%E(xq;FLba^x^LRPy_4_d>KUW%V%QD z(rOO2)-}vwWG##QCF<*R6{^NrkgOXEWX}E|??G=RP*3|qwZnSaq7Q1wa3;JGF4m5R z&+am{Z7D(s4zyGSMY8A50cM_L&Ly2M6v$={^`qqH_``Ym3~_M~ehEHXCf3ut9AcCX z2av@#6Ky6VvxCwE)?5%jp-?(oMq-mo11{(?V#^SZaNI-Bh-TZiJEjU}=3Fkbu!W@H zgi3gnB2FcpRnqfY!WO+Igfi=tNPM%$qxg7lo7{4~|8C>u^+ z4e}v^JW)7PAedCcCJgB8_fM}?^(4gX#{CZK?aVa8(5>0C=yfkUL*#dm(`^2>Y2`kHaG!tr8=^EEN)75;g+O(_v`Yb}lS*0w;q=<*1D8 zm)FriG7yolf_j&b!Z^_pd_l145bO?*^~O!Rz~^huS%Y zXY)Gn3#4}4=Q`3wPX;cV6g-*_D;AyW5~52J>e6OvwrFJ51_glUQ6`cdo^SZg1mBX} z<(WF9D*Auxd^aPS{@sbL5omJ;gl={z5c=)#I8 z$j4vQS(8lGf7UK*UDOEh%I;{RljalxY`fqt)%K+OtIq~{_f*U|optr2dqgjK)AJT; z^jgHg%IR+cY0!gv{5q>&@adg;bXt|n+dR>UH%sy~c01dm@8v*)g!b!&-%Z&Edk$g- zJ#V)jnPJ<`G9FIISyw+}iz-bdE-CAf$0-;%eZQ*-@#7UT_zd$C@EAGRyl8~jU(OQQ zoKdZlP_OXNk}{=T-3MCx-Dw8(r>L;u2+v04@WGqPViH#g@fELR6GVOqOnD!02aScT zGv@tz7o#D*x!OGR$38B$cB$2US1y8l!@85DM?pz5LQVcOmj99%zi(}AlC=$U}V^W3<{kBnC**)*$ z_RB)$Qb@_g_jU0e<+H^LAZgs&KTok-F1|C^@z`_dDuq36`7zC5l+=lZic^^p30-+* z41Cg)A)6S&gIW|M?{E+brh~Y(w=DBu+XUT6153We4tR)(ufX}0)$x|8%=DMf&uy|g0p~mBi^JOP$AS{7LHYYw*_c#*QLccdC6p%VHbmwX7GRQV>QgX*JHC;qi#!1gFdNfmZFO%UKH;GV+2e@jDC1`}^YrH9Dar zwTycg*VTS&a>m9_Q5`B_89NrgFBG?DvES9gW_9jRNkMc;+(6|Sml>jxg4VH!(Lu7& zC8*|7n1K>dODG*+4Vw^dbc_LVALzr%%~BTpW{g884O^UC$k0G;y27I0y9Rg3_?+>( z&_=FVqZa(WT9Myopi}*8ASb6gMOBW!kFa&ep#5Hj)aGhx^Urf_XE}x_bs72hWSvAH zbFKgukoljh&-~BJJ=>2u2}~oaYT~M<0$6d<1WF41S*5r##e%%!*IHc=$Ev)w6mg-5 zzAscALz`vaqwo%(AEC@JHyL@4ctNIcUcV*>D?%popMfSj??$YVHJIV(7&j;KRbPoU z(NIqS!!}AKt${$>=5%um<=WI{iX`l`8MmS4D+#8I?kdOpi@QRB zMTR2)^$ixru=~_`(QezmgQlf)7YZcTH^*mT`xWmREx2UR5QNf@MKO?;PQzuGK1>Kj zT_3Q~FOtKWV20h}YUW7hb0(7#5Peb~t6arA0v!GDe((JcV70vR;uHL3Hhbm{9|-r1 zS8m?|kC!qS0i%kZ&>ZOJ&*)SpzP}_~(e+(sIJTsYPZ4Wcrtdbg;7|f0ElbWw797c} z+RJ=~_pcnBhiSLp$;+o!Imvymvr{T2+|)NN!bS%n5bm-e$Z}_vX3#g zO&JQ2i5yoW>6Q=1s;Mp=a5Tt0ri$+|8b6TJdtQdDyq)Z?UO|{Sh32HKzeKp*2qYAW z1(jIq)K3xN)1O(-mm6h+5BED3qLfYB2Dtpe}};#n-kdk7>95 zg;L%$siudY>!!xf&_QPfVPT!w|Czvgg`Pg-3_?$@b-SH? zz0I)+B5ey`vt?xnk!uN|#&*lk-BdDfMRjuD4;WqWvG|<=Sj3z7Y6&uGv-m(( z7#i_`U28{$2(QV84uQqSiCpdLS%(bK7B3{yti}|(f@Oi>&qiZ$Bs+63y^rO!InDx6 zF)*#}863iiSl#JYl)UXt&_j@?%~`dTC+!AMmV%j+jI&0ou8rGR0iQ4n$KTNzL9D8n zvspek`TUEQYUa?!$Xman`mw7{(F zcJcSlc#vJHsN!E8PZB7x$>x6j{y5J$GRU5*bak??&A4^xG|Z^l?WZZ5)Nl-WRgSH- z5S5ascT7nDa_Kj?RQ04q-;{2aH!WkOPHYCGRO2Cw%b%$)68YDiaEGTtE4j~!thK=5 zkS4f*z(sl2+M{%|DsgQLggmAN3*P1+{TqP+moBO;8Snb~K{pc5NG+nKNS}ORjzmcS6Ws*Pr!mX8#i3)oJ5gE)_L#Oi*+opNU3JEP}&qgD2;#3OKJgb!x!~ zlFHN_rYD?7q9l7E;V;eG>1H{HB`*qmO+S;dvJ=|TG`Qq88@2uRGXwU(r({-+R=_jd zdNkIgTuQgQkcySMcK5C!Qat>p>F-JT&2qE&uU%|X`RdAHe#(3%9r$REv0=Rd8iNXo(7XV#ZVGV03Iu>8O<@CPXaCbv<7@(%y>2Wo zB(SVVShQZZU8Ka8)s^rF-%_Ur(Vo6tsdel|cd?G+`f5ssAw4B@b6~f6;ADcQ+kdzE z%2pDVo%qe%wa5$ujl};*4MPwA`O}A9y?(#;4dSn-PjSllY5Z1j02qVy9rK?aJ!#6Q)zrtIC+t#g!F;KZ?HOVX zCTdDB%~Jk4-(>-j2g%`?Bct?V<)C`ww_VM)rYU0{t-LUg$IlBRbYUg$PxfEHRDQO^ zDHVJZA*FcRKRn|M335GEc#3$ikD?j+E69NRY>`?9GtY{4MkyfVfhYx{c~Szr3cy)Biw1(cl)T#>=tVedak{c-~2%~&}XC@@pzkwVIB7&X^(g;fx9Uvu+hyn)y|G`;s z$$_ng*$cqqDUd& zB3qkz4j_w~Mq!m#E58Tb7acShY1mt_imakBhyg!2Ko}5K z-NRwf+hV^YOEpSuQU_Se6Ua8g(IBJ~lAvUG#wlVWB4ZoZ|F+)jD!(Z<>f*ml?*8pnxDI!7A*wmlnvRZ}cGA$c63P zoQ=t1ve*k9Ho6c;d7)ECr%5q_1ruZEzMyV_h%rfi6D4tJN85fh6j=A&YqJ$)KvjP7 zM`bLh+xP5fA%OcHl8Jtet0H&I)S*=n)=EztKCEM|fWHIWf*q~wd!)ksYpjkI*A}Z0 z2x!{ed(;vv*V~<6G}l3uc?nBxTlsj zg>cHWogR$udbKfOLMKjUN+Zl~RT`5RsSTB`+AMbnknz|#v0EmiWJR$ubfC67simge za#Rn^l^_pByN2%B+OSz8zOU#%j6^1g=%m||u{^=zNofka@JVl7^V8Jc>RD8nu+ZiR z-TM@675;seBvVq*o-n^taA1{sz{-CY)1v3xp791y1XIS4hv|5|roe-BD0}B6@e%0& zIxUEm1E~x_B^`8JiAUROy?2}IV-5}f8e|_7OWA&S`b>k->~Sm^i7$4YF+B#9+ft0` z(DgsajH|=Jl%tywB-LQSv}`8T_J(>4{)&sbM{{f}J>{3k$3 zi@TF9@RyLWaudtH_sYUlp{9Mjj86Fz*27|Fu=KKm=w8e}LkpwOd;!vfb{Dl6bk|2zUn!)KWz5cq~f#){O4Hw298bNtt9s z-H69vwcaNX!pRd)3+9kYV#h^|WV8{4Ih9{Vb5HK}weU-FrZQfxGgKtc?ha_!#OPj* zO9fm0VswnTl_BdE4~5bR`2a()fO`e?AL7ZuY&*Ac;L;0-r4I%+J)EdG>sep43Bl5) zb5Rq}JFC*m1-r-D`b-=S|Eh`G)z}Qpcc}b1*o(>gplhFtFsqQUf^_K;EGpg-nsl6Z zewFISpzH5cwl(t?jD5gyrt?j3o=!TD9;52p(2P1y*kyW9uy&vRXBf}sYiV8FsD7-H zELhzdO^#q`F$5e>2kS`IeNjXFQDgB@+T7Vyn00d16o`kbQmy zJMFvWtsSymzzNInAAmUyI&s>yjiEZfcpSuN8DB8n02?17I~1otAkkkQ$6p`LEyRBa z#D5xA5boXnaQWJ#p^m!K5yM4dmyJI)^ibZHFL)k=KB`!&&CA)JKirNCS!y)TCU_w* zt4G%T32e%`(x*0+au9M6!TaV1xQ9`+_?-z|EI?8pz8F?plQ4wkJP>j@hO%PYY^rX^ zULrZy(N?WsyQn(pZ7-Rn*aV&OacCjae?kWC7dglCmW;sUY##YMOphxSoG|Q@nMg8_ zeaJ&*n`P(sbwbrwyBdG$s?In9xUYSKiwk4FcWE2@*lXCHM&il`XD6;$tSltk=71L` z3P;idIoBuJ<4otyS~z#l>;XIjNgq0{y8l9F|HvTqLx3-7T(>2BLY_BkTl`d}IOvd* z+5uu1W3N{t@Tx)z^JT5+{yU!j=%e0is*ijXam8B^Rfvc65){eUb6ElscZA-nYUr8Dx>+H{_rPXN-tH6zi+n*yP~)y6*Qar!`! zSIe%2!3xDwhhTmt>x}K&e*?q_lLC1Jjj}6D*t-iXoqAr6GW%Wk#3%Z&EPVTW)+BN! zzAl2rB(uiEfrVi-xXy1U@P;j_C)e(g3gX@DQvP*K`D6O`9GvkSi#ZB+GB>kPYjA%L z6jSgqRR7d|wcROy0zG7)lLzeslOC8myQ#ZU19vKJ9K5(w?Vs4Ub&gw_?yt|UPWoot-aNJH+9M5yl!YaRdEHq=_7>l znWV9NO|W3N(N5!!r!sc+no%vQ{$+%2v<-f)Z4K?vBg;YJ0jf0CYKt7&s?@$E^2?Ug zI%NQfhd=f1re4~_mBMHQzJoaQ(4~J9zCMx) z;10Ke#+UziNI=GY4@Tg|(`S;uq3>Sr<5lenUo!k|?hY7J0ssS%o@Uw4EUj6@T-(+5a163Xs z!~@8kok{S~5OJiC@!_OOL@S?#1rEhIgRB&%4mU=Q;LK4=?_LVn=x$8(jS`q}EmyO8 zsH@h0og?P@Rq(>>0C1q(vf#eHwI;(^cPjbTPfW*gS8uTv+UREQ6wP!NvsHvZ?;)%d zgnCH9I#aZ-T4Zj-h67r@^C8;3#$z&45lUP1=x&TI)C;K7F7tF99sR*2!T6FMwiu7+ zR{nGCjQnNe!W(}VhIQp{3Hnw&Jfy9?SNcX>7ZT)79QHC4ySy9~t_q{own`Xm`=GBq z)<>-dIRc>ndAvb@u;cXxZ8r!b%;E+10}F+g)hP~7pd?`OAZF9H+|o=c!q5mB}7W{3-O-XX<{l?JsRh>dEV4xl{Z$Yq~vzx+CeS%$BeD~dIrxr!^Z zrNTzMB=Y$_y_3FXDOR1JE8w#wZkNX95RAOdwldQf)~_7;6Zvw+9*yeH#11D~{HJRc z?@41=?*#cm&jvIm8(o1gVk_j;VGFC1gWaumkBt|shqU=Vv9-qc-cK1c){$4~LX8@e zJ5(AMd$*v3S%(i&7L+uzq3_}Ifpezvd zfQv6C{@kz~G8#8Z$gSizZo+yyeJi9?--Jc9duP*C-{4BiWHBczXOP#mB{n^omw>>z z;$9jujeFtGhBkx<5^`V&)1{#kHJ4TT@8O&EXL(<6l)T{|HX&Q7jAMoGa=Y*J#dn_j z#$AJgM1RUmX8dA#Oi31=maQ7 zQGbJ8ILD%!=BL(O0GR0VuN(|Co^W&-!zXY0Zo*%jst^J0*jq-9C`x{MS`+%(*xtM_ zQb$yi1|)1A6M_XZ{mKQD-X1YAIa=Eai7cXwkenk+tY_zyENLB#to&&jPUK@?u-CJ} zh$TZ7!o{HEY;0;Z>CvAMeU9=`>>P)O2}*Ul^|bo4J8`k_krM~nauQJA4-&fxMYQe% z6^B7B22k#)v!o-a>6rNK(MjjTZ~K=zY0)Oj@V5FVQ_*=vk0%G}pot>|ZTFpu;pPQ= z7Y_PM?&7C;XjQUQ_V+%r^;DHtS@+P*GeR8?2$~o0{qwi-#LH$!`^LD_fZ-jHbNL&> z-`e$Y)wSYDP1-4e)J=+jB4yC1-BoKNxwFt#DeKoNPIK_j-u0gL{h9KW%drFI< zXXL$RB}KTH(Zc@*PzqNS*k?7nwHu1KL#Cjewe{GiQ09-H+CoMA7JG#r$T*jf4H zCAe_@mIIX8@QC7dvYEpU?(X{DypJ6|)lj;|13e80kmBtKCxy{&wV4s+^-&}ox?iUUYBr3~v~F&(H3Bz-sUV|gR(aXYoB3X2P3ZR9ha z1V>tBcUa&lMb*bV*LhmWD+{um6|rj6qfNj0H1qOa#> zTk(YzHtVz<>fgMpQAAJ-t?BH4}d)w8fdYjpBZ0 zMEB4k9BZ6)|5hjitA>$k2bf0WyCYsCLl@7Nyw|ODVN0 zl_v=oS3=)a|0G@GjUM7?3K5@hcIy7jiind^`E=$-*#%zD`d2bva2fj{bvo34Ai%@x z`}3qfbj~of?3jf3Ll3<7Nu$A*sOb#lV^)}2mk+t-%&LMHM}XK30czTtG!8D?p7SD~ zg378aU7heCkBqFQjE=eXQJS#YpF;{}JFie?bvYT2BI_-%FJY69wK%frJK))tAZ6x% z)0*eAh9EEXL8c-Hq7UBDY!sOFGLj*5+j#|QBG#SVt+h5vscjKwoMhM(CPEkKlPzvt z##hjZ4c@scN_mScSGZS$cH^D_-lwDGnS)Cdo6;r%>67JXc6nOr#=cK2GOSbNlM30p z{6&D&hN_!;TTkM|>p>G&p;S%clHL>D@|Xv9%>b#%ruc6md6?0p_eT`%in&SehMJk& z)kPN6Z3uBtFg$+}63QUsr_K8M;x!mmcPz8GMovW1H=z)vZzmb}5t`80oy5u4L*jfG zCR!uxw@=1@l}S@cOSnRJe9MZ?0%8E*h<%4nz>4Jz>|TnwS4MMLW(PJnGHk7~Rh z;3xX^<(IE9VuSu*u;_?g;QHRo6uIP1RQ_A7iJDRa#U3!Ofyr|tFz6{eOO%J&+}JfU zn0&h&gDS@MKB(@=x)4G}M53NRTa*Oyi)mYrh8FAN8+3RpBV5+OW_6+%=HE!WVUaBn zKK7e-VICp|%~A3YamUmw%&t_-)Jh_sxD~MlAr{y6L6>F*bZNZa8XrNWjphZ!)^m=~ zT#=Z8Y^%MjR>)jAXn+xl}odNp@Z1HWRi#?V5LC(Dk5d$kchk~)5hByc!8%^sF>OT-W z6kpSB7k~UPjfojLAxFy&Wa>d#4zX+T&7mUPQG?gIWrMN*bY?_1V-#neHkXKon$^a% z;tih@_pSan`mkDoJ#wR+q5CdaY@!i2HPiSi7pqCQx=9yIcp2DxM+f{h`77vxyBi4Gg?H2v4Kh>C@rKMMxpKXq>Ho z1DnG@dAknI{{%LBgVGZD-#2`3?uBlxqhK8>GWn*Z*mxDaRiV$-g73j>39T{+F=Yxf zr2}tBiHE*;J1;xcV@q-7@}#i;&{kEy*KF6H;9J7nEFR%D#&`o0)4t;Ed^Mh&EeQ~K z5{{)L`}Oc_zu}Ma!#YTGvA#!%b@~(SA1YzObeF6f)Axw=H2RfXInB7{D#z>onw-5T z`&Z;L>0cz@qK(2vQbG=(fA%{i310aN)MzP@u%8^L_tf;nx<;2Sw#Wolbj9nhfa)!6 ze!K62|j>;_LWwLUX1Lv&XhBZxn^KCh3-%x|P@U>ScpHl*g0!~jTUB%&g6TUxgx?ip#|A^% zAjmp=MV~PamR;Gt*ifFr&>dq>etHZZl@#o*Oy?#?$+N8pO6M&0G0{o5$#%_T7ugu{ z%DKAvjZS?3DRbcA@J9?15B|ykT9*&U2;amO78^GAVrk8CuP>s&di`?`)L8z(;t%9$ z9@2Q*4E0oysp|hByLTQwN-Ag(hwU>f!}Eoez8h*I;jp*_uVts}EjSMHRR@zCw`V z+@E5Ez|Z7TIOyYXx+aVJq%>=z3tdrHq~!0J4VuU=SS#A^&%sBUB3GLW*amwoXlmcL zFox;1{Gk`Vn7r(tG#)v_>3M#yy>nc)q+XPS$T_g5jMT2|Q3|_3H4Q-CdEk3A*uD^C zFwcUkZ!hK^V^zWl0BB+3=^%q!>B8!f0`QHTU)f((^oNrrU@)i^yEK0-J+m0LM%3Ip zJb^f24|nBv{e}+`LWud_Zofb83ON40b5V;mUKr*1ns>3i36`CNgP>e|ZS73dY{$-^ zUSd)_*ZXOQETuSbUZJE|Qf&%=dnMEK2gy!L5r06KdB+fy%I=o+`he4Tm7SqP&M0_! zsMWP3(9?AV{*B%T%-7c+D`iJK!;mk8@F{>^wL(x0?B4hn)HaVdE4Etc^2LhfntC2H zgW)zPbK{^pG3Phf;ZNN~YdL?2$`uPr8BW>o`Ng(aD0{H|TCJuYbqw5HQ-kGU=f|3> z#~(#%apMoNie5T}EGT@TcGV=D-#pN-rV*=t)X38*Tqf1F>x-{pBo}%Po*t@;)Fv*+S=7O{;n*e| zw`F0USDSv3VTM=>GQ6Bw=Zbq4EShg%-|qZ~V+OC~bq;14DsAA+p50Kwb1d6njnoPb zQaXjC&_V9C>3&>}R5K-Ub?69jAXHWz5{?MPt}?~H(K{(4BV*YL5^XE6ffHXnzw5^+ z2C6dg{h_A)2F=>n(51#$GUq3~+=OBL!eiysLeRMKgc_ZaN8UfmPXh*)lU6mz6E)`5 z;tA4dk0Smj{Q*>DNfLlwcWL@B69OA`L=X2}xOV`I=A+O2!*&tY1Q?@GB`aIIoU4;2 zM{=rT*paw=dk>_h_Hmmq)m&{D#uF3yi|oo4nKv~I@P}HHzARwY&fdhFV5fwtVN7YI z@$%+~Ujl@Qa{me@B8ac#eSXyMF+;{Je!su&Z{BFnHGHSSOw`BU9t;)!WfR33oDDT6 zzjsceA54Hq>Ze|`8Z?Yx)qIvJ+G8wiFr#tivI$#$|ML$u?C1z?8GP;~iKscr4b9$A znU9C*Xm*<_3Wha8ouvc5cDXu(;`e?MY^YKAx%j5Rnpmhz78uSF7YDi7#`HMLbX}S7 z$}W)EuxJ}7Yx#de_JS->`+zG|8yVKW%>=7cem^)(XC=W^Q&t<>k%8k$My7R}=M_IY zuayED95v$Jsvx@M^P%k$ z3a2!vt`Nz7G+)6D)4&mqMV}jzjdi96mLn!+t7A^`$HKdRA>i-cDw-glQ z-Wnt12`~7Kbndg??geZ#ck8>|6d4=-^SB0fjAboa(mAQXAi~ptYd}3d;x_t2(G&4C zK=6TtK><7RkGHB&jG2Y81ff%794qZm2PN@zlKugBqRY0RBX*oxaiqPCKm<60ndsne z%^2x0K@PvXfqV5zd_`rGY8mh`dzEd=d=*?+jZI*}zYynjl=in*REGcN^5O#}mi?N^ zoz-t2RzlwuI`g&(SYecNYwd8|`fa{q+3S-M6JB`{Bg8%SKvLwgEfIZF&5%~FkdpGx zSI1Xfx`Z&BGU2Ko`@NV}Vc3c%RmuPEVp$ZrP!7M*ro2gs$H;DVoJ}vGlLrx1t*VAs zq~_URuB4{BEqLSI{G3=G*2PV%0mvekj=TExoPD?J|nMD)5CmPrP~ES!H@FbxF!#Z&Z{= zK50=qj_Qc=U`hO%1KG(pMRvr@o$#(jEvImAw#e$)*Tr8u98xd+*){bEay`FV<60)G zf+lJb$ncS<(*HkI)t7@#xvXYL677}wjxsHM6Ew_+6N;tQ0D-OSteq=fLd5Y_6? z;A}8bLUIyT1Jg|YokNrpwqLQh!#I2X-)FYDWT&g2i*wq{(d2@~9Jwb{ zn8+M^$@_{kD^g6PJaz}i{+Q%P?q8t1o(dQDEGUsuQ7MmPZxW0qoRi4H|Aoqde*^c& z3VQXbTm{=*PY|*Dy%?^aTo(T@Rx=P`6nb3CPbArMeOgK#afw%x<6&i!@4gR(I%BRN zXH#9L za{g*lYcpL{`eXhOg9iQ;IPov7?y2|}^ub_V1-HOqb;>wK!fM!k(9Z&b7(p-&2)y}# z7(cLNA&mEn+9u}F>rI8T1Ht$QB{diJd6Vle>8*otrv%|)L4cXX@_0$&L$|9RiPKwz zes#jor3q4PUGOk@w@}{M7zkh99sGo_QJaIs_rgz=5bXzio>>&2s>m?Y>X3rJ+% z%)gD6veT0EuxujYNIf!c2Oi^RV}_>xWQ?npYOewpj_?%z5v)H~@O?%&?4;heN;BTu zARu+Ok8MTNzV@2K1R^t8vs4S8@ZO9^L2%*JwA#n<%$cYb*@-4-eT6RYicS5;VRKXj z=+g|*TB9?>`HO(LAjKuqzlL;knHDk*k37x5he$JC#Le8S`uS_bjvXY|zt8c1*V2Gu zlRliBLhqpX;{fN4w_U6^TaO#dD(C47vSEc&hYp@nwe84kRceo$sUG;!TsZ0q#c?PR zNIRo)(O}zNb4sRQk^}MI+N{i^P%CP|eW@2EGf$5i37L{$M(!%I!bsSKZ}vc(rOf>O z9Vimcjhv&ozvz$)P-*t*guIMRm!!*1-TyKnBuunjr~l~UT9PL z%}}mq8MbRF7&Nea!5x!k$*1Uq)P0>IOTJb|2VEMXh69e+M{X#8rrViJuuLacKf14z zdEg7mhADc8c8S|L$3UqRAZFCqJf}iUk2Vd?Ljp!|Sg+J^!zGv*XEoQl;H57$slL{w zdqizGwhC=ScIfy3uSJ*ZEZ1J+h#qZKYbJO8^xu_RPmTwVj95;=vF2<9}wL$gJ0JtK`unzGEdqeqrtEq*&+Ulf? zyy4DN891@4(9_I3fK{C~4e8}BvR;x8Z?b@<^0d;#Si1guO$`Zcw%xV zWqOgUEM{cZ5J>&bV@L!Esyio5W}prR1fgAj*o=S)A3H;`1cATYfBmtBb;?S!-jFt9 zga`wPOuJ+H(FtIulm;}doQ~$B(VBa{g6RY@Qa0|Li|0fG$W0-tPsz8W+XBxLSGc8Z z;^NHh7%vsS60Q7fbgLJyRW7$2e&Uv`z>D{E;hqBzl8t0WV{P*j#keZuP8wGrZko1H zGhh)z;5z53N{a8q_Q!M5+RrS64f(?h6(lw-KCV2d{rN8p(-&j@U5rLiO!CvGxj&_} z$b<}Fg~{g45wqjUEX(-`VYt0aTx8WY1H4i?(W(Zs@E7Dz*8S=k`i24b{Aj<`BX6v{ z#(92pCIAk0l^u5<`^C$*>QBdTalM>}p+AU8tJfqPklyUSZ3;cm`RVYM^nCjKJ;#ed zpo2lRF0u>7xg3ecfevG?5TQ=ETzgPp6LW?7Z=X~h>W)BWsXzN&STIsrLaD;mrvF(> zVvKQrmlo$2({-uzqA&gC<3)sV1dTX50urRXnOlY3RhX4vu^U1#Hi-eGPwiJm>5GXD zenjholT7)jmSlLs6q}OebmpEEsj>TNP+>E-1PtKb)~_AE($xH$BCSJRZ*h3w9Zu$= zdQkiX+{o)5Hc5oJOu4Rd<}sLlnJ*pDL6sSk8Y;C~bQxn{D7wlk7w!?GbpA0V-qNHsj_*{octJbeaZIsxi=7VGvW&i9m1#J-g$HwA&=%M~j&}qB&9fT?aDIYsG zp3KMd*51T`2ZFDc?clKjQpG7vtGdRplIV^EW~I@FoZ)FcA)iII$V~(Jd^h_ih^9+D zcUUQ+5#IXM=!@y+r!};{EgKy~rmk65^B}lD=I>5MT&1+x<-;%?3 zNg~NdOFf~vP7lkZbHFFej3`9^J+!ly9ci(xqf|%mo@*pF%y*g&*To){(Q+BBaw|0z z!Z0;3E0EWYYF7G&T`U>M)a_52q(}=Ft2O%^UNJwZ#Z)4AwfvIIf)0Tvy6MZdzM`VI zWw^N}(OauO{+f#GC~vVi#XGrHO}>A!ThKtVXRnuswNFV0>6Ao(wty3(6<=30tHFgj7w*@KywI;HrM@i)hK`r*IQg`^@0|SmHvrp zaj$gGBZ^iU=X(=!m(y_dJ0)K(^1ZohsOJw;3Uws5cS;X3aTE`EI7w&sYi4?fyc%{1 zNS`moGKT`*1;U;yW(ACmcZ{Q+5}DV{yXI)0ht)zlNSLG{AX6w$m16^yIQ=@XpV7Gw zk@HpH>?-Ljgg&dAx^TrrOAD#i8w=*D81Y>ai~67$8x0Yr)LUyJTG1lf?MU}EiQ+s8 z*)Sob zvJ!UQy|t-x=uubSDaHK!MEJ|9pIfner6DE|7$G)I;>n|_)u6QTs>tiB*dvp_3iC9G z9`wtrQxVfbQMfiB?_I$K2c*fE;HWGrHXoJ*kFW+XKQ9}9p&1CGmWGDw_)+o6<+Z=N zPZyNIU%P_xmuH&I&c}m_gY9IOjb#2UbCc$Ra#Bs5~6j*wff_IZdg` z)vuNd9mX(pMZA+VIn|gBR!t6;1J_!=j@3m+-5*mLVou zA{v)4J=ng6j59z;QocXUYzW^9K#S!%4oES>C^Ts$j29dtd6X7t{&7gq4E{q~#bf(;ute4#0PC6YHY8@@P z1~I6{GBWUqZ05?85^OnNnS8^rBjYzCEgwo*iMHOgASoCNuiVwEs0AX`7LJE({}A63 z8}ppA6q$IA(K}{FW;Au@4`p^z0^rE6yzaQ8UR|!eIjGB%@y1CGdj?^MF|{l&3qW8^ zhd(SnB!f|(Qa!bG2xLqjQV18~inq66t*D3p4xGry2_sG})RT)9C}0#6)UGf7f4xIM zm)8xsi}gmw`X;Zqwj=i;b@fJNg9xBGt{9jg*M5weM69+*qK7%NQA)QTFQ8qcKk12& zwB!F!^_Ed>fJ@gX?(SAJK(V5ww77e5r?|Tmm*DPBi$j5;!QCBNDDLjAC3wEjbIyC$ zUGpPZ`IlKE&&ZxV#N78wJBCWuRc|I@lCox1m<;vD#}l3oH5%Hhx1$J9lVVcNbD{>b1Q7&> zIF8ufuq^v9nMRMA8BG)py4qi&O2eS ziKKK(l~314)Q%N~47DZ$uOcRqSQWRI_%JX3DL-sr-8fvY@i7wUgG#j))q64*x|Q zAGohDS(0#vRJiU=^v%Xau9$iicJL_43?;Qe#1`~R37@(W|9pb~L!QmuKTyU!H}V$v z{SMWbg@?@vF;}3JK4u9f&i~N6;SigArw5LaVuGt?|0js-&M*1clt=#U4)2cOSv2O8 z?eRJ5Ip54kwoCsLJjm0usfTfadIcG#%B7Ep-U4 zRRE4o^$fa`C@svultKKC1V!@Ue9aLxTPkxyYNgG0i0Rk$m!)xJAKK zQGS80qtK>y6}C1p>63$Fh#0rhghQRhthG*LQso`$RW9g9$$I6{B0uznPP8dI1bUx& ziyTS6oxc?9r0`X@D7wje#YY{%^z(g&k@&pEH}|2!Vk=91n^WYWO!;~qo&h;imtvCe zG+qp%A<(Cg)85YPYznTlH^Ut>I|TDW%#hvJ0pKg)3q<=r8yL_#V9!6>Uk0oFPV3eS zg+KA!H}=oLAT_q=(ncvhMKXJ>aQ|QnSgISERZ3DjBH{T-K@ny)>%nb}4lgw|4f*AP znkXZ!F(W%FB#9_XrVXx{bz=--9zt#>R{w>E*sQntwF&OaQ#(BPw)ptk6Gd8$wIynH zBu5)jHb2|0>Y5PFP=ng8*7?I`Y$aqaXJ_Vhp zW1aA)kcG{g2^h+4yG-N?hWEl$i4d2+x9!l&PWG3=hX1HPpxZSh=jfYVzQ3ODr62D! zh#SDoa^W=xq=V)KTW#97QiM@V2q);rLX|dk^ z{MUTnlrxOcO7}jWB(zEcq__)EuNfjuMyZE?;pHkJ$GgnBnqJR+lAZeO-1?YkeJyPa9ls(B0%zUAZQadel%}Ss1i_Qb%dKq( zgzS6ORa!{$sSL#4hhy$qwR?|5Vtx@7zm;iJ zthF99_33_iHouuBLSHm@yG~0z2)yH}LGOjn-S6Cq^P>g0^C3fK;qtDM#4F4I@?uK- zxF(2zexe;_Brr~BC6e=|6V{`U7TJblifb_>wp>rSq`GmsoSQIDA@wB z@^(V;s1{U3lEb5!cxjx=Nc;7qeH4kUh=;26hQaA5!T3^E-=EahcgwV=`O`*28lONJqMi#lE&No=&oA<&l% zj!?|AbIXM1qAg2iTmVv%(iMj!Tm}YuQSwh)FX(^A?nnIrYR#U%!I zut+i6Kp92ePetUJETnR1DCBz?h=Z5{+?fn9`hM4e-S8VRr^b-Mz{*JXuhO}R((YM^ zrC-5`_Ykfn*NgwcumA0k3e!U3yJmMymxiDY zuT;jX^Zk-C!?QqPNshqBq1;!VB=-wZKc{W$fQ| z9q3LxwD|=#YX9FZ(^n|jA@WPp!}4;;y;(>X%iTuRQ?4#zIb8Z=fMT~7d>&V1K&Z2m zuNlFgXd`M#)qv!?khf*bDj*$Xv<_Pd0KR~*itH^XPbjN_HYvdeswG(*Ju$H)5{Wby zy&?U`GUOFg%O7M@zV9r>nsM!oYYA|#Gu}QKiHWjq1u{U_YDRHh&@%Sl5ppobwJNF9 z1^rG4R}>VIs+opMNLKsou1YZ~wZnq?d%qiQa!`8ALrjltV7>mS{t90RP%(hgY;KD4 z-F-jiB(p}Qhc@wM#d;5k6Caf@1=hY_EmWzO@F06)#@@<8++ z%5wf6z$y^%TAp}AbAvGAF(Y&=F}9wlWR-gt{vvcXt@N@ROawZRD4ih@7YQvdIRnuo zFljm=Khu7c%d?_Im`pPen37^6E@SotbYzh5#Wgdui7wdcqA@B&Tejp;ckBDEIGdoGj8OQhzwVIJL7xgx z96koLF9b!R6TT{faRPFRFXX&$m1`oI>v*MPqKA1TqJ<;`i)U7wgTW+X%nwql8!SZo zgra$Jb2+r2JL_4K7&Ub==F(O&7HFO;)o9iW<8dBEQi14-_nRUIPfaksh80hyX4GcN z!e}IWK^<2=TmshOM{ialdTOs`x)rKzq-r*H8(^F5TW87_sRG3!1<_1>l8%EDmCU17 zOZo>nTD374$t+5wavMIk;n5N_FFL>zd{sr=sB;?C2g@Kn`HDCY0nVSDO@$s=nFPGRR!a=TqQ1s*=Isy%?+tucx_(9=b^bmIpCnM1_-brc#e)T+g11&~V&Udd@qR`#+LSH9HUtzc(XGq0H1cBF@MQ-lmXvvlNC z%PP-IUet7#P5Us!+TGxV*ltTBvL7_LA8KRJb#6~GNi_#_GcWj8aDv>3dOtLLHaIKU z-&nygtjo&y;hzGl@609oeu<6q8$v~jglfW8!=BmH=fNESp@$Nju$LJpIjFneE*Y(# zHiq#S-SR~KEBQ02z1})Kn}6SgQAyNVeh`i2ju*c9?;5&2fiR7o6qBFzC+^Z__k4r6 zXHyGUZSj%FuOyey6LnBbNY^Kw>#mCXb+%^(sJ#Q@2bF>#T^DC*q?{bz#j z6T?oYosWZKEWgc+)^km}m=|km4r-q8b`nm;E?o@Ft=>7mG5M7{_G!!HH>%?5NcoqQ zE$`XRheE~3bFW2~sYz^fX{p=2aLRS7d9>ZInyi>46i$(qE~4j|=dbnlVY9^g@uJ^x zsir;kRLnc8>OWjOrfFCa*0mVcO7npkR;zq6kg+b7SyOv+s9Q z3137tMFu^Q#MzMDl33Q@bd2nwR;*~y{KMoCxh0si+P>jql{jB_G%WY(`PE|%_RRS+ z_{Oa7M1J^0?+#A1j7`r=-be3j2g*e9e0z2Oe`scCYya*>@)EMQ%2>5Wbvpf=-(|mk zDKYfy?~G31h`Yx5%f@yXes@+bdo)!5Z_}&+!N<|J@=$=`?6@}p99oL^SKQp7664sQ`ZGp4GJ73a8-hlVTrncZ;wV1ik|elM*?Zk#i7VgJ(vaNyWy z9b{>7Bcw^Ie{)l*4Q{U62z$m{d52UC9!#+g?XGS~-#)DPylk5BW}D-kmHwdTjj`Hi zdJfzoyBU!cFZ1%|sYeM44xNo9i;2Ywj*o_Oe6*^$U!5EY^Z#Zfhc-G>#zLwgnSKCb zd*O!{doq7093Ob^`;Tpcs%rj@@6zfY?rS0la%%zUf4q*r{rU0-czrb6Bse)}*vMH+ zIv{`R8vf0?2)UMd_K|RjZL2LKbIr?R#&VJBO-Z+?V4g&(Q&qzIp$UZgyup1n*??K+ ztW=uVtdWG$nbnlV4~($zI-#PY{l|XW4Ip-SjCdW~X`kgb>XM zd&jFa!{=qgXVkS;?(vmQ^Qm%%PAUxEwH8%tmOnfCi7cz)vk?Jhb&iQR5?0^K*QRmk zX|6P>zs%I*rjC%#7E!l+VVx;8L0&jp808=`DZ|y&!boatbw_Rui^jhM1Cs!x z6bkapb2foymx7hbe~9$yV9Saq+6L`SWC`awvUHn|g_-jk@KnJ|q>rjjlPjMj zPl8q&Vu{W_KS+v+1Cwiu$W!;ZS7D|J> zBR_5^uQ<1Jay6^(X`iewBj*RTF*s9~kjiacu2Po7cytBJoi5QL-{TQzJ|N5@(1xxu zvgqT_Cm(v^^10A#J1DxOnqCcUI1%+7P-kXIu?HdNK+rklfa*jzCAtB! z-Q@rD47`1O{0{XZY@vnIsQU+D;Pnt>o$Bf3W%57QBB1fL{iWc(x_U=#H5XW~^c?Yfge(@@!YLfELq~K}Gi#CSuoF!N&k>~nfbUk1nrt< z%k=B7_`2Yi&ZLC?;18^L(h44V-@^fyb}!{4Jam6^lbqkPWS7lSd_WgNnhnGX!Ezvk zrxR;TrP!2Z2Ucs!%abr@%1I=YPf;1!_U6@W^!RrQCvm{x%7`A$-*biPL{-3c4JV^+ z_oZkJ0la?NyE~RU>SlFIXno;QDti1I@C1#%57;jk(!v``>7FO<3(!b18VsQkp!Zm(J!Z-0gfewCMMB!OPfHBUyQxp9D_b9N; zvL~xnzR`ww`qsyaW$P-E_6zH(KW*LxrJ?<3$it!LKN0Eo-9U(pR?>iy5ioCl4G*eP zb=NNEX(-bZz2agpcWguu{UpAB-2$3rz4_SatBlIxxQq(>F%)p!ErO{Uw)2o?rcsBh z7tE0=WMTGOEuA{%`pLyE`@#4pAwl59kGZ!=`y#i_<-mM7{((QfQ#c7Me6m{_iNUeX zpJVAslv3Dde1g6>x-?K-q8pm@Zh*sZGLzEGy53w2cJIG-X#0mLoNZ06l})=u@?8+Nhog^A-DVMc(NB#FrtIf5(c{ z`K&cAUrXs8)_Csxg+XH4gNU!aaoQ7jVskMx^9bcB>U+xy~A$nc6o5)(j z^RGXwcP-vSlU@98C}IZ~X8aqX3E#1E4{7e(?6slz*>;}iMoc|FZ$c^q*~rchMiK;ojzl4#^mE=*A|rSK_*cb2M(1kak2L#{?P8=+v?j0`oZcGoO?Wa>F7> z)C8wPwGj8ZtJ7dY{fs|Hb;LL!$Qlcly>s#*RdFk#;gAP(gn?zRW+@=1^ zUua!w^5OjSR(^pDu0L!(LZ;WBHmL-+>}kRkyDppjZ^D~^=j<?EeP?nz-vYxCcVou1J^ob9c>F*L?L(HBLr%-BocVCD71cY!KKn z%ox(E&mtt8>KoZBl64|J$axN{Ytkd-#peA86*CQ(kqSl?$%&>BTV~MgsHb$RWwMLJ z>>llK=ijq9;Dtx&Os5XYpzUcU)5hEW1B}Ck=VHRanBd=t<7H@4l^l zBk!f~3TY-u!t$X^gEXZ+V|QLJJNjRozk~~e&$@2U+pi}^;Ol`m;Ps~iEyy4?WCQzU z#4|&U2y$69;`sa!4m`PkxMDLj^p5d;4t@^rdidaf5e~e7-1tJ9@k0L@QCMa|H2gQ4 zcDZ>{Cl+3=*gGI?P0s5B=R`8(w~~mzI%vDM-4YCzA1N;2q8nw5Sh1z}!$#vl@BE{U zU_+~Ce^Q}d*~-7=N^!3dhC{7q$mWuTi7v)@!$tYEG!V`N9~q3~6eU|py#a21r-RVz ziC2%}dccU@F>U6;J9bUhu(3xi99 zmd|$g?T4DWC=D_GVgtd2RL^tOkc0Rx$dLG*`6XlRUGHLc&P0XNt0rY0aQ zKR{43-d_RA9Azv^%h*jSXIkB4B_sS7&hUGm5N-hFHGj4pt-+k0kEPO zgYpNyxR}3XOeV1G&)VwWPgxGGny-Ag8I^3r^xGVD4F9oQmN`YmO8D(5&1Y-yW0q{Sb`O9L_kO zFUYAdOId*kLJSr2OT+(s0ct*_pUyVDEUo*4g_9=!2wj(r{C*3hP9NrgYn6xL)|Hr9 z8IwsxCiAC8fpK`EaHQFi4&S8i)(MOSmm4-=3;`SluM!h?IJ2-|T|@N1l4umgndG;# z>|oQrAzUoHYQe%p! zhJ6~?#xZYbP-+Py3r#1=nFcX1l?@t(flj%DE_M=~tc|`X3K61%gb5hePEf2#JVz)EiVRo3Y9&Ht zq3I4<0{s(++75)}`9ck-LiBBP-wJr2z6Lq{ZVA~s5P9F!Duv!)p_*{`>_z}UfE%5AB* zQE8bAXlwT(Bdgz7`esezrk}#r_f24)(->_+_BhjVuF{HD;bsVv5kQg^l|vkUm;EMV zGb1kTBn8;=HG=aizcPBcwtb7MFSxxqf7pwBqoBo#sO%SK66>_6YIaP{iO#;r5CSz1 z@qKR;YVcvi(dH}HTp-R_xNSxID5LW28YV0BcjZmkIfZzmWN~{UFj6OLf;WFsJEMf7 zt=KR`?{4G?I$eKa{6GxBeQdY81pX5UV?S^j{IUeOuzXRxk2!S}yr@5XA*Xvwjx1(U z{_Q2lsmsd?*N>>pThb^@x#{WuyJ62%8tXy7^51I@>&h@DpVrGT?#bjAKm1b z%G&E*Mxinh>q(7U^^#qiJ~fuCkxJA`#JF+sp!C9zcMJ7rC^SX5#5MGE>LW~TtwX)4 zi}fX%^=0h!+wfM`Q_8(#?&0T|LX?DQ${f!-!w~bcNXl%=FhLUY&sCy?Y_R$xkhBTS@ic;;5=B3J(Ugxc| z?I}IOZtc8Wwnwc8uA`4Nj(v>;I=YKY`C}d{TxYEX*+XE!bL*ZeLIH2Lj*ZyXmL}U1|(o%M+NLS zttwzjr?w_Dka?=m6TwRD@9(l%#Ppn1+)v^9d$Ypa@`D63NSu-e+?lVMP1|D>o%|F8 z>e*0W(O`L;X-dO83xIz$3blWO803UT2)gX-(C7I^+i{6+NThFbs8)N^p-~75LWMeA z{CqSd8iG4D0LkTmbUmed0Nq(0*6;S_4c3Eh`JKj-W@w!qb?nPyPqR0B(^642Mz(dY zZI*wUW0|4-K`~nc66#UlUH-Q3#pyvH4rGv2wPE4H4Dd$ayW)7R&&0$Nd)rd!xuduR zCX*kT2L<-CKSwvyV1=K0JN^QJk*tzGh6xP9{AI&L#rZj#aECf~w4=7CvP@A>hr8X? z{w)~T5X#UaDV~dDvI*wY8SrY6+Y$1#`%z|xf}cA9UZbh%?5xqlNBw~c`>s2#duVS< z16v1?=)*A!+Vuj(w{9zP4;H_fIi(7R8lV_|1?wmNO^=vUv4B&Z90YD`Q}njRk|ADd zrHU2}l5Hcg{ft2>Y&nwy-==STulb!A(ubA!pFB1I@jYi8hAfk=Lsu9MZ0{*fU7z#M z6@iRrT+BU2-X{o16&xXxtr{k#f-P|`1Xp;=3P6HL$2F4NWi7bnFedZJxrFi?vl1(OmMzThy+IVdhqYF0}DB{U9 zXkjw`$Ma9e-89Y?PNuiZINQP0z7#=W3uJNDfm+rBwCl@q1otK5JENDEO8l_ac%&hL zpwq=rxh?geVSxIyJFh1GP1V{}GfKdr><3OJvip&Fdm6O**1l+`-v-9QPE~J1)U93A z@$7<^*5Xc|km3EsE~s6YLrp8PV9{AiH=vD|SBHA_r1Z*HgAw+6S?9QHaabn(GO};? z0pPz36DLSN)MKostOK*xuPYd`t*57IwA$u zu`PxP!7g?`y?A&uS+0a?E^~)r9VLy+`N}jF47S^-F;vC*KCEw=ZAc?!=`)d>K_V^M z;RepdsWVmx&>!AsnpWOvPPLQ!oAC43IXD!WMmV4F4uxN70-L~&EX;e$P9`O&{8}Hy zE(#zwD1OF>0L0Pjglt5Qj1LWOm?AnF7y6F~PpYLD%FcuL&)dcD%1vH%@gG@ygz5;m zbe+7{by_VnZ_i&yeve<@^(21|Sz{{$l0|Ijqf1pHa=OiHI_O~~sbt2)PQD7xN`24Y)(EFEX`(?k zkjgCTQhH#Yu-uUtQB+SA3LPvHv&+R~hSMke&QXmA-( zIk1AKVVzr(6;h~AdgcMZeGR#WPp{z@8h~}4COG@ngqa|Y>_T80A+hUw_O)HTEROZg zh`duSdqzoa^}(b(#U(Gs;7w7H5rDE9ThgA7FP28YOF=*?;gU=qZ`)G|)y*}b;a1>_ z#P)TD>cPUhtd^7*vmg$LwhzAtM`R45o+T2C3MlQ~<)q&N zn^K~ra*2g?)ohn~i&~Mbsw{?gJV<+~3Q^(YT>eFLVgH zj}@!g5RrMsJH@fj+5=kaiL)dR%+tm(k~&6r)}PAv(lRytqBnmNRtHMae&7pCxnud=%B;iALz7zTkOxs?C%PJ?G~=fJMq5ej7i6NU)Qvs2W^}vc6{;>MCiOPS3*Tc z_ONU4c=Xfb49j=Q(Bdy0QkBbh+E8t%sgDQyn1*voA@2h(J1pM9GQNdCd1Q|%icsJZ z9KttH;5X{ISPHZ)KMV)DM!*o3VqJ}BI91?#>`wyXQ4qRa4>i>7WIN^_+>JyXM*Q`O zreGJ*%rx>U2cxtY4RNPrixa0KRI1uwjkE=kol4`Ot@JYo!Urk!X)o44osVpYES74P zWD9oeIMyDvR;j=Z-`?ilQa+0>uCpvBCCg&A!>}?~ zD`R}3Bf=UQS9X=tZ zEN!tRq1WaQf7d%U*k{T*ChZ4*;q7D-)Rkbc2k+RIg1OTC9(xW^V(-6w)`}s~-2{u!=Hu^&i%gbv1rb(5T zVmN+$*}~_FIky=AnPLXgPnl0a5=~`_e|AW8Pr_w2IUtoi${EWr@k4IIjzJy51Puk@@6ee%GoPeiz+7ta=dl+A$Fb9ppb}o`L>szTs_E+xc-Ou)3_P64N#*%*2r!n8o zelvfaE>VQuvGO9u%x1Vfd2=zF8D3F12eoWkz#XswNUL~iW`xBw)Wlxt%* z)T9vZi2iq}r1m>8$6lP-f|6q0$+RX4PP*f!qeNEUlKM2-BuQzr5_@KMVT=l?E!mth z^IU~3>mTANVVo4#_>Z#BFig3FFOm#vu>zN3DZOnIYT5NjnMY^oB{2E|`N)QALRl5X z&_@zSE-MXxH#6KNm{P@(S|Ehzm=05}xB@><-UP{5N*|vkdkp zVYa9BcXu#m6kqG%Hf9bbXqy2#?Mi&7`#3UYJr`%qoMi()z zzyu@jhjzcTfjNdIUps#-p~}x|$zGnp0l34HCCz%(j1d!5yz>v~5SoVKZL_pNzUAaA z`9t*(t#Oj^!bIbMUrQk)A|jiTS*zbZ_tQlAj7%xTS2wmqDv~=}eqcz_(~cb2qrJG! z+wUH;=eM=H)(HD)Yeb4-6oui?uR!uOjSU`2kJUb7CMef#e*xdEx8fo^F(3m@?uP$? z0$b`nt(i2rLKn%AO$_tCKECa%qv-XE;kTs_mN?_ZvH1e3a?S{QRgI$(z59p$|7znk zmO@3Xw@c{ZpE7q@n9euiUK`6`!DMlg1O@!r6Id(GNnG z4yLeK6ZR4q`v{sl8sLEEzUopI>LtPAM{e1}CJIO5XPW+TS}vuGJK?3> zQZ4rvHITreN6O;S%BWd;Ur(3DpiBctj#bnwb)4GHQFt8x(h|TCX3(a=Z#-c_4Y4}a zWmzV==tgBQTX(vfh8IqR>QuW*v@TB68@-jQEOL95o~F!vOFVr9o%Lijx_tGNPbH zL}8^|QkjgjAXuKqZ6EUBCcD3y`1Qy7A{6!U&6DwdOtu?8%8;1^7rIMTWb|YQ0K6j-#eQ)Pa z#_~D1hxBBDh%wRd*f2*L8t*H%8uP87U&K%=qx_&{!RtYo68wUmThocccyzjvBc4al08w_ro2jph4tRuS zF;remIc5~VaU6G>SBKy ziw}c*m+kae!DCnYDKMbt5ob6w=a`aweo9gO)#h*M5tP6Kz*qUm7-5mzC}5UnjgtsY zvOgE{HRobG!hXghFgH}sMWA#C{-Ffia(w@2 z{k^yp524!bd_-$71IrNgaloLM{(=wR31eESbP0X9^*zgs5}fQBaa=Xw31Jg!i{9CT332iR#6lvJ8r3SO1HZ;o75Kd zNmOC$0Ijv_?n&O=%MW+aBBLy(^nV<0)}3uYQC@Eto8TA|)3?6C&%^90|9-P%C9fzy zFTmTHQwN{;(-~*543BytOg_6Ova%9H-~DH2htR%6K}>(-{YhM9-2q*8(qo~6n3RnU z?7|;W@5Yc34{(##=BG;D-<6Fjb%)Y;-C>w3;363%lcLSwzIVp!Pvxln!|15hwQ5~3 z*UhBL^=ITa=v(oS+YNv?9&CJIn-iiD7661g7SPE0%sJQx@6x})24DU7hk? zMVP-km7(O8)tEy^F3KpH9gHkt>1%k-KkgNt(Y`Z;@+E969C&Y1J+nQ@4?(KB=#^?p z1$M9Y$k(A@-QWH+vFv@4L)-Lgq}99wZ=f_NpPc*>Ml(K(pu$A5vG+x#FOB%iA)$VR zUU6KT*_)UC@)x2#8!~aa|GG9~JQ(1XH2o4DS62=Of>CBo2 z`Xe4*Y4SeaUUyXlUDnlENoT18ldbyJl$t_&p*SeDcMkq$XyMeD^M}vkXcf_E{ckfj z>UqBAulIS12f>`Tv;H^v3l`+JB?_aOjg(*g%K5r?&r@t+(f+!Yw-k}*F5j*akyf#x ze0qtiY>hR@6gjmBv!K##`P~~|$hiI~CRKQts}_yyC*}ugsdziGezRUt%1^0pdg8Vg zvHos7#9&NM7XSQVD3Ocwi#oMmbWMhsEgPBBQdsXW!#&h6YT5EN2n~t;M{Ca;uTD3# z1<~C7x%%Dko6z%?SRCQS_`_H+iHIRBQNUutnUSoW%1RCP_POqOPq`}P&KLAJirTCpTQ{>`DNm;ln>HLR z1^^CHo)gBBWYvVzkaHKu3&(T7*6s;O4ZnkfLbC-ujVNr)b-^fdINZ2EeSR5s5p9!ga+bBy^$Z6@w;IwJnu?VyaV{C%a<2wUkvot6B_)asF(VfH|bEgg3WpQec1rP$^Vd1YzxS}`;p~7Gj&31wrg}H{wE**dzor_XZiX^_e`v0Z z+0S1Mm2LRTFk57d^M6b?snT?z9``EguL=JidSdgwF#g5EYgBTVG=;tEk`V&72SNH= z9r-H@s*55{YYH#sRFlTmxKOtddJs+OX3v<|N1X zq5?TSwO?~yJ6|t(KglWWnjUNC;$ZhcZ~ zC`j>Bl=>R|DOKyZKfq(8p=5j)K3RcDE7sQGw7_2fJ3{kxY)%5|r!NOWBPsY%<^H9D zvE9i+M%|h9{$vchV%7hB^8nLq(>$Pt10jS~+#BFE@AGKL4}sm<5$?AiB)3F^v}t-0 z8YT(;y8k$lU>&?|#dhM8#q4ejP1e#Z=&tawSENCwX;as0HX3{HUeQT!K5(05GSCP` zuG+Iw`Tq7mZ%bwzR%0|=jh(HNa0fJf!LQ%@%x)bFqWaDxqAMcLi2i2Ec{*^i7xvp! zPsCf_I*(zq9GZMW&$!qW>ck%$g(4=PA!=h=QHD1jb=+WkXR58LngY#*cI5`!MfwrC zIQ#ciAH#-kWkzz#9b%AoVlgDMq7_1BGfM1#?*?>9@-u9Tw-ujUs8!k#d?60@N_Jb` zA#?Y+Z@9m$L8~?KW}xW}v-IIDxy!D@rY`rja-3&EkhQ@$$;c%pwHP{= z>*T~TOj}nF5^SG*^JXoI-44ZxiJDV9t>mG`dw67d2^zH`P7`Pc+2KFm(h(l~%WymY zU-HMlJa^qMG0Yi}fTXY8A7YycC~uU{dBa#~k!4LjLs3vpu|49eP8Iq(Tb~G5*xw@J zP{i8~{-w=ggE>$y%K8H;BO-fmXsnAt1W&EC7v!^-W%q{xegXmm+B|P*#qbJ>@lBY1 z7v;Ly3Z_l>SV8-|ZFgc<21qYeov)UaX^#oPXbgiJ9bD|(pEfq*_%p^g9pqa?nr zIXbB!5`(x=|3lO1r~NNbGGa}z_6U+6d3-G)stHqXAUoNa+bV{8h+<5gQKGRGg3Fyr z!m+5gY>?c8O;a68*SJIBHXI(W8RoakULHr?>E(3-NzO@TII2tpI+fPbIwEazRsAmd@kvM?){?W#tS(d~XHB77IL z@_3)}&wq(%kG!cRB={Y8-g;Kkx-ylohQjyN;)_dkoQNXtNTYkDJqRwQdeGQs?Meae z?20Uat*A*N48h*?sep>b%argq&DqJgEsgTlMUP=o*Q|79Ei7OLO{TLFG&HAQAB8cY z(3W^a2}A`Tz9be`2nbKx|YVCI)DLwRqcNwVFk<0a>HBpjgip{cy#ft9?SS3zh5G zB{hB|5}YysyC2zaC6f{^K?|B@*a-}igMZlq92UcN-FMSSi+?%E+{fb&Fgz8b_mvmS zp8m|c1PI_%Gn>0debw2Y{O}+uhqB1mCC!^5wn@C?Hja{1y%KDA-{@_=BqhvmKPJVY z{)DNj;pjM~pmOJk*GBZQS4xNI1^PGsSAF~|*TyUx<8vNt->c*-NM;&qTPL9Wl;wAwMwq6j2^RhiE;22XmB zJ;P{Nwq^Yed_*=Dh^c{-5N+oQ&szN0veDj!LWTl9FnX<}cBPd#naMu0@{kZeL7o|5 zcT82to&4t*^$~`PeYMoubZ|cgm{BG-tlz51tJ zyJviIsDiCgVRtwwFEJ*AZ}XcI5(z$p3WDmYGX7oJohYFXhn=+_!S5UJz*^g*LUEnd zG4>&k--Akn+oEMCAE7yn;#~SB%tGnY(3AfksQ&(^_uQNFxn<$D5o_}Z7j;SSQEP7* z^9D9btsaIPY`DwFn28$JHfTgSqDZ5zth|wYr5VWl4ihMV4g!e?IZ-WDt@gW)&mpcs zqyiME_O!vrP#BD6DOn^$5Z4aoYo}Elebh}bfn5|63k)zXyq-@M&1?AgOYN;N%EDSa z#qd~gZUml|6bf*-V4{$#4cQ<(fmq;NsJ=)H4|ZqWO&fKEc?#r%C)UUl6d>tJ?E`N> zEC(3Rb0J+qs#C%`1Omv&iVJ0m%{lT-$OzYl;u8%_Jo+fHptv9&;`gHp{(Iptq7nLF ze4to;J&o4e)jL*ff?rY#24o;m?}P7qmGidGj14M@LW_;WbHG~2rf!0?+3@9d;>flX zqnrc&;8-OcPpvTb2j05#z0^T|auELw)&J#dk5B+{qW&7WMxG_8AG6oBfIYc-L|+9G zT#{_x_xe@*2z2XxFSw3lYPr$Km0qgqSX0`giTeG(u!+PnQlS@vY7S^kQZeIvP#`TX zjpTMbP?T`sxJ!%#I>=?5VQYD~->kKzzoY{_gb+OKNfILsutI#7{N<1y%e+TCFk8iC z3++$njapWzlZ>N)dip;}_8MjIVLQXRZ@y)efC+;U(c#gyVvcgj2~Y+k_|m?OM7EA; z+{`VAn-EoNLV(3gjR--FHt^P@w5K<}y*sDWPJdGqe4e*Js&>ceh#554gvi|RCcdp? zL$6wFAq>0Oi7|`$HBDt&UOlW#AjIU$g}qCgZeAz8TNCh2i&Cn6Z;=asko~7sj;-qE z_f3J@S9TUKCEnep|6%`M4XhF*^Bfy?q_%WpwNv{plvjmeA0F@trP;uD;j4|Ws{JY$$1E~ zkO4#4!!f^S2?S?CO<*pZn(|A5tsGZbnzq>NKr`_WTac~6QJ1$Q>+&hzL4Yew@0j4I z1hEM@TkINn3!;#LvQE#81~CfQ)B~K7qASeZYU&05!Dqn=3lrg=F?PED5G!BQ%0O@0 zm-JxK!rg&?f+gpKz--6=+53u1GxQWFCZl(eodrU_lNsw!v;7QDJUWF$z4_&96{K>| zkTV%C&>?8v8Ax1bvZ8R`@x`#y#5;s2h=BI(ax=)}p^kZd1sny7Onyjk0OjsYSl-#l zEIXpuyI&g!Cs2hEEYKhx)e&ffAx(rjK>TTXdBWd4R8G2={DMU{{49#q>SpWZDEXBluc@G7}~XtX?0MVqD`>jJ!lI zmYP|4O}Y|4dj$RBI?K&$fljKPEZRYJaKD9T3j60dlP$gMJPTfNA4n?!RWbM-hbZds z!;cfhuv5D4Kxh1wGfaaNnnLK`%@L@ zzJ5F)!*1l@hHe9V6^ngXFVAv0qHR+3al5F&GO_t|$+xB+9TU5aA@4(~I7l(p#*ofzF~%pQQHr<4dm`6&6(3h4DH_8tq*ZGC*MGsv zSMo1hsg!7711fgjmi<3p2_{(RXMKM9C;O(|<_jUi*G9%LLmo)hWLY0+?^Gj|K?@q7 zLnhdH^zeK3*K-q)nieBF_(McUBa{^M)Xot#5|oNdigQlXlduM$ z4>g4Ptj@rDg5pBY#cwQ#i}hgf3Sad&Yox3dusnz4%FdxNT1Qnl6QsszShW-kX_<{4 z;4*(pFtZjmlvx7cxTBGCzl#BFE<6&hEzJ2=+ND4enspUoitc@^uyJ&>sjV;O@~6sz zq_Tg5kreTd+VN3Ez_#RJcG5F*0%>aZo$(R_@FU>U@{l8WbX88QF!uPA5sx1ANUw3H z;W?j(dXN-iG}v)v1WcWJ&&kXDUhv)XU-|mk+u6|hCsX!Mx#`V#ui*W0r%V2t2e9l? z0qn31NOL<6*S9#|q+S;%;H~vgTWbZZu2O4AWtuEZp&M5Vmm`)_{3%47Y=yCT)EPpa zF(?!7QY0~PQJx05p~cEpwPMHPH} zEiPT#;mom=kB5{S$|cNFQLgn*CavLA_zG!sn=@vPNzK#TNHb5P=Di4=Cy zNwMnouuN3xobjLQ+`Xk8#963}U~dLpkZXayOJO*t;TN2q+M*zW#QdtgMv0L@AqZX| z*VFbkA+X8jkvfvz<~wfGH9~V5awt02+9rP!%Szip=fH5rS>?B{j_wM`@QLm<_r1Nv zX;6u0gQ51lkp4yZ$@5?w#J@+C$$aVCM=*g%rxjmsvNZGXY)AKO{g@KCc2)Pcw)j<7 zRPp|s-+tw}t-1{GpK86gkDaw2hwK{+T|7oT`k%@%mjc}z)!S51L+C{h@Wfnu%--!Xf2%aO=QRioocMQnA3dp z(&v0@4RWSdmnD zByZp%K1{<1j&4Dv*+0l7DfT|4pXqP!-t^(LO`a(`^^|UT#OAYM&CRVaoJIYI6S{WW z^RKD@TW^L1*y}Z{%0&7v67Vl-SUY>#qkfED`|R;>Tz-Z_S>RsxIqb&xhtVY|0gnN%ZHO0i~9>RzbF)kA|%0yzXq*_po?~^Exk(1a*ofjO?-v0a`LcVW9eXhFNJj5 zEgga02u%%S_@I^KjgcTD08+hjZ7TSQb|C@{i{3R&GG{ddlzaiqf5oo*`~&LmlmB~` zI=h6Q0ow=Pzr4m>_Qapb6K^cUBm6_c_Mar6%*|9h7fOQq-*eIoLFfHEqF3Fu&9%PY zfW)c$pUvvu3mpLu5xzZm>b+l*GB)7S5Tk@H73kjDP@rCFMJ_(r&)Vm0YjjXjqwRgk@M9obro^S<=f_*ynUG?nd1!^& zu==@f&@$YVT|v)g7^Cd=j*-QgF_aYQa(ezvI3+?u{jVMVa$;%&y}tKxhg_+@x#s~F zhz4&I9Nhp`=5L1{nQPISLJIPV?A22ukW$%6esbKP4G312!`Fx!Z+M0xxWOhYdtZCh z2c|)5Rruh%PzD5v9G>-1U)pM7R89iiMX@DHDAZ{5m`UA9mC1}K<@n-$Gy%O*B?S@^ z;aRqZ*9BX2Usv;aAG%SGX*CUxX1^3s6+1&9w)Wc(xMySOnnKt*oChiVWFCW*^D?$G zj}-6I?im-#_Pv)SwpTI5RVClCC3fSZ@kVOU&iT`#7k0-ZAi%-9F?uwg3lyE@(fJW3 z6pfQ1c<%yUq_cEc{>fiYE#OD>WKOQkn9?dQsj0_dp~h96 zs@lQQj{d;|N2gjEJ`jyJA8v}t2u{Avvjk%3rZKZ5Np&_m6F%V;KwTs8R!sOH;afhX zQ|!B;rV_`j4h-=TmLno=szLZ2xt2B0-0;E0EC~(0Nkktm$VwFTjUGz zcc>1TBPq7=Lsq^Q+^0ec=^J;z6>Fc}_n*{@E*QqC?J254qO#YxQp|F)b6T;^g$S-{*Co9zPba~W zezLsY@Ey^WGUTuDIZL-RNcGwXs_TIBHgfgl8<6LMor^xpXJe2@+(NI>_OSZL!%)gm zj&1vZnjVg7#nBLFML>)0jFNUXENN7Jkou-9raG+48bLnGBQ+=IIP#tEGxxJmMRC4$ zpdsh^ntvJbzsEo_;A{T}I-pfNZ$qSwa@O~!0RDtpRFxlrBYXZapKi0*uZVg0N@&%9 zo)(lpuBjKJ*>LHGjyr~+s@z?*C^D&pDp?y(sv!$70$-he9G~=E6$m7Keity4m8MW8BapsR!`FerY?=6ElM0Sam`#y&xjB+uUe1S!gI)t4 z{nPBc;9LHJxnYt0=OUE7TN+{(qMseA1U*{2NV(tifYn?MRqG#K-~a6I1^&9iX2XE# zxSsD*fk#|vzw_pMQ{wp7{TZ&@f?TqxfXWfI`$w^E`{QK61BDf22^Zb2I1iGKcU9a{ zhe!S_>!)dCpGuNbw43y0p*}|{mF`SXCblHuHp1h|ttMu2qY1f(2aMdc(F;kFx65gK zXmfSDj$#zk%C3pwRy8Y|1*GaPsCRt!#exomRl5)oSaX6NTH~`veo0B9FM>;Wr9YyW z_K+eX?}Zh-izr>lP;p;uuuyc7+#;X7IRo|r4Q#LnuCNXxTJi& z^0EVe&U(r=)rA5$Cy6N%YpT-wYMo*f*w;08ofrRa=&u0{X!XyVWZ0WI3YEPF?0>2l zwCeGbGPCd@8zo@E!$8HT*ZQVtKkSW#DXAjYkf_smIdA}pQPM%?Y4~cHA&ECd^!lv< zQM3rkV35zQF|ky}J1-NctY9_RoUOZ(@OTMO|I9fIkxukJgN$8c&%tdoG%H05o*s+y zvSg`M>TEKxueWlFM$A!mlpR>?4AP98dr*B=9XAk~W~i5PuN~zEc^A%rh-QL{jGzET zZr)J;%;hT=+=o$Pho@ER0b0*&KtT^~>{Yoi$zdExHC6x3N$IM0=Iy4xN_pp|#d2<* zh}D|#ygrWpFL;^#^U(<|yM3N}Ki>K`u6=HC?m#ABGfoH)kGA3NaheC1o5hKBt--mi znU~QN8PuD$5=1QyU;|BTkFap9QVI3z$$&7&Xw^%_FsE;SB8;QZ?20Tu&x2`H*W3ai zxTq&5N}LiWmJdU>>LM+0vSZF?U{H)LO6at5TIxgUL9)(0OzS9tVCrth-vF2X~fQU(CEmp@6q|ve1$5Ohj9?Oh*kID zTv!GAV+yYAWMiMG)tRnF<$a@AqSGi1R`yqF_t<|P+P}8(%Y^})_W|=Qz406Fv3CRH zuW^9obAs)u8@ztZkUj3BqqEL7niw6>KpU7gA6!GQv0+ao(pH`1xxwyhl6k^vzTzs0 z@9I*wD)iGof^<u7 zgc3*iv!%gTu8%=IH%e)3j9P#dHpQ7jXBCwuj1JA<%M%kUs zbfhuUG|J-UWP&6G59%n2;1(9O&@Vs5HmXIZ;DB4b!S(I}Q)3!)w}7IXS`2k=kUwQZ zPNryGph46gOVb@Gd;0ksFWi8Q2HQUW_u2gy$-WriUfkza2j1(yajMZ*2_fCyB-Dg3 zRU znDE&C9=CT)-e`xo_`_KAq^vxF?3p5TXlx5+#=hkae03Y?e^O!F4kPwYBQl z%^eo1l>|=JqnKJSJBGzAJcwl!)2vrq{{BD6=kG~%>#$My&DnuJasrm#;dAo|P@5I{ zNe!nOYq}V@`kD^TI?nTllBF`d1(-U1zq4t%4y#$uA6N)HVO?xTO`sPc@y?yDR{@t# z?}QSLqS%BzTcU{*pD-Oyac|Iv^*)!>_BCy)zNVDhne3qmWUS#K!xU2sws>#p;&UN3 z;TD+%`-chaEKF1a65*SA{^XPp9Oy>Rd8z2lw%|lmJw=A%FSP(X)~*8~8ZLNlr$V!L}m z6|VQp|4iVEw4MwCZ0sOzdp$(~Lc99zgjrsddW`HFa0$B|%Z;(=EUW}U+kC6)EryC% z*CT|W7O)*-iZOY*)VwWq7hQmy?9L5G$H%i{Z}^%B=?Q-;8`WQ}5&r<| zV7*kA0z(LPf6UL2OdcVGu7gM)BS>kmXZxMYeR!XrV_LB!*-;f%TRy-REjLce4>?DO zzcUzJBB9g#0UN8bwx0&JA>tyfP3gENMDt!YmdH5h9_0kaqp*r?ZIg*)g6aw-fZXAb zF8)`X@%I>*e*FR*4fJ;B|Gfu$sJ?GcZ`a#Xx1}ZUHF z{ZwR*aV+&)DsnKvB7?OGlL4{g zRu@c#x56%2jZiX(PvGGCF0)-+v7t_BybCVk!7xVDD@^R7;h|24rlCdUNYu4~0H|qe z0BzOj-=ncTXih>!X2OEnR>G+Jl*s0iw;vm5Vvg1Go~;t_JwH*`-{7-E>uT!Z?5cB( zoUdT`(a5++G%X(cNWAZr0tr7WtRl?NO~eV)pezqLIP;aCe56Nk3z(R!nc3zmWUx@c z$*7}#LSbR(49ZC>=7^JrTmiRiB38Sbp#AG2#V|hqdPx9TKLFOJm^|$p|NK`dxMliA zaUkPyd<%{BgPR`s<~eWPUAtdl;cH9xfbYB4Q{8h7Sc|9#J~AMhupoZFmhiUD2EJ&175H@g*l@3itWbix~@e)}p17dz9 zqEHazSR(!H6a>+(+6jg)+UOb^!4cG9qPvn*z24DmGGR3kS#?B6KtWTBy#r4QuL0-&1Nd9&Z|EHIl;l1~3K?LO5 zd*S8}o$scAe#E%%Xa4Ce{I;!9-TDF1cq3`g2sdHhJL~yS6@diR<}AGuNi~Atb~h`8 zprl+^pt$COm!D1ywiIYTOw*hZ#3+QE3yp~x)L(k2@6|3fM=VGk-QX5NX@zdoU%AxP z8bwyq8|Vj^^1nv)C`j$yGD2%sdO^=2?-8niXH_P@D>MI=<`@~f#Bv8UP&b5a#InWA zr_Tv6gQBiSL9A4os3r@ zqO?oY^Yj%3D9Z0F1#>C4{7ReeqiN~jx{kTmKlo2(r^mRU6qWJXms_nt@Y z;LGIH_sDv}4@=1olfmUcafOFJ^iabDOY_0S-DRM_9|CrHOC_qcWK&-*@5J~L%C8tS zwD-3p3JosElS~#u+h*Akfj>Gz$~hNzjF%Rm#o>&nn6iVAUf_0wB@s!Q_pR@JX9`%T z!fCL}44aE~{*)68m*SP+1)EK$)VTv_?a*)dh4EV~cCRBH0vp(d;NNQ?V7U=-P z8N4UKfQhpq*mM^fIuVGGQZOocPn=$1$&IK>tGq)NWjw-IPW(NvRpQ+#C(0~zW^W(> zq31Abz&)Siz30`QG#%_G@z5IGvu3<-jzV}T(Uv02&t&y)pYh}i#PJ@xRiqV)R07RRB_%Lmps=fP8ik!uCLzv$w+pywOOiOy*lGf1(3R&k9Kg+Y|DQ$-h?8_;h2gczXQS~a=TNxA@TuI$`_8Xs&xp| zz`V6Uwl(`duk*Q1S+{j9?#9L-g1uD!lZJ<93pvBosHn^o(1TlJ{ed~_*fP0lOMEpu z2QyNaBY1iaFhA{2j&v@IplB5iO>XC1vKJ0FwNpmVvwS~jeD$dNV0M6?Tx!Z<)Q zeEQ7tKYC_z^8?^`XY}!9#D4m5LuvoMGGeP#8grtoomNzSjdZ4My4xtQ zc$v>Pp9mk8>uLM3Xbra-MoQ?Ce&o@Hxko|ls=KbKndrY?_6Glou$6ozLm6~$k`*YK z;`7C>{&NHv{#F5EP^<{n8z&RXIPBis=Ha>-V2Z1d)b92h-Sa#ppER@(lpFmCu}QQqPH)T%^c} zV9-4ErFK=w^seNt2?!59(J4cIh$Re{Poy=%?v@LRX+BY7#%7Hd$&yH$$X?6_Iyo^; zAmyog4djRBQM1PmLc)`@A{^QYzcp>TaY5XCfubexKLyi*RtEfHQZ}h^u0(QXi?fGm zi5EN;bdVOs4O7j*o5}GyyeTKWuUdh@jHe!|l03nL5H?@7q++qye`bfkkycQC$W!rd?hb&=l@pDzkQDHKcNA3+7$kpMrFh&<<~@<`Fa|vpyjfXM$|St;}EB9 z7+E2p@z{5sm5RMxC!&{3OA?%Ye7fH#Rfi+--=baW>btSDvTf;16MyEo(+AXE?Sgw) z|5SfPfTJr8@_^FV6yvo_Uc;WGdB>)6XuWwMfcZX0yTWra3U^ zZPu`!-^Y02msyo#y6AB@+>>&7pOBEWrsuMJ6u4&bJH4+0<~{X71yum^ zVcnE@^1Y=@fb@6GsmU0eMK8*-vy) zC?>BtZbGwm^drfNa8+4d&8kopnY<@cl{6j>rCeim6kN13H8NWE$NX}#(3p+QR5SS7 zi0$F`!&)eW4Brg@Xz|3&pt7y{#`2q=eR_6S8jx&>)TuwC@&6tBH#PiNPIeoj0FgSK?jBnJhK%)lPOnN!v{&I~Pr z_{4E9eb&uDzr$bmfA8Tb&BDY>*^V4s=QmeW(yL^{m~s=WgdPn^v4R&9cgL9ae|V2S zu#3Q6q=I<&2?Iq}=`M34H8CZQ8l z1qDuLjks~2)H}R--1ZC?BrIWO-;szV8YV|v7zSikBy&>0HDf4j`UCAL1Ljw)Lk8dc z-7S2gDCe358R`{D#}X-IaAq>*xfIr?h3ST8Q@hE_eR z)gK7soXJ4r10ag$)xn{)6JSxj|IpDy^PDYY$lcNf+B%Vsm9)#m*;^szNuSCN+#o*iPDSUyU6k7LSzfwCkk zv}Lxohf($Il`tRrSJZgl|4)%kJ45}`-~9FrF7>;uend_1(Hr<3yaC>ii~QYupb4V- zYrUI%bZ^F`AmPEdVu=Jl*4ZoFE9&?1NBiMHqYlJGfTu072+_-{yUGZzxDse3Yeew~ zVlmt)l&5=Mw3X@H5>^YGZ>XU1(?|0zv8&*SODzVmPriX7tR9ip0OF-b$BUKmW^Tg^>0a^!0g{y2JX^OaaA-_aq2mEznCTL+bW)OsflY^Zs_fpT=>WEGY_Fq)DqOzWhJ9P{ z^30)7MmP^P!I+EgppNx-X&B1HBztqgZuho0l-b`TAE}0Aa`hG*VFZ3_k*ug8;iklj zVMJY)=3XbhvUS0YWjd$Xj{OYXv^H~VlEf2*5YvwT&Kx7F!R0GYJn?6Ne0@LnUb#ob z4;Lk=I^#L!-Bl773juQG7LRBq^V@tDqIj$#HA_QzF^piTV%@)Q=08EbceHui8LFvR;(=hHP_FLxI_A zRLIw-9Q>}Na7--S(;!xtjPemEJ2Za1^Gw1$qVB(N>gTi9+wreRVm65Z1W<9^`!Vya zm*}Z&^ZYAXjjifI@pwnf-jP_Y`#b<%uU79H73c}VDXqdw;w-VNRBMPjPA9ahNR|J+ z^Zgik>4vU4;r!GPLHD^k9)jO;*jg%+W=Ews0gI_60sV$LJYU6fahMkNOtZG-(d}%3 zPR9y*kFY?}4zv0ZzR&bf!Xc*?3&8Y^IuOBVrw)dtl@P7qv_+ ztZpW)$^t(nn2ol)E2yW*-Iz1wel`H+d(9gjgOC2gxBpvH0O0Qf9%s9K77^0C1?CB~ zeCw})(zWULw?RiU)Xh;IM)SA@XP_vgndK&i8p)4HPjRf9yTMSVttV_v+Ae9q>k)0iIaP@U0Bxb|^G8fdib17SsN)6iQb**kQl0p-kb1*7q{E3y`Xa^Hu zf-BpZNB&!9(fdE4`9CaLZ%>cpSI@QY^=)UZuilks`_q>LS$#aI+`B)80&?eNucct$ zvgU+}nZ90XP3?*!)j;-e%_*Q;wYy7qv`kqCn_ve56HD5*xumm##+<2A!UDWhpf(5R zv=WA|c|WBlAUR4SQY`A#`^(Z8gp?#aa-iSE`r**+^4UHJswE@hkP+P z3@SCVpMp~7+6d#)sUO=-$$xRazvUhRGT1And>)Lw`m@?}9~TP;5(eA%&zoui(J)9V zJUunKXwfL#O#xYd1hd3<1YG@#S^I>7L^YO5P4>~!=X$h)R1S8l@51m;h@LSjtZ71{ z9+8I21f6MrTLJ#K{kL4qfD5R2dfoOxOMz70eqYFYkHQiCq_*G)$&Z-=GtryK^R~;e z9>%a}3Je+FhLUTynhyJ&3YK3xGxQ<(TF{>Tkm#~l1SSS;!p9cV|0@{&BcF-q#|*J> zM=sP_P)IaEIL>ovs0EWn_6^Y&&?70G1q!ycl|i?#8T0mOquRsRMQFP6Q&<`}y4`U)&1>%x zMQcG~rp}cUY!~h@hGEq+5q<4Z4ek&mauKhDpc?-USLnS_z#IP?I0$@yue|WTU-1@r zFqj0TL?kZsPtHp4Cu7nc{^(l|JPm#>82!X=H$R{1yN$M4hs?`vfdQCtAGN2-L5|tZQl3& zmQJEr%)S}huXWMajxc%?=)rvu*>_mGe?YnP;9Varml}pcW@m_Ae%EJxmQsCHwA%@j znrI9NqF+#Yw}hsBXK|-1`KVrZ&m=EiQZb5NyXjD)8$3K}FB#pL=kZdZ@docKx~vKT zOGSoR0*tn;QrW^t264?AYamG|B`MImq1+}-XYJ3bR+L8JpI5RGW(->uERK-Uj_M{< zZ$HD(1_}6EA6(n`LTD41APz09)!3e!doIVn&;4&F{Ff#4D!%*w?)ikdQuAa){ZJaI zJ&Ht3R6(fSylH~cjTtFk=?6}{5gI&Lsqo~{3vTqD)l90WHyJsL#br8#$wipjzz?At z0hwnvf~u%NeWyQcy`auwq&UE0BYrN3+kGSoCtC)a@3V>{NSO=K?u*?U3&C`k!Eshq z*^8r%BE3bg?i-5HP;DEp)>;;{g$h9it~$qug4`0E@lnZX@Y$9IUsBbo)RXJM?O&4i zFP{TB5yLCSXav>|rGw4GD{%yGa{0qqi#Cc28#XS!Ry;!As7n+~HolLtDpgdP_17C{J%#!= zjQ$%=vWx%u3&#0J?W~q3agiirXx`YrDGZ| z{aHweCFDbVKcs~j7oj-OO5XV5G$I#MEqhf~XNl6l+WBt>w!mq}zl@$mfPZ6c@5gkW zmm=!NkCgc|CVN0Pj}B5ImLg_889r}P$Q)GwRVzckeVG!C==Tx2fEHNwCFrW9DEeJ3F&9t+xirk6rr#^4}o zen7K`zCt8PM2!WSH|FYQ?u!l%wsLY^k`FOuoWIqsM1tB9Lj-FmDdoTuwuOH0npF&u zB-R$jAf@`|R-io>Tc0o|nUVi#FUkpiQp5-DWTZ&ehz0CL9KA5#Na7yWEN?JQAV^4^ zu`UdHL1yNUFseTE?SsWgjLgViwzDiAp(nI@ScVPb<_BC?mszcL;7{-(QeJ`+I|SvM zwNASsH`GY>x2k@`Quk=Ih+r$VScI$alFR=X!9S+p@0t7DS_@d<@xKN2G(75;yN@&W zHwWCXBLL_z>p@us?tF~}_n(bI_Go!$NO+KNXKefJ(o9wc@eV+?D`Ey++x_V^EilU5 z2=IzT@Fn)ixz}Q{w<0m$X#gNz&ZbDiDj+1SehN?qA@QRf?h3w6Sg&#?L zOU+f^F;y6OYzeS{*pG2#v5mf?RE`Cfg~{wAIdjRAJGI&NB@kP?H&P@qmUo6-i z+1bL~8yN@c z+(MD+N~bX{jE~=yERY+xk47bV8A_B9D@4hI>Ti|z?KAX{;=$2luXjl6Sz_z2DJTR0YWat3Kb7zgMFEs=7EiTXyr+W) ze=zej*|XRmp??J6tghhdz?%Be`bFU={z;;6meAuD7G-FDjz%1{bLu3Q04}BqM0R_j zGnyDm+|C)51rCrA&ecK*Q4<<$09cAzqvOI`+5m~hkA8uh8u5cv8A0zhJ$O`@D?c0Z zNVTod26?IwxrbDFu{p>A!}cSZr;aHTolZP***-*9vWKju3gFu+4ED}x0c8?#4<^7~ zWRfw|u&+8ohp?4$miw_*+=M$(Jm0^~`qn!m3~t~LeC4H`=^ZJqu(=3Mm!r=WPw7cx zH+GGLyA}8Ma*R)fzpQ?*mF5n{r^^1{S3m#^AmH`7M>R-;)W*N~Qd&6dG`yPkdijLq z1@KxqUGf{Hm1DlwiZ8Yf&{{<(A`lm|?{72mfXdMoz(f|Lu;ZbkZzn|Ba5#@aL3|XT z)JEe8@g!Lxg+_ogbwOz-~>X7gc1jy-*VWRiDYl9VbiPhh>6~je07$e@| zO}$@c8~`LzL%jM0=4SU3J~szf)?3U`7MHNrAcO7gS!YGGUZ>ht!ZS&yt89Ugy?`O{ zZjPInDt^vdcV;eB1xI5oI-OW+Es_%zRhh0xRJSKTUS23FQtZ1kYs{A;o=4=tRWGHd zd_?bPRl68$E&9T-jjC^4c1kzUzyB)#dJFzkxBn(i0`Q*>pf`qJ#FLWe?$IxOv8Ltbg!BLoULr;=w8az{!lprg@>f>Y zQe&ck*dny&5(IW20}h9LSIH7zYZ`OewR0vp^jeXKt!(V^D0TY@mw`6#Wcg=DU3UVK z4s(wd7GA@hCYBy+4?#0~iVs6Tv!)S~t$0Qv^Sdn%Jh0lU#}koLP{mkgj0GP440}@= zr1Dka4qkLh;Lo#E296zEtc0A0yo<8PD&%I!!g%k4l2Nn|5CsC2)|4kPDhSLmrXkVt__a&y!;N875WO=2m*bop*B@&N#OdK(A`;GE$ zjni&gH37?+Z-#tO-CkjI3y{kIMVU>caqaz~Fb@J8pg;|<42R(=C|MkKyDHMA(L2vT z4|a7g*#N>ZgZb%&tl|@P(_B1h*wi32%wpC9^ND%=D2F_qS&Sg61uk)vSJ5X0_Q4{k(`rkFCQH>$E4D^kG)g3(iCAIk1uhvXh15EC z)UqM=F0<6(yHggLvC{#8d#&du?Z2<2;YQ((?j7*_>|Ydze+b&9i~lYPsQ%u2bGaet zFHvO1?qSCFdEpKoxXFTN00Jd7IRS>B)v6P~_Bh=~hkA2>`xb}ZB8rLq%zc)M!%QU9 zxT%e1(Lp65*h3u_4&?d$7s5LXBFLJM? z`4T7xZv^0KNH|qkatg&S_2{qC@L^4agC>|^lpHrSWHehFnkPr!uBzx!3#Ue_Z4jFvOdDAqAj(*T5f;w(~I#>HVc%3(h+s5aW2W=5}gV zNK{l5Nz_G|bo>dXQFB!mIvo-s|6_F^nE_;mt3}HlMcwYAC?L95wMI&u|03cqL#SYmNv77e>kmTW}J^`#i$LJ zOeu<&J0I#r8E>w^hw36qp_%tw-dpX2wj*id{&cKx26f&&0MRc3yBCq5-R?eHkjMz# z8Qn$;OV?-*Kn0sIcr_J`#z^wdVGxqlHf!?oPzOR{& zUja35nL%H7WfvOiN9(rl$42Y?3-;!(*V8@^=5Q!F2(_^_I7%sIx9=cFht+1pvcs9a zL*IcyOvJc)iW;SD11oe%aljCum5b54FoB!eif&uP#KAH!9YFG>1Vd7(iDi?KA>sOe zB8LzUn#po+wwI*7OiKxa9*zQ@a;nOT(}*22w83+5DWG-cI3}dq;@|I$1H`ahR9kbEhdp(mCo_5>>&FF9?y zOU&&C*>k6mF0^1_Ieu~5d*a z^hWVVp~MzzA;D^*N`yg5IXc7w!GIF|ySl`lUTIFtRAr?X2~P z-mB)~D^2vJw+Rb0ShnQnq{QTfhEb#ygcg;b#FW{i{S8=j2Ftsq2Smz;%wW!rkd5yr zpk5@MiQUtM5Z}YD@6BgP4C%bnrxST#Gsw9q8NngSr}4l4YIStVz5=U?& zB-t*T!!x*UT%)2_>XD|K9*(X#r5KhIG7_L zptZ3Gbte<7 zP2L#$2;O5ECgKjJ(r^*q-dTrg&Dvb)w_6kMJ@$AUygcnO(dO7a>h?{&OV_Q5M;F-4 zKLv=1`{~(6S-b0o*u{!aQ+(jYpp zWYgN#!U%aEL*uLPK)b%9ChnF|{c7>i?GRORKg3`Jaa+1C{4L66wYINMC{DU4A#v^` zP~yLOvHVd*8CX5Ko$Wz5VBnDaQji^m z-2PXl8PXU~WqmGM6WvC50L=@*ltcn!&G+T#ktnxBb&Suimc9RW2ONa}Hn3m)Q`4%- zxxCB(B2ihF57ty)U9HG;^#ncMktG2?t1onqNnkSws(BI zhHRrOzsR^`rcGfCo{y8--2eIHd;GeXYFpC^*PoCJ(>1hu7XG~LHEkgVp< z-ES`HrF&p4H+*M{9;3efbSw+Zyzzmfj`*-vNwDXEir)9~Tek{kW!MO|d%X|c|G~Q6 z8~+&p<{h8&t-RN_yTp{VuR+ntTm0M&uLKRKh(GFI;Vk%I1nK3=An@1ZSR+7uibbW5 zW2mlI{~uFt85Gynb&cXqZ~_E(C%C(NLV~-yOCY#IaCi6M?lkW1(6|P7m;O5Eyyv;M zR#pG(s@}c!v@zxwk~3STgp1@IC?9Z_&WDNi&1yc!d~BH5qtC?~VedwFYVFWv7E3TQ z3*66GRp2Lsgy#QR!=o#1O5(PZ$lz#Eq2Xi=!cXg#jq7bQO5N$_ncUo%J(!TcP0k8Y zn2Z9IW{rg2$2&6BD*0 z*a223HZJh-X!-btODT7Db0{DFd}CEh-rc`PydGUlSi^C$J+k1b9<*)V!Wtih?2*Bf zfGns*teQpAh`(qThYK_opC6H_AN$T{sr^_G%%sS1NIyGg8_b%~xqzBX(Q;8!exUKF zq2)X_I}~J(MoT1!-lvrA;;rKG7pa_C|8MF-^)A`<%qI9Z8)p8^hV>*qX9w^k5MLm0 zUfWwJGN};uJ|koj*ul;QhL&N^K&4u#mHR@01tcY2`j&q5C4c9AIKK-35&C-aJ;GGP z!J=cVS}n%@oD+}l=wz0i>i&_;|3jQuR* zTB)K|VsH$zb5N~ljO0c`R1=P`PHLe+o8QvI8UUmAIIZrmX%hQo`Lh?f4-@no+AIo` z6zE9$F5x=9sY4eqq)`Yq1S)%G^pnv)-1>aFy<0MD7mP-!n8I=ri{WE_$6C+1d&7*+ zxkgN_@{SufbRl~XKGMQG#M{(#5+Z9rUk%BHZo_errW%<~&sOXRusx=3$>DS$-?tZ? zpkV-llXhUwfpY)XZ#V*iJTVz2S z&R2J{(y1HpwXI?w<6aT1q(;q)!;uH7qT>TY*@e~K+qU~mZ)}NVE0P4 z_O=N4q74OnFxQXWO;H3Kq-s_*q~bFIB7w4>i4Xkqd$nFK$!sd{BV%@fYT|r@n%_jO ztj{<`SG`bI0}dtPI88pG;r~FYm{A%&hZLk?R%MwiIlsJlE;rommW-qbc*=Hi=TYjV z);TLvS8R!{=O@~8lr}&FOu$n!1*{Qbe|$e#>lF_9%NhB5z>nwbdG?>{1QwLo|F<;> z1C5a9Y`t4W1%4^l%zY&XHR zX?|Dl2S(d`Tcxb0))Iw!=bOZX|6nq&gcatWGxMGbA7m3RI<*Y?TAGDY<3pIzKw1&` z4;1`g2NUAE01nI<)o;-q{rg4Pe@F&=E@w6YbWhul6Mp{~>pEV9@0dnJ^y}XsXQ@JdWY#Qz;V|?bcQ{^er0<>Hy}V`h3(TrUymkGSe-k zoYo_}{w0$TK<{FKt@#tH6gwg*dcnn+*pH|TlxZIY9VNH)7)JwY!srUp^UZy0IS>KO zc#K~e-goY(1x^HmSP!rTbK9kI{AjQ5+&^o=I6a`VDfo8p+u059#?`Fy?e0fs0AD8X zQUs?m(p-fDV%n&E{GxsQW>$TWHt>5S!fe{-7rtmBO@i~3a4i}!b9inX{yTHJFVJF8 zF0t8kSa3(R`>tipCQe9v7PaN8iIs-4H*QMQ7-Mac=Z?MmMms9~?XtqW@W^>vquQx= zD_Deai#$~uJmRyqrgRKZh62{1=ir4`^(_LJ;-rB~(09$I21_&i%tww>{*!ubShnFf ze}~69%O&8DGjc%0Nt0C2x4fT~M3GrDjRJ8ar~31abg|2lIWH2U_ySurT3tH+AJ=Sm zUN^n$VPL9A*lcj487XgieUtwtt58(jcg>4nkUA2G9`If#@>Qnl7#zB%kU&U|7zuB-LLD-^14~M`xgq`oDqKb%Yyf{TzUbsK_2v*{%KBc z!Bwd3rjKLANNJq4!+HpNnu4iK<3S$ssjltx`7>}>HTdJ)oSF39 zdXrkmHu1>OKgnzSzgqL~q=oTSd8woSanly0ef=v@-7Ft8w)s3F+!6I$ty4+ROf&s{ zZj+=Pl-VP)?Pg~1c&{tKA$jPcXB!~{q(}@$;poYHaAw=OY7P(=D)a5=^p}~%lyMdb zM}p;z4+Pp_D*cQRGX4}R3t>W|!XL(U1W9D3edgAriKf#uQ8!^b-ai0&vpY&!<+WR% zeF_n0#N&pXQ4Y}e?I4hZFsJtShG^03g|xsV)O^&J&bAH74-l@}+n6J4Jv%Q7Kc80kTA&;d zSKx%8ps}h)dHLC~(DaQdA9V4PM-<*rMyAs6kgz`qF`x)T`b=itF1$bbM>Gw%do9-9 ztyf=MYgvEP_NP8%{Dz6VQd0LhnZ=See}Vs8mNVJZ*eUC+U~qS}){L#c)@Dcmf^=B2 zv!fl$R{WwKWYtvJ5G9~604)CgfLH|k9mV+*$q7s}$jD+XI|yePc>bs3mB9gnYvGzR z!4j(e(zom1UGPn9oyQdZQRpGSX5G!~-+@9>IvA@sTN3{6efuCnD!KJ;2IG{y{TcY= z&q%{?qFt&WW)WDAMY^ezgcax1i9bJ!ND6u6s;G?$1r5tOfzy~>kHqBeZk^bA4D|Da zE^PGioIdF}pk?ZYLkv8P3RfIujxAg1C)Xr(lO6Z+ra|RzOj%*eupzZQ0V=gA&L2RI z1VQ7RWEu;>E|uGS1SX$NH5uj-1D9;wdmLLi*Fm(qXm+@svzlI0aFjnFVA+B(#%O>pwng+kwAoVOv8yB6lkAh zDCRTePi;ySfJJ8jTS9oq?l7)NZzAvDz51chXk87$OBV=ji7pS9u?zZPik@mhrhZ5F zF}M1JAWmzAn_X!wRJd)Bvgr;Y8gF0tpr^;>T)4SFlKFJ`4Rt6@VTEN`dL}#G{=k6# zrLI_MsI#0ykA`H!uG0G!V?+td@7oNy^#=#DsI53%n;yiUwuFRu$Z}57AgdtwG5A(I z_PlEobtIKyQT4jY0izeH%v-E{8hM1mY_$fyQAFv)5`8^m`~0M9LMZmRppxqo$TF^ip2=4_V^y{i zVL=OkdzLn#9m*Uk0i3r@NO&2xt~BpJhu{F#={O$pELT)>2ZcCWdmP`)|EMp@JQtnV zB9Yr!>l)jT>9=aAM76xDe*2y>z(+S@4jcYypvvxrVSRLid^XU?M7N2JFD_s4o^>NT zhh6qv$VgGVq+*Tal*e@Kw_SF9^4rnk_03wdWbzS|{C>Gx6Iig5-FJ)C`Y-VI_aLvh zZ-a^kLGbq;9*ornUp*wpQZ^rV0bNJ;*;%CrI(}PE&euYj#m(+n}WK*Iq0xh zC~{;^E;?obdWqcGG~kW-t;JeMwq1P)@}RvcxKrqyM`)SGMw+gBqHdivL_uuEBn~r9 zlD~D64Dj5&2(u+?J1OC+o}pY*FX7iUMst2Ur0no&0zekj;*WEC;z`5Df)F#=6w4d6 z>LHHAARd}~los6Luf8xY`#Tx0|M2%yaS^P{00Vk{*zmb%+)Pxj>4*n2Fu~Zt-6mk4 z?47miWKaCDN@?l+34(l~j{Le!iJ$jFzLCm2xid$CiHHf;*xYKyUYL)v(?0LBoh0=c z>X<^1`rG7P_V>^j`#F3&P^>k05&3waPl=j?n%*|Uc}=;@*;aVv)SE^$UT-GO{HqI+ zkB^f;jTw1jTyAkbTBP@|<&9v)%7F>sXq!<~@EPgTcWvkCK;;#Va0B1HNL17GFKCB3 zf3UKz=GL_g?1F85Rb$`sBfm9&jbz%TSq)|~K|<23e*1NF+OB5r_gCLMhwooHp|9+v zuk)<${cok~nCnq+Pg@7t3e`_?N1oE5Hn2R+nh-4*4(_ypLY3i#bbP6?b^7TkKHu4O zm;mY2I7>B)Tv9E9e)nXH)lBi}VFFS#CsDP9G>?Hdp@Ujb>vMSJ%5IpIZJ-`3U__~P zpXd<1w8f`cK1!ED%u7gb0{1T79le2#Xh;amP`lgVvf^qPt6DoqnuyHT`w`%PlXWb+ zS_eB)?j$|UapbLo$*V{ig8E_$|6N-C0+({1fd9vH@~7{rw5fWqt0O-u9&#XGm^;m$ zaNpZe{{D|T_S>L}zFtsgALs>K3(9qxnlo45fOs)QwxH;9r)(ps?*uRosAfcU28_;q2?c{6uwH(-s$Z4(Dxo^6f ziuZ9>7VI52F!8Z1TPL0w;fX7^gD+se~)Iu zw!0AB$R-GrTCmxtNRR*NN!jCTHuokRJj`0fO3(aT2>j(dfeStokbui;#_RL0eb@Wc z9u7-27^|WkViMqvaR*&u*_3hec(smtI+Qn|XHRX!Izy4FEkpHMVei$M z8xFcUMH`AoIJ%j6xXN9@AUqXM}Smg`IHJdB(Tj|nf=V)Xl zH`w^-IjXfqGg}#^_|1%AJr}i88c#D5E2(r%v2O6}8_+Q_AV4?aF3fGwM9LHVtyH{I zJse633EB14voR|w$bX& zQp7A`g`Nowxi*?@@|tI1rP88tTSi?*nx1q$G80b)*~yOzB-eSrE(fz2ukt2U%`u!9 z_vRfM&!-$P>=nYI<7?Kjm(6yzk`L!LUYw%XoFp2?$tfz)1o+Ac`h^a<-NpHmdh87Ymel5r`g6J^p6{X^EruVQ`lAAIsK-5&aI8WTN%Vf%@7@~p$CYJY$KzX$CTh@MK)4Da@P4}$&~hDIwrlJjeiMQD$PqTum}G%duvQn*YGl{> zZwB)*Tmk)@!r~v7-6;6a?^fLEsQ%1_4*|u5B~;=xv8Gc_OgNKCZ8H!|zqKx#rJxw~ z=}8Ew-P^ny8B!##vq8-9B)-;M#r{OzE$znz+!(^O)@{@?Mz{YYVQiFW*;p0|a= z`6FH427yn^jZ#0z8)cUT!-kwfUFOEx(k2v?Kh+=`MW!5b4R7GL^xJ$CUlik+N~JQK z@U-jl;xDJ=ACF5C^!FdY%~(|}O{}*v0iVM=;pK<7kCHWQj63q?FyX8C^U^a8+EH!J zi*R=it!hoZB2JilIg&*(14!sS-x0$U%T1}7$yE9rtB)X!QeNroOxXg3hUi~Nxgby> zKl|yz_-zDMT#97i%$VLo_AJ0`kC?8;WyODMDre(k#noojplL(cx|-~0IMj=Sv+eCt z;95|FL0+z@VDQk-`|^cnc>3jT6d`1;h2aF(Sn0uEONRl+MC@Xn+S3Yd?82skqNXRW6Og7vl<*_97(#XHzu-BZ%o2<$z+j6)$%ST98HmAN?43Xs6s!wx%t zZo|#F4nfkuTRVI|6v&acFDI+9EP?2-6l*l}|K6H^{0h;KKqso{>XN2OV_=&W-|LNu z6A&N7N3;%i#PaPWh#|5{eR%BZ-`cQHG|FX>UwKOW6(m-<@&YQRKbVs9;O#4G0I;6yn ze5QFU>m;RVB%U8z-0hu)lrT*yYbl?)e~^2aPaR|p(0&irF%ci0Tq;cA^;NqxA!%gp z<61%S<`gVd8iTSxwz93LI_6Ncjb8^mt{}8K@{9ICoveMo{`E@VkF@#Kn&!v88#=nd z(v?TNt5DbfX2>M_**p3RU2pg8!gtPfqh%G5??eO9&6lZ>G)?$5(uS8tu#AfUPlDbo z^xWP}NGGOV(Vn|j&Viip@yc8{h~2|cs<>Ry*ydpO%1Ne|+FY%*sg&yYc3C%*JW`Mp znThgTKm3Gk$2>@)F#Q4UXKYR3qmAWB;&#()ou;1gw`B2O0_hzX_|Y0QSYPM3a?VvC zjUEo>7BdBrnuy%`A8K4NlS8NzChF?PXT!`H*yg_XSCY>?)S26<_Wq#XDi!W7N_x9- ztZTrruO}}EXB=VPHpYH<) zBO@9H|1Gdi{WxN8x3>6f#88?HXxeTR71VlWsgpI|K);7e?J;O0&J;0*vyx;7hp&>U zSY(=SrLAt|rNE;-Pt8b+Axy9u#CJb*)ywx)|64axj-4j7;fzR z0_Pd5s-1zY?3DX`wTXR|1Ig#VKx$#Wt$$7g4jClX+HU8}*7=~I>&NvafU9$_KKES` z?XVFK0WbFrJVekLt%=}4?swACq^{h`?S3_w+`U^2uXrBCW5}8^TPhy^+gIV;$`uT< zCX)~-eK>(*=xeYaxXEl?=!szR&QGKevBHuWq3EwQK@%%N1x);%>3p`rEef8+mdk|? z36MF6df_6|zH?s#OzM^q*6RF zU5Ls?w*d${TF~7~#xCwUd4W?-4lHGxQ1s z2F1HJ>X7=v=(zGLw<*>_NJa-qA5JB;mhIs&u=ARxP z!M#Pk6#vy>+nM=buVfylr8VkSXDHZ=)Q8U6Ftvn$%i4A%Cu=vU>7`?BRcu040Jun{Y4p(L*G8VDv&*~Le-FJe2WDrsTQt(U^ zM>8pEl6AyCmIv>qi6>x;@!J?_B4yHm%0xw$B>;YQo^5PrWYzv|tj-=fhY{29a|r}OSFW<>=?CX1(JRv>&1a9oU}<&8#g5Gan#T0O{5%o?B+ z4<6FQPJqac6&?J`oJ6R*+#Kum1^W@2NBSmQY|iUc&%VN#D&7i<@}9r7@gDB(I+N0+ zlno=me4?*IbTBzwp(K+m{lb9M>rtpQ?p2N*vjp>t7nt`4^AJOac6hsP7=owMKdd%j zvP%$4!~`D^b~s2OS`L;SroxXj9$ogG%$@?70aYOIOHeRGK!v8=7E+#@k78zr0s$7Dmr=lkc<6nK z1h%foJX?Txz7F3l{p}@BJ);Y!F`#C{0kLO-hUi z$=F^I+`iSdms36=|B~|p%$aoG1=kb_dznWDw}H+%n)=kuNn&TeimA!p{yVMxJMh_r zf4yktU1?(hB_x4gt)RcS-J^B0FyM&6VQ2vYr&=l|e>DtQf-vY@HEb0ASdgBh7i!Ze zN#SF31DwnZ=AtUBCVWTTcwj7iwqWW9SEggBNjN7f0jh%_wnBn3O69WYV*+4sg)_%S zG@274=JmbBSmN+T>_Qwl8%&I$b^)V;1WHFMBn;#U`CNS*VFR$o`EB@@{Vs4{;SXve^`$9*EhoZjNeq5EL zNpFd}K`e3rWuEum>=xn0*zI{dw7NKVqJb9KNc=htA(lX=WZ+q9MbrgOP}KQ=t-JVi zlf@vkxuC_$@{i5*Q=D$+e2k&7@8{#u5&waA!Jsb>!CRo>A$y^F-WB?sTyVD+ z^W}c(T)&m~1wK@L&}yBP&S4$`oefTl!CWtn!U2LAf>Z59uvj3>HgS-%_Y`B<_K{{W>ytYE-O6vBuhbK8U)O4-56m`P{yp&Gs;Q= z6{};87?d^S&S^gBN_J8OTRjDAUU*BHRWgIR_S)7bBzYBH-GNfY6-L)_2}IVAO48jC zxi+Z=r8$czjPy3UNT+#-cmJ{Oz<9aQr7!=hzn72x!#)TBT;-9Jc|F;`0YKsBzV8zm z7v6aYm?nltk^U0;9=qj;Y6G$zus>K@<(do8<3y6wr%CfPRbz2;7?MNK*!DZJVbLXK5`9mnV=<3PGloE8a3=hu#G2M6-R$K zQ3P_5FIjYtlPbChZANS2SFb3RjKEVkwGL^`qNr~-x zz9P&dF`~BEfAqAL@l_ujfc`nYh&|cV?-N2V>coJDrw7v{WgRsskTfG$qeb4=L3|Dv zO~+z8AWITw*=?o13;KoAxF{zOu7LE#V(m=_|9LcxEZ3GFckDwvQ50;e=~YF@SQ0*i z^YQ45QbMq7vq^NY{8D zC*f>2p6TD_SLITk@a8gw?f-J4SuBhXrvt>ze=@Z~xIydWFYgrlycU&DHvv z39lrbr4`r4|7gND+vz>ubkt47PZIfZMw7{7lz4qTc`?7C>ZI(`kHKqmz}lW(^#pf!(Up7~MA z===F-zVzIeVpC2=~3H zP5V*$?cZx~a*cTDoA9#q*BkC6Ig6wKT=~an3pE44!g^?;ALDG1C@mqak(l@YWCI;y zziEhgGY?j9c^4MnkY?4#hPDpVermb`0#cWEFo%n?VTT9VfqkS)M}TQ#{%pv41Nwxf zXObKlJ#zR?@((6n@sZkPIc35)OalkTvOlxYoqJ7seN{Z?TDP1Ac=!1d?|xA?pmq=p z)>onNmrBIqvyO{Z&^d!)?#S^d*6KPPI%spF-X=q=F+Y>I;J!<`v#WY}Et?@E({wL| zxXxJw;y9eT#gIBvav*|2+1=b-tr(DQxWJdV0FOj*{Tbmp&_0bUvVzQI_8R%G_P>4T zztp=N*!Rs%@5#o|n6Kc%euy!~_vH@Fp7asO9eVq4@}i~%98}$61e-g!_=wv1*8V{I zZPq_y2}y_G&(88T^8Bl&W$!L(#FJDHWT@&f2K=5eMmGuV=G0)ef+;Ec%g=+UZqnL3#zKr&OFSy#qUpAZd_6X#+Wa;3fPnRlBs`U?feIC(F5|1lrVE(CJhswI^bkZ%YoWs zj)pvUX#Yw)FwGejXNO{0D$HPUie@=S&HD-xgFq%<3+&EyR8 zhqMF1bsS1y?ElYaO4#-_V(maH=dIOvlB)bw<8P$`*1*}eY6JCN@j}b;c$-1iz|t$x zUv*|(oaQBOPAK)z^@s-@&WN!Ks%XYOJ@XhR2VDdq;z=5V@@O>x$n4=VCO>iCVL&=T{yI*WTwR)QrsY!IvZL0jvSnp!FJLq zZ>?WM#jk`DsNOuB-%3&{1FRvbR%ib(?OOcE>-FoYE-|~gn)Lt^c&p+JAFZQ`s&-vF zeoq>M1lwYEk2hrb3+MgkT8Sq9=XmE294-zSY)zjoDNwZsF{i~-excYJDajLO)HPRx zN%M^JS}-qB|1%Gm|38xQw;oXOGxAB-tFk)yhI~sNy6AeZ%$Vys^Rh|vUxxm5RCAS6 z%HcE|IUwQS6PIl<#m?#mRRC9Jn6SXAvxjdnU!ha`6;d79;<)4bu#1yLEJA98aw#RY zd|o`9OqA{83bOTtycr$okK-BQ<2ua^q)|G#qn?7#-{^*w7kG^S;P)fEs)^zrH#9Y1 z8DM5*{fxkm;8p)rYomxeTIZ!{qxk7|iPSge^Ky}0LS}0xDuxG}A=Y*bSB9|U^sRc` z)A=n2Vrg6Fg$rVPa#R3baOYehnQOIml)svjJaCJ9GTy33^d+gc2MuoGOJ*}sKa9n; zFyLSC4UD6szHSP2-Hlyz-7{(Kf5S;q&6e}HIeg#C;D&f}{h`8uX}W_+7L=;@RhTqI zq{MIUE9#zu&$3MInwqZ!!U!~ge(DFUe{>xNno0W0sL}F*^|j>Uc>)#iA~&C9 zXlvD=ssT;;6?)xz4X=wUehf--a%&>N5Z;o6G>eU@cZ!}(!Fd5b4C7sRlh=dWuh(Cd zYqQp9!HKq5hgfhN@3D$SF@_o4h*9u+h|cq81v~Al^9_i`vSY$1B(U7lcqgk9XV-l! z7zs0wgJKk8gka)G!NEWEdoZXNydF5Ts}Hza^sIg(0zZ?Kq#0ki0U>+t&;~TGVC|`$ zlPyTz%5LYmnQH(gJ52&a43D$X0$QQpuv73wQqj)n$`*o zF%xET?>$XIo!!XKl(XX<7BDNz*Dz-i8AGZ-i{2lq+#f{@V?IZzp0%K1NPH@!NR;hq z5~}Ln%Z2+T;}u4%i8AZ_r&KapNT)X>?6OB|P^0L`5H)kI!KY0GIWtN6>TERABQ>E& zHiW6I3U)BD>{fO6Rq;t-oO-r-7M|Sm$gBoW?@{MP+j#Q1yfA~_wA0En)g<8(H7BPu zR&mBxVGyOQhe{qE6 z?`{yF@vVnhxOSuFCUF!@NGM_>p2T^{z(hO5wfObrSD{22;Z3P#yLJOYitI2uuLni~ zDile6!Oo;yH5PUrw#$4)H=%SO(XU5a%=wI86*7btFqW+&zvGDT(AB3uSq%J?qZo)* zP>aV!psLfr1rA{Hk#l0fO;Z|L{}4b5kW#{|SV`+MM8wr36+k#Z{c@RvYf}-Rx(QLq z=hg-V1YjS-J_H9OQuMLOI1-Kjg;ceakj0pKL4f38i!uvS3riU6K=U0m9MMJgAsMM=CB)rg z%c;DBLDI;+X@X1$QwrT4-LO)8m`_~RTSpP#o-q+qgI zK=Zr{gJ|~suGs}&P5JPGtTGT~`bGKR7qMsSKbe`SJ7rL2NOF-i|CD#$q4@Y!fya-o z6d{kzg{u+CjUJ!nNT5~)@a-8d-hJb-Yvdo6pqCx6~U!n{o(Jhr6(4Psm zGD$5vrX_|`Fy16-4wV$T^SJE^>$LSg76iD=9f+fLTII(QMBe!SZUDp%gN zs{+F$=l+W5{d+*W+rI3&!oThkBSz_!J3F47H$kHlb@qem4>m?!SeV^Ko#__Vexlh! z^}m(QDDQyFM8GoE&yX^#Vc%_!d(lk;yz0!5VxL$KDaH~fNT=2j`wML1A!`dRKETn* z!NP2}iERg-_Hxx)oVshR1gVwrrRqcoXs9?1^7RDm)f z6+DuBqkXrPVCw1AdC*dt_$l<6^sp|XaaxruzWTz|pbhE38)bhvt};?B+B!N-O`J;q z3I7FF9~jaIEQ2!N8|n>}^uszDJPZr;k)VHU;=>b0{%T7V`2lqSszOy5nB|Zw##XKj9Lqtu?A>_OoDlOzEjHjbkUBrXg|3Z|lfU zlC)n~JIxQQtcKzX7*aRae@+=p_#<6gA*W)u2q1ImQRb)AO?eB8rt|KOBrl{^)vU2{ zwh}}Ul-y=np>9$b?~mjmF;Bi({oqx9KQ>pm$7G=A)kHio7Jn<`oWd{O#Ra~;@py&Z z8hL1_t5)8t&PuV})n9H}{}(p&w?R!Rpo5=}_bZ96CzI^-_pNV-U_u~X4izLv7Xe0! z?97?MqH&CUEdJzoRMb@L;UP}rhlF}&C0f~^B^paIq~VS4oWIrIZu3is#-Tg_QtY1x zkC+fcCUI`VTN0a|OB=n`{SobgVNR?m%*rYZ*7_|gYhNqYA@XI96|!0Bwd%g`4{9wX zmj)5vSdhc>h#h0^app7GWtwVszT;pmNl+da$JKON8SEIMOjm7gT3rS0(0VS1S7e(O zRP64-JPFQb+^rZD=e2V=u7800%6Vo(!JpW47l)f|D>FVIw^>njNz7OBF&YnGqnUtM z1{wrp1jae25Q|}vrM<*~Rhs@%y8eM`V&WeGvaj#&tua2LY97>o|9G{o*Fh4{I5qI< z!*Y(L->;jS!>v1wJkKlZ=VRdlh{lnUy=b55P-lO#??<8su;bkw^5QG;vLXCP@Zt#b zZWh7A-^ev0<^io#KfOBJrx;$wHCY#lF~0AQtLfz2P2HG;%4_C!JA%w8yf?%yfJgHa z?tQ776qadU>mwp#l6&8lg9U!;?3%=(pcitdFPc%12+y++(FW4H2Pq1i>ORmr3$xjt z=slk=#H}>Bu3b?$#VN??)=)4xgm5(xC-T;Nq+nA)P0rxkLH!F<^7~MYr}CEd<~L5 ze|o8Mh2Ez^%-1Y1W_0H~xchC_A>-#6>LQCg$%ADsGnS*|j4T35`5xT1A5g;ZLxND*jJi+Y~hS-(iSp zuXCn@CcQk)nm%}{^DYM2^e?la@z(R|79lVZ;Ro+%X@k}fd%c&-|y4+gn?k_daC91 zxV;*b@ku@Up=a{X=Ni$|v1k(5>iXIwtL}U(2RlP7!um7O5G3-;-KXDt5#`Q-O6Hos z55K`UkX;jtQ!5)*)wIC8arCYnbHaQqRBXRw4vvQ~uvZkj1MSfA01?%^Ki07pxXd1k z%{SEA6sW7x+NA7$yw>JFvHz-8tiamwz*Mj$0~M_qpmZNwRsTd(l;`i1yIOe?R4Wd# z%}wOsFm6Mr9m<&+rCx_WVznMh|CNi4pA{=FJR)8b=qe;%W5ca{Zr0LheEgvcHAh91 zgjY6=M6PfIVO>RDboBZnxMa^AEyqIp0x6==pm3JvRp&;N=H5ip-dGoKh zRu}`<458Qe;7V&ZW0yoZ-r6)hfRNYGx2({k7 z<$ux`C=kGQCJ@^)MnY3^Q-9l{C$bb$3qb}UL9T~8>em}!%B=qv3BlAA+vlf6R_=J! zY>%&+`>jdbfZI3y_Pkwt_!9px*!i=ZFpc<3P7JP`k7Sc^N^1p2yYKCa1O;T6-}_5} zR9TcZefF;3ul(XGU)F0@O(IMEIK%Vt6yET1);YbH>WGJgmL);^ zN=^ecI)Vvu1doTh~e3;|!^fAkq_B4D<=sadzy^nS0Z` z(!*YHN$Z@|XoR&z$8s{e8PjpXH}Ix#udx2#NgZf(TmLqv>uzFcv9EdRFCgj6c)#*C z@kwZqD+x)GkBO84^J~6jFJ!MH@d~4;!jV^n+$nTj6V#`w@HTQUfv^L(YuyqaEpLf} zbhK_$slMqcI)T}g%IB%coAMLfo)Zf6L3$wgZJ?`AJ`9*NNzP2J?f z^v{katn|a79V=oc`Wj@W40VD@@g6hDzL)0`xyq@fY}|A)8n7N1d7jcyo>*xlh52qV z!u&f$-1eptQL*y@EV_1hwvqS`(Aq8R^}4a)oK&4!tmE<5>P$z(GY4r@^f5HIlY?4b zQlIyUoEV(%cBD0drs1J~+YO2L$`>7#!V{59 z2x&IoH&p)`(nd_&6zQ_HJ_qe& zhRd&LV5yYGKo8zkRS*zi=Zz!4e`Qu%CAqdkpmp``Fgi;l+bL%kH;;WH_k=-=mK}F9 z^vYPL9VF=4D>Qy;P4w0_7=I?_ive9QTDKLeUB;9ep9W6TUHEU1ecU!|An*>VzN-xw zPxl#t6nImpH{P>K{U087Y3Y({?OnnqjD*ncCT(53wY$B!P9o2U@h?6;LJMcV;( zSL29LB@yo!b0G`tZ%WV#wd;79vyFCi4VP(o{792Kx8~-B330Ti`NZVzv{>8M$QA?y zj*$_O>A}N!IGpRKhCMuiMmATkkLN~6m~KeXhd%d6e)alMAP>afS8| zJrQ2L_NN&$-u#Ru9yt7<5>mkhWY6;K0^t{{`4JXN z=h84%!x7Y^$RK7<3$qOb1mM;CZJW+WYv~W+oHzQB&P)CK3#Y%i5Uj~Y_^4k!4ZXJ7!x^_Xql7|>b{+VYNU@mO%-b&-S;kfVTh$@Lk4oZkVAO0N#*t|vChM*?(zGdHl#BM3T zyg0(-sufl>$O5O?Iv>WP5rAJ?X1jWzqvD=GQLnv}db@NNY~yyIo=xItp!X=e0+w%0 z7efYJfmwV#;9B_pE%=UL;-mU^HIKY~2K(15mJJmsd$&3a@_8DZH3|!tnX(T=&EK+c zQJ8^O)^!_>^cSv?tLcy)g#3Em9c0HFYz7`#cT$0fO2G4k$Ah4>G^PXfnDCDu9Svm9 zLL(b=ncj6J4wno(1;V(IbJ1q890P9;YrjNpu51~p_XwVirKQp&DJcK0@iLVE>@2d?YYpN8imP&%5ylDk06VRfYjCCtBwhaWTu#010|x z1JrcJE<`g{;d_wbn?<+cjy;S-@(nh^l(Q9DEPUI{>l#@sQrLpXrq&+*cs+zexZFFo z*1fH}DfwQR-O?`?Y*WkgbL$4SjuAB>kXSDXI?jU0h6Y~N@hVvUrSaKzTqnC&h)oN+ zY(bOl95lDqFF~>vV&*xFHP%nZSFmVx-tmqeM(rPmz}x*=nqYHTu zAw2bp#fw!h23KMx-!>CUh^=EQ!)4Ryo@=)Pew7#LkOFo4o{dO}&vHpNx=WQ@_Lv3N zM!ch7Ye2PY`vxn<$Oz<%^avk(`&hSB!fZ#0TNBQ@lOg`$?yvysUomd5nQFN+m|_RE zp`)6t?gVFQ0AqQ_W!?D5h3#ANnbS#M-m-MMM7Fs)o$#vm{m#Z(!Q)RCT7hgg`ob2OwpoqTsjhAB_9hRI(eg|$n%AmuhgpB zXp62b&X|E*?0$nao9`>v?@I?6yxaWnH2dld_u;8X)aZi4S>ryq3Dg3-Eqcy%oP*Z4 zlK!1PYA-k63u}-;Y)1{3IaVc#;JxO-h(VBIxP7JU`x~8gzHiQ``2&Dq7rrq7%Ws>K zA2}Kc>R>#a=TAMe&?h1+FI>GdngM=C+U$H$L0f;D8W|sC717WAh7zuAG&2D5Z4(3t z=D-AGc*CT4Ll@)K4SLeqKpl*BWhfVNAuHgHEk2G2k4d`3t$6O7dw~2~8aa$!uu8I< z@O!&$fmPug40l<8`>xPZUc0{5wXJ~{EFHhcPS#eOci|SzHdJwMQ+`FfR59E04Jb+9 zeSOVH(a?q3bHZjX6=FYE(TKJd{zMUbr()lPdJEF=T6-NE&zi2f9C8fUz#J>RR*v&6NdSBVIp&2_(Mi zYOUPh#@166OkaHkcd-}En}F>z;d_d7fBHIF#4m*A@z+Lak=@LU0SYE_uWJK$!@po! zvWm&KuEf>oF=7j}MlF)PO+Ck*kDN#&vsn#Pdi+b-;#xSnqD9=}$Z8j{k2NL*Xy+(a zZM3~*&Hj+GZ{F~)*o@-pHp5OdjHE&;qT@&$Tn%VAw5L5`)#+2X%!_v8isnz2*S)3= zx7a1d6}(S9&%=nXR#-M6?uGRoC-BU-Cbu^C?fw>!jlgUsmd`L(z$+WsH%XX{+s|?E zOSHVx*9bs)@`mZX9CMi4P#-dDe)$hvgzg2sQ0KgS0;l|k^3n>Yi&5}8OV3p4t1rMA zdU=X)Yh@Q+)~t@1jrqEuQXCNqt;Q+Y8bbT^CmbM8P_Ho%k2W?!VQUe+YUInId4N5e zS!^!EG&S;jCo}nuO`FrUh+bU_vo{-C^8yX(S+U+#=OSX9$YQbf* z!nBBc2(6Xo)=H#z3+5L*7+ddSlf%$!C18t6Q+8lWW3Kh9vYPZ>0)GHVz;UEaZe1Jg z{xCf6r5f?Y@!{y)dOC-70lFqOifQln^EwwV9g@P{TNlQf^mTI6A``V|@K7swZ#4LC zG}Y<9w*t)v-<-{rEK%bg?LGUsOA znf3CguZQOrSBN|QjO%7i*<8=Gme z+JJFFj`OFA&6V_4h}EFIXk?w-*rDpwYduH7XNiVWiek!N(PT0*8PFJxo$XzK;uIb3 z;+Y5H5q{~WBr%`ZQqSBT6P;>eO9!_8KbpQWAj~?(UZEX6f#bX6bGL$t9#y zX{13Akw!vlL8U}Mx&1IbE~kiv{{ba=#+w zgKzkzumT6+a5}Mbu6AJ>XvlKIc?P-95HBA&sio%DSBEq%G9oAPR+3~%o2n}7)I9hh#m;akp z5-fojn~XTt*uP_ad(^hN-{?6fUkuwp`!Y-BMmR2-qhdE$hzHsZXRizo#uv<0`Ex_J z;!^hccX=$5%}mP^M*u3)!gKeq*L-@U<*t9=DtDt?AloJ@Lk#xI2b&%DjbCSNI9{)M z>(d|GPyCm4>lX7Aa#%5ZtZ(M~2X$gj$~l+E-d`eGP=b*+rY=g{ng)!+pI>pdO$7}zhZ@-KI9XbHvfLTby)UQEEx+qJn!oC8MGXj%(TYAK znRSYT5YH7`bqaxV=JJu1g9&82r|HX_hlT8uOnI@XZ+pM%{JhPh*{n+SW(rP*DPH4P zc~Oq!(#PNF4WChTK8e;Tu~X!;gc`|HxC%no#EFB}q? zN28|YCB<#ORa$$+XTzFuSTuKbn9_cjE=k-wrcvzTdLzB{ z%bzT(RDj9AA;ZS^Cqr5WA7wP;UV&#NSjVCt&;2He0=Iw&xsyLGieDz~gE+w2kEsw-TWxAhRnwz+;+u2KJZq<&pCj8u9hV$;UbMhTL%RfygV1Fd;e> z2z2;!0okD_kxAU23KQ0}G%k!*t1qPPg%9HmTxJT(bq#tKbL~yE|<_K|z zrYTt?H*I{ZD=~2MutOD1NtmPb2%0SvaG8k>1je21%q!Fl>IPuT4E(VSRr(9u4>)Gc z-q=ur>oWFJ_IY`T)gY3N5c$rq{&bN5BA6$oM zM>xF>^6dB(bKke|-hJwZ#_msTxjkRE0kqLDU8pIO0-og|zRbeg>RP#{Wpq5?;}b0w zGcIa-T52`aK2RWTHO#YweiwMqqqZDC^@>H97ryIGevmD#vN6dkq)js7;8xOAXvo+> zK5FgeNEyfZ=nH)T4|GFFCGgyJDCxu9zXCmUm;<-spRr#e_FpW>5HCM>Y&0=bN!9b+ zoexW;I8Fan11&#`sK{4^)ofl2*r2$(I1KUYq=Pe;b%!)`hxP2Dg;8tF?D-gUOvZcc z%In(^d*9yLnfE@_f=R`7y$n!{-U@7lb29L+hQXqdGygW3cAOZnmfYq4g4kzcO;G*% zZAzp-`Mu3v;8)9H`G%Z_`#>khe1r7P=_S@Xj@0TBJ@ZK0!MBDy6x1Iu>>m{VYC9p; zLtqyCE&BTkbEqO7cTw~qRoeIhE9P%??L2&Sr9;vxi)zO@w-Ox)}@IzU!u2`?^0RhO2JWpPPm1`BR)vJ*8s5xGeGj~36mYl?I0-bccaS=-t~<}Kejc+|OuO+P z?9~~!njrxSll7PK?ho!04A-oKUCU$4%zm~3f~y9gsc;&&)bncm*(x3UECcO6wFIjk zUTF1mXc)<%P-k>tQ20Yyr7BegWmo@o!&QeDVv}qgqRYXBw<;+-yA?x% zg2JaHOz4~lP+lS05D479x@o~!J%4`gdQV0lkMaEJfuWT60}jz>fJMpFkNrSsoIgDZ za&27{fxEp@*30k|vhXRh-!p$PMU^9dQ0bJ1XRn7Lfl)TBUkfQ=>RY@xeBDw2LK3@I z9W)di9X;n)bxj=OWOw_2I1-OvZR$nC`CJCE}0WW>dmXvh$@^{x){=btt$G zOnzwGGq2P}Zq|hGBgt9d&Xi)BGv#i@e1TL~D=p)O)(R|Jy$h;qJO9mj`KH(&eZ9aCB)fG#tD#-Wk~XeZ_# zN3ED&g_Xc;3ck>&FlMRe;Kx`Vn5WdUd=(8`WH_q7=XC2tXb>8*RU$6?tL!EE+^Wj+ znT^~JUOgmpjip(%H-q=0vyTcC5q90HqYo(R%)FV>ZxqoBJUmI3DC`$0V}?dq79sDx zga}^=k`!zE;Pu59CRkR(0u=X3D9vND1vHLvBFUoiU#f`!L8a|7Q^jbpVzUxc&Ebt$ z&n4dH3YcEaykX*FLpy?d5kdNm^E|0H1X{C&TgM%vthSs@9zinG-fJH@0d6?!hfiox zjS)cp`x-zwCJh@fF>u6Su^Fmyw7StV0G;_CtiRmcKJsq#$UblI;O2{)(S+VzrFLCg zoow6|C3y-fui%C2r9}i^UW|}dP~U&Uf!aYIJ+-*w#!NrjszJ|+D-TsnP0 z860Ks75sD_+MYUSB^ARFtnf8=7~Ly@s&hd&2_{?`rK0h*92y!qzHlfyj}wA@&Zp}f zZ)a8(ADwpj9zBLiTjq0nZaypbhYWlC^Phg%L|wz2br_9%&6Z`Y>{|g^^&hOn`6ZkW zvu*7lk5)@J)!-4Lz$yny%I~}14hlP=tXO%AcX;%Ib*&xffic(O3EL{HqEQ`jJ42se zz76kRzg_oBv>a@9=fn@}tlNBMUNb*{+SJkprJ;E;49**V>>a3uxai;DUW-*z-t&CQ zczte*7T(sPf9!Yc?MfK`;;AhoZ_1Ov{k8b<`<7XB6pmYaBHr_%NzoghuIS*$%KPBQ zo7zl+O`xVS$Ccf!tCY11FhwXcEqoQ_8H4j=d;cI`eB_%d>lVc>Pv7Y^T; zj1!nBtyS|^Y`sicPX31d^kY5Fqq0ypi%aMJniK8m{K@5y(WYW(JBr|jdgp=Ixzw5I zP0x<+_VwSNU+)_+wN>fV=6)bgVGDB|3-lgYJeUvX^N|D^aJUtEWWM~AmQg33=(+d{ zVDu$;hUBj6InLUxTk7?a@cR5%Ng}_&>(Fl!2hu(k0pG5jI)}By$(U($6hfd+{iBS& zuX5|?jl{(sJ`fd8rG>du(s;hy()nllDFnXZ-;?3)!J5ab(7gb-Vbmk5;tGst>0ESh z$LeviC-B_^+<~@XjJxGI&SS}P>wqvmV^K|~PL{#KG{qS-g_NYr5qjpL(}!V2n?LNG zr4Jr}iAnP~D6^%i;dcFvr0nfe&BMNN{b5$cs}1uD4lNn^t+xPOq8sFi zk1OPG)@ zS`|s5aJ6$42s;ZK6e$;h^q9?7ZcILO(wl0ue{#4)7;trCHRbYFggRR|{o4U+-DGgs zF>UBc-BX-tA=%zk0joxLBkp*z=hLI~t<`r(2)RT}VA_F5qWPp9eG8W+BZ!*tSFa&) z3z(Gxmud5?H!_i=0;&kF-;a`&mgXftJ)O&`P5ZHaig>VD#UqP-Q{`{8}?{oy6O{m3q5~I+sypz~9+86V5{nhCu;M>Oq<7 z+sc3OIrx!><4P9xXo@hmKE%HpUCKsZwdUE1`?qX@x01)G;Uj2_37F=nGT`8LN zum8B#(`ar;JwzAD*tSy))xI=)%2UUeSz;MKBA*%Am+QzJ=x4?qLfPu@&@7+Mq9W@{bjxoa4Z zSz6q%IygKVtLxUffp#O@9=isY_Lq>qq{l1WP}hgqhfm!#0wk{Yw#gs*GN5OSEEVx4 zWJ@rX1S}VBw{D&RlKAl7b|~?Gc%6}w+r$%Y7WJq}P=2tUv`Oc1o-KQmm$N3pN=AA69<0_dZJHK?Ida)Lf_goX7Y!X zlz+O{6#biULC_RIkV9FZ{-vNe^oj_Ktom&NNB!H}UZ?8-C?mr}vAH{r9d+uMgHz(Mr!_pL81ZFzT_KU@n(rI6e8< z_JR-1H49RzbV?yW%8Mn}i?$zH%6FE}hFf@0>Mh?NXnQkQn#C8_%_XtT@kg8`W)wMR zI)2CNAv3AdW?Ai3$J;1xpRBitty0t@nVBb0LN)$=jWMh`A2<9D2a$ipTqR6;1k$!4 zOfA#e6pwsfvM3VB;pnIrU1)%5TizJHj{|`ho|rOdmh1Ot6bc8dU;K>qjj8Z28Wc>! zugPm*;cILv2~wlA?YKXkKI@_>2ii&70hF!-b|r%potvVjC!{|==lTv^ShloWqB3_@KVQo=XrGY);v7V88v*X!cL&Ip7WhglFnrNi?RP(BbXhG|s?g4A*)-FRgo8_EGpwu7LWz3&XJD|S) z_WDYL89JAydR+fk5SsH#Z@MVc3h{V=^qtfkNOHj2`ZXPxW_ zBGsy&8jObE$UvXuF$vDbXr!P*I?*DCY*goRum)IdR+BaDSLdnkR6ueU!60`c{+yTg z`;z04f2iC(G@5I8Ydp*<7K}y|mIefG$%);*x1tVBWapgqKli7xO&p2cC+!+jN=7bP zdhMGQ;7Eoo%3Thy-Td}n(1APC!Y|8Ydi-u=Jk#K>LHfV+8F`*2Xl2x)-A|KUf8Z}C z#FQn6(a3F^kx&R7k=z<3E15AWBI746J#NUF`UCr}ybOPlLm}rBy1WV7 zPipUuZ!=9+b%N~WKdk7d!YjQVFMgeLTn#`^M0zd+Za!^Q;Zk)_ja1G4oiniji?vjmaERAKpX z75DX_qFwxaGOrba^6qWEX#gWxn?`|*m?wV}hU zCPvL|M>qD$(eR=8B)MMwMjSd7i~^>^k09|p?qV)5YFl(`eP?|{ zjg6XJeuq-$P+5&)DAHP*Z#ZL|=S-s$c5Lw4M!l;bF)RFCg#w*Q)Y{m4q>5G2`}l0H z-7Ycy4MxL=W(%>!EJoLHmpRW|;_yJIru13bOHMwe!BQ!KHyLs453BbPPHWmmWn+WC zTD|}ppB2Y%l&EbVmzQ1z{f|s*s}`1@^}wIhq8=;tb4&|O5y{i)L!UH$h-_tu_j+k# z5O0B6!N;FtY#-!B?UX=>bzn=Ov?1k!$;A5X0?_%AeC`Xja4TP$I+O`}9@X?n~gllwxN=lYv7!xaO1XZR>vu$mM1V z{Auu2_x<_mE&o@^OhgW0@M}jp>_$IWd(~VIY0Cvv?Ufi^u6LR>W%7{uvAns zCO4aa0%VjeInEr6vUE@mv%jb;`wekaqJU2{dBHsjQgd9FUib&3LIEdy{?0$Ro$$7q zoq=R}c3~ILL!cm9eifRk=bDzu8N?dOpNcYl2V1&+&}^KTv+@mpOB-o2)51uB?d&Zb_Co5{JgQfLG(85rZb;@^p8q*I z+LJTw#|^WaEzcWV>#tN3xEn3`{3~C1WLmXlZLgq>D9W$Jw{v9=c2R!Z6Ojx|;r8C< zyoT5iV^^?VpaHM2^c_#X2G2XF4;S0n0d_YOg-;Skp|<=#Fhs|m?dad7v?>ygd*w&q zHf#WI8-^orM&DSEz~gtnu0;8iA=NC- z73b3}@UqQvVEMvi^Fc<>!+)NK*` zOl>*-trH3?#(a3>{u)6)C_u+M`b7E&CMEyo$}2+6v*0j;>jGgx=?N=AwnTeXf5Uf* zv8MiA|IFeCxNJru&yA?xru!yVZJM13v4%mh$ZRnXL7x7n9u4>)3f;Sv*ym>898*)U z8;y-h9F$SrRJ#VL7R6Z$7CP`=0zh|3@clQWTy!z^$kE<>6M zF#x3w>4JOOXM>72`29f#+36?6B#=Q0>4%VN^26EpN5}Ilwj$)=(GLm?w~IoJZQ4;p z=?n64-E$7HkWvi$dUN9aICax>b=;TFeJNFLJfsVP1CF`gY=b?*~YRs@M+uSvON& z639VNA4bjti(<#p_#6n*8J#?z zL+0si6B1aTsxXZRy7q0TBFtDC5Ywmy-DK>!9w*x6G2m$3;3N%*}_-g z82*<)7UR#m0!j5`jJ91>qdGJ;MI1Y~H1SLV;Fd1A&1-B8mzUyBAx6<6j$VlA&NWdOOSRO3% zqZrnBJ6E`DhW2>5qb>Fq$87v-?+aJnaJwH)Fwv3e@onSFKfWNW&l50mZ$7Ix#o8nAi1$nLp6N5B6q&Xvylwb}gLSobYLcaau>{>G(~ zcpE{6oEksZ!%Ls4!+l-G?49CdL*;io-0MMMT;;+ zO1+G=ev4F2{#qBKdCl^M$1vRYb5}B%DC`wb_}fztImhI<=8WoSH7L&ZJ4mkp^{M(E zEoyfdeI7%6vD)T zHxDaa8t8rgPiK$`+OXm-dfKObPWIGM|0Rb&zsEl$+-&i{$3ht%Ab9}m_kQdHejbUU zFuacw<_8fL^E4mIoyGVPNnL=kYQ?In^!qwEmw1olEfeVbx#YEMDIf}CaX$a|ys z4}aB^_oQkc;zFn{iFZ}-HaC*8D7%YG%Vg>Pf;i+8ll8iG>+-U^QRCvn3APz*y}#PT zfL?`DAaU5%t#w4IyeN)yhhfB|ec||I^tqPAoG_d&QZF;t{_Bfh(Qc@%J6_%*>1-`evCDszm|*A=`CgZk9kR*v;uYYZ;bjmJ z5v3nqU3Vb>ZC(8`>GRL>lHe4P^UknD_>r`G@~r3m(ssHN3SRv9CLL3Q@#~ck%iVMt z)L_MGRa0bZUbPGzzz#vAlo}us4Z?RF%XAe6lqyr`v#J)9#|{=vSIPh?C`9s6mi;Py zq|g5@l78;pOXwm+3MLVIgMd&o9-D+A79xlN-xwTTfiM*24eNQX-aPo!4qU1iM~t6| zIXU)E)+>8e0Bm=j72Dl`@x}p~=&YyN+)PJcN-^aD=G|Aeyl9K@(a&g-BPG09hhj79 z<>h_`BK?J;DypxT`=#0U#gS~H2%WUUY1lgcqdq71x2uV_X9tL=01uOSy?74TYdvn3 z)ETY3Sq-=wl*aCoWD!3Tm0&5F3rz9i;=@QxN)w6foFEdFAXIK!(_Ion^{7Xst~dCiBp|sV(*PC5$`>MV4}R;>Sb9SE?rRQmJ%#k(pWo zNcaZyKpmwa?|0;+{xSOb4@57CH@;fi_uB z{2YY8SN;=+sS}8VLC6f@~=mZAt{p_$>a?Bl*(9JA-VkljcPAVsN zWMDHZii$%#mix;|1)N!#iKt9r*N#-AqGzo~-Boa#tOoB54`vRBB;Xs(lV(XYofDo>y{y*NLftKUHnSN%kdA5A|M2?Ltv=tV~Nuj%++&n%|Ei{J8 z2~1XM{~3lk=;(yHU|DKT#k$iIRgNy%(3olD7!#1BQhP6FMMfRRd?05}CHHEHe{u2O z&4{?Xg`yA0Jo*2Fhtk`sk6YNojxq>x{BU^rwd+FigX1rKh+gE-YIn+$DqkGf?{iJ) zg#YXK!-j8jgT9jR?_+3qPi=Tk+8iZ-DRg)xaV~ACFZM8v!hVQF zzDb=eO_tZ5l#;F4-yq`rvyoJpt~npX+4A;dCX{o@n9654y#jD7>Rf%5^BaHuQp62B z#$F>Q7%D!lj2*N~^qF_!4BfaNFDn|T1b)bqYqF4S*J`TFbpBd#i5fgVFb<|P$As}Z zc(+6|BujF}r)QA+SYzOI@CEb<=95&-J6Ifv zFDRFNArp`B;U^GZW88Pm9F>7g0z3o;_{@Ce7ao!)Tui^b(q``^EqFyH1tDE6U-!oFqy@t{Q?Ak6}vH z>!T&G>2>qHq0Q&2r3?R)% zCtNItiIX8DKitR88=vceB32MMz+?)>GaFCGCyK|!(>+}S44KHB1q2DOAFlD~2EW0t zlVf$tkLF7-qi2-!-erdXlGoN~bmPjd@~q-S<&lx)_IE(%C0J+}`oE*n?+YS~?DUJM zJ#x{9tP>v$J1_mDTsG=|L&Xi8sEZDv}o--JxoPzv%7g-Tx2@rC^`OFf_ut6q@a{^GhU; zS8dco7VR38rEMI;4c)!UKLQ%JvAnDT%){#SQ`|4xNJZqs`RL!zAj$j5=DoiSe-H+y)>4`%E3D9kk@H1)MOW3;mf0!LBQXsigy z@G|p6Cx&f8=Adof?ii_g_rdDv@g^S;l-5gL=3BIop5KrNn7?a;{kWe_JQz5x>*36` zU`iI&Iu-t6C84+;P>(4t*3O%k8G{R2Q9z0yEqQUzeSiZDLJ|{fRh-*(=6r9+888xN zh&Q+ZgSX8Q@Ni~lXp?f4z40U}QfQAfQ|I^lsJgDFysXWlT>Yj_b z=kya@^HktE$_J>wwKPpKeGtsfFB zZBE8>A3^dPv@DMqea_t?mp;@}$LyE!?zFyYPC|fK;FSC8e%$?j$xV=V7rd4W@pYoZQ#HL!MD+ zkoSJdzmBDwR7cFpo74M(>PF0#aQ>#)z9`jOPLLYc0_mHx^1B~%zTwiZgfB}m2hVQp z>qjZW%?t=)^irW5L0A6@N`IrOH;T5-%Z}urt@?hZD;#@NPg$)RDetlW^>@t1SWwoL-mfiaemicrr2;QtJlYh(PaJ#pKj)}(L|AKMcI{%Pe zIGFGu>T6)`+mdNLaxFLSrD_?>vAouo!hg&{<#!Srosr@=BUMmrhxgEEoPNluKjI~a zchiu3kyZv*v_82?7pq8bGLhh?f3c( zMB_;y@A4v;66r)UH$S4UCO-&|!8;_hHuG&ruWb@ue!;D11jRAefk!K+aO2x!L z7AH+bhC^bY^A-TCqqeAK&NlsXB<~FmSlr2$zZwsPIA4BR~K@ zZ!K5yaJdgy0F?b>F5IK{m;PpYFPLdXpD8#Jrt!NKV!yY)1c(5TRMC$9I=K2Z%{~G0 z@IHDd$h8kB6rr6`Z4AJD1SRNbK3Ro2{{HFZ-kchdb67?LH!@0v*Eb-FC|3iNQWxr0 zcPmy8_=po@PgF^8d48Z;OofK2KhH=vJ-xtQ=l!$jCe3028g>J!rXw@id`82n2D3u2 z&9xS-*Wx7VX}CTCS#$6 zt}frsauNx=2q_(mdZP7aw4W*gJ3qRycBDRH){Ny_uL{{UWmk)WnL-3@4nGZG(hL|X z%IUDLaPP}r@#&-JxFVywQyJlT>?_la$rd6C{tF8t<_@81QB5yDOGA9>g}tI%yVkLM zU^VXi;wAEEPaGM1DM)k|ne~dVcSR!U1~_D4&TT&vePoiSuuvM24c^Yia1lto#aoek zAp9$5O>`2)2CQC`+gIQJ#Iz!Wra08P+PeIt67`tXiqMWtR}eIL zBLJGbH?wo&beWG#`Qd@QwNOop=MJMR-t4oDE>7!_u}KlM z6l&)r-_xy;+nc|pL;pBp`79Xgg~Yih!MF51b3QV>kQ@T&n6Gm);GF&jBGE83wu9P3|?c?gg2SXVDa#I$cQ-<*D;uR#o}t@r3pS!=n4K1Hl{p5WMk2G=eo# zzZb~dA%6~dki3!2Z+o#T_WVxtBqH|E6lt6gtN`7f;6TQcqsZZeO#=v8caykA7x20K zByqK`$W^?@39T@YE6~{`9C|W8ZJBm?FY~^e=fGTR!PzZ7@!srXM)$)Ub)@gjh>vEQ z9fBp7)nS5(I*T8c3pKrB3mauzct;}UI*>{{*(*)WF{TKe8jFV6{RtbJ0TV=}m^I35K|irHLDTcqpB>b7sJtp(dInhVU#_;U6A`YaX)0)>^ix2`jR)0*o#1e`trL@?=|4t{NNl5=D90#PPD- z`=Pco<;vw9RShUz!wSTm%a(HTusdYc zvGWCR+k_#*EpRR82P%GfjbWLuVS>KBFbZtm*h?c^GF_v7WT?;iqhM5dr|}`ab}xLO z6PH{)PB>P}?kG}PHXKjM$va}BZQpAJJ-qid$jejt`ywc-L32McoIUjgy7Yq6z!mA$ zn9~dTlUJj=61($Q)GW(QM}o=K4U=A~;7ly~U>aYbaJxnA*H@`<)qwpoczH7Xm&i)M z!HOq*J0NVE2H_jz|D^}qgFDjC3zgUN=ZOzSH%C88C3TcQAUZE%FdpHSyH(<*u%oA~ z+~}G!hrPx=rT4VH`USw-1hqsZ*EmA5loCAr75t^ap!hS9f*7h+kk|YuWc#G$NlGx4 z?(o?NYKe-aLrIQb9i$goYaJI=jq+{K1B2He^~=an+L8Pz)nM+}qXXo#p$HPJ;-kde z&{I9Y3l$mA47A`FECvAvk09YnvWGJB?F+8wX)7UW*ra2e8%&3z?6Y zP0R0V`xi9yTWx@dNy0bd#Nfu-0UNd%Tak=rbT-yIU&n&jrkPn*@H$A?gf6G&?~D$r z+sk5tZc0D6C#FA~Qf&s^3{H_*}-XPN{-AiN))+xT?cQ%$RbC?JZ1rB~F|R(7kP0h!Z6lR(Z<7 zWNYetgVf<_RfSm;>VI*Kt(NsVKRF{KP^9#KB4*g*2^4NE5L6+3 z*|MeJ*+u^J;vi{E=h9H(mm}6xzj*}vXG}{2A&TC?guIn-$9PkD|jHsNr&T9%en1JzIbN0Z~~+`exnL zYKirg{f(-VJ(ed?hk>pAJt1ARZSH{?|Imn^ zo^AP*tmLvo7V*CUEdwP}q8M*c>P=7ueAbZhqGw=l zSqj)uA*J@=7y0%*xkfN`DxOmYs{mBdtnkm_L#ieg9%qCK6CYH#R|@dh=^~?q2#Sw@6v5cA1@p?85_Mfg|pnvv^hi_Eg#^Lm5_n) z_^1yXOyGNRl^KR$~Fg{CF@Uk&P&`O3Tllm}p2JN_Qfja9JH&#Yldm(TqC4mgwt0oETNv+|Bk>a&Uu32im| zR5hkd;3go(HFw&*$i4E~Ee1fO-h0j~QXCixJavC7{c$aE{>i>4DKBiuGjPJ=u zW$`ihF_RXU_&LiMpf#D5oH?pgo|7%D(RQnsuQP4FNPO}Z9jL+JRS1l+TLc;RTu_*z zD9_S!#6G%?PtPe4*n)?0U&*AJt+XHN1+;IUPAck_pLLB|>IGS?~_E zd5m*?kz~9{A`^ifq75n6Yq?YAZ;V+QeN;ctxq$IYQf!FW$ILePu!A?{3TKc#J%HQ7Zv0Dq6-B~m8 ze}Zj32x0Q770`Y0uyJ*roF7%zYFOYrCPc3u%#euT3~d3JdKS5*N5DRrztHmQSWi5E zUmN79I%|T&=Ho?N{OjR`C#7Ic*5vbN< zc?jBXk?-gO?e0yFroTJZ0NT&Pk|y`OcZ9z_qBgm4(vu?_{JCxyP#5UTpjS9=R9uR6Y{9vi`0TTEdaeH|Sz&HW`^~C}DTVGAC7$`q8ky zRi5_)fCW26?ba1wadfdwT6M3~vB1Dec9(ZiFgJA();SX)^l=%bA%k>KPPZU#ceoau z3jc(Fz69@cwB?@pW7dFb-XG6Ew@t_m+^r+TuIN(_H#-rEfHRPDuJGcA*Z_Ld?m#?9 zkDBQ1X{X^qd*?m*a1|WABjezv(=t^3I|P89NOYJV6(K92Xz9$6eOiN0)0Os)vIR?u z57$3DUU$2t!CL(@Od%1mYnW_PQ)}BDz?8+NL2gbF)0}$Ar%RaFa__dPALzJQCuw315mylF6)()QtYK|%jBZDveFuzz2xh)`W8O9x_s8>`@VKRmHRBO(rAg zhPmu@$GF}0?qyhR=;Ve>cjbA|H2q|HL&K+qMV97b1K>T~s%Z5Xp8c+GnhHkgxJ5X^aL4VO|o$SzQOU_qTrfR>o?Y zCG>WV*+F$M27-HjE+#ZUm9PUC`un&&?1E4EGww&ek`3V1mvHBgQ4#JbL|A=c$`G9T zUt#qvsx`_qf?gzvh=8Ub^{g!Bxpli*_fT^qb1|^Gd$ZmuSvvvl*=oqXc;)AL25-_{ zYpoP*$cLFA_eVvpGMoa);=&`avWV$7c|OpwU%j6_krkZdGDR(NEe4V=zOE}U%T%9@ zVx`E7pj-tw;f)*BhtJ~KgR5q3hq(<4jEdF63m8eNp1a5`rmt)4$Lzh40!xtZMPC1W z82C!eq-QhiO)(lIg|!wcN_pUo(rLna?ug1UDTdtZa-kM$ZFDU1f=)Q1zCGnsik(v8 z=H0)jy!!d9C;L$up>D`r)h)J29{)Q){JXKx^<$Z|hsD)Z*4-U+J{M1YNHj(1VX1OA zzBL~m2eNAC+(gu^eJ5oz|+(#CWn4{an zRHPAVK0pPW>swCzhO7sTv{(sI=WW~6`dP^_Ll_Zo=#Nx6SEyvyk1%Wczw0ME2zPa*A}Y~ zZ8VQx2W-Ld{ajOunjDPMm@HK4LzkBStyqJa(djQcjJ1U;kQ1tjsPB_-uyemzvNVuq zPX1nJr>5c5;(E)66x?#hvAeGL0ZAu023@p&-QDwO@NEuR1l1q$RZ2jp%jaFjDyUAz zyM>8R>G1dKo5WcO{>=r^bSFS*7CkEsbgS~Tn^8Y%B5@{#pSs;qPIWr&KTr1OgK8sB zvBsSisCUnbK2!|AqY%;+JYcnF`6*Lt(mC*bc|;hZS-dFpjFrd3=T7-yVA0#)`#p$_ zB#Ax;X%VrKIQOe=AINsln4=A|*l?dw;SGZ&tuB(tyARZy4oDK^XGMrN5is`p5)H7S z5nXjSmZS9VSGBGHy31Z(#CFg(h90ztQ4bxiDMwzGXkw>dtQ=g4ySv`WHeLD~7o%VXy3Sw6=j+TtJ@%)YA;J zKZpH@U{jhS1I*DpyDPJ%;hx&&>LaZ90R=V;$S5VOTgc_eu{~wfJbZ&1)=rx>^RGw) zU$`X=GHfw>s&_{mSc8j8yZ-S$u`blPXsAcD9!(cB1(w5dZ4~vPpCZm-Jv@9)k28%r zp*S&#&D%lgYdxgc*r9@etY^f)a?%0-_*_LKOE_jor<&lB!$2B}Vj~f~mVmW_`gRS{ zH%6O~%>ETig`8h*_yiudj_8?ai7I+7V>(-~xmO&0i)+=&qnx#EvT zWmPi9li;W*-FpSx(^_I>Y&X3 zD0#>W+f8D*M-k*N-}^@Y@WR~&3$Ca{4Wx6Acz3b*>cx9tC(#v1jPeLpSp4)=w#Gsr z#r#s&sTy;)#Mq0teL3bB)vt(z$HO#(H3yB*O>$Zq*nM~gf1L{deCclJvs;b&F^pj?XP|Aeedpl?s@KZ zcYPs{pX-?Rot!PZ{M1w)iwE03WyMx^WOat~@WAi~R4Mg4U08zHKN)_;~|j{U5;C07AvVL`5IO-otYcg9dDm;#~w-CE0Gxhq%*~y5BF&>`Ta&|l&9Jg~qc7gD^ zl{E<86%$tXwI#h_@giYRd{`*<>+!2dc#}@$k(M^xOwkFzg+(M7+h-P-OtnvPNK{;b}qaLAT;1=tTn(Lu{&mhtd1 z3MaZ;eypbc@4-R^Rc*`$AeLbzkIFaZaZ;zGwpPAmdu$i!mFRivu@lUjV9M@Y4#}$V z6YVmQxwlx~`~9{d)GJq^Yvpxup(e|j9rY}cFVWg}QV{WIf0P2(S_l$x`EIc7eiA8n zYmK4Rs0lE5*!ZFSl}yOH+k1WVYD@syb_@crPMt47ryOj4t{*)$b-*8TrprN+1%B7Y%xwLQZLI;xJD`bJ- zqE@}~eD2j*jj#@yhex_-wO5^`ideNSw>WgVj~+TXUXx#&WlgcP3`@Gf*|0!-(C!%p zO*xBeZ~!S#JCIX&I33ESFC!)YrlMqt$!!TX#`c7By6@X(HWbfZQ4G%DisDBKStJb$2mRfw`bGZec#1xQ;C380kaC{ z?B9o7m=CmI3=}OiA^K3!X*X{{Abd7_|M7Sok&^1`i|o(C`Eh(Bm>~Tf7g8W|sTO>D ziRn5f#Z5s~uiL)T`UO5Eg)p1{y34Z+r6{bn(_~zC$IWQM6+=#g z@HxWR=wI(6%fmPL6nV_3m3pvsUJk;Yek-QmQ`~f4a~fxu7_97b_;?Au0KyiekDP$^ z1hQ6{F-^+J^h_Je1G}WL%~a(w!buM~wm6f&^4vDkbJStyI;`&#NH}dw`~8H^Z1Z5# zvIuBn)^B7r;b&U;r_Qg1uc~IutDT!y$phs^Vt{Z%t)x{Kw*?YMoq1O+$Iv!u!4t4~ zAk6hgV-I>w4pY)BqERQv#|SrPOMOO6e12nsg(Oh6KRUUr#1T!VcnJ%PK^e3}5ROF8 z(1w~O7Kk*cw}Oy%{=oqnoB!t^yx7T)=S)Hy0}$NZEm1=i`j@2rtYHPqI!B-t7{T~ zf$1C_#nBSDHWXFTa%RH^3Z-$%>QgLh#x|f{52I32s3j_J0}ol(mDm+kDwByXWL!?p z6!Ncp-fVkw8D^=?jEPG2HT&%)^)u_cZ}ozLY>YqZ>Kaf({lmexQ$g1dRiXAla_wO< z|(u0C7|oH_ny2BHtEEI9VY@vsT_c9yNLYDO<_(x1ufxQQ$wfeDrBk zoT@IHc;xN#SbmIPQQ-)-2OJZq5t!1swR`C0p{Vefo=)Jg6_0Kz(=Z(%ZFgJd&?Qrwz)7!Yvz|#`bUDH*PmHyI?i^7QU_h@kzFvLCIPsZxc zodZ(+YczFtJ`i>K%FUCN?4IXGbD9&h=E4anhoQEzj)yPfrEY_M3Zb1bnpdg-25|^# zOR>zfw%pU%&#nC_VfM8cpwOE?cv0T0V?u}JP6>U$ai#{Jo=-IN9`UrxP^1^>B4q-7 zh=UTo#69&nzyI_?Pc=np5PDob-FM;M+WVJ&e)Ar{#>31U%l8@DrIVto9u%EFz>;8!q^$}BQJIMZ=s(KH0THV*NlfP zem7q{vxfxfymQsisEO>f*!dOUg^$bzx@pAM5L} zCCAk$=d&Dk3x4&e9lo%N${^onI@HLURGV&~rBvQs{Vs&rQh|?P#^2ie&+kJN{7XWP zz7}tE{L5A+1|A|Pg}a!Lwx|p`?)L)1wz$ODiLY(M63=TA6!UnYZL@z0z}kqJTy2N)=J3FEe{o&I)F3} zOB)=sZirVn#U@35_c|)waF+hyu@y`VwEW6Z+W@S^1U3TN0MvoKl!6ENWS_m+ zaRDD?@Xn3)IOaqP_a~4OcnAR^!HzW=fILLKfJqC?(w|F$yIfcwMs9B}RF+eLnGLkY zh;|nmjDOtD!!ZF(#`Dj0-7vKJaWljwJtTxoiM8oLHmQ_j4HL56%*yjQB&Cc$ibOR| z(%DV$k2i08mOM`)8`Z5Z*0vPkY-w1m&AZVgPVtpL-e(}X{i9BOKyVsB7Pj)+;CXY! zDvw1>26H;3oK9Krb+40YC8z!5qSXXNqs)}9glb#lkiuE#5T|G z%#U2L=D|Cefp8c#t(f^u&)o1^Icd!m1{0_&@3bi@1Nq)G(dVcrO;9WTq80I?AU53` z?gcvhhJ!ojN^@~VmWQJGR|e(aUSSNg!C=9QCmR>hcWlqx?MJWQViOk0Fac z-gAf+Q0b61bozgro2CT{P}l7nRTfvWKv{2Mk8}kQr9GrTL#txys@RwMV-9Snyj^~O zbp`WM|4{3m_Us!|__Nn1@Tw=N!41_A#YP@0z1H-%t!wj-*KQbZ$-a6yvOWmr&{x4| zjTdof+rySNEL1REuy%h|QdBO?%F1f$WUR;T_N<;6xw1v}%0a}>D!kf;E+aHSU47Zv zUMoUBpx5}#NY|bX9oJ3fF@;4Xw%?203Ycy_R3oK68?X;<&d-hG;bzRRVIN*vsd9QA z;`W(1!p#al+x%@CSyEX^Sjk!V+9^(uT=BuWw8z_AYmxaE?vL1d_W*r#?8SoTOJ$K% z2$nPfIss8~g*0-;C+qryO|fd~cHo7H_cT*#mP4}k5AAk4$+q$4>Z?B|;(dv|@*KCS zvB7JTFqaelSCQ{^ql+0ZY4fKlh7qz_qP#|tUR?^G7t0mM>BqAPY*~k@CdTZqthUS> z(e3gJgUdM{9)WFVf1KGmzJXPxtk=2seWLGk@>Of0C<{9$9|b+us`2jfcMvRFG7wA%D8fCC4gI3-iq{f?u^rn>Lr!n1l{enc`LiIdn)C@&W2 z4@x5)d45Foie}pYMFXXE8$<|!6|f?jN!xyj5$n&&L+Knu*zFlM0lnD|PRk!ps+rIU zP2ajQzO%PWDCi=oH?jY?m4|M@!QCS^t4$0SQhh zB)F_qINHHtLMY5?HSbUIITnUPnO+M?lbImK_@K2A$(gm)61NoV9M?T1tJ}^KO6ZuX zhk8V{qeBmWZRx;@`ZI~{1B!UMBNe4YQw|`t+#CBOt6y=@F={ZvVim{7MR_H|3q~ z#OIcWz8fo2#^zAa+B{pK2$F<=SfG6*U@|Y^*I$x;Y!zhPm7Yg6PIKJH4d0lhH^gK5 z$Cs%s^r3z>f{zRRnKMT!zt5bLs@B)`w4bLuKf>6ehZ+8I_OspqpaP(`XDrk5L4jo8 zufePy9jib*UgM_stt}jpz6sX^u`_}_p@X5*4N_k8e_A5;zsMEt3cOA+-PcFn zD6SOG;qF@2e!*eH?UhUb_if_fD)7w=Npmm?3Y>z-BO0_ACtBoB9z2si@<-@#E80e1k5bO^v@^B40%tGtxS zzHSZ>CuxlsmV`t!0WFn{9zfLxo;Ch@mGs5-_#2=aZ-b`0M;fuM^Dkj86y(t4BA`kk zRwM)LCc`oPwf`u{jyPkBlH3#Xog&!?@!>gcIurd@!Lng4xKxQ76zGzYDz3s>>PW+0 zD=C)^Yd2pX+#O+{hCuOtxAOvjC56*pM16cfMK0OH8+Frm%5cV z*gucOGXcg15wkvwC{c-Hx$3@?SDz@*}AX0PePprDf&fNSs{(ZK$u&pR6CWd z-)>a&<^=tizxd}JsqVAM&;T`5W*Rh3q*N3I?!izk9?8K6h4c)V?zm{EK87DpHC)DZqx zT#y~$Q&g<8vKXsFM54gUprRY!0CcBIR$WWUH{V=X-Nsf1raQcSV}HCi@w{&+t&3Wg zK^G@ch3j0hjwq0euWOXX$M%r~&=@CqzGlso`9rD5;gjFvRyEz+&2 z$TF5JXcV*R-l^E6)Q}=XSUUd64UnBZWUKeiSvIC+#o!;v!RXryF$&kQy&Do2e{VW| zpDba!OBO#Z2U2GD0b7MfC8nqz&Mlp`@}aGyZ~}z@&+4709EWJkn@<^)2}N`JpIi^A z9!0p~IO8fmt?fA1P&7G46R&(@FdTb1SIsv|hnKdostD;?9SMGTqUdmAtdp+XI@O`` zGb;)Lj2ur1FoXzGyQ!3c={zjF9&!Hht1z!9Y03T2qVVPe!?cI%s86tTv&$jJmp%*W z(Jmi-t!5}sD`=r)IFYb;-n8y3Ymd@{w1)HmuWoeCqWN+F`rY+&jHH*UVg8?SM8|cx zaq>xk4$0wn2#e3i z=75x7s0Dzr{HLOZ825h69*I2<+_}kaGQsU+%X=zWiSCa#-VslYNeGrb6f7m0x1?TM zN)c)=U!^d(%GUQ!rE(S99k( zBxEU25WUIcnosh@t7IgPiN!c@{R9yKYc!eEB5E5CcJ=9GJ*a5|*XN(<#iH-}$u5~c zBQN$ISzECv{FgjjHlWv#p4%(u+p~z3ZVhdf4)bXM%t9odG~AbOgp1X>I?RRO?23G? zh(lxU*f&}n0sqT^B^H`X2_b}CS_u-s{U4|Sf04$T*k_c>jd5dV_|$n02~vDjc>e65 zYJztJGiqlz>Z%nz{5^b+u|Wco$!$^jPSf(`x-F@en|0#@#e%trw`D?21uU9(t5&c@ zW2G`{D#TAOSQCA6WPigMLFPMad^)BjGe@pprg;vK>Pz%dfdBSSfQu^vl{v(}=3%*E zEq1>HMLs#)XU%GLbM}iZ{s(!ezz>VhClU(%)fjZ$w_2pJj@EpI*S+~Ln>6N zd~Qr$8zCDyrlDPIdr*~9l*z$zJ85NlBFq1n=hd`WG|c%G?k#)R!)d2;4o5zIUnZRr z(K@ch_xYWmL*PZ+&F=ZA9uv7(ZObPcN5uG3R;Qy1D~{g5q9ahWr!(GoY>J@z#pPM$ z{n)r)UI0tbt~SR+hM2;lmy>JSwssYqw+-i%{y-pp=no27aM=UcGDRO9?@*ql`Zp8P zh_TZa*Kb$J7~4;D4dAX=oqx<`JuQ^VJ$YlWtsEiq#=t@-d}-jSy>{dI$U@X5QNTpo0S_@TC0rgT5IvJb+>908(h% zv)#@OO=p7a4#@;adMvYe&<&=xQ!v{Nv5zfd6a&B`$yxb>Yy&&9sq@u^ZbQQEiZiNy zJ3)Dak3^(8#Zr~0CMk8{hA4HDdEPA2PbLMBTgn%2f2=cCR{J(ZL;gl<&96Ty8xn2F zoxO7LJYVoYoi6HbTPx4|gluiJ2S;JDXf8cQ;2Jx@?!WG4X$o{8+lGMBiJ%IgyDp`u zzU$4;9A*8*t$G30I9JUMol5EDJlul;KlU!q0@v!5`g zldgM~c#3i^-#_y#wL>079SD=Z(S!QqUH{15=Xj6Jg;V>L@kWr|^+mO=z0Sl34?b#B z8C(5l-%QQ%iV0cHqmluyv=`M^jts3B$ho+49-en$Ix5EGc?85JoiROCJ>k)`5kXv3 znHDmCv1YuhGtwS(pXeW`&&{ZI{$N$xrHSP!Ukju`AKyBvF2$GfC^5#R*ty_Y24EZO zKThDaWgW}GthzpL{ka|W-$iHqchS6wqCd7u&OolH9cGG_M2`r=6P4T!ZmgpxJ52s` zUCqB9eS)x0RZ|lfFh@}8$kj_-LLFDP0u5>S@m%{aNW;iqsxEYHEjSw?S84`)y^(PAJ z0rkuzTb>n-ZO<91UTcmfSaMXQMri#nY{$v@K{_fK1!Oa>-Oby(%S(mjAmn$wK@6sS z@E@i%=H}UMZx8ZMxXYV;0oww$*e7L=L3N6+_-`V%CdlwSZ+5QGl$XZ1;Z`F6-LJ&P z295Ym4?`CS>V{!1ChIpDxTP|H9pMM^M`QdMk8;v|@{V1OKb03w94?2r-aq+b@1kOLyCDNEq zZ*eg~ll;t^vgZtc)4)pi!qDNsxcFeA+9&4A^Lkc8 zC4s25#{OK;fAeIpGI*=eytKG@qwEu=CqYoZ+Cm;3Phuyj7}6<(!!Eu1*&~`JquA@? zsg|C(ouwvI=@VnOv3VT2m2tvvim!*hSIn7@Q1>JxbOS2$_`hJ+i8Nc|0O{>V8N54h zdqZ;}Y76Bpr4~PlxZqDZP^+E!RS17qoWDArDP?c4(W>~;)r~_UTalLjfSV@PGBZ0= z@)?jjH`?ulW_vZbyQzvyZ;;6zN*6^7UbKgL1um8|h~DbQsP(bCzO;L+LnIYqIC3SE znRRt&H^;i)pDA-Ug~2-|=Km51^Ee z;djU+N5BT(m_4@#E*1oqIytCs1w3Js^ybte}J5f6#pOA-RK>K=|-fnRu{L zdKEIfx(XP4xI!CfnU!cf7HGpL!)Y9n5vX>v*06dPv;B2>aH-m2;A7=Yz`+Y6s}z=p z%6l&yyYm79QkK_)OY4h^)&4yz+Wnk(+wCKJc?)H|`um9o7nD~<9Rd=e+YQ-c4A{@6 zBSc}f&2g;@3bwL1?9WD~3Ee;a5tN!N5@;|1+t1$Z?dZnf37&eWeup1#4mJ*a?q`*M z0%IMqx$p$IeqYvV9LaX5xiSlt9*kkWWc-p8Rf$i++>GbnvR(s0nWLEcqbym62Cj-? zoPV3&CL1rs;20j5ryE3=u6r2I+uEwaoC<4yzw8V!V$>s2Jz324A{+hI+}_^EdK)Zy zi7ARr|GSfghmgC~yx{GryIa;)$jMGn=hd(tz^_x|5BPm-{FLJk6EM*T9L=za4Ngb- z2b2&MH@!4`V=HWxs= za4fH$q#kpTd)At-v&Z;}#=oL|i^gxx%A~=ssWR_vTGkVX)*bc@`M}AR5uIX^hA6ctsjkzBFtVs)I-?!BH7& zE%!FNs8kYxXSIc~iH8qOdt9#k{hsdcqWwkK& z^l6e{1TB$3*gbztm!1G+nGj)uDod-HyG~1e$W2FE=l$XB&whzpR}AtLB;)_jlBHzS zCJ!=rW%zK}KXm7w$0zUv#L6olW#f2Q29}G^$mM=YmJF(ut*`*OVvksrT#pfvS%`sSAQDxbZ3{CNFI zL6f9F%%tX%us2_p``M|8RP1+@Q{Z1s+OAgu(d0;|U0Xo@K{K-58?6_9o0^&`!SR2q zD5Z=7*Gm-c)&=E*Kc&g<@=y|Kr4xm)JYuS6GXt5i8oXQ8OF<3E`fQp}EK@p@#%${^ zkRr4r;3@8J|HA#KBg+=+qbVlmKRycLE%7m!#6MoDYoN~?7gDygi5;U4Zh#K127D)j zj`Q!mc~y8VW)|D*nAA1TkgMX(2xsH0KJn*-sDfs)LN*Ao^xKU8#u?D6JdNfjy~SE0 zYtdhCBb25bl%e@+J`>qksz840IIbrnNX=_>n8t~xT(DsH2^sj-iypR4~&=ix+57e zAl~(wQ9t!e7UX=>{TS;9V|J53M^>nlg(LhKJj+-eH7I?bWd=Cw^`WB%nA1L3QcVIB zf(Bc*)6a?0RY%fGKbW7T6`EX%ow7tyJUhqeUQ?DKa$|2V zrrK&5J-2FX+vXMQCNZ|W`@bzdHurxq@p2`X=KA7hBa#^u7AL zA)2^5+fnn8gI4En0DA5f2^UR!iQoeU^M`~2l-%l!M&@In$Qp&EXj#ScodV|)_So8Y z{jOf9(cla6uI2<%x;#WM_bH8eF71FvCs!U}jEUtwQ1H(=MO8 zS`qK{6Vk2PBt%YnKNfZXP~&AqJi>=$g%H7$qXa^s3j+~3P4|w~VfHJJZt6v4AK5gz z2ktJ_FNucQh4{=X*N4TkqDXBeCI(~ZgI0gojv^0(Z##x&makiJFaA-dHIGN!FraIF z9g50pT)0W>y-PU6-&K(*zo`PwP}xJ^Q!QYCEIuobw1j=zb3fM(!?TDMsxsckF*zST zL2|e6GKC%&$6xX0TPVtw+W>dRL9ZsXvzcI-!-#stwJh(4WWOlG&c7X0f3<(z+M&-& z7Y&VaoLA=~dvv{ql@xpw8)8Nt7Zkh%v%ZGw7^GjkvV)Tvy0Im9UD}f?ht3`_q*9!#KSJu`1l8yxS{mn zk%leZu*@(S>96I|+xMS0yYRx^sf=D|Taz~Z?XXItsmdMmsRGI2wW+kamKlZ+YQGs- zHu)0u>F&MxyR~5V7J@DB#+EsF8wR*O`TP&K3hLKc%#pFiDvY1XXy4`sZOR}NYS58! zLyG1K_`{lad@B0<+?FAy)XR`3dm_V>h=qFVIJk_47UKP?>jF(QZiag%s8)9(<|3qh<~BZ&O1ak&Rnj>??Da zUAM@){S6U|dr5hbm-wYYeC?FhEIMu77xvbwoHFq@QLQRIGfyp2EnR!J+_2Aznv$-k zUH--$Vz!lS+0W{?dPv>(ZJ6#P|1&!E$$v&;{*FlM9q2x!U@NaN1Q6nX-#LE}x8c{Q z&kAPg5qT)@7Vh<#AXWx{YWn2%5YaH|arNQVN5W6772`-=7a!>%uEnLNt?M|dGy|V5 znXcA)+{bGH{<3MqVO`{l$wKS)_KW>3Kh2M@nnL{I^773OmrKlZ8`UZwi((#?v6Jq9 zrP;sNQJ|i_;k+pfeHZfSU^XZ295Yi_I#zL|x?4Bzkm_Ar&lQ4$WGz(Tr9Q z1=IjeRQUSio#mgD2L~!j0&dR^Z)!9%_N0|$as*JVu6TRRVwb+?7S@mrc9}$lp#vAx z?L|AuDhBacEm{4e05Cr<)PGzLzg1mi-;r5NMdiz#S;yY{nsTG+TN0P}gGrl(q=3=R7q7pjB- diff --git a/presentation/src/main/res/layout/fragment_rhythm.xml b/presentation/src/main/res/layout/fragment_rhythm.xml index 1790b1d..8052fff 100644 --- a/presentation/src/main/res/layout/fragment_rhythm.xml +++ b/presentation/src/main/res/layout/fragment_rhythm.xml @@ -40,27 +40,28 @@ - + app:layout_constraintTop_toTopOf="parent" + app:lottie_autoPlay="true" + app:lottie_loop="true" + app:lottie_rawRes="@raw/stempo_rhythm_purple" /> Date: Wed, 31 Jul 2024 04:23:29 +0900 Subject: [PATCH 06/15] =?UTF-8?q?[FEAT/#28]=20=EB=8B=A8=EA=B3=84=EB=B3=84?= =?UTF-8?q?=20=EC=83=89=EC=83=81=20=EB=A6=AC=EC=86=8C=EC=8A=A4=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/rhythm/RhythmFragment.kt | 43 +++++++++++++------ .../src/main/res/drawable/ic_play.xml | 9 ++++ .../src/main/res/drawable/ic_stop.xml | 12 ++++++ .../main/res/drawable/img_rhythm_bg_green.xml | 21 +++++++++ ...hm_purple.xml => img_rhythm_bg_purple.xml} | 3 -- .../main/res/drawable/img_rhythm_bg_sky.xml | 21 +++++++++ ...shape_white_fill_green50_line_17_rect.xml} | 1 + ...hape_white_fill_purple50_line_17_rect.xml} | 1 + ...> shape_white_fill_sky50_line_17_rect.xml} | 1 + .../src/main/res/layout/fragment_record.xml | 2 +- .../src/main/res/layout/fragment_rhythm.xml | 35 ++++++++++++--- 11 files changed, 126 insertions(+), 23 deletions(-) create mode 100644 presentation/src/main/res/drawable/ic_play.xml create mode 100644 presentation/src/main/res/drawable/ic_stop.xml create mode 100644 presentation/src/main/res/drawable/img_rhythm_bg_green.xml rename presentation/src/main/res/drawable/{img_rhythm_purple.xml => img_rhythm_bg_purple.xml} (76%) create mode 100644 presentation/src/main/res/drawable/img_rhythm_bg_sky.xml rename presentation/src/main/res/drawable/{shape_green50_line_17_rect.xml => shape_white_fill_green50_line_17_rect.xml} (84%) rename presentation/src/main/res/drawable/{shape_purple50_line_17_rect.xml => shape_white_fill_purple50_line_17_rect.xml} (84%) rename presentation/src/main/res/drawable/{shape_sky50_line_17_rect.xml => shape_white_fill_sky50_line_17_rect.xml} (84%) diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt index 229ad27..d753c9f 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt @@ -3,13 +3,13 @@ package com.kkkk.presentation.main.rhythm import android.media.MediaPlayer import android.os.Bundle import android.view.View -import androidx.core.content.ContextCompat import androidx.core.view.isVisible import androidx.fragment.app.activityViewModels import androidx.lifecycle.flowWithLifecycle import androidx.lifecycle.lifecycleScope import com.kkkk.core.base.BaseFragment import com.kkkk.core.extension.colorOf +import com.kkkk.core.extension.drawableOf import com.kkkk.core.extension.setOnSingleClickListener import com.kkkk.core.extension.setStatusBarColor import com.kkkk.core.extension.stringOf @@ -77,6 +77,7 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy with(binding) { btnRhythmPlay.isVisible = !start btnRhythmStop.isVisible = start + lottieRhythmBg.isVisible = start } } @@ -93,24 +94,32 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy } private fun setUiWithCurrentLevel() { - binding.tvRhythmLevel.text = - getString(R.string.rhythm_tv_level, viewModel.rhythmLevel.value) - val (textColor, background) = when (viewModel.rhythmLevel.value.rem(3)) { - 1 -> Pair(R.color.purple_50, R.drawable.shape_purple50_line_17_rect) - 2 -> Pair(R.color.sky_50, R.drawable.shape_sky50_line_17_rect) - 0 -> Pair(R.color.green_50, R.drawable.shape_green50_line_17_rect) + val color = when (viewModel.rhythmLevel.value.rem(3)) { + 1 -> COLOR_PURPLE + 2 -> COLOR_SKY + 0 -> COLOR_GREEN else -> return } with(binding) { - tvRhythmLevel.setTextColor(colorOf(textColor)) - tvRhythmLevel.background = - ContextCompat.getDrawable(requireContext(), background) - tvRhythmStep.setTextColor(colorOf(textColor)) - tvRhythmStep.background = - ContextCompat.getDrawable(requireContext(), background) + tvRhythmLevel.apply { + text = getString(R.string.rhythm_tv_level, viewModel.rhythmLevel.value) + setTextColor(colorOf(getResource("${color}_50", COLOR))) + background = + drawableOf(getResource("shape_white_fill_${color}50_line_17_rect", DRAWABLE)) + } + tvRhythmStep.apply { + setTextColor(colorOf(getResource("${color}_50", COLOR))) + background = + drawableOf(getResource("shape_white_fill_${color}50_line_17_rect", DRAWABLE)) + } + ivRhythmBg.setImageResource(getResource("img_rhythm_bg_$color", DRAWABLE)) + lottieRhythmBg.setAnimation(getResource("stempo_rhythm_$color", RAW)) } } + private fun getResource(name: String, defType: String) = + resources.getIdentifier(name, defType, requireContext().packageName) + private fun observeRhythmUrlState() { viewModel.rhythmUrlState.flowWithLifecycle(lifecycle).distinctUntilChanged() .onEach { state -> @@ -195,5 +204,13 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy companion object { private const val BOTTOM_SHEET_CHANGE_LEVEL = "BOTTOM_SHEET_CHANGE_LEVEL" + + private const val COLOR_PURPLE = "purple" + private const val COLOR_SKY = "sky" + private const val COLOR_GREEN = "green" + + private const val COLOR = "color" + private const val DRAWABLE = "drawable" + private const val RAW = "raw" } } \ No newline at end of file diff --git a/presentation/src/main/res/drawable/ic_play.xml b/presentation/src/main/res/drawable/ic_play.xml new file mode 100644 index 0000000..434f3d8 --- /dev/null +++ b/presentation/src/main/res/drawable/ic_play.xml @@ -0,0 +1,9 @@ + + + diff --git a/presentation/src/main/res/drawable/ic_stop.xml b/presentation/src/main/res/drawable/ic_stop.xml new file mode 100644 index 0000000..80a4df2 --- /dev/null +++ b/presentation/src/main/res/drawable/ic_stop.xml @@ -0,0 +1,12 @@ + + + + diff --git a/presentation/src/main/res/drawable/img_rhythm_bg_green.xml b/presentation/src/main/res/drawable/img_rhythm_bg_green.xml new file mode 100644 index 0000000..b1dfb37 --- /dev/null +++ b/presentation/src/main/res/drawable/img_rhythm_bg_green.xml @@ -0,0 +1,21 @@ + + + + + + + + + + diff --git a/presentation/src/main/res/drawable/img_rhythm_purple.xml b/presentation/src/main/res/drawable/img_rhythm_bg_purple.xml similarity index 76% rename from presentation/src/main/res/drawable/img_rhythm_purple.xml rename to presentation/src/main/res/drawable/img_rhythm_bg_purple.xml index 9b38c2f..8cd62fa 100644 --- a/presentation/src/main/res/drawable/img_rhythm_purple.xml +++ b/presentation/src/main/res/drawable/img_rhythm_bg_purple.xml @@ -18,7 +18,4 @@ - diff --git a/presentation/src/main/res/drawable/img_rhythm_bg_sky.xml b/presentation/src/main/res/drawable/img_rhythm_bg_sky.xml new file mode 100644 index 0000000..e4e3ad7 --- /dev/null +++ b/presentation/src/main/res/drawable/img_rhythm_bg_sky.xml @@ -0,0 +1,21 @@ + + + + + + + + + + diff --git a/presentation/src/main/res/drawable/shape_green50_line_17_rect.xml b/presentation/src/main/res/drawable/shape_white_fill_green50_line_17_rect.xml similarity index 84% rename from presentation/src/main/res/drawable/shape_green50_line_17_rect.xml rename to presentation/src/main/res/drawable/shape_white_fill_green50_line_17_rect.xml index 76a16f0..c6cc6ca 100644 --- a/presentation/src/main/res/drawable/shape_green50_line_17_rect.xml +++ b/presentation/src/main/res/drawable/shape_white_fill_green50_line_17_rect.xml @@ -1,5 +1,6 @@ + diff --git a/presentation/src/main/res/drawable/shape_purple50_line_17_rect.xml b/presentation/src/main/res/drawable/shape_white_fill_purple50_line_17_rect.xml similarity index 84% rename from presentation/src/main/res/drawable/shape_purple50_line_17_rect.xml rename to presentation/src/main/res/drawable/shape_white_fill_purple50_line_17_rect.xml index 3028726..01c440c 100644 --- a/presentation/src/main/res/drawable/shape_purple50_line_17_rect.xml +++ b/presentation/src/main/res/drawable/shape_white_fill_purple50_line_17_rect.xml @@ -1,5 +1,6 @@ + diff --git a/presentation/src/main/res/drawable/shape_sky50_line_17_rect.xml b/presentation/src/main/res/drawable/shape_white_fill_sky50_line_17_rect.xml similarity index 84% rename from presentation/src/main/res/drawable/shape_sky50_line_17_rect.xml rename to presentation/src/main/res/drawable/shape_white_fill_sky50_line_17_rect.xml index d1361e5..7138931 100644 --- a/presentation/src/main/res/drawable/shape_sky50_line_17_rect.xml +++ b/presentation/src/main/res/drawable/shape_white_fill_sky50_line_17_rect.xml @@ -1,5 +1,6 @@ + diff --git a/presentation/src/main/res/layout/fragment_record.xml b/presentation/src/main/res/layout/fragment_record.xml index b6a54f1..301c549 100644 --- a/presentation/src/main/res/layout/fragment_record.xml +++ b/presentation/src/main/res/layout/fragment_record.xml @@ -191,7 +191,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="18dp" - android:background="@drawable/shape_purple50_line_17_rect" + android:background="@drawable/shape_white_fill_purple50_line_17_rect" android:gravity="center" android:orientation="horizontal" android:paddingHorizontal="12dp" diff --git a/presentation/src/main/res/layout/fragment_rhythm.xml b/presentation/src/main/res/layout/fragment_rhythm.xml index 8052fff..0527d6a 100644 --- a/presentation/src/main/res/layout/fragment_rhythm.xml +++ b/presentation/src/main/res/layout/fragment_rhythm.xml @@ -17,7 +17,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="40dp" - android:background="@drawable/shape_purple50_line_17_rect" + android:background="@drawable/shape_white_fill_purple50_line_17_rect" android:paddingHorizontal="12dp" android:paddingVertical="6dp" android:textColor="@color/purple_50" @@ -39,22 +39,45 @@ app:layout_constraintTop_toBottomOf="@id/tv_rhythm_level" /> - + + + + Date: Wed, 31 Jul 2024 04:40:29 +0900 Subject: [PATCH 07/15] =?UTF-8?q?[FEAT/#28]=20bpm=20=EB=94=B0=EB=9D=BC=20?= =?UTF-8?q?=EB=8B=A8=EA=B3=84=EB=B3=84=20=EB=A1=9C=ED=8B=B0=20=EC=9E=AC?= =?UTF-8?q?=EC=83=9D=EC=86=8D=EB=8F=84=20=EC=A1=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kkkk/presentation/main/rhythm/RhythmFragment.kt | 8 +++++++- .../com/kkkk/presentation/main/rhythm/RhythmViewModel.kt | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt index d753c9f..4daa7b3 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt @@ -22,6 +22,7 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kr.genti.presentation.R import kr.genti.presentation.databinding.FragmentRhythmBinding +import timber.log.Timber import java.io.File import java.nio.file.Files @@ -113,7 +114,12 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy drawableOf(getResource("shape_white_fill_${color}50_line_17_rect", DRAWABLE)) } ivRhythmBg.setImageResource(getResource("img_rhythm_bg_$color", DRAWABLE)) - lottieRhythmBg.setAnimation(getResource("stempo_rhythm_$color", RAW)) + lottieRhythmBg.apply { + setAnimation(getResource("stempo_rhythm_$color", RAW)) + Timber.tag("qqqq").d("${viewModel.bpm}, ${(viewModel.bpm / 120).toFloat()}") + speed = viewModel.bpm / 120.00000000000F + playAnimation() + } } } diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt index 4c4249d..bd77bd3 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt @@ -20,6 +20,7 @@ constructor( private val userRepository: UserRepository ) : ViewModel() { var tempRhythmLevel = MutableLiveData(1) + var bpm = 50 var filename: String = "stempo_level_1" var isSubmitted: Boolean = true @@ -39,6 +40,7 @@ constructor( private fun initRhythmLevelFromDataStore() { val currentLevel = userRepository.getBpmLevel() filename = "stempo_level_$currentLevel" + bpm = 40 + currentLevel * 10 _rhythmLevel.value = currentLevel tempRhythmLevel.value = currentLevel } @@ -58,6 +60,7 @@ constructor( fun setRhythmLevel() { isSubmitted = true filename = "stempo_level_" + tempRhythmLevel.value.toString() + bpm = 40 + (tempRhythmLevel.value?.times(10) ?: 10) _rhythmLevel.value = tempRhythmLevel.value ?: -1 userRepository.setBpmLevel(rhythmLevel.value) } @@ -65,7 +68,7 @@ constructor( fun postToGetRhythmUrlFromServer(level: Int) { _rhythmUrlState.value = UiState.Loading viewModelScope.launch { - rhythmRepository.postToGetRhythmUrl(40 + level * 10) + rhythmRepository.postToGetRhythmUrl(bpm) .onSuccess { _rhythmUrlState.value = UiState.Success(it) } From 4c142edc3ccda140477830aa3e4304ccb7fd1865 Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 04:42:48 +0900 Subject: [PATCH 08/15] =?UTF-8?q?[FIX/#28]=20Timber=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt index 4daa7b3..3d6ffcf 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt @@ -22,7 +22,6 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kr.genti.presentation.R import kr.genti.presentation.databinding.FragmentRhythmBinding -import timber.log.Timber import java.io.File import java.nio.file.Files @@ -116,7 +115,6 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy ivRhythmBg.setImageResource(getResource("img_rhythm_bg_$color", DRAWABLE)) lottieRhythmBg.apply { setAnimation(getResource("stempo_rhythm_$color", RAW)) - Timber.tag("qqqq").d("${viewModel.bpm}, ${(viewModel.bpm / 120).toFloat()}") speed = viewModel.bpm / 120.00000000000F playAnimation() } From baf142147d8221c71939e88f5960ed4d82e60aab Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 05:07:51 +0900 Subject: [PATCH 09/15] =?UTF-8?q?[UI/#30]=20=EB=A6=AC=EB=93=AC=20=EC=A2=85?= =?UTF-8?q?=EB=A3=8C=20=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C=EA=B7=B8=20UI?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/drawable/shape_white_fill_16_rect.xml | 5 ++ .../main/res/layout/dialog_rhythm_save.xml | 62 +++++++++++++++++++ presentation/src/main/res/values/strings.xml | 4 ++ 3 files changed, 71 insertions(+) create mode 100644 presentation/src/main/res/drawable/shape_white_fill_16_rect.xml create mode 100644 presentation/src/main/res/layout/dialog_rhythm_save.xml diff --git a/presentation/src/main/res/drawable/shape_white_fill_16_rect.xml b/presentation/src/main/res/drawable/shape_white_fill_16_rect.xml new file mode 100644 index 0000000..2cf3835 --- /dev/null +++ b/presentation/src/main/res/drawable/shape_white_fill_16_rect.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/presentation/src/main/res/layout/dialog_rhythm_save.xml b/presentation/src/main/res/layout/dialog_rhythm_save.xml new file mode 100644 index 0000000..96234de --- /dev/null +++ b/presentation/src/main/res/layout/dialog_rhythm_save.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/presentation/src/main/res/values/strings.xml b/presentation/src/main/res/values/strings.xml index b1d10b1..7c387f2 100644 --- a/presentation/src/main/res/values/strings.xml +++ b/presentation/src/main/res/values/strings.xml @@ -25,6 +25,10 @@ 단계 변경하기 완료하기 + 종료하기를 누르면\n지금까지의 걸음이 기록돼요.\n잠시 멈추시는거라면\n정지하기를 눌러주세요. + 종료하기 + 정지하기 + 동안의 성과에요! 달성한 업적 전체보기 From 9807b526ac26984a5fed0cd76b434b39d967e2c2 Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 05:13:36 +0900 Subject: [PATCH 10/15] =?UTF-8?q?[ADD/#30]=20=EB=A6=AC=EB=93=AC=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=20=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20intent=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/rhythm/RhythmFragment.kt | 5 +++ .../main/rhythm/RhythmSaveDialog.kt | 33 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt index 3d6ffcf..6227499 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt @@ -30,6 +30,7 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy private val viewModel by activityViewModels() private var rhythmBottomSheet: RhythmBottomSheet? = null + private var rhythmSaveDialog: RhythmSaveDialog? = null private lateinit var mediaPlayer: MediaPlayer override fun onViewCreated( @@ -70,6 +71,8 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy mediaPlayer.pause() switchPlayingState(false) } + rhythmSaveDialog = RhythmSaveDialog() + rhythmSaveDialog?.show(parentFragmentManager, DIALOG_RHYTHM_SAVE) } } @@ -201,6 +204,7 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy override fun onDestroyView() { super.onDestroyView() rhythmBottomSheet = null + rhythmSaveDialog = null if (::mediaPlayer.isInitialized) { mediaPlayer.release() } @@ -208,6 +212,7 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy companion object { private const val BOTTOM_SHEET_CHANGE_LEVEL = "BOTTOM_SHEET_CHANGE_LEVEL" + private const val DIALOG_RHYTHM_SAVE = "DIALOG_RHYTHM_SAVE" private const val COLOR_PURPLE = "purple" private const val COLOR_SKY = "sky" diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt new file mode 100644 index 0000000..b3cf1ab --- /dev/null +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt @@ -0,0 +1,33 @@ +package com.kkkk.presentation.main.rhythm + +import android.os.Bundle +import android.view.View +import android.view.WindowManager +import androidx.fragment.app.activityViewModels +import com.kkkk.core.base.BaseDialog +import kr.genti.presentation.R +import kr.genti.presentation.databinding.DialogRhythmSaveBinding + +class RhythmSaveDialog : + BaseDialog(R.layout.dialog_rhythm_save) { + private val viewModel by activityViewModels() + + override fun onStart() { + super.onStart() + dialog?.window?.apply { + setLayout( + WindowManager.LayoutParams.MATCH_PARENT, + WindowManager.LayoutParams.WRAP_CONTENT, + ) + setBackgroundDrawableResource(R.color.transparent) + } + } + + override fun onViewCreated( + view: View, + savedInstanceState: Bundle?, + ) { + super.onViewCreated(view, savedInstanceState) + + } +} \ No newline at end of file From 82bced6901f09a45eadb06a71abf5a05ce4518df Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 05:18:17 +0900 Subject: [PATCH 11/15] =?UTF-8?q?[ADD/#30]=20=EB=A6=AC=EB=93=AC=20?= =?UTF-8?q?=EA=B8=B0=EB=A1=9D=20=EC=A0=80=EC=9E=A5=20API=20domain=20?= =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/entity/request/RecordRequestModel.kt | 7 +++++++ .../com/kkkk/domain/repository/RhythmRepository.kt | 6 +++++- .../presentation/main/rhythm/RhythmSaveDialog.kt | 13 +++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 domain/src/main/kotlin/com/kkkk/domain/entity/request/RecordRequestModel.kt diff --git a/domain/src/main/kotlin/com/kkkk/domain/entity/request/RecordRequestModel.kt b/domain/src/main/kotlin/com/kkkk/domain/entity/request/RecordRequestModel.kt new file mode 100644 index 0000000..fe6046f --- /dev/null +++ b/domain/src/main/kotlin/com/kkkk/domain/entity/request/RecordRequestModel.kt @@ -0,0 +1,7 @@ +package com.kkkk.domain.entity.request + +data class RecordRequestModel( + val accuracy: Double, + val duration: Int, + val steps: Int, +) \ No newline at end of file diff --git a/domain/src/main/kotlin/com/kkkk/domain/repository/RhythmRepository.kt b/domain/src/main/kotlin/com/kkkk/domain/repository/RhythmRepository.kt index d650b28..fde666a 100644 --- a/domain/src/main/kotlin/com/kkkk/domain/repository/RhythmRepository.kt +++ b/domain/src/main/kotlin/com/kkkk/domain/repository/RhythmRepository.kt @@ -1,6 +1,6 @@ package com.kkkk.domain.repository -import java.io.File +import com.kkkk.domain.entity.request.RecordRequestModel interface RhythmRepository { suspend fun postToGetRhythmUrl( @@ -10,4 +10,8 @@ interface RhythmRepository { suspend fun getRhythmWav( url: String ): Result + + suspend fun postRhythmRecord( + request: RecordRequestModel + ): Result } diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt index b3cf1ab..78ab3db 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt @@ -5,6 +5,7 @@ import android.view.View import android.view.WindowManager import androidx.fragment.app.activityViewModels import com.kkkk.core.base.BaseDialog +import com.kkkk.core.extension.setOnSingleClickListener import kr.genti.presentation.R import kr.genti.presentation.databinding.DialogRhythmSaveBinding @@ -29,5 +30,17 @@ class RhythmSaveDialog : ) { super.onViewCreated(view, savedInstanceState) + initPauseBtnListener() + initSaveBtnListener() + } + + private fun initPauseBtnListener() { + binding.btnPause.setOnSingleClickListener { dismiss() } + } + + private fun initSaveBtnListener() { + binding.btnSave.setOnSingleClickListener { + + } } } \ No newline at end of file From 00125fe8bfc633b39c0a89f6a17dfcfb7c36ceae Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 05:47:27 +0900 Subject: [PATCH 12/15] =?UTF-8?q?[ADD/#30]=20=EB=A6=AC=EB=93=AC=20?= =?UTF-8?q?=EA=B8=B0=EB=A1=9D=20=EC=A0=80=EC=9E=A5=20API=20data=20?= =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kkkk/data/dataSource/RhythmDataSource.kt | 6 +++++- .../dataSourceImpl/RhythmDataSourceImpl.kt | 4 ++++ .../kkkk/data/dto/request/RecordRequestDto.kt | 19 +++++++++++++++++++ .../repositoryImpl/RhythmRepositoryImpl.kt | 7 +++++++ .../com/kkkk/data/service/RhythmService.kt | 7 +++++++ 5 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 data/src/main/java/com/kkkk/data/dto/request/RecordRequestDto.kt diff --git a/data/src/main/java/com/kkkk/data/dataSource/RhythmDataSource.kt b/data/src/main/java/com/kkkk/data/dataSource/RhythmDataSource.kt index 807b7bf..3d0d6e5 100644 --- a/data/src/main/java/com/kkkk/data/dataSource/RhythmDataSource.kt +++ b/data/src/main/java/com/kkkk/data/dataSource/RhythmDataSource.kt @@ -1,8 +1,8 @@ package com.kkkk.data.dataSource import com.kkkk.data.dto.BaseResponse +import com.kkkk.data.dto.request.RecordRequestDto import okhttp3.ResponseBody -import java.io.File interface RhythmDataSource { suspend fun postToGetRhythmUrl( @@ -12,4 +12,8 @@ interface RhythmDataSource { suspend fun getRhythmWav( url: String ): ResponseBody + + suspend fun postRhythmRecord( + request: RecordRequestDto + ): BaseResponse } \ No newline at end of file diff --git a/data/src/main/java/com/kkkk/data/dataSourceImpl/RhythmDataSourceImpl.kt b/data/src/main/java/com/kkkk/data/dataSourceImpl/RhythmDataSourceImpl.kt index 31cd439..14a62cd 100644 --- a/data/src/main/java/com/kkkk/data/dataSourceImpl/RhythmDataSourceImpl.kt +++ b/data/src/main/java/com/kkkk/data/dataSourceImpl/RhythmDataSourceImpl.kt @@ -2,6 +2,7 @@ package com.kkkk.data.dataSourceImpl import com.kkkk.data.dataSource.RhythmDataSource import com.kkkk.data.dto.BaseResponse +import com.kkkk.data.dto.request.RecordRequestDto import com.kkkk.data.service.RhythmService import okhttp3.ResponseBody import javax.inject.Inject @@ -17,4 +18,7 @@ constructor( override suspend fun getRhythmWav(url: String): ResponseBody = rhythmService.getRhythmWav(url) + + override suspend fun postRhythmRecord(request: RecordRequestDto): BaseResponse = + rhythmService.postRhythmRecord(request) } diff --git a/data/src/main/java/com/kkkk/data/dto/request/RecordRequestDto.kt b/data/src/main/java/com/kkkk/data/dto/request/RecordRequestDto.kt new file mode 100644 index 0000000..f2b3100 --- /dev/null +++ b/data/src/main/java/com/kkkk/data/dto/request/RecordRequestDto.kt @@ -0,0 +1,19 @@ +package com.kkkk.data.dto.request + +import com.kkkk.domain.entity.request.RecordRequestModel +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class RecordRequestDto( + @SerialName("accuracy") + val accuracy: Double, + @SerialName("duration") + val duration: Int, + @SerialName("steps") + val steps: Int, +) { + companion object { + fun RecordRequestModel.toDto() = RecordRequestDto(accuracy, duration, steps) + } +} \ No newline at end of file diff --git a/data/src/main/java/com/kkkk/data/repositoryImpl/RhythmRepositoryImpl.kt b/data/src/main/java/com/kkkk/data/repositoryImpl/RhythmRepositoryImpl.kt index ef44977..e5c3a8a 100644 --- a/data/src/main/java/com/kkkk/data/repositoryImpl/RhythmRepositoryImpl.kt +++ b/data/src/main/java/com/kkkk/data/repositoryImpl/RhythmRepositoryImpl.kt @@ -1,6 +1,8 @@ package com.kkkk.data.repositoryImpl import com.kkkk.data.dataSource.RhythmDataSource +import com.kkkk.data.dto.request.RecordRequestDto.Companion.toDto +import com.kkkk.domain.entity.request.RecordRequestModel import com.kkkk.domain.repository.RhythmRepository import javax.inject.Inject @@ -19,4 +21,9 @@ constructor( runCatching { rhythmDataSource.getRhythmWav(url).bytes() } + + override suspend fun postRhythmRecord(request: RecordRequestModel): Result = + runCatching { + rhythmDataSource.postRhythmRecord(request.toDto()).data + } } \ No newline at end of file diff --git a/data/src/main/java/com/kkkk/data/service/RhythmService.kt b/data/src/main/java/com/kkkk/data/service/RhythmService.kt index 220c7b4..d0631db 100644 --- a/data/src/main/java/com/kkkk/data/service/RhythmService.kt +++ b/data/src/main/java/com/kkkk/data/service/RhythmService.kt @@ -1,7 +1,9 @@ package com.kkkk.data.service import com.kkkk.data.dto.BaseResponse +import com.kkkk.data.dto.request.RecordRequestDto import okhttp3.ResponseBody +import retrofit2.http.Body import retrofit2.http.GET import retrofit2.http.POST import retrofit2.http.Path @@ -17,4 +19,9 @@ interface RhythmService { suspend fun getRhythmWav( @Url url: String ): ResponseBody + + @POST("api/v1/records") + suspend fun postRhythmRecord( + @Body request: RecordRequestDto + ): BaseResponse } \ No newline at end of file From b8c9aa07c4c72ecc43ab27b748cb7160d4a8f946 Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 05:59:34 +0900 Subject: [PATCH 13/15] =?UTF-8?q?[FEAT/#30]=20=EB=A6=AC=EB=93=AC=20?= =?UTF-8?q?=EA=B8=B0=EB=A1=9D=20=EC=A0=80=EC=9E=A5=20API=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/rhythm/RhythmFragment.kt | 15 ++++++++++++++ .../main/rhythm/RhythmSaveDialog.kt | 3 ++- .../main/rhythm/RhythmViewModel.kt | 20 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt index 6227499..0044c35 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt @@ -45,6 +45,7 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy observeRhythmLevel() observeRhythmUrlState() observeDownloadState() + observeRecordSaveState() } private fun initChangeLevelBtnListener() { @@ -201,6 +202,20 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy } } + private fun observeRecordSaveState() { + viewModel.recordSaveState.flowWithLifecycle(lifecycle).distinctUntilChanged() + .onEach { state -> + when (state) { + is UiState.Success -> { + // TODO : 여기에서 기존 걸음 0으로 만드는 로직 필요 + } + + is UiState.Failure -> toast(stringOf(R.string.error_msg)) + else -> return@onEach + } + }.launchIn(lifecycleScope) + } + override fun onDestroyView() { super.onDestroyView() rhythmBottomSheet = null diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt index 78ab3db..9bdcf0b 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt @@ -40,7 +40,8 @@ class RhythmSaveDialog : private fun initSaveBtnListener() { binding.btnSave.setOnSingleClickListener { - + viewModel.posRhythmRecordToSave() + dismiss() } } } \ No newline at end of file diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt index bd77bd3..9177d7a 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.kkkk.core.state.UiState +import com.kkkk.domain.entity.request.RecordRequestModel import com.kkkk.domain.repository.RhythmRepository import com.kkkk.domain.repository.UserRepository import dagger.hilt.android.lifecycle.HiltViewModel @@ -24,6 +25,9 @@ constructor( var filename: String = "stempo_level_1" var isSubmitted: Boolean = true + // TODO : 정확도 만져주세용 ㅎㅎ + var accuracy: Double = 1.0 + private val _rhythmLevel = MutableStateFlow(LEVEL_UNDEFINED) val rhythmLevel: StateFlow = _rhythmLevel @@ -33,6 +37,9 @@ constructor( private val _downloadWavState = MutableStateFlow>(UiState.Empty) val downloadWavState: StateFlow> = _downloadWavState + private val _recordSaveState = MutableStateFlow>(UiState.Empty) + val recordSaveState: StateFlow> = _recordSaveState + init { initRhythmLevelFromDataStore() } @@ -91,6 +98,19 @@ constructor( } } + fun posRhythmRecordToSave() { + _recordSaveState.value = UiState.Loading + viewModelScope.launch { + rhythmRepository.postRhythmRecord( + RecordRequestModel(accuracy, 0, 0) + ).onSuccess { + _recordSaveState.value = UiState.Success(it) + }.onFailure { + _recordSaveState.value = UiState.Failure(it.message.toString()) + } + } + } + companion object { const val LEVEL_UNDEFINED = -1 } From cdcbead9fe285125475e5d36a40eaf3a4aac47da Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 06:05:57 +0900 Subject: [PATCH 14/15] =?UTF-8?q?[ADD/#30]=20=EA=B8=B0=EB=A1=9D=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=20=EC=84=B1=EA=B3=B5=20=EC=8B=9C=20=ED=86=A0?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kkkk/presentation/main/rhythm/RhythmFragment.kt | 1 + .../kkkk/presentation/main/rhythm/RhythmSaveDialog.kt | 2 +- .../src/main/res/layout/dialog_rhythm_save.xml | 10 ++++++---- presentation/src/main/res/values/strings.xml | 1 + 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt index 0044c35..7ad134b 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt @@ -208,6 +208,7 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy when (state) { is UiState.Success -> { // TODO : 여기에서 기존 걸음 0으로 만드는 로직 필요 + toast(stringOf(R.string.rhythm_toast_save_success)) } is UiState.Failure -> toast(stringOf(R.string.error_msg)) diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt index 9bdcf0b..263dd28 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmSaveDialog.kt @@ -17,7 +17,7 @@ class RhythmSaveDialog : super.onStart() dialog?.window?.apply { setLayout( - WindowManager.LayoutParams.MATCH_PARENT, + WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, ) setBackgroundDrawableResource(R.color.transparent) diff --git a/presentation/src/main/res/layout/dialog_rhythm_save.xml b/presentation/src/main/res/layout/dialog_rhythm_save.xml index 96234de..dc0c9ba 100644 --- a/presentation/src/main/res/layout/dialog_rhythm_save.xml +++ b/presentation/src/main/res/layout/dialog_rhythm_save.xml @@ -7,9 +7,8 @@ @@ -19,6 +18,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginHorizontal="16dp" + android:lineSpacingMultiplier="1.3" android:layout_marginTop="32dp" android:gravity="center" android:text="@string/rhythm_stop_tv_title" @@ -29,12 +29,13 @@ 리듬에 맞춰 걸어주세요! 단계 변경하기 완료하기 + 기록 저장이 완료되었어요! 종료하기를 누르면\n지금까지의 걸음이 기록돼요.\n잠시 멈추시는거라면\n정지하기를 눌러주세요. 종료하기 From fbb3d99e6e54d3314aeeb64d158dc56329ed3a51 Mon Sep 17 00:00:00 2001 From: Sangho Kim Date: Wed, 31 Jul 2024 15:16:53 +0900 Subject: [PATCH 15/15] =?UTF-8?q?[FIX/#28]=20bpm=20=EA=B3=84=EC=82=B0=20?= =?UTF-8?q?=EA=B3=B5=EC=8B=9D=20=ED=95=A8=EC=88=98=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kkkk/presentation/main/rhythm/RhythmFragment.kt | 4 +++- .../com/kkkk/presentation/main/rhythm/RhythmViewModel.kt | 8 +++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt index 7ad134b..feb70e5 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmFragment.kt @@ -119,7 +119,7 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy ivRhythmBg.setImageResource(getResource("img_rhythm_bg_$color", DRAWABLE)) lottieRhythmBg.apply { setAnimation(getResource("stempo_rhythm_$color", RAW)) - speed = viewModel.bpm / 120.00000000000F + speed = viewModel.bpm / FLOAT_120 playAnimation() } } @@ -237,5 +237,7 @@ class RhythmFragment : BaseFragment(R.layout.fragment_rhy private const val COLOR = "color" private const val DRAWABLE = "drawable" private const val RAW = "raw" + + private const val FLOAT_120 = 120.00000000000000000000F } } \ No newline at end of file diff --git a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt index 9177d7a..0de4e0a 100644 --- a/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt +++ b/presentation/src/main/java/com/kkkk/presentation/main/rhythm/RhythmViewModel.kt @@ -47,7 +47,7 @@ constructor( private fun initRhythmLevelFromDataStore() { val currentLevel = userRepository.getBpmLevel() filename = "stempo_level_$currentLevel" - bpm = 40 + currentLevel * 10 + bpm = setBpm(currentLevel) _rhythmLevel.value = currentLevel tempRhythmLevel.value = currentLevel } @@ -67,8 +67,8 @@ constructor( fun setRhythmLevel() { isSubmitted = true filename = "stempo_level_" + tempRhythmLevel.value.toString() - bpm = 40 + (tempRhythmLevel.value?.times(10) ?: 10) - _rhythmLevel.value = tempRhythmLevel.value ?: -1 + bpm = setBpm(tempRhythmLevel.value ?: 1) + _rhythmLevel.value = tempRhythmLevel.value ?: 1 userRepository.setBpmLevel(rhythmLevel.value) } @@ -111,6 +111,8 @@ constructor( } } + fun setBpm(level: Int) = 40 + level * 10 + companion object { const val LEVEL_UNDEFINED = -1 }