diff --git a/README.md b/README.md index 0b4b29f..80f450d 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ All print files (STL, STEP, X_T) can be found in [assets/case](/assets/case/). A ## ⚙️ Default config -To reset the settings, hold down the button and connect the ESP to the power supply. As soon as the LED flashes quickly, the settings are reset. +To reset the settings, hold down the button and connect the ESP to the power supply, the LED will flash quickly. After 3 seconds the LED should light up static and the settings are reset. If you release the button early you abort the reset and the LED flashes slowly. | Setting | Value | | -------------- | ------------------ | diff --git a/assets/circuit/diagram.pdf b/assets/circuit/diagram.pdf index 7d25cd8..1f56b2a 100644 --- a/assets/circuit/diagram.pdf +++ b/assets/circuit/diagram.pdf @@ -15,7 +15,7 @@ endobj 3 0 obj << /Length 4 0 R >> stream -0.460227 0 0.071023 0.324574 0.389205 0.149148 d1 +0.634943 0 0.088068 0.000000 0.580966 0.815341 d1 endstream endobj @@ -27,31 +27,31 @@ endobj 5 0 obj << /Length 6 0 R >> stream -0.637784 0 0.056818 -0.012784 0.580966 0.806818 d1 +0.605114 0 0.075284 0.000000 0.534091 0.812500 d1 endstream endobj 6 0 obj - 51 + 50 endobj 7 0 obj << /Length 8 0 R >> stream -0.636364 0 0.073864 -0.009943 0.566761 0.821023 d1 +0.460227 0 0.071023 0.324574 0.389205 0.149148 d1 endstream endobj 8 0 obj - 51 + 50 endobj 9 0 obj << /Length 10 0 R >> stream -0.363636 0 0.031250 -0.007102 0.323864 0.714489 d1 +0.580966 0 0.076705 -0.007102 0.504261 0.629261 d1 endstream endobj @@ -87,27 +87,27 @@ endobj 15 0 obj << /Length 16 0 R >> stream -0.718750 0 0.088068 0.000000 0.659091 0.815341 d1 - -endstream -endobj - -16 0 obj - 50 -endobj - -17 0 obj - << /Length 18 0 R >> -stream 0.742898 0 0.059659 -0.009943 0.680398 0.806818 d1 endstream endobj -18 0 obj +16 0 obj 51 endobj +17 0 obj + << /Length 18 0 R >> +stream +0.718750 0 0.088068 0.000000 0.659091 0.815341 d1 + +endstream +endobj + +18 0 obj + 50 +endobj + 19 0 obj << /Length 20 0 R >> stream @@ -135,19 +135,19 @@ endobj 23 0 obj << /Length 24 0 R >> stream -0.639205 0 0.088068 0.000000 0.609375 0.815341 d1 +0.620739 0 0.051136 -0.011364 0.532670 0.789773 d1 endstream endobj 24 0 obj - 50 + 51 endobj 25 0 obj << /Length 26 0 R >> stream -0.372159 0 0.076705 0.000000 0.349432 0.630682 d1 +0.281250 0 0.000000 0.000000 0.281250 1.000000 d1 endstream endobj @@ -159,55 +159,55 @@ endobj 27 0 obj << /Length 28 0 R >> stream -0.741477 0 0.088068 -0.012784 0.653409 0.828125 d1 - -endstream -endobj - -28 0 obj - 51 -endobj - -29 0 obj - << /Length 30 0 R >> -stream -0.590909 0 0.076705 0.000000 0.514205 0.803977 d1 - -endstream -endobj - -30 0 obj - 50 -endobj - -31 0 obj - << /Length 32 0 R >> -stream 0.634943 0 0.088068 0.000000 0.580966 0.815341 d1 endstream endobj -32 0 obj +28 0 obj 50 endobj +29 0 obj + << /Length 30 0 R >> +stream +0.596591 0 0.051136 -0.011364 0.545455 0.615057 d1 + +endstream +endobj + +30 0 obj + 51 +endobj + +31 0 obj + << /Length 32 0 R >> +stream +0.637784 0 0.056818 -0.012784 0.580966 0.806818 d1 + +endstream +endobj + +32 0 obj + 51 +endobj + 33 0 obj << /Length 34 0 R >> stream -0.740057 0 0.088068 0.000000 0.651989 0.815341 d1 +0.607955 0 0.076705 -0.009943 0.542614 0.813920 d1 endstream endobj 34 0 obj - 50 + 51 endobj 35 0 obj << /Length 36 0 R >> stream -0.889205 0 0.088068 0.000000 0.801136 0.815341 d1 +0.642045 0 0.026989 0.000000 0.615057 0.754261 d1 endstream endobj @@ -219,7 +219,7 @@ endobj 37 0 obj << /Length 38 0 R >> stream -0.637784 0 0.056818 -0.012784 0.580966 0.806818 d1 +0.727273 0 0.059659 -0.009943 0.673295 0.806818 d1 endstream endobj @@ -243,19 +243,19 @@ endobj 41 0 obj << /Length 42 0 R >> stream -0.605114 0 0.075284 0.000000 0.534091 0.812500 d1 +0.636364 0 0.073864 -0.009943 0.566761 0.821023 d1 endstream endobj 42 0 obj - 50 + 51 endobj 43 0 obj << /Length 44 0 R >> stream -0.596591 0 0.051136 -0.011364 0.545455 0.615057 d1 +0.363636 0 0.031250 -0.007102 0.323864 0.714489 d1 endstream endobj @@ -291,7 +291,7 @@ endobj 49 0 obj << /Length 50 0 R >> stream -0.607955 0 0.076705 -0.009943 0.542614 0.813920 d1 +0.363636 0 0.031250 -0.007102 0.323864 0.714489 d1 endstream endobj @@ -327,13 +327,13 @@ endobj 55 0 obj << /Length 56 0 R >> stream -0.634943 0 0.088068 0.000000 0.580966 0.815341 d1 +0.741477 0 0.088068 -0.012784 0.653409 0.828125 d1 endstream endobj 56 0 obj - 50 + 51 endobj 57 0 obj @@ -375,7 +375,7 @@ endobj 63 0 obj << /Length 64 0 R >> stream -0.596591 0 0.051136 -0.011364 0.545455 0.615057 d1 +0.363636 0 0.031250 -0.007102 0.323864 0.714489 d1 endstream endobj @@ -399,31 +399,31 @@ endobj 67 0 obj << /Length 68 0 R >> stream -0.609375 0 0.076705 -0.204545 0.558239 0.833807 d1 +0.464489 0 0.061080 0.000000 0.330966 0.788352 d1 endstream endobj 68 0 obj - 51 + 50 endobj 69 0 obj << /Length 70 0 R >> stream -0.650568 0 0.088068 0.000000 0.593750 0.815341 d1 +0.637784 0 0.056818 -0.012784 0.580966 0.806818 d1 endstream endobj 70 0 obj - 50 + 51 endobj 71 0 obj << /Length 72 0 R >> stream -0.363636 0 0.031250 -0.007102 0.323864 0.714489 d1 +0.625000 0 0.059659 -0.009943 0.565341 0.806818 d1 endstream endobj @@ -459,7 +459,7 @@ endobj 77 0 obj << /Length 78 0 R >> stream -0.582386 0 0.051136 -0.011364 0.531250 0.615057 d1 +0.625000 0 0.059659 -0.009943 0.565341 0.806818 d1 endstream endobj @@ -483,25 +483,25 @@ endobj 81 0 obj << /Length 82 0 R >> stream -0.625000 0 0.059659 -0.009943 0.565341 0.806818 d1 +0.281250 0 0.000000 0.000000 0.281250 1.000000 d1 endstream endobj 82 0 obj - 51 + 50 endobj 83 0 obj << /Length 84 0 R >> stream -0.616477 0 0.060724 -0.009943 0.555398 0.807884 d1 +0.642045 0 0.058239 0.000000 0.583807 0.785511 d1 endstream endobj 84 0 obj - 51 + 50 endobj 85 0 obj @@ -519,7 +519,7 @@ endobj 87 0 obj << /Length 88 0 R >> stream -0.281250 0 0.000000 0.000000 0.281250 1.000000 d1 +0.639205 0 0.088068 0.000000 0.609375 0.815341 d1 endstream endobj @@ -531,7 +531,7 @@ endobj 89 0 obj << /Length 90 0 R >> stream -0.356534 0 0.022727 -0.109375 0.333807 0.893466 d1 +0.625000 0 0.059659 -0.009943 0.565341 0.806818 d1 endstream endobj @@ -543,19 +543,19 @@ endobj 91 0 obj << /Length 92 0 R >> stream -0.580966 0 0.076705 -0.007102 0.504261 0.629261 d1 +0.281250 0 0.000000 0.000000 0.281250 1.000000 d1 endstream endobj 92 0 obj - 51 + 50 endobj 93 0 obj << /Length 94 0 R >> stream -0.609375 0 0.076705 -0.204545 0.558239 0.833807 d1 +0.580966 0 0.076705 -0.007102 0.504261 0.629261 d1 endstream endobj @@ -579,19 +579,19 @@ endobj 97 0 obj << /Length 98 0 R >> stream -0.585227 0 0.076705 0.000000 0.508523 0.629261 d1 +0.363636 0 0.031250 -0.007102 0.323864 0.714489 d1 endstream endobj 98 0 obj - 50 + 51 endobj 99 0 obj << /Length 100 0 R >> stream -0.580966 0 0.076705 -0.007102 0.504261 0.629261 d1 +0.363636 0 0.031250 -0.007102 0.323864 0.714489 d1 endstream endobj @@ -603,19 +603,19 @@ endobj 101 0 obj << /Length 102 0 R >> stream -0.281250 0 0.000000 0.000000 0.281250 1.000000 d1 +0.761364 0 0.059659 -0.009943 0.701705 0.806818 d1 endstream endobj 102 0 obj - 50 + 51 endobj 103 0 obj << /Length 104 0 R >> stream -0.363636 0 0.031250 -0.007102 0.323864 0.714489 d1 +0.582386 0 0.051136 -0.011364 0.531250 0.615057 d1 endstream endobj @@ -627,19 +627,19 @@ endobj 105 0 obj << /Length 106 0 R >> stream -0.642045 0 0.058239 0.000000 0.583807 0.785511 d1 +0.616477 0 0.060724 -0.009943 0.555398 0.807884 d1 endstream endobj 106 0 obj - 50 + 51 endobj 107 0 obj << /Length 108 0 R >> stream -0.625000 0 0.059659 -0.009943 0.565341 0.806818 d1 +0.609375 0 0.076705 -0.204545 0.558239 0.833807 d1 endstream endobj @@ -651,7 +651,7 @@ endobj 109 0 obj << /Length 110 0 R >> stream -0.642045 0 0.026989 0.000000 0.615057 0.754261 d1 +0.889205 0 0.088068 0.000000 0.801136 0.815341 d1 endstream endobj @@ -675,13 +675,13 @@ endobj 113 0 obj << /Length 114 0 R >> stream -0.281250 0 0.000000 0.000000 0.281250 1.000000 d1 +0.356534 0 0.022727 -0.109375 0.333807 0.893466 d1 endstream endobj 114 0 obj - 50 + 51 endobj 115 0 obj @@ -699,7 +699,7 @@ endobj 117 0 obj << /Length 118 0 R >> stream -0.460227 0 0.071023 0.324574 0.389205 0.149148 d1 +0.740057 0 0.088068 0.000000 0.651989 0.815341 d1 endstream endobj @@ -711,19 +711,19 @@ endobj 119 0 obj << /Length 120 0 R >> stream -0.637784 0 0.056818 -0.012784 0.580966 0.806818 d1 +0.372159 0 0.076705 0.000000 0.349432 0.630682 d1 endstream endobj 120 0 obj - 51 + 50 endobj 121 0 obj << /Length 122 0 R >> stream -0.642045 0 0.048295 0.000000 0.593750 0.775568 d1 +0.598011 0 0.088068 0.000000 0.532670 0.815341 d1 endstream endobj @@ -735,25 +735,25 @@ endobj 123 0 obj << /Length 124 0 R >> stream -0.264205 0 0.088068 0.000000 0.176136 0.815341 d1 +0.609375 0 0.076705 -0.204545 0.558239 0.833807 d1 endstream endobj 124 0 obj - 50 + 51 endobj 125 0 obj << /Length 126 0 R >> stream -0.761364 0 0.059659 -0.009943 0.701705 0.806818 d1 +0.281250 0 0.000000 0.000000 0.281250 1.000000 d1 endstream endobj 126 0 obj - 51 + 50 endobj 127 0 obj @@ -771,43 +771,43 @@ endobj 129 0 obj << /Length 130 0 R >> stream -0.625000 0 0.059659 -0.009943 0.565341 0.806818 d1 +0.460227 0 0.071023 0.324574 0.389205 0.149148 d1 endstream endobj 130 0 obj - 51 + 50 endobj 131 0 obj << /Length 132 0 R >> stream -0.607955 0 0.076705 -0.009943 0.542614 0.813920 d1 +0.642045 0 0.048295 0.000000 0.593750 0.775568 d1 endstream endobj 132 0 obj - 51 + 50 endobj 133 0 obj << /Length 134 0 R >> stream -0.598011 0 0.088068 0.000000 0.532670 0.815341 d1 +0.625000 0 0.059659 -0.009943 0.565341 0.806818 d1 endstream endobj 134 0 obj - 50 + 51 endobj 135 0 obj << /Length 136 0 R >> stream -0.464489 0 0.061080 0.000000 0.330966 0.788352 d1 +0.889205 0 0.088068 0.000000 0.801136 0.815341 d1 endstream endobj @@ -831,19 +831,19 @@ endobj 139 0 obj << /Length 140 0 R >> stream -0.625000 0 0.059659 -0.009943 0.565341 0.806818 d1 +0.590909 0 0.076705 0.000000 0.514205 0.803977 d1 endstream endobj 140 0 obj - 51 + 50 endobj 141 0 obj << /Length 142 0 R >> stream -0.363636 0 0.031250 -0.007102 0.323864 0.714489 d1 +0.580966 0 0.076705 -0.007102 0.504261 0.629261 d1 endstream endobj @@ -855,7 +855,7 @@ endobj 143 0 obj << /Length 144 0 R >> stream -0.642045 0 0.026989 0.000000 0.615057 0.754261 d1 +0.585227 0 0.076705 0.000000 0.508523 0.629261 d1 endstream endobj @@ -867,7 +867,7 @@ endobj 145 0 obj << /Length 146 0 R >> stream -0.281250 0 0.000000 0.000000 0.281250 1.000000 d1 +0.264205 0 0.088068 0.000000 0.176136 0.815341 d1 endstream endobj @@ -927,7 +927,7 @@ endobj 155 0 obj << /Length 156 0 R >> stream -0.727273 0 0.059659 -0.009943 0.673295 0.806818 d1 +0.637784 0 0.056818 -0.012784 0.580966 0.806818 d1 endstream endobj @@ -939,7 +939,7 @@ endobj 157 0 obj << /Length 158 0 R >> stream -0.889205 0 0.088068 0.000000 0.801136 0.815341 d1 +0.642045 0 0.026989 0.000000 0.615057 0.754261 d1 endstream endobj @@ -963,13 +963,13 @@ endobj 161 0 obj << /Length 162 0 R >> stream -0.637784 0 0.056818 -0.012784 0.580966 0.806818 d1 +0.460227 0 0.071023 0.324574 0.389205 0.149148 d1 endstream endobj 162 0 obj - 51 + 50 endobj 163 0 obj @@ -1035,7 +1035,7 @@ endobj 173 0 obj << /Length 174 0 R >> stream -0.460227 0 0.071023 0.324574 0.389205 0.149148 d1 +0.650568 0 0.088068 0.000000 0.593750 0.815341 d1 endstream endobj @@ -1047,7 +1047,7 @@ endobj 175 0 obj << /Length 176 0 R >> stream -0.620739 0 0.051136 -0.011364 0.532670 0.789773 d1 +0.637784 0 0.056818 -0.012784 0.580966 0.806818 d1 endstream endobj @@ -1059,19 +1059,19 @@ endobj 177 0 obj << /Length 178 0 R >> stream -0.582386 0 0.051136 -0.011364 0.531250 0.615057 d1 +0.752841 0 0.088068 0.000000 0.664773 0.815341 d1 endstream endobj 178 0 obj - 51 + 50 endobj 179 0 obj << /Length 180 0 R >> stream -0.752841 0 0.088068 0.000000 0.664773 0.815341 d1 +0.281250 0 0.000000 0.000000 0.281250 1.000000 d1 endstream endobj @@ -1095,7 +1095,7 @@ endobj 183 0 obj << /Length 184 0 R >> stream -0.598011 0 0.088068 0.000000 0.532670 0.815341 d1 +0.460227 0 0.071023 0.324574 0.389205 0.149148 d1 endstream endobj @@ -1107,43 +1107,43 @@ endobj 185 0 obj << /Length 186 0 R >> stream -0.281250 0 0.000000 0.000000 0.281250 1.000000 d1 +0.279830 0 0.066761 -0.177557 0.201705 0.343750 d1 endstream endobj 186 0 obj - 50 + 51 endobj 187 0 obj << /Length 188 0 R >> stream +0.607955 0 0.076705 -0.009943 0.542614 0.813920 d1 + +endstream +endobj + +188 0 obj + 51 +endobj + +189 0 obj + << /Length 190 0 R >> +stream 0.676136 0 0.025568 0.000000 0.650568 0.752841 d1 endstream endobj -188 0 obj - 50 -endobj - -189 0 obj - << /Length 190 0 R >> -stream -0.363636 0 0.031250 -0.007102 0.323864 0.714489 d1 - -endstream -endobj - 190 0 obj - 51 + 50 endobj 191 0 obj << /Length 192 0 R >> stream -0.279830 0 0.066761 -0.177557 0.201705 0.343750 d1 +0.582386 0 0.051136 -0.011364 0.531250 0.615057 d1 endstream endobj @@ -1179,19 +1179,19 @@ endobj 197 0 obj << /Length 198 0 R >> stream -0.650568 0 0.088068 0.000000 0.593750 0.815341 d1 +0.596591 0 0.051136 -0.011364 0.545455 0.615057 d1 endstream endobj 198 0 obj - 50 + 51 endobj 199 0 obj << /Length 200 0 R >> stream -0.460227 0 0.071023 0.324574 0.389205 0.149148 d1 +0.562500 0 0.088068 0.000000 0.514205 0.815341 d1 endstream endobj @@ -1215,19 +1215,19 @@ endobj 203 0 obj << /Length 204 0 R >> stream -0.580966 0 0.076705 -0.007102 0.504261 0.629261 d1 +0.650568 0 0.088068 0.000000 0.593750 0.815341 d1 endstream endobj 204 0 obj - 51 + 50 endobj 205 0 obj << /Length 206 0 R >> stream -0.562500 0 0.088068 0.000000 0.514205 0.815341 d1 +0.598011 0 0.088068 0.000000 0.532670 0.815341 d1 endstream endobj @@ -1237,7 +1237,7 @@ endobj endobj 207 0 obj - [ 0.636364 0.605114 0.460227 0.634943 0.637784 0.598011 0.676136 0.279830 0.636364 0.464489 0.605114 0.718750 0.642045 0.642045 0.718750 0.642045 0.639205 0.718750 0.752841 0.742898 0.659091 0.718750 0.356534 0.281250 0.607955 0.625000 0.616477 0.642045 0.637784 0.639205 0.639205 0.582386 0.363636 0.372159 0.596591 0.281250 0.620739 0.590909 0.625000 0.637784 0.609375 0.363636 0.580966 0.761364 0.625000 0.642045 0.281250 0.889205 0.718750 0.460227 0.625000 0.740057 0.642045 0.607955 0.598011 0.948864 0.571023 0.464489 0.363636 0.609375 0.585227 0.580966 0.264205 0.464489 0.642045 0.281250 0.889205 0.718750 0.623580 0.636364 0.651989 0.637784 0.727273 0.464489 0.650568 0.237216 0.563920 0.237216 0.582386 0.718750 0.752841 0.281250 0.372159 0.676136 0.607955 0.363636 0.742898 0.596591 0.634943 0.460227 0.650568 0.741477 0.279830 0.637784 0.585227 0.596591 0.363636 0.650568 0.460227 0.718750 0.580966 0.598011 0.562500 ] + [ 0.460227 0.636364 0.634943 0.637784 0.605114 0.598011 0.676136 0.279830 0.636364 0.464489 0.605114 0.718750 0.642045 0.642045 0.718750 0.642045 0.639205 0.718750 0.752841 0.742898 0.659091 0.718750 0.625000 0.356534 0.607955 0.281250 0.642045 0.616477 0.637784 0.639205 0.620739 0.625000 0.582386 0.281250 0.363636 0.639205 0.637784 0.596591 0.590909 0.372159 0.580966 0.625000 0.363636 0.281250 0.609375 0.889205 0.761364 0.642045 0.718750 0.740057 0.460227 0.607955 0.598011 0.642045 0.625000 0.948864 0.571023 0.464489 0.580966 0.464489 0.363636 0.281250 0.609375 0.889205 0.585227 0.264205 0.642045 0.718750 0.623580 0.636364 0.651989 0.727273 0.637784 0.464489 0.650568 0.237216 0.563920 0.237216 0.752841 0.742898 0.281250 0.279830 0.372159 0.607955 0.363636 0.676136 0.718750 0.596591 0.741477 0.650568 0.637784 0.634943 0.582386 0.460227 0.585227 0.363636 0.580966 0.596591 0.562500 0.718750 0.650568 0.460227 0.598011 ] endobj 208 0 obj @@ -1245,13 +1245,13 @@ endobj /Length 209 0 R >> stream -x]o0.*JQ|4R.U'CZrc֦ETj?y|~Yoܬ]N2\Ʃww$ת9~ s=&<|]fw!Y,T]n^>ӹ~>'JԺOqήU,uGiK=~N)|1fhe7%,[nL\݋O,+ƫLF3FFoSg8 )cSZT<LΘu`a&03c`h;}CP!W+c1:{&1&\ͣ?)輢?P dCI C4>*{!C ZexFJa?Y>?Ԇns&9cv8Cn׻?'qS7!z% +xn0E +.E`/%amPvԲ }Dxq -1<gfwv&uN]_TZv L߯S8㥘ܼN]}vs~-R!]z ßpbPpf5lzZ>%F^:4myY.|]?> stream -xˮ$I}y}.x2FOKxLm]c<15>yo>Rh̏Ǔ|?n -M2ne۷MRJW2{~+f"ߩ3?; cl y>>/O ;~n5zx6EʿAϑYe,cϛ5[ G8{mmNڊUx\vy]om6z]tx6~{4uohG. Gcj|NQtZ= -׭QELYBd@aZHV -hAuYd ^ۊ" Vh`|QIophxl[U'i3~ZBH)?H|npt1Pu?n}pГYcU'+*r1#cUNNSf2⠖scmQI+4!r0 W)$3D` RFG9,E%~iHczjjޑPz7⓼ҙZV`]kOAKXDrVFOx-^tX+:.\ƤW"3R(Tn[[ 0`f5ix+!qh[xD*WcH+eL -1K,P IZg$Ը+ĔmB N(@Ӵ5?$ -R,fiQyQ3܄iiF$8zf^pgCV up(aN|f)i<v'$Y&/$8ՋB$;7Y;UE6Vb9P3ZhQG7Sd*!D) -|dߑ~c -E ~E\,,u #EXxymQeeA' aދTK^:47#kd$`c8fOT,bQ^bmƩIPȏJ<06(cuČ2٨J]uVwHϜP,8f zv_0ň@I@T[;fMF9%I7Hl[X 18y*V݄+$"JYc[mg,'zMյo"XeE=Z82Y*>qp\Ed[ddQH #B#J+n9p&JrJ\ekdʞн_=Lazq]|lՀAFED'H6tЂvc95vNĨ T5퓽avAmQ0T˥N`G 6x9%h%gVj.i=-IrbxH(Ňe'hΗHׂ2ٳ, $ɀrTC |-\3ڑo8 wz#$Zӓ%02_ ?X+t%bّ&gz{cUߜ^@lX#sJ JJ91l@@{[!buJYQ]pꉵ1%6^XnmV'F<,\!j KypOf -yN PMIH{ %ےoƗ)لblV!#kI V$xcd1m°(-n3`G9ƲWH(AްSjzl8 V9td*&ʂycǦ;kYܓ5i/MvEx-AFk3I!P٦n  3O&jk<5lU9DMTpYK/`co]3*uR؆ܔXҕK -= ʝ*Z`):hfOltb3Xk{9p.2ff;eqšpfNqFejE!Z8m sYSV~!B"bFWBl &*QeN҄eLxf!`e\Ht&ܲ>Bu]6@:U1MɘZK Ac 99kH -Ԝ&Q /itsPF^elRɁ:UQ T&Q`,3Wp ڣy(X]ldHOGV<9Uxj˜F+V{ UTlԨ ѩktHJ\0x!\GrS}=~]%~qM?jE|WCG#@ۜz̦l܊)U@-,w!fS31hR\j =8}& -g2tFzIQd?n{bZ59fdpMA]X&}%u1Z -cПf3(4pO'L/+FVy2[;jуܠYW&|abf+9Ŝ%SǮϷ;*X}l)qrnWM8"U4%vȅyF" -$.'&G31MU%EAS^& - q^ʨC7;+k-u/?cf-ykCN;ݎ$}X7  8TC#( -=;۝_1l hPP񹜜Tƾa*_l@ņ|$PlXEJJvtۘ(+ZƗIKp#AN(izS 0b%;S 9,@X ORդlyֱ~fƗ3_9`&`/o -9O`XkE -+Z=Nq-0'I^hBi]v%FlD+= }G gui\ΰ-ElJuG\$ꉴbQNk1Ѳ*C(oQJ[ -$ZjT*᫼HZrOQCDYat&P$#hp7꜌3`NB`ŅکeN۳Erqmcf9Q{͏z4%hE(k͎ZQ]BʴXˬTaj k @l17S_\a<~@>2?r}o~Fܗ{XrK~ڏ-}~ziGru&ij WxrbMJA A(KS77gCc"HlI5ȣʍCDzIz;[ uQPN~Pӽuoa j63E=X [֜?쟤@^ IJgtY፱5U4˺A^_w?\9}W];~5:pvܳtQS -roO -i]ò¶aI_:fub .c|}aY G ->,H&2Nx-`Vxeu?Uk~zpQ!)?zo[SYI9 oӪ]AeѮ-Zr5ՉZHJeXԨ!zbۡ t!AՃ$mj]tO6DU;)`F*YiQ;n\u`}a Cy[hPcW1LͿkhyM - -u^:d"sp -T6PRquD;5rdVuTC3 r8s S|VJ' ]y.hƱbAQqM]ɬOuAm v\#Eß`c1<WkR Jo*,f -a,w}yHkb݉9[c}Vа8Q\O8~hMZ?ٞч(Q1CyP,s(F '$[㶽,y܌9u?0Yt]us8ٸΊUέ\h"-|KgЅ;am wg ,r`|I Y=5MӳrO[cՙ v}Bqv>co5Ov9i̺a$^ zqd):x TD ꕠ3,:H!ԋV E1{5D@iOG\&cid^cyT2H5!6 u 2BJdT 6e!laULW,ӇͼD. 6acG?Q11Ov634cJ²b@P1fKДk*:xj@Y:+$H} ]PAepo"%CJKB8UB k`)IKzFd-۪'Vo3CRu$ xnI]^#RTSd(q8 -e%NjR`x~̸/^BRJ~¶ fdkDH9$J=X~ [j]xS HW{ZH"ō׈vĺhY#'Q(قX%k5"YŹfR02nq 4w2u,%=# E2 JY:Zz]#gNԭܴ x}HW 29ZBv"QM`/A׃j1*;We$i"H,L=P]k:RCM &_G '6Б %'@Z@kqJuPNJ++G!SԮ @+$ERY(=7{Ki`[qB+s@xȒ|PGlv x>A''!8_şXÄ "C+UKς{ X.ssUN>jT&Tœ®ZCƆ%>_rtQ$L|yڏ=?_o#[C|tHy1QƸ߿=~58}2^eRPJK`f e9$;3$Ȥ`GCTL9ؔnPyz{am3>߸z=4ӲqeTHJ:LAL \ -T [(kEetP:XP 0yقﻒ]"skÐ_5>@E*"8M -]HU dIYbG V}&nHZr`IS͑VωE>  #l9^4m L(A]bl@ȊQ fÉ1ks)hGxBe?.%Z:ĤYӓx&hّ7+Z}yJkb ^Hl'.ʉ 19U ˢƮEdZIY҆QeqN*½576J6um<áٌJaPxlTYITR ylE)SI~J9Yfekgۜ-,ݾ='24=c]@X 5Ѝjt;g0e -Yy -Hm? [ -S - 'H"D/Q[R٨nHm&yQxbT PbPv$H2NKp $4/%BQi1AW7L)dDʆ:Kl=2VҤ9e4apU!O?h9< ׁ5JvHn& H 0d&3S& K2ߕYuH0FuH1 V{;Wj@s`IeB{},)Jd Ơ6qYjѿFDkӁ tB@}yщT2 M&rЀ$! -$jAg^N?eY9VɎH6lcB)>AJ*STlTzCuWyD<[( 4S,?U8; A Hy,!dC~UC: oxV&kC˸F)PX1Pv#sJi)$3^I'CQ[ż!{%9p&7K뭚&:3FUI܊SфxF,v1[l4|)-7`B"QT@堽=GY11"Gj -Uz"McTNVZ.Y̐dc`mFWU\Ux&vjV |A:z@RzGAA_$VeRD23NMbb6(O`;1ٺ c9eU\j^jr\2y -bcWvZ}VA(pdYo[P'e+)S\)ȄVqҨ^ -Zԋ*ƀ6VJg2TLa? (3XPfpZ<rf㑰hv^SyxLHEˍYdS}$Ajf'd'@=ca -~A#tGȎXESRHqWV!۠.!U}5M*Sh@1>Egd*&I7ͥ9"uǨEM1:bHaSح]tc[bCc"aIkjL+I@rnKA&%^5N׋GX7WUsl7fHv,LLnW^lJ/h(N@ VNV(a){b-Gb_#+QDf6sF-SKP|,l|SR,e@#R%,HێbaL)ibS1mLu~5ͥxO1w>\ c&a's,$}YE[s)aH40F91Ts56/ZaI[ySu+ԾsB_A-zS,K)#txWRmX%5HY70^c%ΩZ*6Nb(癑+JQ TM5ӨT'I%jXLf 9k ,]((~7.[}0W艶jW>Ncre~966Kac$p9S{eD"`9,o92t,  -씮mQP鹭5 UMGWoڊ`s ed6&,m r7@W>|5rE)ŽK*,]G`ЫrYO*DdQ(uԯ(# "J~S%q۬}Dy*H튒p\#Y@1E NY8}k){2[xP:W$I|!``]R+CNY -&Zj QDiP\Q:!簨HA){/ΌVD4U,p^Qv.mb NhyNI82vE3ep[c$e] a5xS26U*i%H%+Zi(Jԡ\nE_u7_^Q+ʝ?|̓HQ -?EL[&cWX,:ԣZ?x "GE>)%8+]gµ}S'^N^tZIAקr/ss}';Fh Grȩ ҿ줠ֿSy'_TZ*N-ݕ~2uC3/bxa HC#?%܌#AdglT%Б75$ooFp]sr"&S8'dTeW0md2oڎ>w6G5XX(J6%禓Tj;EͶʁ+?A״=AjS9g%( VIM@ߍDXXֺla*i1 2JdyeAκ@d*EAe@9k@dfLMYIne._ao1t>acGo;zV8B(kSɎ_WU R=|ɄyO4A"%:c,ϟ@:mS㧜cy{`9բ)or+m#N_gu]iX,IMJ4812"ŭЂQ䛉xb;q ;uu2`6|8eHV'r3T,S~hiĎ&lK)LLɆ[pȜMWEM&qY)rsm+z6S2ֈP @.DFn>bFnX+qV~,&|^o[}nMP~1Ak ,QƱ=~ɤ'+W7îqJ*:J&G"ς$]3u2`œP[';g AQ; zʘ| t]`%W]-T_qjD-=ei r;ŘvA{:h8?AR4Έ@EDJ_qҪ+DҔqVsMW80/&$A7l9'ہ?WO== 9,@A~ԃ{t1MJSpACE-$DEiOGY33uI.nx@SSr(bmuija\2:s[qmTzxS $ \.7S&D"L,| -'m®PhndsSLBƉVaT5b -o%*sTF7r@jo`QKRJ|?Z$l(+*CաfRD:n*@Q#&H|HNԈ&0RWJO^y( q*@ۡBB ٩N0ǾU,1ˌ jdTf[{$0 éͅHgs'5ow - -?Qae-P$Y֓uPx<55KEelJP1HE)qroq]i7KN5(q0s/UB٬fOqF0pGSSD %f@רDwz`|ٝ OAa C9Kt;R+aP`s.ER(;USu,,e{&<_Ip'  В>%S$k." nc x1*=\XoP\gE0Yb,~Md;]6ݢ8iuKq9pJx7ذGUX#EAhI&{Z" ,)\uL0usVHÈf'81 -JN?oEj H! J JfjGt]`0AW ү <ӧ,ƪUo+\hq{R&/HNt+=ޗjBٵef&Ձ҆@wS ,OL5=:TUkN,PvzM gbH%}A;!!3җpF 4ԉ4˜]@Nధ)]''(,F۠P}% `)OiuneH;DKWgq @@S0)5É"OU({D4"8lft!aƩDed., P=0Zay15AAP*vZy:Dr:jvh$ L%KM%"h}T%ڥ ? HLS~d>#_#^px޴Ǒ#ɫǕ͡w`I~ԃ{rh8%S+p+;6?ga S4F -c`:V8 1LseقWm jU,W2tܧ||> -#2LjEc_Aͺ*2|v - 3cjEZP 9oLI7;yN4I6A5 .N {rfV&wLtK|,8+lR I> 41Ǵ)$QMhtFPqY -6tU9\Xvl[5mwBGDMVekE ,\42ej,n0O2e $|:;4Ee Ǡ -qmuPL3 -XS3PF-'ֽn9?0ҡ<;RF.M-Iir5S< sIOMq?Dl~>s4ES8+nR2>sb? -eyJoBFN$+G%eY1Va+@'#)I'6V+ - ^#q1Ӂc`^)ڏsQkTRir>c(Ij{'H*,!$gZ4e2h.RCkX%OToP3$N[+B2ZlszĈ!9s -n/oe%x,(ާPO]cX1֕3d'%=%'p c2%I'=ޟ0 /н:i0'䯑Oԃȗ{QlP#hPXifGi !`te@el cWӿJ8ps7O1v T:#Ɯs퓢} 0[=T[J5ѢcG roT1*W(½ =1eTvR&PCB7ѻ ]fܤeELd4AkةWvKJ'$#0<HG׎h3$?ƒs1U)@3$ЉP= ] j/j8gE4E ?DJSyJDi+{;/IS#8~׈ўUұ,D`sY˟ GxBeB[F_1o9f=J_ǒ0ݼّs(;U1-缎D%52%ۉ >gBh`J -{p`hMG'iV?`):Tq;(@yo(l4 Vg31q@ Qް$UJ([Z5o!dXZ"y3*(+[;_'bb*C"8e@`~Iqy_u1 AO24Y,tO$8r#xSԹ]"\CwAfV3["LXgPߗ=b 읤OfFa?Kr=jY'=>yc~ޚaH -u-OSh$ FO//+}VTwU=a8<'O`iʌH1PsM)3ڸy:y، -M߀Vnz -kjT%~B%peT%Rai^DauϰEi 1ܐ53{*``fjLkISFlB#5w73ar sNkH?thXDq}*79uʊM'X j >^s*A-,G'28:MXl,] 0m9$akE'e[Tϧ_Dvޢ-[Dn Y(_L"4t(Z%36&: BfHaD{Tş[tZsB.jM#D0@J9mLCeQ}C8`΍SVL[r܏Q -eMFu3jB%!"p`ffs&\ -=gkg6 ѣV@Bh芹 VERHYh-\kFj QK|˥"`;e [oIo/XK(-eНLDqs'Wٗ]v~[ E' zgb i$x3Bd9Gp0```*E"ePheߘ~F^бŠLdPxԣ)8|5tubfNd1:犴9\fГJҰa]i<BibJX?/>%Y #.2/ځ(nۦ彮lB0 -u0TKF`Q464ҙ+d'0R4#02ݰa5M7.`P>d=1Yzs͉t#EعF { D'䢹YLnTZ |$I,"x^a$a-GzڱC JuUy ؝FMjbr:M~T䁆{?Oy}|rA1g`AΎ0i恓gyoP'ygJ -] ` -6ǡu[zI̠D:T|]8у ׸ĢTt&k3ؐF --V)g=));!0En)00"āͤQS@ . -%O[ }os> ? -t zSVށdHo_Z UnE/N -awՅ;q"Q19DBzg*;i)N !1(&&"Y*@ Dt~S^JʻF17eGM08v#(QgM퐩 :H!mǫ،V0"L T.%(AJ=P(aEV́MM~(Qؙ%sS1!ewTS;XO/1md )ɎbQ8*q XrM7ǃ78w f8XbSչ=_YWȚyDg i}hBiz]Q=\X78Gw^G7:m5nK> -5Io%-J!DpRgA_/:*&lU]J/1Qba#ជM(!8 smU-&;%`m`!Baۘ#Ռ"|$bXQl!^%]fM◑=1T(͘7 h,y~ݩ׈AtQ@9"ޘ^)Xw)`b y." -txLMǑPiG (6LI_ H`> HciC.8= X!rfHB$&O -UyS QHi'D‰x*NaoNmzrfDͧ]i-{j1MHKh* U\qo_ĺڏ~}NJs4#ǺXH#H}:ׇ˩mu JϺgB-;iP0q6^/[Z . -$ŎfXEK&C-F,t.H> 4'r.R /}+ѐQMQ&њ!r< UK8I!LfA|Y/"Om*O|Ep=d-'.X5trFwPPjy3LJ4,^GYH8hRo9N*&piF,g{ ٕxz~{la&-o]] LEA$ qeqn1Mu"Aj) rNTz9M7`$ni?O̮)zH&tHA*7G%q ΠUn#\VS+MaƑT SP8$Mr.e+_׳e1F(_r*eW^0jB:kg֪&s1d9|Fť3IqBHbEb[09ͳ\ I5E ȅش=/e|'I_+6扱HCi%4'4^g -Qrt-h6*Ku.DVϘ|Y 1-oH+ݟ`| &.+b_ӓ   H ѩ2*B+ʑsjH Mc("3U G(Hdcr~R"~˸y]iXa%DCiaR$:$%=ZU)hbKtll!O d.i,B ,k5/UUꋄh&6t`sc|0jdou^DZIΠht?SL9 `t5.="19S "B0~&t_H(FeL8i vf=w(u~ ېdUl(5pl(k'#NeyO 0i8 pɂ5,w/v {[ϛ5?;T{)>,z5e/P^lh'Ͼ<]uԩk2i7#7jeФn4dT - Ú}}Hs?G([Do)Xco0xX|.s;f' M=P;U'iv</8by Jj 1->l2niV0.Afw D^рtޯSRoMb}c|PHxSJzZl/WEWж8\4ε(US;Hد0g&O=a$Q4-]*XJTVﳥZ0AʱUBvuM3A*3$ȣLM+cwdkbpDT]bHQ/`)[wݰ?DN)S]q=ҕ4 ,Mcv+r}tT][.R8 )bp}"%vP m/P_M^j]XMԩYj ,4= XR_hYƖdw$ݫ:4 -$쌭2!SYْ5 jŀ2Рq$ .mgP J:Yo2qxeQGMMYhYB|v? ƃ@]V*;?9|2 AZ"HAhrTMaٰR1"E&rBAM +,4]8 hrc&{pdLk?dv]#`mv&SBDLW5Y5X>h)/ -,x+{?~?*kF6TA~]w<aMOC>կv_Ջ/OTM6i{Ιl'h( Xf@s E&Ŭ6g cY|E&6W M8߉+-*̚HWe S&:>;! d)9c@XMX^ -U?_li٩ۛ[zs4c{C}ә"_&[qɌU: gXOͺ [ w4Ⱥ MF Z}N\ݏ '$ %MNPdvZWsۉ|W IOZ6$p,7(R 1^<>H̒dUݸ`ΐ٧NlQ̂ʅ(z(e2W(ڄm'8-|m'IJнm̝l!iAsz@2оHU^r lıybJ#z\@=hh\WFhCO(S4sp@VU SנEF:WtasoM[ѩ zZ%7}=hZFId -vZHE[VIIFN2XrTj.Mxhv| `a#t:C|܎xGQ|G1ViNT${5K%FzPq|!ճW}Iwa}f.b4 %?Q73KT.Rٱub0'?6@9:3[6ݞGT{DQC#! [6QQթ0a SpnaZ4Nh;Yf͖]˻ }€ T+kz*-<3[>sG_R46 CE̪,2ƦbdMV~/*]ԫJ԰$* -MIWXùL}0{>`BH05g\ -doȫHaYăArT.ʅp,ԛ?T0n$́q42,YBJi k -yt+"i~عiZ -*Zsc'iʊm!aqH P1:KCE$h:>b泰jnfS"H7sh~-` N=*o9H" q:)砼y_Bo8"mX`!+He͚BD3< Q#Z=LPf->Ꮱ a|ǪNHcGй_O>XR^DTRZEp( Ž#d/ ]>i/)4)`&gi6Q-b%VҳIg 밙0)gOq)󯭋3;ݧ8dp󱡢TK⏪SN&zNSkJ|켂#F"T"u9mڙp&q‹Ur*_c -yB^:Hm=0uku7s#^K*@݁!Bc/΅+Sխ(oф_n*~e{C|G$0,QUiq  18/͝.:V5r G[QK 4jAB:zsw5 ĪdXuKUdcjʑLL4CiaZ1yN=.ޠ~г3wB5UKadC45(G,VZ$c3!Sqyc7l1VW D@,j@щ3R?JLPHBe\^]E0eNbJ8k`&>RiNl2BҳF J(HNzf4~ %͇cuS4| V$s{ܴ?FOM7 qEWdDWD)5z8x=Ewǘ_)#|+sucYޠ5mqOqjѐ ܛ;3Ca웏 4>u8&=5NW^D>!S ~AГ2gC[>Z Sy<[8mt9ąiZӦxe7g@q;AR͙:uqة㊮_OqD-"P_S{Emʗ8#fR3.~p0Kg0ݤXaMLF ~Ig @=h,:jO@{&'c=شcVtJH`Y|A(3tN|sL"'UKKRAH (MD/ Uw^i-<WY?/۶g*G(O?aLTmMwb\>RUƌpӾwbWiLozaΠ7>.b*窣|䷒F&)crfbF*5,lpM .xY7^fE>Tت=Dt @dBR>ZmE0I1& 莖 ;g\onEn&]j o@EػE_ 5qʑ2f&Q}MhN %_Vd8`Ҍ&xt'KJMFUCa+8VAFbmMu+ .N9 A$z?ı!ϲF92ѦSX=~*Tв`ČN'f24 M{ӖfX;9$LXrMfSJJOsBJT 5Y3x اvpQ R8kTd $0lW,)t;`9*CEC -uo*Awv*5!_z-o 1hV/;|/m:ʞ,dX#XcAoeWͧExck~v\#,Q怜"l811}@+-Cly2 xAve,q%l.u>._~}{ -gޒ{~Yׇ7cJT@ _`P`\(xPhSzFt@Ӥ֒_AHRʅ:߳FQ$uDxBܺpfĂ}c'PEOeEUH@CD$A,(2er6/e|:5 oj]~ҿL8Mcê\luv;Rog_pR0[~S$P =4,0n1VE+f;FQcI7~kXi8dȑ>$)ytJ/2҉JfHhБߘiz&o܂ut"rx4b7SN9ޏMACCTuSM`D*FXSXĸjrS?1`aArmSQHb͡@4RqlX)^J4S-גF -Q@Jj93gPZjQtnKz^JV(TJ.}ڸKMzǡق=x@EtI^]2)s R_-j#z@ ^i8c _df=K?ǹ|! TǴ@&:"D+{2C]{SDD@9Խ^LeѤ\=˛VDiIXB"܄1rR@dM o= &c1Bkf([8~Eo,,f{9W(N͸2&TܷCnmm<`=jSELB8ܔFo#B_3jP#n;+yG5FA -t3 -2 -p17ZL'}Qnsf y'jc@F{Fxn^zLg ٖP-EtqG\Q(a_ C}Q|_EÊ x T5!jjyCް69ffߎΙ\fCqD>[pD1|\˕`6;E,5@ +#+KLIԜȁj֮@wnar`QBN|0{P'd7#UHq\b.JDB_@ΤO(Eod+bՐdNc[?Pb* ˺=bZa]WEv- lm25FNCž؟CDnR֑W lAY|Z3OU +b $[}pB٪zC%Z0ΡP C5#i aC,u a-faCD!쉕'LH\] SFA J &Y0i'+*(04 frIrJ%UH$.@4z!-P.]$J@X ̥25` 0%Ŵu/DSi)1x]kA9AX yݹAR֋Zld媖չj9A&O`" XIT5ղdH9d"mƙu(w*ɡ7[ۜ bRP>]fWX)s3<+^⯌8QmDa4 yߖiN_~IMuUen,fDϚhQE[TžIeNMT+D~z˿)~:Ԇp@=NhJ@?kÆ6vHZ!|xBSDTT80* qu -_:kEsƯXyddPU&f6N]QNP _R7˯ F*t;UVq-,%Y_cg./oi_|t %(;mfkbq4+ۉ`sͿK۳-VIZ$;` >Qۯ~E'h 99Gbe_yKcm5i:|Wz[yqJq<[nh󊺻#󍈎mk-*JZ|Eg7] 7uqiҸ߆z͏5ƒs4/r +<:T=u}[Cb_!W~ź X)wn0*^7P>w=-˙*k jW6!TYc/eÓ ZWڜP%j~B;iVAM -~߿߇% |ǪYwX.:u?9'?I.meec_-khu=BS:g1Zூ :/ؠ sGp^\ 7X+L%j'f2ni]ò¶aI_:fuNcuYw]HXh,U_X#^@^ 'A0+@7a^r3C֔t3)El-ppsot tS|{Y$*{;uxק/z8t; nH.)>±K |Q@В\H|"'GKQ;NwnMpjC?y YQXg{pA(g@+ȥqz'M̺WSZӜRz -TTw2-;Hѡ@_J -VgR'8nrL]\}u S[Eʙ/ w%'npӌlATkuLkٚOuA~/0!WS! -Լ|N\'|os݄B\_0$O7@rPSZd; 30 eŚב^&&ޝ#:ae8 -r[{Ar!iLhu=ٞ*[KN6^ZvF .IоV7hlA}̃4lV"":>;.t]adך6vJ.pn.^a"9xznb߸yw"W42۱|C~:}ZqEv3)K~Y)_{D -#8e$(1֘t2بo`IE h0sZ=?1XVߞ,: - dFu w88gKr}SOI]L$2&t|dê.#ZH4( ]ÅfOd-UE4ZiHH|Lɼݣ(\0vu <e:FEK\ع&&+1tbtO&i|eÁm^Mk0N_+f :k3E xv-rFQp{D -/ -hc1 r B̃d@Ab25+ M`ad2^)Ci1&\B!RIXfdTVŐPNDōH}+ @F%BZU.LZBH*d` A_ Ck*D^A5@6 (1(^]Հʘ'Nzr29_u-2oq7g@i&f=!6xnȥ(@!ҁiFJ/hq*ا.4v;tu TlsЩge/ -V4\;~ʔ gAndpކ.ٽ ٙhT%$tJ VZRDMYv*A7s|hEIYg%'Ǡ*A=Qk^}·i ]MN_kx 2 e*[zJЙG HD EPp H~OW+AѢ"Xe`$zpFp mAxJBP.W0#ΚXq!J%2BlP\ - dDBW) -pڛyN,1]$l}Î;__u҈T|rAw9b@P1fKДk*r?Av-8?0#='8wѪf$i! TV Z2*DP\%0Ab8jD&ݲzBl8:$QG2~Um$wL%uAzHQM(L8VJ#1Vpx IH*A -&M!P(`fW?HՈ8c)+_t7Z^#뢝j,f#yjFL7EejDs%ͤ:`:d܂@"ci460*d9XJzG@eFt2^.k[Sa1Si4tABer -RqD:^,0Lj1*;We$i"H,L=` -RCM &_G 6(:.^z8TQT7NriG25M[BpM] )BBA[GX}U=#~V*uzj##KBCqU"e/௤J3S4a4 p*"otl%y@Q8M6kΘ6~}ڝϗdn܌uZH@ -  -0"?n>7>Fu'˃{omR@ULfvl1x PJ+99$qg h`[~iܶޠ&f"+'9aG}`Hts>H}}Wj嵮-%e;ܟI$ H ?)J aYW9'k0>7¦{}=Z'Lj?daSPO[4HGl̍i%)K˟u*R?dǺdK:.G@b#wKyٲ9=ƒdl%lDܟO3ue=~o57L7'"Tv*Py*J,kV\igq" 7eۇi^o^Tyl=*-~5'Dpz#z-%wn;&=mFO6rްv/jJ\ _5lT U -4=S_ȫՄJ]w/xxAY+Q$?՜X%DT|,̧pr+~pc(Sh}O(U96"ү\+fORg9'?)E6 *۵NYhBG-Ʀ7'sW -듬hM%[w3ZoJ%>~n?bQ좦A\:Ĭ)thMQލZ\nҩHoL9_S*AH eQH{bLMemP"«Jfl[J-b;fdQs̿*KOdl̷O?{+}o53ѧR=@O/WVM>`d3$iQV=Bvz~y1bl־I7~{fPSܰe&'vJ?&tտ=5n ,^Jٮp`wy {XN)ҊAlYnįA&GbW'7rpyP]HœVp3HL׼e$({Hi4J([8iRDyD' :m]a\J7h$gTT@)@`FP"1ZYj=(2LjzyjE txLҷ~˽@IDx2L>@ֵҤ s"C7lz]Ȝkg2YJRk*@P4gTŲƋ:KToōUr&l-ȍ!n \%\#vHΰn -Pp=m(PZz}euʺU,MxE 7J -5@=RcuPV\vr@C0b0{Þ+edFh5MDP - (.VWx9u޲4XK -J/x\851^;Ԯk P`cp$̥G̚+P%SF`c%&sbqD׮堌)švY7%|* -v,/ -8Oy>LD`lz'S-I.4KҮi6%|t% ڢa KN= 1,kv4BT"#3XRx l&~hD -lhZI&_Liֺ֥! mY3Q K7 ;Vkr`T}-enDR!&sA6Ϙ1< U[hj #=7/X(Q -NeqBUZ\f<&1?rNwIT rq\)[z\{@HKSx;gUk)!XGJpn B'niPEwcQq; -K& YՅ%9)0F,鮯N)u)@?Y ^I$}d)Fe#9;P#e6?#-N_;o]3qSsPXLi(?RHUHa -M3TΆ L!*O&>2v E]egRx?8✲y|ºT,9oeF*g'^- -< ޢsSż$x(g6uw,Za7]MHRR7<<^#L1.ʠ7_w3Qy 8Ć:Z#q%j}ꗌ,I[.Aҗ"unN[w_mV|]L$,ݟ0S*_%$|^Xx.H_3^Rb~զzTWc -eI$. a(rnbߝ>MEī2;v@*)nDZL,]f9 I61̞;`Mg9O~X͋*M|3ـ;xx2Fꝁ 4Um%? 3qm#dU~4~OP5.w5Am&,;CRaf J5'ueae4_D&w JN硦{l0_QKXz@i[lV_c{אIeglO|X)ZٶHPp[9}7\\$%?9IQU{u@VTu.sk`_5x:lT$ǠSSXm6SK"glRm8,o.b ^M7ȣpJeD.:_cmcl@c)tza5vCU2WdҴRGH%3Q'ң/r韪EU>2cfla>2VwcOڃ;3UO˲ǓvG^}7_P aa8Gyqуzmj/`8;Խ桋 }oߟ0|} -V ODbϠ鿉cϰLgP:mkm(w_QԶ=XD݋*iLYB>NL5rLşO4Sӵvf6B~k˴BY1kT6Ry'/rL}C -HBoۺ=}x; 5i,l`~ R>7hU+㡏@B}~ʆ覉Ri wST_I {Kw5;T%}B;UUa`^A2eoio։j99FHg|ݜE#p^:]іsnDٍ4kھ@jSi@z@/4~GPB",d=01^vk1uX5nh4(1Q%D+3y6fC2/)kCm*cY}mQ2C^xUX/3LhX {L+ldׯ^J?ݺi^&ucDMq/75o$+Ag8U_MQC$l~%%[dF6ܪV@3B ^& h`6%G -h,؊W)rOub\AZ'2r Bb%,P k%Ȯ_'ۿ6~r7z|KgN(t^&hi>%_x )<_ZG熚$=3:>Lj~oEY:G߰y^TfzFv78l9ݡjD%|70$) mm>L|1 ΐoo'(ZYo.SC\wvkT7n/q)-pb̹9$3 7L#@W$ ر˭a|Vmq9*6ON*yHvOL9 xjh /+_'?iY*hs. AoWA酓G+n,*L,`EBˉ'V@=ո/5D+yȢV.mMU>]9 - Έd7ǁcfK)Ģ9$7g1<#ąc>?KUR)JU*5TSxv d KNH$-\ߦ70k]F -É폣y:?#ǣ, -diٷy} ~-*X~j0BMTxl3LF]+Dڞ%dguPu, -k/ی-"||m]ZtuYhK~F5x\ ☺XW-ӿ/}ۋK-V~/'89CD}; x??(~vQšs?HQ]?q۾@Ǐ5BG5V8R trl5W/~~mO/\F7gzfMGʹvٷic+YQ{=Vfll'u1fH3R=QIDd~I2o'[1u:͏ #oQDO$mf#KРXm7**Mvx#{=_F~\o`SpXz-F"d&F]Q91+>.z_mǡ%#Q٤&{/!O=^jGuh ׽r I +-lQgMM_!*]QT櫗: Ht'jLΎ w~U:Y`;=muL U/o RuLk0uzדqFv*؀BMe*O)AbGII@bć (e3hL^VO)`b|Ax߃͠ |m%*dJ"k";v9Zzd5pTE%<7?VYB>x;J +~CB%Rmܛ7(D''8#m b%{lbXv*9OHd l$b7U׾y`khfd ǑJr}mᒁ%͹^F>OG١WrSM䂕n3={zBZÈ?(ٱ󣃺FED'H6tЂvc95vNĨ T5퓽avAmQ0T˥N`G 6x9%h%gVj.i=-IrbY$òMzpvC4KNkAYAsZd@9CYG^7ػBDmɒHRޯɟU,:RxH3PW*oNHi 6PX{{h|k%%QNp :[F8ڌMX/,W7[Y6dՊ# ].m5ۅa<'btyT<'BN(FRX$yHNdl$I=mɇ7܅blV!#kI V$xcd1{aMQ.1;ߍ[ܔgރUn hޮ_t"9{NI덲XfIs( j:}2vn#gqO֤* +6 }(ZOg{CM :"4g&XMyj٪rbӉ(++^޺rgTʥ =)+hz$R)ҕ;#T ++S$u!̞jBg#Os]Kev5%*=<$ +"C2 ֵq +LCDb2Ӎ(LTʜ ʒE9 C: 8FL2e}li7tYS>c1}Ֆc 99kH +njNE(քhty(#T/xŲbT@֌*I( +Iۅi*(0 +Й+MS͝y(X]ldHOGV<9Uxj˜F+޽ ,Q֣SZH5`C.(% &ǧ)!􄇲uyxW+⋽Xj>c6UGfVHha$}A.l6?v`.5ʥoC|7npy!i+cHg4諩E#+(%Z\akM$5یe2.7YR#~_Zk]a,ӌc%&7 eºȪ9OfbG#z4X>g6-H z+l>Pb\@}sr&ueq/@,)^KǑu+>|=gerLQ=sCLsX9h. _`6v̀l/<¡Bu%k +SF?L0Ş8fMᆺm\e5QlDDDl9DGK4;';ND%G&9㧇{h)Gpx0P~[(V6fi.ʊeRr?+G,(HSE ~ZnFdvj5'#{+4!!Y*4|0:6WrF+XA@8 kHXa1B[0 3f]]$ X(ySՈYhTv#.M6RTxEH+>,?ɾ&8-2$rW +R ЂPRI_-@Ҋ}{"3"a&EȄUdDso,.N%<,s؞X-Mh3ˉ:k~ gF&8ף)1D+uFYkv"P]f +Vk_XzgqtOM_ +a閉˷3P?n?7]~m?.]KCp<ӯC7vOSfƳH oR'jx< %@x_B?{#LxhL$IP<y2CyX6<@o_Qy.*tIjWоn>,\#8VfȺÿG<+A`˚sGpRkAߖX^V.+16ղfY3+tY/S:g1Zூ :/ؠoǯZ2nݶ㖭ʜꈠV{}RvڧuOtqfO n&1&}aX ">%¿u' sB +Eׇe6Dz)h"n8a ⵀY8FhWETVmMeM&尦6S NwEhAq\{T'jy"*9\<\`Q†_m.hYUs\궻w|oTr{rAt^aaUfUrg(Ճ:vhطK\zl:P wVu׬;y-0';WZTՔw25ǿ7# MNߩ%m Sj-=KE84 C\R:x]]ctF3 Rz`kBLf% rlf#0.;{ )cEP|Z; R98wPZda&j5kd{Z6GLG=D;X_B#5Ax4hlA@A6s3:ÃÀfY^hwmTg:+BnRW_8sd&/0-y̿n!Adލȁ'dD@7M=ylTg. =ٵV1v\܏:<"Rp ԋkL:HklTh7"49ViJ}H.: + {]ci:x穸c}vi<]wbL"L47D"c NwkL6WrI=]< z&eߛءbLL +O$>&dnQa._ط#+]$P10,Z:.hkbKN,&N7.jrݟ0aWv30mK+f >fN}O޴,FEVP<+_~h #HLR~=Wf!w&⦞M"''z#ÕPp=µ$e,3P2 *Cbx/PzWqBQе:J@R! rLEr+(Sq3h>(1(^]Հ]Nzr2^ cX*#,? Yoϧl"lȥ%%@=-Q413ͨ7S!sIx zd P]ꖑS?Q:KVݮL_hn!j쭠*S f KܻEjAhoC=ov/"z%g}hT%$tJP/^ZRDMY3"UhEIYg%'Ǡ*'vBh蕠v}rӘu5IJ;tCp)V0Rt,R'lt&b+Ag1 %XtqCB^3 =_E"bj` Ҟx{=B#M6f D%!>d=jB`mdƅ(Ȩ +A\m0BBI7,tB?Y:yN,1]$l}\1ǎ+|{ie!b{4bb lPgiZǔeŀ*cL͖)Tu0Նt2u/WH?^ +D WKZ +q#&Y#RZȤ[UOgR6H'&lI]^#RTSd(q8 +e%NjR`x~̸/^BRJ~.M!P(`f-Xn)JFteMG ]i!7Z^#뢝j,f᎜8Dd bi.ߥ]*Ε4q Ѹac)I)"hU"0vD9c5unMLMwDҽR )JJj{ԼT!$tWٹB.SE&I5NAfAXeZ+aj|K7A:(Ul >EMpl/Yd=AH\(CT'rvR^^94|v*G!ʮt!JHeX `-#lyS>B +YAbWg@xȒ|PGlv x>AEv{19%8en#ЙLƽ^#lp #g('0( E43OɼD9! _ 1-gVJρFb{I2ɟ|~3ZٻkR{H`D u])9ZpNdtYFs 9c& wjJʋ3S$xf[ U*%biqlHq+cB/ͤOqHTy VW0ON, e׈! N[rC-*t4=r SNd³(*R)HRZR_D!#R>M !c?mT9(#)K* oi6ق%4$ZƄ rWWX{$zϼ?QL&=k +%ZaP HE(`&T$[1d(WZ [7S!Z@d1-#*\)zp4NSg4i+ +dKqs$vBW #!WQ`#K laVӪ(!ؖdH_nE"D'\ 49fL&)ý +{S_{2{,Wp@2ef3׊zܗs1,hOؘ#'lnk(Jx.5 6Ls~QpjAfJ4ܿ6w،$VrOt7%xH}ʌIc7tbWCSʷw۪ YsXu]*+-F+8!AJ ]@U#'9Vk3U 0-hG i8@sL0q? CpGNB+9T'jV'>''!8_şXÄ "C+UKς{ X.ssUN>jT&Tœ®ZCƆ%>_rtQ$L|yO|l ѵ"!G={r~H0~z}ĖTKAq(-c΃1 ^̐*" JS]\r3`S]@ANn<TnQ%P"tx~BmHOJ_3;ĕeg}cF DawJv앉}p[iB<Q\ Dj +%6eP>b2(P+wde#&vΨejz aojXJe h6`$bY!>i۱[XL?95%M,u?w_OƸx)k!t UD=D~/hkX20r5 vr('aEK>,sr+ozڗWPpNH+Ҿ%SO}e ecoJj2 yyq)+fKx9uUc?B٩rbsWR <3}V 4J6Aar5 +C$D }+ $'F\œ +2jA5HPsLQıS`7AߚDʞl9ΕI_%X?9жS/¦ZB6Qk /WN9,*cPދ3Uw}"qEm8M WKXZt3A-S(&N̶9]QL(bYWBX 9ԦMJZ.RƊe{f=3D2udd?)8*[Wu~yʗWuEC_d&>ɃǕ1TŒh /켡}SB_~x0Gpmuu`sVbf}o?хe_\x:A-0@G ?<Ӏ~z}Ė NlcGpϓyi:_Abd +E2zX""!SC_'Ѿg Lvϝ$+ԟ#S+!S%[vdy[MU"H_.q:9uAw*/*S9BZKbx-]'y_74!&Cv9O DїKsb:O8&7?RQOIZ8DvƆNURyS3H f +5w 'Bi2Uo`sBVJUQyE F)3qXazD\SʱUUPdSxu24J-uȶr '*}5mOsjY/uI@*b:ޠ Hh3 OZ KI]1QdDfٔ՛dV)s`J6 )*|[gO-ԁM-M /6xU՘/3LhD$R2|: ߦ18?~9&Kj sQ-&qF02餙N{VM=ۤtN3.#rhQ: -E1G,qN3~^WW/X +oCɧ_Md1{"(7CE(*9E\n&6N7a3^OadJ6*ݭDClZMݬ.x*zE0h2c ̢HAQؼNxRZ#;4"B4.)տk.aY!Az *KTC'oag6A)5dD}>%\ql<]Tt%jMDI:gFd9#Nv?},\1=w1A`sK$[*Q .z҉Zzw01|o%tIup= VqF* +$TV]&ǕD׌+w oƁ)~1!A5uɴ3΅Cd^ H>mske39*\a`ʞ\߇0OC, <5hd'_4^*s\NFơ 'hYT0iP%r7Xb_ 9 i=)kB+`yjS#9{|(W*BS;D!if;[R0ޒ h}l}pkҌRVLjBiq,VE~iأ5אL: P^B^s[ӈlUhNV?~nUs4#~A8#hُz!I V5Auִ(|}Tr8kyF.͡\hjwzX%Oݓ"W-KTbPrpv N[B` uX.pɧ9- sYxj$aƣcJԄ\ODsM +RÍlU&%]4K\@/5(9Teb=۝&`nRSD3;Čȳ@tWAO -9RR+aP`sٳE*5dÔy=Bz _6XqR[R`SZ򁁆 %%} KtꑲƇˢbH'AC.;Oɩ&77&Bu\H6paoP\g%Y 8Tq^/KvU=CbRnV8N @vSA qDЄ~sMgڢV -W]U116L0;a^>ZeAVAL톪. - -( $I, G@J> 6dƛq>678@awA5sg܅PgsXͰ花 -u@w+PA8h[Y>%xOZpR1n# E+SNMZ X ZLB:$dv*} g@s+?Au -crbv\a_:'(,&ȉmii9QnI|NF\p -!@+:z,ݿ -YMhJ[jZW`u(DB#7 KplK0D2f47nbư15A!(;O=H?RRr_'>PJ|lM@xI@ҀmJH$S%o5#YkF4^p_ᗟ]V?H>} ⸲9z,ɷy}ً -V4KpDޒ?9h*< -_A`d0@)7L@J,[kCMSM :+S:BN 7f~<#2՞\G4;==WW/Kh9VYKNa~:֤X@5ً@gV7+N ^cYaS'x|1[ham&4b@֜ͨ *U ζUӎ|/h@aUA{PT]`zb4e Z!M$*Qvܟ@§߁gP-Asmmɡ(`:}-阮 L7x@EKɍh7ZfOmzA?X V:T#hBp6۱$eJJ A4l+G4q0&]qNe:Z>s< -evlJs[?EUF:a6Q[FkG/'yˋ6Hv_JvԸ!It^Wi03;vxE`F(? c4w,7*O擢}뿥pkt~fxoEh1C}/N) ;Vx^1@,K6KOToCYΐآ;mb[4Cj9m։,#͙whz'J&ްv \|r^rܜu&~:q0DG -"w3H5r+1@6UHKilVa_n6'DǴY{~B^"Ȋ5K6 KKZ襙90maBz(cUX?b愌CB=2;;ʿHwGک]ي*fk2T8#5vSsPr{B2%so~$?ƒ^ss3.TUU 8=:|*kA0n&F++Te(~MC%"9Np{xƣJ}G53;Uұ-Duü+˿/tD,(u -O +v<\bެG/ˎ4AŴ(?m$Я O=|Q"=)Й#:e -NV}?:=*p_"P{F6}Dx ơٌ7q (o8yv*u_eKZ;7H̚}aFɻן]~@eg{w -y/ f<$莆ʀ ULQqo=3+?{(5M<u˓%4SK - '(X I9 .-L1蟕={1<1: m/w]u 0Cp"Aq ݇CNH/ Fc(Kj&2F:2Mѩ! +ӛ2krw>eZ(7XȘTDCƊws eَdb<}y?eha'?C[ߗ~iȂh>[z3 #FHL@e@ߕ:$Q`nJN$̂މ{>Q9nfaKke[)Jd S R,8IkӃ tB%gF0L;rΈ,&.$UGDM4HL8 eg);Ѩ-,!lU:ʓn (]?Ӆ:xtޓ; ggG P]nߥ# (” ~7L jү45UOi圭WK:E&}1h_;BmbCIfJ9fF볂$ᴃ{VC~iZz(}|$F}zF/-,UitsSb z." ՟Kj҃5^bK F`TM郯Lx[Ȇ,1vT=SM MaD>eWuqA6\tJ&e7,Viy(&fyanι^_ݬջ4a}aj -/toJ˱T[* #Z%.2pB^sAuS[X˹$SA猗F2#gQ=dsԕ= &о!9`HL7`o߯Āڼ8C/-Q'h+K2. a_A0iQqٸТ~aqcO Z(7 -{P滽le_͡&PXoG9txP:щvD˄"h${v=VocSxGWg@$1O;,}k?t.T{iMu: W!lT~.H! aJ Y|18aPSlAeMO{ /F9-΀!5G\~ew':(jKsdڿ61c斢ݥs|}*8ˇ]v$>'w &> {`ie}A$d)w_Dc{tppMd)lB" H~z1X0~')Cgiy (sImSۅYN@YCOwmƹ~\t&ZcMlӷɗ?֬j<ಞ04t6f̈kLM3(Itn ?b3(~m -RK{YįaY4UTEX86_{mDhF 7$m w/jQOo6[2՚7+Hۇa Ǎ&VnLzGeEHI, jJt ?*R^CDYc efG"lҢ2f?MEv-G$OW,/DRaaqQwd~LE'vP dvD)z%{TşWtS -yA. -M#$fW2*"0gi 8\/hg`̹rU`$zGOQ7z5 WQI7<ժ e.>V;ݬ,ĐZy% 11s'6EҊH,̑MDCT(@BdWƽ+K*`v˚ʠ~^@VIJ7qW0}ί -A3trC_Y*Hy|[vU! W0`a('2.*"9m{ڗ;YupGQ&2(]G\xy'7d8}6K̆b*6/>o?-}(sE5"eaq+|cPIF Q=K{jy9u^ {EHuCPrBin˘V.yi0~[XtKRyU\C, /qxQ9 -џskx:ݲN?9qP޷04eC-W|q`<͍JAej,)#sI5RPQbj't$(DDX.log^OWcL j¬tdq`#mgSȲVJpawKV -y%!b%&AכG;0uۥD~ |SeV^>1Pe;S<&f񾌑ݩlԢemnӻ5a>\/M.WCV| -$Y?9?hH8(թ"v 7w\ﱞuT`f+x8Ui!#uW4™+ĬZd±Gy?άv",w" +'$@@;6"YR;}[,RJ?|rol -U:@@/T/-k|*k sN{TE}lъ{^C%O0+t\Rr;OEŠ0³ DeoajAJ'c|| K)A⨻v#ETzEE-PyH't *~s-[.s$2wn}Ŭ;rkW]LF<<+[s|x4ax>,cGĕ?@q!$lNj?zxkm$Nj*-K-P^vatJ.NBm`:(*ڥ:0P: 5]`/q+۝{ÿWȚ<"_J -œчȭ~X(m;J ٷQ #y?nB</ςfl*"! ՞~)}eC}|FOhgCTk.Im_gշo~בL !~>`營92 -7+k$CҜ81Ck[! |m^C +S뾿Ա󧚀;^H030vfE.":  N/o"E1,kύ< "81"V1Q%ۘ zKO{yhMOT7\W0<&Lu95MP,L_<%5X@ƓL!y9a܌α)I}4XG1V Lc!o -P!d;=|)fiL#_ -VqHh% SJVkt-h6uJM{ ز!2a%oA}4YDgg/0>JX^~˸"iqlK@:&P^+1|Pu7EbܧXX'l-a 4 L`n]:@5_ fЃ]F1Bo g*0TvG[$>uG.f>oTOAzncõ^ӪނDrHYE -TLmzkYMbYWN]Ri+8IM_K%=hYLj lH8E`9u-QҰ?/ciIdal:O5l;Tl#TS98L@21l}@j ЛE: WdB󒧦*q3MTlY=FW|;"x-Fз\+âK9̳t|pUwJL+NwA>w}U5jv T$w/Rlo*saGMea.aeXG27<=LH2vNF,8pe-ozM*$_A1FiPWz^Ul3 {sܙg}W]P2mE$kĘC;]dG"}@,PV6. 2KU.R~1[p+A۠IY,= ;ΌGT@}SF5}G|UT;NpGr|YAlQ f8, rn\>H)xN+ȤAP߯Z|4}wdhwhwhk/$ -ۚ՞Gdz>qqOKlv0+](uΆm!ɄMi5W86כ_MxOe^08<4i=% 6pbK&K|ul&49zl,H.H SS|zᄾ 9~ -$a #uaG';\cu0f1je^x ?r%?V[.a7b.J{әT~3YE9ZUMzU6,{ż=5ˇ=ajQ ҒƁ&gLZ0 dGJg?vE -GȨ 6IAeF"D-c|SIŒ-7zoDd)K2&@D|T)V  -4mX`nзp4KQ3ۓJ4rX=*])& T([Ko$W$t3}@=׊@#˴~Y#jʰQB7U@7+QDZ`[d_io&7jeRa2ۊ*<ް=02Ok @̖†g3M̭m' [}P'Mp&iy#*ߒ3D+Uì&&i5epY1 O𼃨KGv_wjir]be}hd3B -j22Q^co)Ѽn_<mޔ(0\ ;l@"59 nFrdz=yꒆ`|OAx3JzC{-b{$́\7(Ҽ5K7H؟0g%Oþab'jr&wM H9vRخY&$U`#1U.I_mɂ8cK% -R [ ܊,~]sE7O)QWg&ej ף.]Isф;v?^E.B.*q!$(@Jy%Ҙ*_4,|-hXR*j"v{dHIRe;Y!FO,}x/@b4KDjflb l7ژ6tW ݢ\n9 I9Ұyш`5h[QTzʼn:s f>޸zN]npZݶ@N,j\@y)B\yP<)U[&WkR$wA7 _h륰5-]PF+3e,U1+hi}|O$:VPa[V6Nz')⭬ "y2tͣ&k*P &跣DEy@,2AʩtORIPbTH(zrV8IT #gP8fiia.rxeu>G'6"1d?AD9K f~K/"Ū.YAVXhWCQ_qp1c$dLkYe]X`yj=h\O e0S-kI²}R_SX_}?܏<3v>Y*i߯Sok3^~mQݪ?}y}ͧ2TxF ];rU]X xv(:}#;Dv7 -y <ۑ^n%Xnu@lլx)Rte^솾MF!zsg@ϜQ!06፺ /;MQڛ i&/ӻ@ܚC zZQ5uZ';펲]uwPx?vq{3UHw1?2PNcaWl(:Y7yu];@޵GP=^AϾ?ЋW>轡oQ\;@ܽ]'.}?waAxŲQt晼{PYl:h'@qjEPvGoq9mHM|~{׻SP c$I1k((vr5=rۚo -2Duv )jwS6d #0wه-k)~QP=` /+=u׽T*f~}H:`)7j d/4*J5nov -C.ipoY!RH' `ɲj*l/0ljF9U(ٲߥJ.WoAҎ -y{Ϩzp1"ȩRu;uO_&,tB_tm>4\|7\}،r v_hc},d^" uFdi>w8)Kү "*~ 1BȲ6 9հ r_|EH# tOw-{%(qȷ X冀=+*kxJ!KM)@s0U!n0rYxTEfn+Y@iXBn'RݏU`G SVHK$-f_?n}Ou@Nc u -H{|OndR['L tِǦ潍2e_WDJgr/$rŌ@ӽZ҇J!-%]{&ŶLh $}1d21':uo#;뼭Eu:\)֯풣E@ԒF`/IP "X|sS*f\u) Ŗt!?ekIujǢ@j42# iq_A1 "5F#uk<r*pǃke1SDͤ-S>9Sh#Yz@=6F~˩a.,E3⋸o/lҩxxehc޾2FL@|ԟ'{,V>`z}axe>T^Q (&-hAoft [T2( ڶvJ_wHXЫhT nyBr[^B=,.5jX\ }\2CՔʥK{AK5-ssm#Mɼӹz"¬#\&vXbꛞX'ybJ& -'_??R^eK SEKݣR R}DsST\+Ź - ȗ)cx{..H9Dd$Iq;J}Otf6v΃ZwgU&b- -Κ@yGhm=!Gs _7zwÝ oGo̟Bvo7;kDP(^2`Tr9awʗBٿlUotlim6Y)oLg };lf {lw.lYl]߻~M;ĎROD- k_To?J[^ّv;[V-EUr -7 -ןTSg׷r`&7n&I%wZ*(*Ϫ?]\eyfh?Q=+(S"eSuC^ Eż]:ubXxKVKJHxOBQUu\䄽|bY -Q),!UUrCdӾXu(S^av3Yg@L9?jYO-l^?l\FﻚL-;T8V#|=?:ײbZ )I_?.QH+@>Tb+DZt9d=_{n*D(m7l;l ?3iIseb6_za#៟#4ଛ i"_ogw_n GƋ΃grߴLbdrs* ]L<$I/!"ߣ6U]`V9nc$mpk" -\ ^TtʏlAdv{~d|ğjh 4"&f 5o2 z_6m܉5=;+ f'x)T#P+unzT`dOD2f(u!ގpߍ -L[ +$ WdŖ-pj7䙻 ҼσAj5`̩huTtRh4KF&Y#Pbݸ(3emwRLւ b -r6j)$gI>XԹ4SA$l}6k-y*7u^!;f\ŷ~J#@̲Qە`yz:Pao[jк6&i5 ~mFOBGB+Bϻh&būea\?T_axXu y3UJ ,Rtx/f]P!?4ƐkjNbcDrYq_#_;-gn/3(.C,2ʿ|~>S3Apw&Oio!jܸj}q3whXr*'^eO̩7 0YMfK(xSԌo;r>ޅ\MHQ {<n7T3If-h]aGzwCeޑ1T2w>U[4i>ܸS}T͊V AU$lKFcG;J[#lv&m$-m v&*/ ^?=gn8PZ'1BMhgWvUA|X~ZoI*;PwU3 L¶OJSK*+DR/[0w[%kѤ2õFiW? a;Ʋ`Y5cq `7ٛL ~Qo^aGFޑG胊ٰIjM, t,HF# m\(lkw ;gCe\T^nn aI`$yn2gKGo*/op?;|-z^ͦ~lAS\xih0`ę>`WhO7jRC,{_(; m[2Ly7+"A+@+3o -jVlj勎4۳ؓ!^t߬-$/{1ض< 0O2 -KV, D>t=.׉ ȫn)^?E%LGO#lQ A$C`hjRXLɗ&`5޳'k[a;3d*a֟jI1▍1DsռK3 -¬jŧ. -sKҋn*bBBMVu;['WF0䴣(j~JuRkk5+)۰XLf>=BtI&+lVg6ʛլXC XјŮnM!d!Y5نo>Q0G5=α&X{EeYädžIo ϛTdlix?l5.AwFw!l^i( ,(7L,[؎蕫7jsyU@^s5YyYm/|j/;07< -Vڡ$di5gVe.>Nc/57'm|,;I1Hbjޖ2^;@wrO5sڟe_lO'P?ir?>mik_ǘUhz 4?qkb:;:Cruݺ7y'RgqѰZ: g>$8 P -@)flg^șX>U1Uʿau^ ľݜ6hjT2xNد_8e2];IE'LSߵD[nXr A̜jΰ܋wM"=|z{&NpÅl?b' :)$yv H5|x yGPl"{"vFFc@ʮSPv"%';uJ11]Tc-#!,g ,ak9GݻLF]"a^E-mmnWS}XpFnhig-|{o/ ,ndr^FRe(=8]lH"+r"^M&J7v/O*R ->X^>U3*/xDػ*lӎ aɅ-J,WUtOƬ/ ޸_ 3S f* . dJǵZa\JlaPߡ8ЀwVCy+~㬋*:aۮ`#쯢i]TD`O|$,m鑿&]Bg FLB0JЖ&@gIyTgDKvui`V4kTjGC0`JmClLY_!JW%YBGT)V#z*!y;1!uǂ -͞0B$앉z[>k߉o8ZLw ZB7e$I(oHU¨Sh)9=)KxQ<,'{WM_(–Z6sA;<աkE 9 7dA>Ę`cdՉBc-׬捅H[={"q'! .n1? $UJ_%y󱣺'l⋊ơo|׾J>=G7|VoEǸ=;l*cGߖl1Ӌ>ً';^ܨnM.;Ӗ~.[}$4NyZqalg2tS Tׂ?d$g<Ih 20v."e@T qsl vMV*o:{dM5'MDvӾշ}ۅ} -o\uk} -!FQe鿛+wTeyh-`kOxƄGnOej"D.k+\\-!i*pUL܌YݷNr{mBKi.5/ |E`03ūFC!ԿҘrimwҩ|H:$K]iߐFC^'0BzwyDE-`)d~0.ǡ\Z&c -w34ׯiIO,r'^dbrT+X,߭_9O67A2 -kRn f(oщ*7@Xu= 6q7uÞ9&zQ=V}וE mI|HzP_u+"F$,H܆9Ww̪%B]Z>]e3.KL]ڄMF:Y:w?1ބR6\jiv3lpT*0k,s e,P >>Ae]pe_);A8m|Ai&saȞ%3렫eRKS꣛•Ħv<0$gToK7Q[&.:2 H% 940X&rC(صRTR?T{z+mףcR c:sv6)bl6H5 :ib;Dȍܭ } k73dΩV&ؑEm_HN1hKX -xźrhZoSטPpTں 5EHQ:>sIW"Ri;*&B]N 3ݔեL;g+<¢kVXTT0#X>|yU35\:ojyvN -. z/na 3;*Fh3K1䫥T9KµJ༭asK%@f\ǂ< e吼#Orw+pԎe -y~Ab){KY4mDC`ȏIFt舊"IHA" -T sF۟ss|2l#S< 0oP -=yaصU Er~ -Y s$O;V=ls4z4\Zp}P=Q-G|E,Ǟ4[,Ҩ`V3EVs|ʘ+>Ɏ"􊽆W&ʭv+^/޵B7LXue!^Bpf_5s:`٭O/YjAxPOKuvI;v -`:xC003G'X",N -YLЬɂT'w,JYJOWej+5GU&;`V3!Vk(͕2e`n Z\}s֧[sqjUX< - %E|%3vTO|#+DʄBAp_,J("$e*7ɐdyPJZ*0$y`>@X%$b"maN%/E˃%ymTu B)yAvO qR1)Wڂ+RW qF5Wr~T~hQ~䁢{^=?FMdX)ؗ0YUP]x4rO &*K6髋2&))Z* m;Rzڏr55MUb)s≞Ʊ $uŠO$aTE>Ůn݇i S%> [ HWn$A -v*qAhuSɤt~5ۼ^ 枞g3= I^Ia?SLrJ[r I$85qG_ i7.^uJ@o4q 8\V.Ag&?mXزu }1#a;9>c7AN.TE:/:P@a&z#G<ڰi ѺD-iػ`-=>hKB)A%yoMr2%,Hf`RDchr^[Sr8; 'Ԗ͡xECjKbh%߭r9*]kFNn CmgLaq UV_߷z@7@ἲQxm y -ڡ27ubs<<8xN^A'TtԖ"Hr <}4*otX *5քRz~mľR䅫\F S,sns>D30'!5WQD=jG&'⪥2$ı[@!*to\CqvCu }1~T7FXf5_Xͪ9' x4RP޳t>̢OL$*·nRÌ ? `^43oOa7eL2Pg~`kZ^ͩH5}qj{g'NQ2xWo~flAg q&#G+ [+Xy'0I.K"R#xbH'VeCMSuB7xʋvMYUcFGJٓAw`QpΚنյ_zk)ī'mμ {KǔNxP=➿\r xr`WN'!?0( --uR&s؛J؀I8LTڝ#L`da߬=3uN)lcxaV[[cO']pU ήO djA_-aohC9ZٝYrr˯7(mWaم+Y-]͍@ʀGAR:LIzbϦړ X4{6W-};E1e; IU^J/.>iCd&D5X2+LodžQ=9}6}V&KUdO7I=DUX?̎O,Ӟ=m~^xkYM||lIwV?bY[ۧ;z/G\ly,{u¶e8D":grGj46 W=qlHkL6m(!G#9cDIDWIE꣘b͊7-gB'YXw_ 4V-ًʝ%'QV!rY:fYVآX䨄IYm "al®^L Lܢ7]YP7~Lx+`(zU>vyWΦ2~}ʅ6dU?awBq ^'s"WzEAt}+c#%|ȭPYgpG .v=.{ ppG9tadԧ?gN?Va㏏nwϫտn}[U+zX*Nr^=?08"CTY}0Mjg%j.(nY} C6/:E{&-ZǪG?t,݆b 1]؀H@ehaB?euCB[Vh_U [A, \s>.2Z@nG8@-qCu4" FTGTxPXm(:U%׍ȤדOĦ*ϱ T* 񥢣v{B⤧<[ObOsׅM`;zPy3YI9A1,ixbO4+!倔] S]Z>BvN%joeb ;@2&Vː)7y2[J9sf1).DC2pQ0KAJ Ezz\НK±(ykoqN2t]+yU\4V ;fm>1S0W9X -P(I{H.RǷJq0}TsƚfG=ݝuj`vR#O`0 #֨BcEV]\ d+`GKY)4>CyU0x!ӱ)Pβmf6nn[tL&[M!=XE?#Kdi&;u?P2 7D{i 4ab~sb75x웲_QAvp\E~YK|OnY<JYX`Jq 9>5v$fo.w\YșWbx'˫C-D)9/]U@.VC@(8G@_tDEuHnʸC&_P%ePQ#%1PuKN 1[x2孠K;Qf[d]\B\V|à۲c _q}LHz-nۆ>B$*z s|T/6up݀ T 蒑T,~A&B[/PZFZ3ϸO {&B,ȭ߅Y-@9QK~&*)S_Yu#IZ^랾\ h+صZ&U !|]WrYy]h]/48lÞ8z5;FR׬VQ~I{5_2ݷ& dРy0mU?E,-sLrLjNnCzaK &&&A5i^B8Pp⳪l'f2nard=YBlUg ߜ9nfN + *2iA pVSnpɿAvÏ$Qis hYAPЖ\!*\af{7iS}]˻0[ Z'Tl7Ȟ Є7ȁd)@dx= - }iqrVVӶD b6iJ!KE+Se -I?,(( R^a6ҀA\ 2Rq/GRF= -#PY3ސ ()XIbr -AaE.Bhb?rߓkY3ӡW6>N鶗ر2^}tm R,>=2.*;K7 eb70$X!DCjn0gW{}аTQؓK6\IKt&y؎#GF)󠧱} -'0t,}=qZ3f*_0u_)Q|gՎ .LvX uI9!hz% -Ÿ.$# 2CHhq]{9#7(?X{ky5,<%2` r3kuHf鹿ʨX$UY3\Rq(Ԫ~6}˞U,?0"0X<=A^$0UuA&mw{>N gN)46(?餼NP"u Ng|u]PlC\Ds qN碒FdOYD#in$u-$b#xxQ3NP9D.V9)F9H<[w>:;98 R:tzt W{\U"n{V` GG!*by13FZw@.G/QT}`{ Әyx0\@ )h'O[NLgx뺉ĴFJ]W_Er1z)@d 1ei@rA ܧ-MpiH!ra&4:ndު'4 %.lÑ"Hz1m71QN^@i&saȣ X]--^`c|*juUI-@`,bu)u*3*u-6dyPڈGc.\jIڿ+4%x/5Lu$b̷y\V͚7"1^ÖRC즡;Ez -ߪd@ [>,7 m͒ո2 *k> 0eIniZ^<3jTd SEAt"M9*Mv| S3X1H5+!\~i`UL7+*u stvtDF -pwå%$j 2X<7x0,GKY d"[ LH3|XKAB5r63C n$n<3ePr(2Yl -Uͨr>,H1&$! l^i V9z]t lI}$23HEpB6[ʑZww*D5,e@9J$eQJ-bRFv/`&HV@,{A<}#~ -w -#ww}033L.C79yƓ`R$pl)>>4L,C"~*jъǯE k$#ꉕ۽Nefu^pA*ӹ cFîy;cIAT1(^ܰ3~z[ ҇-!pC0Z&̡K;v$m/-:=90 6gƣb(t<%+\ftԫBe}Zw'ʾg] -˥cOdz(0F~c)JUG8] -*+|DȄ{A -@5v8αVn.WХe -<T,*hŇH[nyeEtLkmi("\޲rVD{h 2 3->F N%4)/A;4^xKx{h閨]HaeW43[' XF>p$1~By(7+e~Ϗ ΂_ %9IEyMfe?.G .xiBϫJ O7Z܈bNsMOno M=/;Lk|¿jYzmWCبbO~o>mm\w`WgK`mu[ѭvlkP$ -B6\M3)ݞF^wGwxZ}bG -?\,_;_gVwA1j-JkA!@@]RmQGz`P\ -4I8Y,VOA-v<ٖ)` A AM݇z8aDXsz@gZ gcUEQJ;J_F<۪ r;ԎXn|w5OԮ@rnrY1q4NdZM1ww0$>DeFũeHJ7Z#ݘR(-d⩾0K*Q&cRa |lWrR^yӕ~ CFHe>Ec:J1W!L=V@-O3Ԓڐcf?5}b],ݱ@ZY#@8 Dn`1jo\&or˲cwĢA7=!j H+lh% -Q0Vg|I}ǀS;ήqN۶Q4:^Ҭ[[AyktF:!^mZt`^:DG1Hmj#퓳t 8/SҬpG{U+Ii|3MX-õ%K҃9iw@Z<)10:Pc@'a^'Q yD"E m yn i4ۖ.bvB6¸6~/]rőɠ$^ Bu -J-3`PL0s#Z"nLjDə-kX`M6c8U -#Mm6НN^Hw9r/`'mda!K\z2D)>;: r\*"\9E8yh c_(kt)GIӟrJ(sJ ; -(FKF PՒ3*?X0ra썞OOF9_)k/\7) 8!!Na3> -'9ТiiN-.l(*HVc:}\r&J^͝:ڍf00$y!LN&CEoF~evhP񘽱 -ytۊ,g,aB Nx6rO^/ccSē|+" wsR̃ žYIfviƻB? Q]oTSr _QË>*-^79P̍$ו0lJH.KHYՉR7L3 )fL ۊ[JPoS^X3jfFfT]^iL̅nj@9w0$YzqE YeP1T\k$k"<:,1kCp|'`:$}arf[TJHȘcqM3YƱ@2c۶;B}_%b8${f*B`eDNsxgJ ȥᘒ?%r>5ʹffM񁘄5q. S[M !^_^I깸]qXu 5!^ {wCp%Z^g,>7Q~\([ LDy Ҽr,dEapd.3D3{[޽,6T4\nUPMWZQ- Z Y6lkX-D0J(b4|]m> jrum.7d?RbZQ-}; Yv{ָ.|ztQ,+86Gn> jrum.7\2 iE{iY,:^j& =KvE dwFjrZl.7\Kq2h/s,dEapioT'L3jW|EYrum.7BCET.kiW,n:^j& 6yD.nmcς(7܆j][˂ښ(+W,n:77lk`lͦtQ>+m> jrum.7\R+T)qła`[5,0LWtꢄZ2{?+jrZl.7\R`EN`{iY,:^j& =`^Fjrum.7B[ܠJaZ*9nXu> lkM m"i(u+m> , պ Oۚ,V;#ˆY@M }S]gm:56Ɇv u?э&^:t#4$M 3mj-1~ՌF˿4] ~c*̢;"g]hs1[mbMWzOr{KчְzӬX bM}0\zr}?qN-u6^yNM'P9ե -k7̐:kb'C̮WEI4ǗNՠЀ 8 -Uؗ|5$xV[$(KM|nzi& v7vYUɃo'fEuRP~Q85xe-77:\QC5]?Gq)!FZ0r{kYvv߂\=Z{YkQ s?f( -  O'8a6uiąaml|qIwɟ[&xʅc!a2`*&X9_\ʋlƺOo ,FC㕞b,cAcgO;m9n.@ü`FBBA8 -E`e/4 -6;`Q-.|\# D؅wj8F<+clX# qp| 7s*HFXcw0/ vxQ-.:"`pVc0҈N -Sc.9~5F@p|ů~4h{lqe:FBB8 V=."``{p|Q-.:" Io[14 k 4+ 6xQ-.:*'\ 5|P]"$䂁m⢃wxXTA48c>iXc7oa^Y{wjq9(X0ϸjxAʲU7{⢃wxS-.5@\ &}kY*^ htĘP%mPX8Nsҋsӯ -HVB'=x.V Xqxnk\b4^t04&37TGkMZ/RsPo5M]U322+EbkA .X:>79֘rp~ҺAK6𿁚+pց/{|ů4:[65=04yM7QAp{5}N -_AP7B+06v#4Oی؇7iʼnnjUk筡^6oo|,|r^3Ⱥ ;F>RX붑 ̊ 76EuAl -l# o;g!E]l4̫scw4+`Q`qFW'{<&oX:los!ϱVm# -\4,B`sPpa!4̫s 4+`Q`q'{|:crJcs:dj,0 ܹhT;F@`oi9 j\pn -XT7X_!4ox?daSt5֪m`nÍ `Q-ps'5~?7fEȀy5p.xz,,B`sPx;iq kY`ܻ+sѨvp '5~?7\Op hWkwhW 6Ox -X\@nj,wWpQ`q'5~?8;)EȀy5p.xzQOx - k6rYvE 6O4IV<,ns96a^ n -XTAl -xW {>Vgpj,XpXT7X71xXBd@ü8Pr -+qr k'EVޫdjPqbϦP;V.sc'E͛Ja*kaZ>oc3n-ָZCxYfТV+U aj8t8du +9l౓V+U 2Zup. m,ZR|2 2+wRjePoL-V 0v?r|bu[+oqMVQZ`:8tk 8\O Z 2+wRjjAXC~{ۓյrAlj2h*țᰞB/dW)vZjjAXix 8dsjܱrA;)j^ S U9.mSD<222lj2FWXx3cT㎕ 6IQZ`8ԕC}ŴFt{BH,[];~|fh{AP? P^aۏRz7mqΡc U9z;Üٲr6#A?e {PGɱ9;Q;0_! -PWn)^*e4Y!Hi4d~d;l36~pk. 6:ő.. h "JgwT!0u7ذҰB7Xd=Z "mP?ɾXn?E-Xz|n}/>:S)n M:Sb/ &Zbl9-Ŏ+ސM:&m &b lN,-mŴtb)M:[mǶ6"`_Lb*P&їk`[=x bevӃ 6 Kʗ<*ÜyNvB++w5oONa%aZd5GVB5H+kؙ:'bId֤fV"[Ԟ/,[%@3W$[W>*yk?w9tTya9uG+%W#غ䙵ԝ޺ՇB/O%U~vL=)~#g8U{/|luKňh}ba2*PP hЫJ6H V>6 mHΰ#t06r߱`a#0_u- xMFĢ`2w m7SoD~.N!SXt7l7p#^7n%P> n;Fh'oh(Pg n;F^%7Qz'܈XTo%v/PNnD.yl>n;FrSL-eÿz'܈ۮq3 -n;FĢfpzNYcѣ001b U pطXal*C +\L[Q(|@8ڡԒxO /Jm*JPuԥbdΡ[ॿ(P:H' $5b ́%fl:G,A$JAE#PF!̄T'|Vc_*eFh傶Z.Þcfba83)0b$MNA#6"0 #̞B%X +69z +aXFt;3XvM *(%{Nͣ17&TyW"Щ9FtΑ +[()^ nFt*xČȳӁN8@-=ei7Vլz]1B{ d}36y}ADr[̧Tʮ{fz8oR(mH t7BTSAU洬e=}-&T2+} g@s-?AHs+ip {ʚ{urbY ?'[_vF\i& ?)PLtuj/ݟ`) d 4NQQs*0;(PGO3,f19ARfJ$\F梺C CةV'ZbuG_C$fVOb|rTTr_+gJ_] +@#@x4 Hx0ey0+M+y9"^q\zG=/Ǒ>)f [27cssVA0Ec0@) jc%40G^-xܶޠ&]N͂Q%K}::ͷx>"sWT;ƹԬ2^-̧_j03VҘ̔tSDÚkTb/j7,gfuazTzII ^ǂ&#,]_@sLBՄFg'5`*MP*΅eǶUӶ|'|DTP@aUAQr9Ll!SKB&S$*Qv@§C  Os!YTp `&PT=ky?5L09S_JnD{"lKC+C+*#h2($nے&+]3Ń2ǟt$C3GY410C&+%j3w*\\!F\ nd Lb11ѱ"qa^Ruc%J x;"_tybSjuk`1b7@9y18/?*O敢?F1n.5{(c=V"`TWxtJzB|LS<^,bY +.5EYbDe9Cb"D(Ŷ8WNIc;p2Odɼxs;8";J*.XVR) _ePN-b2s[_@BBoKBCrf~$Љ +~)=ȘHq&dL_xN/ZMԋ +uG$c, +n- LqW"R +]ďל=ޘ!>))Q=78qc( /L: ^{/M8 tx% |F\NދbCp·毨D JvM6X6ZQIO/XJ#G$F܎= +p_"PJ{%G>!m<áٌjaPx7lb?+IҺ_>VjEH>5H$ F +&׉<&J(N0"*&(TcYqXzf<(.[#l7~*#TI*QYM<JȺRM + 'H"D/AQ[R٨M1y`(xn<1t*HZ8dm+`G$NbK_"dfCiT{019ҍ4거b+]׆s24&6C&˨0D\"Zd6N+z\aܛe&\D1BMy[ׅX{(wm G1٥83q1FtdYP⻒  (N7Jv$+Ľ{{"ea ke=)Jd @6qYji#dAV:`o"PI! k+'x + ,]Ag|wVxq] xYmAVd!=A |s- K)]( 0MijcS +"Ff+wVwST(M,(4Ĵw&L!!ff\_cc%qAAHQzЎӭ 4J*=jB#Fz/&5kwIjII:z=l840 *Q{QAGWU&ȸ,Q:..QɩayQWՕ2T} S)Dav+[8O2)aٲ*VS;h9/vizz677mvf9ێY'l9*KC*\eLgB9LuN0NJ/$2 -HN(NNCצRhtl(]HQ[%u=(mZ tI!S.'LXfZnK66<*+Tmt3ˢlƳ7"-ڏÍOp 4}Q^>y[M$pۢGE[COp 4my[TIy?E$&EwmޖjHMofۢO ."7/ZƷEQ8d&tmP}_5O"xiۢВۢ`?oH./2yY"v>)rxz -Qɝ^:gy6cXf๑*4}ijaEK9P[.Y^jrS.`(t(sUm_Q`2fWRD/ -pEсFY\BV9D:4PVyy«bNId;CE䀟搻 " Uga*tzGl9(}i=R'P^ڐe -ԫ/rAG¶K]ce\ zF+xa{("SF@T tGqʁ`KՁ@Kب6ݹN;UaQ?ms8 =, 6{GM8G,kEpP}Nt- l) Tluxt]ѐy.MFuOVM-V6vlVjI`l-%6n*܏a\@NtE -Rۮ6بp%YA^ʳ˭bxM>^)VR~n۟@?}^@Vgbwoݎwg/h_౜7^)>@o:(V(JX[~ܶJ,~zg6$om 6Mߓ?mJ(J=:HMtS6"PM(ȱu$&F3(F? V ؞Nm.J Ry^j`LM&{GM;#V%:)툻=)بQu^n>Lj5г\q @7{xABy~Fȵ)_^H̔1}ʍ%AQy%Т0ЃBCd +P<+" ӕE)|Z(![zctc[Y̼8:M t;,}nm7K-pP`[]}ﰸ[ $BY7Q6Z+iwH`GZmĭQ/tS6 -Wo=6{GM%~,\~Gń6gQr9 -5ztSZ #+z:q 88;5Pb}%0r}jj~x85Aš}`e>`m߹W ~xiLkݯw߼s..镇7HahXDŽMfaʗbA^/_ƹ0B*čpJG }`z M*!JF멪g"r\{\YJ+ -E 3Yc -IP!@x8]'|¨`}7 !~"? _!$KN1oH` '\rvy;|e0A P - {]('>BYl#oɏ%jAj(ưz?oQQ 2Y>zX-98'eI0N':ij F /O=A vLy!N- -=ߵ,h*ݱ槰7Y?7| &,YY/8]e A`l<jFQ6 -o+[V]4 F_tkӟň7o#@UlǮMt4,`PTw/( -ִO -6G@6}"lM 5"0YXE{BѬ./~Ѭ}aLS\4'y:B*Swe@_痖hj x8KwT qJ;F"D98x.[0'i #=(Nn&hxd2mNۮToD~j}IM'g\޳Z.{>0HW12ٲ+ =jEdҋF6UG\',(1 ^l/]_.;tn&E&Pz7@!kHKG ˛S $#];]/XP;WD_x{J6FIT8u 5WNyD4OBigk b)E=f< ]"ؗ]yw13)Qέ\/bUiWdͨ>|iL;?|t>HboxϷTa_ǾJ]ɖG'>34B.M CfÅ K*d{4Œy񘷐{晨fas4NtO(h&q4]\tsFؠB683ҾK s3ˮ($ȯW]CS ^ոK<52&E2.y}hѸ}߯R՚z& f NWڤs\AȜG+>gn .!]H~Xqs8҈cD-15ph[ B\YYfPItN6;\ۚVoy Q0 h {[r^ *XXc__h8'E>(pXVBu]<Mp˒aY fHd*F9Su%f]dɊyXF b[>`Kb^Q.:4ۄ2\cU{. -Tډkyj%` q!*|&Jn$0!'Dѕs4"AS$x7 -+YP$ -jF1h=*] -z3%W¤ asG§*2* 6sMݰ6c5zRer]~\0ɰaXx6L2ldl9Q="9+&E/* zXڮeq;y :Bs9+ ɕ\N<%~li>,F|QG -é[]Nq^Dmv%2!$F쿮OuO!\2oaL<7_@\QtjiVⓨ O8c Y4L>DU45%V # mYVb PPߗ~R6.kS7>Ŋ+)l+_kacCCFV~7j;( 76?.vh(^0Bd`}3+3QOVrYl910o>Yq]R1 ?Nh![]\|7C}G U `[-ޜfj('fRW䇗V -'/|?\Xl}G6lOoX[>mmggQxxIo @ -,5 _Xl_sU?a~0w`%k`Vw^BBm;h~MLkm;T؈6:̌o{T}PX]“FJB TU!W -uumԪo_ ws8Ds|8譩QZ5G#ě fT9R 1O% 挦3zCP:^&TMl̶/g 1( 2t<fٔ܇d6' s!T[V.gF_m͍i0@9{ M`/6: r1!>쌌sEOV < ~GCESα9랖`9zITq06duOߗ6cjLCbLmR:Ix}ߏ7;CwfkE0Gz8HKikesZQe޺I"DW_~pƲ(DP0jgqu YQwMVLZRBRld$3díF ț,҃h0B!d( Qr ťxsa9 U,>0he8C2Od#hʗ DBnX+qЊ  Ws~5_bg7A)*,KoF&+Y墑ǰk;%s #~93'4|Hh; sBGOS'85,ݰs\nB?@mC$בnѹpQ m/`Tc }切:vsME+K])gA8NJ\n%8 @Rב0}N6oR/mHxx=ZO[G-;gELփ -v_k я^L`$ -lׄ!i\G57M -9. AS`IO7Pk%`ҠdK$n8Pjv(V.,ݬ5tUWDiqRT}v -!=UT@Mp/~kNß$& /L.N>8|۱ȁw۵LvYXtjfRv-n -oXhXtTB]lC40ѫ( 1־o9p0=nt={}\KRTg'tKa~~dUz8&hִ77 \yU34 Q*62hZ'%O)%ׯTy搱[351ŠeƸ9y!(Ɇ ?آ6 kC((2mI QV&W`:ֱ%ٰPJ?|0Ίe c7"6žBaz]h6awKw9$\ -y֐eOy(?| -uR F4VlgIbcfg__3^40Dy-L:オԼP6I vw*O ׼$sd_#&f# f3!O$)V&JĺB -QЍ^6vu:kClk2X*](R,awTk&mlM/>q‡`m``R8[f; k/Ba>ψ*'ZKy|jҰGHX -0!Aֵv]Q&'lvG( DjcC09lOAR˛F!_%3/eW*nH|Rem /<&X3F&aHKwf+N.DiqF8h @no- WBf>o7f!VGO&qFkSv~xфqs,~΃#v7tY޳, H5QټHR#_pNTˈ,Wem/v=rn0*,-iȂ,]qsP0=cAC#A( IlFX ؙ́!["8}<& MjGle.n`[4(GYI ۺmC9vR BbDwSfCi/ 6MLED,0Yrs[6=[y:ԭiyG}>EqoHy&1론I9jvڭMHvZ:lq -3[o(lvÆ>k6")VVMT &N$Gsm-9#! dulU>f[z(=q|~IXM7j_H!]Qf%\No~NRˮ<"^OD61$}$ߺl4[,#S~fdjWduC`uH&Vװfo(S -[n=\Z05͚-P6P9:1:#0hr=L6[,͕_WspHa&G$[=1{ф_T c?$͹Da4[MQ|ki:>㡥"-[4;ܐ%T9v.iGDpgc")84EQER f; w̎/d9nR,6EY> 6>p޼⡪v[yFّ8ņE@ $qG2W%O$D쇅rtIv$FJ̖i)i%\\lfԅ8f1K84dmƆѡgɗ7{C,>3!P.>XP|*v%8%$ogʮdgeiOþq0hf8fqEdFL$*N 5c;T%2ZQ\\TOM#NiyK*[& -h-YFԤRި$=J-KOrhQn - ?T5q⍏^wQy-e%SΒQCs= -%ʑ_$AGYF+"j>kȃ4yw`,5_ϸ݅@HaU –:YTX4/J iqtm@}ļ$4jcc-60!c a%5Qe}&8Pԉr8 -^16P(mWrDQ8_I b[-mN~ ($KiقC;#pW~p6h&DqE@d^ 7C2!lj,iXT >[%Ų/t!<m"!m3bP² 5n BB>QW')1Q@V;KPpNo9B H%DlZv.)Eؓrĝ=GR[Co-!9!4dtm7 v: i7Ue"9x3AP0 T&6FD[eeˤæ CIy;Uv -獔6(O!wnIyp,edI.x x@-v-4xk xPݺmt;/n}2x-n%Y`wia87m8<]+r6M5rqp`o#r8v~%h}m,APL+ذav0ia# 5U`gv.<ȜlȊe [tǾ) R֝b:9R5aka!`jnrE5e o2qQ+̛ Ą$ >|/Fhm`BƀU;lW-*K,yu,컴$ˉe#(GH -0%sB)WɯJq4P G7X%vי#  :@z,QU1կ"pg9< S:@_K`! l),34 o p5 8[?5F0faIԯ@@9( ʇ /:#[pr6ai7x"bhal!@< Z@v $ '$" ̅c0nc3^4*GEp6,`XNk{^BgX,lˤ;WLtol4|Q)[ 2?H", eW㝭fˢC`0+J2`2",,p5 e&"ߓHlweD@ẖr@!ˆ7:l8M -?)lvx8Rp -E w12<q(W@ؤ-D,_`cda̹0t#ZK _4k}H#B,fA/ - "(q681TEEMx:B *I[5*Qk[blcˆ:"[(s^|5Ɵ_, N -`+Ș7D4wE9Wrua~i9c(o^SP܏ETR~l-7.gI)I< +8T#C>"o^+xV넮 k7Ek/6P T0}YƋNuFjfe vgĀOmpu*Qg'Tg?fS2w9MF`Mj{gnzs$csx{Mp0$jՃNzXJye~̆͢PX>Yix0V'ZюVDVȕߖd|Wey8F%buw~>nη;+@#} bYBv4Ms0a7@k'7Rs6!,QYs,0LlA9$M[#)1Nwg@tҕG\"1ߍm^ Q+_#;PVDewog9wa=Pz7W }qxEe{B$d纈d97>ig +xǂ8놢Da K`f$u(W~z66\6QJ?,H+ӭn f_G&Wl}B{Ķ&i0zzi|Y1* 99yHSfDkLM13(It~0fI?L 3ۆ4T.ZXsn +dޒvĈR(k2Qp* 3[5ӝs45^R9]=YJBcFW̕l*̖ZDwBklZC4Rc +^^.-o)Kz+`̶eMʠ|{Z@n)nd%Z>0{5# -?IʾPZhL-:Y;I;'+mU"ˑ ? |V!L,"9-Bc/+Ƭ3:Ve"uģLX,8ʼn{1y^m\Aut63 N2xA A-fR՘Oщfm^`==c2Q|;gκS 4"J|P+l3L(gn-P LO{))oO81Wp+cl*ʔ17`l-VqAuGP6Κ!S=+*uC-B3W`0>T#_!uT L,Ec7^bF=PCrIq2AڪZP_MwK +BB'1k5GEH02,ٺCK&/#9yfa9}J{bf+DžP4P1o@Xza+,S'6yP rE1S*S"\E :4 'D=9"# (PmPqϓZnR |&naӀ']p0{8BHtVpIL"pxTfⶺg34 (Zmϸ@d-tE-lbUF%a sKAKKOq:z\TKGg + iDj}4$g@(h͐OKkE*%I +Dp u>,XDЧ66'T>"߶N(:.<@WpUM_ҭUzn%k{!yj*u5bDE8,j2@DBb[# YbR*.hҗ` v)zp?\.XjxJx y1ݛ"׍U8<;D.8Č#!V 57V5YN{fbd j%(5i\%R5k!(m[S + @tŅQ6mdv-1^^A=[XIeW{xDl}QIéj\ekj|S`=Zd="9rE/0{2ծdN  [O+E +^",R:ʍqI܂3(g%[-"!ysSبqd(씽&8#IDKpDʗhu=lY +ܠ~ٕ״ڻęj \L6:j:QqG@RzXxNl':CRM4.r!36EDK*I,׊͡ybll0(PZ יoyd dl-u 63&_Bp-6D&䞷mYDvO_^0>a͕d/Ig + VTH"҂{n +L;ȼ2A +'iŘ2s^Wdt8VX%mZ@y 9%I%vqVG +ڹDH4 Dk?fB7Z Kl@U/C"!7 Gr>83 -KKt`.'aN>^8nâ?NK? Ѥ0 Zn@frhg0 S yKy{.SRpcre=ⱩdQWE+qbJ5Ȏ``YS5H…VqO NѵE4 v}FI|f:Đ@:F>|0jdou^DZIΠht?SL9 `t5.="1twHD0%g`L$龐f%7Qxڞ@Yz6L7v}rѸx\ɡna< +(l(镦.-rjv!{N]Ѡ:aNtS^BFZ` 9q&i;Lr*Yo&R*D@;]dh#D> BYq#TKC4`ڛނ+UH%@Ŗd19)Y>[,9Wc\J 2v c9΁U*5[BmfnۤXqb !| &='CHa)km +յakJ#R +̈|`ܐjʫ%QT8^Pi>oLġnzK3کS$2XnhZ{@*^|Ѳ-SDIDWuó;hqqiLƯI[7dB#% k@ +jE +7e$H?A"9H$mS\, +yΨ5:be:}gg&R=cKfܓ5)F֡UA 8B܌+ʏ^RnœP\hD0нukO4[# oZtsxb0k5n3 Sn>WKXY  ]~䗸:W~W:mEac௫f*}X!p6hx/cP!L(LוcL}W #Ee5仹T>J ɥwfA{]7g += 'bhȪK4xÝ_/[- Pg*ɰ/Yv=jwPm@"ĕ>.A4Mh&@+SaVjOFKfi,닫aV} 'VPa]K6\pA ߃v L4; #Ea\$WQ +C9)P &gEe E TtORuCJ@ ѪS&I*SgPUqԤ%p%Ƕ1PQa ?ADÔsj +K?̆P-Z4! jjIXa!n*G}m`,F#{69߃#cZT؅%2lc3h"'`Zή"gFKyiU`?g\a<|xgG`AJBh?|6э"M;?S4)੘#~}ȧUuzꏻ>Ѧ#m9s7T hR?|ij9`,+w*! ;~zEEYS +̘zY P4Bŵj}aߕHhͺ.[ߐ2L(%uR|A4U(vjFOyZ xٺʩ_c+5<0Щ +x%Z.."VmQ9Z6n ݟ@7MP#1Akd5.&*7l.G]$^rƃ[W !PYSx=4{]:^hkBB[!8:M6Zg#D gިD#Nxa+JWw 5DI檟'XtkXo,d6 p7mW&I!X!2v9e>1^'>:WtasoM[۩\oJlr # ao*NY.#څtӢtBۙ23lB\m7lb\\sWiQqY;ڴ)x(JdVd46#l(;~U^/ĮfUbץ%QQhJb}e샙B€9[V sxcD^u@b$ .ZwT.e1||$)tK'aA|GgϢ]Rtϝv ffL/R7񗦥٩>'I9v~bvr@ C>'8T MƮS:O,n> f6%2qm@tk)^"47TG <;ylYSc'4'r,3)e|@1Ȳɭ.@};̀ƮHk~SA'N6+l:1G!kuLplap$x%f#ǶA nitP]Ho :A/v1S&Ma-8MHOl\iq7=1(fG͸I d@lVxPksVYFc(jr=yҘtnmWW(>/9*7$ԶVQ85J3FqH3B+ +HATM3y?K¶"[I&Ai\ԇI9{sOm]\֟w>5!+EM  +XTv2!s*]\Tb߇ͨ#Ș`t6jhds6^#ԈPB(įKU2UAjM[CݬK ._Rn E{q.\nEy& uTW,@;J'aQe7jvM[5LM1}mEmvбy>ڊZbQ*d)<㿳YP>%V%ʀ-hT)G2}*3jŀz\AMggjHɆh֠X)k̈́LYm5N b@X1ԣ'7gPRQ ϡ&$ֻ`ʜĔsq!L}dzigC6Q!ԏ\i +oUK2Tiv%q5!$GIf{ܴ?FOM7 qEWdDWD)5z8x=Ewǘ_)#|+sucYޠqOqjѐ ܛ;3Ca웏 4>u8vŚP+O/W"r;Gv䯯YЖOE*HTީ<NAwGB4iSpEd8[ή}vTq}5AusNg\v긢bSdQ l0 'T29m^Qc[Gy$RXFF+&h"_SIUli-DTBJ HGm7d {ìە=Dg*G(O?aLTm˦;1Agc.A*cFi;D\ +^Gd32̓ fi*(%IX,eM"ˀ,$\S;ȴ˽=^7 W@Y1jjO2;8&)<㵹`{L&:&`#j{ĮC25n7כ[ѫIc׳w3DQ)&fkcၿfT:B9RbT& $9 + )*̝8LsO$uIIwtiHj(bǪ1#HMneI[!$D/㐣8 Y(gU&B~O% +Z`L&4"r1ur̗k!CM^S̠r@}j"T)TcPHA[9w }j F%AF8A öquN "S}̉6AeW:j 22>ùqYa9 t--Od*D-x^].8r25nL5Gss(PqY r;8Re7ΎZ& g,PǙܔߖ =9, x}=Tw~z1iXe}Z@c>a^v\^yt=:Y*c/FбƂ:~s›O>m7&F*GpY 9Epcb,%%V8[4B*eX wJ\3:|\3.''(ǽ%uo'ǔ6 +(ERA2)Qp;TѦ1rUeL钁I% ug}!5@Im"!|AVu]afĂ}c'PEOeEUH@CD$A,(2er6XxQ&,{3{l9p: D:&9Vgc8,v',:?EУHò +3ض9XGVK)v^[Heq@#}HS+锖_veŕ8$z"ˁ9#1oE0 ?"LT{DRinr4 7X +ة8zkSM`D*FXSXĸjrS?1`aArmSQHb͡@4RqlX)^J4S-גF +Q@Jj93gPZjQtnKz^JV(TJ.}8`ЖqCn`F϶Cj`]xh\@Tmhھ~鿣A2ȍhp\1=̱Ӂlh!D!32(ΈŝDA:0nM@=gR&Xey6&< A#5ڸه6Qu{`OeT%m9'7e[ȯЗ%4Ԉmg%(&|"HRnFӃZAN{#FY4J00raά$oWX ra hKlQ!Yb:蒘N2[G{V0Tŧ~YT8pLU:v7 kcfXe6G GJ1ǵ\ iSi^4Q ϸB=θ2tD9<;xᬖh: t].`*vJ/.EOv3]ݑDAGeى=-򉠤N*TԻL2\_6@"6q/P_ I=%}%/ 2#UykZaNNIv))J^z^c4!9I9L.e9a}#Ie# TjoʧE;3JT`!"p@"է''8Tʯsˮ ,a0T9b6ĂXװ0_fb]Mhv:*0Dt{žXyęt_Օ0Q;lt +4J.Ϡh <; vB@ +Cm&$TRDDӾ"9Jk%IRO<\گ/shQF S^L[]/w2P4`*751ϸ{-('?/97SzBm,\R:R\M?>v"' Zd5A+ZX)'RlC t8snװENU%9pf~SrATj'kq +635Xq|zaK'h?f!2Kr!jLxݍŌhYs-ꙠЃXm#/7(! lA{T~g h@F2؛DGRcS3;i cÉsEȯWo{?_ЯW糛! -P ]_oc]f7c]PU/:=x‚aVhJ*9/*GF_a=;EK#~9~5+2Ol *֣f܉+ *y]*UsW'j<_e$˒ y 6a]ÞZU- _Ra yM,V}1&sv;qlwiv{W1e*)\v:Lz'*uկHwD3'爂_l 45oiF1mBAJo wpJ_[Pٗ3!TגA@\=؄Pmdŏ: O.h^;js_Cݖ TU + Ya5+h_7}F|~n.f3C^daJdز\f$>Zз%> +o |Y +]O;ӟh +.蜾+cjg@&.ezq5dӱVQ"K, +N>)DeӺ'8ڇeۧm7Fm0t,~}a.c|}aY G +>,H&2Nx-`Vxeu?7a^r3C֔t3)El-ppsot tS]H;TPwcO_hq1h; nN*:v)a]r<H:Z)X2"w#jljέ n@`W~g(ODrY+99 t{?NۿɠY*\cJ+sSZ^jvP}>:袒TI[sLQ9[DǦ.ǔ*ɽVb+H9~!sQ-J2bͼi\5[s}< .f#j*Wω뤐+9M(% C_tT >E9`1ScѾ]v^yHkb݉9"[c}V u7$jƄV9/ؓd3ѡek.[,`jĐP,߹ku 1>%" +Ys +juU x^S։BUN&KsXw|ffbsbgD.F]bDML3T|.@}AS>uAۡ}kXFbND?,搦.0}Q +p74A% UL\x?DuPF 6t!EdPΌ@dG-!Unj*A-AєjK^ki7itS>j-V*DuVx} + t݃|XHl~$)JV"Hѱ[HPwXMPyĀD`Y E +y-΀^|b-ޫA U&^KPWh Xl X$rc< Y@KT"*qͶ( ť MF,tB?Y:竽ב[bSE27e\. +:AZY^(A'h;ԙqM15[^SY{' 8kT)pO=V5#I i2Ւ!V!B*! 5tvֈ%V#2mbę!:yj#ɿcϖ5"E5OPvO0!_P⤪Z)|nj[U/$!'(RIRV`j8|C T[3ƛ!@_EAiAq5.کb':rXj.ZHVqTL[pHd,F #GKIOH@èsV&^euk*,f*7m^#"HLN!V*PHTS؋E杩qV-_e +L$8^Iar]AQ*sd/3PT]8Ƣ&K, x$NUjAs!*ՍB9;)E`AQ>LMSCAj\SeW:H%P,{o0V_idUzOߦ+JݱkȒ|PGw\lv +-fjp M q+(:ۧݠ&c8 gI-:PaB-?~4u?My3_߲v%/W^@8sf};IIo|N8v}ۤXë$u͒Wc<l=*tWsr"AI=0szT(K^fj"|Rk][Kȏwù?I#hˑ@-#R2 EsN\a<|xoRM{ݓO4X5¦;h"0ؘJR?asUˎmɖ-*Ҭ(@G@F-#'AD| 0-\EC_Or}7^aɊfd%H߿x:x6dXmg'Ȇ^MU]A.*$}J5uds,ZUwV,T*)"y2C),߾$iOq*]~ AY2zDr@? E"<[,gTU>Ș'y>?Js*H_ϯmߕ->8JõD3ap^]Ӥ-iS?zz~Y1lӾo6fZPSܰi&~j~{ݮi ]rlװ䓧9f'}^ĮA:G|S/V'rpyP\bܜVw3 HG6ÌT)$1+5q_А Ev:VJ Uu۔yWyx'aHIa&}j`[Ca#t0E:ܜ0ΰ\c2u1_Xqs5gR\T}A2=4 XBp8|ߕ-^Q']gP1BhtqgH&ծC079Hw)doZK%]`>C ܄-I K<7]3VnaA6xC,ƋQuVl~%RJ_$|^hB{J;^R:^EF.Gk%K?,p*^,Y@.c?.b۷F6MIī4+G*Inǰt,YwMsHt5:4{ω|ȣyUEgdj7wkYΪ7PwWGV?c;BנO ~ƅޖ oPtr\檃ZO7vBSjrO Kom{]iE?zABu_w>~m d16l[--1( O ذTm̡>Kq fm_Ӿtsq"c`'AnکGpBG,%]ī]R> +ll* X9m{'fhvcW~&@ds,'$P*նoM?5жO&V;nmRL6U(yDն}ۋ3zDr@? eu.SY֢^Oeiۻ"z1PJ_?D:̧`0g(LNaxki'1n7c|6xa8[yIlNv[w¿ZlEUoń}~n Zu%Ԛ]2/EL֒k.+$#⾆nvUaavAhRXX4Au~/7Xs Q&+0RC@CB}~躉tS;cSTї܈/%]uBh"`@Je/ a QʛD~:O# Gi5;rQHĜׯ[Kb4$fҵ5ځFdMHl9SW^CiŽ3: +iY%d԰AFɟ,o~`ZZ9 9ʁ Rk@43SrV_ym0/LXTK7=RdTndWkU;׮u 򒵩xǮLuVY =('IJi?A|%%q\`;$[|fXA tL2Yⶂ43jhbbXO%&3~m/%RHnB7o7fsHR ͛/׿U7X cɖH,9O9:YR<$Xa V+.Yo83aVuL_⌉Iy}p$Cc(>Ea1VmNKyJg @y`R<_?!I9+?O FyG'!՞Q5uFIK?z@SSR?i۳`L2pl.ʎ\`pvO'.!B%$.2_[@0 3@h)`u1)j.0;mz9h.=6[9 ewL M^i=3E\HJF6€أ$JlLK헰dDi>LR>@0`Hg_Gu0|$r@Ty59HRKB4=˿@rQbq ^ (vJ@o2BMNvf_*;.ȕuu(ͬ[sQ +qRs1"N z͗]BWȅaa(n1ޏrjYOA!,xđ51[aLavsEfGmQ)|\JVaW2v86:/T2% xc^!s~f4}ʷ LpBgDp +#&T)p,Y;>؊#ߜA׫%6F ,2e0iz @2~J/9K=nQjsVr +~KK<!U$/SpN_>RpYoh6 x ."S7)4I?!UHlWΈV|Hƴ^N }{U91En1FoD%Uboq#iRБգxP{qhF[_Z<ݥE=ˑgǥ{F$̓S9'H%RKpp<_A0Ecd0@(7L@R'4kCM]M 2+S2BO|xdGdўq# j+vwy~49Ce+‚qKOa>?` m]E#U3 ` ]x_8/1,) >R- 42mīqj#5'a*(qBDmٴm8 Zy>"f*([yznXZE5MB,+ftP(KHΩhawi.EE e8L?@fb XqN^#Pr#ڍf^6h|~Q v$ .&v4\ʟ:my9:M(%7T#3w*#]!\?BѮ@U +tdUH#.֊ࡌ2NG$J lgۚdz45Eo7$1wa9ڭ$ d )s(ݜy:T[DU"%LGNM;cHr+"6@6U5O ma_j2c 3״i{~ηDZ"6 6sI ј% >0i9~JtjJ8s$6 +/,υbl;rI !ۉS=g ɉSI)den\/Mԋ +uG$bZzHAAF6K6*0m9աJ.$jRWcv>?`UNS&wu5~-m~UK឵sxlFjL1i"L8:j Ԅm#VWB]Ij +&If:4i6%,$q=úG|ף9fd _ٛ˞KUK(CW)a "aV]` f~IrRy Tz2*(.# n+"ivz+uIiPc[3v@g ɈڗϽRמ?rjYȺ UWgDT8 Ysjk(b4MVfOiJ T>h6Z`$khCJ[#7kci8 Ng cʁ3/ģaYI˖X'w|5Mr_wß]~@eek +yԩ/ f<$Ҁ$VZqGr<(]lW~2#T 2^k~rHk?y%S #Y q!( ..L菙=}g1 +/cYbtJpZd}+`G +vգSC-˿d6, = RyK@C΍mlQtc{[ei(Z)/u_N0E)'/uzAf*?\grxǂNE"$ ~z`4bSe_&a%^Olfv+A?}Rmo0m3H +u#5Qr #[4uXzPy4FLe +n6^y@Ns{q(:@kMޖ`(L%*ҽHaB' 4b!fom徛} `fjYoIWkF6 jkM-xpcNkH| c=+Krt@Rb>nPekXN#Ch*1D5rYJAna8|(9֛(;IHjz~ؔ7p+e +fhT"LCpM0D.@(q7D̶(1E>; nq~;/Hp}(m$p23ۆK5d .3}s%p&^?RiM#z)5̩;fx0e38JR\}̶׻^{i&\cZ-N6l0呜;G2kQ"˿jNr\y.-+1LkJkIy[' * $tz98X C +_]_auT-Ww +vfUe4G<0kϝ j򜖽\cqXapGQ3H]G\xy7x}͚֙|*/>co쟌 }־}󹼚hv(%doz~FLkJ/h F@{ZVnH^kG)n䆌{Ҧ}X|ec85ݒ^Kt=r`;Jgpq@F%fjJܵt4[6Jq5'c<ʑxpcOց?ۜuʣ(T]#cLHc$L\ԁͶc?MF܏?`/R.֨Me}4|>:(̤-K[/lOn9+>}oY +}PI.l]jҼٷsCҬLܿyqr07FNxkGqv 9 ﶰo,TpsTTNz@g_Hd6rQ2OXsWm3&F OXӚo+\= +ru8H(F8ڳ@Jl9JR~8.FN +1m0`w2]7O(J/yºyc J  + kvKwh"yO BA@e4VJ?ʢŲ D%b-Tcz.,=/2Rqϫi傮*{]f=)iNX҃.l L5L25H*dWkld6E \ujhY/u#E Ճ=NxqWy{N2%_̱z/r +02%^PIBH0dRIF`F€Vc[K5Wd@ٍD7hMY~:á̦4/a96nص7Q~Q/:_sa׹Gg +7t7؃L~Gzұ#h'wa[kcP +GQRg^zrW1y.zs{!t}þ*~$60lf> ҆V;\#O@YA<^Auׇ8AA&q:qzfPt*iڙs'zb3._ $+6kdo1t -r % XC%>ǡܘx0Mu[jha܅v\_-8]1QTMWz㪳i~qj5L O|={mRH`u!fz'3NC$cշ_lfNS9vUb`gHye=yl/\L;i洎Sw8߃h[mT49yp[BCS"LԃmTOfm^[О|qFSsaC϶Ku 4"$(Am/m"!:V: '#J)_9N7WVpD' D18v%e3✩2ճa >Hqh;B4Τw-"9IqGzB_Z|M28.C6 oS Ml81޳+/ounwEVގ$`&!/7g\/wC`;9X>չfVg֕&57-2+sQ{G q_֭Ugh>ڡ8/] F[9q/;h,hA'~|(0 +?Qy"XP=;5Q> +.NՋwnxZ?~IBW^篗?wֻ~&<2ǣɟ~r¹͇%" +%Alm{Iِ4#^ǖE[p[Ê@3/U" N ZbSF䌳:E_J'.ڣAu$dhІe7~g1FHG `ۡLQJ|fN҃%V>]~ x奤65Qa^ss9CoT qH0KŃ[R%7=5⧞hsG`I|h7 Yt< :tX0F凬)@]cE{ ?&󡧄i3fÇW +W湟VgTVYT/:Ŏ fF Z/R;ioIX-6LE2SKxk2_JWxB\ͧʥ +b(/?=@%vP:KHC]YK+(Xj[dt]HwVB -ƽ:9e(esm51TI P8ۃ-+z雏v%u@7j ǾHAo=(0It LUGVA{!ȱ˵ &VӤcdc0Z8Tj\ t@^Jyn?y矃ɰ +D~j&&S-v֬vAx :tɬXHҜB .gre ZBjb4r!TRE_O|sٵH1(yDsaRr ~<<&Viޘ~)[:'䭯mԫ1O#;-?lT^.Sb_); +:wаtCkEbϨ6#EAfr5) +,}4o0U =1*A[Lc _GIUu}u\q,q y.A$Iփ'8Q9X[i/QG!5_rL:zkLb@~4 -Kajaw?0>L );rAi}+z~rsߡ{9V[4[YIKp@▮Ao#K8I#@4Sʮm> ABӗRʰfqqr1:6Ը/Nuy;XswY p3w7̧?KXXb}vR<nhΓ/0UT $z?U?T:~Af\ezr HĘ܂3ʓl[_TWAR'7Ac%[Z˿UDb}#[&PMf YEO*>ms}  +{]_5=}.1Tqɲ["`"g:#Z#cЃT&X60hg=ѢBz7vԁJ@ ٠c*`57O@l#ȄŹ;t8|(`{Kd׾#\&R>.Kg< \8PQ +-3B4!A$]u :FbYC +]N)6TZ͆ń_<Qx~eA,~$>cOrDܬ䶷=$ +d%Z,=V˚l(]UW.{3{F^un<ir^`[d/ {90RÙ +z8}a); +pѲp~EwJ^u +WH8TɞʦWgtÞl3wfYjߕ*h'T[p31rmG17*GT淋I_J6hy LX*:*i-^OJA_]xǹ#M~>ܬ ( ZJ z{pxC3yOMudOw7Un.fqLo$\gJ+HgP߯pJ|qo`hwhWhk/587բF 37C)5Fș~$wSMO={7rř6K!3TpF.i#/+H\0#&-"@ +ѱQO( gj*)i[2cr0f5v!a K Lqmm`ڥ 9q)w. [<0a_e-tQ DKO硵D-v'29{nl#g25ุ'%؃7s;.8engö]ސHe4) + JirS9֓1W&Lx:.yfk8%X%::GW^3v625k *g0z$s¬?|pB ?^90ބp;#uafgkMztFTab%Uʼ~@vdw#xs>Z)j + +Cw%T*D&,Mȍ|oO;IsaO8JUطp:CrL Y&Eo,>^BQhffdDqAfFkyZ둥Z4"_}ĹMM>Jx{Q'V6xjfXi/m +O0n7l7 g46'S$l !}c&\Vl-> ӁI!)~+ٿg6U.V3WdoUfg@$<S:6CHfOw4QK#s?%$Q }2#bUΓMɀ#Εd*_ӝ2z4 w<ۢߟ'۩*ivnMby)!Q7sTAOqh b5Y|@ڶi8ӾAfL Q89-~$ەЬq||)VY}.Gjabc'-򚥂A\rv0Uu eW-^0[PvP"- ^ g[+Rj.~\tG}m]/Y'[]t(CpRR>xHq|:̝HWګKuޕ\M%4[p` +g5g!RHR^Wh1qaLƮqXrAsK< h%Uwx,(?Γx5¥v3F@o.rV& ߧq{ξXgl}:kmj ^SjQ.6;;! 9Ry`?T9# Yxk5^s S~~ˮcWw_#c5du}_2`Cu3;z; l&#.e +w +N20]_W9Yj?)u>tVjdT @}e%~x&sV\/5^}g*%Un^]N8|GSVj_TА_Mt/iwo+#VLq[Xif˴tJM$_Kn[l&kOB{,z֞~'AE"}_R{ F^8MKku{~ݰ?wwr5>FשB*k,p`?ϪwP0E>zz(Q{Uo^V$$pFa${Fg$:X'L\}DDt9еR^\O5@X~[yk}w7wӯ,y4ی Cg3Lou0{Ca!q^ 7<쯺mws3J7f nJw?)݋s*})f{>M Pj"Z wP@so=䠱?)8 +n\ת7Fжy<%$ ;賚}B[ӅeEwoIRLJ"u#),ʓ??t$CIrke{ؑ6kW.iZ臕;u p/R=5M&O]$ߔ\yҘ̴t*'~ORN+*rArYJ }1y67TCOrgEӼ Młi(džlAYt:`fKq0(ŪQw ^}Bpq)e  3H.09u n3΍w|UA*um>+-Qk$br"_uy(v8l0n@zW+­`5\?B@kWԭ9>;n!z՞sքfEeߕ# yڅ2X4R!v3g@!όQL(cFU +/9uQM ib"/ջ݊M zJQ[;uW {ęXAmdHz^NQcap6جt uqUiQN뺮~brc+mг+yzou +LK+~^F5׺we"o\5;5Z^,EgɺŖZ3?Q#P+u/ʠ;zˏhD:[MhRNNճ7ŏw'5F#?ΊXň.d /9?+&ҫc]>5վاhH;5F#v#> Zqɩk~P=,g /-=u@^Z2=?о%{0i5U@~[21Oj7U9e !T^7ͷL.fb`Y[wTLxHzBmdcaoQJRPV^%UyV+ +;kA +y{רzp1 Bumݼ/6:\W!k3WE}<_#J5W:#]A![Kjmb/Ff%P[uzz7PT`02 \t,tA&^uX 1`!\hڣ7z5~/Z¥a:܀ =8T +~qrgFZ60 OɶQ2Ub2 \P/Sa@.ck~㊤HYaݭVz)#{5 sLD 5ZF޲E"]B o6S7HɌ۫ZmFA.%H8q6sOjxRY:Fb'tGf00د+ %3MaaU 6Q@dJ d}42@P!qoJ-p } 8_] $iO,I 6In 77_bkʅ]49Tܘ8uqȷ4Y}3)`z}`X^UMEԷ:3w5xƊ )z +|ЛsVkLx O +dn*]:Q?Y#jºm[NO z ˿eQ[@6v>DMoAlJ~ҥ {TE!D%6& g\JtafFan.c;TKMMN4 3Yi¦}2O+YHT,Gޠ'=${ob2.m;}/9X`g$97 +WԠ3uCre n_ މ6T{ab#$n_ۢW)"DE +PRq%9S7D v#> +lF۱vz-mo;|n^sewɶ]Vw_˜-Vϵu6ὴ dn~DZ3′8W} !|- 㳷F|U|<3j 9倿 =˦ed-kD} +!jTTD7icg?>Y.گK@g +Μ@eyoxie= `Gr z_;z[~ oGo C+_DnlYb; x7o+VmQ" },rЏZxwevma۝xqF^8A/ߵY5px{_,; xm_u3Έs;~EPG!h.1_o_M/۔CzA!mI;Jbu]ww_/kө$$UWQ_߲ri۸sW0)jQܕlȹ6ِ湴Zm4~0#s{5)DˬU'xw`%[/^ D|.ID۱A11IXNA73 +Faޫ 9a/_S,dR*&1FHY IK/D'{`uG53 ZMjW57ӃKސm|HaWM#=Ga24ݦ·UfdOj$5F5򃽪}'uJHyTU'֤stWB^.!ir5\?\CTkԥC[^*~hMnY ;6?4` $Xv!fHo钲I3#mF3@gOOwqxbՅ"JZgFv\VK9z_6 _fJFS_fz;}d!R_*I_CHi.ne/;g# + Ǔ+uiČMT-^Q!W4daV.\j`?!)nh $RsTctU;8nt~a=JFg.=ʕZ ě69[:|OsLcXRYi͇>ß:^ਠV9o _ݓ<"4nM_^9f.1bu">A}ht73S]ݗLቊvEcj;Ccy>u9Wi| }dF(.~ن%&K4ǻuF=gx@JYfN,|h3oڣyZ|ˎx{_*g_ Nj΃g|ߴL|4Dp,[s* J<$qCEJ?D1ɭ{^vc ln+}!zyOnTK`?N,U1*:Q%=:Z 2xF? +:j o5"@mܤkA>6m>.5؞{4h L}㼤oo2ȕ:T;="[LVea,5o9>ZZ`uk@+bS7SZܸ]dhƳ`PZ-ru3* A])$usiH1f@3"j5'JMyݡ Dc5 ZB-M8un>ԯQv,[c*\SygG:>ùW+׀7me'4Ґ VZO*#iXv҇ P7Suc{`pzg})V6F;^rf1@&-'&wN(6vFFb.Rsֳ%=axgT'LĨ#؉WlWW&Z.,bbjG0lܞ%ypGv edLiﱸ|e\\7DYA)WKIcV٦ddYQ@8%d2Oυ퍍"y#7zö;R2/6@d\ ,6툙hyQߒ -Oҭμ"04%ȱN$Rb V`z(tFD(X-Jqת +BT@JsY`ٵL9/HR~wB:lpd8ƘR\d^)5hY504[l: 1&ɟOD: 7h)y[z.˜j:݁LEMr*-F)Ty fb] *`ۧ&v +%ps)mBkuA1toOm!kI.:CٵBvAHfKSNQ0o6Yх 6}BAZ3kuD*O]6StR+Ї !>ژ=Q-Fj<8$}E iEr~'p'ǴZe1twQ3za:M\r9)`( ufo$DC7lml10yR܃q<Gn^i?EUSjOtˑҦδ4kQ J{fT۟RŮk+m+^ق@+m7EuM';û_5f W*+/ߡu-WEӺFEk=z:>bZ=c"bŪEn_?d_ax%Xy ~SUB ̟ddxы.(QrSɵPJ5PvX:Cft0,1]T\W>0W~TlūyUż0" /4 +^8 q8Tono.j}]X>Lj/0,l&ߩH&l1Ր|*_܀}[nfROo\J>9 'i8.Nްy]SW ~U-I}~7a4?M?fNʪ9$hFbG:["lv85: l/8{q< `+F`i5cq}7{MdR`.yqou"r1[ްIjuLj> ǹɘG{AesIq۟6ҹPؖ"lxvn͸4Oۺv?7tk%tsv9^>Z[Uq! ~s՗ uCtԳj:& f=fO}ON{_jG|¼afbBnaһXh ZZ'y{xoW`fuf|XO3ɽ=]=inWfn.s)o݋~8Oɘ@D@qN׃9v5p,'Ela=UI֧yUM7TWC7E[T8sS)~`3[?!<31Tv2q&,=|IVa5iے=ޑ!Z '~vefO ih "f- h:LVfvfK>UiP[mq mXlno_mÐӊfOX2`0Ѵg\YHJ Pl[XQa 3}.sP2~Ķo +5ۛ'2J0nĢae0ܟkJ8ŷ_/Kb*,0NY^B%< Gʢw ȝAVGg{{n9B#eք}=H*ߏZ6<84/)+O9㔸b;,oI.IlO#|W܀5%2q@aCK#YvZ@_:FmX#R{[NGz{0ؓ*LTNkE홭7i?A%0m1>^MbrH.g!Y醧o>9x {cID:h   @7IW!>+{a{\lH_mOO|hQFtz{!-Lҹa|7¶@X%afr/Oo0 +bfqaDfӗ^4\3ۜ_T^Qv`nx$2+?CqHo_{VeZ?Nc/6mXz4/cH:t7zj2^+@ +wﶜOs/_ToZs-+_ܗEK!5g !z;!z-+x2:}tF jǑr3=sLj*Uu0"ߠJxO*W,g6z[1IZ`Q.*!Y*2+r`ܰak"th_cv]Ij?Zl6̬ C=`XI Y Rnߦ% 5dڋ<~FZp|`k}:MwEAݴ,;dVG0Of.CC?'}TBLфQ9 A,wr/A8 vŚNsAy'SVƻAO\>H"~Hr P ]N7X(On~*F֏Z$ܚ@'W0'[Q*vdL/% f'.Qtͥ[GHc~HإʝDR>U8*{-Uq]U`z8X5׀`<~0*o*hh'V3;}y$U N!T3-I[@̺e}\%aduLKe +J ٹvm]Ćt\2Eo^īnYxfwIYA6[JWjFE!HkSmڑ7"ݢ!>EE̩%zVS丵 VKG*^*Vp`_ &~G/1ZP{G+4z e633A ~Lglˇ +ާ +ޏr۽ WpƳ^--\.pGDzr9wDLKjHty6|q B챻7 yz(jjḘ"Ds"P<.l~zXsi`g$~Fq#adgM'l*Tq2X1i~x짜ۙ5ۅ#M#@95+m/x}gkn~+O_ݎ4^KkVv%&^]yxkkR'9!>uQtoT/"r Dq@g 1aq7[14:wLG,T&=na´__-IQ&m[;{B +a?a zi"h6)=j2:e/rl{s9Ba: aafBI4B}O:BmnP,س/ԭ nsiXb]-}do(@ 7$00fa.]]g#5*-X4[79o{XZE=i&GO3| .JƜL0 lLpi m:٪T]Cӂz3ZuKe+G +6vk,?6{]}PH"ڥtkZp'iKW5a]ޥ/dFad8d Omi`k< tzEyW$f69i_+&R+x+ncAT'I $:/oYp/lb6+;#W15̷:xǸ .H4k ÒW*fAnv伲p}m][Z,07 cOgNg3Kdͦ܁m̀-*I Q.g9Hxr.)Szt:Ąe0ڀ!i +FA²eTr@0q=˽dL9a֓RdM_+BkfƦh ,Vv:O'4Ow[B]ĔVw8E+a4ބZ xQC.`N.P:XrMnr{d2% +, ƤM$Nziٶf6kE۹70`;طf6N/' +3򱢼'5@yŋJqa: V=,>a3{V;vڳ"ʨ޾{;Ö$8ל}R? !|sIضs6/#O{xmkGP]Cun\[ZW6'/ OQ-f- #̺pP++$hzpKY+L.%I[( uH *-I/?hήq+UGnUC3㬽g|H[|{3> Axu~pߞs{v9{G^o6Adb)oef):;ANZCLB?/>XQfAVK z:TDւ+M@겕-\CmkWf@/oȘl|1R ԤBٝLt=$7* گ!ӨxMPH6/iB۸`cAe}yRPFc'lGnh$b^ aXi یtIwvQX=G5~ A%kXXG\ +9 Xr0rTЀ\[נ:N$|QRͽ`Խ\d|7Dr5JX'{iònF&fˮ`Qh +VXT. l +-#$|0CF]4q<ηv+M;.L(̾}º +"Xgd$*F iWD'^-I ʧp%tegT-嘝=DqĹ)"/d} |i++;b9[n`<,rt ` !iH,?! MI-JB8#yr QʲT>)n0{ne&F4y`ׁ /tρYP)gX/E`?3nlgyFp_yn`f) +'+^AvK0&eVzW,\l@lƙ-B)r#\&Y^W\` yX ~Wtlj xv>؝r:}{`fsmǃz\ʳٵO 80CH`_ʌ0r?& + !M2lY3zl`YA\Є#?*=񚎸{AAI{A xt1Uv0٭b8(qVdF=i"moAev S[,u )njr;|A5j?tC* +bYi8v2!BFU,իO>'j8WZb{wEۮlh`ˋL8!]`:p˨W,>jӓa@oZu݉d#7=]4p b$ZfT!h_`u?i*t_Kk2p@oy3l׻Eiq^hc*;g@^:Hܕ`4_"1. >igs,_#(&/9<=lK{dOxL3#/Iv k|)-'A"U<| i'Og bJJ R/H7wh{L%=./q0 n(Ƒ+Y7EQĴKxzǙ C.#!E:Nެ10R1eP EE(#N>*zSe(b{q8Y ޑz`]>Ў5Y$@)"Hcs.g6Ȝ v,P-εb]eIm*'2(3Oi,a; j"b{׮kBךz䏙tSz]A.2zIMv\=Q9 W=%Tvi9TZnA +:5F^4)00 ˞ęRES;Qg;bz)c'cv1DI8J;SiVsoM&k^ $DAz=bNm*{VbN<`*@59̮"Il;t&HXqCUm-g0滻_C+4/ !zIK+&LYf80v }+xz]I`)]W>ڛtTVׯߡfB7N^1#e:ErԊr(;-x8 :RWɚž'OJq6*'!c4Ғ'jtX9"v!|`{Er *GM%Sd{NJ{B:7>.pE)\<0t.ԓ=5SJ. > G`)"ɚ}dvjW[a;},J ضOeȞb&/wBu>_x_E[M6/i."9Aq>a%EVǵg.<e7to-,4_fhQIK3&L)_%2l-8lywsb9>󕇓j>ҹPRQGްS0 bA0:5죕Pd´G ㌛Bd4uΪoZ$mq G"/b w !Ho!<-ە p㔅[ڳA.W >Fjs#R y3^ΚWG^k~i\&:RѲi?+QJH-sdjLި2Ur:VB/YԔTsL#3VE ߣ7Dw0?Q`f$bNTp$Eʕ6s6- ƒoW[36z +؞{]CgIFAM#vnc/!jsv'/ 6 B<@Boo a~5jkaUl ޟ35(PDYZMCŁS;q\?̕"^aQ/9O- +Oӧm yѾXlNM4Zj^@N:]%4\  z4 wLH7\v:ή.43î1]g]7OԈ ـF{5<\ZOA-aK@$,ԨHGNC*/ +%~{'].Ğ{1渥(1mJr#ӂFb2sijgg'vήXmT*3ԉ*b9aid7plg|xl'el_`!BQ;m*h@!!VE)vNfC*ñ(~kov95+OŠ4IbWHGXdc,Or-spb!@7~7Kyd"5M{ƅ}FR.Z7B{01Sw1:B'x4Eg1paBU~4BλYḠq8ⴍ1DRmbVJ)7RkO8ݧ2r: Xd(B +_(1~LZ>R~dn"@H7\vC# +=1wl< $򇊿L=shO-%Ļ9B[9GQX;gTm]`\R3J(α]\K5fAfIlOrgw-2L}Gq;=gL$æ.[B1F +IAz" Vdvee] XR%XwbG%O.@ؾvňV"]u7dQ,wC1SO +k~!Nqcv,]=z@ b$V=ID& S)࡟x}r똌VÒ,nhM?;d.aOI&[;R$-Lq>(Quh\Y,,SЭIeK䡱Gm;8RX(x'O"cOx4R3H2n힬€HCMc<Trv$[b DٖlR-A}b#dS^x&٫$Qv(_ϫ vEg^iƺt XL/z'c 7KyɺxY6'(8C@[,.ߴxEy`Hnʘ/C&S )u"㘇@G^ [@/:Qb6/ 62Y=Ц[d^: n0qi-˸'ͷN}TK&-n݆2;;039 \%\*mkht3X]0%Xc\@ Eh7k5[$ %!^䴹j/\\}^'v-N+vDL'g\B~7׎r'N[w91]=)H4 [!@uA?Ўx/2*uh?!QM$9aS vPA}\$=`⋆oY2` -SAzIj2#"qla&<[iͼXf3ȼ&KXHy;5pb@Ƴ(X84͸4͇5UK $["gJhHDu ~*@uIK4(e{";Z2޸Q|S\;=X$d|LNB5dh{9r]Tlq}$2HEpB:ӱ#1:+Ud+FIII7ݽ@'3K sټ_{S`sk8#ꉖ[J֥fv^A*ә bJîY;eUIAT^zF}{?7G2i7h‰*Ndh0>?x#/XQhoLF8C-t=GP0nV2SxԑIKVVɑAkݍ+_| ' \&{dC68SQ*{}r|7w9K4(.!.n2(:G[f;^NėO``wlWy4@,,se聯m&.^dXNƤښFyb [ZV̊`~/::Ayz {KЎހ3Mj'bc_X5c$ +VL4F>aik6*h6X7xLu%إ45eI-A%. }af F=V$t ;==4|ӘcR B;^".CȇtZH͹ދ򻼝Vb߽Nӯ:@h.o@QN}y%W]g3WBq|3Mze?.G .xi\P)ȸ'zvMEhjSI5Ihg͔O wBd kzW~o9~vv41*M4$X +#4†Yp/^Y/"^K^+@œF?+z2C]wo%,ſ//Ot/wE9_=^ă5wn0'=~#I}H>_>=нloǿ1_>P&r&|v} ?n}z;z__+=w{kyݑ41+cLo~gXIrԀ49&#na٘E6{#lmn +M?=N97FVtBiп>#yy#)|F;@pկsӓ4KHW0PҜ~c,ř՝rJ O# ׼w )zv!c\ވ| WPŧ؟PKN@/ *KDƟu\7:V=N>23kAH#%vbT?9m@O'2(?iNzlXUAyT!ҔQ;Ϟ*Nt9"֪HCJhgC' -E/}i5S*98I/G]5#2{Yk֯rZ2$unL)2BT_q`bE9ػUJYމ@el8 +N2fEcI1=݌!L=U@O3Ԓcf?5}bC,@X"@8 Dn`1jo[&oNq˲cwĢ;7=!j Hl\~  +90V.^+c)cgO\ƿmeVbS:5~NP޾H@ëVK3(),Ѱ4Cm)\}rne^@n4td%)n<~'dvv:ޟdI0g1-Hgrq"%3SStj=Z,IEyBHAgBC rx@c3]f۲ENS@Vwæ4OsHS$v̸iص -gD=^%󸬶,(tJ Ʋ5P/8hld4@᭣ͷA$ 2$l֣\nQas秺v#l" aGȁ2PQNm(7Q=m[qP͌%@h}U<2~+fTα v\1SIk{R[AOo~9Ƹ]PZ(=Pʔ>7=4<4!c=W{"y]AW&l!jԎQq_YfP(uc4RޚbVI {aͨ!SItJWDgn pMUtCW9`̹q'yյҗWܴ*xy U1CuFf_ĝ\@%ƣ}6L7n¥pjU!'~ᕑ{EiXa^j0k}8'ʎZRQuysCquhhܰHMl}/+bA0]V 7Qn0L23M9]̑ς( @nC-~@eVDyҠ5Xܐu> kM m4*6N3j=泠& ~ Z?rN(*ҷ1Xܐu> lk7l,0L7gAβ"?{oˋcs泠& ~ Z?rښ(ӀVVHqła`[5n`܃.J%۟5P?ep +mMwɴ{9nXu> lkM {prR0ͨ-_qlYPe׵h +m *0ՔrYKָbqC0]V 7Qn0L#:uQ>GpkW|D6T4\D \~bqC0pak\dh6'7ͨ-_qlYP?Pkp +m]*XQJa,dEapearvS%Ԓ^UqP?ep +mM/+rKbA0]V 7Qn0L_9(r{sCM@nC-~@Wh T)L+ZZ0m ·mװZra V$M;x4|űgA]~ Z?b[ejqcdq0k}h45Iaa͵\gBZ㷰&ֆ~"ٰZn?'+]'n!{q`Z E=/Ah5#4G_ܮÆh1fѝ Ƃ.Ɖ6+ħ^ vr{Kчְz=ҬX bM}0\zr}?qN-u6^yNM'?S9ե +k7̐:kbC̮WEI47NՠԀ 8 +Uؗ|5$xV[$(KM|nzi& v78IK":M)W]sU?g(tQǨɮ #8`f-]9ǽ,;oAQ=ֆRsNYh{[zo0g~ 4B6 b +f>jݸ Ԍ[&xʅc!a2`*&X9ߥ\ʋlƺO˟ ,FC㓞b,cA5.^wڴs\d5@plb#o^i lclkwZ\u,cJ~Qq" r0n.@|`sP  .Ǣ#ߕc>i +r=vq;|Q-.5@78W [y3Do5x `sP  . +lMQ8 #;=ࢁ7]Z\kd487YW/Ha>pS-.m$'\ mEZqr.҈N + sP  .qdHC0n.@|`sPr8]#[/jPR\0]\tqjq9(c5VqG"7k 4' 6xQ-.:" k?^r`^T `,c {qc>i$Pc7oa>Y{wjql#!>!`p6Vp9  sP  .9- R}0SO1x `kwjql#!>!`pw~-pP[ sP  .10pHC`-.A|,hpq08vVWGp҈Wr#\4skT `,c'l%[qGHCx ɂ ޻kTA48z駴sҹty<ϐ u 4>( \}뼋<"1g^M\GoߝG':W':댮fO:uFǂ7i*c>[9][m ?Of8 +Z%>>ՀO@G٩ U^Bf Ot0(97d,tzЃ'b5ڀEY@%`xJEiQ9Oc;smLud{5.58l"貔!hAYA-[ zX t?*ֱɹ48Cs% \*hmQ/ ,^U/|+~I7&O4DKyE9+|]C@UW`l8EGh4> +ձo8f6/NtstP}<:W}GC}<6oo|,|r^3Ⱥ ;F>RX붑 ̊ 76EuAl +l#E8ް'g!E]l4̧scw4'`Q`qFO'{<&oX:los!ϱVm# +\4,B`sPpa!4̧s 4'`Q`q'{|:crJcs:dj,0 ܹhT;F@`om4̧s 4'`Q`q'{|pB4Z\`ܻ+sѨn8A=^ 1%wS + i\] y52: x`5֪m`nÍ `Q`q'{<~ 谸EȀ4p.x,4g A=~M5W8.xM\\X ̂ 7.EAj_8ް6"౻n8A=f80&m.2sUkdYpE52: &j8p\؀4p.v,,B`sPx7E X ̂{ww. !9(xr\Ø\T hO +h!9Xx79,Vm#kw\4,B`sPxOdl%o6xc;OhOq|!9(xr\]e&E8ްB8kO.kUf݆ 6OxE4pa6"౻n8A=f80&46 +9֪5,wWpQOk +{x܇56a> m8><9҂8Y_nC/ 0owmD[fhy'QV;O*[d^9\WwɅLB"Nnz_ *f#+Pazy[*תdfKnߙ +YEs!.iwBHA2 Y~6u/˞s%E༧6y_]BXش̯ .`Q]+۱1Unk|Z|w`CX-F%ikϗVUSSyMYLWauYP^PH(LӿABx +’ɤf$: !8\˸++Cd48LΘ=?oL@fqUɈ狦է$lf*kMJ6p8/A c, hM!C|,A Yy|֍}2Zup1 Ry8\7Sb9XaZFdjp n^cq%u#Z 2'wRjjAXCeTjvp{ՂL-V'asv/C|֥vdO)pIV(퓩0>Cwa^@5naN@ZW-k$ƛq(2e׊oYdO)p廊ʠ}2Zup(cf8dv=g2+9l౓V+֨L-V %wS >yg;de6X;-j^ S U/~5jܱrA;)j'-5 S Ui`︵Zjc N@ZW-֪ƛmgM/w\P簁NZW-k$8kKʌ+7,SIQA5djj8tX?֖SsZyClj2h*k[_zXWn!>YV+U 2Z5:/<{ެ 6pdSAkTAo^pDz5n C|LТV+U 2ZupL[(!۞.T㎕ 6IQZ`q)lM׷%/煕9V!>`dSA5djY)73!ή;M1XaZyZ֪C|{Kk@h!z }oy2Uϗ4;@c  ~+p=L0g79y,Ts^sh>goI.˼?8JUa߉ځ Q=ĄpLqQ)R/6 g0B6鼒7GJ3,&W'pd#Do|[s)&_(xH)tqg(@\ {Gb +ZGx , +{;i+M ۖ l OO&Zb싥hp[7&k`[L.b~@@[m1bXd@@[m1%n[Pn?E-3ђn[r d@@[}1A`lM/Ēn_n1;"`[LhI-d@@[m1%ݶXmk-m8-o}ˉo9)ћph o+_Vzy)'Se2׋/rSͼ7 MlgW) F _T(g,&`}A:hu|,ĨFa(GlCZvN=B7c)'i 62 +Uׂ` τ= 7"I~|ljjІ;F2D2 -FnD٫ƍgz'܈J|5ԙN9BG(FnD,*Lo%v/PNnD.yl>n;FrSL-//ˆNw]nXKǿUpމ7"7#_HwpM̢L=ER`rƈ3W10`.b׫ U 4~tpDZf[n)oWu ++|%ʂs¶mDzW*Eban\`WzFc#YP!RHL''kS)4p: +]u$Fh-ʒ:kc +Ԋ)O&,H-%O +J*L#|G蹽۳l ?+L zbiAՆ6{{7Qe~'otux[nT7m}z_"xiۢfQ ."7-op\Do" ~_OnFx \D:uĖR{\Do" ~[t7rU }ROp 4mݪz["xiۢ~HMVmQ}."~[t7TmF'D,(E$p'Rˢ /G^uzݤrijpclrW|Yجc+xn +5l)dlyXђ@.=C:pKVZ}Td p: +]5: +}jUWzjتL&%4T(ыh複\EQtQ}VD4!PU &.Dj^z1PQ99.ȶȂnY"-z{om70dN.J`nϔ O ?|6d29@Q뀰RkXޯ-Q <>؞H6hr +Ru`*R6{GMwbN@?,8%lT`Ajx اdpf.xQt;gh_౜GЃOŊ? +ҧ֩6>,F ނa{GͶP W~XiBn +ТѾަ"Q?j9n$7$(|Fj_7goSp[Kh~R'k@> ̛I~dOc[]AoG%La?F堍(r9F'OX9}Y}O>w0FpK`klԣ?Pb-ƹ lfifskYj_(~5pOn }0*&Ѣоަ"Q?j{z||FM3(B`>mp6p6h4 +Fz{+ MZ:j5h\n{lh仭Zmzc_fz@¦z,[۶VSH#dYls6A|YgPsc_%ǁL!Q# Wf&po߮ P(0'+^ksƝbGcZq}ǿLm'_8'ar벟)o9NWL7|.LRFjvw~;}\WEyŞ+67/bյX%~ 7K!˜:}-m?c]ˌW__푭5»+)Y^=Al^ϏH|=ZЗ6S^Bqns F7] ;li4/-\1cte83UʄNSDܖ%uXN#; .ķ5 +ь: Jϳ#h9 . +*J}gSr;ꪞ t^2qGww"=ɉۼl~ +ћ!SB +. G }y`z M*!JF멪g"r\{^YJ+ +E 3Yc +IP!@x8]'|¨`}7 !~"? Qr%D7H$0ˌ`ғEVN.9~e0BYl=bGފ ,K x S 0P$a' ݢ2KAle|xZ-98'eI0N':ij| F /O=A vLRCxN,z+;y!pcAL( +Ȗ^hx(عRQAd BzRƒ'q"zc㡮1xw!-4aF=CNdP7$Mn'k%+B k.YEm!ь~S, i=X2So?] w=/=/jߘJD_,߮XX5 X(.WX3#F$Fp`@*O,@5Nm'*V+V +2v:3ƨG!E/C뱰v?S (aXќ%ܽnk~y +mMUx`mČmXX6g^yl[(tɜ㷅Q绖Ş^\Ze?l~ +{E#e|e5>KGj'ͥﻴLe?+!cTAbz̀L> %2 +4[2zJd. '2v(}*hţ%ymV +b(V] Sud+T6͍YގuoeŠ!( + mZv v[iV>hcEUZ +4{iOaHn 5!z>$6ڳ~ݨ@]"88?}qAP$ +7h0[e>kh[ZzбG3?|w-mӠ'Qx[F_=oz4hzS%x:k5Y'Ւ5P"|*>/8gZ63Kud@?PZc]=u(k{>駡E6{ڶD_=iq t.P]t$>E5!t_h6)Ci hh»eEz6^,F*=}cŗIc`>vUn7g)G҅JAQn}ROt9YahbYE&>z"--,;6:fdmwA~E#f-RI ^A| +P(pvkW÷.S3>/MD5ieWgyH[M Զ\2iz>HgDt?AWI6`PO^n^+\M^7v' aߞҩC|:Z)ݞ<RYe7FuLHc]5 $MʔGpvFNvupk q)-s{d +"d>Y| WauC*Jw j^m\Fں=X~a+4C-K^#{nXz!sqِ"OD]Ku % .8A6c;Bns+S7BL8%\fu QG\yuc#1o!)lL;0W(,l}Æ}q4^% jīØ*v4&jrJW/w,}R1j?f](`Dh/3d5$u22Zo\DwGtxO_j[w"I[ڪtqӽ~+K(QdtqֶwJ. kd޺ +*(gfz_,: rG+P_GT W 1C)փG=H*d1:+ XcǴ’ `{ gL6X?mbJt7QVtA(cr#Lb7BNG2u湋K-D*Nhi|c= pe{"f}k1dή* чmurC藶CQ Ř^nl2B +(]/'#CM6ʮ5ͣ)=rr Dm1Yq%HE Ӎ,u\teVrO Fxѩ_WoV +¬OD a&1aQZ5Ch(|f+3 x/S2qqTot/$BnL#ENN1W%u3eJX/!WT,A/N7(b;?A񺬪Όy)D*'] bnATfYknM\"<]bODSL3T|. Ab*q +z<6A22ն9OTRnj_2ml+g/s+ھJ:hd;HxvAn/㢽W{*Aw@U 1-!{VtjК Ē h +$E0#bmV/UL`1(l" t2*;$HkU+-r$-@ )- +(FW 1LЪF'=.Il[JIh!wkI x.I]U#RTd(q8 +eL8ePJ#1Ypx IH*A +D +U#BCAԃ#0Mc,L? +U`MN>צ? +6tOo`XtF+rEpe)n. bCd\I!>=hfO-WF[d@7up.b-,;6:fdmwA~E#f78 /JG _ΆIĩR XnQNHbN`t?̬+T 1妩 +=HRj=-(*g9*QJkSUg.'';',P%I=k. +dFJh]A;6Y2ť#["?xe<(՞zw.+*4^%-~UVyH@'3C%`#zr ߤ4I8 :_smIBpdYNv$X9gxP*BS $#WA礧dOs+:gTqZ/'痞Qu:>Ղ̆5m#!Es*Ja= +28A8`A2%N(^Gf +i&,!]i$e>'kOJ}iMpAãb+flM-3zZ}&&64ba_F<.L>3ZcnХ [S)rE G#̘y ɼ<8Hk$4M_iϸӉv>` s* :LvEJt^/L abؘAȌs8YǓ;s1/u (8av5}?tF> _ZSd DCީNϜ֜ȜG+>CyNŊĚ8g Y/ +ɠ@]e +ٌC?Ჯ,W$::}\OCOJyy=Gr^ *XXc<>YpNv)}Qf^s#.Sb"W.e :'H3#T'r0(J s&QXT_0н(aW:&SVmBXv]4x!@eYBm|H"($΄&zy'l;ȹAw!&f~憐8iA69@G,6NkNH7 j$,Ͷ5M?`^'>+ 2H(G,3 c;EK$7j %Qm7}M Ri1@tvk [PUF)JŠxdE/Boň1&RG@K\ToqW$J0! Ru4cHKLqEӦp.j knc1ZZs'Q&ksaað}leЅrz$D29+&E_RU?d %$2#V] l|2!ƼLe +M+H~r%܊ҏ-2V݇ըy0EtfW22!1rf_SH![7QX_ʘSKȰDe}Idf!1u/0aNe(b%m)X/%5}6z;\גRF?;9ݯk yi{VqJ@__P`f35T\OvTnRR`bD >c[6f90˳Mv +<9_ws~RwqBluqV_ Zjt[ u9PgOvͤ>?|l ]Rǟ@?|oscذ=c)>15}@yFhjgQXj8>6پ +~x`~0w`%k`V'!c64&6 +lD`zԽs:3#UV(I .UIa#fkpO!XEHW +uumԪo_ ws8Dsn2zk~|iԥvV\)WYΒ ~I9*HSsFәQB,<D,6^m/f[y+nP2A^)< V 8.Y8bOnpRQǼ~Ja΄S*5Bi2Z:: vLGEf(\J(+Z{̽=:KzcUL׻6LD0޻RZLIqN +k }DQsq쌌sE.dl_ PXP?)YA&]R A'ؤi:G'ScZgl9M:BI:?BFo&.RgZĜuvne9+/ŗ_.3"=0Y\%b]ChqY? pc9+&8 L#zEPH41 +C)rq3#,gydC0 >moxV#U\ҝ9#'?HR)XrnX9O.cz7Ilϼ 68D?3: 6t4bL{m i5*\EҼJA8= !z⪀u=/55AoN8$jPI` R I# Eę&Ljca*b#~NcpX} ^W|b`zMlqE?:_7^52`c,d@'(zʵEҌ%z{r׸8U1Q^`vQ?kMm+ȓǜth2ʐ_@lXv69`ڃ/NS;,IPQtrfTwX֞~4]x4)%R)T6T z_.`J}( +LCeZbٍz^|pc kZRZy&a M\^1 apb{麵?RpCbx(!~_5uϲ7|m[e!eI!ueme-:mҠlJR7ǐzš[ؓ?mv-$W?Ž` `7Vqxwu/3F 3%OGqMl{M<sȬFk(a?ic,eMT0H[v8wTqϚƢ\>uj^fRvG77,S4,]:*!7!40ѫ(b}9r,.aze\zr0H$Nd<~og2ͱ^FUatհg^w bCN ׃BhJckH²<i>Ձ: T)#p+|sycfgl!u ;Oql2=珆Aa?:2:͚Rw(k!2ɥ}kAaǤ(Q=6L"D7:dt =s t&V+u1fKf1蕆s,V`:n"bRfk&qACjH(Z${8 g׼$s_7IžG0MH GfCH3RЭR!6M7%څ^Xѽmu4% 8d,UJQsY$Lwۘٚvw>q‡`m``R8[f;Z0ψ*'ZKy|jҰGHX +0!Aֵv]Q&'lvG( DjcC09lOAR˛F_%3g+XE7$R]>)߲6I͆,)|4V9ČɃz0RDN;b'|8_u4ZH ve77̅D!Eegnq3A?HbmwΏ"?0vZ[:#5}Oypf<{eI& +3w}Is䋢Ibbײe7G q`\% Y0ћ1?o)+ g,hh$=hŴa[6v㷢v9隍HK4;90p}KD"@|Y<ǾOGBdAIM L`K2*+!y[>m(4\ +$b9XHcz*4pb(%:&鹈e&KAn>Ptb֦Gy+o5[# 9/hO{QgsP8g݂{6ajE5[ɡlrtc#9uFa*N{^mX+;d =L&I0E{vcFQ'>Z T c?$͹Da4[MQ|ki:>㩥"-[4;ܐ%T9v.iGDpgc")84EQER f w̎/d9nR,6EY> 6>p޼⩪v[yFّ8ņESQ(Y5vQ\.(+KqzrZ4JÒ@^mXFG<%ّ)E3[!pħYhssQ\<,PfOoм ELJ~Fⓢ~c$_ ݲ|?R$ЇƲBP`Buؕ>|y+ߒŗ56=u qΛM9a; 385,1~>Pyh vFs1re{kwSE>9f4R8=S -{<",nYV(c]d}RJy_~|RR+Ect,?R9N>E)4_2讉o|߬Jo]_dYyCU4U=PrNIKY$2sEdYmg-y|&/91TK7U# ӣ]Wg6k ⴓƂ>\TBo]d!n1/IXr b٦&2#D` ucMQRY:QNUaӗs{ Jaŕ7QNf-^Ö6'jNl!2Έ<*vF@=̈́;KS@ɜp1$RƂ|&Eq8O8 +bAe_\,jN2p9AZSl<,&XOXݦ<#%,P㦺P ++t(ԈuUq.Sdeazۺ4 +5 7g~CTp96HM"{R(@j>[@}m%$'ƓB@9–αmt&^'!y寧L7oW2 +f}_6dƨ0X™cKLytشph6)q|vzEBu#倍aȝ[yR<Kepf >,pK] Tnf3{_ú ,q˫[mIX]ZxBě6QDT~. g9e xB9;_%h2X^Whaן$g `ԵGj. C|Sφ\xPU9 (o@6HK]}9Rlm17;urCK3MܠOp8\"[& !Cf|$rC +-rKCO1r aD^di-9z /_`?s* N +`+Ș7D4wE9W^rua~i9c(_^SP܏ETR~l-7.gI)I/< &eC@,\(؅Q -n92"T-13󣺄$S+$&^bxaz9Qe0; z`7"Jŋ.HuHe\'bV$md Z\ߐf阺@-84/AJD0Rޫ\on5DžU<"<`wb/JR)IbAV6OT3~9(gzה >)Xʕ㗬JoD`SN87q9ިØU>'n1l.P#@ (f/o)N ǿ`8c{&о5XOQL9Nl"ar;(h&^ 1uAC[)ΦlL$g.<2YBxl3";#SX)X9O5U*a$Ϡ>;qR2ц"A5j eWڀm PL Q^:OL1x?z.d!'^Fb _9(8AU"!@164NK GL tptA {>+Z% vP:~ۤ\ evٝER#0-J%\ɔpLÂ)|-\+dcbȔ/NBC|/6!aD`%g*"agbӘ-daQ`$%fmu!efWgRq̗H6LGѤ: LqQ"4sJB <8Ȑd;7 fA&emgfLX7Acc:y3Tf7k #j,%np F9 @qZrq/IXY >vs^r cH=pWMi/GdKz0e6ٕw&̑5p^㨈 if#O|)nW:X53-I1їs ZMޜϴVĺ1vUq'ڵtLEVU -"5S{0հA@ R7$9*Gbm!ymX -_yO/w $' 3DECM jGVHq9mE2,{e$#o\y@3(NSva mhLfr3,,g<|jvcR -Obϓ&P3pc㶆XpC%1uMn*(3KBbɘ1%(e8մr`Əx隙\'@f OHh$Gpy%la"Ao"2߉G#UFUڅ(Z"-%RgNG@I|Sh~s z#C`2u! N%kKGC`RH?'[IO5=r;G͔f],4nK;0Jc~{xH% ;NaEU@S37 -t@#9SQk1Gp|_(89Ԟ,;dH*Boh“FzIbKӜ&VTy@V:;R&ˍؒG -|(xz/zQ8цtf?.ж1ZM=EĿ*5`7 -cftT0R-IA-sSd>@n{=~dUT2 =`NdHkJZWGdD >t@HΐbGPu,eâ|ux;bVN׻l>^_٘٤4uQ/|Y@|a$زnGުz@&RDcB Oo`Ah@V* SHRpOg&ݫFHaɭBud +r -*Ά`CuZ۴xAS#٬|*X]-ƸGl3ͯc*2Ryƅ&dP{X5dXFS#$$vX`46 -Cjj )Y Į@6N S=8L7JQAr}o$DszzP-;Gq"1h9E`B2YO»=V*V6I\%x fhopl^b]#k8O#gp,Yg,pTv@WD0 -L#Tig* f+D$^0l@)mBcЙ!0&!}"`BMwSff0grЇ\:MyR-q)![W.飺JDp`_NRJ"}$-Y41Rj58DAj5‹N8]fsc^f7CSt$':LjgTdV >I*Uct(f<zʱ,:JzC 8JHtDG;6n8F(g`vi)O` 4pK%q7 c2VJPѐ=%0$O2 9n4pulԉ ƞa׉Fli?FUxdXKԇnw3Pi$1Z^(8S NXiD㙊'.5\0oYhx(E`iH|i'RҐ`jP}NQ~r;g ̐`k6b9mCdԈ؆lw*}j2K8;kXhƲ@/֓gy=D `l4ÎuC˪Aד³G';/<mnԱtX;:~9hf(zDA܁ n{dd{D2|m"3FLc͂6s|mW@ܸuYx/ dŠ^`Hu -sFn -p p4yJPo797; pƩ @`j0^oucqA`q6!H&8% n-,0إ0R @'Ā=c/dץ,݈aYڼlfO b -],@eo -:Mn[&mf|ud0%?h0]^J{~k o"H! yV;'ÕPHgo9h -x,a1Be 9""2MF& ф85Fh&$$Lf MSP̊=6ǀ1q1[F8†h\$FHł4E>R3Ed! -,\bx8ft_.Q kv&Jt3[zfSzNkwJ=?|"6NqUKK3D7E__O:`M4+`j),7t A?^F9.-iPVK7&d-cz?y<5/I};Dy+;O/?m= K[qxKK5v1[( K/FcͿ6wڜPub;No~zvζH1vg76/onL#jkRCU*{Nc_}Z%IG'}/AyƩp|OZxs 'Ϩ9PÈ@vkD͟@96pp^ZEZsJ=G|ٸ!NEb]f(7Tʼ_T:~a} 6mBGMUxN.CiT@s ~c%(5~3u`Ay|: -WY z~ 7(q)UorzP4V8 ^9V,=P܄?~Jp; % *J??_k}a:+D~8=@ԕ,7+fe"D5j6J51oZUxR:ΎX~*_NZ]6B$FDž6ySjSE3>sqD~5z6ԕS?_gs>urȲIᘊ?;u -6rDio)%-5/8&@~:mۘٶ4ղQ -(JV 9k|9Ǩn64c (`tFdN;uq,{O>uBivƴ!54S!&=Y 0:jǙ+;Z ÄMA)O}9oh@+rDA%SoސF} SHMbldC_D@م$!_8م!Vv U1/H :%pfCGrN/# !qN^CY(̍cq"H ;c:Xic0G҃QV-䙺!mTَ29ucT #V;א}|b,-%V<1WҗtB)V,;a4q]i򯌝OA)h,fA>aǚМ%! K棱܇Fè(H~ۓ(FxfZnot+rs%ǐ 2$[ H\Kj y%{Zp9  G!\ZH\~[LiDӘ'{4 ->yvGD~&2lyL] @tVc>70TNŠP7ѝͮ [L^Onh/ -xh_#晒*\0(їbp7GpP *_Q\B%BϚ61{z0(0:eOa$D/f%1 < Mnv2!\ǍcBf{fSҔrK3%f -;|ZCj#k^A$5 -a3(7-a5T4Ȭ(G=覆c!N -!L -\iڑ4!5[|mv7f6WG12X98l&V$K#mꪃ&Z'Yg= YP豺=fb 1IIvhfGtK Vn5'("BkK072IZ 0]BH{ح69oQ1{ZUq"^jL }6_zr~s |=PQ 4xF.6j`>` <ۥלj6K\F[NS')9rOnC;0en0Ģ-pYq59Fm뤻<-]A<Iق`0cevTxz[HnmT%^.o#6cop趘ny˔K`62_O0}̱=\V?Z>í: }2T{hoC/n\fȁH{隞/S4 -1iOnsEpylʮ$OGZXf- - S~svܫ=^.3[@؎Rs>5!`$^3[ݦgv&' -b-QvCߔFU>ʟaq@*)\Ok2[KҋlRrGcVџ9Ofkė{0Q<9ɶzKGd'0C.r b]ӛ^7<~O:H#01b}C{~Ǘ_o +n92"T-13󣺄$S+$&^bxaz9Qe0; z`7"Jŋ.HuHe\'bV$md Z\ߐf阺@-84/AJD0RUňHZA7ΚBg#W\S [l؋TJhՌgم5# ĩu +rz%fᔓ6) #D\70&v uXEB? 3I7c;qA"q1HeL0}]krOEVvb!P: L@KcꂆSTHA}2 Ew'd꣣ EBkԶA"L Y1HVuc~\%2C +OqrP7AqDRC*blhO0"=%0pN'g7"aRc ,vӅ mh4_Y Ԫ$P*8Q'>qtN#Ȟb?EK?)59|X2â ~,#QuLL)_zHY/&$,]4I [E$,Ll%Ro,r:#pYvX#ر6IY[]ȻxeÙq7e4 đu4iop"48=2$D.َjtdFYSlI1!hLv~L'8Cev]Q0BMwq;W4c0ZI琋K%aYCg2$#y-.#r] 4e8=1ɖ> ,alC+O&̑5phqT47>D7`͌anKR-mlA˹L-&owZ`+bDLd*AS%Ah7|,R#Lc`˴HlȅF„ &j@ކ88+Nr&J8exQ SI3kφ*">2W;EL.Yb0LцwұDt +b N@scz[Z:`pa"+E*heIᏚ=Jj I oULLf󉼶 ,/)g|t?hrGu䕡`KYP`FTC  ʒ%GC`RH?'[IO5=r;G͔f],4nKO;0Jc~{xI% NaEU@S37 +t@#9SQk1OLͯvt_xٜEj/Ni$c7FiEYD}/=$i +&VTy@V:;R&ۗ5/%ؗK)nV5[H!i(`cG Dҡ5@b sܪLjY7@̶QyNi/uj81Ά "5ޝu9yHP=Rm뀬i+'5K!+%?S (op@c-|(z{X˟Ujo`5Z訌av[>;\Z Eҧ} +.3d{ZuC]!d 4@zȐ^ה(X!m:C +&CakkLԱ8R imZ9]Xz}fcfFɿВfOظ8J-kfi_H[UD{@[rLqLBD^VhHG@ qMv!K;C4V`{` eCZIKY+|yh:4~`>Uu +*QR_qUX1.xQ;$$8ܧ?smd32.L; +y@[R|cԎqTGڵRӻ +#wN +cTnFzsͯ 185#p.Vaf 71` @pn!c ̓ +06 50exE +9 рLipxF^np|5£s / yX6Oo`Ah@V* SHRpOg&ݫFHaɭ]ry:aMf9OgSuȏ:-۴xAS#٬|*X]-ƸGl3͟c*2Ryƅ&dP{X5dXFS#$$vX`46 +Cjj )Y Į@6N S=8L7JQAr}o$DszzP-;Gq"1h9_gd4w{0WTlԓ KL PջF*)pP;GXφY਼퀘e2$G9TVHI4'`؈ S21 3CRaL<u1CD/>5iMM xvAZY,w lqL85) 62d>q̖ ąƨ}zd.l%:lw{X;`T:WlpJXl* A#(*R]h[,q^pq`Cf6为K4LB#T0~_TQllbEe#膃0l/DZ`PȞb DlwsC,Vc_3YII)Tl˩#0EHQvB!9U8J*67Ia 1y+IGe(0R7ۈ7{ɐ%DrB*XQgv(|rY"P@9{(CBcG0pk5j.W5 +XkB SupҹE8DT7@MhuN.,Pa֊YKKرDyPI%ZVjWpK34LpĊ9{\8b[mBeN0+ HpH$EM! bARg nr,MLZM4s}Ekb=QZd s𡓼hqܘh%ɉ>N/&vZ45YՂe)rxc++$m +[IdzVa=C{=ۡg%y$m@7JL\jb30ħI0JWdX8y1$6T4dO 0$ iLrCdeMCu"bgXuQ[@Q&%$#>a TD{VĢ +E#VZ=x"KMWp,le+/ +@}%/s߲El>4d'q9%ldSԱB43d{22Xm!cN&45"a%9; +!x !&&ЋdY^!M#mвj$+N O@ul0@2ƎF_-i`@7{=2e=W"a6P&Xs|<6n޴mz!G w8Φ su=_ȱWv|1wd:ɝR@'[r ^xvKi8'\ukLdS\o=' 4|2{芏*K$()a?]( 4&J8⨄EuG+OCjyc)7GQ*\6I +!e5g&qqr1!圝28L:)#"!ZAzVRkvljVzod$v j΄\;wڙ{,9D=i!X*{ڦ)" Xرu"ڳɟ xHH#lsF_Q~#Tf(, ""ddMH=a*3̓)MIlBN6 Il=0Ilb)s4lۇi?v.8HҢOTC\]bf +DMBR1qV= +dvXT1k2q1)ke&p-ĊRX6VRrsAZp"||( +  } +E:kmq0M BjX5._0q <7&LF5 V$e>lK9{hlW4e?*'bJ .9#&l_q-oJ-X|$ +X%$H@)n0=) )bՖKĴg").%Lqg?uJ_B$9aʾjVܰtbj0#dN3RsHRX7,R 9{j,ISfpBIL6`D.ٮiwwR3Sڏ7i3$D3>d*zK0N,QSp. 2#ycq}{R̦) y\qfEIIc@I-[_uaC +`.r#br"]"2bp.1sqD~5z6ԕSx}e֡ˑ"'=#c*lW)$I g!f*{1`rKT\pLSG`+u61mieP(a/GXyMQ~spd4r(⦊W~Xoh)jWnA vnQaA}R_#/r~CsQm4c (`OtFdN;uq,{O~j I,?iC=jh?.0B h1MVG/aWF`Lu*(3=;Z ÄMA)o}9oh@+rDA%SoHO>N܃ &16wǡ^sb Bd ͯ TB+b;qH*ߘa8#9e' ꗑ [I^ܐ8nر8mhb1,ش1Ϋ`V`A[(+au_WN(:vɁH땦Mع;gi-#r(Jd 8}`u&&j_"8b)vI YRN(Hm.0aj2)D'0* +_~zDv[j<3e7:HV wfccZ- $%w5=- +Q#G@.-}p$ip\-Bc4i|= Srda;N #"DC? NG<. +Wta ov+˱70TNŠP7ѝͮ [L^ٞL7J~'ZoHy$ + JytWL@Q nК7dB+כkVBYs&H4Er2tW)dY DLA%Ed9荙Mnv2)\ǍcBf{^)@i`y`v^]<̉>v!vWIBj$L6čfcKEؼ }*2;JamXiF0)+:9Gvlo$,MH4qƍU~Ee /EGnN.k0ưɋ#Pm4da>{Q(gEa/o:´:a꿫wI}c,9z8Ƿ$G1k"s[M?56X SX`B*`7DvLvPz3hB/3ko`,/sEjh^L4Hv4RBFcw!Ԏtăk6w*_Md3[=$ %?7lc<;I3[3eaK<|p>3~T/o[,P#~[gkh8g[0f|wAɃI$z&a$F , [ - RRt$[;go|k7\vr #acaDvkFVql4{a01.6|KEm Ņjqm6poQ&'k vxy/ ɳ]zfa4=<|b, |,v<:SC 0 +L,Wcd9ZܶN>t)di3- C?']p8[`@Lƹ[@Ur8rks̓ZlQDzCI Ӎ#zS݊s<6AeC-[M{#< GD 3A6 B K &շ[1vTM<9z=$V%ۉuG䃮2ogfoLUQ px(*9."397H[{XRY/3D hTU[c_Ue]=#kK&Nl'y%(hCh_ΣK~af(Ӯ(4_墿MQrs{s-sp Klۻ*}C5'n )v %.6lM7@kG͔출nc޲` 2\Ch>uLmo;BMʁrRfls'E\#"01tG8)Q"fVN)44 Be(ڎ?nP y 5C0-O`r~,wF㢂X8> startxref -135345 +137763 %%EOF \ No newline at end of file diff --git a/assets/circuit/diagram.png b/assets/circuit/diagram.png index 351ceb4..7f308d4 100644 Binary files a/assets/circuit/diagram.png and b/assets/circuit/diagram.png differ diff --git a/assets/circuit/diagram.svg b/assets/circuit/diagram.svg index 6628239..3ac7a7e 100644 --- a/assets/circuit/diagram.svg +++ b/assets/circuit/diagram.svg @@ -73,7 +73,7 @@ - + @@ -91,6 +91,9 @@ + + + diff --git a/assets/design/favicon.png b/assets/design/favicon.png new file mode 100644 index 0000000..2808b48 Binary files /dev/null and b/assets/design/favicon.png differ diff --git a/assets/design/favicon.svg b/assets/design/favicon.svg new file mode 100644 index 0000000..530ea35 --- /dev/null +++ b/assets/design/favicon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/design/social.png b/assets/design/social.png new file mode 100644 index 0000000..a43012f Binary files /dev/null and b/assets/design/social.png differ diff --git a/assets/design/social.svg b/assets/design/social.svg new file mode 100644 index 0000000..a773d34 --- /dev/null +++ b/assets/design/social.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/favicon.ico b/data/favicon.ico index 5c6f181..79b22ea 100644 Binary files a/data/favicon.ico and b/data/favicon.ico differ diff --git a/data/index.html b/data/index.html index 748d193..c6f81ab 100644 --- a/data/index.html +++ b/data/index.html @@ -11,6 +11,7 @@ +
@@ -39,6 +40,7 @@ name="ip-method" id="input-ip-method" title="IP-" + required > @@ -52,6 +54,7 @@ name="ip" id="input-ip" placeholder="IP-Adresse" + required /> @@ -79,6 +84,7 @@ name="connection" id="input-connection" title="Verbindung" + required > @@ -93,6 +99,7 @@ name="ssid" id="input-ssid" placeholder="SSID" + required /> @@ -103,6 +110,7 @@ name="ssid" id="select-network" title="Netzwerk" + required > diff --git a/data/load-data.js b/data/load-data.js index 1ec35a7..b169abf 100644 --- a/data/load-data.js +++ b/data/load-data.js @@ -6,6 +6,8 @@ import { const form = document.querySelector("form"); +export let data = {}; + export async function loadData(timeout = null) { const req = await fetch("/config", { method: "GET", @@ -38,7 +40,7 @@ export function writeDataToInput(data) { showLoadingScreen("Konfiguration wird geladen..."); try { - const data = await loadData(); + data = await loadData(); hideLoadingScreen(); writeDataToInput(data); } catch (error) { diff --git a/data/networks.js b/data/networks.js index 1ed4452..ac10ca4 100644 --- a/data/networks.js +++ b/data/networks.js @@ -1,3 +1,5 @@ +import { data } from "./load-data.js"; + const networkDropdown = document.querySelector("#select-network"); const refreshButton = document.querySelector("#refresh-networks"); const refreshIcon = refreshButton.querySelector("img"); @@ -5,11 +7,24 @@ const refreshIcon = refreshButton.querySelector("img"); let isLoading = false; refreshButton.addEventListener("click", async () => { + // check if interface is connected via WiFi + if (data.connection == 0 || data.connection == 1) { + alert( + "Beim WLAN-Scan wird die Verbindung hardwarebedingt kurzzeitig" + + "unterbrochen.\n" + + "Möglicherweise muss das Interface neu verbunden werden." + ); + } updateNetworks(); }); +// check if connected via WiFi-Station +if (data.connection === 0) { + // show currently connected wifi + insertNetworks([data.ssid]); +} + function insertNetworks(networks) { - networks.unshift(""); // add empty option networkDropdown.textContent = ""; // clear dropdown for (const ssid of networks) { @@ -53,8 +68,6 @@ async function loadNetworks() { async function updateNetworks() { const networks = await loadNetworks(); if (networks) { - insertNetworks(networks); + insertNetworks(["", ...networks], true); } } - -updateNetworks(); diff --git a/data/range-input.js b/data/range-input.js new file mode 100644 index 0000000..4b31c04 --- /dev/null +++ b/data/range-input.js @@ -0,0 +1,14 @@ +document.querySelector("form").addEventListener("input", (event) => { + if (event.target.classList.contains("range")) { + updateValue(event.target); + } +}); + +function updateValue(slider) { + const percentage = Math.round((slider.value / slider.max) * 100); + slider.nextElementSibling.innerText = `${percentage}%`; +} + +document.querySelectorAll("input[type='range'].range").forEach((element) => { + updateValue(element); +}); diff --git a/data/style.css b/data/style.css index a595e33..e0553be 100644 --- a/data/style.css +++ b/data/style.css @@ -3,7 +3,7 @@ --color-on-primary: white; --color-background: #222; --color-danger: #fa2b58; - --icon-button-size: 2.5rem; + --appended-item-size: 2.5rem; } body { @@ -50,8 +50,13 @@ label span { } input, -select { +select, +label div { width: clamp(200px, 100%, 400px); +} + +input, +select { background-color: var(--color-background); color: white; border: 1px solid white; @@ -66,8 +71,13 @@ select:focus { border-color: var(--color-primary); } -select:has(+ .icon-button) { - width: calc(clamp(200px, 100%, 400px) - var(--icon-button-size) - 8px); +select:has(+ .icon-button), +label div input[type="range"] { + width: calc(clamp(200px, 100%, 400px) - var(--appended-item-size) - 8px); +} + +input[type="range"] { + accent-color: var(--color-primary); } button { @@ -213,8 +223,8 @@ button.reload { .icon-button { padding: 8px; font-size: 0; - width: var(--icon-button-size); - height: var(--icon-button-size); + width: var(--appended-item-size); + height: var(--appended-item-size); } .spinning { @@ -223,3 +233,16 @@ button.reload { animation-iteration-count: infinite; animation-timing-function: linear; } + +div:has(.range-value) { + display: flex; + flex-direction: row; + gap: 8px; +} + +.range-value { + width: var(--appended-item-size); + height: var(--appended-item-size); + text-align: center; + line-height: var(--appended-item-size); +} diff --git a/data/submit.js b/data/submit.js index 0fdbda8..f7e5924 100644 --- a/data/submit.js +++ b/data/submit.js @@ -18,7 +18,7 @@ function parseValue(input) { return null; } - if (input.type === "number") { + if (input.type === "number" || input.type === "range") { const number = Number(input.value); return Number.isNaN(number) ? null : number; } diff --git a/src/main.cpp b/src/main.cpp index d35bfbd..c3dbf11 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,6 +16,7 @@ #include "ESPDMX.h" #include #include "routes/config.h" +#include "routes/networks.h" #include "routes/status.h" DMXESPSerial dmx1; @@ -74,12 +75,7 @@ void ledBlink(int ms) timer = timerBegin(0, 80, true); // timer 0, prescalar: 80, UP counting timerAttachInterrupt(timer, &onTimer, true); // Attach interrupt } - if (ms == 0) - { - timerAlarmDisable(timer); - analogWrite(PIN_LED, 0); - } - else if (ms == 1) + else if (ms == 0) { timerAlarmDisable(timer); analogWrite(PIN_LED, brightness_led); @@ -100,33 +96,44 @@ void setup() esp_read_mac(mac, ESP_MAC_ETH); // LED + config.begin("dmx", true); + brightness_led = config.getUInt("led-brightness", DEFAULT_LED_BRIGHTNESS); + config.end(); analogWrite(PIN_LED, brightness_led); - // delay(5000); - ledBlink(500); // Button pinMode(PIN_BUTTON, INPUT_PULLUP); if (digitalRead(PIN_BUTTON) == LOW) { ledBlink(100); - delay(2000); - Serial.println("Reset config"); - config.begin("dmx", false); - config.clear(); - config.end(); + unsigned long startTime = millis(); + while (digitalRead(PIN_BUTTON) == LOW && (millis() - startTime <= 3000)) + { + } + if (digitalRead(PIN_BUTTON) == LOW) + { + ledBlink(0); + Serial.println("Reset config"); + config.begin("dmx", false); + config.clear(); + config.end(); + delay(2000); + } } + ledBlink(500); + // wait for serial monitor delay(5000); Serial.println("Starting DMX-Interface..."); config.begin("dmx", true); - universe1 = config.getUInt("universe-1", 1); - universe2 = config.getUInt("universe-2", 2); + universe1 = config.getUInt("universe-1", DEFAULT_UNIVERSE1); + universe2 = config.getUInt("universe-2", DEFAULT_UNIVERSE2); - direction1 = static_cast(config.getUInt("direction-1", 0)); - direction2 = static_cast(config.getUInt("direction-2", 1)); + direction1 = static_cast(config.getUInt("direction-1", DEFAULT_DIRECTION1)); + direction2 = static_cast(config.getUInt("direction-2", DEFAULT_DIRECTION2)); Serial.print("Port A: Universe "); Serial.print(universe1); @@ -138,25 +145,22 @@ void setup() Serial.print(" "); Serial.println((direction2 == Input) ? "DMX -> Art-Net" : "Art-Net -> DMX"); - Connection connection = static_cast(config.getUInt("connection", WiFiAP)); - IpMethod ipMethod = static_cast(config.getUInt("ip-method"), DHCP); + Connection connection = static_cast(config.getUInt("connection", DEFAULT_CONNECTION)); + IpMethod ipMethod = static_cast(config.getUInt("ip-method"), DEFAULT_IP_METHOD); - WiFi.macAddress(mac); char hostname[30]; snprintf(hostname, sizeof(hostname), "ChaosDMX-%02X%02X", mac[4], mac[5]); + DEFAULT_SSID = hostname; Serial.print("Hostname: "); Serial.println(hostname); - String ssid = config.getString("ssid", hostname); - String pwd = config.getString("password", "mbgmbgmbg"); + String ssid = config.getString("ssid", DEFAULT_SSID); + String pwd = config.getString("password", DEFAULT_PASSWORD); // Default IP as defined in standard https://art-net.org.uk/downloads/art-net.pdf, page 13 - IPAddress defaultIp(2, mac[3], mac[4], mac[5]); - IPAddress ip = config.getUInt("ip", defaultIp); - IPAddress defaultSubnet(255, 0, 0, 0); - IPAddress subnet = config.getUInt("subnet", defaultSubnet); - IPAddress defaultGateway(2, 0, 0, 1); - IPAddress gateway = config.getUInt("gateway", defaultGateway); + IPAddress ip = config.getUInt("ip", DEFAULT_IP); + IPAddress subnet = config.getUInt("subnet", DEFAULT_SUBNET); + IPAddress gateway = config.getUInt("gateway", NULL); config.end(); @@ -321,7 +325,10 @@ void setup() server.begin(); Serial.println("Server started!"); - ledBlink(1); + // scan networks and cache them + WiFi.scanNetworks(true); + + ledBlink(0); } void loop() diff --git a/src/routes/config.cpp b/src/routes/config.cpp index 5ca6107..d586feb 100644 --- a/src/routes/config.cpp +++ b/src/routes/config.cpp @@ -4,6 +4,7 @@ #include "WiFi.h" Preferences config; +String DEFAULT_SSID = ""; #pragma region Utility @@ -75,27 +76,23 @@ void onGetConfig(AsyncWebServerRequest *request) { config.begin("dmx", true); - IPAddress defaultIp(192, 168, 1, 201); - IPAddress ip = config.getUInt("ip", defaultIp); - - IPAddress defaultSubnet(255, 255, 255, 0); - IPAddress subnet = config.getUInt("subnet", defaultSubnet); - - IPAddress defaultGateway(192, 168, 1, 1); - IPAddress gateway = config.getUInt("gateway", defaultGateway); + IPAddress ip = config.getUInt("ip", DEFAULT_IP); + IPAddress subnet = config.getUInt("subnet", DEFAULT_SUBNET); + IPAddress gateway = config.getUInt("gateway", NULL); JsonDocument doc; - doc["connection"] = config.getUInt("connection", WiFiSta); - doc["ssid"] = config.getString("ssid", "artnet"); - doc["password"] = config.getString("password", "mbgmbgmbg"); - doc["ip-method"] = config.getUInt("ip-method"), Static; + doc["connection"] = config.getUInt("connection", DEFAULT_CONNECTION); + doc["ssid"] = config.getString("ssid", DEFAULT_SSID); + doc["password"] = config.getString("password", DEFAULT_PASSWORD); + doc["ip-method"] = config.getUInt("ip-method", DEFAULT_IP_METHOD); doc["ip"] = ip.toString(); doc["subnet"] = subnet.toString(); - doc["gateway"] = gateway.toString(); - doc["universe-1"] = config.getUInt("universe-1", 1); - doc["direction-1"] = config.getUInt("direction-1", Output); - doc["universe-2"] = config.getUInt("universe-2", 1); - doc["direction-2"] = config.getUInt("direction-2", Input); + doc["gateway"] = gateway != NULL ? gateway.toString() : ""; + doc["universe-1"] = config.getUInt("universe-1", DEFAULT_UNIVERSE1); + doc["direction-1"] = config.getUInt("direction-1", DEFAULT_DIRECTION1); + doc["universe-2"] = config.getUInt("universe-2", DEFAULT_UNIVERSE2); + doc["direction-2"] = config.getUInt("direction-2", DEFAULT_DIRECTION2); + doc["led-brightness"] = config.getUInt("led-brightness", DEFAULT_LED_BRIGHTNESS); config.end(); @@ -152,6 +149,8 @@ void onPutConfig(AsyncWebServerRequest *request, uint8_t *data, size_t len, size config.putUInt("universe-1", doc["universe-1"]); config.putUInt("universe-2", doc["universe-2"]); + config.putUInt("led-brightness", doc["led-brightness"]); + config.end(); request->send(200); @@ -162,31 +161,3 @@ void onPutConfig(AsyncWebServerRequest *request, uint8_t *data, size_t len, size request->send(400, "text/plain", e.what()); } } - -void onGetNetworks(AsyncWebServerRequest *request) -{ - JsonDocument doc; - JsonArray array = doc.to(); - - int numberOfNetworks = WiFi.scanComplete(); - if (numberOfNetworks == WIFI_SCAN_FAILED) - { - WiFi.scanNetworks(true); - } - else if (numberOfNetworks) - { - for (int i = 0; i < numberOfNetworks; ++i) - { - array.add(WiFi.SSID(i)); - } - WiFi.scanDelete(); - if (WiFi.scanComplete() == WIFI_SCAN_FAILED) - { - WiFi.scanNetworks(true); - } - } - - String jsonString; - serializeJson(doc, jsonString); - request->send(200, "application/json", jsonString); -} diff --git a/src/routes/config.h b/src/routes/config.h index 54c1a03..bac228d 100644 --- a/src/routes/config.h +++ b/src/routes/config.h @@ -1,11 +1,9 @@ -#pragma once - #include #include #include -// #ifndef CONFIG_h -// #define CONFIG_h +#ifndef CONFIG_h +#define CONFIG_h extern Preferences config; @@ -31,10 +29,23 @@ enum Direction }; const uint8_t DIRECTION_SIZE = 2; +const Connection DEFAULT_CONNECTION = WiFiAP; +const IpMethod DEFAULT_IP_METHOD = DHCP; +extern String DEFAULT_SSID; // initialized in setup because it depends on the mac address +const String DEFAULT_PASSWORD = "mbgmbgmbg"; +const IPAddress DEFAULT_IP(192, 168, 4, 1); +const IPAddress DEFAULT_SUBNET(255, 255, 255, 0); +const IPAddress DEFAULT_GATEWAY(2, 0, 0, 1); + +const Direction DEFAULT_DIRECTION1 = Output; +const Direction DEFAULT_DIRECTION2 = Input; +const uint8_t DEFAULT_UNIVERSE1 = 1; +const uint8_t DEFAULT_UNIVERSE2 = 2; + +const uint8_t DEFAULT_LED_BRIGHTNESS = 25; + void onGetConfig(AsyncWebServerRequest *request); void onPutConfig(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total); -void onGetNetworks(AsyncWebServerRequest *request); - -// #endif \ No newline at end of file +#endif \ No newline at end of file diff --git a/src/routes/networks.cpp b/src/routes/networks.cpp new file mode 100644 index 0000000..9cda700 --- /dev/null +++ b/src/routes/networks.cpp @@ -0,0 +1,29 @@ +#include "networks.h" + +void onGetNetworks(AsyncWebServerRequest *request) +{ + JsonDocument doc; + JsonArray array = doc.to(); + + int numberOfNetworks = WiFi.scanComplete(); + if (numberOfNetworks == WIFI_SCAN_FAILED) + { + WiFi.scanNetworks(true); + } + else if (numberOfNetworks) + { + for (int i = 0; i < numberOfNetworks; ++i) + { + array.add(WiFi.SSID(i)); + } + WiFi.scanDelete(); + if (WiFi.scanComplete() == WIFI_SCAN_FAILED) + { + WiFi.scanNetworks(true); + } + } + + String jsonString; + serializeJson(doc, jsonString); + request->send(200, "application/json", jsonString); +} diff --git a/src/routes/networks.h b/src/routes/networks.h new file mode 100644 index 0000000..33a742c --- /dev/null +++ b/src/routes/networks.h @@ -0,0 +1,9 @@ +#include +#include + +#ifndef NETWORKS_H +#define NETWORKS_H + +void onGetNetworks(AsyncWebServerRequest *request); + +#endif \ No newline at end of file