758 lines
197 KiB
Plaintext
758 lines
197 KiB
Plaintext
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU Lesser General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU Lesser General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Lesser General Public License
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
//!DESC RAVU (step1, luma, r4)
|
|
//!HOOK LUMA
|
|
//!BIND HOOKED
|
|
//!BIND ravu_lut4
|
|
//!SAVE ravu_int11
|
|
//!WHEN HOOKED.w OUTPUT.w / 0.707106 < HOOKED.h OUTPUT.h / 0.707106 < *
|
|
vec4 hook() {
|
|
float sample0 = HOOKED_texOff(vec2(-3.0, -3.0)).x;
|
|
float sample1 = HOOKED_texOff(vec2(-3.0, -2.0)).x;
|
|
float sample2 = HOOKED_texOff(vec2(-3.0, -1.0)).x;
|
|
float sample3 = HOOKED_texOff(vec2(-3.0, 0.0)).x;
|
|
float sample4 = HOOKED_texOff(vec2(-3.0, 1.0)).x;
|
|
float sample5 = HOOKED_texOff(vec2(-3.0, 2.0)).x;
|
|
float sample6 = HOOKED_texOff(vec2(-3.0, 3.0)).x;
|
|
float sample7 = HOOKED_texOff(vec2(-3.0, 4.0)).x;
|
|
float sample8 = HOOKED_texOff(vec2(-2.0, -3.0)).x;
|
|
float sample9 = HOOKED_texOff(vec2(-2.0, -2.0)).x;
|
|
float sample10 = HOOKED_texOff(vec2(-2.0, -1.0)).x;
|
|
float sample11 = HOOKED_texOff(vec2(-2.0, 0.0)).x;
|
|
float sample12 = HOOKED_texOff(vec2(-2.0, 1.0)).x;
|
|
float sample13 = HOOKED_texOff(vec2(-2.0, 2.0)).x;
|
|
float sample14 = HOOKED_texOff(vec2(-2.0, 3.0)).x;
|
|
float sample15 = HOOKED_texOff(vec2(-2.0, 4.0)).x;
|
|
float sample16 = HOOKED_texOff(vec2(-1.0, -3.0)).x;
|
|
float sample17 = HOOKED_texOff(vec2(-1.0, -2.0)).x;
|
|
float sample18 = HOOKED_texOff(vec2(-1.0, -1.0)).x;
|
|
float sample19 = HOOKED_texOff(vec2(-1.0, 0.0)).x;
|
|
float sample20 = HOOKED_texOff(vec2(-1.0, 1.0)).x;
|
|
float sample21 = HOOKED_texOff(vec2(-1.0, 2.0)).x;
|
|
float sample22 = HOOKED_texOff(vec2(-1.0, 3.0)).x;
|
|
float sample23 = HOOKED_texOff(vec2(-1.0, 4.0)).x;
|
|
float sample24 = HOOKED_texOff(vec2(0.0, -3.0)).x;
|
|
float sample25 = HOOKED_texOff(vec2(0.0, -2.0)).x;
|
|
float sample26 = HOOKED_texOff(vec2(0.0, -1.0)).x;
|
|
float sample27 = HOOKED_texOff(vec2(0.0, 0.0)).x;
|
|
float sample28 = HOOKED_texOff(vec2(0.0, 1.0)).x;
|
|
float sample29 = HOOKED_texOff(vec2(0.0, 2.0)).x;
|
|
float sample30 = HOOKED_texOff(vec2(0.0, 3.0)).x;
|
|
float sample31 = HOOKED_texOff(vec2(0.0, 4.0)).x;
|
|
float sample32 = HOOKED_texOff(vec2(1.0, -3.0)).x;
|
|
float sample33 = HOOKED_texOff(vec2(1.0, -2.0)).x;
|
|
float sample34 = HOOKED_texOff(vec2(1.0, -1.0)).x;
|
|
float sample35 = HOOKED_texOff(vec2(1.0, 0.0)).x;
|
|
float sample36 = HOOKED_texOff(vec2(1.0, 1.0)).x;
|
|
float sample37 = HOOKED_texOff(vec2(1.0, 2.0)).x;
|
|
float sample38 = HOOKED_texOff(vec2(1.0, 3.0)).x;
|
|
float sample39 = HOOKED_texOff(vec2(1.0, 4.0)).x;
|
|
float sample40 = HOOKED_texOff(vec2(2.0, -3.0)).x;
|
|
float sample41 = HOOKED_texOff(vec2(2.0, -2.0)).x;
|
|
float sample42 = HOOKED_texOff(vec2(2.0, -1.0)).x;
|
|
float sample43 = HOOKED_texOff(vec2(2.0, 0.0)).x;
|
|
float sample44 = HOOKED_texOff(vec2(2.0, 1.0)).x;
|
|
float sample45 = HOOKED_texOff(vec2(2.0, 2.0)).x;
|
|
float sample46 = HOOKED_texOff(vec2(2.0, 3.0)).x;
|
|
float sample47 = HOOKED_texOff(vec2(2.0, 4.0)).x;
|
|
float sample48 = HOOKED_texOff(vec2(3.0, -3.0)).x;
|
|
float sample49 = HOOKED_texOff(vec2(3.0, -2.0)).x;
|
|
float sample50 = HOOKED_texOff(vec2(3.0, -1.0)).x;
|
|
float sample51 = HOOKED_texOff(vec2(3.0, 0.0)).x;
|
|
float sample52 = HOOKED_texOff(vec2(3.0, 1.0)).x;
|
|
float sample53 = HOOKED_texOff(vec2(3.0, 2.0)).x;
|
|
float sample54 = HOOKED_texOff(vec2(3.0, 3.0)).x;
|
|
float sample55 = HOOKED_texOff(vec2(3.0, 4.0)).x;
|
|
float sample56 = HOOKED_texOff(vec2(4.0, -3.0)).x;
|
|
float sample57 = HOOKED_texOff(vec2(4.0, -2.0)).x;
|
|
float sample58 = HOOKED_texOff(vec2(4.0, -1.0)).x;
|
|
float sample59 = HOOKED_texOff(vec2(4.0, 0.0)).x;
|
|
float sample60 = HOOKED_texOff(vec2(4.0, 1.0)).x;
|
|
float sample61 = HOOKED_texOff(vec2(4.0, 2.0)).x;
|
|
float sample62 = HOOKED_texOff(vec2(4.0, 3.0)).x;
|
|
float sample63 = HOOKED_texOff(vec2(4.0, 4.0)).x;
|
|
vec3 abd = vec3(0.0);
|
|
float gx, gy;
|
|
gx = (sample17-sample1)/2.0;
|
|
gy = (sample10-sample8)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.011007348802298533;
|
|
gx = (sample18-sample2)/2.0;
|
|
gy = (-sample12+8.0*sample11-8.0*sample9+sample8)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample19-sample3)/2.0;
|
|
gy = (-sample13+8.0*sample12-8.0*sample10+sample9)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (sample20-sample4)/2.0;
|
|
gy = (-sample14+8.0*sample13-8.0*sample11+sample10)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (sample21-sample5)/2.0;
|
|
gy = (-sample15+8.0*sample14-8.0*sample12+sample11)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample22-sample6)/2.0;
|
|
gy = (sample15-sample13)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.011007348802298533;
|
|
gx = (-sample33+8.0*sample25-8.0*sample9+sample1)/12.0;
|
|
gy = (sample18-sample16)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (-sample34+8.0*sample26-8.0*sample10+sample2)/12.0;
|
|
gy = (-sample20+8.0*sample19-8.0*sample17+sample16)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.02992107622879854;
|
|
gx = (-sample35+8.0*sample27-8.0*sample11+sample3)/12.0;
|
|
gy = (-sample21+8.0*sample20-8.0*sample18+sample17)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample36+8.0*sample28-8.0*sample12+sample4)/12.0;
|
|
gy = (-sample22+8.0*sample21-8.0*sample19+sample18)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample37+8.0*sample29-8.0*sample13+sample5)/12.0;
|
|
gy = (-sample23+8.0*sample22-8.0*sample20+sample19)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.02992107622879854;
|
|
gx = (-sample38+8.0*sample30-8.0*sample14+sample6)/12.0;
|
|
gy = (sample23-sample21)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (-sample41+8.0*sample33-8.0*sample17+sample9)/12.0;
|
|
gy = (sample26-sample24)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (-sample42+8.0*sample34-8.0*sample18+sample10)/12.0;
|
|
gy = (-sample28+8.0*sample27-8.0*sample25+sample24)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample43+8.0*sample35-8.0*sample19+sample11)/12.0;
|
|
gy = (-sample29+8.0*sample28-8.0*sample26+sample25)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.04933151482066013;
|
|
gx = (-sample44+8.0*sample36-8.0*sample20+sample12)/12.0;
|
|
gy = (-sample30+8.0*sample29-8.0*sample27+sample26)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.04933151482066013;
|
|
gx = (-sample45+8.0*sample37-8.0*sample21+sample13)/12.0;
|
|
gy = (-sample31+8.0*sample30-8.0*sample28+sample27)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample46+8.0*sample38-8.0*sample22+sample14)/12.0;
|
|
gy = (sample31-sample29)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (-sample49+8.0*sample41-8.0*sample25+sample17)/12.0;
|
|
gy = (sample34-sample32)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (-sample50+8.0*sample42-8.0*sample26+sample18)/12.0;
|
|
gy = (-sample36+8.0*sample35-8.0*sample33+sample32)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample51+8.0*sample43-8.0*sample27+sample19)/12.0;
|
|
gy = (-sample37+8.0*sample36-8.0*sample34+sample33)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.04933151482066013;
|
|
gx = (-sample52+8.0*sample44-8.0*sample28+sample20)/12.0;
|
|
gy = (-sample38+8.0*sample37-8.0*sample35+sample34)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.04933151482066013;
|
|
gx = (-sample53+8.0*sample45-8.0*sample29+sample21)/12.0;
|
|
gy = (-sample39+8.0*sample38-8.0*sample36+sample35)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample54+8.0*sample46-8.0*sample30+sample22)/12.0;
|
|
gy = (sample39-sample37)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (-sample57+8.0*sample49-8.0*sample33+sample25)/12.0;
|
|
gy = (sample42-sample40)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (-sample58+8.0*sample50-8.0*sample34+sample26)/12.0;
|
|
gy = (-sample44+8.0*sample43-8.0*sample41+sample40)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.02992107622879854;
|
|
gx = (-sample59+8.0*sample51-8.0*sample35+sample27)/12.0;
|
|
gy = (-sample45+8.0*sample44-8.0*sample42+sample41)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample60+8.0*sample52-8.0*sample36+sample28)/12.0;
|
|
gy = (-sample46+8.0*sample45-8.0*sample43+sample42)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample61+8.0*sample53-8.0*sample37+sample29)/12.0;
|
|
gy = (-sample47+8.0*sample46-8.0*sample44+sample43)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.02992107622879854;
|
|
gx = (-sample62+8.0*sample54-8.0*sample38+sample30)/12.0;
|
|
gy = (sample47-sample45)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample57-sample41)/2.0;
|
|
gy = (sample50-sample48)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.011007348802298533;
|
|
gx = (sample58-sample42)/2.0;
|
|
gy = (-sample52+8.0*sample51-8.0*sample49+sample48)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample59-sample43)/2.0;
|
|
gy = (-sample53+8.0*sample52-8.0*sample50+sample49)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (sample60-sample44)/2.0;
|
|
gy = (-sample54+8.0*sample53-8.0*sample51+sample50)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (sample61-sample45)/2.0;
|
|
gy = (-sample55+8.0*sample54-8.0*sample52+sample51)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample62-sample46)/2.0;
|
|
gy = (sample55-sample53)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.011007348802298533;
|
|
float a = abd.x, b = abd.y, d = abd.z;
|
|
float T = a + d, D = a * d - b * b;
|
|
float delta = sqrt(max(T * T / 4.0 - D, 0.0));
|
|
float L1 = T / 2.0 + delta, L2 = T / 2.0 - delta;
|
|
float sqrtL1 = sqrt(L1), sqrtL2 = sqrt(L2);
|
|
float theta = mix(mod(atan(L1 - a, b) + 3.141592653589793, 3.141592653589793), 0.0, abs(b) < 1.192092896e-7);
|
|
float lambda = sqrtL1;
|
|
float mu = mix((sqrtL1 - sqrtL2) / (sqrtL1 + sqrtL2), 0.0, sqrtL1 + sqrtL2 < 1.192092896e-7);
|
|
float angle = floor(theta * 24.0 / 3.141592653589793);
|
|
float strength = clamp(floor(log2(lambda * 2000.0 + 1.192092896e-7)), 0.0, 8.0);
|
|
float coherence = mix(mix(0.0, 1.0, mu >= 0.25), 2.0, mu >= 0.5);
|
|
float coord_y = ((angle * 9.0 + strength) * 3.0 + coherence + 0.5) / 648.0;
|
|
float res = 0.0;
|
|
vec4 w;
|
|
w = texture(ravu_lut4, vec2(0.0625, coord_y));
|
|
res += (sample0 + sample63) * w[0];
|
|
res += (sample1 + sample62) * w[1];
|
|
res += (sample2 + sample61) * w[2];
|
|
res += (sample3 + sample60) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.1875, coord_y));
|
|
res += (sample4 + sample59) * w[0];
|
|
res += (sample5 + sample58) * w[1];
|
|
res += (sample6 + sample57) * w[2];
|
|
res += (sample7 + sample56) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.3125, coord_y));
|
|
res += (sample8 + sample55) * w[0];
|
|
res += (sample9 + sample54) * w[1];
|
|
res += (sample10 + sample53) * w[2];
|
|
res += (sample11 + sample52) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.4375, coord_y));
|
|
res += (sample12 + sample51) * w[0];
|
|
res += (sample13 + sample50) * w[1];
|
|
res += (sample14 + sample49) * w[2];
|
|
res += (sample15 + sample48) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.5625, coord_y));
|
|
res += (sample16 + sample47) * w[0];
|
|
res += (sample17 + sample46) * w[1];
|
|
res += (sample18 + sample45) * w[2];
|
|
res += (sample19 + sample44) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.6875, coord_y));
|
|
res += (sample20 + sample43) * w[0];
|
|
res += (sample21 + sample42) * w[1];
|
|
res += (sample22 + sample41) * w[2];
|
|
res += (sample23 + sample40) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.8125, coord_y));
|
|
res += (sample24 + sample39) * w[0];
|
|
res += (sample25 + sample38) * w[1];
|
|
res += (sample26 + sample37) * w[2];
|
|
res += (sample27 + sample36) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.9375, coord_y));
|
|
res += (sample28 + sample35) * w[0];
|
|
res += (sample29 + sample34) * w[1];
|
|
res += (sample30 + sample33) * w[2];
|
|
res += (sample31 + sample32) * w[3];
|
|
res = clamp(res, 0.0, 1.0);
|
|
return vec4(res, 0.0, 0.0, 0.0);
|
|
}
|
|
//!DESC RAVU (step2, luma, r4)
|
|
//!HOOK LUMA
|
|
//!BIND HOOKED
|
|
//!BIND ravu_lut4
|
|
//!BIND ravu_int11
|
|
//!SAVE ravu_int10
|
|
//!WHEN HOOKED.w OUTPUT.w / 0.707106 < HOOKED.h OUTPUT.h / 0.707106 < *
|
|
vec4 hook() {
|
|
float sample0 = HOOKED_texOff(vec2(-3.0, 0.0)).x;
|
|
float sample16 = HOOKED_texOff(vec2(-2.0, -1.0)).x;
|
|
float sample9 = HOOKED_texOff(vec2(-2.0, 0.0)).x;
|
|
float sample2 = HOOKED_texOff(vec2(-2.0, 1.0)).x;
|
|
float sample32 = HOOKED_texOff(vec2(-1.0, -2.0)).x;
|
|
float sample25 = HOOKED_texOff(vec2(-1.0, -1.0)).x;
|
|
float sample18 = HOOKED_texOff(vec2(-1.0, 0.0)).x;
|
|
float sample11 = HOOKED_texOff(vec2(-1.0, 1.0)).x;
|
|
float sample4 = HOOKED_texOff(vec2(-1.0, 2.0)).x;
|
|
float sample48 = HOOKED_texOff(vec2(0.0, -3.0)).x;
|
|
float sample41 = HOOKED_texOff(vec2(0.0, -2.0)).x;
|
|
float sample34 = HOOKED_texOff(vec2(0.0, -1.0)).x;
|
|
float sample27 = HOOKED_texOff(vec2(0.0, 0.0)).x;
|
|
float sample20 = HOOKED_texOff(vec2(0.0, 1.0)).x;
|
|
float sample13 = HOOKED_texOff(vec2(0.0, 2.0)).x;
|
|
float sample6 = HOOKED_texOff(vec2(0.0, 3.0)).x;
|
|
float sample57 = HOOKED_texOff(vec2(1.0, -3.0)).x;
|
|
float sample50 = HOOKED_texOff(vec2(1.0, -2.0)).x;
|
|
float sample43 = HOOKED_texOff(vec2(1.0, -1.0)).x;
|
|
float sample36 = HOOKED_texOff(vec2(1.0, 0.0)).x;
|
|
float sample29 = HOOKED_texOff(vec2(1.0, 1.0)).x;
|
|
float sample22 = HOOKED_texOff(vec2(1.0, 2.0)).x;
|
|
float sample15 = HOOKED_texOff(vec2(1.0, 3.0)).x;
|
|
float sample59 = HOOKED_texOff(vec2(2.0, -2.0)).x;
|
|
float sample52 = HOOKED_texOff(vec2(2.0, -1.0)).x;
|
|
float sample45 = HOOKED_texOff(vec2(2.0, 0.0)).x;
|
|
float sample38 = HOOKED_texOff(vec2(2.0, 1.0)).x;
|
|
float sample31 = HOOKED_texOff(vec2(2.0, 2.0)).x;
|
|
float sample61 = HOOKED_texOff(vec2(3.0, -1.0)).x;
|
|
float sample54 = HOOKED_texOff(vec2(3.0, 0.0)).x;
|
|
float sample47 = HOOKED_texOff(vec2(3.0, 1.0)).x;
|
|
float sample63 = HOOKED_texOff(vec2(4.0, 0.0)).x;
|
|
float sample8 = ravu_int11_texOff(vec2(-3.0, -1.0)).x;
|
|
float sample1 = ravu_int11_texOff(vec2(-3.0, 0.0)).x;
|
|
float sample24 = ravu_int11_texOff(vec2(-2.0, -2.0)).x;
|
|
float sample17 = ravu_int11_texOff(vec2(-2.0, -1.0)).x;
|
|
float sample10 = ravu_int11_texOff(vec2(-2.0, 0.0)).x;
|
|
float sample3 = ravu_int11_texOff(vec2(-2.0, 1.0)).x;
|
|
float sample40 = ravu_int11_texOff(vec2(-1.0, -3.0)).x;
|
|
float sample33 = ravu_int11_texOff(vec2(-1.0, -2.0)).x;
|
|
float sample26 = ravu_int11_texOff(vec2(-1.0, -1.0)).x;
|
|
float sample19 = ravu_int11_texOff(vec2(-1.0, 0.0)).x;
|
|
float sample12 = ravu_int11_texOff(vec2(-1.0, 1.0)).x;
|
|
float sample5 = ravu_int11_texOff(vec2(-1.0, 2.0)).x;
|
|
float sample56 = ravu_int11_texOff(vec2(0.0, -4.0)).x;
|
|
float sample49 = ravu_int11_texOff(vec2(0.0, -3.0)).x;
|
|
float sample42 = ravu_int11_texOff(vec2(0.0, -2.0)).x;
|
|
float sample35 = ravu_int11_texOff(vec2(0.0, -1.0)).x;
|
|
float sample28 = ravu_int11_texOff(vec2(0.0, 0.0)).x;
|
|
float sample21 = ravu_int11_texOff(vec2(0.0, 1.0)).x;
|
|
float sample14 = ravu_int11_texOff(vec2(0.0, 2.0)).x;
|
|
float sample7 = ravu_int11_texOff(vec2(0.0, 3.0)).x;
|
|
float sample58 = ravu_int11_texOff(vec2(1.0, -3.0)).x;
|
|
float sample51 = ravu_int11_texOff(vec2(1.0, -2.0)).x;
|
|
float sample44 = ravu_int11_texOff(vec2(1.0, -1.0)).x;
|
|
float sample37 = ravu_int11_texOff(vec2(1.0, 0.0)).x;
|
|
float sample30 = ravu_int11_texOff(vec2(1.0, 1.0)).x;
|
|
float sample23 = ravu_int11_texOff(vec2(1.0, 2.0)).x;
|
|
float sample60 = ravu_int11_texOff(vec2(2.0, -2.0)).x;
|
|
float sample53 = ravu_int11_texOff(vec2(2.0, -1.0)).x;
|
|
float sample46 = ravu_int11_texOff(vec2(2.0, 0.0)).x;
|
|
float sample39 = ravu_int11_texOff(vec2(2.0, 1.0)).x;
|
|
float sample62 = ravu_int11_texOff(vec2(3.0, -1.0)).x;
|
|
float sample55 = ravu_int11_texOff(vec2(3.0, 0.0)).x;
|
|
vec3 abd = vec3(0.0);
|
|
float gx, gy;
|
|
gx = (sample17-sample1)/2.0;
|
|
gy = (sample10-sample8)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.011007348802298533;
|
|
gx = (sample18-sample2)/2.0;
|
|
gy = (-sample12+8.0*sample11-8.0*sample9+sample8)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample19-sample3)/2.0;
|
|
gy = (-sample13+8.0*sample12-8.0*sample10+sample9)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (sample20-sample4)/2.0;
|
|
gy = (-sample14+8.0*sample13-8.0*sample11+sample10)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (sample21-sample5)/2.0;
|
|
gy = (-sample15+8.0*sample14-8.0*sample12+sample11)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample22-sample6)/2.0;
|
|
gy = (sample15-sample13)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.011007348802298533;
|
|
gx = (-sample33+8.0*sample25-8.0*sample9+sample1)/12.0;
|
|
gy = (sample18-sample16)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (-sample34+8.0*sample26-8.0*sample10+sample2)/12.0;
|
|
gy = (-sample20+8.0*sample19-8.0*sample17+sample16)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.02992107622879854;
|
|
gx = (-sample35+8.0*sample27-8.0*sample11+sample3)/12.0;
|
|
gy = (-sample21+8.0*sample20-8.0*sample18+sample17)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample36+8.0*sample28-8.0*sample12+sample4)/12.0;
|
|
gy = (-sample22+8.0*sample21-8.0*sample19+sample18)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample37+8.0*sample29-8.0*sample13+sample5)/12.0;
|
|
gy = (-sample23+8.0*sample22-8.0*sample20+sample19)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.02992107622879854;
|
|
gx = (-sample38+8.0*sample30-8.0*sample14+sample6)/12.0;
|
|
gy = (sample23-sample21)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (-sample41+8.0*sample33-8.0*sample17+sample9)/12.0;
|
|
gy = (sample26-sample24)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (-sample42+8.0*sample34-8.0*sample18+sample10)/12.0;
|
|
gy = (-sample28+8.0*sample27-8.0*sample25+sample24)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample43+8.0*sample35-8.0*sample19+sample11)/12.0;
|
|
gy = (-sample29+8.0*sample28-8.0*sample26+sample25)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.04933151482066013;
|
|
gx = (-sample44+8.0*sample36-8.0*sample20+sample12)/12.0;
|
|
gy = (-sample30+8.0*sample29-8.0*sample27+sample26)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.04933151482066013;
|
|
gx = (-sample45+8.0*sample37-8.0*sample21+sample13)/12.0;
|
|
gy = (-sample31+8.0*sample30-8.0*sample28+sample27)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample46+8.0*sample38-8.0*sample22+sample14)/12.0;
|
|
gy = (sample31-sample29)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (-sample49+8.0*sample41-8.0*sample25+sample17)/12.0;
|
|
gy = (sample34-sample32)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (-sample50+8.0*sample42-8.0*sample26+sample18)/12.0;
|
|
gy = (-sample36+8.0*sample35-8.0*sample33+sample32)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample51+8.0*sample43-8.0*sample27+sample19)/12.0;
|
|
gy = (-sample37+8.0*sample36-8.0*sample34+sample33)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.04933151482066013;
|
|
gx = (-sample52+8.0*sample44-8.0*sample28+sample20)/12.0;
|
|
gy = (-sample38+8.0*sample37-8.0*sample35+sample34)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.04933151482066013;
|
|
gx = (-sample53+8.0*sample45-8.0*sample29+sample21)/12.0;
|
|
gy = (-sample39+8.0*sample38-8.0*sample36+sample35)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample54+8.0*sample46-8.0*sample30+sample22)/12.0;
|
|
gy = (sample39-sample37)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (-sample57+8.0*sample49-8.0*sample33+sample25)/12.0;
|
|
gy = (sample42-sample40)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (-sample58+8.0*sample50-8.0*sample34+sample26)/12.0;
|
|
gy = (-sample44+8.0*sample43-8.0*sample41+sample40)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.02992107622879854;
|
|
gx = (-sample59+8.0*sample51-8.0*sample35+sample27)/12.0;
|
|
gy = (-sample45+8.0*sample44-8.0*sample42+sample41)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample60+8.0*sample52-8.0*sample36+sample28)/12.0;
|
|
gy = (-sample46+8.0*sample45-8.0*sample43+sample42)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample61+8.0*sample53-8.0*sample37+sample29)/12.0;
|
|
gy = (-sample47+8.0*sample46-8.0*sample44+sample43)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.02992107622879854;
|
|
gx = (-sample62+8.0*sample54-8.0*sample38+sample30)/12.0;
|
|
gy = (sample47-sample45)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample57-sample41)/2.0;
|
|
gy = (sample50-sample48)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.011007348802298533;
|
|
gx = (sample58-sample42)/2.0;
|
|
gy = (-sample52+8.0*sample51-8.0*sample49+sample48)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample59-sample43)/2.0;
|
|
gy = (-sample53+8.0*sample52-8.0*sample50+sample49)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (sample60-sample44)/2.0;
|
|
gy = (-sample54+8.0*sample53-8.0*sample51+sample50)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (sample61-sample45)/2.0;
|
|
gy = (-sample55+8.0*sample54-8.0*sample52+sample51)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample62-sample46)/2.0;
|
|
gy = (sample55-sample53)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.011007348802298533;
|
|
float a = abd.x, b = abd.y, d = abd.z;
|
|
float T = a + d, D = a * d - b * b;
|
|
float delta = sqrt(max(T * T / 4.0 - D, 0.0));
|
|
float L1 = T / 2.0 + delta, L2 = T / 2.0 - delta;
|
|
float sqrtL1 = sqrt(L1), sqrtL2 = sqrt(L2);
|
|
float theta = mix(mod(atan(L1 - a, b) + 3.141592653589793, 3.141592653589793), 0.0, abs(b) < 1.192092896e-7);
|
|
float lambda = sqrtL1;
|
|
float mu = mix((sqrtL1 - sqrtL2) / (sqrtL1 + sqrtL2), 0.0, sqrtL1 + sqrtL2 < 1.192092896e-7);
|
|
float angle = floor(theta * 24.0 / 3.141592653589793);
|
|
float strength = clamp(floor(log2(lambda * 2000.0 + 1.192092896e-7)), 0.0, 8.0);
|
|
float coherence = mix(mix(0.0, 1.0, mu >= 0.25), 2.0, mu >= 0.5);
|
|
float coord_y = ((angle * 9.0 + strength) * 3.0 + coherence + 0.5) / 648.0;
|
|
float res = 0.0;
|
|
vec4 w;
|
|
w = texture(ravu_lut4, vec2(0.0625, coord_y));
|
|
res += (sample0 + sample63) * w[0];
|
|
res += (sample1 + sample62) * w[1];
|
|
res += (sample2 + sample61) * w[2];
|
|
res += (sample3 + sample60) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.1875, coord_y));
|
|
res += (sample4 + sample59) * w[0];
|
|
res += (sample5 + sample58) * w[1];
|
|
res += (sample6 + sample57) * w[2];
|
|
res += (sample7 + sample56) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.3125, coord_y));
|
|
res += (sample8 + sample55) * w[0];
|
|
res += (sample9 + sample54) * w[1];
|
|
res += (sample10 + sample53) * w[2];
|
|
res += (sample11 + sample52) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.4375, coord_y));
|
|
res += (sample12 + sample51) * w[0];
|
|
res += (sample13 + sample50) * w[1];
|
|
res += (sample14 + sample49) * w[2];
|
|
res += (sample15 + sample48) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.5625, coord_y));
|
|
res += (sample16 + sample47) * w[0];
|
|
res += (sample17 + sample46) * w[1];
|
|
res += (sample18 + sample45) * w[2];
|
|
res += (sample19 + sample44) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.6875, coord_y));
|
|
res += (sample20 + sample43) * w[0];
|
|
res += (sample21 + sample42) * w[1];
|
|
res += (sample22 + sample41) * w[2];
|
|
res += (sample23 + sample40) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.8125, coord_y));
|
|
res += (sample24 + sample39) * w[0];
|
|
res += (sample25 + sample38) * w[1];
|
|
res += (sample26 + sample37) * w[2];
|
|
res += (sample27 + sample36) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.9375, coord_y));
|
|
res += (sample28 + sample35) * w[0];
|
|
res += (sample29 + sample34) * w[1];
|
|
res += (sample30 + sample33) * w[2];
|
|
res += (sample31 + sample32) * w[3];
|
|
res = clamp(res, 0.0, 1.0);
|
|
return vec4(res, 0.0, 0.0, 0.0);
|
|
}
|
|
//!DESC RAVU (step3, luma, r4)
|
|
//!HOOK LUMA
|
|
//!BIND HOOKED
|
|
//!BIND ravu_lut4
|
|
//!BIND ravu_int11
|
|
//!SAVE ravu_int01
|
|
//!WHEN HOOKED.w OUTPUT.w / 0.707106 < HOOKED.h OUTPUT.h / 0.707106 < *
|
|
vec4 hook() {
|
|
float sample8 = HOOKED_texOff(vec2(-3.0, 0.0)).x;
|
|
float sample1 = HOOKED_texOff(vec2(-3.0, 1.0)).x;
|
|
float sample24 = HOOKED_texOff(vec2(-2.0, -1.0)).x;
|
|
float sample17 = HOOKED_texOff(vec2(-2.0, 0.0)).x;
|
|
float sample10 = HOOKED_texOff(vec2(-2.0, 1.0)).x;
|
|
float sample3 = HOOKED_texOff(vec2(-2.0, 2.0)).x;
|
|
float sample40 = HOOKED_texOff(vec2(-1.0, -2.0)).x;
|
|
float sample33 = HOOKED_texOff(vec2(-1.0, -1.0)).x;
|
|
float sample26 = HOOKED_texOff(vec2(-1.0, 0.0)).x;
|
|
float sample19 = HOOKED_texOff(vec2(-1.0, 1.0)).x;
|
|
float sample12 = HOOKED_texOff(vec2(-1.0, 2.0)).x;
|
|
float sample5 = HOOKED_texOff(vec2(-1.0, 3.0)).x;
|
|
float sample56 = HOOKED_texOff(vec2(0.0, -3.0)).x;
|
|
float sample49 = HOOKED_texOff(vec2(0.0, -2.0)).x;
|
|
float sample42 = HOOKED_texOff(vec2(0.0, -1.0)).x;
|
|
float sample35 = HOOKED_texOff(vec2(0.0, 0.0)).x;
|
|
float sample28 = HOOKED_texOff(vec2(0.0, 1.0)).x;
|
|
float sample21 = HOOKED_texOff(vec2(0.0, 2.0)).x;
|
|
float sample14 = HOOKED_texOff(vec2(0.0, 3.0)).x;
|
|
float sample7 = HOOKED_texOff(vec2(0.0, 4.0)).x;
|
|
float sample58 = HOOKED_texOff(vec2(1.0, -2.0)).x;
|
|
float sample51 = HOOKED_texOff(vec2(1.0, -1.0)).x;
|
|
float sample44 = HOOKED_texOff(vec2(1.0, 0.0)).x;
|
|
float sample37 = HOOKED_texOff(vec2(1.0, 1.0)).x;
|
|
float sample30 = HOOKED_texOff(vec2(1.0, 2.0)).x;
|
|
float sample23 = HOOKED_texOff(vec2(1.0, 3.0)).x;
|
|
float sample60 = HOOKED_texOff(vec2(2.0, -1.0)).x;
|
|
float sample53 = HOOKED_texOff(vec2(2.0, 0.0)).x;
|
|
float sample46 = HOOKED_texOff(vec2(2.0, 1.0)).x;
|
|
float sample39 = HOOKED_texOff(vec2(2.0, 2.0)).x;
|
|
float sample62 = HOOKED_texOff(vec2(3.0, 0.0)).x;
|
|
float sample55 = HOOKED_texOff(vec2(3.0, 1.0)).x;
|
|
float sample0 = ravu_int11_texOff(vec2(-4.0, 0.0)).x;
|
|
float sample16 = ravu_int11_texOff(vec2(-3.0, -1.0)).x;
|
|
float sample9 = ravu_int11_texOff(vec2(-3.0, 0.0)).x;
|
|
float sample2 = ravu_int11_texOff(vec2(-3.0, 1.0)).x;
|
|
float sample32 = ravu_int11_texOff(vec2(-2.0, -2.0)).x;
|
|
float sample25 = ravu_int11_texOff(vec2(-2.0, -1.0)).x;
|
|
float sample18 = ravu_int11_texOff(vec2(-2.0, 0.0)).x;
|
|
float sample11 = ravu_int11_texOff(vec2(-2.0, 1.0)).x;
|
|
float sample4 = ravu_int11_texOff(vec2(-2.0, 2.0)).x;
|
|
float sample48 = ravu_int11_texOff(vec2(-1.0, -3.0)).x;
|
|
float sample41 = ravu_int11_texOff(vec2(-1.0, -2.0)).x;
|
|
float sample34 = ravu_int11_texOff(vec2(-1.0, -1.0)).x;
|
|
float sample27 = ravu_int11_texOff(vec2(-1.0, 0.0)).x;
|
|
float sample20 = ravu_int11_texOff(vec2(-1.0, 1.0)).x;
|
|
float sample13 = ravu_int11_texOff(vec2(-1.0, 2.0)).x;
|
|
float sample6 = ravu_int11_texOff(vec2(-1.0, 3.0)).x;
|
|
float sample57 = ravu_int11_texOff(vec2(0.0, -3.0)).x;
|
|
float sample50 = ravu_int11_texOff(vec2(0.0, -2.0)).x;
|
|
float sample43 = ravu_int11_texOff(vec2(0.0, -1.0)).x;
|
|
float sample36 = ravu_int11_texOff(vec2(0.0, 0.0)).x;
|
|
float sample29 = ravu_int11_texOff(vec2(0.0, 1.0)).x;
|
|
float sample22 = ravu_int11_texOff(vec2(0.0, 2.0)).x;
|
|
float sample15 = ravu_int11_texOff(vec2(0.0, 3.0)).x;
|
|
float sample59 = ravu_int11_texOff(vec2(1.0, -2.0)).x;
|
|
float sample52 = ravu_int11_texOff(vec2(1.0, -1.0)).x;
|
|
float sample45 = ravu_int11_texOff(vec2(1.0, 0.0)).x;
|
|
float sample38 = ravu_int11_texOff(vec2(1.0, 1.0)).x;
|
|
float sample31 = ravu_int11_texOff(vec2(1.0, 2.0)).x;
|
|
float sample61 = ravu_int11_texOff(vec2(2.0, -1.0)).x;
|
|
float sample54 = ravu_int11_texOff(vec2(2.0, 0.0)).x;
|
|
float sample47 = ravu_int11_texOff(vec2(2.0, 1.0)).x;
|
|
float sample63 = ravu_int11_texOff(vec2(3.0, 0.0)).x;
|
|
vec3 abd = vec3(0.0);
|
|
float gx, gy;
|
|
gx = (sample17-sample1)/2.0;
|
|
gy = (sample10-sample8)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.011007348802298533;
|
|
gx = (sample18-sample2)/2.0;
|
|
gy = (-sample12+8.0*sample11-8.0*sample9+sample8)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample19-sample3)/2.0;
|
|
gy = (-sample13+8.0*sample12-8.0*sample10+sample9)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (sample20-sample4)/2.0;
|
|
gy = (-sample14+8.0*sample13-8.0*sample11+sample10)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (sample21-sample5)/2.0;
|
|
gy = (-sample15+8.0*sample14-8.0*sample12+sample11)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample22-sample6)/2.0;
|
|
gy = (sample15-sample13)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.011007348802298533;
|
|
gx = (-sample33+8.0*sample25-8.0*sample9+sample1)/12.0;
|
|
gy = (sample18-sample16)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (-sample34+8.0*sample26-8.0*sample10+sample2)/12.0;
|
|
gy = (-sample20+8.0*sample19-8.0*sample17+sample16)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.02992107622879854;
|
|
gx = (-sample35+8.0*sample27-8.0*sample11+sample3)/12.0;
|
|
gy = (-sample21+8.0*sample20-8.0*sample18+sample17)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample36+8.0*sample28-8.0*sample12+sample4)/12.0;
|
|
gy = (-sample22+8.0*sample21-8.0*sample19+sample18)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample37+8.0*sample29-8.0*sample13+sample5)/12.0;
|
|
gy = (-sample23+8.0*sample22-8.0*sample20+sample19)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.02992107622879854;
|
|
gx = (-sample38+8.0*sample30-8.0*sample14+sample6)/12.0;
|
|
gy = (sample23-sample21)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (-sample41+8.0*sample33-8.0*sample17+sample9)/12.0;
|
|
gy = (sample26-sample24)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (-sample42+8.0*sample34-8.0*sample18+sample10)/12.0;
|
|
gy = (-sample28+8.0*sample27-8.0*sample25+sample24)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample43+8.0*sample35-8.0*sample19+sample11)/12.0;
|
|
gy = (-sample29+8.0*sample28-8.0*sample26+sample25)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.04933151482066013;
|
|
gx = (-sample44+8.0*sample36-8.0*sample20+sample12)/12.0;
|
|
gy = (-sample30+8.0*sample29-8.0*sample27+sample26)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.04933151482066013;
|
|
gx = (-sample45+8.0*sample37-8.0*sample21+sample13)/12.0;
|
|
gy = (-sample31+8.0*sample30-8.0*sample28+sample27)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample46+8.0*sample38-8.0*sample22+sample14)/12.0;
|
|
gy = (sample31-sample29)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (-sample49+8.0*sample41-8.0*sample25+sample17)/12.0;
|
|
gy = (sample34-sample32)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (-sample50+8.0*sample42-8.0*sample26+sample18)/12.0;
|
|
gy = (-sample36+8.0*sample35-8.0*sample33+sample32)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample51+8.0*sample43-8.0*sample27+sample19)/12.0;
|
|
gy = (-sample37+8.0*sample36-8.0*sample34+sample33)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.04933151482066013;
|
|
gx = (-sample52+8.0*sample44-8.0*sample28+sample20)/12.0;
|
|
gy = (-sample38+8.0*sample37-8.0*sample35+sample34)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.04933151482066013;
|
|
gx = (-sample53+8.0*sample45-8.0*sample29+sample21)/12.0;
|
|
gy = (-sample39+8.0*sample38-8.0*sample36+sample35)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample54+8.0*sample46-8.0*sample30+sample22)/12.0;
|
|
gy = (sample39-sample37)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (-sample57+8.0*sample49-8.0*sample33+sample25)/12.0;
|
|
gy = (sample42-sample40)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (-sample58+8.0*sample50-8.0*sample34+sample26)/12.0;
|
|
gy = (-sample44+8.0*sample43-8.0*sample41+sample40)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.02992107622879854;
|
|
gx = (-sample59+8.0*sample51-8.0*sample35+sample27)/12.0;
|
|
gy = (-sample45+8.0*sample44-8.0*sample42+sample41)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample60+8.0*sample52-8.0*sample36+sample28)/12.0;
|
|
gy = (-sample46+8.0*sample45-8.0*sample43+sample42)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.03841942237242872;
|
|
gx = (-sample61+8.0*sample53-8.0*sample37+sample29)/12.0;
|
|
gy = (-sample47+8.0*sample46-8.0*sample44+sample43)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.02992107622879854;
|
|
gx = (-sample62+8.0*sample54-8.0*sample38+sample30)/12.0;
|
|
gy = (sample47-sample45)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample57-sample41)/2.0;
|
|
gy = (sample50-sample48)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.011007348802298533;
|
|
gx = (sample58-sample42)/2.0;
|
|
gy = (-sample52+8.0*sample51-8.0*sample49+sample48)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample59-sample43)/2.0;
|
|
gy = (-sample53+8.0*sample52-8.0*sample50+sample49)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (sample60-sample44)/2.0;
|
|
gy = (-sample54+8.0*sample53-8.0*sample51+sample50)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.0233025575973275;
|
|
gx = (sample61-sample45)/2.0;
|
|
gy = (-sample55+8.0*sample54-8.0*sample52+sample51)/12.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.018148050104365175;
|
|
gx = (sample62-sample46)/2.0;
|
|
gy = (sample55-sample53)/2.0;
|
|
abd += vec3(gx * gx, gx * gy, gy * gy) * 0.011007348802298533;
|
|
float a = abd.x, b = abd.y, d = abd.z;
|
|
float T = a + d, D = a * d - b * b;
|
|
float delta = sqrt(max(T * T / 4.0 - D, 0.0));
|
|
float L1 = T / 2.0 + delta, L2 = T / 2.0 - delta;
|
|
float sqrtL1 = sqrt(L1), sqrtL2 = sqrt(L2);
|
|
float theta = mix(mod(atan(L1 - a, b) + 3.141592653589793, 3.141592653589793), 0.0, abs(b) < 1.192092896e-7);
|
|
float lambda = sqrtL1;
|
|
float mu = mix((sqrtL1 - sqrtL2) / (sqrtL1 + sqrtL2), 0.0, sqrtL1 + sqrtL2 < 1.192092896e-7);
|
|
float angle = floor(theta * 24.0 / 3.141592653589793);
|
|
float strength = clamp(floor(log2(lambda * 2000.0 + 1.192092896e-7)), 0.0, 8.0);
|
|
float coherence = mix(mix(0.0, 1.0, mu >= 0.25), 2.0, mu >= 0.5);
|
|
float coord_y = ((angle * 9.0 + strength) * 3.0 + coherence + 0.5) / 648.0;
|
|
float res = 0.0;
|
|
vec4 w;
|
|
w = texture(ravu_lut4, vec2(0.0625, coord_y));
|
|
res += (sample0 + sample63) * w[0];
|
|
res += (sample1 + sample62) * w[1];
|
|
res += (sample2 + sample61) * w[2];
|
|
res += (sample3 + sample60) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.1875, coord_y));
|
|
res += (sample4 + sample59) * w[0];
|
|
res += (sample5 + sample58) * w[1];
|
|
res += (sample6 + sample57) * w[2];
|
|
res += (sample7 + sample56) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.3125, coord_y));
|
|
res += (sample8 + sample55) * w[0];
|
|
res += (sample9 + sample54) * w[1];
|
|
res += (sample10 + sample53) * w[2];
|
|
res += (sample11 + sample52) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.4375, coord_y));
|
|
res += (sample12 + sample51) * w[0];
|
|
res += (sample13 + sample50) * w[1];
|
|
res += (sample14 + sample49) * w[2];
|
|
res += (sample15 + sample48) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.5625, coord_y));
|
|
res += (sample16 + sample47) * w[0];
|
|
res += (sample17 + sample46) * w[1];
|
|
res += (sample18 + sample45) * w[2];
|
|
res += (sample19 + sample44) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.6875, coord_y));
|
|
res += (sample20 + sample43) * w[0];
|
|
res += (sample21 + sample42) * w[1];
|
|
res += (sample22 + sample41) * w[2];
|
|
res += (sample23 + sample40) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.8125, coord_y));
|
|
res += (sample24 + sample39) * w[0];
|
|
res += (sample25 + sample38) * w[1];
|
|
res += (sample26 + sample37) * w[2];
|
|
res += (sample27 + sample36) * w[3];
|
|
w = texture(ravu_lut4, vec2(0.9375, coord_y));
|
|
res += (sample28 + sample35) * w[0];
|
|
res += (sample29 + sample34) * w[1];
|
|
res += (sample30 + sample33) * w[2];
|
|
res += (sample31 + sample32) * w[3];
|
|
res = clamp(res, 0.0, 1.0);
|
|
return vec4(res, 0.0, 0.0, 0.0);
|
|
}
|
|
//!DESC RAVU (step4, luma, r4)
|
|
//!HOOK LUMA
|
|
//!BIND HOOKED
|
|
//!BIND ravu_int01
|
|
//!BIND ravu_int10
|
|
//!BIND ravu_int11
|
|
//!WIDTH 2 HOOKED.w *
|
|
//!HEIGHT 2 HOOKED.h *
|
|
//!OFFSET -0.500000 -0.500000
|
|
//!WHEN HOOKED.w OUTPUT.w / 0.707106 < HOOKED.h OUTPUT.h / 0.707106 < *
|
|
vec4 hook() {
|
|
vec2 dir = fract(HOOKED_pos * HOOKED_size) - 0.5;
|
|
if (dir.x < 0.0) {
|
|
if (dir.y < 0.0)
|
|
return HOOKED_texOff(-dir);
|
|
return ravu_int01_texOff(-dir);
|
|
} else {
|
|
if (dir.y < 0.0)
|
|
return ravu_int10_texOff(-dir);
|
|
return ravu_int11_texOff(-dir);
|
|
}
|
|
}
|
|
//!TEXTURE ravu_lut4
|
|
//!SIZE 8 648
|
|
//!FORMAT rgba16f
|
|
//!FILTER NEAREST
|
|
5a208039bd0191ba378758ba8133533a650f3f3af7ea66baefad8fba2eef8d39e21bbdbac109dc3bdb8f85bbdac6dd3aa917e93a864d88bb72dfdd3be610daba96dc6fba39d8d1bbf233283c5867ec3b62eac23bdf8c243c8dc0e3bbe8be43baf97e5d3a3304773b0c88833c6dec563e9275623e071ca53cd46e983bf401a73a45544639986f13ba5b7901bb09d0323b83f5073b23d4daba7112a4b9dbf13c39904bddba2680cd3bd8c7bbbba062e73b62fbac3be7fb10bcb45ca13b1374afbad1498bbbcef635bce4c9063c0f28d93ce259d33c0fb7a33b0ef589bcf04202bc3f38953bec62003c7be27e3c8aa3123e69293b3ec717793d96bc1d3d8a49723cc0054738729ba1380b358f39fa854a3bf610373bc29c8db9c14aa2b9aa15d6371814a738b1a57dbb21b981bb5c19f83c2a64cd3cb95c8cbc3b34adbc55b728bad213f9ba6ae95bbde8cd90bb1e92a23d22bdab3d2a284fbc01ad1fbd065a4abbdb0495ba5cb2cfbc100ba3bc2c7fba3df96ef63d89b3cb3d37a51f3e85db883cb615d93889b455baa2895e394aad0fba1c7341ba70e19339859f57ba6d19c9388b8ea3baf50e453b6f0d06bbba40683b5879803b296418bb56ba4c3bc8deb0baea5152b9e8784bbbd5cef33b7622a5bcb99eabbcc948f43b129648bb853d9eb837aafb390ddf593b5ac25abced1b8a3e698d8d3e714b50bc374c6f3b46f92a3ae2d31e3988cf17ba6e2952ba4b30e5384fdde438c01e6cbac63721ba589c2939451c0cbb781eb13bf20481bbc28be33a87eedf3a1f40a5bbe734b03bf2f529bbf44885bb7aa42abc0db8c13b694f223bb278163b3fe6ae3b095643bc17e086bb60e0f13a1b2fc93ba62dbc3c5ce1563e7efb673e1a21073d67ec403c77db8a3bfffe2039df1408bacaafa0ba6e74933a69423a3a6e2cd7ba44d54aba9a2b263978d11dbb33fa2a3b381afcbb9def153cd26a263c0595febbadb3543aa9df5bbb2b88d3bbe16450bc9e67a13b0051ed3c9648f53c9382983b45ad7bbc091008bc1bc0b43bb7ac183c4955bb3ce4f6193e511a253eb1d14b3d5b614c3dd340d43cf14f2139010322ba8d32083a3954b2ba3c0299ba867a2f38cf84f5b92a5ee438d4675cbae8434b3b423730bb35d4e03bf173e23bf1c006bb61dd443b8a7321bafffea4ba879b74bb2a55813bcd4216bd117b19bd3efa283b0a704fbb8a5f19bb9438abb9f568ef3bd62f06bdd7489c3e6e249f3e4f8e02bdb4e6f63b4a86a93a618a10392db0edb9e54dde3966d75aba61ef8bb9f42dd8b9fb89e1b881466c387164c3b926d03f3bc7bb81ba9133623b8d8cb03b19b104bb152d943b07c065ba7fb493bb3bb8fbbbba1c313ba38ee1bcaebaeabc596b99ba0cbd06bc196bccbb4d86003b03c67e3b627d15bc9a298c3efb5a943e6ab03bbbed5d003cd345b53b90bee438dc5814b949948bb99a92a939349e173a3584fdb97ea08037161bcc38380b1cbafd4b2e3b2ea139bb4a921d3b4d077b3b7487a0bb3dc55c3b40b79fba29c0febbfe6b4bbc744879bba4c130ba5151a7bad8630bbc6eae84bc8a493bbcb3f4f03a55ba7a3b903cdd3ce9f95c3ec4a96e3e16d3373dce12983c39d6673cc3a83639aed9cab9a7a52db9099efaba5aa3b2bac39478ba99c07eb9c592d33750b77fbafbcf993b007106bb8f02343c8bdc303c56fec1b9b871923bb393bdb95d617bbadc6c0dbb81b45bb9be0e4ebdf4bb51bd52f453bb49fa05bbf0e717bbf95f32bb21b84e3cd0834bbd9f8ba83e52d3ab3e850b45bd3c94673c14ae7aba18c544394d7f12bafd26ea39430f4cba298348baa8c4a6b97e24fbb90ce04439f105053908073f3bf5aeabba7958a73bc02fd83b76908f39aa1d9a3b7bf5e93a70ac05bbad58babbf181953a598915bdcdaa21bd97f1bcbb6bad1dbc212621bc537f5dbbafed803bc219f2bc3bba993ec212a23e467eb0bc5eb16a3ca2e6143cac5bcd388c242cb91e298b376f11c5b9cb4ee5b97e17c5b9d16e8ab816c62f39568df038f53ecb3a17d9b2b9ff85753b4081be3b7cb7bdb95b72a03b6559203bd28ec2bb48dff1bbafa069bb0cd2abbc4ed7bfbcc3dd39bc2eff80bced0093bc58dd12bbd3458db8e5a78aba51e9843e0c578f3e1692833caa368d3ca0a2a43c3c7c013734001cb918c03939d3c85bbb55d675bb96c5b5b940d14db9a2a068b99d08c5ba8a56723b131243ba9277663c596d793cf5400e3a093e933b8d3986ba28e1c8392981813a3e41f03a1f0873bda90c7ebd9960d6ba6c608f39e33f95baaadcd0bbcfab8f3c8c927fbd0031ae3ec175b23e06b772bd76b79e3c449280bb7e0ba63992b547ba9c95253aca5484badbcdcbba059e39b96580afba7f86d139f1f9a2b981e8013bcf8595bab884de3be9ae093cb40e323badacbf3b25b72b3bee3e083aa45ac7ba633fd73a26982cbde9c946bd65de14bc5d4f41bc14782fbc0fbaefbbb484683be06549bdacc1a13ee1f3ab3ee51408bd6497ae3ca4c9383cb7fa4b385f7882b8bebad6375d2525b918764eba64f21dba55098bb99150763977bf31b9a7bbf5ba069ac2ba2309ec398c8cbe3be72159b83a58063cbc740e3cd6e76e3bd5da4e3b352b333b5d94a1bcb734dfbc374e5cbcef7eb9bce61617bde31ecfbc9bda69bc9bd9d3bc2d9c8b3e5e949a3e6ef1e13a06a1093d5735443df6422abaf2e97abaeec3713b7c6cd0bbc1a9c3bbd000403b24d4debaa49cfeb939997ebb05d37bba7468cc3aeab3443c609e523ca7374a3b45475a3a266782bbe141283c51b2aab9228e873c781182bd990889bdd2893d3c2c4c5ab87eb2fa3bd4e55bbc59f6883c694586bd22fbac3e3572b33e6b3c7dbdd84b903cbd2b15bc736ce1391c19daba8b60243b810d0fbbb74d17bb22f33e3ab1c01dbb3358893934b3b1b867f2a5ba42bba43a3cac9f3b641b053ccc70053cdef6533b99f9643bc923103bde6798bab57e573c2e2142bd9dc86abde5acebbbfa9761bce1f316bc18a900bc8ae1b839290779bdb977a13e01e6b23e02a108bdec76ce3c0d45173c38c32cb9f8f6b238ac72e63848deca382d6d08ba711102bace3fc53979a8acba40153b3a3c9399bba7247fbb2b973bbb4066953bfc1ad5ba0aaa213cebbd973c619afc3bfd34873cf64a4d3c24b45dbc0e61d7bce440a6bc4e9defbc7cee73bd92b629bdc72e16bd695960bddc928a3e16f2a43eec32003b48546f3d11af953db98bc13993570fbb45aac63af02a91bbb33d9cbb48e18239afc524bb3181e3b784a294b97574083b7163873ac4877a3caf50933c51038f3bf861583b00501f3ab9bc023baed164bb548b023ccf4986bdfbeb92bdad8229ba51e572bbcda506ba38cee9bb8fc9af3cdd6699bd8e3fb13e60f3ba3ea44e8abd542ec73ccc7c90bb14a6b9b85cf277ba7120a13add7aa0ba5aefd0bafca66aba48d307bbbdfac7baf055c93aa0124a39ea9563ba3f71613bfddc303ca31af83b5b76e33b53e2ce3b25e91cbb0af6b2391759633cc7492abd1a7b70bdf79d8fbca82f64bc6cfa4ebce176afbbeba6f53bb8bba9bdf9a8a03e5216ba3e451c0abd847f0d3d0c40d23b3f4c34bae76bed39fde45c393c0a203adf6c9e3939b2453a8dfdb53a2d7cb0bb71501d3b3df4d7bb935baabbecc202bccc17823bc4d784bb0f8e023ce006f73c22873bb75698043de290c53c68d8853aadbce7bc41cfe1bc4e3402bdaa4ba3bdf6971fbd99de6dbd4c38d0bda735863e6096a93e7318fb3cc496a13d77ebb23da892dbb99a2b9abaed1b88b9140030bb3a281dbb8f3f1fbbecc6b3ba6d917bba68c2993aa000633ba585ed3a8deb423ca55b7d3c0871d23b7dfb923b8f820a3bb468e5ba91e874bb39c7e43ae7aa6abd1c1b89bd45f70ebc931d89bbe84459bbfa3163bbeda6ac3cc59594bd118aad3eb199bb3e522980bd06cdc53cd3243ebb6b103dba0aecccb986a3c53951116db93b30fbb977fd76bb1e66d4baf8d080bb06d3343b6b7e2b3ba3704dbb8595263bb3a9363cbc051d3c0abb163c82c5153c3158d9bb9bd6ca390792303ce0eff9bc488876bdcac8d7bc3d2c72bcc3775dbc1b5e15ba3ab5403ce593c0bd348f9b3ed1d7bf3e93d2e6bc82ab133da720883bee6fb8b968d7933a7be09b3a2d447a3aeb4cb73a0849133986fa2e3b204b33bc8a98a63a756fa7bb8eef54bca50cd4bb3a206f3b3600263b57e4f43a60cf203dd546cebb1c3d213d486c113ddd9dfc3bf7090abdaa8349bda97fcdbc35c7a5bd3951babcaf8682bd8d7514be9b46803e09d3b63e63ed473d5073ca3d1c908c3db23430bbe066b43af60ec0bb5214debb01a62bbc6e247dbb11b259ba762cb9baf636023b64ecab3b05bf333b3406fe3cb062093d19e9a43b91310b3c4724263a54ae85bb0253f6bb6e5f2e3c6a64a4bd10e2babdbde2273b179b16bcc98a94bad2f4ecbb8499023d871aacbd8748b53e69d8c13e0ee598bdf9bbeb3c3a9baebb8d3435bb532d62bb92680abb738355bb1aebfebbcd1bf9bbe53846bbeaf58bbba49c0f3ca617d03b7ccd913b109a2f3cce3eb73c0725a13c9151143c23de4f3c11012ebc18a60fbce8b51b39264c0cbdee2090bda51c00bd42b68cbc2ec439bc6276993be053803c316798bd6ab8943e4d94bc3eb4cb1ebbac58a23ca7a2e43a97907a3acb88f73aed53cc3a6cc7853babd8bb39947636bb29172ebba2837cbc0acae9bb39e2d53930d7ffbbd3d81bbc4ef7833bcf97733c15e11e3bd4e5283d6506a43b9f33c53b12ef3d3d34401b3d4b6ceabcc009cabd56152bbd3cf828bd98ff073b7e9c45bd466b46be40462d3eec02c23e60292b3eee03d43d9c891d3cd818a539ff019fbaba1b42baa396093ad15aa43921d707bada6ea6bafc1bbf3987bcdbba4dc8ea3bb9024bbb1ba5b23891e6363aa7a056bb85a3ea3b79a81dbb14da4ebad71bbabbb0d2493c5b1a9c3b0481823963eb273c11cef9bba35fe239284d7bb93434da3a26e23c3c543a4c3ef09e773e7177cd3ccd2d763b96681d3adcac9e398373dab93394d2baa38ce43a26334d3adf3f77ba0e9378ba437a8e39ea2319bb32e2123cfaad0abb65aa8e3b1947433af57c09bc7d11043c457140bbac6b76bbb47223bce967293c2d91a03cb5bb9e3cd59f013b0480cfbc0082d1bbe9eb37bb2a29203bdc4de439f37fbe3d37c4533e8db0fc3d79d95e3db86b333cff511c37918e813811db77bae9e1803bba0a73ba83e702bbf09936ba2ceb4db6ea16b9bae120093c51ff3fbc0e01363c4e35ae3c9f6191bcdaa1a8bb22bb9fbb09fe8eba1006d2ba68f3a63be33c033c8e67ca3ce072b13cba72a1bcfb7152bce27d3cbc7e0b0ebc106efdbc60f6753d65a8b23db4bf063eecf74c3e94e9463dc4cee938682d54ba103c1b3a81fb4aba27cd03ba554826b8c5e345ba59f5983880ceafbaf4be413bf65411bbe54b663bf38a833b7e151dbb97e0603b6043bdbadbead637c01741bb0c45033c84b5a7bccc2cb7bc4049fc3b15d44fbb79b380b82db62cb92204513b98ec79bc7661873eb5a9913efda74bbc98ce6c3b1083823ae28445397d813bbacf775dbacaae983854242a39364445ba2c5f83ba99545d39fb91e1ba6f16ce3bae9855bb7e01473afe95203a52d8e0bbcbf8d23bca0d66bbea774fbb542211bc77cd233ceed6e2ba6dd8d9ba9595173c451c5ebc0adb00bbe4b99cba1e530e39e39d523cd690473e40c67f3e0b3d323d2aa9543cb2a32e3babecb03968477ebadc9d29bb35c1233b4cac673aab9059bb72cd9eba46ed4339f41333bb494ffb3b9aece8bb7924da3bee8fbf3b59bb35bc21468f3b31ebc3bb6a53b3bbed1311bc1a587f3c4fee8c3c9d43ab3c2673013c6512b9bcb77841bc89b439bc7720f1bbdbd45f3c7286093e9562233e386cc03d057da23d2444013df1e577392bad69baf858943aa48af3ba95dd3cba318e2eba025466b9e47c1c38a23095bab837653b770381bbfc14f63bd82ae93bfa22d1ba3b222d3b1ae106ba236d01ba4e4e83bb129cbf3bdcb016bde75a1fbd6106ee3a64ee1fbb13cd02bb657ea4ba0e19f03b024410bd69419a3e3081a23e50d502bdaa8ef23bff9fb13aa71f983971139bba742dfb3ab75921bbe180963ad20fe9ba98e2223ac547b9b822beb5b6b5a8a73ab73c22b9fd7eb23a30b5063c20ae97bbf8ede03b4eac27bb87e41eba2e55febb59891c3c0bd1febcc21705bdd1ec4ebbe352d8bbc93c9fbbe06d02bb5b914f3a69eaa0bc5ff6863efa43a03e3434c0ba3bc2143c2e3a9d3bc337a739048fa7baca5ca73af45ef8baefe9223b8b8f06bb82da973afdf087b9301e853ab221e539e581113bd1628dbba449d13b9b1a44bc0854233c32a0c4bb4942f1ba678c3fbc26cf283c149218bc0fe3a2bb4f5de2bb8a965dbc4acd16bcd837dcbbfc662abcfb7a0c3c8786513edfda853e08eb6b3df659bf3c275b373c160b8539646522ba4913ce398257fbba3fe9c9baba3cbdba12fb8fb9f92b5cb85a3e91bab908963bc60f64bb352d413cace9383c5bcf943a2ce5873bff2dc23920477539867d2fbb5ab3323bc94750bd7c735abd4e8eadbbeded10bb145354bba23482bbb0d2433c8a4f56bd5b61a63e3791af3eebad42bd0a99733cb8f68b39f4dc9a39657e6bba13d7ea3ad9d0d8ba91c92e396d3506bb53372cb752678c36e5a662bab4a4e13a2d7559bbecc69c3ba1cd173c7391d63a0dc7d13bce0c0b3be6df773b2bf7a5bb27a53c3ccba025bd12fb37bd5bf461bcbc6826bcf4b342bcd9de1ebc872166ba30bd32bd9291943ef602af3e2d87a2bc52ecb13c7cee423c7439a639160eaeba0b761f3baabc17bb5ebdc33a43c430bbc85a8d39648754394716ad3a322b91bbcda2a33bec1ec0bbf4e7823c0a0a03bcc7796b3c08d0e9bac5399f3ba9811ebc98ba9f3c189a16bdfbe3d9bc3645ccbc48bc0abc8ec997bcd25f39bc8f194cbc88fdcdbcb0df7c3e77e9a53e41f99e3c1071de3c7f5c8b3c5a6b3439d83db3b9ca16b439d5ce43bb044674bbb3428eba96f051bae3babe3700567cbad18f633b401a04bbdc786b3cb0388a3c80bff13a54adba3bf443d7b943382e39a9dbc6399b74583bd5c86fbd8f2d85bd8cdab9bb374eaaba878b34bbf41ac6bbbc26883c251486bd669fab3e955ab73ee8ba6ebd0211ab3c676605bb91ac5b39b21234ba718d8c3ac52e0eb924ced2ba70e187ba244c1dbb2296b938311e12ba3dc3053b4069c8bb184ec23bd54a163c0300d73b154b1a3c05e6b93b4809363b87ef053b0f7f6c3c56ae1fbd1f5e61bdcbc2a2bcaf5fa0bc1d6c8bbc57fd5cbcc29d75bba3b18ebd8968993e8958b83ee8beaebcfdaf0b3d24e2933cf42d1d39612022baa6b14b3a330da93964a08c3aa611aaba433295ba171615ba2a2f003ac2f195ba133062bb5d0cadbbbb98cf3b3eea9eba1d0e513c5737513c0646603bc31bba3b9330c43cdf83a9bc0f1a10bd6149c8bc7682debcf4312fbd688fc8bc0b53d6bce3e17cbd5c33823e2aa9b13e6425423cee36543d85fc363dd62eb9b752511dba0e19983a0e5884bba58aa0bb6a44acba4c95cfba2a98e9b976d132ba602f3d3bd1f329bbae627d3c1b03ab3cb5d62e3b3211da3b31194f3ab072e03ad8389ebabd401e3ce09080bd5ff393bdeb80c9bb9b671cbb73fd5cbb687909bc551ba13c806699bd73a8ab3e597cbe3e924384bd2f2dd83c39fe47bb7ac8b139b6f7ceba380dfe3a83bf6dba987b96b9acd704bbe3ad20bb8401e3ba8d645e3a1b24e83aa936d4bb11c3343b43751a3c8971103cebc34d3c522b1a3c085d82baf67d323b0d37cb3c6c6708bde03d73bd2d0cf8bce6b4cbbc4abaa5bca40e08bcde51b6bb1017c4bdfdee933e1e4bc33efe944ebcb5bd3c3d011f743c269a86390e1325ba0c022ab953ac0dba4d67173aeaa8eb3a7ff1053b1fc78ebb5a76973a60eaeb3ac7ce1abbfeee92bb14ae6ebb23edfbbbf10a943b463ee83c7e8cbabb655c003c9d81f33c5bc33f3ac3729cbc4671c1bc7ede0fbd2b8286bd097e3bbc958c38bd7a9ec4bd0e4d683e300db53e54d4073dc2c2a73d6ddf513d2895ab38f879b5baef405f3a9dba4fbb6bcd96bbf3e338bb772015bb6e1447ba6fa4993a41f2743b3d3d41bb51e2733c54deb93c98cbd03b0ce4dc3bb193693b7539e1ba63bb32bbb3a0303c06977bbd46679ebd8ea455bc1dee6fbbab31d0bb794fa5bbd1e1a63cc15da7bdc0faa93e7f33c53e69fb83bd7d67f13c70da1ebbe66aceb8acb18fbab90d363aa5c19cb84f65a53ac5e71bbb822710bb1acd8fbb0cdc1e3b36def93a6f0585bbfb6a9fbbda92243cc981f23b3815883c8ce7603c4c03c9bbb5d680395b53fb3c0b0492bc110b66bde10e40bdd695d1bc2c9cd4bc05810fbbfa05073b4a2e00be89a2873ed3f3cd3ec386b93bcd085d3d9a02383c54b1173a82aa3bba46e4f4b96b68fbbab5aa14b9dfd4203b4787943b9e51cfbbc57aa73a35f32c3b21dd663bdd8477bb771990bb489c86bcd85d8fbb75a8183d834b4bbc0ad33f3be459d63c66b98f3c0cb62f3b31afcbbce59907bd2fdaa6bd5ed32c3c93da4ebd5f6305bee87d413e04dfb03e5ef2a13daeead43d86492a3d928702391deed3ba9ab7a53a00fed3bae71648bb487285bbc5bf00bb7d72dbba8767523a3ec9793b94b021bb3c2e183c70f9953cafc6343c2482ba3b40e3723b870918bb647e91bb6926283cc14f48bd16ae9abdfade9cbcee62a3bb18a281bb5552bfbafdad9d3c0ad4a1bd733f9f3effd6c93e734461bdf091e13c7d36a7bbcbb79fb9b129a9ba56ed003a5d71223a763ed33ae1f256bb6078d2ba4a92eabba206723bc003613b89f495bb5bd6b7bb9da3d43bdfc6503c96126d3cdc808a3c272c28bcd7ce45bbfc5ef03c28a01e3ac1fa81bd091b5abde5e0c9bc7892d7bc5cf16c3ba610263cfe560bbeacb26e3e2dacd83e4a67d93c899c353da9221c3ca0bf383a73a7b338a55befba3d2822bbac2b073aa4c69f3a933c013c54d619bc796ddf396e8da73b8bd77a3b930a3ebbad9591bb0e1678bc66d650bc8d8b333d570983bc33a9a2397a69d23c60aad73c8d47b73b009019bd5615a7bcf26dafbd1d38c43c1f9426bd212728bebaed2d3e1ce8b73e92a4cd3ddcb2e23df603e33c4d5a94b9f3738dba8d0b34bb4008a6bb285847bcebb6c8bb099009bbf689feb950d9943aa23d233cc3a68aba42b3ce3c4ebf063d86a3693cd529063cdb604239e7eb39bb55f71ebc03f1f03b422a73bde7d4ccbd8c2457bc930c26bb7d8e58bb658dd7bb126f073d89439fbd9495a03e99d3ce3ed1d284bd863ff13c5f2c05bce43eb8ba291084ba988b2e39cfce8a390d5a68bb8d8dd6bbb158bebb385d09bce637c63bcea6e73bedab25bba63ec53a4d11d03bd072d93cbd6b953c0018893ce9b531bcc5df50bcdd69833cf2a5203c0f228fbde93186bd9dd474bc9e3fccbcd333403b41c3e03c82cbdebd39ac223ece41e93ef578883d9fced93b1b6a243c4e7a2c3ad2a8d0b97115c5bac9d338bbebac403aa2b0073b832fd43bdeb442bce56eba3a54d1c33b2a89823b3e765cb945a4b3bb0c231fbc55f4b4bc17af5d3d6be144bcf34b65bcbcd4943c2bc8133df655853bb0cc1cbd64903abc80b4b2bd0758df3c9dbd053b1b873fbedb5ab93d52e6b83ea8b7473ee958b03d51e2063c039ab839aa2bb3baf43023baa403233aa9f1613982f3e9b97cd2c3baa52fee39f9fee3bad402f43b587755bba69fb1b94e7ed939322e69bb7895f33b27ad33bb6fe252baa7d5a3bb8464633cab26903b692f1cbb9a38353cc36ee9bb662bb63a4e072fb9b0a2743991aafc3bd867423ea9a5843ea39dc93cce28163bfbfecfb94b45cf39728d46ba1051f3ba86edc23a69d0a93aeea9fdba3f42ddbaaefd003a936c26bb7e31363c3af28dbb048d1a3b37229fba238bc8bbbe99313cfdaafebb128412bb1f19b1bbcf04743c8677583cf0a6f43bfebde6ba108fb4bc518f3b3ce21593bbb267c23a313e5e3a4dde963d5e12873ef8cf113e2aa2263c273654bb5d114d38f918973916faf5ba70d8963ab9aa61ba27d6923a24bb08bba8550138407b38bb2eae4c3c6ea30abca7915a3b8901e4394fa8f3bb57338f3c2f11efbb4f1c563b45d252bc0435c43c1d6f33bb67e05abc93c4193da22cfbbc3ebfd63ac99e99bb051e11bcc38b03bd771f9e3ce5e1453e8d53953e1e71823c2e89583c35590839e4fb6aba6793313aaed377bad52ef6b91c8325b914b654ba9bf9993810ed94bafac63e3b478717bb0ee8733b8d568e3bac502ebbf6f8653b59f5aebab25b063983643cbb8d73083ca69eabbcef07c4bcb3f6093cb2bb42bb06205f3919871cba76184c3b40eb8dbcc33a853ee629963e2fd666bc3c126a3bff8b553a51d16d3904f65dba8cb284bad6e33639e4be063995df3dba3631afbaefbf8d396679d7baa84a013c5ad869bb85e21d391e235d39602813bcd703013c840c9dbb3d900dbbb9f9f6bbfa91773c612df1bbdf5301bce656603c07485ebc569d0d3b046f30bb4adf89bbeb57273b04183b3e045f8f3e7fac453d564beb3b560d99b946ffd539221aa0ba4100c6bafe85ce391ee8773a595e2ebbf5490cbb57af4c39108e3abb8ab3453c26adeabb0a64a43b7a6ddeba85ab39bcc168013ccefc19bcd1b2a1ba617d21bc5224c83caa16cd3a2cc1b33b28b2663c95b286bc39f5213c011720bc070454bc3a8f993b7f98073e9370473eb949193e06fab73cba477a3bc0a78f39a66386ba8925f23ab5ca26bb305cadb9fb10a4ba7c22aeb83ade3ab89f52c1ba4ad8853b1529a1bba256003c46faf03b2b769dbabf831f3b1227bdb9e9de203a5e429dbb8382e63b506c17bd06a124bd4cbef03a31fad2ba2a0406bbb8031fbb9343073c52f318bdfe8f983ef8e3a53e1bc008bdca3ae13b25b0cf3a3754d739a80af7ba02626f3b9a4796bb176a403b60d375bbab71df3a6bf49db971b9a1b8fb733e3a47e723baa9beb93a1d05263c2ca5cdbb1048f23b566d77bbc98c0f3bd20b0dbc77ad7f3c612611bd714a15bd36c24cbb90996abb78e732bb649276bb3e4d033b6d36f8bc2e28833ed8e9ab3eef24a6bb20f6003c07791a3b1334013a97e93abbc709583bbe68aabbe58bb13beb2085bbc0200d3b8ba504ba12993e3bcbb514bb25efe03be91816bc471b173ce5f798bcbf80613c466a30bc90a60b3b090759bc6665bd3c3373a4bc73db13bcf7ffdfbaac8fc0bb6dc087b8875fb8bb3cc850bc6271dcbb67f0423ec8ef943ebb20823d11138a3ca60a20bb097fc039eb196dba45375a3aa5a50fbb8911c8ba6a6d04bb0af58a38940cdfb854deacba6f43a13b848098bbff3d4f3c8fbf3e3c3643183b697a5a3b77b7c139a8b6a43a228f88bb627fb83b3bb255bdb2af5fbd4922dbbb3d1acebac1bf3fbb2a7695bb69fe553c8acb60bdb265a43e3577b33e5a5f48bd4d0b773c3612ab38b5b4ec3916ecb7ba71c3443b2c4f35bb763bb83a580d8bbb57ae743a1e718cb9377384ba0ee5d63a5cf5a2bb4c2bc53b707c2d3c81d48d3b4149983b83c1403ac183b63ba6ce0abc246fab3c216f3fbd3bf048bd04b49cbc5377a6bbed32dabb4b8a00bc0536393b69565ebd5efd903e8e16ba3e50abb9bcb661a83cbcce8d3b3a2dc73922e31bbb8099793b7fbe34bb341ec5b9d754003a36d376bba9800f3bc2be523b163b20bc8dda393cacbb4ebc5f1fc03ca91428bcfa8c583c728abcbb87d5353cde90b4bca55c2f3d548b6cbdbd9092bc6a5c2bbdbdcf1e3c9b6921bc11d8e1bb7b0af9bb3cdb1fbd521e6a3e3648bb3e6454c03be689063de75f8bbb9e7f9d395f87eeb9d04a023aca2a32bb91d273bb911efeba3f534cbae12cc1379fbd6eba96bb5c3b749c47bb8bd86c3cceab953cba94453b934eb83b20391eb90450e2390b7150ba97cdb73b294970bd9ef288bdfda508bce0ccd9ba98d01fbbb00eaabbc42a853cb7be88bde837a93e7048bb3e65c86ebdf8ffaa3c69ec14bb8478ed39abbe88baf210993aa35827b8298150ba30731dbb768d58bb330cffb8b00a6cbad89d803b752b08bca7efdd3bff84063c744c5a3c6e471b3c4e84863b9867083b5fc86cbbbc0cbc3c99fb20bd41bc7abdaf25f9bcc8ed90bcd28205bcc562d7bbdcbf573b13cfa5bd0e5e923ef01cc43e648777bc29fef63c75dea73bbbc42b39a30617ba4ee935370d3dfa3a0c21a1b94b09723acf8cd1bb59dc133a3bd4cd39b400b03823e788bb19cd8fbbb28ce83b449b323c9f58303c9e4a933b1c72823b53b904bcf2d9223d3a5e0abd758426bd6db541bd29548ebc244b3abc5680babb35fc3abc4a239cbd2bfd723ec7eac53e8dd9893c4794323d8af21f3be0cb6f39a50d8eba4ffea03ae1e56cbb9d9f91bbdacd53bbae7fdeba6bc1eab976da63392a25533b8df95abbd9c6723c338fc03cd2e18f3b14410b3c211dd33a49037a39a10920bb7e903b3cc8a07dbd0a0799bd775b60bc06260abb02a4b7bb862cd3bb97599f3c0cfc9ebd3096a73e53b2c43eeb2b81bdeb40e23c720b22bb08f14a3ad18ef8ba00969c3a39d1aabaa260003b50eb49bb9ae080bbd93811bba8f3193a7a75743bf21b8ebbfe0f60ba59c8063c0fe94a3cb59b993cfca1ea3b0580efba3f59f7bb1200f43c7001c8bcf21371bd3e9851bd8bdcd6bc0a1324bcf42b033924130a3cd9c8e1bd2cdf853ea51fd13efe47873b250e2e3df37be0bac4f2a239597edfb9bfd0e9b92ce58fba1819083b5e53f13ac58602bb73307ebba4489ab912039d3be25995bba159d3b858750abc0968003c7d11723cb23b643c60612ebba803d1bb71bde53cb9afc53a2e4602bda97663bd32063bbd717744bc9aa6d53b2af626bc1fd8d7bd1cfb4e3e5ee4c73e6bb4903d4c09513d2748a4bb5d87a4394598d0ba6338963a498310bb010b98bb4a0193bb667920bb3ecc6bba4c366a3a6540913bc4f0aebbd14b5d3cb017c63cbfe01e3c5767ff3b4692653b1c94d5badaf07bbb99a3763cb1bd69bde9eba7bd51eea2bc52ba34bb43dcd1bbb5d97fbb5f8ca23ca092abbd27bca13e2638ce3ea5b881bdd99f003dad188abb9c3a793a1515bfbaa52048b8444ff0bab0605b3b43db12bb27a801bbba7abcbb3221fc3973608d3b387c6a39dfe5cdbb3c6f833b462a2e3c8f2daf3c67993d3c38e637bb3c2162bcbc3fdc3c28212eba3e2650bdc6448cbd3e4500bd55d73bbc1e46263b4c83c23c819a04be97735a3e6e04e13ecd3ee03c551c393dc3e9e5bb0c256b393da3183960b82dba1ec5cebabb6220ba2a4d5a3b80fb233b26ace2bb99eb44b93c5c443bdd2b663af976023b54ec1dbcf7cb9abb0e5a493cd7a2b73c69af1fbbe1f40bbc33991f3c1f82b93c1de0e7bb06b16cbddc3e83bd702a64bcc7061a3cd328c73b105aeebd84a1143ed233c53e50560a3e3def3f3d6a484abc1e5ff13938d92cbbe667043bb9c31cbad91e62bbc55ea8bb16c269bb83da20ba4bf3793ac0aca23b553ba8bb6d94043ca75b9c3ca2797d3c4185e63b92ca3e3b61b01cbbb596edbb26b1843ca72731bdd100a6bd765ce5bc883b6bbbe06261bb93146639ff179d3ce06ca3bde297923ea9a8d63e050058bd524ee23c40e8e9bb6ca46d3a1c047fbaaba6a0bac0e3aebad02d1f3b12de51ba0b5a67ba50af07bcf83896b82787b83b2ac5a93a1ae9a0bbec8256bb1b56663c29ed9f3c0b9d673cb12426bbd6c591bc3641993ce8eaad3c702b53bda4cf92bd926e18bd40ae30bc336f173bfeed073db9cf02be36a0253eae20ef3e5e83493d96d10c3dff7c9abb2a63c0380f488c3ac5379eba9fa500bb14caf2ba3b8b3c3b2b82c73b20261bbc7e15c6b90f80dd3a6244ac3b50663d3a3ec1c7bb44da41bc3c7c353ca6d5ce3c4a3c9bba87a93fbc79731d3b9a97fe3ceead9e3b93fd84bd6f8f6abd880cb1bc4d88d93b1883c23ccc3405be245cee3d560cc73eb948293ebd3a0c3d085102bcdfd810ba4ca5a6ba63aaabba87993cbbcef97abc784640bb75fa9dbb2724633aff91573ad1bf353c011142bb7caea23cd157043d5cf7aa3c7e70e63bdbc12dbb31c993bbdb332ebcdf65e13be13135bd099bdbbd57879fbc62e7b9ba15a56c39d7d5eebaa149ff3c463498bdffcb8e3ecd1ddf3ed9b783bd5ecaf53ca65a57bced9a873aad3d19bbbd1b09bbcb31b03a327906bbc0bd33bbae1988bbcc2911bc8e10003b5348093cd92b933bb50667bb642a75bbc081b83c80e7bf3cd4c23a3c58478fbb41c2a0bcc351403b849d043d341046bda92a99bd0c7c19bd3ec30ebc1f4447ba502a2a3d909fcbbdfbfea53d5b78013fa0089d3dbc52ee3b6475623ae72d173ad8e5393a4dc6d0ba95f495ba0787d6ba73cb543a8e43e83b0e4b36bc1b3b98ba5212e63a64714c3bf4a39d3bfa3a2fbbaa9d4ebc1c15883bf271f43ca8e62f3b4d2011bcde422fbc03c9db3c2809883cafdf5bbd339262bd5b1a00bda3e0d9bb71f6543d866de5bd27d4183d9c7bc43ef58d773eee43c5bb0bff2e3b7ac3b9390a0ac4ba272a20ba67b4183a4837e338ab9423ba35eddcba622c143af6cae2ba6cbef63b971a69bba3945bba5304b53901a182bb4c01fc3bc48c2bbb347964ba32ac85bb1fa96d3ce95f793b52afa2bbe816693c698bd1bb2cf7b93a87f6a2375f616aba0d62bb3b16453a3e398f8d3e6b469d3c6499563abfa072ba4a070c3add7883baf7b71dbbf825ac3a8f533c3a4e1711bb31e3c4ba1c401e3abc6858bb4941623c0c4ac0bb9dc652b907b101bba19e7eba00e8aa3be18d04bcc9c74bbbb7fd75bb5fb2b03ca83b043c7cc7c0bbaf899b3a3c6e0ebc28ee8e3c11e13abbd6e2a9bba3605d3b6b66893d0d30a43e5a1bde3d896905bcb2eaa0bbd483e838b337183bbf7e01bcd1d9613b0788b3bb02f8c93b6690debbd4e30539ece909bcd3b2f93cc8709ebcac04b13bd8d9eabb80cd8cbb543eec3caf1e76bc3406f8ba872c4cbc148b453d25e7b1bccaf74cbd20fa383d0d2222bd1b344a3d1313f43b4cb2cbbc682572bcd0f1843d7b39933e26133e3e772e5fbc754841bc4e811639bdab83ba1e1e7b3af6148cba1d72adb9be4c65b9e3bd56ba761fe638cefe97bab545563b17ce35bb27216f3be1b9953bcd8c41bbf83d7e3b9033b2bad68ee5390a9340bbd68d0d3cfd78adbc1ff2d1bc076c243c477f4abbf4899139238e71babc08573bbf159dbc333b833e549a9a3e142d8cbcb121653b13eb3a3ab6558739a9496fba9fa18fbab113b33838bb86b96c7a1cb99eb0f4ba10a4d839b9a0eaba438b0c3cc0c369bbf9beabb92812173954a021bcc3eb083cc55faebbab8bcaba42c0dabb7e81a03cb30249bcdc6485bc5650a93cb9212ebc2057543b36f710bb6225c0bb2550b5bbd4dd343e81e6a03ef2aa053d9135183b163985ba554ae039586730ba545281bb4d22843acf1f69b96e5612ba470d85bbd5281b3a1b9c8cbb8393923cb72ee0bb18ff6ab8b633edbae72e59bc06f80f3cca692abc454f5abb31681cbca2421f3dad264abcbac430bcf4e0ef3c6711773b7ef7653cc5355fbb54f48dbcb4b5ccba15370f3e68c9873e8535a83db8a1273c8911fcbb7568c639f182b5ba0246133b7b4a40bb71013739fda303bb703e66395754d0b82582e0bad9d0943bebbec2bb90070c3c4c56f33be6f97aba904d0a3b50913ab87072da3aae53b1bbd0af0a3c27c219bdf2eb29bdd9600b3b814c15ba54d30dbb520367bbe985173c49841fbdcb0a973e7e12a93eed2211bdeef5c43bcc3be83a14f5f239c95df3ba2b70803b8831afbb9097513bdd5b90bb4017103b3c6cd5b964728dbaa5c9423bb20a8abbbc22ab3b2f92093c6d2a95bbc94b913bbf5127bba331513bb8f70dbc82d7963cdd081abd6c6b2cbd47e2133b28f429bbad85b8bab9a7a0bb8b9bbf3b497a1bbd8871813efa49b53e101c66bcb793973be8bcd73a588993390dcfc1ba342733b9a66c11bb5d98213bf49867ba8ebd03ba43f1ff39c96e173ad1408d3b6e3ac739e8b45ebb6af1eb3a149681bc3a550a3cba3e21bcb0f52d3ac4f910bceeaccf3cda959ebc9073b4bcebd9b23c4e70a3bbf435bd3babee81bba16c17bcc76b80bcbde03c3e1236a43e2df02d3d3d35873bd850bbbb0e96fd3920ac9fbafc84b03ac34225bb5e8e8cba783b47bb2e452d3a0ddf7ab92668b9ba6feaae3b69a7b9bb82ed573c0ff0423cc2fe353ba88a253b1873313aee92d73a3368b0bb666df73b51d758bdb20b65bd0a8ad0bb169659b927cf4ebb43ca9dbb6e116a3cb27563bdd2c1a23ea590b63e272652bdd0045d3c8657fb39d1a40c3a1fc0afbab6e0423bca5f5fbb48ecec3a03f3bfbbb67d2e3bce9b2dbaf308e1ba36a4813be72d08bc0e612f3ce096123c9943083ca92e84ba01b64339e8fdab3b083c32bcb023c43cb42d4cbda46564bd1b8d7cbc267bbbb81adab6ba730fcabbf1ca383ce7d375bd363b8f3e176dc23ef09efabc782f543cbb040bba5c36d6387cafd4b9bcb71e399bcc973a170ca1bb342bfd3ac04816baec46af3a5dd6aa39c08d17bb890fe6b9a63d2d3b0969043ccc10a03bbe2aeabb17232abbf6e7233c40daa0bc20222d3d49955bbdde590dbd173d95bc3786db3b8481623b63bcd9bb8e999b3bb34643bdbb47663e09ebc63ef5d128bc9885943c125729bc15a3e339845a73ba475a923ae43755bb11c151bb1c4d27bbc6aa52bad5be943995ca69ba3c18693bde9966bb078f703c4b70973c28d58c3b6a8d9a3b7225b8b95a8b133a74350bbbd9a7f13bc3466fbd98088dbdee9018bc3bc12db957580bbb6caa8ebbfbe3863cfa1788bdfd42a63e0d4ebf3ead6976bd4a42a33cd1ca37bb5ed7133a2dd28dbab9d6a83a568a29ba8e0f7fb5c50e9cbb6c0600bb8e5d89395c9fc1bae7799c3b9e700fbc1dfb093cc903113c0b60983ce4a28c3b5bb4343a4255413b48461fbce19cd73cb28e2cbdbbb68abdc0c407bd8d9df0bb576de438560455bbbeb56c3cdceba5bda3ab8c3e6e4acf3e4376bdbc2787973ca6c167bb1b0b94b8c54d1d3a1c50e6ba1374943b6c6f78bb39c0e0ba9dd927bbca0bad3a5e3948ba8128de3ad67be3bb373b6f3bdabf603b8582d53cccb4e6bb72aab6ba3e94ce3b657b8fbcf3862e3defaf29bd2dcd59bd7d852fbd6b637e3a4a43f93be1bc9bba0701143c921191bde233663e86f4d73e9ec109bcf261af3c2fa66bbc3f0be1393bfdbfbaaf37e83afcd47ebbf6c87fbbe77a98bb4421a6bac68fc2b9df24ac37d6be743bb0128dbbc1b0703c029cc63cd944ca3bcabb093c1daaa63a68b80c3abcf58bbb8a2d5f3c3d657abd9b379cbd169c8ebc9242ffb9549babbb4aa2b3bbb45aa33c7a589dbd55eba23e2809ca3e982d83bda790dc3c58ef67bb8564893a8f810fbb2799143be3fb77bbb845ad3be17d03bc9e8f7dbb4647ddb9ddecbcb91be3413b3652bfba7d2f22bb1a953c3caa769b3c13ce9a3ca6420dba5f3ee03a21354fbc67bad43c6a7bb5bc346f8bbdb7407bbdc28d57bc6c84263a92ec97ba26dab93c1181ccbdde73753e7be5df3e4005dcba9775b53c9c6401bc08b2bdb8d0c24c3a0ed5c2ba9089d539d8a2443b838f32bbee92a6bb9760043ae31e8dbaa587503ba1308dbbcc7a223be70412bc6cc1f43c2525243cf1c764bb03a2663bf19772bc9e82e03cfa672bbc74674bbdb94a96bd178e3dbc6359443c5035b13a4abb8a3c876fa3bdd70d3a3ea1c9e33e5c12183dbeb9b53bd4f762bc76e19439331be1bab51e883a6365bebaaadf9fbbd97eadbb122926bb4bc81eb93934ee394839af3b5d04cbbb13c24c3c99f3cd3cb1a03a3c4de6003cef350b3b4a296aba713fbfbb333b8c3c653c62bdf066abbd6e06cabc155bc7395ce9b6bbaf0949bb287aa63c16b8a5bd2ee89a3e8d72d53e549786bd3e28f83c6865c0bb40f53e3a515766baad12e3390d172cbbb2277b3bcce741bbcf06cebb0b0111bb23e114baf1ca243b252de33a05d57ebb1c1ee23aa3c2a53c9f8ec33c03be153bb854373b39f270bcf43d813c6104793b4b7169bdc94baebd4ec289bcb7500b3ae52a48bb97a50c3df8dcd1bd9a23373eb6e0f43e34ce833cdfdcad3c348b2bbcf824adb981cbb73a6c02eaba3679063ad90902ba93cb8e3b644de7bb4d95cfba1d5663bab998dd3a2d24b2ba20f9a73b6a947fbc068a983c8032ba3c7c3f50382e6c443b316326bc40ee0c3c2ad3383c17eeeabc9f57c2bd45bab5bcfde31a3c4262a7ba1dd3bf3c748892bdd59af93d2c79ea3e83b9bc3d57b38ebce0eae4bbba668e39d10e26bb70dbda3ac3aabd38ff5562bb084cc3bb4bf386bb5117023a9ce54f3a3b95b73bbd50c2bbb840e93bcb22a33c6b0f933c5786df3b17a7f43a80a8e1bafc6c14bc0fda8b3c33b521bd55a0acbdd7fa07bd425dda39fa2364bb94d9a23a0d9b9c3c314997bd64e3883ed89ae03e2e7e6abd814dd73cc3fa09bc23d95e3a65bfefb942dcbeb904652cbbae951c3b94f7e1b915bdb8bb2165acbb726dbaba0ca0533bff861a3be9772cb930a2c4bb924fb33c2d52c83c47f3913bd3cc6e3bf3996fbc2f77813b15b0ae3c63c051bd78cabbbd0828c9bc81a16d3bb33759bbb497123dd608b1bd9141fa3dc240023f29bef93cdb517c3ca0272ebc51455e39dfe3a638ef2c123afe3229bb2d55923a1176823beb9150bb9544b6bb173c4fba86b87c3a65b0443a079d243be69536bc5902803b2337fa3cd225813b910fc73a10312abbfa04e3bb2494ea3ccd91aebcc0bac5bdb932ffbc686c893b86719cbbfd6ae83cdbe196bdd5ddbb3d548eeb3eb1ad013ebcad00bd1f7bfd3aeaf78d3af1941cbba979c9ba386355b939f081bc90c08cbb25b291bb00cae03a7e3886b98c65433cdc846abbb8278b3c21e6043dddc4b63cd5b3ac3b81ed74bb5a339ebbc74829bc317fed3b44c81bbddb03ddbd5d3ddabc56709b3b32021e3acab5703aac63e93cf44889bda168813ee387ec3ecf7292bd21c6f63cb90183bc8f16493a22cda6b7baf008bbbb4801bb6d75433a222ec7bab73ed8bb0138e6bbbb5bdab9f862683b807ec03b5d42dc3a473eefbb1b55c23c7d9dc53cc129a33bd1f7d03ae7482dbcb93e00bc9123e43c628e19bda6e0bebdea87e6bc15db973bf671ccbb0a5e003d0c4c59bd56bf2f3df8d70b3fab86373df64f733b8149a6bb20e6bd39c73ded39ffdfe0b9cba927ba6ce113baf2c4223b43a8103ae01b15bc751297ba9834613a08a9daba415dc23bdd92f3bbd60484bbc1eae93c0bb1223c9dacf13adadb063b25d741bc92e6a43c24f6ec390078b1bd6cfa47bde37ed73ae869d8bb679aa73c13f20bbdf221fa3bc5bdfb3ec5d1193eaf1322bdc644f33b8a61c9396e52d6ba5e94f9b9defc243abc6989b9ec45d6b9af8e00bba4c33a3a02a8e7ba417afa3be75772bb5d79afbaf24723b500029abb037d0a3c21b623bb6de11eba2fe585bba6bb6f3c7b7f773b5858b8bbdef4933c8745c5bbae7b4c3a9cc1063a9cadbebaefa78f3bb881343e0c02953efd36293cfb8d16376bfa8cbaab001b3aedd790ba703e36bbfef8a73ac14915ba85481dbb6ecb17b9eb64913913e535bb9743563c41459bbb574a83bb8e8c7f3a4b3862bbc5ae1b3badc93c35cb8962bbe42f89bb043ec03c68ffd83b92d15ebc875f6c3ccefbb03b9174d33ad96c9639bacccfbb3461613bdc94923db4d8be3e9957283d9686e2bbe67c36bb0ce73f39b2488339534cc2bb66e4a9b89491ac3af3ef0bbb41582d3b01d4e3b7e3c689bb8670bc3c2149b4bbf94e2bbcce8a5ebbe8cc56bb0f2640bb510f4e3c083c16bc3b477cbbd328263dab57fa3a70c31cbd39d1913c64dfa43cf526c4bb08cfa83ac751c6bc6b95483b23c4593d7b5fd93ebae46b3ca3a5943b001f00bb5a9923395ec986ba6314883a18c394baea72a8b9426607b9ccd57dba4f861039b82995bac02c5e3b533d3fbb4e566f3bd00b9f3bee476bbb57af943b1dcda2bac904273aae3e47bb05ce103ccaeeacbc2c2dddbcab6b463ca18262bb58387e39085187ba6529523bc59aa4bc0a47813eccbd9e3e913ab0bc8a957d3b6de8043a29549239712088ba3fc788ba3449fcb941540fbad431af390efe1fbbe7880d3a11e8c7ba82b8073cc5dc6bbba23888ba4befb83ae41634bcf11e183c20ab85bb22e49aba43bbb5bb393ea83cd83467bc97debabcd146f53c18fc31bc7dcce73a6cd0c8ba598892bb78e129bc9401313e1d92b13e7bb2a33b3b68c03acfd35dba48cc043ac920b8baff098cbb109c18b95586c0baa7f71eba9e2d9fbb12d6293ac63d47bbb9be993c2a3c8fbbc402bbbbe1c18cbb6db53cbc1c070b3c5d2d893b58e0a0bbb1ce13bc4080343d0a333bbcb2b696bc28172a3d9ca4f73bb7f561bb63d312bbd57d48bce84e8cba6078013e31edb03e35472f3caf458a3b5baa06bc7cffe6391bbad9baf289393b00c376bb2f004a3aea322cbb9ac6373a5fb672b9984600bba017a83bb7b2d7bbc3131e3c2e4be33bbcc610ba452bee3aabb2b03959e6153b3a97cdbb3276193cdaeb1bbd79e92bbd2fdf363b694c94b7d65630bb5d5686bb47a8223cbf2620bdea9e953ea773ab3e08781cbd82cabd3bb07efc3a6e72143a47d0e8ba527b863b11e8cbbb8ff16e3b6cc5a4bb8280133b0fcc11bab14215bb6562b53ba3b0f7bbda40163cdf9dd93bc64e5cbb8c3b1f3b10883bb92c20863b6b9918bc72ea9a3cc43d1fbd11b83fbdf4c3163cc78922bb2a573cbba69ad1bb398f233c1ecd26bd9668803e5f3ebd3e8d86e8bca5602e3b0640523b21d4aa39f89f3dbaf121bbbadbe0e2ba9804093b1396be398bde5dbbd92d963a1d8bbcbaed3e0d3c15b487bb192511ba34312abb3f7a89bc0e1b0b3c28daadbb02e01eb90d8adbbb2b30ce3c35ce91bc886ceebc8d5f413d1eb12dbc8e8aba3a6b782abb06e6cabb2c3493bcc19d373eaba3b23e50dc363c994e89bb984558ba06611d3a31daebba7fe4153bec7e52bb09e993b97b5785bba6f2923a024bb9b96166c1baa4bdd13b1cb1e9bbb0ae5d3c5269403c543f4f3bc8dc303bf823323ae60be03a66b7e3bb9226173cc66258bdb58a68bd2c4fbfbb9ce50a3a9dd071bb36d79ebb1bcc7c3cde4364bd534ea13e66e4b83ef13c5cbd32ba4b3c0784863ac1d44e3a0bf3d6ba92a7673b70c194bb24b02e3b8198f8bba4468d3b2f41a2ba6e3029bb06c4c33b764c2cbcfd5d613c3183093cb974073c6e5f80bb88a9053be494a43b089145bc8bf3c13ca4d750bd319478bd975fffbbafd6753b874b6fbb8c13e0bba7b08d3cfae475bdbabb8e3e9f0ec83e569b32bd6f96df3b9810f43a23e0e039ad5bb9381a02063ae9fc78bb682a623b8288a5bb7918cc3bbb180bbb5ff133bbe15ab53b836116bc75a73b3c3f410f3bf9e889ba8031eebbd65efb38bcf9b33ba92c2fbc50e3e73ceebb23bdcd6f61bd016a863c66693fbae51d0a3b2817d9bb2137153ce52342bd704f6e3ed1aec83ec850bfbcd339b0ba81f58b39c8ee393a4f5bbbbad1f3ac3a512f3dbb1d0b64bbfe2325bb3c9242ba7ed5c639468aa1babfd9903b7a6493bbad90723c71a2973c88e7943b9648873b404d26ba482d853a89c771bbc529123cb06f71bd4ac48dbd773c13bc353b7f3a1a53e5ba0b6c86bb14c5873cf4e283bd4017a43e4a12c23e6e1882bd01189d3cfaf642bb64f4683a192bb8baa8f7033bbf3507bbe0c28d3a4de9f4bbc392c53ac6cbeab81d7624bb8060c23bac5c1cbcffc3363c2c1d1f3c8e1da53c386d85bb839b963ab6f5903bd2aa47bc6117c33c7e8935bd2af195bd2ebde2bc548ad13b5ab4ebba4ab7b8bb1ba6b23ca11491bd6aa0873e307ed93efc8d37bd9a69173c1af2a9bae6179c3912a8f539ed288cb93cd589ba861e613bd2a141bc0d93213c963225bbef931fbb2a178a3b0dc10ebc16720c3cfb11ef3b36458a3c88ed86bc58b7fc3a15dcc03b495060bc2a1ff83cfa1c17bd44f094bd56d74ebcb940643c6703153a9b53bdbb14de923c3b1d72bd6cff673ea507df3e666e16bdf15460baceba05bbc2ed843a628112bb0c9c173b49c792bbb2ef60bb8feabbbb9a102eba66e8d1b7f8f083ba46d3a93b5238b6bb3e217b3ca4f5cf3c77c4d53b9ec5013c3ae669399ab5c33a8cf7c8bbfd6a7d3cde0680bdcc909ebdcf568dbcb92a663a75119abbd664b3bb5764a23ce10697bd71ca9f3ea2facd3e51be8cbda587dc3c309076bbb760a63ab34308bbb866553b97f7a6bb2f15cb3b951f45bc22af2bba4ed4c23a4393ffbaabc21a3bedc1e0ba14945eba87fe583cbcd0de3c20dd963bc6e179bb56afa43bfdfc43bc113eb33c498bc2bcea24a3bd988666bde741133c2ca06a3aba32babb2da7cb3ca0959ebdb6a8643efa68ed3e4192eabcf916d73b64ea53bb52605739cfe9c639037f80371dacf9ba25ebd63b7c6f55bcbae4a13ba42f32b9f47fdcba1bd4013b857b49bbed455c3a0a11863b893cfe3cd87f4fbc3f542dbab5ee8f3bcc051fbc392e923c001454bcf5799bbdfd0d53bd20d8de3c62b647bb2d9db3bb1b36983c547e55bd8ac9363e6d13f53e69acb0bcbdfa44bc7bb6153b2077403a323a0dbb048daa3abdc3e4baabb0adbbdcd3bfbb334100bbd8b93d3af1e205baefcbcc3b14c4dabb719b553c6838da3cf69e413ce744da3bbde24839a0b058395ef8f7bb1961913ce15d66bdedc2aebda6cfccbc0fdb7e3b6c0797bba1f73ebb5147a43c4be398bdb556963e5dd3da3e7c6f94bde348ee3c679cd0bb7c41fd39f23f1bba21ce153a25e30abbb4976e3b67ace2bb3edfcdbbd7da183bda1b8eba354d0c3b635a5d38d5a92eba3a5e6b3be2650b3db24d233c9ab16abbe41b623b07640cbcb095053c6e4182ba3aac97bdaf47adbd6a854a3c4c9d53ba5032bcbb90f7dc3c4c7c88bd8334293e13e6023f996dcabccb76f73b030393bbbbb7ed3891f7dc39d21817394fe708bb3e14b13bae91d6bb2c0940bb4ebebf3a3540aaba68989a3a34f5e8bab7faf13a4f3dc4bb0144103d7f2ee1ba07b2eabada70483bbd0d91bb65f1a73b143fc53b74d983bd45fcaabd7e9df23cd0a2cebba3aab9bb6ed1793cc2a41fbddbb6003e5152023f14c1b83adf45a5bc3ac3d53bd29b5a3ae35c37bbb044ac3ad5c9f5392c3b89bbedb6debb5cc949bbb293df3afd491bba73b5e03bc271d1bb0bd4003c8023ae3c6652983cdb57aa3bbc600bba0878b8b85eac27bc625c843c334624bd3d7eaebd8eae10bd1eb4c53b0f2558bb17340f3a5ee0923c13ea83bde788823e740ae83e645288bd73afca3c53f503bc09085c3a985387baced781b84d971bbbf1f9303b92b267bbb0cb1abc39d20d3bf3739bba3d66453bd3a6793a913d123b13e552bb0ae30c3d85cd863cd033b6bb64ef213b459edfbb41098dba3215313c503385bde19acabd4ad3043cd584483b4c1c61bb997bb53c24a646bd6409f03d645e0a3f937379bc5617833b960fb8bbb5bebe39ff669cb9dddd893ab07027bb20ad623b3f46eeb88fa4febb3530ce3a0fc65bba80bf4c399bb018b91036a43a60a527bc7518f03c7a9c3a3c3b145ebbb968e13a4a102bb92a1074bb80ba9d3c415b58bd1eaacabdad60a13c867e8abb73cca7bbad2b633c17f80ebddadfb53da758073f8bf7933c49d4a1bc3607cf3b5ff95c3ac3bde3ba657620bbbe71e43ad09478bce0d794bb76d5a4bbf41d6e3b97b48fba96db393c9fdaa6bb4ea48d3c3814023d9a0da43c27c38d3b222abdbb045485bbb05b18bcf1d6ea3b5b1a17bd1886dabd29b3debc9083213c842d1e3a2bab383bebf8c33ce3416cbd6502753e6d77f43eb2e1a9bd2194fd3c6c368ebc9b93053a863133ba18d99bbaf144d3b9638e43b9e75fabbae0363ebca94a4a3a131b47bae477d23ac1017c3bc076e43ae91d85bb5338f33ce0619a3ccb24b1bbdf23083b9f31a2bb5e89bbbbc9c2943cd80a45bda9abd2bd7ef9b73bf01f523b4f645fbbe184723c1440e7bce31c683d9f3b113ff7ef8cbb92db843a5e6e2fbb2db4e339f21f3cb9d4fadc39922881bab0147f3ad50c2f3bc73adcbbccb521bba6f669ba3cc7383a9f3cf2ba01d3933b13ce58bc34a79a3cec91af3c5fd377badda84e3a7749923a1537abbbdacb8e3c43c2c2bccc53dabd6be89eb9cf0b40ba91e2efbabb12b73b31ff65bcc0eba93cd66f103f896de43cc25d2dbcd30d293b8314df39872fe8ba9e8cc7b9470a283ae5a605bad3fe84b9d91110bb195d4f3ae5b3e7ba79feff3b22617ebbe089faba0f29773941e6b9bbf956163cca831fbbc277eeb99ca67cbb35a86e3ca2628e3b677072bbecb9aa3c9476c5bbfc625a37f9cc1a3a0345e4babb338e3bfd0c303e45a1993e8ecdeb3a454b02b8801b7ebada490c3a4d64d1baffabf9ba652f8f3a5a4fd3bafaf2f2ba55bda0bae0d20d3a4a1efdba99323e3c7c8c8fbbfc8caebbc35bd23a0f82cabb4812f63bdf37a73aba333fbbf1049fbbe751af3c4135923bb6521bbca1f4033dfeaa7dbb2f1e27bb7341c93a0150a7bbc64b293b584d9d3d3435c73e16e69b3b1aaf34ba275bc8ba370c0e3986c83eb9748a45bb05688b3a0628c9baea9c803790f2c1ba69e838b8b4866eba1d55163c90ae0cbbb5af25bcc587773972e15abb599c9d3bc3a2e33b65e289bba54a7cba8d06ca3c52bf183b401005bce529ea3c14948dbb52b71bbb58a8ce3924db17bc605b0fbbf58be73cc05be83ebe8abdbba8449a3aa85ad5bad17a533905e5a4ba475f963a7bd0acba9365413984a0c8b9391586ba2013303975f49fba2ae1773b933955bbe2e5733b9f15953bf37b7ebbc5eda93b249e82ba34346e3aaf9b51bbdfe0163c46c9abbc8245debc8bfc603c36f87fbb4c7260b9c93094ba30d4653bddc9a9bcbfa67f3eef81a13ec31bcfbc5185833b36ccfb39cd729e39962b8aba19275abace355cbac8caefb92735243a5c6c58bbc07d503aee6ba8ba34b7ff3b674081bb6583bfbaa69a263bd01555bc980b403ce09d6dbba1a38abae77092bb0987973ceb365abcfa68d0bc66a9183d517957bccbb08c3a412b83ba0b7819bb33cb42bc56952b3e8daebd3e952c93bce627163bda0607ba43896839c8aa17ba367e83bbdcdb21388bd603bbebe25fb9c7348fbbb460913a1d579bba9bae4d3c42a936bba2b6dbbb597817bb3d2b46bca3f0703c2a8fb2ba48ac93bb3bc152bb64c8e43c340787bb354f8ebc773c683dc4f42bbc36b18dba980616ba1561d6bbdd2047bbb769bc3dd00fcc3e773936bce31c9cba276c3fbb85e7083a423b02bba0cd4f3b35788bbb273bc53ad57256bb976f463a00f286b961fe0bbb2c02be3ba2aef2bb06d4263cdb4bcf3bfd5149b9f3dd093bdddd323ace37473bf5b1ebbb65e22a3c83351ebdb6282cbd5ddf7a3b05aed936b04559bbc21196bb485c2d3cf78f1fbdc5c5943ed3d8ac3ef6bc26bdfde9c03b9817fd3a81f84c3aa0491abbb7df9d3bf126f6bbcc519e3b4bc4cabba319253be5805cba06e03cbb922fed3b19e91fbcb71d3c3ca5dcb23b7f5449bb250b263b1939003b028ba13b611622bc4c6c983c47051fbd54b248bdea946e3c31363abb7d2cbcbbbc12ffbb7346433cc61421bd54637d3e7b5fc33eee3132bd4ded723b368ca83bce8aa3394b124bbadf55b2ba4148a3bafb81913a21b1693a1d94b9bb5f63103b56479aba9f42013c444f85bb16ace8baae23a0ba61278dbca2635e3c91a0b7bbb0f559ba6f3e94bb639eb03ce12e80bcdf89ffbc156d633ded5786bc36100e3aeb33edba8d6a60bb9f3777bc0798253e9a80c53e8baeb0bc3a50ceba4c5e923a17c5333a1768fdba9f55243b68a481bb42361f3abba792bbf16e613a5a6a9eb95befe4ba015ff63bc0a009bc18106e3c209b3e3c034b033bc57d663ba6936c3a94eb043b38f40bbc7d21303ccfbd5bbdb3ac68bdad9082bba707663a291092bb195295bb58717d3c42cd5ebd608fa03e00c2b93eaece65bdd2513e3cfc72b73afb389f3a2d7d34bb4f389a3b79c0cebb8962a73b3b9517bcf5199a3b571bf3babf4c4dbbde16103ca13057bc73be803cd5adf93b6e04c33b93f851bbf134a13bd02ba33b061365bcbac7be3cab2453bd2a3b7fbd6b239bb750629e3b98f617bcf98bfdbb6385993c1db060bdd51b8e3e452fcb3e47ca6cbde355c43baf8fcb3b3151843acb1ba2bafdc70a3bd845bebbd892bb3b694ca9bb2e1e4b3b07ff01bbb2c960bbd3bef03b0dcf0fbcce31213c52d2253ba443f9bbfa1e993adaa4543b8b03893b781c15bcf047b83cf94318bd2a365fbd8f79fc3c159ccbbbe344bbbb153dddbb3bbd1a3ce08a1ebd4ea6683e0b81cd3eb4e93bbd5a20573997a2cc3bcfa2723aef88deba9516a83aeac153bb0a4f3ebb16f931bbc14616ba2593da396071f4bab44ec23b784eb7bb794b7b3c30379f3cd5292d3ba23b8f3b36cf34ba00e8ca3aa41ac2bbd9943a3ca97e79bd55c18ebd0802d4bb88b5d23adeb518bbc9c382bb4b6f893c64a27fbdf6ada23ed638c43e1a8b8bbd89299c3c8d7b27bb1865c83a43b050bb14e8943b5d949fbb860e923bb7462fbc1a31a93ba8a601bbb00055bb917d063cd3883bbcd4da4b3c0cdc2c3c9c027f3cfdc8edbbfcc8ab3b8ac8a73b451353bc20b2a83c49083abd5d2d98bdbe3a8abc6fe5483cde7922bc58d602bcdcef9e3c64af60bdc303843eb2cede3e328a8abdd35a0d3c25aabf3b58359d3aa22028baf379e33a9a039bbb1528b73b1a4c21bc8ff60c3cb90988bbe6ae83bb777ca13b258ce9bb737e003cc154313cdb60173bdf5615bc499b063c0cd0cc3b66ef15bc1a1cb03cce2b18bd0a7599bd50153f3c915cae3b8e3128bcec9f0ebcf8863e3c23f22cbd2c31683e8c97e13e137287bdba70b73bd2dbf93b1095c93a674c38bbaa141e3bce1c80bb0ad193bbfc9faabb93c8f539d61512baef3c28bb193a163c4d242fbc2766893c77fbf93c26412d39014d0d3c74599c39273e1c3b6c9936bc2fbbcd3c88338ebd5cf6a6bd9127e5bb4e1b02bbc6658fbbacdd92bb50a59a3c30c697bdafd9a03e7698cf3e9d289fbd3a3ffc3c57239bbbf973213b882270bbacfeb33bf824b7bb5568a83be2a35dbc1e26db3b007bd2ba61a589bb98188a3b93c3e9bb2283053bd969973ce7f0ba3c518a45bcd4707b3bad1cec3b8d8135bcd9afe53ce67216bd6189aebd5c9dfdbcda1b9c3c68d400bcc635ebbb4bc74f3c8f2b61bd2154633e7e06f33e23ed8abdb3043d3c4003563b56b0653a01d455b9045f893ab6af16bbbec35c3b76be21bc39d3093c44fe61bb92f535bb4310be3aebae06bb911ec8b9e199913cc7a1103c4cbf49bcee51de3bf40b9c3b138aa4bb3c394d3cc6b0a3bc8b65babd83dc43bbb269563c532a19bc5481d2bbc00ef43b22be01bd8b88433eb798f73e705997bd0d2fd53b6961ce3b549ae43a87394abb64e1b53a84c078ba16d0f3bbfa2ea0bbada4f0b96b7e6e39ec4c2dbb6a6b1f3c7a122abc7250753cff68043da1e9b23b57aee03be76bd0b819abc13a86a536bc0abbc03c7eb482bde059b5bd3ff981bc5fec113b13cc83bb2bf5ebba037b913cf3f48fbd4740963e49a2dd3eb152acbde3b2083df71c00bcc1e2043b7dd320bbbc65ab3af7a7c0bac6dc223bdf5d62bcc9f0983b636575baf14b55bbfa80c53b30929dbbf73d973ac864853c6db3073d89af22bc9156693b7ec85f3b78d408bc1a1e823ca8f3acbc63eeb7bd258e68bd2cbccf3c23be23bcee6c77bb36d8413cae4730bdc535393eccb3043f06cd95bdebd4873c261492b9ce646c3a367fcdb9e5626c3a395304bbdd5a873bcc6133bcffdde43b0cbd3bbb258908bb39821e3ac1d1b1b9733f34bb6ad76a3c247fa03cb8b153bcd7a2cb3b3cf6623bb59c23bbe342d13bf80ff4bb4b28bbbd8c01d5bca15d923ca85513bc4c96a7bbee87b23bea65bcbccc821c3ef7b8043f06ca90bd8629d13bf63fa23b3cb5b93a811c37bbc039813a3cf5323abf9bc9bb5412c0bbadc515bb4a5d263b18a50cbb1bdbff3b82c0f4bb55aa223cf827cb3c10be823c715b4c3bf066e5bae417803af1941dbcb98a843c25683ebdeb0cadbd2e560cbd3959393ce15382bbc08f153aefd0663c427960bdb47d803ec9f9eb3e59a29fbd4b88d03cb2bbf9bb0669d13a50d302bbf6eca63825ff30b96d08db3a6f8729bceddf06bb8555403b007908bbe5a98d3be607ecba67fbfa3957741d3ce7891c3dc44344bb751105bbbcaaaf3a0c9b8abb0753a63b3324edbb3bf2a8bd9124a7bdfda9f33c43ecfdbb5d3c91ba6a8cef3ba322ddbc25360c3e51270d3ff61789bddc1d463c4f2376bab8d2d23a6eb7b6ba50068e3ab8e80abbbe0f943b474a10bc7193143b62d720ba6e0014bb221ec03a5bd8bab9b9a84dbb432fef3b13b2da3ce40507bcd4c8393b2428103be79fa0ba80257b3b133eec3a5647a9bd80f749bd0cb3a03c2656e2bb035653bbace4383b43d98dbc61f1ee3d0f600b3f59e779bd746eca3b31cb543bbe9e7b3ab1635abba6bdde391d954d3a3e7586bc2dc0c5bad26a9fbb74e86a3b371979bb3743683c152d1fbc0c52af3c60fe053d9ec1893c83e2f03af817b6bb6165d0b90d8f46bc7ca51c3c3d883ebdae26d8bda8e7b9bc5aae623cb2d0ce39f56ac63adb03cd3c67df63bd5224803e1f80f43e4dc3c5bd6132003d433d8fbc5e50b83ad87b13bb7df444ba003b423bd89541bbf59a04bc1e60a3bb7256993b4e4b08bb3f8f8b3b3ead9fba6e25afba4345483ca508073d29f390b898ef9ebb2198c93a9a5ea3bbe446b33b36e8a8b92d37a1bddd259fbde519de3c4a43c7bb08d003b83d24e03be625c6bc2658e33d0ded0f3f16db80bdfc3b7a3ccc8390bb7b37b73a5f76c0bac5a1433aa85739baa22c003baa3455bbc08146bb0a6d853ae917e1baf1e2e83a3bea4cba4aec07bb88ba5e39b593bd3c0c047a3a50ea5bbaf18da63a95837fbabe18233bfb24e53bad6a59bd0aa88dbd5a14593c5f8e5abbfe37afbac4508a3aa4ef2fbc1b237b3db001103f2af105bdc69d893b29676d3a0ab3de39b7b0e7bae880e8b9ecef213a82d580ba854b0137867c1fbb48da4e3aac36e8ba98fdfe3b71a77cbbfc1ee0ba8dbeefb72a15c6bb0d61163c7c0c10bb5a10c2b9466b7ebb75d26d3c62438e3bfb43e73a14a6aa3cad94babb5d0e88b95af62e3acbccf5ba438d8e3b2a2a303e739d993e437774bb43307739603609ba2f5f0c3abea4fcba94953fbb4bdbc73a5809c6bafe2a28bbc692a63ab7030e3ac4f2d0ba4cd13d3cbacb9dbb9672a7bbb69131baa4fa7cbbcc20f73b869aa1bab103fabab9578ebb860caf3c4c77293b94b99d3bb1d6033de9b3cabb1e11f5ba5ca38d3a348caebbaa2b923b7c6d9d3dfa1fc73e27b71abc23aed23a34d8d0ba21b8e7383c103aba12b38ebb9dd6163a4e2ce4ba353019bbef0fcb3bd862ff38d33094b89ca5133c3f8d64ba4ac018bc3b749c3a4b66a9bb24eece3bc7d9f1bae98b50bb0d1508bb1d08ca3c793f0ebb7383c7bbf9e1ef3cc64872bbb5785839b2499c3a76b828bc27a71c3b9b23e73cd473e83ec69d05bc1b78a63972f8dfba326d533959f19fbab3336e3ac43594ba88cefb395a7160b9b99d82ba370e3039c3e1a4ba8adf773b509851bbf5db653bca85833b54f87fbb2ceea93bc21486ba235f963ae03655bba0de163c80caa9bceb1acfbc1afb603c1c7c7ebb43a0c8b954d5acba48ec733bd6c9abbc43a67f3e1b82a13eaa44debc8216953b2a684139b2859e39976ca8ba83b18abac81f83ba3f0607ba65ba8c3a349f6dbb637e503ac32e8abaeebbff3bea7292bbd47719bb5832163b287a57bc4d09403c016e58bb5d3f5aba3a4381bb4288973cdcd142bc742e93bc0aa9183d781655bc9f45243a92225cba4581bfba103d5abc76962b3e76aebd3e3c6ad0bc81a5263b14c9efb97407643964f698baae9694bbc3070aba2c3141bb992085ba4fc3d2ba3c709f3a156814ba573a4d3c104e50bb0599d7bb5e0295ba3b3430bcf817793c9bd295bbe04484bb116534bb355ee43ca12142bb4f6e39bca478693dd0eb49bcc4c810b9134f9f380693ddbb771884bb7810bc3dcb30cc3e9bcc8fbc222212bb04ea06bbdce4083a6dfd0bbb9f37473bb81196bb8217fd3aeb4559bba4de323ab3f286b93b3a02bb3301be3bbdb1ebbb6d5c2d3cc9e9c03b7474da3695dd093b5970463a64cd4f3b67aef2bb7ce22a3cfd8f1fbde9bc26bdddde7a3be24b49b90e7356bb2a788bbb29d4263c89351ebdc2c5943ed4d8ac3eaa282cbda84bcf3b113bc53a6cf94c3aabdf3cbb7f8aa13b1512ffbb118ca83ba52cbcbb4b39003b44815cbac3491abb1a2fed3b0e1622bc2f46433cb3ed723bf4353abbb70a263bd619253b63df9d3bcde81fbc496c983cd01421bdcc3132bdcc946e3c285449bb72c4cabb5c26f6bb6e1d3c3c53051fbd4a637d3e7a5fc33e33b248bdd0dcb23ba9519e3bb9cba239c03d99ba04085cba30f4ebbaa1c8903ace2b153aa63ab9bbf532123be07a4abab91e013c37ed93bbdc4461bb9633cbba81c386bcc1ab5f3c5f14bbbb854fb3baecfe84bba581b03cb3d476bcdc09b1bc99a8633dde8e8dbcd5a3703a8d07a2bae882eababef67fbc788d253e5487c53e11e4ffbc65e69cba56e38f3a0ac5333afaeee4bac5eb043b6f5295bb3274b73a671092bbd7946c3a566b9eb9e967fdba615ef63bd6f30bbc92717d3ca2513e3c040a663a327d663b3c70613ad555243b55a009bc4f20303c32cd5ebdadce65bdd19082bb6b4b033beba792bbc7a481bb50106e3cbcbd5bbd608fa03effc1b93eaeac68bdf49a3e3c0c381f3afb389f3abf4c4dbbd02ba33bf98bfdbbaf8fcb3b98f617bcf134a13b571bf3ba2d7d34bbde16103c061365bc6385993ce355c43b50629e3b93f851bbf5199a3b4f389a3ba13057bcbac7be3c1db060bd47ca6cbd6b239bb76e04c33b3b9517bc79c0cebb73be803cab2453bdd51b8e3e452fcb3e2a3b7fbdd5adf93b8962a73b4709843ad28a60bba0bc883badfadcbbdd70cc3bca01bbbbea09543b2cad01bbba9ea1ba5b91f03b49ff14bc11a11a3c6a8e5e396ff6cbbb8ee79a3a7a8c4a3b1e6f0a3bafb00fbc663ab83c66831ebd47f33bbdf88ffc3c0999f9bb430ea9bb74f8bdbb5012213c823c18bdf4a3683e5c82cd3ea53f5fbdce47263b0151bb3bafa4723a6273f4ba83eaca3a6bc482bb5b7927bb41b818bbe0c734ba818bda39ea8adebaaa4fc23b9a1bc2bb536f893c0b299c3c0dbdd23a493a8f3b7e3f16baf918a83a584fb7bbb8943a3ccda17fbdfb8a8bbd4e05d4bb6d2d2d3b5cfb31bbf6c253bb6c4b7b3c157e79bdaeada23eff38c43e3cc18ebdc4369f3c0e4d3ebb1865c83ab20055bb8bc8a73b58d602bc22aabf3bde7922bcfcc8ab3baaa601bb41b050bb907d063c431353bcdcef9e3cd65a0d3c70e5483cfcc8edbb1d31a93b15e8943bd4883bbc1eb2a83c64af60bd328a8abdbe3a8abc9d027f3cb8462fbc5a949fbbd7da4b3c49083abdc303843eb2cede3e5d2d98bd0bdc2c3c800e923b29279d3aea9983bb9194cc3b646f0ebc9b7ff93bad1128bcc686063cc8f787bb7e2c28ba026ca13bfdd615bc4d643e3ca3b1b73b0826ae3bdd3c15bc9ae00c3c5357e33a6c6ce9bb1e0fb03c15eb2cbd5a7587bdcf2c3f3c8ff0163b052521bc54cb9abb305d003cb02418bd972f683e4e98e13e3e7899bddf79313cbfc8b63b1095c93aef3c28bb273e1c3bacdd92bb57239bbbc6658fbb74599c39d61512ba674c38bb193a163c6c9936bc50a59a3c3a3ffc3c4e1b02bb014d0d3c93c8f539aa141e3b4d242fbc2fbbcd3c30c697bd9d289fbd9127e5bb26412d39fc9faabbce1c80bb2766893c88338ebdafd9a03e7698cf3e5cf6a6bd77fbf93c0ad193bbf973213b61a589bbad1cec3bc635ebbb4003563b68d400bcd4707b3b007bd2ba882270bb98188a3b8d8135bc4bc74f3cb3043d3cda1b9c3c518a45bc1e26db3bacfeb33b93c3e9bbd9afe53c8f2b61bd23ed8abd5c9dfdbce7f0ba3ce2a35dbcf824b7bb2283053be67216bd2154633e7e06f33e6189aebdd969973c5568a83bfcc3653a6ded35bbd0f49b3bb54bd2bba1f3cd3b53db18bc0ebcdd3ba06d61bbf5b256b9e013be3ae678a4bb76dcf33b7a9bd53bc412563ce45949bc7694093c0473893a7b9d06bb81264d3ccbb401bd856097bd1dbf42bbff53103c518921bce19616bbc95ecab9799da3bc1485433eb09af73ec36cbabdbdaf913c925b5c3b4b9ae43af04c2dbbf5aac13af4f4ebbaf91c00bc10cc83bb216cd0b8a27e6e398a394abb776b1f3c8ea536bc057b913ce2b2083d63ec113b56aee03bbda4f0b93ee1b53a82122abc06bbc03cf2f48fbdb152acbd3ff981bca4e9b23bf72ea0bb12c078ba7750753c7db482bd4740963e49a2dd3ee159b5bdfe68043d1bd0f3bbc1e2043bf14b55bb7ec85f3bee6c77bb261492b923be23bc9156693b636575ba7dd320bbfa80c53b78d408bc36d8413cebd4873c2cbccf3c89af22bcc9f0983bbc65ab3a30929dbb1a1e823cae4730bd06cd95bd258e68bd6db3073ddf5d62bcf7a7c0baf73d973aa8f3acbcc535393eccb3043f63eeb7bdc864853cc6dc223b805a6c3afe8308bb47e7623bf588a7bba52ca23b7e4a13bc5b8ecb3b50a73bbb6e7ccdb97b861e3a3d9723bb1c80b23b1838d13bf857923cf3a453bc05cde43b095a6c3a0cb2b1b9cf3cd13b5f63bcbcecca90bd3cfdd4bc3a7aa03cb35933bc0a4804bbff4c34bb9a04f4bb4d821c3e1ab9043f3229bbbdf6dd6a3c844f873b3cb5b93a18a50cbbe417803ac08f153ab2bbf9bbe15382bbf066e5ba4a5d263b811c37bb1bdbff3bf1941dbcefd0663c4b88d03c3959393c715b4c3badc515bbc039813a82c0f4bbb98a843c427960bd59a29fbd2e560cbd10be823c5412c0bb3cf5323a55aa223c25683ebdb47d803ec9f9eb3eeb0cadbdf827cb3cbf9bc9bb0669d13a007908bbbcaaaf3a5d3c91ba4f2376ba43ecfdbb751105bb8555403b50d302bbe5a98d3b0c9b8abb6a8cef3bdc1d463cfda9f33cc44344bbeddf06bbf6eca638e607ecba0753a63ba322ddbcf61789bd9124a7bde7891c3d6f8729bc25ff30b967fbfa393324edbb25360c3e51270d3f3bf2a8bd57741d3c6d08db3a02cfd23a41fe13bbcc23103b144e53bbb8bc543bc04ce2bb62b8393b8ab120ba45b5b6ba841ec03a2c9fa0ba9de1383b0873ca3b37b1a03c870107bcf984143b75038e3a5ec8bab9c9207b3b4bd88dbce9e779bdd4f649bd68b0da3c454710bc5fe50abbb3ac4dbb3050ec3af7f0ee3d1d600b3fa847a9bdd732ef3b7e0c943bcf937b3ae21479bb3463d0b9226ec63a1a3d8fbcfae0ce39b018b6bb3bef6a3b855f5abb9c41683c348f46bc9803cd3c4232003d2bae623c79dbf03aa26b9fbbfabdde392e2d1fbccda51c3c64df63bd4bc3c5bd96e7b9bc87c1893c7bbcc5bab29a4d3acd51af3c3e883ebd5124803e1d80f43eac26d8bd42fe053d207586bc5e50b83a4e4b08bb2198c93a08d003b8cc8390bb4a43c7bb98ef9ebb7256993bd87b13bb3f8f8b3b9a5ea3bb3d24e03bfc3b7a3ce519de3c29f390b81e60a3bb7df444ba3ead9fbae446b33be625c6bc16db80bddd259fbda508073df59a04bc003b423b6e25afba36e8a8b92658e33d0ded0f3f2d37a1bd4345483cd89541bba62cb73a640de1ba2485a63ab731afba5d516d3a47885abb34095cbad178853ad56ac0ba24dbe83aac7b7fba6f4e8a3abe9e893b4c13593ca61d7a3a3d8746bbb489433a14db4cbaf715233b26ef2fbc6ef105bdf3a78dbd2893bd3ca32f55bbdc4439bacaee07bbfc26e53bd2227b3db601103fd16a59bdd2f15e392b29003b8861c939eaa7e7ba9fe11ebaf7c1063a79fa8cbac47b4c3a19b623bba7c33a3a8e52d6ba447afa3b25e585bbb2adbeba8a8716378845c5bb057d0a3cb08e00bb1394f9b9015872bba6bb6f3ce7a78f3b0137293cddf4933c01029abbb445d6b9e6fc243a4979afba787f773bb981343e0c02953e5858b8bb8c2d23b5d56989b9ab001b3a13e535bbcb8962bbd96c9639e67c36bb9174d33ad2c93c35eb649139edd790ba9743563ce42f89bbbacccfbb9686e2bbcefbb03bc5ae1b3b6dcb17b9703e36bb41459bbb043ec03c3461613b9957283d875f6c3c4c3862bb85481dbbfef8a73a574a83bb68ffd83bdc94923db4d8be3e92d15ebc8f8c7f3ac04915ba0ce73f39e3c689bb083c16bc08cfa83a001f00bbf526c4bb510f4e3c02d4e3b7b14883398670bc3c3b477cbbc751c6bca3a5943b63dfa43c0f2640bb41582d3b534cc2bb2149b4bbd328263d6b95483bbae46b3c39d1913ce7cc56bbf3ef0bbb67e4a9b8f94e2bbcac57fa3a23c4593d7b5fd93e70c31cbdce8a5ebb9491ac3a5a992339b82995baca04273a085187ba6de8043a57387e391dcda2ba4f8610395ec986bac02c5e3bae3e47bb6529523b8a957d3ba18262bb57af943bccd57dba6314883a523d3fbb05ce103cc59aa4bc913ab0bcab6b463cee476bbb426607b918c394ba4e566f3bcaeeacbc0a47813eccbd9e3e2c2dddbcd00b9f3beb72a8b92554923909e8c7ba35e49aba6fd0c8ba3dd35dba4bcce73a19ab85bbee880d3a772088ba85b8073c42bbb5bb668892bb6868c03a12fc31bcfa1e183c21fe1fbb41c788bad1dc6bbb3b3ea83c7ae129bc65b2a33bd846f53cf61634bce531af391d49fcb9b53888bad83467bc9401313e1d92b13e97debabc7fefb83a4f540fba48cc043ac63d47bb58e0a0bb63d312bb5baa06bcb7f561bb5d2d893b12d6293ac920b8bab9be993cb1ce13bcd57d48bcaf458a3b9ca4f73b1c070b3c9e2d9fbbff098cbb2a3c8fbb4080343de74e8cba35472f3c28172a3d6db53cbca8f71eba0b9c18b9c402bbbb0a333bbc6078013e31edb03eb2b696bce1c18cbb5586c0ba7cffe639984600bb59e6153b5d5686bbb07efc3ad65630bbabb2b0395fb672b91bbad9baa017a83b3a97cdbb47a8223c82cabd3b664c94b7452bee3a9ac6373af289393bb7b2d7bb3276193cbf2620bd08781cbd2fdf363bbcc610baea322cbb00c376bbc3131e3cdaeb1bbdea9e953ea773ab3e79e92bbd2e4be33b2f004a3a6e72143ab14215bb2c20863ba69ad1bb0640523b2a573cbb10883bb90fcc11ba47d0e8ba6562b53b6b9918bc398f233ca5602e3bc78922bb8c3b1f3b8280133b527b863ba3b0f7bb72ea9a3c1ecd26bd8d86e8bcf4c3163cc64e5cbb6cc5a4bb11e8cbbbda40163cc43d1fbd9668803e5f3ebd3e11b83fbddf9dd93b8ff16e3b21d4aa391d8bbcba03e01eb96b782abb984558ba8f8aba3a29daadbbd92d963af89f3dbaed3e0d3c0d8adbbb06e6cabb994e89bb1eb12dbc0e1b0b3c8bde5dbbf121bbba15b487bb2b30ce3c2c3493bc50dc363c8d5f413d3f7a89bc1296be39dbe0e2ba1a2511ba35ce91bcc19d373eaba3b23e886ceebc34312abb9904093b03611d3a8366c1baf60be03a3dd79ebbce83863a7fd071bbd823323add4ab9b921daebbaa6bdd13b58b7e3bb19cc7c3c36ba4b3c32e50a3adcdc303b89f2923a82e4153b28b1e9bb8f26173cde4364bdf03c5cbd2f4fbfbb6c3f4f3b7b5785bbe67e52bbb2ae5d3cc86258bd534ea13e66e4b83eb68a68bd5169403cb1e893b9c1d44e3a6e3029bbe494a43b8c13e0bb9810f43a874b6fbb88a9053b2f41a2ba0bf3d6ba06c4c33b089145bca7b08d3c6f96df3bafd6753b6e5f80bba4468d3b92a7673b764c2cbc8bf3c13cfae475bd569b32bd975fffbbb974073c8198f8bb70c194bbfd5d613ca4d750bdbabb8e3e9f0ec83e319478bd3183093c24b02e3b23e0e0395ff133bbbcf9b33b2817d9bb81f58b39e51d0a3bd45efb38bb180bbbad5bb938e15ab53ba92c2fbc2137153cd339b0ba65693fba8031eebb7918cc3b1a02063a836116bc50e3e73ce52342bdc850bfbc016a863cf9e889ba8288a5bbe9fc78bb75a73b3ceebb23bd704f6e3ed1aec83ecd6f61bd3f410f3b682a623bc8ee393a468aa1ba482d853a0b6c86bbfaf642bb1a53e5ba404d26ba7ed5c6394f5bbbbabfd9903b89c771bb14c5873c01189d3c353b7f3a9648873b3c9242bad1f3ac3a7a6493bbc529123cf4e283bd6e1882bd773c13bc88e7943bfe2325bb512f3dbbad90723cb06f71bd4017a43e4a12c23e4ac48dbd71a2973c1d0b64bb64f4683a197624bbb3f5903b4cb7b8bb02f2a9ba57b4ebba849b963a66cbeab81e2bb8ba8260c23bd5aa47bc1ca6b23c9569173c518ad13b396d85bbad92c53aa5f7033bab5c1cbc6317c33ca21491bdfc8d37bd2dbde2bc8d1da53c49e9f4bbc73507bbfcc3363c7e8935bd6aa0873e307ed93e2af195bd2f1d1f3cffc28d3aea179c39f2931fbb13dcc03b9a53bdbbcbba05bb6d03153a55b7fc3a9c3225bb19a8f5392a178a3b475060bc14de923cd05460bab740643c87ed86bc0d93213cc9288cb90dc10ebc2b1ff83c3b1d72bd666e16bd58d74ebc35458a3cd1a141bc3dd589ba12720c3cfb1c17bd6cff673ea507df3e43f094bdfe11ef3b8c1e613bc2ed843af8f083ba9ab5c33ad664b3bb309076bb75119abb3ae6693966e8d1b7628112bb46d3a93b8cf7c8bb5764a23ca587dc3cb92a663a9ec5013c9a102eba0c9c173b5238b6bbfd6a7d3ce10697bd51be8cbdcf568dbc77c4d53b8feabbbb49c792bb3e217b3cde0680bd71ca9f3ea2facd3ecc909ebda4f5cf3cb2ef60bbb760a63a4393ffba56afa43bba32babb64ea53bb2ca06a3ac6e179bb4ed4c23ab34308bbabc21a3bfdfc43bc2da7cb3cf916d73be741133c20dd963b22af2bbab866553bedc1e0ba113eb33ca0959ebd4192eabc988666bdbcd0de3c951f45bc97f7a6bb14945eba498bc2bcb6a8643efa68ed3eea24a3bd87fe583c2f15cb3b52605739f47fdcbab5ee8f3b2d9db3bb7bb6153b62b647bb3f542dbaa42f32b9cfe9c6391bd4013bcc051fbc1b36983cbdfa44bc20d8de3cd87f4fbcbae4a13b037f8037857b49bb392e923c547e55bd69acb0bcfd0d53bd893cfe3c7c6f55bc1dacf9baed455c3a001454bc8ac9363e6d13f53ef5799bbd0a11863b25ebd63b2077403af1e205baa0b05839a1f73ebb679cd0bb6c0797bbbde24839d8b93d3a323a0dbbefcbcc3b5ef8f7bb5147a43ce348ee3c0fdb7e3be744da3b334100bb048daa3a14c4dabb1961913c4be398bd7c6f94bda6cfccbcf69e413cdcd3bfbbbdc3e4ba719b553ce15d66bdb556963e5dd3da3eedc2aebd6838da3cabb0adbb7c41fd39da1b8ebae41b623b5032bcbb030393bb4c9d53ba9ab16abbd7da183bf23f1bba354d0c3b07640cbc90f7dc3ccb76f73b6a854a3cb24d233c3edfcdbb21ce153a635a5d38b095053c4c7c88bd996dcabcaf47adbde2650b3d67ace2bb25e30abbd5a92eba6e4182ba8334293e13e6023f3aac97bd3a5e6b3bb4976e3bc1b7ed383440aabad970483ba9aab9bb3dc3d53bcaa2cebb04b2eaba4bbebf3a87f7dc3969989a3ab80d91bb6bd1793ce245a5bc7e9df23c7e2ee1ba330940bbc71817393bf5e8ba6af1a73bc2a41fbd1bc1b83a45fcaabd0144103dab91d6bb4ce708bba6faf13a143fc53bdbb6003e5152023f74d983bd4b3dc4bb3d14b13bd29b5a3afd491bba0878b8b817340f3a53f503bc0f2558bbbc600bbab293df3ae35c37bb73b5e03b5eac27bc5ee0923c73afca3c1eb4c53bdb57aa3b5cc949bbb044ac3ac271d1bb625c843c13ea83bd645288bd8eae10bd6652983cedb6debbd5c9f5390bd4003c334624bde788823e740ae83e3d7eaebd8023ae3c2c3b89bb09085c3af3739bba64ef213b4c1c61bb960fb8bbd584483bd033b6bb39d20d3b985387ba3d66453b459edfbb997bb53c5617833b4ad3043c85cd863cb0cb1abcced781b8d3a6793a41098dba24a646bd937379bce19acabd0ae30c3d92b267bb4d971bbb913d123b3215313c6409f03d645e0a3f503385bd13e552bbf1f9303bb5bebe390fc65bbab968e13a73cca7bb3607cf3b867e8abb3b145ebb3530ce3aff669cb980bf4c394a102bb9ad2b633c49d4a1bcad60a13c7a9c3a3c8fa4febbdddd893a9bb018b92a1074bb17f80ebd8bf7933c1eaacabd7518f03c3f46eeb8b07027bb1036a43a80ba9d3cdadfb53da758073f415b58bd60a527bc20ad623b5ff95c3a97b48fba045485bb2bab383b6c368ebc842d1e3a222abdbbf41d6e3bc3bde3ba96db393cb05b18bcebf8c33c2194fd3c9083213c27c38d3b76d5a4bb657620bb9fdaa6bbf1d6ea3be3416cbdb2e1a9bd29b3debc9a0da43ce0d794bbbe71e43a4ea48d3c5b1a17bd6502753e6d77f43e1886dabd3814023dd09478bc9b93053a131b47badf23083b4f645fbb5e6e2fbbf01f523bcb24b1bba94a4a3a863133bae477d23a9f31a2bbe184723c92db843a7ef9b73be0619a3ce0363ebc18d99bbac1017c3b5e89bbbb1440e7bcf7ef8cbba9abd2bd5338f33ce75fabbaf144d3b9c076e43ac9c2943ce31c683d9f3b113fd80a45bde91d85bb638e43b92db4e339a6f669badda84e3a91e2efbad30d293bcf0b40ba5fd377baccb521bbf21f3cb93cc7383a7749923abb12b73bc25d2dbc6be89eb9ec91af3cc73adcbbd4fadc399f3cf2ba1537abbb31ff65bc896de43ccc53dabd34a79a3cd50c2f3b922881ba01d3933bdacb8e3cc0eba93cd66f103f43c2c2bc13ce58bcb0147f3aa3c3b939a8cbe2ba5d7a64ba0701a3378da072baf4f6b93adb8c2bbb422c143a100ac4ba77bef63bcdab85bbe2626aba2499563a458bd1bb1501fc3bbaeddcba9d2a20baf21a69bb83a96d3cf061bb3b64469d3ca116693c45a082bb3a9523bacab4183a71965bba9d5f793b12453a3e3d8f8d3e76afa2bb3b02b539583de3384a070c3abc6858bbc8c74bbb10e13abbb2eaa0bb28ee8e3ce18d04bc1c401e3add7883ba4841623cb8fd75bbd6e2a9bb896905bc3c6e0ebc00e8aa3b32e3c4baf7b71dbb0c4ac0bb5fb2b03ca3605d3b5a1bde3dae899b3aa19e7eba4e1711bbf925ac3a97c652b9a83b043c6b66893d0d30a43e7cc7c0bb08b101bb8f533c3ad483e838ece909bc3506f8ba1313f43b754841bc1b344a3daf1e76bcd4e30539b337183bd3b2f93c872c4cbc4cb2cbbc772e5fbc0d2222bd543eec3c6690debbbf7e01bcc8709ebc148b453d682572bc26133e3e20fa383d81cd8cbb02f8c93bd1d9613bab04b13b25e7b1bcd0f1843d7b39933ecaf74cbdd9d9eabb0788b3bb4e811639cefe97bad58ee539238e71ba13eb3a3af48991399033b2ba761fe638bdab83bab545563b0a9340bbbc08573bb121653b477f4abbf83d7e3be3bd56ba1e1e7b3a17ce35bbd68d0d3cbf159dbc142d8cbc076c243ccd8c41bbbf4c65b9f6148cba27216f3bfd78adbc333b833e549a9a3e1ff2d1bce1b9953b1c72adb9ba558739c0a0eaba978bcaba35f710bb5f3985ba3d57543bcc5faebbf8a3d839a0496fba408b0c3c43c0dabb5525c0bb7d35183bbf212ebcb8eb083c79b0f4ba9ea18fbab4c369bb7d81a03c2150b5bbf5aa053d4f50a93c3fa021bca67a1cb95613b338b2beabb9b30249bcd5dd343e81e6a03eda6485bc4d10173920bb86b9554ae0391b9c8cbb464f5abbc4355fbb8911fcbb7ef7653cca692abcd5281b3a586730ba8393923c31681cbc54f48dbcb8a1273c6711773b06f80f3c470d85bb545281bbb72ee0bba2421f3db4b5ccba8535a83df4e0ef3ce72e59bc6f5612ba4c22843a28ff6ab8ad264abc15370f3e68c9873eb9c430bcb533edbacd1f69b97168c6392582e0ba7072da3a520367bbcc3be83a54d30dbb36913ab87454d0b8f182b5badad0943bae53b1bbe985173ceef5c43b814c15ba904d0a3b763e66390246133beabec2bbd0af0a3c49841fbded2211bdd9600b3be6f97abafda303bb7b4a40bb90070c3c27c219bdcb0a973e7e12a93ef2eb29bd4c56f33b7101373914f5f23963728dbaa331513bb9a7a0bbe8bcd73aad85b8babf5127bb3c6cd5b9c95df3baa5c9423bb8f70dbc8b9bbf3bb793973b28f429bbc94b913b4017103b2b70803bb20a8abb82d7963c497a1bbd101c66bc47e2133b6d2a95bbdd5b90bb8831afbbbc22ab3bdd081abd8871813efa49b53e6c6b2cbd2f92093c9097513b55899339ca6e173aaff52d3aacee81bbd950bbbbf435bd3bba3e21bc6ff1ff3909cfc1bad0408d3bc4f910bca16c17bc3d35873b4d70a3bb3a550a3ca4bd03ba452733b9703ac739eeaccf3cc76b80bc2df02d3debd9b23c149681bcf09867baa66c11bbe8b45ebbda959ebcbde03c3e1236a43e9073b4bc6af1eb3a5d98213b0e96fd392668b9baee92d73a43ca9dbb8657fb3927cf4ebb1873313a0ddf7ab920ac9fba6feaae3b3368b0bb6e116a3cd0045d3c169659b9a88a253b2e452d3afc84b03a69a7b9bb666df73bb27563bd272652bd0a8ad0bbc2fe353b783b47bbc34225bb82ed573c51d758bdd2c1a23ea590b63eb20b65bd0ff0423c5e8e8cbad1a40c3af308e1bae8fdab3b730fcabbbb040bba1adab6ba01b64339ce9b2dba1fc0afba36a4813b083c32bcf1ca383c782f543c267bbbb8a92e84bab67d2e3bb6e0423be72d08bcb023c43ce7d375bdf09efabc1b8d7cbc9943083c03f3bfbbca5f5fbb0e612f3cb42d4cbd363b8f3e176dc23ea46564bde096123c48ecec3a5c36d6385dd6aa39f6e7233c63bcd9bb125729bc8481623b17232abbec46af3a7cafd4b9c08d17bb40daa0bc8e999b3b9885943c3786db3bbe2aeabbc04816babcb71e39890fe6b920222d3db34643bdf5d128bc173d95bccc10a03b342bfd3a9bcc973aa63d2d3b49955bbdbb47663e09ebc63ede590dbd0969043c170ca1bb15a3e33995ca69ba5a8b133a6caa8ebbd1ca37bb57580bbb7225b8b9d5be9439845a73ba3c18693b74350bbbfbe3863c4a42a33c3bc12db96a8d9a3bc6aa52ba475a923ade9966bbd9a7f13bfa1788bdad6976bdee9018bc28d58c3b1c4d27bbe43755bb078f703cc3466fbdfd42a63e0d4ebf3e98088dbd4b70973c11c151bb5ed7133a5c9fc1ba4255413b560455bba6c167bb576de4385bb4343a8e5d89392dd28dbae7799c3b48461fbcbeb56c3c2787973c8d9df0bbe4a28c3b6c0600bbb9d6a83a9e700fbce19cd73cdceba5bd4376bdbcc0c407bd0b60983cc50e9cbb568a29ba1dfb093cb28e2cbda3ab8c3e6e4acf3ebbb68abdc903113c9c0f7fb5310b94b84c3948ba4194ce3beabc9bba32a66bbc4643f93b67aab6badb0bad3ac44d1d3a8328de3a677b8fbc0601143cf161af3cb0637e3ad0b4e6bb9ed927bb2650e6bad87be3bbf2862e3d921191bd9fc109bc7c852fbd8682d53c44c0e0ba1474943b4d3b6f3beeaf29bde233663e86f4d73e2ecd59bdd3bf603b736f78bb3f0be139df24ac3768b80c3a4aa2b3bb58ef67bb549babbb1daaa63ac68fc2b93bfdbfbad6be743bbcf58bbbb45aa33ca790dc3c9242ffb9cabb093c4421a6baaf37e83ab0128dbb8a2d5f3c7a589dbd982d83bd169c8ebcd944ca3be77a98bbfcd47ebbc1b0703c3d657abd55eba23e2809ca3e9b379cbd029cc63cf6c87fbb8564893addecbcb95f3ee03a92ec97ba9c6401bc6c84263aa6420dba4647ddb98f810fbb1be3413b21354fbc26dab93c9775b53cc28d57bc13ce9a3c9e8f7dbb2799143b3652bfba67bad43c1181ccbd4005dcbab7407bbdaa769b3ce17d03bce3fb77bb7d2f22bb6a7bb5bcde73753e7be5df3e346f8bbd1a953c3cb845ad3b08b2bdb8e31e8dba03a2663b5035b13ad4f762bc6359443cf1c764bb9760043ad0c24c3aa587503bf19772bc4abb8a3cbeb9b53b178e3dbc2525243cee92a6bb0dd5c2baa1308dbb9e82e03c876fa3bd5c12183db94a96bd6cc1f43c838f32bb9089d539cc7a223bfb672bbcd70d3a3ea1c9e33e74674bbde70412bcd8a2443b76e194393934ee394a296abaaf0949bb6865c0bb5ce9b6bbef350b3b4bc81eb9331be1ba4839af3b713fbfbb287aa63c3e28f83c155bc7394de6003c122926bbb51e883a5d04cbbb333b8c3c16b8a5bd549786bd6e06cabcb1a03a3cd97eadbb6365beba13c24c3c653c62bd2ee89a3e8d72d53ef066abbd99f3cd3caadf9fbb40f53e3a23e114bab854373be52a48bb348b2bbcb7500b3a03be153b0b0111bb515766baf1ca243b39f270bc97a50c3ddfdcad3c4ec289bc9f8ec33ccf06cebbad12e339252de33af43d813cf8dcd1bd34ce833cc94baebda3c2a53ccce741bb0d172cbb05d57ebb6104793b9a23373eb6e0f43e4b7169bd1c1ee23ab2277b3bfc24adb91a5663ba2f6c443b2362a7bae3eae4bbf9e31a3c1d3e50384a95cfba83cbb73ab898dd3a346326bc1ed3bf3c54b38ebc45bab5bc8032ba3c5f4de7bb6a02eaba2c24b2ba3eee0c3c748892bd83b9bc3d9e57c2bd068a983c8dcb8e3b1c79063a28f9a73b2ad3383cd59af93d2c79ea3e16eeeabc6e947fbcbd0902baba668e399ce54f3a80a8e1ba94d9a23ac3fa09bcfa2364bb17a7f43a5117023ad10e26bb3b95b73bfc6c14bc0d9b9c3c814dd73c425dda395786df3b4bf386bb70dbda3abd50c2bb0fda8b3c314997bd2e7e6abdd7fa07bd6b0f933c084cc3bbc3aabd38b840e93b33b521bd64e3883ed89ae03e55a0acbdcb22a33cff5562bb23d95e3a726dbabad3cc6e3bb33759bba0272ebc81a16d3b47f3913b2165acbb65bfefb90ca0533bf3996fbcb497123ddb517c3c0828c9bc2d52c83c15bdb8bb42dcbeb9ff861a3b2f77813bd608b1bd29bef93c78cabbbd924fb33c94f7e1b904652cbbe9772cb915b0ae3c9141fa3dc240023f63c051bd30a2c4bbae951c3b51455e39173c4fba910fc73a86719cbb1f7bfd3a686c893bd225813b9544b6bbdfe3a63886b87c3a10312abbfd6ae83cbcad00bdb932ffbc2337fa3ceb9150bbef2c123a65b0443afa04e3bbdbe196bdb1ad013ec0bac5bd5902803b1176823bfe3229bb079d243b2494ea3cd5ddbb3d548eeb3ecd91aebce69536bc2d55923aeaf78d3a7e3886b95a339ebbcab5703ab90183bc32021e3a81ed74bb00cae03af1941cbb8c65433cc74829bcac63e93c21c6f63c56709b3bd5b3ac3b25b291bba979c9badc846abb317fed3bf44889bdcf7292bd5d3ddabcddc4b63c90c08cbb386355b9b8278b3c44c81bbda168813ee387ec3edb03ddbd21e6043d39f081bc8f16493abb5bdab9d1f7d03af671ccbb8149a6bb15db973bc129a33b0138e6bb22cda6b7f862683be7482dbc0a5e003df64f733bea87e6bc7d9dc53cb73ed8bbbaf008bb807ec03bb93e00bc0c4c59bdab86373da6e0bebd1b55c23c222ec7babb4801bb5d42dc3a9123e43c56bf2f3df8d70b3f628e19bd473eefbb6d75433a20e6bd39751297ba9dacf13ae869d8bbc644f33be37ed73a0bb1223ce01b15bcc73ded399834613adadb063b679aa73caf1322bd6cfa47bdc1eae93c43a8103affdfe0b908a9daba25d741bc13f20bbdc5d1193e0078b1bdd60484bbf2c4223bcba927ba415dc23b92e6a43cf221fa3bc5bdfb3e24f6ec39dd92f3bb6ce113bad999b83949fee3bafae052ba170a2fb93bffcfb98c2bb63a16ad33bbd52fee39812bb3bac302f43b19d6a3bbe3a77439ef28163bea6ee9bbb395f33bf9d1c3ba923023bae97655bb2464633cbcaafc3ba79dc93ce738353cac2f69bbeff2e9b90e03233ad49cb1b9db26903bdd67423ea5a5843e2d2f1cbb0d80d939c7ef61394b45cf39936c26bb128412bbe21593bb283654bb518f3b3cfcaafebbaffd003a728d46ba7e31363c1f19b1bbb367c23a2aa2263c108fb4bcbe99313c4042ddba1151f3ba3af28dbbcf04743c2e3e5e3af8cf113efebde6ba238bc8bbeda9fdba87edc23a048d1a3b8677583c4dde963d5e12873ef0a6f43b37229fba69d0a93a5d114d38407b38bb4f1c563bc99e99bb2e89583c3ebfd63a2f11efbba8550138fa1897392eae4c3c45d252bc051e11bc1e71823ca22cfbbc57338f3c25bb08bb15faf5ba6ea30abc0335c43cc38b03bd8d53953e93c4193d4fa8f3bb28d6923a70d8963aa7915a3b1d6f33bb771f9e3ce5e1453e67e05abc8b01e439baaa61ba3559083910ed94bab15b063919871cbaff8b553a05205f3959f5aeba9bf99938e3fb6abafac63e3b83643cbb76184c3b3c126a3bb2bb42bbf6f8653b14b654ba6793313a478717bb8d73083c40eb8dbc2fd666bcb3f6093cac502ebb1c8325b9aed377ba0ee8733ba69eabbcc33a853ee629963eef07c4bc8d568e3bd52ef6b952d16d396479d7ba3e900dbb046f30bb4e0d99b9559d0d3b840c9dbbefbf8d3905f65dbaa94a013cb9f9f6bb4adf89bb574beb3b07485ebcd703013c3531afba8db284ba58d869bbfa91773ce957273b7fac453de656603c602813bc9ddf3dbac0e336397fe21d39622df1bb04183b3e045f8f3edf5301bc24235d39e5be063948ffd539108e3abbd1b2a1ba011720bcba477a3b38f5213cd0fc19bc49af4c39271aa0ba89b3453c627d21bc060454bc07fab73c95b286bcc268013cf4490cbb3700c6ba23adeabb5324c83c3d8f993bb949193e26b2663c84ab39bc5a5e2ebb0f86ce390464a43ba716cd3a7f98073e9370473e2cc1b33b786ddeba18e8773ac0a78f399f52c1bae9de203ab8031fbb25b0cf3a2a0406bb1227bdb93ade3ab8a66386ba4ad8853b5e429dbb9343073cca3ae13b31fad2babf831f3b7c22aeb88925f23a1529a1bb8382e63b52f318bd1bc008bd4cbef03a2b769dbafb10a4bab5ca26bba256003c506c17bdfe8f983ef8e3a53e06a124bd46faf03b305cadb93754d73972b9a1b8c98c0f3b649276bb07791a3b77e732bb566d77bb6bf49db9a80af7bafb733e3ad20b0dbc3e4d033b20f6003c90996abb1048f23bab71df3a02626f3b47e723ba77ad7f3c6d36f8bcef24a6bb36c24cbb2ca5cdbb60d375bb9a4796bba9beb93a612611bd2e28833ed8e9ab3e714a15bd1d05263c176a403b1334013a12993e3b90a60b3b875fb8bba60a20bb71c087b8466a30bc8ba504ba97e93abbcbb514bb090759bc3cc850bc11138a3cac8fc0bbbf80613cc0200d3bc709583b25efe03b6665bd3c6271dcbbbb20823df7ffdfbae5f798bceb2085bbbe68aabbe91816bc3373a4bc67f0423ec8ef943e73db13bc471b173ce58bb13b097fc03954deacbaa8b6a43a2a7695bb3612ab38c1bf3fbb77b7c139940cdfb8eb196dba6f43a13b228f88bb69fe553c4d0b773c3d1aceba697a5a3b0af58a3845375a3a848098bb627fb83b8acb60bd5a5f48bd4922dbbb3643183b6a6d04bba5a50fbbff3d4f3c3bb255bdb265a43e3577b33eb2af5fbd8fbf3e3c8911c8bab5b4ec39377384bac183b63b4b8a00bcbcce8d3bed32dabb83c1403a1e718cb916ecb7ba0ee5d63aa6ce0abc0536393bb661a83c5377a6bb4149983b57ae743a71c3443b5cf5a2bb246fab3c69565ebd50abb9bc04b49cbc81d48d3b580d8bbb2c4f35bb4c2bc53b216f3fbd5efd903e8e16ba3e3bf048bd707c2d3c763bb83a3a2dc739c2be523b87d5353c11d8e1bbe75f8bbb9b6921bc728abcbba9800f3b22e31bbb163b20bcde90b4bc7b0af9bbe689063dbdcf1e3cfa8c583c36d376bb8099793b8dda393ca55c2f3d3cdb1fbd6454c03b6a5c2bbda91428bcd754003a7fbe34bbacbb4ebc548b6cbd521e6a3e3648bb3ebd9092bc5f1fc03c341ec5b99e7f9d399fbd6eba0450e239b00eaabb69ec14bb98d01fbb20391eb9e12cc1375f87eeb996bb5c3b0b7150bac42a853cf8ffaa3ce0ccd9ba934eb83b3f534cbad04a023a749c47bb97cdb73bb7be88bd65c86ebdfda508bcba94453b911efebaca2a32bb8bd86c3c294970bde837a93e7048bb3e9ef288bdceab953c91d273bb8478ed39b00a6cba9867083bc562d7bb75dea73bd28205bc4e84863b330cffb8abbe88bad89d803b5fc86cbbdcbf573b29fef63cc8ed90bc6e471b3c768d58bbf210993a752b08bcbc0cbc3c13cfa5bd648777bcaf25f9bc744c5a3c30731dbba35827b8a7efdd3b99fb20bd0e5e923ef01cc43e41bc7abdff84063c298150babbc42b393bd4cd391c72823b5680babb8af21f3b244b3abc9e4a933b59dc133aa30617bab400b03853b904bc35fc3abc4794323d29548ebc9f58303ccf8cd1bb50e9353723e788bbf2d9223d4a239cbd8dd9893c6db541bd449b323c4b09723a0d3dfa3a19cd8fbb3a5e0abd2bfd723ec7eac53e758426bdb28ce83b0c21a1b9e0cb6f3976da633949037a39862cd3bb720b22bb02a4b7bb211dd33a6bc1eab9a50d8eba2a25533ba10920bb97599f3ceb40e23c06260abb14410b3cae7fdeba4ffea03a8df95abb7e903b3c0cfc9ebdeb2b81bd775b60bcd2e18f3bdacd53bbe1e56cbbd9c6723cc8a07dbd3096a73e53b2c43e0a0799bd338fc03c9d9f91bb08f14a3aa8f3193a0580efbaf42b0339f37be0ba0a1324bcfca1ea3bd93811bbd18ef8ba7a75743b3f59f7bb24130a3c250e2e3d8bdcd6bcb59b993c9ae080bb00969c3af21b8ebb1200f43cd9c8e1bdfe47873b3e9851bd0fe94a3c50eb49bb39d1aabafe0f60ba7001c8bc2cdf853ea51fd13ef21371bd59c8063ca260003bc4f2a239a4489ab960612ebb9aa6d53b2748a4bb717744bcb23b643c73307ebb587edfb912039d3ba803d1bb2af626bc4c09513d32063bbd7d11723cc58602bbbfd0e9b9e25995bb71bde53c1fd8d7bd6bb4903da97663bd0968003c5e53f13a2ce58fbaa159d3b8b9afc53a1cfb4e3e5ee4c73e2e4602bd58750abc1819083b5d87a4394c366a3a1c94d5bab5d97fbbad188abb43dcd1bb4692653b3ecc6bba4598d0ba6540913bdaf07bbb5f8ca23cd99f003d52ba34bb5767ff3b667920bb6338963ac4f0aebb99a3763ca092abbda5b881bd51eea2bcbfe01e3c4a0193bb498310bbd14b5d3cb1bd69bd27bca13e2638ce3ee9eba7bdb017c63c010b98bb9c3a793a3221fc3938e637bb1e46263bc3e9e5bb55d73bbc67993d3cba7abcbb1515bfba73608d3b3c2162bc4c83c23c551c393d3e4500bd8f2daf3c27a801bba52048b8387c6a39bc3fdc3c819a04becd3ee03cc6448cbd462a2e3c43db12bb444ff0badfe5cdbb28212eba97735a3e6e04e13e3e2650bd3c6f833bb0605b3b0c256b3999eb44b969af1fbbc7061a3c6a484abc702a64bcd7a2b73c26ace2bb3da318393c5c443be1f40bbcd328c73b3def3f3ddc3e83bd0e5a493c80fb233b60b82dbadd2b663a33991f3c105aeebd50560a3e06b16cbdf7cb9abb2a4d5a3b1ec5cebaf976023b1f82b93c84a1143ed233c53e1de0e7bb54ec1dbcbb6220ba1e5ff1394bf3793a61b01cbb9314663940e8e9bbe06261bb92ca3e3b83da20ba38d92cbbc0aca23bb596edbbff179d3c524ee23c883b6bbb4185e63b16c269bbe667043b553ba8bb26b1843ce06ca3bd050058bd765ce5bca2797d3cc55ea8bbb9c31cba6d94043ca72731bde297923ea9a8d63ed100a6bda75b9c3cd91e62bb6ca46d3af83896b8b12426bb336f173bff7c9abb40ae30bc0b9d673c50af07bc1c047fba2787b83bd6c591bcfeed073d96d10c3d926e18bd29ed9f3c0b5a67baaba6a0ba2ac5a93a3641993cb9cf02be5e83493da4cf92bd1b56663c12de51bac0e3aeba1ae9a0bbe8eaad3c36a0253eae20ef3e702b53bdec8256bbd02d1f3b2a63c0387e15c6b94a3c9bba4d88d93b085102bc880cb1bca6d5ce3c20261bbc0f488c3a0f80dd3a87a93fbc1883c23cbd3a0c3d6f8f6abd3c7c353c2b82c73bc5379eba6244ac3b79731d3bcc3405beb948293e93fd84bd44da41bc3b8b3c3b9fa500bb50663d3a9a97fe3c245cee3d560cc73eeead9e3b3ec1c7bb14caf2badfd810baff91573a31c993bbd7d5eebaa65a57bc15a56c39dbc12dbb2724633a4ca5a6bad1bf353cdb332ebca149ff3c5ecaf53c62e7b9ba7e70e63b75fa9dbb63aaabba011142bbdf65e13b463498bdd9b783bd57879fbc5cf7aa3c784640bb87993cbb7caea23ce13135bdffcb8e3ecd1ddf3e099bdbbdd157043dcef97abced9a873a8e10003b58478fbb1f4447ba6475623a3ec30ebcd4c23a3ccc2911bcad3d19bb5348093c41c2a0bc502a2a3dbc52ee3b0c7c19bd80e7bf3cae1988bbbd1b09bbd92b933bc351403b909fcbbda0089d3da92a99bdc081b83cc0bd33bbcb31b03ab50667bb849d043dfbfea53d5b78013f341046bd642a75bb327906bbe72d173a1b3b98baa8e62f3ba3e0d9bb0bff2e3b5b1a00bdf271f43c0e4b36bcd8e5393a5212e63a4d2011bc71f6543dee43c5bb339262bd1c15883b8e43e83b4dc6d0ba64714c3bde422fbc866de5bdf58d773eafdf5bbdaa9d4ebc73cb543a95f495baf4a39d3b03c9db3c27d4183d9c7bc43e2809883cfa3a2fbb0787d6bad818a53987bcdbba14da4eba264d7bb994681d3aa45fe23979a81dbbfc1bbf39ff019fba4dc8ea3bd71bbabb3434da3acd2d763b11cef9bb85a3ea3bda6ea6baba1b42bab9024bbbb0d2493c26e23c3c7177cd3c63eb273ca6a056bb21d707baa396093a1ba5b2385b1a9c3b543a4c3ef09e773e058182398fe6363ad15aa439dcac9e39ea2319bbac6b76bbe9eb37bbb86b333c0082d1bb457140bb437a8e398273dab932e2123cb37223bc2a29203b79d95e3d0480cfbc7d11043c0e9378ba3394d2baf8ad0abbe967293cdd4de4398db0fc3dd59f013bf57c09bcdf3f77baa38ce43a65aa8e3b2d91a03cf37fbe3d37c4533eb5bb9e3c1947433a26334d3a56521c37ee16b9bad5fd8ebae77d3cbc94e9463dfc7152bc25bb9fbbbde94db6bd8e8138e020093cb905d2ba800b0ebcecf74c3eb972a1bce2a1a8bbf19936ba12db77ba56ff3fbca3f3a63b0f6efdbcb3bf063edf72b13ca06191bc83e702bbeae1803b0a01363cc63c033c61f6753d65a8b23d8d67ca3c4f35ae3cb90a73bac4cee93880ceafbadbead6372db62cb91083823a7bb380b86043bdba59f59838682d54baf4be413bc01741bb2204513b98ce6c3b15d44fbb96e0603bc5e345ba103c1b3af65411bb0c45033c98ec79bcfda74bbc4049fc3b7e151dbb534826b881fb4abae54b663b84b5a7bc7661873eb5a9913ecc2cb7bcf38a833b27cd03bae2844539fb91e1bae9774fbbe5b99cbab2a32e3b0adb00bbca0d66bb99545d397d813bba6f16ce3b542211bc23530e392aa9543c451c5ebccaf8d23b2b5f83bad0775dbaad9855bb77cd233ce39d523c0b3d323d9595173c52d8e0bb364445babdae98387f01473aedd6e2bad690473e40c67f3e6dd8d9bafd95203a55242a399fecb039f41333bb6b53b3bb85b439bc2444013db47841bc19ebc3bb7aed433933477eba544ffb3be61311bc8520f1bb047da23d6812b9bc11468f3b7acd9ebaf39d29bbb2ece8bb0f587f3cd4d45f3c396cc03d3473013c5ebb35bcaa9059bb2dc1233b9b24da3b4fee8c3c7286093e9562233e9c43ab3ce78fbf3b71ac673af1e57739a23095ba236d01ba657ea4baff9fb13a13cd02bb1ae106bae47c1c382bad69bab837653b4e4e83bb0e19f03baa8ef23b64ee1fbb3b222d3b025466b9f858943a770381bb129cbf3b024410bd50d502bd6106ee3afa22d1ba318e2ebaa48af3bafc14f63bdcb016bd69419a3e3081a23ee75a1fbdd82ae93b95dd3cbaa71f98393bbeb5b687e41ebae06d02bb2e3a9d3bc93c9fbb4eac27bbc547b9b871139bbab6a8a73a2e55febb5b914f3a3bc2143ce352d8bbf8ede03b98e2223a742dfb3ab63c22b959891c3c69eaa0bc3434c0bad1ec4ebb20ae97bbd20fe9bab75921bbfd7eb23a0bd1febc5ff6863efa43a03ec21705bd30b5063ce180963ac337a739301e853a4942f1bad837dcbb275b373c4acd16bc32a0c4bbfdf087b9048fa7bab321e539678c3fbcfc662abcf659bf3c8a965dbc0854233c82da973aca5ca73ae581113b26cf283cfb7a0c3c08eb6b3d4f5de2bb9b1a44bc8b8f06bbf45ef8bad1628dbb149218bc8786513edfda853e0fe3a2bba449d13befe9223b6e0b8539d93d91ba024675399a3482bb25f78b391f5354bb182fc239c52c5cb8306622baad08963b8a7d2fbb9ed2433c1299733cd0ed10bb13e5873b00fb8fb95b13ce39261064bb98b3323b874f56bdefad42bd5e8eadbb8ecf943ae93cbdba3957fbba392d413cc64750bd5b61a63e3791af3e7d735abdb9e9383c1be9c9baf4dc9a39e5a662bae6df773bd9de1ebc7cee423cf4b342bcce0c0b3b53678c36657e6bbab4a4e13a2bf7a5bb872166ba52ecb13cbc6826bc0dc7d13b54372cb713d7ea3a2d7559bb27a53c3c30bd32bd2d87a2bc5bf461bc7391d63a6d3506bbd9d0d8baecc69c3bcba025bd9291943ef602af3e12fb37bda1cd173c91c92e397439a6394716ad3ac5399f3bd25f39bc7f5c8b3c8ec997bc08d0e9ba64875439160eaeba322b91bba9811ebc8f194cbc1071de3c48bc0abcc7796b3cc85a8d390b761f3bcda2a33b98ba9f3c88fdcdbc41f99e3c3645ccbc0a0a03bc43c430bbaabc17bbec1ec0bb189a16bdb0df7c3e77e9a53efbe3d9bcf4e7823c5ebdc33a5a6b343900567cba43382e39f41ac6bb676605bb878b34bbf443d7b9e3babe37d83db3b9d18f633ba9dbc639bc26883c0211ab3c374eaaba54adba3b96f051baca16b439401a04bb9b74583b251486bde8ba6ebd8cdab9bb80bff13ab3428ebad5ce43bbdc786b3cd5c86fbd669fab3e955ab73e8f2d85bdb0388a3c044674bb91ac5b39311e12ba4809363b57fd5cbc24e2933c1d6c8bbc05e6b93b2296b938b21234ba3dc3053b87ef053bc29d75bbfdaf0b3daf5fa0bc154b1a3c244c1dbb718d8c3a4069c8bb0f7f6c3ca3b18ebde8beaebccbc2a2bc0300d73b70e187bac52e0eb9184ec23b56ae1fbd8968993e8958b83e1f5e61bdd54a163c24ced2baf42d1d392a2f003a0646603b688fc8bc85fc363df4312fbd5737513c171615ba612022bac2f195bac31bba3b0b53d6bcee36543d7682debc1d0e513c433295baa6b14b3a133062bb9330c43ce3e17cbd6425423c6149c8bc3eea9ebaa611aaba330da9395d0cadbbdf83a9bc5c33823e2aa9b13e0f1a10bdbb98cf3b64a08c3ad62eb9b776d132bab072e03a687909bc39fe47bb73fd5cbb31194f3a2a98e9b952511dba602f3d3bd8389eba551ba13c2f2dd83c9b671cbb3211da3b4c95cfba0e19983ad1f329bbbd401e3c806699bd924384bdeb80c9bbb5d62e3b6a44acba0e5884bbae627d3ce09080bd73a8ab3e597cbe3e5ff393bd1b03ab3ca58aa0bb7ac8b1398d645e3a085d82baa40e08bc011f743c4abaa5bc522b1a3c8401e3bab6f7ceba1b24e83af67d323bde51b6bbb5bd3c3de6b4cbbcebc34d3ce3ad20bb380dfe3aa936d4bb0d37cb3c1017c4bdfe944ebc2d0cf8bc8971103cacd704bb83bf6dba11c3343b6c6708bdfdee933e1e4bc33ee03d73bd43751a3c987b96b9269a86395a76973a7e8cbabb097e3bbc6ddf513d2b8286bd463ee83c1fc78ebb0e1325ba60eaeb3a655c003c958c38bdc2c2a73d7ede0fbdf10a943b7ff1053b0c022ab9c7ce1abb9d81f33c7a9ec4bd54d4073d4671c1bc23edfbbbeaa8eb3a53ac0dbafeee92bb5ac33f3a0e4d683e300db53ec3729cbc14ae6ebb4d67173a2895ab386fa4993a7539e1ba794fa5bb70da1ebbab31d0bbb193693b6e1447baf879b5ba41f2743b63bb32bbd1e1a63c7d67f13c1dee6fbb0ce4dc3b772015bbef405f3a3d3d41bbb3a0303cc15da7bd69fb83bd8ea455bc98cbd03bf3e338bb9dba4fbb51e2733c06977bbdc0faa93e7f33c53e46679ebd54deb93c6bcd96bbe66aceb80cdc1e3b4c03c9bb05810fbb9a02383c2c9cd4bc8ce7603c1acd8fbbacb18fba36def93ab5d68039fa05073bcd085d3dd695d1bc3815883c822710bbb90d363a6f0585bb5b53fb3c4a2e00bec386b93be10e40bdc981f23bc5e71bbba5c19cb8fb6a9fbb0b0492bc89a2873ed3f3cd3e110b66bdda92243c4f65a53a54b1173ac57aa73a834b4bbc5ed32c3c86492a3d2fdaa6bd75a8183d9e51cfbb82aa3bba35f32c3b0ad33f3b93da4ebdaeead43de59907bdd85d8fbb4787943b46e4f4b921dd663be459d63c5f6305be5ef2a13d31afcbbc489c86bcdfd4203b6b68fbbadd8477bb66b98f3ce87d413e04dfb03e0cb62f3b771990bbb5aa14b9928702398767523a870918bb5552bfba7d36a7bb18a281bb40e3723b7d72dbba1deed3ba3ec9793b647e91bbfdad9d3cf091e13cee62a3bb2482ba3bc5bf00bb9ab7a53a94b021bb6926283c0ad4a1bd734461bdfade9cbcafc6343c487285bb00fed3ba3c2e183cc14f48bd733f9f3effd6c93e16ae9abd70f9953ce71648bbcbb79fb9a206723b272c28bc5cf16c3ba9221c3c7892d7bcdc808a3c4a92eabbb129a9bac003613bd7ce45bba610263c899c353de5e0c9bc96126d3c6078d2ba56ed003a89f495bbfc5ef03cfe560bbe4a67d93c091b5abddfc6503ce1f256bb5d71223a5bd6b7bb28a01e3aacb26e3e2dacd83ec1fa81bd9da3d43b763ed33aa0bf383a796ddf39570983bc1d38c43cf603e33cf26dafbd8d8b333d54d619bc73a7b3386e8da73b33a9a2391f9426bddcb2e23d5615a7bc66d650bc933c013ca55befba8bd77a3b7a69d23c212728be92a4cd3d009019bd0e1678bca4c69f3a3d2822bb930a3ebb60aad73cbaed2d3e1ce8b73e8d47b73bad9591bbac2b073a4d5a94b950d9943ae7eb39bb658dd7bb5f2c05bc7d8e58bbdb604239f689feb9f3738dbaa23d233c55f71ebc126f073d863ff13c930c26bbd529063c099009bb8d0b34bbc3a68aba03f1f03b89439fbdd1d284bd8c2457bc86a3693cebb6c8bb4008a6bb42b3ce3c422a73bd9495a03e99d3ce3ee7d4ccbd4ebf063d285847bce43eb8bae637c63be9b531bcd333403b1b6a243c9e3fccbc0018893c385d09bc291084bacea6e73bc5df50bc41c3e03c9fced93b9dd474bcbd6b953cb158bebb988b2e39edab25bbdd69833c82cbdebdf578883de93186bdd072d93c8d8dd6bbcfce8a39a63ec53af2a5203c39ac223ece41e93e0f228fbd4d11d03b0d5a68bb4e7a2c3ae56eba3a6be144bc0758df3c51e2063c80b4b2bd17af5d3ddeb442bcd2a8d0b954d1c33bf34b65bc9dbd053be958b03d64903abc55f4b4bc832fd43b7115c5ba2a89823bbcd4943c1b873fbea8b7473eb0cc1cbd0c231fbca2b0073bc9d338bb3e765cb92bc8133ddb5ab93d52e6b83ef655853b45a4b3bbebac403aa7059639ee63e8ba667757ba1372d339f07f823a65381eba3e3b09bb3521af3975bd9eba8b51e73b49afd9bbfa94643b112d8c3b0516f7bb12a8e93b93c49fba91e613baf61752bb4578393cf866833cceb3af3cd90d303c302351bbf8c022bac2e3e239f2f8123a7003993bbf52573edd3d673e792e383b305e883a8cfdb539125c7939ca5714bbfeaca5bb3047833b71da823c85b11bbc5b5efbba0340743956fddbb9bf84f03b109a2cbcaa13f93b7966263d44d58bbc9ac7bc3b9f9d40b985eaceba58f96cbbaf914d3cc9559b3c18348a3d7943123c0782e2bbce3f93ba6cd5f03a172c7b3b4480ba3c57fd0b3ee4cc373ebab7b53cdd4c1c3b9973a73a4d67ed38ee0400bb5f5035bc22bbd6bb3364b93da07fb9bb70e4fabb454be637f412033a9e3a2f3c2388cdbc8400b8ba1e4c0e3e5cdd87bcca63ebbbad6455bad2c2f8b9ca56b8b7a48bd23b4c963e3a94aad43d081255bb5d985abc94db76bab1f3263b968b6c3c953e4f3d4b93203d711d983d488c633d64504a3c5f19a03ae553d538ff1ea7ba1e8c5eb91253053a879d353a1f7eb0b8c917b5ba60b5c238b06c54ba9cce453bb2b64dbb6294593b662b6d3b35ae4abb1fba4d3bc2f855babff16a392dc904bb049ef53b9ec257bcdf9d4cbc5abdf53b2d6a17bb8c2f9a39f5e514baf176673b4a92a6bc69ff893ebea28d3ead7fadbce9a0813befde48baec001c3986c70ebbee6887bb991bec3addf08a3b0d4f89bbe48c2dbbab02263993f710ba74d0b33bc72329bc80fac93bb033423ce0a642bc4626b33bb4161aba319d43ba349570bb9d87cc3b1507bf3c0d27093d1516b93bfd979cbb4eb15aba0cb0b5370e4ebb3ad342013b676a563e16db673e5092ec3a3015bc3aa45217385a401439128298bbf53424bc530c1e3cec3e213d176359bc4ad5cdbb0642e238f474b8b920fc803bc3bd43bc675dfb3bd0d1363df6987abc71270c3b36fa44baa272a7ba843decbb3223b33bf8babf3c6667483d10a9a73b3395f1bb29a5dfba411a9d3a14ba0d3ccc92ea3c6aa2193e8cd1243e2df8f13c2b6c223c20622c3adc5c2139c2b95dba2162a6ba05a3a9b933d7ac3ad4221bbb211122ba763fe338792722baa8714c3b6faa75bb45e6ef3b1039f73b2ce04fbb1202463b23aaf4b975950a3ac4c230bb4ac7813ba02206bd9d7502bd8b9f283bf2c306bbac2e4038ae53b3ba1cf0e03bb96116bd05449c3ecb299f3e8ea819bd20bde23bcecd99bafbee113966e5c8b94a7494bb9bd8ff3ad6bbb53b06b4cdbb02586dba68b4683880e6efb98cde403be79afbbbc54e7d3b2125003c9a9e06bca163953bcc9cdeb886f5ea39c5fb71badd36393b26b313bc3b4c33bb4e618cba807c00bb511eccb9a22c61ba83485d3b3d83e2bc4e1a8c3e8c55943ebeadebbc3f97ae3b1d3d95b9a0c5b738f739a2ba35700fbc48c6e73a8698753c2c8050bc404a0ebb4ff643380d7284b815da5e3bcb923fbcb019843bd82d973cba347cbcf1688f3bc51dda382a702cb970d901bb3d5839bb3db8e53c0ab93b3d447af6bb848c83bb9476abb92a721139f0e5c73aa66adeba5ed15b3e388e6d3e7aca15bb8eab423b00fbe5393e3338390a977fba7f3f7bba2a0833bbe0ff7bba152a18bbed4abcb97968de374506cbb9b0e4993b32090dbbdce94e3c66cc673c8b7805bb9b7d923bc6367eb982482ab9eb5906bbfe6e6db9937c4bbd6cff44bd4da355bbc2babeb9625f78ba7a3cfbba4b04343cc1074ebde788a83e45d3ab3e14b751bd37da303c9306b3ba07b0443964df0439a97606bb53dd5dbbf42b153ce59621bce235ea3afb1045394d6a12ba490f3f3bf7fab9bb60a7803b73b16a3cca821dbc49399a3bdc3ffbb9a314eb3941e6a8babb8d993a87f4f1bc6c54b0bcec29bcbbf1589b39f881a5b9eeb54cba3a9ca63ba5a415bdd6b6993e2f12a23e74c921bd8491d73b24f248badb03c0388731c1b83006d1bb010523bb116da93cb8e59abcd528163bbadd2939cfef12b98196ef3addbee2bb37cab438c4e08b3ce86a76bc5c2eaa3b835f6bb878432938b0a1d7b7596c4dbb692124ba9950863cdd9c31bcbba197b8dc99aab9dce7e0b9d4285c3bb129afbc0aa5843e8f158f3ef931c3bc46cdb13be866fab9800cc33675a9c4bab672c53915afd0bb935580bb124d96babdc685ba1af46ab9d7ca17b99d36723bf49b813aa1a18f3cfcae9e3cb8ef8f39ef2e933ba53a49b93e543339ebe042baea27f13aa78d7fbde6af72bda8cdd5ba9f960e3a193db9b94d685bbb215f663cc90573bda22fae3e4775b23e070c7ebd8e5b793ce87675bbbb1aa639f511a3b99ff3083a2fe5efbbb1ce383cab7a2fbcffb92b3bbec1d1398bf347ba11b6013b5458c7ba8b91683bea9cae3c1e5541bcb29bbf3bd1b6afba6947263ab0cc94bac2bbd73a8d6149bd6d0e08bdd4d514bcc67a323bc1a836b95b9184ba0169de3b4c9b2cbdadc0a13ea0f3ab3e5cce46bddda1093c4506ccbaf1313838f23233b9ec376c3b67a5d4bc418d493d78f01bbd5f20123cef0c833988fa5ab8f6abf3ba8b815c3b460664bc7e86063d2ca6b2bcc0c9053c7ab196b94cc9ae37b581adbad704343b51edd0bc14bed43a1f6156bc24b39db8906517ba275123b9ea2a7539e1f0a1bc77728b3eee849a3e5611e1bc277abb3b635554ba44b92abad6737ebb934a283cefe65bbc1c2a15bc3cbffa3b085382bb218bffb949437aba28757dba3790abb9a0f3883c5e49903c4f8f60b89fa8583abe81deba34be713be0aacc3af891873cbc4386bded387dbde68e3d3c4a594a3beef83f3b6967d0bb48ae443ccf1082bd92faac3e0d72b33e2e0889bd239a523cc6a3c3bb2b93e139b7bbb1b89b1d103b21ab00bc544a173cd9f816bca3fd643b0d7989398a26dabaa4efa5bac08098ba347eb8395376ce3c249c61bc51fa533b90c81dbb4665243bbaeca43a798f573c150579bd4a9e08bdc393ebbb3578053cc9fc3e3a10120fbb379e9f3b7d2342bd4577a13eebe5b23e4dcb6abdcb16053c704d17bb17de33b95360403a9910ff3b608f2dbd3503993d8dda79bd31429b3c3ac2acba51a2ce38ab5e9cbb81f5873c4b9813bd4ce0693df47be5bc7bd51b3c93b5bb390e59d938087269bb94694d3c76925dbd5bd2fc3a01cba1bc7323ccba75f7eeb9812fcf3896284fbb014a5fbc404c8a3ef0e8a43ec727dbbcfd90923b10850fba6ff2c0394cda93b983a0023b30c7e9bb497690bbb92207ba6dbc1f3aed2feeb7e83b0fbb1364083b78b664bb6ccbaf3c5930c73c6dc672bb6751583b9ca824bbeb70c63a5a7b873a1a81023c386899bd13508abd1c3e2abab10a8f3b14ee8139412391bbb4877a3c964986bdc33fb13ecbf3ba3e1aec92bd5d51933cc2369cbbf530bab8b973c93a42ee1cbb7f82afbb193bd23bf2fd4ebc08eace3bddffc7baf3d577bac1204839fabbb33988b4f53be9800d3dfa2764bc6168e33b30d007bbc223a13a300763bafe59633cc0bca9bdd71d0abdb29e8fbcfc2bf83b709f6abaa18aa0bacb60613ba34a2abd0ea9a03e7e16ba3e2f7c70bd25d9303c7ef4d0ba4a1435ba3e491c3b44f122b9782921bda275b43d1300a5bd2715f83cfb4eb0bb9e39f8399283d4bbd63f063db9ce6bbd575fa03d178cfbbc4844023ca068b53a70a64839f0a4a9bb5910c43cc5efcfbd5d4bfa3c65fee1bc31b086bbe27c4a3a2377203a447a04bc8300763ae911863e6b93a93e55dde9bc0fab803bf44193396494dbb9c5b2993ad65de5baa03563bbc3283ebbea3f59bbc57a0a3b07907bbafa379aba620c633bcaeb74bbbda6ac3ccbccc53c861f89bb3002933b79d5b3ba1def87b98280ed3a2aa9e43a589594bdcd2880bdfbfb0ebcb66fd23b793a1fbbe70130bb50eb423c0aaa6abd008aad3ea399bb3e911a89bd005b7d3c50291dbbc2ee3cba55cd343be458d9bba57315ba3420883bf0785dbcecc4153ca3cc80bb9a39cdb9107a2b3bf0feca3993b4403c4aab133d8b2a72bc4fb9163c1e7fd4ba5fc7c53959664dbbbd91303c7593c0bd71d0e6bc4ac9d7bc7d081d3cb6f876bb98266db93390263b80eff9bc1e8f9b3ebed7bf3e2f8876bd35a9363cc639fbb9be88c4b93ef3983a2c1dd6bb9d47bcbc129b8c3dff8aa6bdb074203d37d233bc98fba13afbb49ebbb483233d2f6e81bd07f1ca3d01cec7bc651f083bd819353bd14e963a5b7153bcb7f6113d6a3414be3bfc483deee148bd518f2e3b35c9083909a96e3a7f46dcbb0388ed3bf1fb7f3e9490b63e73f40bbd3d4e5e3b9851b13a533530bbba36023b34ae85bb3ef5ecbba79baebbba8a94bab223263a6b2db9ba1866b43ad5ebab3b6f52f6bba699023d3fbceb3cd89a16bc49310b3c2cb459bac20ec0bb97bf333b505f2e3c9a1aacbd20e598bd75e2273b8de9a43b02247dbb8a14debb6206fe3c7364a4bd8a48b53e6cd8c13e1ae2babdc462093d20a62bbcee3035bb849c0f3c47012ebc3c76993b6fa4e43a84c439bcd5dd4f3cfaf38bbb782f62bbe013d03b5aa30fbc0154803c8058a23c03b58cbc1650143c983b46bbcc670abb24d1913b0f5d1a39366798bd3fcb1ebbc21d00bd1c26a13ca51bf9bb608455bb239a2f3c714b0cbd66b8943e5194bc3ea12090bd3f3eb73ccdeafebbb8be803af94febbb81ef9e3bc5d4fc3a547c1b3ce24f29bd35fe283d50637cbc2563003ba23b013abaefc63ba98645bd2704d43d5c2a2bbd8b0f1e3bd2832bbb8cf3d83a6235eabb6504453d224944be783b2d3e74bac6bdb88e7c3ccfac30bb76ce7a3bb55528bc8760143d95472b3ec308c13eb585f6bcdf33693b5b2491393521af393f3b09bb65381ebaf17f823a1072d339667757baee63e8baa705963992c49fba12a8e93b0416f7bb112d8c3bfb94643b49afd9bb8b51e73b75bd9ebaf9c022ba302351bbd90d303cceb3af3cf866833c4678393cf61752bb91e613ba8cfdb539305e883a792e383bdd3d673ebf52573e7003993bf2f8123ac3e3e239044074395c5efbba85b11bbc71da823c3147833bfeaca5bbcb5714bb115c7939a09d40b99ac7bc3b44d58bbc7a66263da913f93b109a2cbcbf84f03b54fddbb9ce3f93ba0682e2bb7943123c18348a3dc9559b3caf914d3c58f96cbb85eaceba9973a73add4c1c3bbab7b53ce4cc373e57fd0b3e4480ba3c162c7b3b6cd5f03a414be6376fe4fabba07fb9bb3364b93d20bbd6bb605035bcee0400bb4b67ed38af6455bac963ebbb5cdd87bc1e4c0e3e7c00b8ba2588cdbc9f3a2f3cf412033a94db76ba5d985abc071255bb94aad43d56963e3a888bd23b5f57b8b7cbc2f8b96119a03a62504a3c4a8c633d711d983d4b93203d983e4f3d978b6c3cb0f3263b60b5c238c917b5ba1c7eb0b8879d353a1253053a1e8c5eb9ff1ea7bae553d538c2f855ba1fba4d3b35ae4abb662b6d3b6294593bb2b64dbb9cce453bb06c54ba8c2f9a392d6a17bb5abdf53bdf9d4cbc9ec257bc049ef53b2dc904bbbff16a39efde48bae9a0813bad7fadbcbea28d3e69ff893e4a92a6bcf176673bf5e514baac022639e48c2dbb0d4f89bbddf08a3b991bec3aee6887bb86c70ebbec001c39b4161aba4626b33be0a642bcb033423c80fac93bc72329bc74d0b33b93f710ba4db15abafd979cbb1516b93b0d27093d1507bf3c9d87cc3b349570bb319d43ba9d5217383015bc3a5192ec3a16db673e676a563ed342013b0e4ebb3a0cb0b5370542e2384ad5cdbb176359bcec3e213d530c1e3cf53424bc128298bb5a40143936fa44ba72270c3bf6987abcd0d1363d675dfb3bc3bd43bc20fc803bf374b8b92aa5dfba3495f1bb10a9a73b6667483df8babf3c3223b33b843decbba272a7ba20622c3a2b6c223c2df8f13c8cd1243e6aa2193ecc92ea3c14ba0d3c411a9d3a773fe338211122bad4221bbb33d7ac3a04a3a9b92162a6bac2b95dbadc5c213923aaf4b91202463b2ce04fbb1039f73b45e6ef3b6faa75bba8714c3b792722baab2e4038f2c306bb8b9f283b9d7502bda02206bd4ac7813bc4c230bb75950a3acecd99ba20bde23b8ea819bdcb299f3e05449c3eb96116bd1cf0e03bae53b3ba68b4683802586dba06b4cdbbd6bbb53b9bd8ff3a4a7494bb66e5c8b9fbee1139cb9cdeb8a163953b9a9e06bc2125003cc54e7d3be79afbbb8cde403b80e6efb9511eccb9807c00bb4e618cba3b4c33bb26b313bcdd36393bc6fb71ba86f5ea391d3d95b93f97ae3bbeadebbc8c55943e4e1a8c3e3d83e2bc83485d3ba22c61ba50f64338404a0ebb2c8050bc8698753c49c6e73a35700fbcf639a2baa0c5b738c41dda38f1688f3bba347cbcd82d973cb019843bcb923fbc15da5e3b0d7284b89576abb9848c83bb447af6bb0ab93b3d3db8e53c3d5839bb70d901bb2a702cb901fbe5398eab423b7aca15bb388e6d3e5ed15b3ea66adebaefe5c73a2a721139ea66de37e949bcb91f2a18bbafff7bba190833bbc53f7bba0c967fbaf333383995367eb9837d923b717805bb6ecc673ccbe94e3c3a090dbba3e4993bbe07cbb9b75f78ba06babeb973a355bb6fff44bd907c4bbd116b6db94a5a06bb7a482ab97206b3ba43da303c14b751bd45d3ab3ee788a83ebe074ebd5004343c3a3cfbbafb104539e135ea3ae59621bcf42b153c53dd5dbba97606bb64df043907b04439dc3ffbb949399a3bca821dbc73b16a3c60a7803bf7fab9bb490f3f3b4d6a12baf881a5b9f1589b39ec29bcbb6c54b0bc87f4f1bcbb8d993a41e6a8baa314eb3924f248ba8491d73b74c921bd2f12a23ed6b6993ea5a415bd3a9ca63beeb54cbabadd2939d528163bb8e59abc116da93c010523bb3006d1bb8631c1b8db03c038835f6bb85c2eaa3be86a76bcc4e08b3c36cab438ddbee2bb8196ef3acfef12b9dc99aab9bba197b8dd9c31bc9950863c692124ba596c4dbbaca1d7b778432938e866fab946cdb13bf931c3bc8f158f3e0aa5843eb129afbcd4285c3bdce7e0b91af46ab9bdc685ba124d96ba935580bb15afd0bbb672c53975a9c4ba800cc336a53a49b9ef2e933bb8ef8f39fcae9e3ca1a18f3cf49b813a9d36723bd7ca17b9193db9b99f960e3aa8cdd5bae6af72bda78d7fbdea27f13aebe042ba3e543339e87675bb8e5b793c070c7ebd4775b23ea22fae3ec90573bd215f663c4d685bbbbec1d139ffb92b3bab7a2fbcb1ce383c2fe5efbb9ff3083af511a3b9bb1aa639d1b6afbab29bbf3b1e5541bcea9cae3c8b91683b5458c7ba11b6013b8bf347bac1a836b9c67a323bd4d514bc6d0e08bd8d6149bdc2bbd73ab0cc94ba6947263a4506ccbadda1093c5cce46bda0f3ab3eadc0a13e4c9b2cbd0169de3b5b9184baef0c83395f20123c78f01bbd418d493d67a5d4bcec376c3bf23233b9f13138387ab196b9c0c9053c2ca6b2bc7e86063d460664bc8b815c3bf6abf3ba88fa5ab8906517ba23b39db81f6156bc14bed43a51edd0bcd704343bb581adba4dc9ae37635554ba277abb3b5611e1bcee849a3e77728b3ee1f0a1bcea2a7539275123b9218bffb9085382bb3cbffa3b1c2a15bcefe65bbc934a283cd6737ebb44b92ababe81deba9fa8583a4f8f60b85e49903ca0f3883c3790abb928757dba49437abaeef83f3b4a594a3be68e3d3ced387dbdbc4386bdf891873ce0aacc3a34be713bc6a3c3bb239a523c2e0889bd0d72b33e92faac3ecf1082bd48ae443c6967d0bb0d798939a3fd643bd9f816bc544a173c21ab00bc9b1d103bb7bbb1b82b93e13990c81dbb51fa533b249c61bc5376ce3c347eb839c08098baa4efa5ba8a26dabac9fc3e3a3578053cc393ebbb4a9e08bd150579bd798f573cbaeca43a4665243b704d17bbcb16053c4dcb6abdebe5b23e4577a13e7d2342bd379e9f3b10120fbb3ac2acba31429b3c8dda79bd3503993d608f2dbd9910ff3b5360403a17de33b993b5bb397bd51b3cf47be5bc4ce0693d4b9813bd81f5873cab5e9cbb51a2ce3875f7eeb97323ccba01cba1bc5bd2fc3a76925dbd94694d3c087269bb0e59d93810850fbafd90923bc727dbbcf0e8a43e404c8a3e014a5fbc96284fbb812fcf38ed2feeb76dbc1f3ab92207ba497690bb30c7e9bb83a0023b4cda93b96ff2c0399ca824bb6751583b6dc672bb5930c73c6ccbaf3c78b664bb1364083be83b0fbb14ee8139b10a8f3b1c3e2aba13508abd386899bd1a81023c5a7b873aeb70c63ac2369cbb5d51933c1aec92bdcbf3ba3ec33fb13e964986bdb4877a3c412391bbddffc7ba08eace3bf2fd4ebc193bd23b7f82afbb42ee1cbbb973c93af530bab830d007bb6168e33bfa2764bce9800d3d88b4f53bfabbb339c1204839f3d577ba709f6abafc2bf83bb29e8fbcd71d0abdc0bca9bdfe59633c300763bac223a13a7ef4d0ba25d9303c2f7c70bd7e16ba3e0ea9a03ea34a2abdcb60613ba18aa0bafb4eb0bb2715f83c1300a5bda275b43d782921bd44f122b93e491c3b4a1435baa068b53a4844023c178cfbbc575fa03db9ce6bbdd63f063d9283d4bb9e39f839e27c4a3a31b086bb65fee1bc5d4bfa3cc5efcfbd5910c43cf0a4a9bb70a64839f44193390fab803b55dde9bc6b93a93ee911863e8300763a447a04bc2377203a07907bbac57a0a3bea3f59bbc3283ebba03563bbd65de5bac5b2993a6494dbb979d5b3ba3002933b861f89bbcbccc53cbda6ac3ccaeb74bb620c633bfa379aba793a1fbbb66fd23bfbfb0ebccd2880bd589594bd2aa9e43a8280ed3a1def87b950291dbb005b7d3c911a89bda399bb3e008aad3e0aaa6abd50eb423ce70130bba3cc80bbecc4153cf0785dbc3420883ba57315bae458d9bb55cd343bc2ee3cba1e7fd4ba4fb9163c8b2a72bc4aab133d93b4403cf0feca39107a2b3b9a39cdb9b6f876bb7d081d3c4ac9d7bc71d0e6bc7593c0bdbd91303c59664dbb5fc7c539c639fbb935a9363c2f8876bdbed7bf3e1e8f9b3e80eff9bc3390263b98266db937d233bcb074203dff8aa6bd129b8c3d9d47bcbc2c1dd6bb3ef3983abe88c4b9d819353b651f083b01cec7bc07f1ca3d2f6e81bdb483233dfbb49ebb98fba13a35c90839518f2e3beee148bd3bfc483d6a3414beb7f6113d5b7153bcd14e963a9851b13a3d4e5e3b73f40bbd9490b63ef1fb7f3e0388ed3b7f46dcbb09a96e3a6b2db9bab223263aba8a94baa79baebb3ef5ecbb34ae85bbba36023b533530bb2cb459ba49310b3cd89a16bc3fbceb3ca699023d6f52f6bbd5ebab3b1866b43a02247dbb8de9a43b75e2273b20e598bd9a1aacbd505f2e3c97bf333bc20ec0bb20a62bbcc462093d1ae2babd6cd8c13e8a48b53e7364a4bd6206fe3c8a14debbfaf38bbbd5dd4f3c84c439bc6fa4e43a3c76993b47012ebc849c0f3cee3035bb983b46bb1650143c03b58cbc8058a23c0154803c5aa30fbce013d03b782f62bba51bf9bb1c26a13cc21d00bd3fcb1ebb366798bd0f5d1a3924d1913bcc670abbcdeafebb3f3eb73ca12090bd5194bc3e66b8943e714b0cbd239a2f3c608455bb50637cbc35fe283de24f29bd547c1b3cc5d4fc3a81ef9e3bf94febbbb8be803ad2832bbb8b0f1e3b5c2a2bbd2704d43da98645bdbaefc63ba23b013a2563003bcfac30bbb88e7c3c74bac6bd783b2d3e224944be6504453d6235eabb8cf3d83a5b249139df33693bb585f6bcc308c13e95472b3e8760143db55528bc76ce7a3bfc1bbf3979a81dbba25fe23994681d3a224d7bb913da4eba87bcdbbad818a539db6ea6ba85a3ea3b11cef9bbcd2d763b3434da3ad71bbabb4dc8ea3bff019fba21d707baa6a056bb64eb273c7177cd3c26e23c3cb0d2493cb8024bbbbb1b42bad55aa4398ee6363a00818239f09e773e543a4c3e5b1a9c3b07a5b238a296093a447a8e39457140bb0082d1bbb86b333ce9eb37bbac6b76bbea2319bbdcac9e390e9378ba7d11043c0480cfbc79d95e3d2a29203bb47223bc32e2123c7f73dab9dd3f77baf57c09bcd49f013b8db0fc3dde4de439e967293cf8ad0abb3394d2ba25334d3a1847433ab5bb9e3c37c4533ef37fbe3d2d91a03c65aa8e3ba28ce43a2eeb4db622bb9fbbfb7152bc94e9463de27d3cbc09fe8ebaeb16b9baff511c37f09936badaa1a8bbba72a1bcecf74c3e7e0b0ebc0f06d2bae220093c958e813883e702bb9f6191bce072b13cb4bf063e106efdbc68f3a63b51ff3fbc11db77babb0a73ba4d35ae3c8e67ca3c65a8b23d60f6753de23c033c0e01363ce9e1803b59f598386043bdba79b380b81083823a2db62cb9daead63780ceafbac4cee938c5e345ba96e0603b15d44fbb98ce6c3b2204513bc01741bbf4be413b682d54ba564826b87e151dbb4049fc3bfda74bbc98ec79bc0c45033cf65411bb0f3c1b3a27cd03baf38a833bcc2cb7bcb5a9913e7661873e84b5a7bce54b663b81fb4aba99545d39ca0d66bb0bdb00bbb2a32e3be4b99cbaea774fbbfb91e1bae28445392c5f83bacaf8d23b451c5ebc2aa9543c1a530e39542211bc6f16ce3b7d813bba374445ba52d8e0bb9595173c0b3d323de39d523c77cd233cae9855bbcf775dba55242a390096203a6dd8d9ba40c67f3ed690473eedd6e2ba7d01473acbae983845ed433931ebc3bbb77841bc2444013d89b439bc6a53b3bbf41333bbabecb03972cd9eba21468f3b6512b9bc057da23d7720f1bbed1311bc494ffb3b68477ebaab9059bb59bb35bc2673013c386cc03ddbd45f3c1a587f3c99ece8bbdc9d29bb4cac673aee8fbf3b9d43ab3c9562233e7286093e4fee8c3c7724da3b35c1233be47c1c381ae106ba13cd02bbff9fb13a657ea4ba236d01baa23095baf1e57739025466b93b222d3b64ee1fbbaa8ef23b0e19f03b4e4e83bbb837653b2bad69ba318e2ebafa22d1ba6106ee3a50d502bd024410bd129cbf3b770381bbf858943a95dd3cbad82ae93be75a1fbd3081a23e69419a3edcb016bdfc14f63ba48af3bac547b9b84eac27bbc93c9fbb2e3a9d3be06d02bb87e41eba36beb5b6a71f983998e2223af8ede03be352d8bb3bc2143c5c914f3a2e55febbb6a8a73a71139bbad20fe9ba20ae97bbd1ec4ebb3434c0ba69eaa0bc59891c3cb63c22b9742dfb3ae180963a30b5063cc21705bdfa43a03e5ff6863e0bd1febcfd7eb23ab75921bbfdf087b932a0c4bb4acd16bc275b373cd837dcbb4942f1ba301e853ac337a73982da973a0854233c8a965dbcf659bf3cfc662abc678c3fbcb221e539048fa7ba8b8f06bb9b1a44bc4f5de2bb08eb6b3dfc7a0c3c26cf283ce581113bca5ca73aefe9223ba449d13b0fe3a2bbdfda853e8786513e149218bcd1628dbbf45ef8baf92b5cb8ff2dc239145354bbb8f68b39a23482bb214775395a3e91ba160b853912fb8fb92ce5873beded10bb0a99733cb0d2433c867d2fbbb908963b646522baba3cbdba5bcf943a4e8eadbbebad42bd8a4f56bd5ab3323bc60f64bb4913ce393fe9c9baace9383c7c735abd3791af3e5b61a63ec94750bd352d413c8257fbba52678c36ce0c0b3bf4b342bc7cee423cd9de1ebce6df773be5a662baf4dc9a3953372cb70dc7d13bbc6826bc52ecb13c872166ba2bf7a5bbb4a4e13a657e6bba6d3506bb7391d63a5bf461bc2d87a2bc30bd32bd27a53c3c2d7559bb13d7ea3a91c92e39a1cd173c12fb37bdf602af3e9291943ecba025bdecc69c3bd9d0d8ba6587543908d0e9ba8ec997bc7f5c8b3cd25f39bcc5399f3b4716ad3a7439a639c85a8d39c7796b3c48bc0abc1071de3c8f194cbca9811ebc322b91bb160eaeba43c430bb0a0a03bc3645ccbc41f99e3c88fdcdbc98ba9f3ccda2a33b0b761f3b5ebdc33af4e7823cfbe3d9bc77e9a53eb0df7c3e189a16bdec1ec0bbaabc17bbe3babe37f443d7b9878b34bb676605bbf41ac6bb43382e3900567cba5a6b343996f051ba54adba3b374eaaba0211ab3cbc26883ca9dbc639d18f633bd83db3b9b3428eba80bff13a8cdab9bbe8ba6ebd251486bd9b74583b401a04bbca16b439044674bbb0388a3c8f2d85bd955ab73e669fab3ed5c86fbddc786b3cd5ce43bb2296b93805e6b93b1d6c8bbc24e2933c57fd5cbc4809363b311e12ba91ac5b39244c1dbb154b1a3caf5fa0bcfdaf0b3dc29d75bb87ef053b3dc3053bb21234ba70e187ba0300d73bcbc2a2bce8beaebca3b18ebd0f7f6c3c4069c8bb718d8c3a24ced2bad54a163c1f5e61bd8958b83e8968993e56ae1fbd184ec23bc52e0eb9171615ba5737513cf4312fbd85fc363d688fc8bc0646603b2a2f003af42d1d39433295ba1d0e513c7682debcee36543d0b53d6bcc31bba3bc2f195ba612022baa611aaba3eea9eba6149c8bc6425423ce3e17cbd9330c43c133062bba6b14b3a64a08c3abb98cf3b0f1a10bd2aa9b13e5c33823edf83a9bc5d0cadbb330da9392a98e9b931194f3a73fd5cbb39fe47bb687909bcb072e03a76d132bad62eb9b74c95cfba3211da3b9b671cbb2f2dd83c551ba13cd8389eba602f3d3b52511dba6a44acbab5d62e3beb80c9bb924384bd806699bdbd401e3cd1f329bb0e19983aa58aa0bb1b03ab3c5ff393bd597cbe3e73a8ab3ee09080bdae627d3c0e5884bb8401e3ba522b1a3c4abaa5bc011f743ca40e08bc085d82ba8d645e3a7ac8b139e3ad20bbebc34d3ce6b4cbbcb5bd3c3dde51b6bbf67d323b1b24e83ab6f7cebaacd704bb8971103c2d0cf8bcfe944ebc1017c4bd0d37cb3ca936d4bb380dfe3a987b96b943751a3ce03d73bd1e4bc33efdee933e6c6708bd11c3343b83bf6dba1fc78ebb463ee83c2b8286bd6ddf513d097e3bbc7e8cbabb5a76973a269a86397ff1053bf10a943b7ede0fbdc2c2a73d958c38bd655c003c60eaeb3a0e1325baeaa8eb3a23edfbbb4671c1bc54d4073d7a9ec4bd9d81f33cc7ce1abb0c022ab94d67173a14ae6ebbc3729cbc300db53e0e4d683e5ac33f3afeee92bb53ac0dba6e1447bab193693bab31d0bb70da1ebb794fa5bb7539e1ba6fa4993a2895ab38772015bb0ce4dc3b1dee6fbb7d67f13cd1e1a63c63bb32bb41f2743bf879b5baf3e338bb98cbd03b8ea455bc69fb83bdc15da7bdb3a0303c3d3d41bbef405f3a6bcd96bb54deb93c46679ebd7f33c53ec0faa93e06977bbd51e2733c9dba4fbb1acd8fbb8ce7603c2c9cd4bc9a02383c05810fbb4c03c9bb0cdc1e3be66aceb8822710bb3815883cd695d1bccd085d3dfa05073bb5d6803936def93aacb18fbac5e71bbbc981f23be10e40bdc386b93b4a2e00be5b53fb3c6f0585bbb90d363a4f65a53ada92243c110b66bdd3f3cd3e89a2873e0b0492bcfb6a9fbba5c19cb89e51cfbb75a8183d2fdaa6bd86492a3d5ed32c3c834b4bbcc57aa73a54b1173a4787943bd85d8fbbe59907bdaeead43d93da4ebd0ad33f3b35f32c3b82aa3bbadfd4203b489c86bc31afcbbc5ef2a13d5f6305bee459d63c21dd663b46e4f4b9b5aa14b9771990bb0cb62f3b04dfb03ee87d413e66b98f3cdd8477bb6b68fbba7d72dbba40e3723b18a281bb7d36a7bb5552bfba870918bb8767523a92870239c5bf00bb2482ba3bee62a3bbf091e13cfdad9d3c647e91bb3ec9793b1deed3ba487285bbafc6343cfade9cbc734461bd0ad4a1bd6926283c94b021bb9ab7a53ae71648bb70f9953c16ae9abdffd6c93e733f9f3ec14f48bd3c2e183c00fed3ba4a92eabbdc808a3c7892d7bca9221c3c5cf16c3b272c28bca206723bcbb79fb96078d2ba96126d3ce5e0c9bc899c353da610263cd7ce45bbc003613bb129a9bae1f256bbdfc6503c091b5abd4a67d93cfe560bbefc5ef03c89f495bb56ed003a763ed33a9da3d43bc1fa81bd2dacd83eacb26e3e28a01e3a5bd6b7bb5d71223a54d619bc8d8b333df26dafbdf603e33c1d38c43c570983bc796ddf39a0bf383a933c013c66d650bc5615a7bcdcb2e23d1f9426bd33a9a2396e8da73b73a7b338a4c69f3a0e1678bc009019bd92a4cd3d212728be7a69d23c8bd77a3ba55befbaac2b073aad9591bb8d47b73b1ce8b73ebaed2d3e60aad73c930a3ebb3d2822bbf689feb9db6042397d8e58bb5f2c05bc658dd7bbe7eb39bb50d9943a4d5a94b9099009bbd529063c930c26bb863ff13c126f073d55f71ebca23d233cf3738dbaebb6c8bb86a3693c8c2457bcd1d284bd89439fbd03f1f03bc3a68aba8d0b34bb285847bc4ebf063de7d4ccbd99d3ce3e9495a03e422a73bd42b3ce3c4008a6bb385d09bc0018893c9e3fccbc1b6a243cd333403be9b531bce637c63be43eb8bab158bebbbd6b953c9dd474bc9fced93b41c3e03cc5df50bccea6e73b291084ba8d8dd6bbd072d93ce93186bdf578883d82cbdebddd69833cedab25bb988b2e390d5a68bb4d11d03b0f228fbdce41e93e39ac223ef2a5203ca63ec53acfce8a39deb442bc17af5d3d80b4b2bd51e2063c0758df3c6be144bce56eba3a4e7a2c3a832fd43b55f4b4bc64903abce958b03d9dbd053bf34b65bc54d1c33bd2a8d0b9a2b0073b0c231fbcb0cc1cbda8b7473e1b873fbebcd4943c2a89823b7115c5baebac403a45a4b3bbf655853b52e6b83edb5ab93d2bc8133d3e765cb9c9d338bba52fee3927ad33bb662bb63afdfecfb94b072fb96fe252baf9fee3ba039ab8397bd2c3ba7895f33bc36ee9bbce28163bb1a27439a7d5a3bbd402f43ba92bb3ba82f3e9b9322e69bb9a38353ca39dc93c91aafc3b8464633c587755bbf53023baa5f16139507ed939692f1cbba9a5843ed867423eab26903ba49fb1b9a303233aaffd003afdaafebb518f3b3c283654bbe21593bb128412bb936c26bb4b45cf393f42ddbabe99313c108fb4bc2aa2263cb267c23a1f19b1bb7e31363c728d46baeda9fdba248bc8bbfebde6baf8cf113e323e5e3ad004743c3af28dbb1051f3ba69d0a93a36229fbaf0a6f43b5e12873e4dde963d8677583c038d1a3b86edc23aa85501382f11efbb3ebfd63a2e89583cc89e99bb501c563b407b38bb5d114d3825bb08bb57338f3ca22cfbbc1e71823c051e11bc45d252bc2eae4c3cf918973929d6923a4fa8f3bb92c4193d8d53953ec38b03bd0435c43c6ea30abc15faf5babbaa61ba8201e43967e05abce5e1453e771f9e3c1c6f33bba8915a3b70d8963a9bf9993859f5aeba05205f39ff8b553a19871cbab25b063910ed94ba3559083914b654baf6f8653bb2bb42bb3c126a3b76184c3b83643cbbfac63e3be3fb6aba1c8325b9ac502ebbb3f6093c2fd666bc40eb8dbc8d73083c478717bb6793313ad52ef6b98d568e3bef07c4bce629963ec33a853ea69eabbc0ee8733baed377baefbf8d39840c9dbb569d0d3b560d99b9046f30bb3d900dbb6679d7ba51d16d393731afbad703013c07485ebc564beb3b4bdf89bbb9f9f6bba84a013c03f65dba95df3dba602813bce656603c7fac453deb57273bfa91773c59d869bb8cb284bae5be06391c235d39df5301bc045f8f3e04183b3e612df1bb80e21d39d6e3363957af4c39cefc19bc39f5213cbb477a3b011720bcd1b2a1ba108e3abb46ffd539f5490cbbc168013c95b286bc06fab73c070454bc617d21bc8ab3453c221aa0ba595e2ebb85ab39bc28b2663cb949193e3a8f993b5224c83c26adeabb4100c6ba1ee8773a7a6ddeba2cc1b33b9370473e7f98073eab16cd3a0a64a43bff85ce393ade3ab81227bdb92a0406bb25b0cf3ab8031fbbe9de203a9f52c1bac0a78f397d22aeb8bf831f3b31fad2baca3ae13b9343073c5e429dbb4ad8853ba66386bafb10a4ba2b769dba4cbef03a1bc008bd52f318bd8382e63b1529a1bb8925f23a305cadb946faf03b06a124bdf8e3a53efe8f983e506c17bda256003cb5ca26bb6bf49db9566d77bb77e732bb07791a3b649276bbc98c0f3b71b9a1b83754d739ab71df3a1048f23b90996abb20f6003c3e4d033bd20b0dbcfb733e3aa80af7ba60d375bb2ca5cdbb36c24cbbef24a6bb6d36f8bc77ad7f3c47e723ba02626f3b176a403b1d05263c714a15bdd8e9ab3e2e28833e612611bdaabeb93a9a4796bb8aa504ba466a30bc76c087b8a60a20bb875fb8bb90a60b3b12993e3b1334013ac0200d3bbf80613cac8fc0bb11138a3c3cc850bc090759bccbb514bb97e93abbeb2085bbe5f798bcf8ffdfbabb20823d6271dcbb6665bd3c25efe03bc709583be58bb13b471b173c73db13bcc8ef943e67f0423e3373a4bce91816bcbe68aabb940cdfb877b7c139c1bf3fbb3512ab382a7695bba8b6a43a54deacba097fc0390af58a38697a5a3b3d1aceba4d0b773c69fe553c228f88bb6f43a13beb196dba6a6d04bb3643183b4922dbbb5a5f48bd8acb60bd627fb83b848098bb45375a3a8911c8ba8fbf3e3cb2af5fbd3577b33eb265a43e3bb255bdff3d4f3ca5a50fbb1e718cb983c1403aed32dabbbcce8d3b4b8a00bcc183b63b377384bab5b4ec3957ae743a4149983b5377a6bbb661a83c0536393ba6ce0abc0ee5d63a16ecb7ba580d8bbb81d48d3b04b49cbc50abb9bc69565ebd246fab3c5cf5a2bb71c3443b763bb83a707c2d3c3bf048bd8e16ba3e5efd903e216f3fbd4c2bc53b2c4f35bba9800f3b728abcbb9b6921bce75f8bbb11d8e1bb87d5353cc2be523b3a2dc73936d376bbfa8c583cbdcf1e3ce689063d7b0af9bbde90b4bc163b20bc22e31bbbd754003aa91428bc6a5c2bbd6454c03b3cdb1fbda55c2f3d8dda393c8099793b341ec5b95f1fc03cbd9092bc3648bb3e521e6a3e548b6cbdacbb4ebc7fbe34bbe12cc13720391eb998d01fbb69ec14bbb00eaabb0450e2399fbd6eba9e7f9d393f534cba934eb83be0ccd9baf8ffaa3cc42a853c0b7150ba96bb5c3b5f87eeb9911efebaba94453bfda508bc65c86ebdb7be88bd97cdb73b749c47bbd04a023a91d273bbceab953c9ef288bd7048bb3ee837a93e294970bd8bd86c3cca2a32bb330cffb84e84863bd28205bc75dea73bc562d7bb9867083bb00a6cba8478ed39768d58bb6e471b3cc8ed90bc29fef63cdcbf573b5fc86cbbd89d803babbe88ba30731dbb744c5a3caf25f9bc648777bc13cfa5bdbc0cbc3c752b08bcf210993a298150baff84063c41bc7abdf01cc43e0e5e923e99fb20bda7efdd3ba35827b859dc133a9e4a933b244b3abc8af21f3b5680babb1c72823b3bd4cd39bbc42b39cf8cd1bb9f58303c29548ebc4794323d35fc3abc53b904bcb500b038a30617ba4b09723a449b323c6db541bd8dd9893c4a239cbdf2d9223d23e788bb4ee935370c21a1b9b28ce83b758426bdc7eac53e2bfd723e3a5e0abd19cd8fbb0d3dfa3a6bc1eab9211dd33a02a4b7bb720b22bb862cd3bb49037a3976da6339e0cb6f39ae7fdeba14410b3c06260abbeb40e23c97599f3ca10920bb2a25533ba50d8ebadacd53bbd2e18f3b775b60bceb2b81bd0cfc9ebd7e903b3c8df95abb4ffea03a9d9f91bb338fc03c0a0799bd53b2c43e3096a73ec8a07dbdd9c6723ce1e56cbbd93811bbfca1ea3b0a1324bcf37be0baf42b03390580efbaa8f3193a08f14a3a9ae080bbb59b993c8bdcd6bc250e2e3d24130a3c3f59f7bb7a75743bd18ef8ba50eb49bb0fe94a3c3e9851bdfe47873bd9c8e1bd1200f43cf21b8ebb00969c3aa260003b59c8063cf21371bda51fd13e2cdf853e7001c8bcfe0f60ba39d1aaba73307ebbb23b643c717744bc2748a4bb9aa6d53b60612ebba4489ab9c4f2a239c58602bb7d11723c32063bbd4c09513d2af626bca803d1bb12039d3b597edfb95e53f13a0968003ca97663bd6bb4903d1fd8d7bd71bde53ce25995bbbfd0e9b91819083b58750abc2e4602bd5ee4c73e1cfb4e3eb9afc53aa159d3b82ce58fba3ecc6bba4692653b43dcd1bbad188abbb5d97fbb1c94d5ba4c366a3a5d87a439667920bb5767ff3b52ba34bbd99f003d5f8ca23cdaf07bbb6540913b4598d0ba4a0193bbbfe01e3c51eea2bca5b881bda092abbd99a3763cc4f0aebb6338963a010b98bbb017c63ce9eba7bd2638ce3e27bca13eb1bd69bdd14b5d3c498310bbba7abcbb67993d3c55d73bbcc3e9e5bb1e46263b38e637bb3221fc399c3a793a27a801bb8f2daf3c3e4500bd551c393d4c83c23c3c2162bc73608d3b1515bfba43db12bb462a2e3cc6448cbdcd3ee03c819a04bebc3fdc3c387c6a39a52048b8b0605b3b3c6f833b3e2650bd6e04e13e97735a3e28212ebadfe5cdbb444ff0ba26ace2bbd7a2b73c702a64bc6a484abcc7061a3c69af1fbb99eb44b90c256b3980fb233b0e5a493cdc3e83bd3def3f3dd328c73be1f40bbc3c5c443b3da318392a4d5a3bf7cb9abb06b16cbd50560a3e105aeebd33991f3cdd2b663a60b82dbabb6220ba54ec1dbc1de0e7bbd233c53e84a1143e1f82b93cf976023b1ec5ceba83da20ba92ca3e3be06261bb40e8e9bb9314663961b01cbb4bf3793a1e5ff13916c269bb4185e63b883b6bbb524ee23cff179d3cb596edbbc0aca23b38d92cbbc55ea8bba2797d3c765ce5bc050058bde06ca3bd26b1843c553ba8bbe667043bd91e62bba75b9c3cd100a6bda9a8d63ee297923ea72731bd6d94043cb9c31cba50af07bc0b9d673c40ae30bcff7c9abb336f173bb12426bbf83896b86ca46d3a0b5a67ba29ed9f3c926e18bd96d10c3dfeed073dd6c591bc2787b83b1c047fba12de51ba1b56663ca4cf92bd5e83493db9cf02be3641993c2ac5a93aaba6a0bad02d1f3bec8256bb702b53bdae20ef3e36a0253ee8eaad3c1ae9a0bbc0e3aeba20261bbca6d5ce3c880cb1bc085102bc4d88d93b4a3c9bba7e15c6b92a63c0382b82c73b3c7c353c6f8f6abdbd3a0c3d1883c23c87a93fbc0f80dd3a0f488c3a3b8b3c3b44da41bc93fd84bdb948293ecc3405be79731d3b6244ac3bc5379eba14caf2ba3ec1c7bbeead9e3b560cc73e245cee3d9a97fe3c50663d3a9fa500bb2724633adbc12dbb15a56c39a65a57bcd7d5eeba31c993bbff91573adfd810ba75fa9dbb7e70e63b62e7b9ba5ecaf53ca149ff3cdb332ebcd1bf353c4ca5a6ba784640bb5cf7aa3c57879fbcd9b783bd463498bddf65e13b011142bb63aaabbacef97abcd157043d099bdbbdcd1ddf3effcb8e3ee13135bd7caea23c87993cbbcc2911bcd4c23a3c3ec30ebc6475623a1f4447ba58478fbb8e10003bed9a873aae1988bb80e7bf3c0c7c19bdbc52ee3b502a2a3d41c2a0bc5348093cad3d19bbc0bd33bbc081b83ca92a99bda0089d3d909fcbbdc351403bd92b933bbd1b09bb327906bb642a75bb341046bd5b78013ffbfea53d849d043db50667bbcb31b03a0e4b36bcf271f43c5b1a00bd0bff2e3ba3e0d9bba8e62f3b1b3b98bae72d173a8e43e83b1c15883b339262bdee43c5bb71f6543d4d2011bc5212e63ad8e5393a73cb543aaa9d4ebcafdf5bbdf58d773e866de5bdde422fbc64714c3b4dc6d0ba0787d6bafa3a2fbb2809883c9c7bc43e27d4183d03c9db3cf4a39d3b95f495ba622c143ac48c2bbb2cf7b93abfa072ba9ef6a237337964baf6cae2ba7ac3b93935eddcba4b01fc3b698bd1bb6499563a5e616aba32ac85bb6cbef63b0a0ac4baac9423ba00a182bbe816693c6b469d3c0d62bb3b1fa96d3c981a69bb282a20ba4437e3385604b53952afa2bb398f8d3e16453a3ee95f793ba4945bba68b4183a1c401e3ae18d04bc28ee8e3cb2eaa0bb11e13abbc8c74bbbbc6858bb4a070c3a32e3c4ba00e8aa3b3c6e0ebc896905bcd6e2a9bbb7fd75bb4841623cde7883ba4e1711bba09e7ebab0899b3a5a1bde3da4605d3b5fb2b03c0c4ac0bbf6b71dbb90533c3a07b101bb7cc7c0bb0d30a43e6b66893da83b043cacc652b9f825ac3ad4e30539af1e76bc1b344a3d754841bc1313f43b3406f8baece909bcd483e8386690debb543eec3c0d2222bd772e5fbc4cb2cbbc872c4cbcd3b2f93cb437183b02f8c93b80cd8cbb20fa383d26133e3e682572bc148b453dc8709ebcbf7e01bc0788b3bbd8d9eabbcaf74cbd7b39933ed0f1843d26e7b1bcab04b13bd2d9613b771fe6389033b2baf489913912eb3a3a238e71bad68ee539cefe97ba4e811639e3bd56baf83d7e3b477f4abbb121653bbc08573b0a9340bbb545563bbdab83babf4c65b9cd8c41bb076c243c142d8cbcbf159dbcd68d0d3c17ce35bb1e1e7b3a1c72adb9e1b9953b1ff2d1bc549a9a3e333b833efd78adbc27216f3bf6148cba10a4d839c55faebb2057543b163985ba36f710bbab8bcabab9a0eabab65587399eb0f4bac3eb083cb9212ebc9135183b6225c0bb42c0dabb438b0c3ca9496fba6e7a1cb954a021bc5650a93cf2aa053d2550b5bb7e81a03cc0c369bba0a18fba36bb86b92a121739dc6485bc81e6a03ed4dd343eb30249bcfabeabb9b013b338d5281b3aca692abc7ef7653c8911fcbbc4355fbb454f5abb1b9c8cbb554ae039470d85bb06f80f3c6711773bb8a1273c54f48dbc31681cbc8393923c596730ba6e5612bae72e59bcf4e0ef3c8535a83db5b5ccbaa2421f3db72ee0bb545281bbcf1f69b9b633edbab9c430bc68c9873e15370f3ead264abcdefe6ab84c22843a7e54d0b82d913ab854d30dbbcc3be83a520367bb7072da3a2482e0ba6e68c639783e6639904d0a3b814c15baeef5c43be985173cae53b1bbdad0943bf182b5bafda303bbe6f97abad9600b3bed2211bd49841fbdd0af0a3ceabec2bb0246133b720137394c56f33bf2eb29bd7e12a93ecb0a973e27c219bd90070c3c7b4a40bb3c6cd5b9bf5127bbad85b8bae8bcd73ab9a7a0bba331513b63728dba14f5f2394017103bc94b913b28f429bbb893973b8b9bbf3bb8f70dbca5c9423bc95df3badd5b90bb6d2a95bb47e2133b101c66bc497a1bbd82d7963cb20a8abb2b70803b9097513b2f92093c6c6b2cbdfa49b53e8871813edd081abdbc22ab3b8831afbb70f1ff39ba3e21bcf435bd3bd950bbbbacee81bbaef52d3aca6e173a5b899339a3bd03ba3a550a3c4d70a3bb3d35873ba16c17bcc4f910bcd1408d3b0bcfc1baf19867ba149681bcebd9b23c2df02d3dc76b80bceeaccf3c6b3ac739352733b95d98213b6bf1eb3a9073b4bc1236a43ebde03c3eda959ebce8b45ebba66c11bb0ddf7ab91873313a27cf4ebb8657fb3943ca9dbbee92d73a2668b9ba0e96fd392e452d3aa88a253b169659b9d0045d3c6e116a3c3368b0bb6feaae3b20ac9fba783b47bbc2fe353b0a8ad0bb272652bdb27563bd666df73b69a7b9bbfc84b03a5e8e8cba0ff0423cb20b65bda590b63ed2c1a23e51d758bd82ed573cc34225bbce9b2dba01b643391adab6babb040bba730fcabbe8fdab3bf308e1bad1a40c3ab67d2e3ba92e84ba267bbbb8782f543cf1ca383c083c32bc36a4813b1fc0afba03f3bfbb9943083c1b8d7cbcf09efabce7d375bdb023c43ce72d08bcb6e0423b48ecec3ae096123ca46564bd176dc23e363b8f3eb42d4cbd0e612f3cca5f5fbbec46af3a17232abb8481623b125729bc63bcd9bbf6e7233c5dd6aa395c36d638bf4816babe2aeabb3786db3b9885943c8e999b3b40daa0bcc08d17bb7cafd4b9342bfd3acc10a03b173d95bcf5d128bcb34643bd20222d3d8a0fe6b9bcb71e39170ca1bb0969043cde590dbd09ebc63ebb47663e49955bbda63d2d3b9bcc973ad5be94397225b8b957580bbbd1ca37bb6caa8ebb5a8b133a95ca69ba15a3e339c6aa52ba6a8d9a3b3bc12db94a42a33cfbe3863c74350bbb3c18693b845a73ba1c4d27bb28d58c3bee9018bcad6976bdfa1788bdd9a7f13bde9966bb475a923a11c151bb4b70973c98088dbd0d4ebf3efd42a63ec3466fbd078f703ce43755bb8e5d89395bb4343a576de438a6c167bb560455bb4255413b5c9fc1ba5ed7133a6c0600bbe4a28c3b8d9df0bb2787973cbeb56c3c48461fbce7799c3b2dd28dbac50e9cbb0b60983cc0c407bd4376bdbcdceba5bde19cd73c9e700fbcb9d6a83a900f7fb5c903113cbbb68abd6e4acf3ea3ab8c3eb28e2cbd1dfb093c568a29baca0bad3a72aab6ba4a43f93b2fa66bbce1bc9bba3e94ce3b5e3948ba1b0b94b89dd927bbccb4e6bb6b637e3af261af3c0701143c657b8fbc8128de3ac54d1d3a39c0e0ba8582d53c7d852fbd9ec109bc921191bdf3862e3dd67be3bb1c50e6ba6c6f78bbdabf603b2dcd59bd86f4d73ee233663eefaf29bd373b6f3b1374943bc68fc2b91daaa63a549babbb58ef67bb4aa2b3bb68b80c3adf24ac373f0be1394421a6bacabb093c9242ffb9a790dc3cb45aa33cbcf58bbbd6be743b3bfdbfbae77a98bbd944ca3b169c8ebc982d83bd7a589dbd8a2d5f3cb0128dbbaf37e83af6c87fbb029cc63c9b379cbd2809ca3e55eba23e3d657abdc1b0703cfcd47ebb4647ddb9a6420dba6c84263a9c6401bc92ec97ba5f3ee03addecbcb98564893a9e8f7dbb13ce9a3cc28d57bc9775b53c26dab93c21354fbc1be3413b8f810fbbe17d03bcaa769b3cb7407bbd4005dcba1181ccbd67bad43c3652bfba2799143bb845ad3b1a953c3c346f8bbd7be5df3ede73753e6a7bb5bc7d2f22bbe3fb77bb9760043af1c764bb6359443cd4f762bc5035b13a03a2663be31e8dba08b2bdb8ee92a6bb2525243c178e3dbcbeb9b53b4abb8a3cf19772bca587503bd0c24c3a838f32bb6cc1f43cb94a96bd5c12183d876fa3bd9e82e03ca1308dbb0dd5c2bad8a2443be70412bc74674bbda1c9e33ed70d3a3efa672bbccc7a223b9089d5394bc81eb9ef350b3b5ce9b6bb6865c0bbaf0949bb4a296aba3934ee3976e19439122926bb4de6003c155bc7393e28f83c287aa63c713fbfbb4839af3b331be1bad97eadbbb1a03a3c6e06cabc549786bd16b8a5bd333b8c3c5d04cbbbb51e883aaadf9fbb99f3cd3cf066abbd8d72d53e2ee89a3e653c62bd13c24c3c6365beba0b0111bb03be153bb7500b3a348b2bbce52a48bbb854373b23e114ba40f53e3acf06cebb9f8ec33c4ec289bcdfdcad3c97a50c3d39f270bcf1ca243b515766bacce741bba3c2a53cc94baebd34ce833cf8dcd1bdf43d813c252de33aad12e339b2277b3b1c1ee23a4b7169bdb6e0f43e9a23373e6104793b05d57ebb0d172cbb4d95cfba7c3f5038fde31a3ce0eae4bb4262a7ba2e6c443b1d5663baf824adb9644de7bb8032ba3c45bab5bc57b38ebc1dd3bf3c316326bcb998dd3a81cbb73a93cb8e3b068a983c9f57c2bd83b9bc3d748892bd40ee0c3c2d24b2ba6c02eabad90902ba6a947fbc17eeeabc2c79ea3ed59af93d2ad3383c20f9a73b3679063a5117023a17a7f43afa2364bbc3fa09bc94d9a23a80a8e1ba9ce54f3aba668e394bf386bb5786df3b425dda39814dd73c0d9b9c3cfc6c14bc3b95b73bd10e26bb084cc3bb6b0f933cd7fa07bd2e7e6abd314997bd0fda8b3cbd50c2bb70dbda3aff5562bbcb22a33c55a0acbdd89ae03e64e3883e33b521bdb840e93bc3aabd382165acbb47f3913b81a16d3ba0272ebcb33759bbd3cc6e3b726dbaba23d95e3a15bdb8bb2d52c83c0828c9bcdb517c3cb497123df3996fbc0ca0533b65bfefb994f7e1b9924fb33c78cabbbd29bef93cd608b1bd2f77813bff861a3b42dcbeb9ae951c3b30a2c4bb63c051bdc240023f9141fa3d15b0ae3ce9772cb904652cbb9544b6bbd225813b686c893b1f7bfd3a86719cbb910fc73a173c4fba51455e39eb9150bb2337fa3cb932ffbcbcad00bdfd6ae83c10312abb86b87c3adfe3a6381176823b5902803bc0bac5bdb1ad013edbe196bdfa04e3bb65b0443aef2c123a2d55923ae69536bccd91aebc548eeb3ed5ddbb3d2494ea3c079d243bfe3229bb00cae03a81ed74bb32021e3ab90183bccab5703a5a339ebb7e3886b9eaf78d3a25b291bbd5b3ac3b56709b3b21c6f63cac63e93cc74829bc8c65433cf1941cbb90c08cbbddc4b63c5d3ddabccf7292bdf44889bd317fed3bdc846abba979c9ba39f081bc21e6043ddb03ddbde387ec3ea168813e44c81bbdb8278b3c386355b90138e6bbc129a33b15db973b8149a6bbf671ccbbd1f7d03abb5bdab98f16493ab73ed8bb7d9dc53cea87e6bcf64f733b0a5e003de7482dbcf862683b22cda6b7222ec7ba1b55c23ca6e0bebdab86373d0c4c59bdb93e00bc807ec03bbaf008bb6d75433a473eefbb628e19bdf8d70b3f56bf2f3d9123e43c5d42dc3abb4801bbe01b15bc0bb1223ce37ed73ac644f33be869d8bb9dacf13a751297ba20e6bd3943a8103ac1eae93c6cfa47bdaf1322bd679aa73cdadb063b9834613ac73ded39f2c4223bd60484bb0078b1bdc5d1193e13f20bbd25d741bc08a9dabaffdfe0b96ce113badd92f3bb24f6ec39c5bdfb3ef221fa3b92e6a43c415dc23bcba927baa4c33a3a21b623bbaf7b4c3a6cfa8cba9bc1063a6ce11eba03a8e7ba8b61c939af8e00bb037d0a3c8745c5bb4d8e16379cadbeba2fe585bb427afa3b6e52d6baea45d6b901029abbdef4933cfd36293cefa78f3ba6bb6f3ce85772bb5d94f9b9bc6989b9834723b55858b8bb0c02953eb881343e7a7f773b5d79afbaddfc243aec649139aec93c359274d33ae67c36bbdd6c9639cc8962bb13e535bbab001b3a72cb17b9c4ae1b3bcefbb03b9686e2bbbacccfbbe42f89bb9743563cedd790ba85481dbb4d3862bb875f6c3c9957283d3461613b043ec03c41459bbb713e36bbc04915ba928c7f3a91d15ebcb4d8be3edc94923d68ffd83b574a83bbfff8a73a01d4e3b7510f4e3cf526c4bb001f00bb08cfa83a083c16bce3c689bb0ce73f3941582d3b0f2640bb63dfa43ca3a5943bc751c6bc3a477cbb8670bc3caf488339f3ef0bbbe7cc56bb3ad1913cbae46b3c6b95483bd328263d2249b4bb534cc2bb9691ac3acb8a5ebb70c31cbd7b5fd93e24c4593da557fa3af94e2bbc6fe4a9b84f8610391dcda2ba58387e396de8043a085187bac904273ab82995ba5a992339ccd57dba57af943ba18262bb8a957d3b6529523bae3e47bbc02c5e3b5ec986ba426607b9ee476bbbab6b463c913ab0bcc59aa4bc05ce103c533d3fbb6314883aea72a8b9d00b9f3b2c2dddbcccbd9e3e0a47813ecaeeacbc4e566f3b18c394bae7880d3a1fab85bb7ecce73acfd35dba6dd0c8ba22e49aba11e8c7ba295492390efe1fbbf11e183c18fc31bc3c68c03a598892bb43bbb5bb82b8073c712088bad531af39e41634bcd146f53c7bb2a33b78e129bc393ea83cc5dc6bbb3fc788ba41540fba4befb83a97debabc1d92b13e9401313ed83467bca13888ba3449fcb912d6293a5d2d893bb7f561bb5baa06bc63d312bb58e0a0bbc63d47bb48cc043a9e2d9fbb1c070b3c9da4f73baf458a3bd67d48bcb1ce13bcb9be993cc820b8baa8f71eba6db53cbc28172a3d35472f3ce64e8cba4080343d2a3c8fbbff098cbb5486c0bae1c18cbbb2b696bc31edb03e6078013e0a333bbcc402bbbb169c18b95fb672b9aab2b039d65630bbb07efc3a5d5686bb59e6153b984600bb7cffe6399ac6373a452bee3a674c94b782cabd3b47a8223c3a97cdbba017a83b1bbad9baea322cbbbcc610ba2fdf363b08781cbdbf2620bd3276193cb7b2d7bbf289393b2f004a3a2e4be33b79e92bbda773ab3eea9e953edaeb1bbdc3131e3c00c376bb0fcc11ba10883bb92a573cbb0640523ba69ad1bb2c20863bb14215bb6e72143a8280133b8c3b1f3bc78922bba5602e3b398f233c6b9918bc6562b53b47d0e8ba6cc5a4bbc64e5cbbf4c3163c8d86e8bc1ecd26bd72ea9a3ca3b0f7bb527b863b8ff16e3bdf9dd93b11b83fbd5f3ebd3e9668803ec43d1fbdda40163c11e8cbbbd92d963a28daadbb8e8aba3a984558ba6b782abb02e01eb91d8bbcba21d4aa398bde5dbb0e1b0b3c1eb12dbc994e89bb06e6cabb0d8adbbbed3e0d3cf89f3dba1496be393f7a89bc8d5f413d50dc363c2c3493bc2b30ce3c15b487bbf121bbba9804093b34312abb886ceebcaba3b23ec19d373e35ce91bc192511badbe0e2ba024bb9b9f923323a9dd071bb0784863a36d79ebbe60be03a6166c1ba06611d3aa6f2923ac8dc303b9ce50a3a32ba4b3c1bcc7c3c66b7e3bba4bdd13b31daebba7b5785bb543f4f3b2c4fbfbbf13c5cbdde4364bd9226173c1cb1e9bb7fe4153b09e993b95269403cb58a68bd66e4b83e534ea13ec66258bdb0ae5d3cec7e52bb2f41a2ba88a9053b874b6fbb9810f43a8c13e0bbe494a43b6e3029bbc1d44e3aa4468d3b6e5f80bbafd6753b6f96df3ba7b08d3c089145bc06c4c33b0bf3d6ba8198f8bbb974073c975fffbb569b32bdfae475bd8bf3c13c764c2cbc92a7673b24b02e3b3183093c319478bd9f0ec83ebabb8e3ea4d750bdfd5d613c70c194bbbb180bbbd55efb38e51d0a3b81f58b392817d9bbbcf9b33b5ff133bb23e0e0397918cc3b8031eebb66693fbad339b0ba2137153ca92c2fbce15ab53bae5bb9388288a5bbf9e889ba016a863cc850bfbce52342bd50e3e73c836116bc1a02063a682a623b3f410f3bcd6f61bdd1aec83e704f6e3eeebb23bd75a73b3ce9fc78bb7ed5c639404d26ba1a53e5bafaf642bb0b6c86bb482d853a468aa1bac8ee393a3c9242ba9648873b353b7f3a01189d3c14c5873c89c771bbbfd9903b4f5bbbbafe2325bb88e7943b773c13bc6e1882bdf4e283bdc529123c7a6493bbd1f3ac3a1d0b64bb71a2973c4ac48dbd4a12c23e4017a43eb06f71bdad90723c512f3dbbc6cbeab8839b963a5ab4ebba1af2a9ba4ab7b8bbb6f5903b1d7624bb64f4683ac392c53a386d85bb548ad13b9a69173c1ba6b23cd2aa47bc8060c23b192bb8ba4de9f4bb8e1da53c2ebde2bcfc8d37bda11491bd6117c33cac5c1cbca8f7033be0c28d3a2c1d1f3c2af195bd307ed93e6aa0873e7e8935bdffc3363cbf3507bb963225bb58b7fc3a6703153aceba05bb9b53bdbb15dcc03bef931fbbe6179c390d93213c88ed86bcb940643cf15460ba14de923c495060bc2a178a3b12a8f539d2a141bc36458a3c56d74ebc666e16bd3b1d72bd2a1ff83c0dc10ebced288cb9861e613bfb11ef3b44f094bda507df3e6cff673efa1c17bd16720c3c3cd589ba66e8d1b73ae6693975119abb309076bbd664b3bb9ab5c33af8f083bac2ed843a9a102eba9ec5013cb92a663aa587dc3c5764a23c8cf7c8bb46d3a93b628112bb8feabbbb77c4d53bcf568dbc51be8cbde10697bdfd6a7d3c5238b6bb0c9c173bb2ef60bba4f5cf3ccc909ebda2facd3e71ca9f3ede0680bd3e217b3c49c792bb4ed4c23ac6e179bb2ca06a3a64ea53bbba32babb56afa43b4393ffbab760a63a22af2bba20dd963be741133cf916d73b2da7cb3cfdfc43bcabc21a3bb34308bb951f45bcbcd0de3c988666bd4192eabca0959ebd113eb33cedc1e0bab866553b2f15cb3b87fe583cea24a3bdfa68ed3eb6a8643e498bc2bc14945eba97f7a6bba42f32b93f542dba62b647bb7bb6153b2d9db3bbb5ee8f3bf47fdcba52605739bae4a13bd87f4fbc20d8de3cbdfa44bc1b36983ccc051fbc1bd4013bcfe9c6397c6f55bc893cfe3cfd0d53bd69acb0bc547e55bd392e923c857b49bb047f803725ebd63b0a11863bf5799bbd6d13f53e8ac9363e001454bced455c3a1dacf9bad8b93d3abde248396c0797bb679cd0bba1f73ebba0b05839f1e205ba2077403a334100bbe744da3b0fdb7e3be348ee3c5147a43c5ef8f7bbefcbcc3b323a0dbbdcd3bfbbf69e413ca6cfccbc7c6f94bd4be398bd1961913c14c4dabb048daa3aabb0adbb6838da3cedc2aebd5dd3da3eb556963ee15d66bd719b553cbdc3e4bad7da183b9ab16abb4c9d53ba030393bb5032bcbbe41b623bda1b8eba7c41fd393edfcdbbb24d233c6a854a3ccb76f73b90f7dc3c07640cbc354d0c3bf23f1bba67ace2bbe2650b3daf47adbd996dcabc4c7c88bdb095053c635a5d3821ce153ab4976e3b3a5e6b3b3aac97bd13e6023f8334293e6e4182bad5a92eba25e30abb4ebebf3a07b2eabad0a2cebb3ac3d53ba3aab9bbda70483b3540aababbb7ed382c0940bb7f2ee1ba7e9df23cdf45a5bc6ed1793cbd0d91bb68989a3a91f7dc39ae91d6bb0144103d45fcaabd14c1b83ac2a41fbd65f1a73b34f5e8bad21817393e14b13b4f3dc4bb74d983bd5152023fdbb6003e143fc53bb7faf13a4fe708bbb293df3abc600bba0f2558bb53f503bc17340f3a0878b8b8fd491bbad29b5a3a5cc949bbdb57aa3b1eb4c53b73afca3c5ee0923c5eac27bc73b5e03be35c37bbedb6debb6652983c8eae10bd645288bd13ea83bd625c843cc271d1bbb044ac3a2c3b89bb8023ae3c3d7eaebd740ae83ee788823e334624bd0bd4003cd5c9f53939d20d3bd033b6bbd584483b960fb8bb4c1c61bb64ef213bf3739bba09085c3ab0cb1abc85cd863c4ad3043c5617833b997bb53c459edfbb3d66453b985387ba92b267bb0ae30c3de19acabd937379bc24a646bd41098dbad3a6793aced781b8f1f9303b13e552bb503385bd645e0a3f6409f03d3215313c913d123b4d971bbb3530ce3a3b145ebb867e8abb3607cf3b73cca7bbb968e13a0fc65bbab5bebe398fa4febb7a9c3a3cad60a13c49d4a1bcad2b633c4a102bb980bf4c39ff669cb93f46eeb87518f03c1eaacabd8bf7933c17f80ebd2a1074bb9bb018b9dddd893a20ad623b60a527bc415b58bda758073fdadfb53d80ba9d3c1036a43ab07027bbf41d6e3b222abdbb842d1e3a6c368ebc2bab383b045485bb97b48fba5ff95c3a76d5a4bb27c38d3b9083213c2194fd3cebf8c33cb05b18bc96db393cc3bde3bae0d794bb9a0da43c29b3debcb2e1a9bde3416cbdf1d6ea3b9fdaa6bb657620bbd09478bc3814023d1886dabd6d77f43e6502753e5b1a17bd4ea48d3cbe71e43aa94a4a3acb24b1bbf01f523b5e6e2fbb4f645fbbdf23083b131b47ba9b93053ae0363ebce0619a3c7ef9b73b92db843ae184723c9f31a2bbe477d23a863133bae75fabba5338f33ca9abd2bdf7ef8cbb1440e7bc5e89bbbbc1017c3b18d99bba638e43b9e91d85bbd80a45bd9f3b113fe31c683dc9c2943cc076e43af144d3b9ccb521bb5fd377bacf0b40bad30d293b91e2efbadda84e3aa6f669ba2db4e339c73adcbbec91af3c6be89eb9c25d2dbcbb12b73b7749923a3cc7383af21f3cb9d50c2f3b34a79a3ccc53dabd896de43c31ff65bc1537abbb9f3cf2bad4fadc39b0147f3a13ce58bc43c2c2bcd66f103fc0eba93cdacb8e3c01d3933b922881ba195d4f3aca831fbbe8625a37801b7ebaf9cc1a3ac277eeb9e5b3e7ba8314df39d91110bbf956163c9476c5bb3f4b02b80345e4ba9ba67cbb79feff3b872fe8bad1fe84b941e6b9bbecb9aa3c8ecdeb3abb338e3b35a86e3c22617ebb9b8cc7b9e5a605ba0a297739677072bb45a1993efd0c303ea2628e3bdf89faba460a283ae1d20d3ade37a73a2f1e27bb265bc8ba7341c93aba333fbb4a1efdbada490c3a53bda0ba4812f63bfeaa7dbb1aaf34ba0150a7bbf1049fbb99323e3c4e64d1bafdf2f2ba0f82cabba1f4033d16e69b3bc54b293be751af3c7c8c8fbbffabf9ba5b4fd3bac75bd23ab6521bbc3435c73e584d9d3d4135923bfc8caebb672f8f3a61e838b8c3a2e33b52b71bbba95ad5ba54a8ce3965e289bbb8866eba360c0e3990f2c1ba5a9c9d3b13948dbbaf449a3a24db17bca14a7cba1d55163c75c83eb9359d803771e15abbe529ea3cbf8abdbb6a5b0fbb8d06ca3c91ae0cbb748a45bb0628c9ba79877739401005bcc05be83ef68be73c5ebf183bb6af25bc05688b3a20133039249e82ba4c7260b936ccfb39c93094ba34346e3a75f49fbad17a5339391586bac5eda93b36f87fbb5185833b30d4653baf9b51bb2ae1773b05e5a4ba85a0c8b9f37b7ebb8bfc603cc31bcfbcddc9a9bcdfe0163c933955bb475f963a936541399f15953b8245debcef81a13ebfa67f3e46c9abbce1e5733b7bd0acbac07d503adf9d6dbbcbb08c3adb0607ba412b83baa1a38abaee6ba8bacd729e395c6c58bb970b403c527957bce627163b0a7819bbe77092bb34b7ff3b962b8aba2735243ad01555bc66a9183d952c93bc33cb42bc0987973c674081bb19275abac8caefb9a69a263bfa68d0bc8daebd3e56952b3eeb365abc6583bfbace355cbab460913a2a8fb2ba37b18dba276c3fbb980616ba48ac93bb1d579bba43896839c7348fbba3f0703cc4f42bbce21c9cba1561d6bb3bc152bb9bae4d3cc7aa17baeae25fb93d2b46bc773c683d773936bcdd2047bb64c8e43c41a936bb367e83bb8bd603bb5a7817bb354f8ebcd00fcc3eb769bc3d340787bba2b6dbbbd1db213800f286b9dddd323ab04559bb9817fd3ac21196bbce37473b61fe0bbb85e7083a976f463af3dd093b07aed936fde9c03b485c2d3cf5b1ebbb2c02be3b423b02bbd57256bbfd5149b95ddf7a3bf6bc26bdf78f1fbd65e22a3ca2aef2bba0cd4f3b273bc53adb4bcf3bb6282cbdd3d8ac3ec5c5943e83351ebd06d4263c35788bbbe5805cba1939003b7d2cbcbb368ca83bbc12ffbb028ba13b06e03cbb81f84c3aa319253b250b263b31363abb4ded723b7346433c611622bc922fed3ba0491abb4bc4cabb7f5449bbea946e3cee3132bdc61421bd4c6c983c19e91fbcb7df9d3bcc519e3ba5dcb23b54b248bd7b5fc33e54637d3e47051fbdb71d3c3cf126f6bb5f63103b91a0b7bb36100e3a4c5e923aeb33edbaaff559ba56479abace8aa3391d94b9bba2635e3ced5786bc3a50ceba8d6a60bb6f3e94bb9f42013c4a124bba21b1693a61278dbc156d633d8baeb0bc9f3777bc639eb03c444f85bbdf55b2bafb81913aae23a0badf89ffbc9a80c53e0798253ee12e80bc15ace8ba4148a3ba5a6a9eb9a6936c3a291092bbfc72b73a195295bb94eb043b5befe4ba17c5333af16e613ac57d663ba707663ad2513e3c58717d3c38f40bbc015ff63b1768fdbabba792bb034b033bad9082bbaece65bd42cd5ebd7d21303cc0a009bc9f55243b42361f3a209b3e3cb3ac68bd00c2b93e608fa03ecfbd5bbd18106e3c68a481bb571bf3baf134a13b98f617bcaf8fcb3bf98bfdbbd02ba33bbf4c4dbbfb389f3af5199a3b93f851bb50629e3be355c43b6385993c061365bcde16103c2d7d34bb3b9517bc6e04c33b6c239bb747ca6cbd1db060bdbac7be3ca13057bc4f389a3b8962a73bd5adf93b2a3b7fbd452fcb3ed51b8e3eab2453bd73be803c79c0cebb07ff01bbdaa4543be344bbbb97a2cc3b153dddbb8b03893bb2c960bb3151843a2e1e4b3bfa1e993a159ccbbb5a2057393bbd1a3c781c15bcd3bef03bcb1ba2ba694ca9bba443f9bb8f79fc3cb4e93bbde08a1ebdf047b83c0dcf0fbcfdc70a3bd892bb3b52d2253b2a365fbd0b81cd3e4ea6683ef94318bdce31213cd845bebb2593da3936cf34badeb518bb8d7b27bbc9c382bb00e8ca3a6071f4bacfa2723ac14616baa23b8f3b88b5d23a89299c3c4b6f893ca41ac2bbb44ec23bef88deba16f931bbd5292d3b0802d4bb1a8b8bbd64a27fbdd9943a3c784eb7bb9516a83a0a4f3ebb30379f3c55c18ebdd638c43ef6ada23ea97e79bd794b7b3ceac153bba8a601bbfcc8ab3bde7922bc25aabf3b58d602bc8ac8a73bb00055bb1865c83a1a31a93bfdc8edbb6fe5483cd35a0d3cdcef9e3c451353bc917d063c43b050bbb7462fbc9c027f3cbe3a8abc328a8abd64af60bd20b2a83cd3883bbc14e8943b860e923b0cdc2c3c5d2d98bdb2cede3ec303843e49083abdd4da4b3c5d949fbbb90988bb499b063c8e3128bcd2dbf93bec9f0ebc0cd0cc3be6ae83bb58359d3a8ff60c3cdf5615bc915cae3bba70b73bf8863e3c66ef15bc777ca13ba22028ba1a4c21bcdb60173b50153f3c137287bd23f22cbd1a1cb03c258ce9bbf379e33a1528b73bc154313c0a7599bd8c97e13e2c31683ece2b18bd737e003c9a039bbbd61512ba74599c39c6658fbb57239bbbacdd92bb273e1c3bef3c28bb1095c93a93c8f539014d0d3c4e1b02bb3a3ffc3c50a59a3c6c9936bc193a163c674c38bbfc9faabb26412d399127e5bb9d289fbd30c697bd2fbbcd3c4d242fbcaa141e3b0ad193bb77fbf93c5cf6a6bd7698cf3eafd9a03e88338ebd2766893cce1c80bb007bd2bad4707b3b68d400bc4003563bc635ebbbad1cec3b61a589bbf973213b1e26db3b518a45bcda1b9c3cb3043d3c4bc74f3c8d8135bc98188a3b882270bbe2a35dbce7f0ba3c5c9dfdbc23ed8abd8f2b61bdd9afe53c93c3e9bbacfeb33b5568a83bd969973c6189aebd7e06f33e2154633ee67216bd2283053bf824b7bb44fe61bbee51de3b532a19bc6961ce3b5481d2bbf40b9c3b92f535bb56b0653a39d3093c4cbf49bcb269563c0d2fd53bc00ef43b138aa4bb4310be3a01d455b976be21bcc7a1103c83dc43bb705997bd22be01bd3c394d3cebae06bb045f893abec35c3be199913c8b65babdb798f73e8b88433ec6b0a3bc911ec8b9b6af16bb6b7e6e39e76bd0b813cc83bbf71c00bc2bf5ebba19abc13aec4c2dbb549ae43aada4f0b957aee03b5fec113be3b2083d037b913c86a536bc6a6b1f3c87394abbfa2ea0bba1e9b23b3ff981bcb152acbdf3f48fbd0abbc03c7a122abc64e1b53a16d0f3bbff68043de059b5bd49a2dd3e4740963e7eb482bd7250753c84c078ba636575ba9156693b23be23bc261492b9ee6c77bb7ec85f3bf14b55bbc1e2043bc9f0983b89af22bc2cbccf3cebd4873c36d8413c78d408bcfa80c53b7dd320bbdf5d62bc6db3073d258e68bd06cd95bdae4730bd1a1e823c30929dbbbc65ab3ac6dc223bc864853c63eeb7bdccb3043fc535393ea8f3acbcf73d973af7a7c0ba0cbd3bbbd7a2cb3ba85513bcf63fa23b4c96a7bb3cf6623b258908bbce646c3affdde43bb8b153bca15d923c8629d13bee87b23bb59c23bb39821e3a367fcdb9cc6133bc247fa03c8c01d5bc06ca90bdea65bcbce342d13bc1d1b1b9e5626c3add5a873b6ad76a3c4b28bbbdf7b8043fcc821c3ef80ff4bb733f34bb395304bb4a5d263bf066e5bae15382bbb2bbf9bbc08f153ae417803a18a50cbb3cb5b93aadc515bb715b4c3b3959393c4b88d03cefd0663cf1941dbc1bdbff3b811c37bb5412c0bb10be823c2e560cbd59a29fbd427960bdb98a843c82c0f4bbc039813abf9bc9bbf827cb3ceb0cadbdc9f9eb3eb47d803e25683ebd55aa223c3cf5323a8555403b751105bb43ecfdbb4f2376ba5d3c91babcaaaf3a007908bb0669d13aeddf06bbc44344bbfda9f33cdc1d463c6a8cef3b0c9b8abbe5a98d3b50d302bb6f8729bce7891c3d9124a7bdf61789bda322ddbc0753a63be607ecbaf6eca6386d08db3a57741d3c3bf2a8bd51270d3f25360c3e3324edbb67fbfa3925ff30b962d720bad4c8393b2656e2bb31cb543b035653bb2428103b6e0014bbb8d2d23a7193143be40507bc0cb3a03c746eca3bace4383be79fa0ba221ec03a6eb7b6ba474a10bc13b2da3c80f749bd59e779bd43d98dbc80257b3b5bd8bab950068e3abe0f943b432fef3b5647a9bd0f600b3f61f1ee3d133eec3ab9a84dbbb8e80abb74e86a3bf817b6bbb2d0ce39433d8fbcf56ac63a6165d0b9371979bbbe9e7b3ad26a9fbb83e2f03a5aae623c6132003ddb03cd3c0d8f46bc3743683cb1635abb2dc0c5ba9ec1893ca8e7b9bc4dc3c5bd67df63bd7ca51c3c152d1fbca6bdde393e7586bc60fe053dae26d8bd1f80f43e5224803e3d883ebd0c52af3c1d954d3a7256993b98ef9ebb4a43c7bbcc8390bb08d003b82198c93a4e4b08bb5e50b83a1e60a3bb29f390b8e519de3cfc3b7a3c3d24e03b9a5ea3bb3f8f8b3bd87b13bbf59a04bca508073ddd259fbd16db80bde625c6bce446b33b3ead9fba7df444bad89541bb4345483c2d37a1bd0ded0f3f2658e33d36e8a8b96e25afba003b423b0a6d853a50ea5bba5f8e5abb29676d3afe37afbaf18da63ae917e1ba7b37b73ac08146bb0c047a3a5a14593cc69d893bc4508a3a95837fbaf1e2e83a5f76c0baaa3455bbb593bd3c0aa88dbd2af105bda4ef2fbcbe18233b3bea4cbac5a1433aa22c003b87ba5e39ad6a59bdb001103f1b237b3dfb24e53b4aec07bba85739ba48da4e3a7c0c10bb600e88b95e3609ba59f62e3a5810c2b9ac36e8ba0ab3de39867c1fbb0d61163cad94babb3e307739cbccf5ba466b7ebb98fdfe3bb7b0e7bac64b01372a15c6bb14a6aa3c437774bb438d8e3b75d26d3c71a77cbbeb80e8b983d580ba52beefb7fb43e73a739d993e2a2a303e62438e3bfc1ee0baecef213ab7030e3a869aa1ba1d11f5ba34d8d0ba5ba38d3ab203fabac4f2d0ba2f5f0c3ac692a63acb20f73be9b3cabb22aed23a348caebbb9578ebb4bd13d3cbda4fcbaff2a28bba3fa7cbbb1d6033d27b71abcaa2b923b860caf3cbacb9dbb93953fbb5809c6bab49131ba94b99d3bfa1fc73e7c6d9d3d4d77293b9672a7bb4adbc73ad762ff38c6d9f1bac678583978f8dfbab2499c3ae98b50bbe43094b820b8e738ef0fcb3b25eece3bc64872bb2d78a63975b828bc0c1508bb9ca5133c38103aba353019bb4c66a9bbf9e1ef3cc69d05bc21a71c3b1d08ca3c478d64ba13b38ebb4f2ce4ba3b749c3a7483c7bbd473e83e9b23e73c773f0ebb49c018bca0d6163a3b0e3039c31486ba43a0c8b92b68413955d5acba235f963ac3e1a4ba366d5339ba9d82ba2ceea93b1c7c7ebb8216953b48ec733be03655bb8adf773b59f19fba597160b954f87fbb1afb603caa44debcd6c9abbca0de163c509851bbb4336e3a88cefb39ca85833beb1acfbc1b82a13e43a67f3e80caa9bcf5db653bc43594ba637e503a016e58bb9f45243a15c9efb992225cba5e3f5abac32e8abab2859e39339f6dbb4d09403c781655bc81a5263b4481bfba3a4381bbeebbff3b976ca8ba65ba8c3a287a57bc0aa9183d3c6ad0bc103d5abc4288973cea7292bb83b18aba3f0607ba5832163b742e93bc76aebd3e76962b3edcd142bcd47719bbc81f83ba3f709f3a9cd295bbbfc810b905ea06bb1e4f9f38df4484bb136814ba7407643950c3d2baf717793ccfeb49bc212212bb0793ddbb126534bb573a4d3c65f698ba992085ba3b3430bca478693d9bcc8fbc781884bb355ee43c0f4e50bbae9694bb2c3141bb5d0295ba4f6e39bccb30cc3e7810bc3da12142bb0599d7bbc3070abab2f286b95970463a0e7356bb113bc53a2a788bbb64cd4f3b3b3a02bbdde4083aa4de323a95dd093be24b49b9a84bcf3b29d4263c67aef2bb3301be3b6dfd0bbbeb4559bb6d74da36ddde7a3baa282cbd89351ebd7ce22a3cbdb1ebbb9f37473b8217fd3ac9e9c03be9bc26bdd4d8ac3ec2c5943efd8f1fbd6d5c2d3cb81196bb44815cbad619253b72c4cabba9519e3b5c26f6bb63df9d3bc3491abb6cf94c3a4b39003bb70a263b285449bbd0dcb23b6e1d3c3ccde81fbc1a2fed3babdf3cbba52cbcbbf4353abbcc946e3c33b248bd53051fbd496c983c0e1622bc7f8aa13b118ca83bb3ed723bcc3132bd7a5fc33e4a637d3ed01421bd2f46433c1512ffbbf632123b5f14bbbbd6a3703a55e38f3a8d07a2ba854fb3bae07a4abab9cba239a63ab9bbc1ab5f3cde8e8dbc64e69cbae882eabaecfe84bbb91e013cc03d99bacf2b153a81c386bc99a8633d11e4ffbcbef67fbca581b03c37ed93bb04085cbaa1c8903a9733cbbadc09b1bc5487c53e788d253eb3d476bcdc4461bb30f4ebba566b9eb93c70613aeba792bb0c381f3ac7a481bbd555243be967fdba0ac5333ad7946c3a327d663b6b4b033bf49a3e3c50106e3c55a009bc615ef63bfaeee4ba671092bb040a663ad19082bbaeac68bdbcbd5bbd4f20303cd6f30bbcc5eb043b3274b73aa2513e3cadce65bdffc1b93e608fa03e32cd5ebd92717d3c6f5295bb571bf3baf5199a3b3b9517bc8962a73b79c0cebb4f389a3b2d7d34bbfb389f3af134a13b93f851bb6e04c33bd5adf93b73be803ca13057bcde16103cbf4c4dbb98f617bc50629e3b6a239bb72a3b7fbdab2453bdbac7be3c061365bcd02ba33baf8fcb3be355c43b47ca6cbd452fcb3ed51b8e3e1db060bd6385993cf98bfdbb2cad01bb7a8c4a3b430ea9bb0151bb3b74f8bdbb1e6f0a3bba9ea1ba4709843aea09543b8ee79a3a0999f9bbce47263b5012213cafb00fbc5b91f03bd28a60bbca01bbbb6ff6cbbbf88ffc3ca53f5fbd823c18bd663ab83c49ff14bca0bc883bdd70cc3b698e5e3947f33bbd5c82cd3ef4a3683e66831ebd11a11a3cadfadcbb818bda397e3f16ba5cfb31bb0e4d3ebbf6c253bbf918a83aea8adebaafa4723ae0c734ba493a8f3b6d2d2d3bc4369f3c6c4b7b3c584fb7bbaa4fc23b6273f4ba41b818bb0ebdd23a4e05d4bb3cc18ebd157e79bdb8943a3c9a1bc2bb83eaca3a5b7927bb0b299c3cfb8a8bbdff38c43eaeada23ecda17fbd536f893c6bc482bbaaa601bb1d31a93bb8462fbc800e923b5a949fbb15e8943b41b050bb1865c83afcc8ab3bfcc8edbb9d027f3c0bdc2c3cd7da4b3cd4883bbc907d063cb20055bbde7922bc70e5483cbe3a8abc5d2d98bd49083abd1eb2a83c431353bc8bc8a73b22aabf3bd65a0d3c328a8abdb2cede3ec303843e64af60bddcef9e3c58d602bcc8f787bb9ae00c3c052521bcbfc8b63b54cb9abb5357e33a7e2c28ba29279d3ac686063cdd3c15bc8ff0163bdf79313c305d003c6c6ce9bb026ca13bea9983bbad1128bc0826ae3bcf2c3f3c3e7899bdb02418bd1e0fb03cfdd615bc9194cc3b9b7ff93ba3b1b73b5a7587bd4e98e13e972f683e15eb2cbd4d643e3c646f0ebcd61512ba93c8f539fc9faabb0ad193bbce1c80bbaa141e3b674c38bb1095c93a74599c39014d0d3c26412d3977fbf93c2766893c4d242fbc193a163cef3c28bbc6658fbb4e1b02bb9127e5bb5cf6a6bd88338ebd2fbbcd3c6c9936bc273e1c3b57239bbb3a3ffc3c9d289fbd7698cf3eafd9a03e30c697bd50a59a3cacdd92bb007bd2ba1e26db3be2a35dbc5568a83bf824b7bbacfeb33b882270bbf973213bd4707b3b518a45bce7f0ba3cd969973c2283053b93c3e9bb98188a3b61a589bb68d400bcda1b9c3c5c9dfdbc6189aebde67216bdd9afe53c8d8135bcad1cec3b4003563bb3043d3c23ed8abd7e06f33e2154633e8f2b61bd4bc74f3cc635ebbba06d61bb7694093c518921bc925b5c3be19616bb0473893af5b256b9fcc3653a0ebcdd3be45949bcff53103cbdaf913cc95ecab97b9d06bbe013be3a6ded35bb53db18bcc412563c1dbf42bbc36cbabd799da3bc81264d3ce678a4bbd0f49b3ba1f3cd3b7a9bd53b856097bdb09af73e1485433ecbb401bd76dcf33bb54bd2bba27e6e39bda4f0b9f72ea0bb1bd0f3bb12c078ba3ee1b53a8a394abb4b9ae43a216cd0b856aee03ba4e9b23bfe68043d7750753c82122abc776b1f3cf04c2dbb10cc83bb63ec113b3ff981bce159b5bd7db482bd06bbc03c8ea536bcf5aac13af91c00bce2b2083db152acbd49a2dd3e4740963ef2f48fbd057b913cf4f4ebba636575bac9f0983bdf5d62bcc6dc223bf7a7c0babc65ab3a7dd320bbc1e2043b9156693b89af22bc6db3073dc864853cf73d973a30929dbbfa80c53bf14b55bb23be23bc2cbccf3c258e68bd63eeb7bda8f3acbc1a1e823c78d408bc7ec85f3b261492b9ebd4873c06cd95bdccb3043fc535393eae4730bd36d8413cee6c77bb50a73bbb05cde43bb35933bc844f873b0a4804bb095a6c3a6e7ccdb9805a6c3a5b8ecb3bf3a453bc3a7aa03cf6dd6a3cff4c34bb0bb2b1b97b861e3afe8308bb7e4a13bcf857923c3cfdd4bc3229bbbd9a04f4bbcf3cd13b3d9723bb47e7623ba52ca23b1838d13becca90bd1ab9043f4d821c3e5f63bcbc1c80b23bf588a7bb4a5d263badc515bb5412c0bbbf9bc9bb3cf5323ac039813a811c37bb3cb5b93af066e5ba715b4c3b10be823cf827cb3c55aa223c82c0f4bb1bdbff3b18a50cbbe15382bb3959393c2e560cbdeb0cadbd25683ebdb98a843cf1941dbce417803ab2bbf9bb4b88d03c59a29fbdc9f9eb3eb47d803e427960bdefd0663cc08f153a8555403beddf06bb6f8729bc6d08db3a25ff30b9f6eca63850d302bb0669d13a751105bbc44344bbe7891c3d57741d3c67fbfa39e607ecbae5a98d3b007908bb43ecfdbbfda9f33c9124a7bd3bf2a8bd3324edbb0753a63b0c9b8abbbcaaaf3a4f2376badc1d463cf61789bd51270d3f25360c3ea322ddbc6a8cef3b5d3c91ba8ab120baf984143b454710bc7e0c943b5fe50abb75038e3a45b5b6ba02cfd23a62b8393b870107bc68b0da3cd732ef3bb3ac4dbb5ec8bab9841ec03a41fe13bbc04ce2bb37b1a03cd4f649bda847a9bd3050ec3ac9207b3b2c9fa0bacc23103bb8bc543b0873ca3be9e779bd1d600b3ff7f0ee3d4bd88dbc9de1383b144e53bb3bef6a3ba26b9fbb7bbcc5ba207586bcb29a4d3afabdde39855f5abbcf937b3ab018b6bb79dbf03a87c1893c42fe053dcd51af3c2e2d1fbc9c41683ce21479bbfae0ce392bae623c96e7b9bcac26d8bd3e883ebdcda51c3c348f46bc3463d0b91a3d8fbc4232003d4bc3c5bd1d80f43e5124803e64df63bd9803cd3c226ec63a7256993b1e60a3bbf59a04bcd89541bb003b423b7df444bad87b13bb5e50b83a98ef9ebb29f390b8a508073d4345483c6e25afba3ead9fba3f8f8b3b4e4b08bb4a43c7bbe519de3cdd259fbd2d37a1bd36e8a8b9e446b33b9a5ea3bb2198c93acc8390bbfc3b7a3c16db80bd0ded0f3f2658e33de625c6bc3d24e03b08d003b8d178853a3d8746bba32f55bb2b29003bdc4439bab489433ad56ac0baa62cb73a34095cbaa61d7a3a2893bd3cd2f15e39caee07bb14db4cba24dbe83a640de1ba47885abb4c13593cf3a78dbdd16a59bdfc26e53bf715233bac7b7fba2485a63a5d516d3abe9e893b6ef105bdb601103fd2227b3d26ef2fbc6f4e8a3ab731afbaa7c33a3ab08e00bbb345d6b9d56989b9e7fc243a1594f9b98e52d6ba8861c93919b623bb057d0a3c01029abb372623b54979afba015872bb447afa3beaa7e7bac17b4c3a8845c5bbddf4933c5858b8bb777f773ba6bb6f3c25e585bb9fe11eba78fa8cba578716370237293c0c02953eb981343ee7a78f3bb2adbebaf8c1063aed64913972cb17b985481dbbc04915bafef8a73a713e36bbedd790baab001b3a85c83c35c4ae1b3b4c3862bb928c7f3a574a83bb41459bbb9743563c13e535bb9274d33acefbb03b875f6c3c91d15ebc68ffd83b043ec03ce42f89bbcc8962bbe67c36bb9686e2bb9957283db4d8be3edc94923d3461613bbacccfbbdb6c963903d4e3b741582d3bf3ef0bbb9691ac3a70e4a9b8534cc2bbaf4883390ce73f39510f4e3c0f2640bbe8cc56bbcb8a5ebbf94e2bbc2249b4bb8670bc3ce3c689bbf526c4bb63dfa43c3ad1913c70c31cbda557fa3ad328263d3a477cbb083c16bc001f00bba3a5943bbae46b3c7b5fd93e24c4593d6b95483bc751c6bc08cfa83a4f861039ccd57dba426607b9eb72a8b918c394ba6314883a5ec986ba5a9923391dcda2ba57af943bee476bbbd00b9f3b4e566f3b533d3fbbc02c5e3bb82995ba58387e39a18262bbab6b463c2c2dddbccaeeacbc05ce103cae3e47bbc904273a6de8043a8a957d3b913ab0bcccbd9e3e0a47813ec59aa4bc6529523b085187baee880d3a21fe1fbbe531af394f540fba1e49fcb941c788ba772088ba2554923919ab85bbfa1e183cf61634bc7fefb83ab63888bad0dc6bbb85b8073c09e8c7ba4bcce73a12fc31bcd846f53c97debabcd83467bc3b3ea83c42bbb5bb34e49aba3ed35dba6968c03a65b2a33b1d92b13e9401313e7ae129bc668892bb6fd0c8ba12d6293a9e2d9fbba7f71eba5486c0ba159c18b9ff098cbbc820b8ba48cc043a5d2d893b1c070b3c6db53cbce1c18cbbc402bbbb2a3c8fbbb9be993cc63d47bbb7f561bb9da4f73b28172a3db2b696bc0a333bbc4080343db1ce13bc58e0a0bb5baa06bcaf458a3b35472f3c31edb03e6078013ee64e8cbad67d48bc63d312bb5fb672b99ac6373aea322cbb2f004a3a00c376bbf289393b1bbad9ba7cffe639abb2b039452bee3abcc610ba2e4be33bc3131e3cb7b2d7bba017a83b984600bbd65630bb664c94b72fdf363b79e92bbddaeb1bbd3276193c3a97cdbb59e6153bb07efc3a82cabd3b08781cbda773ab3eea9e953ebf2620bd47a8223c5d5686bb0fcc11ba8280133b6cc5a4bb8ff16e3b11e8cbbb527b863b47d0e8ba6e72143a10883bb98c3b1f3bc64e5cbbdf9dd93bda40163ca3b0f7bb6562b53bb14215bb2a573cbbc78922bbf4c3163c11b83fbdc43d1fbd72ea9a3c6b9918bc2c20863b0640523ba5602e3b8d86e8bc5f3ebd3e9668803e1ecd26bd398f233ca69ad1bbd92d963a8bde5dbb1596be399804093bdbe0e2baf121bbbaf89f3dba21d4aa3928daadbb0e1b0b3c3f7a89bc35312abb192511ba15b487bbed3e0d3c1c8bbcba8e8aba3a1eb12dbc8d5f413d886ceebc35ce91bc2b30ce3c0d8adbbb01e01eb9984558ba994e89bb50dc363caba3b23ec19d373e2c3493bc06e6cabb6b782abbdd4ab9b989f2923a7b5785bbb1e893b9e67e52bb82e4153b21daebba03611d3ad823323adcdc303b6c3f4f3b5169403cb2ae5d3c28b1e9bba6bdd13b8366c1ba7fd071bb32e50a3a2f4fbfbbb68a68bdc86258bd8f26173c58b7e3bbf60be03ace83863a36ba4b3cf03c5cbd66e4b83e534ea13ede4364bd19cc7c3c3dd79ebb2f41a2baa4468d3b8198f8bb24b02e3b70c194bb92a7673b0bf3d6bac1d44e3a88a9053b6e5f80bbb974073c3183093cfd5d613c764c2cbc06c4c33b6e3029bb874b6fbbafd6753b975fffbb319478bda4d750bd8bf3c13c089145bce494a43b9810f43a6f96df3b569b32bd9f0ec83ebabb8e3efae475bda7b08d3c8c13e0bbbb180bbb7918cc3b8288a5bb682a623be9fc78bb1a02063aae5bb93823e0e039d65efb388031eebbf9e889ba3f410f3b75a73b3c836116bce15ab53b5ff133bbe51d0a3b66693fba016a863ccd6f61bdeebb23bd50e3e73ca92c2fbcbcf9b33b81f58b39d339b0bac850bfbcd1aec83e704f6e3ee52342bd2137153c2817d9bb7ed5c6393c9242bafe2325bb1d0b64bb512f3dbbd1f3ac3a4f5bbbbac8ee393a404d26ba9648873b88e7943b71a2973cad90723c7a6493bbbfd9903b468aa1ba1a53e5ba353b7f3a773c13bc4ac48dbdb06f71bdc529123c89c771bb482d853afaf642bb01189d3c6e1882bd4a12c23e4017a43ef4e283bd14c5873c0b6c86bb66cbeab8ad92c53a49e9f4bbffc28d3ac73507bba5f7033b1e2bb8ba64f4683a849b963a396d85bb8d1da53c2f1d1f3cfcc3363cab5c1cbc8260c23b197624bb57b4ebba518ad13b2dbde2bc2af195bd7e8935bd6317c33cd5aa47bcb3f5903b02f2a9ba9569173cfc8d37bd307ed93e6aa0873ea21491bd1ca6b23c4cb7b8bb9c3225bb0d93213cd1a141bc8c1e613b3dd589bac9288cb919a8f539ea179c3955b7fc3a87ed86bc35458a3cfe11ef3b12720c3c0dc10ebc2a178a3bf2931fbb6d03153ab740643c58d74ebc43f094bdfb1c17bd2b1ff83c475060bc13dcc03bcbba05bbd05460ba666e16bda507df3e6cff673e3b1d72bd14de923c9a53bdbb66e8d1b79a102eba8feabbbbb2ef60bb49c792bb0c9c173b628112bbc2ed843a3ae669399ec5013c77c4d53ba4f5cf3c3e217b3c5238b6bb46d3a93bf8f083ba75119abbb92a663acf568dbccc909ebdde0680bdfd6a7d3c8cf7c8bb9ab5c33a309076bba587dc3c51be8cbda2facd3e71ca9f3ee10697bd5764a23cd664b3bb4ed4c23a22af2bba951f45bc2f15cb3b97f7a6bbb866553bb34308bbb760a63ac6e179bb20dd963bbcd0de3c87fe583c14945ebaedc1e0baabc21a3b4393ffba2ca06a3ae741133c988666bdea24a3bd498bc2bc113eb33cfdfc43bc56afa43b64ea53bbf916d73b4192eabcfa68ed3eb6a8643ea0959ebd2da7cb3cba32babba42f32b9bae4a13b7c6f55bc25ebd63b1dacf9ba037f8037cfe9c639526057393f542dbad87f4fbc893cfe3c0a11863bed455c3a857b49bb1bd4013bf47fdcba62b647bb20d8de3cfd0d53bdf5799bbd001454bc392e923ccc051fbcb5ee8f3b7bb6153bbdfa44bc69acb0bc6d13f53e8ac9363e547e55bd1b36983c2d9db3bbd8b93d3a334100bbdcd3bfbbabb0adbbbdc3e4ba048daa3a323a0dbb2077403abde24839e744da3bf69e413c6838da3c719b553c14c4dabbefcbcc3bf1e205ba6c0797bb0fdb7e3ba6cfccbcedc2aebde15d66bd1961913c5ef8f7bba0b05839679cd0bbe348ee3c7c6f94bd5dd3da3eb556963e4be398bd5147a43ca1f73ebbd7da183b3edfcdbb67ace2bbb4976e3b25e30abb21ce153af23f1bba7c41fd399ab16abbb24d233ce2650b3d3a5e6b3bd5a92eba635a5d38354d0c3bda1b8eba4c9d53ba6a854a3caf47adbd3aac97bd6e4182bab095053c07640cbce41b623b030393bbcb76f73b996dcabc13e6023f8334293e4c7c88bd90f7dc3c5032bcbb4bbebf3a330940bbab91d6bb3d14b13b4ce708bbc718173987f7dc39c1b7ed3804b2eaba7e2ee1ba0144103d4b3dc4bba6faf13a3bf5e8ba69989a3a3440aabacaa2cebb7e9df23c45fcaabd74d983bd143fc53b6af1a73bb80d91bbd970483b3dc3d53be245a5bc1bc1b83a5152023fdbb6003ec2a41fbd6bd1793ca9aab9bbb293df3a5cc949bbedb6debb2c3b89bbd5c9f539b044ac3ae35c37bbd29b5a3abc600bbadb57aa3b6652983c8023ae3c0bd4003cc271d1bb73b5e03bfd491bba0f2558bb1eb4c53b8eae10bd3d7eaebd334624bd625c843c5eac27bc0878b8b853f503bc73afca3c645288bd740ae83ee788823e13ea83bd5ee0923c17340f3a39d20d3bb0cb1abc92b267bbf1f9303b4d971bbbced781b8985387ba09085c3ad033b6bb85cd863c0ae30c3d13e552bb913d123bd3a6793a3d66453bf3739bbad584483b4ad3043ce19acabd503385bd3215313c41098dba459edfbb64ef213b960fb8bb5617833b937379bc645e0a3f6409f03d24a646bd997bb53c4c1c61bb3530ce3a8fa4febb3f46eeb820ad623bb07027bbdddd893aff669cb9b5bebe393b145ebb7a9c3a3c7518f03c60a527bc1036a43a9bb018b980bf4c390fc65bba867e8abbad60a13c1eaacabd415b58bd80ba9d3c2a1074bb4a102bb9b968e13a3607cf3b49d4a1bc8bf7933ca758073fdadfb53d17f80ebdad2b633c73cca7bbf41d6e3b76d5a4bbe0d794bbd09478bcbe71e43a657620bbc3bde3ba5ff95c3a222abdbb27c38d3b9a0da43c3814023d4ea48d3c9fdaa6bb96db393c97b48fba842d1e3a9083213c29b3debc1886dabd5b1a17bdf1d6ea3bb05b18bc045485bb6c368ebc2194fd3cb2e1a9bd6d77f43e6502753ee3416cbdebf8c33c2bab383ba94a4a3ae0363ebce75fabba638e43b9f144d3b918d99bba863133ba9b93053acb24b1bbe0619a3c5338f33ce91d85bbc076e43ac1017c3be477d23a131b47baf01f523b7ef9b73ba9abd2bdd80a45bdc9c2943c5e89bbbb9f31a2bbdf23083b5e6e2fbb92db843af7ef8cbb9f3b113fe31c683d1440e7bce184723c4f645fbbccb521bbc73adcbbd50c2f3bb0147f3a922881bad4fadc39f21f3cb92db4e3395fd377baec91af3c34a79a3c13ce58bc01d3933b9f3cf2ba3cc7383aa6f669bacf0b40ba6be89eb9cc53dabd43c2c2bcdacb8e3c1537abbb7749923adda84e3ad30d293bc25d2dbc896de43cd66f103fc0eba93c31ff65bcbb12b73b91e2efba422c143ab9eddcba3b9523ba5f3de338c9b4183a9f2a20ba0f0ac4baa3c3b939db8c2bbb1501fc3b45a082bb3e02b53971965bbaf21a69bb77bef63ba8cbe2baf6f6b93a468bd1bba116693c76afa2bb9d5f793b83a96d3cccab85bb5d7a64ba8da072ba2499563a64469d3c3d8f8d3e12453a3ef061bb3be1626abad300a3371c401e3a33e3c4ba4d1711bb8e533c3af925ac3af7b71dbbdd7883ba4a070c3ae18d04bc00e8aa3ba09e7eba07b101bb97c652b90c4ac0bb4941623cbc6858bb28ee8e3c3c6e0ebcae899b3a7cc7c0bba83b043c5fb2b03cb8fd75bbc8c74bbbb2eaa0bb896905bc5a1bde3d0d30a43e6b66893da3605d3bd6e2a9bb10e13abbd4e305396690debb02f8c93b0788b3bbd2d9613bbf7e01bcb437183bd483e838af1e76bc543eec3c80cd8cbbd8d9eabbab04b13bc8709ebcd2b2f93cece909bc1b344a3d0d2222bd20fa383dcaf74cbd26e7b1bc148b453d872c4cbc3406f8ba754841bc762e5fbc26133e3e7b39933ed0f1843d682572bc4cb2cbbc1313f43b771fe638e3bd56babe4c65b91d72adb9f6148cba1e1e7b3abdab83ba4e8116399033b2baf83d7e3bcd8c41bbe1b9953b27216f3b17ce35bbb545563bcefe97baf3899139477f4abb076c243c1ff2d1bcfd78adbcd68d0d3c0a9340bbd68ee53912eb3a3ab121653b142d8cbc549a9a3e333b833ebf159dbcbc08573b238e71baf8a3d83978b0f4baa97a1cb91ebb86b95513b3389fa18fbaa0496fbaba558739cc5faebbb8eb083c3fa021bc4d101739b3beabb9b3c369bb408b0c3cc1a0eaba3d57543bbf212ebc4f50a93cda6485bcb30249bc7d81a03c43c0dabb978bcaba5f3985ba7d35183bf5aa053d81e6a03ed5dd343e2150b5bb5525c0bb35f710bbd5281b3a470d85bb6e5612bad01f69b94c22843a545281bb596730ba554ae039ca692abc06f80f3ce72e59bcb633edbaeafe6ab8b72ee0bb8393923c1b9c8cbb7ef7653c6711773bf4e0ef3cb9c430bcad264abca2421f3d31681cbc464f5abb8911fcbbb8a1273c8535a83d68c9873e15370f3eb5b5ccba54f48dbcc5355fbb5054d0b86f3e6639fda303bb700137397b4a40bb0246133bf182b5ba7668c63956913ab8904d0a3be6f97aba4c56f33b90070c3cebbec2bbd9d0943b2582e0ba54d30dbb814c15bad9600b3bf2eb29bd27c219bdd0af0a3cae53b1bb7072da3acc3be83aeef5c43bed2211bd7e12a93ecb0a973e49841fbde985173c520367bb3c6cd5b94017103bdd5b90bb9097513b8831afbb2b70803bc95df3ba14f5f239bf5127bbc94b913b6d2a95bb2f92093cbc22ab3bb20a8abba5c9423b63728dbaad85b8ba28f429bb47e2133b6c6b2cbddd081abd82d7963cb8f70dbca331513be8bcd73ab893973b101c66bcfa49b53e8871813e497a1bbd8b9bbf3bb9a7a0bb42f1ff398ebd03baf49867ba5d98213ba76c11bb372733b90dcfc1ba57899339ba3e21bc3a550a3c149681bc6bf1eb3ae8b45ebb6e3ac739d1408d3bc96e173af435bd3b4d70a3bbebd9b23c9073b4bcda959ebceeaccf3cc4f910bcb0f52d3ad850bbbb3d35873b2df02d3d1236a43ebde03c3ec76b80bca16c17bcabee81bb0ddf7ab92e452d3a783b47bb5e8e8cbac34225bbfc84b03a20ac9fba0e96fd391873313aa88a253bc2fe353b0ff0423c82ed573c69a7b9bb6feaae3b2668b9ba27cf4ebb169659b90a8ad0bbb20b65bd51d758bd666df73b3368b0bbee92d73a8657fb39d0045d3c272652bda590b63ed2c1a23eb27563bd6e116a3c43ca9dbbce9b2dbab67d2e3b03f3bfbb48ecec3aca5f5fbbb6e0423b1fc0afbad1a40c3a01b64339a92e84ba9943083ce096123c0e612f3ce72d08bc36a4813bf308e1ba1adab6ba277bbbb81b8d7cbca46564bdb42d4cbdb023c43c083c32bce8fdab3bbb040bba782f543cf09efabc176dc23e363b8f3ee7d375bdf1ca383c730fcabbec46af3abf4816ba342bfd3a170ca1bb9bcc973abbb71e397cafd4b95c36d63817232abbbe2aeabbcc10a03b0969043ca63d2d3b8a0fe6b9c08d17bb5dd6aa398481623b3786db3b173d95bcde590dbd49955bbd20222d3d40daa0bcf6e7233c125729bc9885943cf5d128bc09ebc63ebb47663eb34643bd8e999b3b63bcd9bbd5be9439c6aa52ba1c4d27bb11c151bbe43755bb475a923a845a73ba15a3e3397225b8b96a8d9a3b28d58c3b4b70973c078f703cde9966bb3c18693b95ca69ba57580bbb3bc12db9ee9018bc98088dbdc3466fbdd9a7f13b74350bbb5a8b133ad1ca37bb4a42a33cad6976bd0d4ebf3efd42a63efa1788bdfbe3863c6caa8ebb8e5d89396c0600bbc50e9cbb940f7fb5568a29bab9d6a83a2dd28dba5ed7133a5bb4343ae4a28c3b0b60983cc903113c1dfb093c9e700fbce7799c3b5c9fc1ba576de4388d9df0bbc0c407bdbbb68abdb28e2cbde19cd73c48461fbc4255413ba6c167bb2787973c4376bdbc6e4acf3ea3ab8c3edceba5bdbeb56c3c560455bbdb0bad3a9ed927bb44c0e0ba736f78bb1474943b2650e6bac44d1d3a310b94b867aab6bad0b4e6bb8682d53cd3bf603b4d3b6f3bd87be3bb8328de3a4c3948ba4643f93bb0637e3a7c852fbd2ecd59bdeeaf29bdf2862e3d677b8fbc4194ce3b32a66bbcf161af3c9fc109bc86f4d73ee233663e921191bd0601143ceabc9bbac68fc2b94421a6bae77a98bbf6c87fbbfcd47ebbaf37e83a3bfdbfba3f0be1391daaa63acabb093cd944ca3b029cc63cc1b0703cb0128dbbd6be743bdf24ac37549babbb9242ffb9169c8ebc9b379cbd3d657abd8a2d5f3cbcf58bbb68b80c3a58ef67bba790dc3c982d83bd2809ca3e55eba23e7a589dbdb45aa33c4aa2b3bb4647ddb99e8f7dbbe17d03bcb845ad3be3fb77bb2799143b8f810fbb8564893aa6420dba13ce9a3caa769b3c1a953c3c7d2f22bb3652bfba1be3413bddecbcb96c84263ac28d57bcb7407bbd346f8bbd6a7bb5bc67bad43c21354fbc5f3ee03a9c6401bc9775b53c4005dcba7be5df3ede73753e1181ccbd26dab93c92ec97ba9760043aee92a6bb838f32bbd8a2443b9089d5390dd5c2bad0c24c3a08b2bdb8f1c764bb2525243c6cc1f43ce70412bccc7a223ba1308dbba587503be31e8dba6359443c178e3dbcb94a96bd74674bbdfa672bbc9e82e03cf19772bc03a2663bd4f762bcbeb9b53b5c12183da1c9e33ed70d3a3e876fa3bd4abb8a3c5035b13a4bc81eb9122926bbd97eadbbaadf9fbb6365bebab51e883a331be1ba76e19439ef350b3b4de6003cb1a03a3c99f3cd3c13c24c3c5d04cbbb4839af3b3934ee395ce9b6bb155bc7396e06cabcf066abbd653c62bd333b8c3c713fbfbb4a296aba6865c0bb3e28f83c549786bd8d72d53e2ee89a3e16b8a5bd287aa63caf0949bb0b0111bbcf06cebbcce741bbb2277b3b0d172cbbad12e339515766ba40f53e3a03be153b9f8ec33ca3c2a53c1c1ee23a05d57ebb252de33af1ca243b23e114bab7500b3a4ec289bcc94baebd4b7169bd6104793bf43d813c39f270bcb854373b348b2bbcdfdcad3c34ce833cb6e0f43e9a23373ef8dcd1bd97a50c3de52a48bb4a95cfba5f4de7bb8dcb8e3bbd0902ba1c79063a6a02eaba83cbb73afc24adb91d3e50388032ba3c068a983c6e947fbc28f9a73b2c24b2bab898dd3a1a5663baf9e31a3c45bab5bc9e57c2bd16eeeabc2ad3383c3eee0c3c346326bc2f6c443be3eae4bb54b38ebc83b9bc3d2c79ea3ed59af93d748892bd1ed3bf3c2362a7ba5117023a4bf386bb084cc3bbff5562bbc3aabd3870dbda3ad10e26bbba668e3917a7f43a5786df3b6b0f933ccb22a33cb840e93bbd50c2bb3b95b73b9ce54f3afa2364bb425dda39d7fa07bd55a0acbd33b521bd0fda8b3cfc6c14bc80a8e1bac3fa09bc814dd73c2e7e6abdd89ae03e64e3883e314997bd0d9b9c3c94d9a23a2165acbb15bdb8bb94f7e1b9ae951c3b04652cbb42dcbeb965bfefb923d95e3a47f3913b2d52c83c924fb33c30a2c4bbe9772cb9ff861a3b0ca0533b726dbaba81a16d3b0828c9bc78cabbbd63c051bd15b0ae3c2f77813bf3996fbcd3cc6e3ba0272ebcdb517c3c29bef93cc240023f9141fa3dd608b1bdb497123db33759bb9544b6bbeb9150bb1176823b2d55923afe3229bbef2c123adfe3a63851455e39d225813b2337fa3c5902803be69536bc079d243b65b0443a86b87c3a173c4fba686c893bb932ffbcc0bac5bdcd91aebc2494ea3cfa04e3bb10312abb910fc73a1f7bfd3abcad00bdb1ad013e548eeb3ed5ddbb3ddbe196bdfd6ae83c86719cbb00cae03a25b291bb90c08cbb39f081bc386355b9a979c9baf1941cbbeaf78d3a81ed74bbd5b3ac3bddc4b63c21e6043db8278b3cdc846abb8c65433c7e3886b932021e3a56709b3b5d3ddabcdb03ddbd44c81bbd317fed3bc74829bc5a339ebbb90183bc21c6f63ccf7292bde387ec3ea168813ef44889bdac63e93ccab5703a0138e6bbb73ed8bb222ec7ba6d75433abb4801bbbaf008bb22cda6b78f16493ac129a33b7d9dc53c1b55c23c473eefbb5d42dc3a807ec03bf862683bbb5bdab915db973bea87e6bca6e0bebd628e19bd9123e43cb93e00bce7482dbcd1f7d03a8149a6bbf64f733bab86373df8d70b3f56bf2f3d0c4c59bd0a5e003df671ccbbe01b15bc43a8103af2c4223b6ce113bacba927baffdfe0b9c73ded3920e6bd390bb1223cc1eae93cd60484bbdd92f3bb415dc23b08a9daba9834613a751297bae37ed73a6cfa47bd0078b1bd24f6ec3992e6a43c25d741bcdadb063b9dacf13ac644f33baf1322bdc5d1193ec5bdfb3ef221fa3b13f20bbd679aa73ce869d8bbd62fee39f9d1c3baedf2e9b9beef61390f03233a933023ba802bb3bad999b83916ad33bbb395f33bac2f69bb0d80d939d19cb1b9e97655bbc302f43b49fee3ba8c2bb63aea6ee9bbe638353c2c2f1cbbdb26903b2464633c1ad6a3bbf9e052ba3bffcfb9ef28163ba89dc93ca5a5843edd67423ebcaafc3be2a77439150a2fb9aefd003a3e42ddbaefa9fdba6ad0a93a85edc23a1051f3ba738d46ba4b45cf39fdaafebbbe99313c238bc8bb36229fba028d1a3b3af28dbb7e31363c936c26bb518f3b3c108fb4bcfdbde6baf0a6f43b8677583cd004743c1f19b1bb128412bb283654bb2aa2263cf8cf113e5e12873e4dde963d313e5e3ab267c23ae21593bba855013825bb08bb28d6923abbaa61ba71d8963a16faf5baf91897395c114d382f11efbb57338f3c50a8f3bb9501e439a6915a3b6fa30abc2eae4c3c407b38bb3cbfd63aa22cfbbc93c4193d68e05abc1b6f33bb0435c43c45d252bc4f1c563b2e89583c1e71823c8d53953ee5e1453e771f9e3cc38b03bd051e11bcc99e99bb9af9993814b654ba1d8325b9d52ef6b9aed377ba6693313ae3fb6aba3559083959f5aebaf6f8653bac502ebb8d568e3b0ee8733b478717bbfac63e3b10ed94ba06205f39b2bb42bbb3f6093cef07c4bca69eabbc8d73083c83643cbbb25b0639ff8b553a3c126a3b2fd666bce629963ec33a853e40eb8dbc76184c3b19871cbaefbf8d393531afba9ddf3dbae6be0639bce336398db284ba05f65dba52d16d39840c9dbbd703013c602813bc23235d3984e21d3958d869bba94a013c6479d7ba559d0d3b07485ebce656603cdf5301bc622df1bbfa91773cb9f9f6bb3e900dbb4d0d99b9574beb3b7fac453d045f8f3e04183b3ee957273b4adf89bb046f30bb49af4c39f4490cbb5a5e2ebb18e8773a0f86ce393700c6ba271aa0ba49ffd539d0fc19bcc268013c84ab39bc786ddeba0464a43b22adeabb89b3453c108e3abb38f5213c95b286bc26b2663c2cc1b33ba716cd3a5324c83c627d21bcd0b2a1baba477a3b07fab73cb949193e9370473e7f98073e3d8f993b060454bc011720bc3ade3ab87c22aeb8fb10a4ba305cadb9b5ca26bb8925f23aa66386bac0a78f391227bdb9bf831f3b2b769dba46faf03ba256003c1529a1bb4ad8853b9f52c1ba2a0406bb31fad2ba4cbef03a06a124bd506c17bd8382e63b5e429dbbe9de203a25b0cf3aca3ae13b1bc008bdf8e3a53efe8f983e52f318bd9343073cb8031fbb6bf49db9ab71df3a60d375bb176a403b9a4796bb02626f3ba80af7ba3754d739566d77bb1048f23b2ca5cdbb1d05263caabeb93a47e723bafb733e3a71b9a1b877e732bb90996abb36c24cbb714a15bd612611bd77ad7f3cd20b0dbcc98c0f3b07791a3b20f6003cef24a6bbd8e9ab3e2e28833e6d36f8bc3e4d033b649276bb8ba504bac0200d3beb2085bbe58bb13bbe68aabbc709583b97e93abb1334013a466a30bcbf80613ce5f798bc471b173ce91816bc25efe03bcbb514bb12993e3b6ec087b8ac8fc0bbf7ffdfba73db13bc3373a4bc6665bd3c090759bc90a60b3ba60a20bb11138a3cbb20823dc8ef943e67f0423e6271dcbb3cc850bc875fb8bb940cdfb80af58a386a6d04bb8911c8baa5a50fbb45375a3aeb196dba097fc03977b7c139697a5a3b3643183b8fbf3e3cff3d4f3c848098bb6f43a13b54deacbac1bf3fbb3d1aceba4922dbbbb2af5fbd3bb255bd627fb83b228f88bba8b6a43a3512ab384d0b773c5a5f48bd3577b33eb265a43e8acb60bd69fe553c2a7695bb1e718cb957ae743a580d8bbb763bb83a2c4f35bb71c3443b16ecb7bab5b4ec3983c1403a4149983b81d48d3b707c2d3c4c2bc53b5cf5a2bb0ee5d63a377384baed32dabb5377a6bb04b49cbc3bf048bd216f3fbd246fab3ca6ce0abcc183b63bbcce8d3bb661a83c50abb9bc8e16ba3e5efd903e69565ebd0536393b4b8a00bca9800f3b36d376bbd654003a341ec5b97fbe34bb8099793b22e31bbb3a2dc739728abcbbfa8c583ca91428bc5f1fc03cacbb4ebc8dda393c163b20bcc2be523b9b6921bcbdcf1e3c6a5c2bbdbd9092bc548b6cbda55c2f3dde90b4bc87d5353ce75f8bbbe689063d6454c03b3648bb3e521e6a3e3cdb1fbd7b0af9bb11d8e1bbe12cc1373f534cba911efeba91d273bbca2a32bbd04a023a5f87eeb99e7f9d3920391eb9934eb83bba94453bceab953c8bd86c3c749c47bb96bb5c3b9fbd6eba98d01fbbe0ccd9bafda508bc9ef288bd294970bd97cdb73b0b7150ba0450e23969ec14bbf8ffaa3c65c86ebd7048bb3ee837a93eb7be88bdc42a853cb00eaabb330cffb8768d58bb30731dbb298150baa35827b8f210993aabbe88ba8478ed394e84863b6e471b3c744c5a3cff84063ca7efdd3b752b08bcd89d803bb00a6cbad28205bcc8ed90bcaf25f9bc41bc7abd99fb20bdbc0cbc3c5fc86cbb9867083b75dea73b29fef63c648777bcf01cc43e0e5e923e13cfa5bddcbf573bc562d7bb59dc133acf8cd1bb4b09723a0c21a1b90d3dfa3a4fe93537a30617babbc42b399e4a933b9f58303c449b323cb28ce83b19cd8fbb23e788bbb500b0383bd4cd39244b3abc29548ebc6db541bd758426bd3a5e0abdf2d9223d53b904bc1c72823b8af21f3b4794323d8dd9893cc7eac53e2bfd723e4a239cbd35fc3abc5680babb6bc1eab9ae7fdebadacd53bb9d9f91bbe1e56cbb4ffea03aa50d8ebae0cb6f39211dd33a14410b3cd2e18f3b338fc03cd9c6723c8df95abb2a25533b76da633902a4b7bb06260abb775b60bc0a0799bdc8a07dbd7e903b3ca10920bb49037a39720b22bbeb40e23ceb2b81bd53b2c43e3096a73e0cfc9ebd97599f3c862cd3bbd93811bb9ae080bb50eb49bba260003b39d1aaba00969c3ad18ef8ba08f14a3afca1ea3bb59b993c0fe94a3c59c8063cfe0f60baf21b8ebb7a75743ba8f3193a0a1324bc8bdcd6bc3e9851bdf21371bd7001c8bc1200f43c3f59f7bb0580efbaf37be0ba250e2e3dfe47873ba51fd13e2cdf853ed9c8e1bd24130a3cf42b033973307ebbc58602bb5e53f13a1819083b2ce58fbabfd0e9b9597edfb9c4f2a239b23b643c7d11723c0968003c58750abca259d3b8e25995bb12039d3ba4489ab9717744bc32063bbda97663bd2e4602bdb9afc53a71bde53ca803d1bb60612ebb2748a4bb4c09513d6bb4903d5ee4c73e1cfb4e3e1fd8d7bd2af626bc9aa6d53b3ecc6bba667920bb4a0193bb010b98bb498310bb6338963a4598d0ba5d87a4394692653b5767ff3bbfe01e3cb017c63cd14b5d3cc4f0aebb6540913b4c366a3a43dcd1bb52ba34bb51eea2bce9eba7bdb1bd69bd99a3763cdaf07bbb1c94d5baad188abbd99f003da5b881bd2638ce3e27bca13ea092abbd5f8ca23cb5d97fbbba7abcbb27a801bb43db12bbb0605b3b444ff0baa52048b81515bfba9c3a793a67993d3c8f2daf3c462a2e3c3c6f833bdfe5cdbb387c6a3973608d3b3221fc3955d73bbc3e4500bdc6448cbd3e2650bd28212ebabc3fdc3c3c2162bc38e637bbc3e9e5bb551c393dcd3ee03c6e04e13e97735a3e819a04be4c83c23c1e46263b26ace2bb80fb233b2a4d5a3bbb6220ba1ec5ceba60b82dba3da318390c256b39d7a2b73c0e5a493cf7cb9abb54ec1dbcf976023bdd2b663a3c5c443b99eb44b9702a64bcdc3e83bd06b16cbd1de0e7bb1f82b93c33991f3ce1f40bbc69af1fbb6a484abc3def3f3d50560a3ed233c53e84a1143e105aeebdd328c73bc7061a3c83da20ba16c269bbc55ea8bbd91e62bbb9c31cbae667043b38d92cbb1e5ff13992ca3e3b4185e63ba2797d3ca75b9c3c6d94043c553ba8bbc0aca23b4bf3793ae06261bb883b6bbb765ce5bcd100a6bda72731bd26b1843cb596edbb61b01cbb40e8e9bb524ee23c050058bda9a8d63ee297923ee06ca3bdff179d3c9314663950af07bc0b5a67ba12de51bad02d1f3bc0e3aebaaba6a0ba1c047fba6ca46d3a0b9d673c29ed9f3c1b56663cec8256bb1ae9a0bb2ac5a93a2787b83bf83896b840ae30bc926e18bda4cf92bd702b53bde8eaad3c3641993cd6c591bcb12426bbff7c9abb96d10c3d5e83493dae20ef3e36a0253eb9cf02befeed073d336f173b20261bbc2b82c73b3b8b3c3b14caf2ba9fa500bbc5379eba0f488c3a2a63c038a6d5ce3c3c7c353c44da41bc3ec1c7bb50663d3a6244ac3b0f80dd3a7e15c6b9880cb1bc6f8f6abd93fd84bdeead9e3b9a97fe3c79731d3b87a93fbc4a3c9bba085102bcbd3a0c3db948293e560cc73e245cee3dcc3405be1883c23c4d88d93b2724633a75fa9dbb784640bbcef97abc87993cbb63aaabba4ca5a6badfd810badbc12dbb7e70e63b5cf7aa3cd157043d7caea23c011142bbd1bf353cff91573a15a56c3962e7b9ba57879fbc099bdbbde13135bddf65e13bdb332ebc31c993bba65a57bc5ecaf53cd9b783bdcd1ddf3effcb8e3e463498bda149ff3cd7d5eebacc2911bcae1988bbc0bd33bb327906bbcb31b03abd1b09bbad3d19bbed9a873ad4c23a3c80e7bf3cc081b83c642a75bbb50667bbd92b933b5348093c8e10003b3ec30ebc0c7c19bda92a99bd341046bd849d043dc351403b41c2a0bc58478fbb6475623abc52ee3ba0089d3d5b78013ffbfea53d909fcbbd502a2a3d1f4447ba0e4b36bc8e43e83b73cb543a0787d6ba95f495ba4dc6d0bad8e5393ae72d173af271f43c1c15883baa9d4ebcfa3a2fbbf4a39d3b64714c3b5212e63a1b3b98ba5b1a00bd339262bdafdf5bbd2809883c03c9db3cde422fbc4d2011bca8e62f3b0bff2e3bee43c5bbf58d773e9c7bc43e27d4183d866de5bd71f6543da3e0d9bbfc1bbf39db6ea6ba21d707bad55aa439a296093abb1b42baff019fbad818a53979a81dbb85a3ea3ba6a056bb8ee6363a07a5b238b8024bbb4dc8ea3b87bcdbbaa25fe23911cef9bb64eb273c008182395b1a9c3bb0d2493cd71bbabb13da4eba94681d3acd2d763b7177cd3cf09e773e543a4c3e26e23c3c3534da3a224d7bb9447a8e390e9378badf3f77ba25334d3aa38ce43a3394d2ba8173dab9dcac9e39457140bb7c11043cf57c09bc1747433a65aa8e3bf8ad0abb32e2123cea2319bb0082d1bb0480cfbcd59f013bb5bb9e3c2d91a03ce967293cb47223bcac6b76bbb86b333c79d95e3d8db0fc3d37c4533ef37fbe3de04de4392a29203beaeb37bbbee94db6f09936ba83e702bbba0a73baeae1803b12db77bac08e813857521c3725bb9fbbe2a1a8bba06191bc4f35ae3c0b01363c56ff3fbce120093cef16b9bafc7152bcb972a1bcdf72b13c8d67ca3cc53c033ca4f3a63bbb05d2bad5fd8eba94e9463decf74c3eb3bf063e65a8b23d61f6753d0f6efdbc800b0ebce77d3cbc59f59838c5e345ba544826b827cd03ba81fb4aba103c1b3a682d54bac4cee9386043bdba97e0603b7e151dbbf38a833be54b663bf65411bbf4be413b80ceafba79b380b815d44fbb4049fc3bcc2cb7bc84b5a7bc0c45033cc01741bbdbead6371083823a98ce6c3bfda74bbcb5a9913e7661873e98ec79bc2204513b2db62cb999545d392c5f83ba354445ba54242a39beae9838d0775dba7c813bbae2844539ca0d66bbcaf8d23b52d8e0bbfd95203a8001473aad9855bb6e16ce3bfb91e1ba0adb00bb451c5ebc9595173c6dd8d9baedd6e2ba77cd233c542211bce9774fbbb2a32e3b2aa9543c0b3d323d40c67f3ed690473ee39d523c1f530e39e5b99cba79ed433979cd9ebaaa9059bb6fac673a2dc1233bf39d29bb33477eba9fecb03919ebc3bb11468f3b5ebb35bce78fbf3b9b24da3bb2ece8bb544ffb3bf41333bbb47841bc6812b9bc3473013c9c43ab3c4fee8c3c0f587f3ce61311bc6b53b3bb2444013d047da23d396cc03d9562233e7286093ed5d45f3c8520f1bb86b439bce47c1c38025466b9318e2eba95dd3cbaa48af3baf858943a2bad69baf1e577391ae106ba3b222d3bfa22d1bad82ae93bfc14f63b770381bbb837653ba23095ba13cd02bb64ee1fbb6106ee3ae75a1fbddcb016bd129cbf3b4e4e83bb236d01baff9fb13aaa8ef23b50d502bd3081a23e69419a3e024410bd0e19f03b657ea4bac547b9b898e2223ad20fe9bae180963ab75921bb742dfb3a71139bbaa71f98394eac27bbf8ede03b20ae97bb30b5063cfd7eb23ab63c22b9b5a8a73a32beb5b6c93c9fbbe352d8bbd1ec4ebbc21705bd0bd1febc59891c3c2e55febb87e41eba2e3a9d3b3bc2143c3434c0bafa43a03e5ff6863e69eaa0bc5b914f3ae06d02bbfdf087b982da973a8b8f06bbefe9223bf45ef8baca5ca73a048fa7bac337a73932a0c4bb0854233c9b1a44bca449d13bd1628dbbe581113bb221e539301e853a4acd16bc8a965dbc4f5de2bb0fe3a2bb149218bc26cf283c678c3fbc4942f1ba275b373cf659bf3c08eb6b3ddfda853e8786513efb7a0c3cfc662abcd837dcbbc62c5cb800fb8fb9e93cbdba1be9c9ba3957fbba5b13ce39306622ba6e0b8539182fc23913e5873b8ecf943ab9e9383c392d413c261064bbad08963bd93d91ba1f5354bbd0ed10bb5e8eadbb7d735abdc64750bd98b3323b8a7d2fbb0246753925f78b391299733cefad42bd3791af3e5b61a63e874f56bd9ed2433c9a3482bb53678c3654372cb76d3506bb91c92e39d9d0d8ba13d7ea3a657e6bbaf4dc9a39ce0c0b3b0dc7d13b7391d63aa1cd173cecc69c3b2d7559bbb4a4e13ae5a662baf4b342bcbc6826bc5bf461bc12fb37bdcba025bd27a53c3c2bf7a5bbe6df773b7cee423c52ecb13c2d87a2bcf602af3e9291943e30bd32bd872166bad9de1ebc64875439c85a8d3943c430bb5ebdc33aaabc17bb0b761f3b160eaeba7439a63908d0e9bac7796b3c0a0a03bcf4e7823cec1ec0bbcda2a33b322b91bb4716ad3a8ec997bc48bc0abc3645ccbcfbe3d9bc189a16bd98ba9f3ca9811ebcc5399f3b7f5c8b3c1071de3c41f99e3c77e9a53eb0df7c3e88fdcdbc8f194cbcd25f39bce3babe3796f051bab3428eba044674bbd5ce43bbca16b439d83db3b95a6b3439f443d7b954adba3b80bff13ab0388a3cdc786b3c401a04bbd18f633b00567cba878b34bb374eaaba8cdab9bb8f2d85bdd5c86fbd9b74583ba9dbc63943382e39676605bb0211ab3ce8ba6ebd955ab73e669fab3e251486bdbc26883cf41ac6bb2296b938244c1dbb70e187ba24ced2bac52e0eb9718d8c3ab21234ba91ac5b3905e6b93b154b1a3c0300d73bd54a163c184ec23b4069c8bb3dc3053b311e12ba1d6c8bbcaf5fa0bccbc2a2bc1f5e61bd56ae1fbd0f7f6c3c87ef053b4809363b24e2933cfdaf0b3de8beaebc8958b83e8968993ea3b18ebdc29d75bb57fd5cbc171615ba433295baa611aaba64a08c3a330da939a6b14b3a612022baf42d1d395737513c1d0e513c3eea9ebabb98cf3b5d0cadbb133062bbc2f195ba2a2f003af4312fbd7682debc6149c8bc0f1a10bddf83a9bc9330c43cc31bba3b0646603b85fc363dee36543d6425423c2aa9b13e5c33823ee3e17cbd0b53d6bc688fc8bc2a98e9b94c95cfba6a44acbaa58aa0bb0e5884bb0e19983a52511dbad62eb9b731194f3a3211da3bb5d62e3b1b03ab3cae627d3cd1f329bb602f3d3b76d132ba73fd5cbb9b671cbbeb80c9bb5ff393bde09080bdbd401e3cd8389ebab072e03a39fe47bb2f2dd83c924384bd597cbe3e73a8ab3e806699bd551ba13c687909bc8401e3bae3ad20bbacd704bb987b96b983bf6dba380dfe3ab6f7ceba7ac8b139522b1a3cebc34d3c8971103c43751a3c11c3343ba936d4bb1b24e83a8d645e3a4abaa5bce6b4cbbc2d0cf8bce03d73bd6c6708bd0d37cb3cf67d323b085d82ba011f743cb5bd3c3dfe944ebc1e4bc33efdee933e1017c4bdde51b6bba40e08bc1fc78ebb7ff1053beaa8eb3a4d67173a53ac0dba0c022ab90e1325ba269a8639463ee83cf10a943b23edfbbb14ae6ebbfeee92bbc7ce1abb60eaeb3a5a76973a2b8286bd7ede0fbd4671c1bcc3729cbc5ac33f3a9d81f33c655c003c7e8cbabb6ddf513dc2c2a73d54d4073d300db53e0e4d683e7a9ec4bd958c38bd097e3bbc6e1447ba772015bbf3e338bb6bcd96bb9dba4fbbef405f3af879b5ba2895ab38b193693b0ce4dc3b98cbd03b54deb93c51e2733c3d3d41bb41f2743b6fa4993aab31d0bb1dee6fbb8ea455bc46679ebd06977bbdb3a0303c63bb32bb7539e1ba70da1ebb7d67f13c69fb83bd7f33c53ec0faa93ec15da7bdd1e1a63c794fa5bb1acd8fbb822710bbc5e71bbb4f65a53aa5c19cb8b90d363aacb18fbae66aceb88ce7603c3815883cc981f23bda92243cfb6a9fbb6f0585bb36def93a0cdc1e3b2c9cd4bcd695d1bce10e40bd110b66bd0b0492bc5b53fb3cb5d680394c03c9bb9a02383ccd085d3dc386b93bd3f3cd3e89a2873e4a2e00befa05073b05810fbb9e51cfbb4787943bdfd4203bb5aa14b96b68fbba46e4f4b982aa3bba54b1173a75a8183dd85d8fbb489c86bc771990bbdd8477bb21dd663b35f32c3bc57aa73a2fdaa6bde59907bd31afcbbc0cb62f3b66b98f3ce459d63c0ad33f3b834b4bbc86492a3daeead43d5ef2a13d04dfb03ee87d413e5f6305be93da4ebd5ed32c3c7d72dbbac5bf00bb487285bbe71648bb00fed3ba9ab7a53a1deed3ba9287023940e3723b2482ba3bafc6343c70f9953c3c2e183c94b021bb3ec9793b8767523a18a281bbee62a3bbfade9cbc16ae9abdc14f48bd6926283c647e91bb870918bb7d36a7bbf091e13c734461bdffd6c93e733f9f3e0ad4a1bdfdad9d3c5552bfba4a92eabb6078d2bae1f256bb763ed33a5d71223a56ed003ab129a9bacbb79fb9dc808a3c96126d3cdfc6503c9da3d43b5bd6b7bb89f495bbc003613ba206723b7892d7bce5e0c9bc091b5abdc1fa81bd28a01e3afc5ef03cd7ce45bb272c28bca9221c3c899c353d4a67d93c2dacd83eacb26e3efe560bbea610263c5cf16c3b54d619bc933c013ca4c69f3aac2b073a3d2822bba55befba73a7b338a0bf383a8d8b333d66d650bc0e1678bcad9591bb930a3ebb8bd77a3b6e8da73b796ddf39f26dafbd5615a7bc009019bd8d47b73b60aad73c7a69d23c33a9a239570983bcf603e33cdcb2e23d92a4cd3d1ce8b73ebaed2d3e212728be1f9426bd1d38c43cf689feb9099009bbebb6c8bb285847bc4008a6bb8d0b34bbf3738dba4d5a94b9db604239d529063c86a3693c4ebf063d42b3ce3cc3a68abaa23d233c50d9943a7d8e58bb930c26bb8c2457bce7d4ccbd422a73bd03f1f03b55f71ebce7eb39bb5f2c05bc863ff13cd1d284bd99d3ce3e9495a03e89439fbd126f073d658dd7bb385d09bcb158bebb8d8dd6bb0d5a68bbcfce8a39988b2e39291084bae43eb8ba0018893cbd6b953cd072d93c4d11d03ba63ec53aedab25bbcea6e73be637c63b9e3fccbc9dd474bce93186bd0f228fbdf2a5203cdd69833cc5df50bce9b531bc1b6a243c9fced93bf578883dce41e93e39ac223e82cbdebd41c3e03cd333403bdeb442bc832fd43ba2b0073bebac403ac9d338bb7115c5bad2a8d0b94e7a2c3a17af5d3d55f4b4bc0c231fbc45a4b3bb3e765cb92a89823b54d1c33be56eba3a80b4b2bd64903abcb0cc1cbdf655853b2bc8133dbcd4943cf34b65bc6be144bc51e2063ce958b03da8b7473e52e6b83edb5ab93d1b873fbe9dbd053b0758df3c3521af3993c49fbaf8c022ba88fdb539c9e3e23991e613ba75bd9ebaa70596393e3b09bb12a8e93b302351bb305e883af1f8123af61752bb8b51e73bee63e8ba65381eba0516f7bbd90d303c782e383b7003993b4578393c49afd9bb667757baf17f823a112d8c3bceb3af3cdd3d673ebf52573ef866833cfa94643b1072d339044074399f9d40b9cf3f93ba9973a73a6cd5f03a85eaceba54fddbb9115c79395c5efbba9ac7bc3b0682e2bbdd4c1c3b162c7b3b58f96cbbbf84f03bcb5714bb85b11bbc44d58bbc7943123cbab7b53c4480ba3caf914d3c109a2cbcfeaca5bb71da823c7a66263d18348a3de4cc373e57fd0b3ec9559b3ca913f93b3147833b4a4be637ae6455ba94db76ba6019a03ab1f3263bd0c2f8b9f312033a4d67ed3870e4fabbcb63ebbb5c985abc64504a3c968b6c3cfa55b8b79e3a2f3cee0400bba07fb9bb5cdd87bc071255bb488c633d963e4f3da48bd23b2388cdbc5f5035bc3364b93d1e4c0e3e94aad43d711d983d4b93203d52963e3a7f00b8ba22bbd6bb60b5c238c2f855ba8c2f9a39efde48baf5e514bac0f16a39b06c54bae553d538c917b5ba1fba4d3b2d6a17bbe9a0813bf176673b2dc904bb9cce453bff1ea7ba1c7eb0b835ae4abb5abdf53bad7fadbc4a92a6bc049ef53bb2b64dbb1e8c5eb9879d353a662b6d3bdf9d4cbcbea28d3e69ff893e9ec257bc6294593b1253053aab022639b4161aba4eb15aba9e5217380eb0b537319d43ba93f710baec001c39e48c2dbb4626b33bfd979cbb3015bc3a0f4ebb3a349570bb74d0b33b86c70ebb0d4f89bbe0a642bc1516b93b5092ec3ad342013b9d87cc3bc72329bcee6887bbddf08a3bb033423c0d27093d16db673e676a563e1507bf3c80fac93b991bec3a0542e23836fa44ba2aa5dfba20622c3a411a9d3aa272a7baf474b8b95a4014394ad5cdbb72270c3b3495f1bb2b6c223c14ba0d3c843decbb20fc803b128298bb176359bcf5987abc10a9a73b2df8f13ccc92ea3c3223b33bc3bd43bcf53424bcec3e213dd0d1363d6667483d8cd1243e6aa2193ef8babf3c675dfb3b530c1e3c763fe33823aaf4b9ac2e4038cecd99baae53b3ba75950a3a792722badc5c2139211122ba1202463bf2c306bb20bde23b1cf0e03bc4c230bba8714c3bc2b95dbad4221bbb2ce04fbb8b9f283b8ea819bdb96116bd4ac7813b6faa75bb2162a6ba33d7ac3a1039f73b9d7502bdcb299f3e05449c3ea02206bd45e6ef3b05a3a9b968b46838cb9cdeb8511eccb91d3d95b9a22c61ba86f5ea3980e6efb9fbee113902586dbaa163953b807c00bb3f97ae3b83485d3bc6fb71ba8cde403b66e5c8b906b4cdbb9a9e06bc4e618cbabeadebbc3d83e2bcdd36393be79afbbb4a7494bbd6bbb53b2125003c3b4c33bb8c55943e4e1a8c3e26b313bcc54e7d3b9bd8ff3a50f64338c31dda389476abb901fbe539297211392a702cb90d7284b8a0c5b738404a0ebbf1688f3b848c83bb8eab423bf0e5c73a70d901bb15da5e3bf739a2ba2c8050bcba347cbc447af6bb7aca15bba66adeba3d5839bbcb923fbc35700fbc8698753cd82d973c0ab93b3d388e6d3e5ed15b3e3db8e53cb019843b48c6e73a7868de37c6367eb9625f78ba9306b3ba7a3cfbba83482ab94506cbb93e333839ed4abcb99b7d923bc2babeb937da303c4b04343ceb5906bbb0e4993b0a977fba152a18bb8b7805bb4da355bb14b751bdc1074ebdfe6e6db932090dbb7f3f7bbae0ff7bba66cc673c6cff44bd45d3ab3ee788a83e937c4bbddce94e3c2a0833bbfb104539dd3ffbb9f881a5b924f248baeeb54cbaa314eb394d6a12ba07b04439e135ea3a49399a3bf1589b398491d73b3a9ca63b41e6a8ba490f3f3b64df0439e59621bcca821dbcec29bcbb74c921bda5a415bdbb8d993af7fab9bba97606bbf42b153c73b16a3c6c54b0bc2f12a23ed6b6993e87f4f1bc60a7803b53dd5dbbbadd2939835f6bb8dc99aab9e866fab9dce7e0b978432938cfef12b9db03c038d528163b5c2eaa3bbca197b846cdb13bd4285c3baca1d7b78196ef3a8631c1b8b8e59abce86a76bcdd9c31bcf931c3bcb129afbc596c4dbbddbee2bb3006d1bb116da93cc4e08b3c9950863c8f158f3e0aa5843e692124ba37cab438010523bb1af46ab9a53a49b9193db9b9e87675bb4d685bbb3e543339d7ca17b9810cc336bdc685baef2e933b9f960e3a8e5b793c215f663cebe042ba9d36723b75a9c4ba124d96bab8ef8f39a8cdd5ba070c7ebdc90573bdea27f13af49b813ab672c539935580bbfcae9e3ce6af72bd4775b23ea22fae3ea78d7fbda1a18f3c15afd0bbbec1d139d1b6afbac1a836b94506ccba5b9184ba6947263a8bf347babb1aa639ffb92b3bb29bbf3bc67a323bdda1093c0169de3bb0cc94ba11b6013bf511a3b9ab7a2fbc1e5541bcd4d514bc5cce46bd4c9b2cbdc2bbd73a5458c7ba9ff3083ab1ce383cea9cae3c6d0e08bda0f3ab3eadc0a13e8d6149bd8b91683b2fe5efbbef0c83397ab196b9906517ba635554ba275123b94cc9ae3788fa5ab8f13138385f20123cc0c9053c23b39db8277abb3bea2a7539b581adbaf6abf3baf23233b978f01bbd2ca6b2bc1f6156bc5611e1bce1f0a1bcd704343b8b815c3bec376c3b418d493d7e86063d14bed43aee849a3e77728b3e51edd0bc460664bc67a5d4bc218bffb9be81debaeef83f3bc6a3c3bb6967d0bb34be713b49437aba44b92aba085382bb9fa8583a4a594a3b239a523c48ae443ce0aacc3a28757dbad6737ebb3cbffa3b4f8f60b8e68e3d3c2e0889bdcf1082bdf891873c3790abb9934a283c1c2a15bc5e49903ced387dbd0d72b33e92faac3ebc4386bda0f3883cefe65bbc0d79893990c81dbbc9fc3e3a704d17bb10120fbb4665243b8a26daba2b93e139a3fd643b51fa533b3578053ccb16053c379e9f3bbaeca43aa4efa5bab7bbb1b8d9f816bc249c61bcc393ebbb4dcb6abd7d2342bd798f573cc08098ba9b1d103b544a173c5376ce3c4a9e08bdebe5b23e4577a13e150579bd347eb83921ab00bc3ac2acba93b5bb3975f7eeb910850fba812fcf380e59d93851a2ce3817de33b931429b3c7bd51b3c7323ccbafd90923b96284fbb087269bbab5e9cbb5360403a8dda79bdf47be5bc01cba1bcc727dbbc014a5fbc94694d3c81f5873c9910ff3b3503993d4ce0693d5bd2fc3af0e8a43e404c8a3e76925dbd4b9813bd608f2dbded2feeb79ca824bb14ee8139c2369cbb412391bbeb70c63ae83b0fbb6ff2c0396dbc1f3a6751583bb10a8f3b5d51933cb4877a3c5a7b873a1364083b4cda93b9b92207ba6dc672bb1c3e2aba1aec92bd964986bd1a81023c78b664bb83a0023b497690bb5930c73c13508abdcbf3ba3ec33fb13e386899bd6ccbaf3c30c7e9bbddffc7ba30d007bb709f6aba7ef4d0baa18aa0bac223a13af3d577baf530bab808eace3b6168e33bfc2bf83b25d9303ccb60613b300763bac1204839b973c93af2fd4ebcfa2764bcb29e8fbc2f7c70bda34a2abdfe59633cfabbb33942ee1cbb193bd23be9800d3dd71d0abd7e16ba3e0ea9a03ec0bca9bd88b4f53b7f82afbbfb4eb0bba068b53ae27c4a3af44193392377203a70a648399e39f8394a1435ba2715f83c4844023c31b086bb0fab803b447a04bcf0a4a9bb9283d4bb3e491c3b1300a5bd178cfbbc65fee1bc55dde9bc8300763a5910c43cd63f063d44f122b9a275b43d575fa03d5d4bfa3c6b93a93ee911863ec5efcfbdb9ce6bbd782921bd07907bba79d5b3ba793a1fbb50291dbbe70130bb1def87b9fa379aba6494dbb9c57a0a3b3002933bb66fd23b005b7d3c50eb423c8280ed3a620c633bc5b2993aea3f59bb861f89bbfbfb0ebc911a89bd0aaa6abd2aa9e43acaeb74bbd65de5bac3283ebbcbccc53ccd2880bda399bb3e008aad3e589594bdbda6ac3ca03563bba3cc80bb1e7fd4bab6f876bbc639fbb998266db95fc7c5399a39cdb9c2ee3cbaecc4153c4fb9163c7d081d3c35a9363c3390263b59664dbb107a2b3b55cd343bf0785dbc8b2a72bc4ac9d7bc2f8876bd80eff9bcbd91303cf0feca39e458d9bb3420883b4aab133d71d0e6bcbed7bf3e1e8f9b3e7593c0bd93b4403ca57315ba37d233bcd819353b35c908399851b13a09a96e3ad14e963a98fba13abe88c4b9b074203d651f083b518f2e3b3d4e5e3b7f46dcbb5b7153bcfbb49ebb3ef3983aff8aa6bd01cec7bceee148bd73f40bbd0388ed3bb7f6113db483233d2c1dd6bb129b8c3d07f1ca3d3bfc483d9490b63ef1fb7f3e6a3414be2f6e81bd9d47bcbc6b2db9ba2cb459ba02247dbb20a62bbc8a14debbc20ec0bb1866b43a533530bbb223263a49310b3c8de9a43bc462093d6206fe3c97bf333bd5ebab3bba36023bba8a94bad89a16bc75e2273b1ae2babd7364a4bd505f2e3c6f52f6bb34ae85bba79baebb3fbceb3c20e598bd6cd8c13e8a48b53e9a1aacbda699023d3ef5ecbbfaf38bbb983b46bba51bf9bbcdeafebb608455bbcc670abb782f62bbee3035bbd5dd4f3c1650143c1c26a13c3f3eb73c239a2f3c24d1913be013d03b849c0f3c84c439bc03b58cbcc21d00bda12090bd714b0cbd0f5d1a395aa30fbc47012ebc6fa4e43a8058a23c3fcb1ebb5194bc3e66b8943e366798bd0154803c3c76993b64637cbcc8832bbbeeac30bbe724913972ce7a3bb3f3d83a2563003bcbbe803a47fe283d520f1e3bce8e7c3cbe33693bb35528bc6d35eabbda3a013ab44febbbe94f29bd542a2bbd6fbac6bdb285f6bc8360143d5b04453dc0efc63bfeee9e3b447c1b3c2a04d43d783b2d3ec308c13e94472b3e214944beb08645bd4fd5fc3a
|