From 1be6bf7278271a81d644bac999e3839b0b8909e1 Mon Sep 17 00:00:00 2001 From: janghw Date: Thu, 17 Sep 2026 21:52:00 +0900 Subject: [PATCH] Handle Portal registry initialization and timeout classification --- .../shl_mcp-code-review-20260917.md | 173 ++++++++++++++++++ shl_mcp-source-no-settings-20260917.zip | Bin 188208 -> 0 bytes .../registry/PortalToolRegistryClient.java | 25 ++- .../biz/mcp/registry/ToolRegistryClient.java | 10 + .../biz/mcp/registry/ToolRegistryService.java | 37 +++- .../biz/mcp/toolclient/HttpToolClient.java | 7 +- .../mcp/transport/http/McpExchangeFilter.java | 15 +- .../transport/http/McpRouteKeyValidator.java | 9 + .../PortalToolRegistryClientTest.java | 32 ++++ .../mcp/registry/ToolRegistryServiceTest.java | 47 +++++ .../mcp/toolclient/HttpToolClientTest.java | 23 +++ .../transport/http/McpExchangeFilterTest.java | 64 +++++++ 12 files changed, 431 insertions(+), 11 deletions(-) create mode 100644 Claude outputs/shl_mcp-code-review-20260917.md delete mode 100644 shl_mcp-source-no-settings-20260917.zip diff --git a/Claude outputs/shl_mcp-code-review-20260917.md b/Claude outputs/shl_mcp-code-review-20260917.md new file mode 100644 index 0000000..7660c29 --- /dev/null +++ b/Claude outputs/shl_mcp-code-review-20260917.md @@ -0,0 +1,173 @@ +# shl_mcp 소스 분석 보고서 + +- 대상: `C:\axhub\shl_mcp`에 있는 현재 로컬 소스(커밋하지 않은 수정분 포함) +- 범위: `src/main/java` 전체 49개 파일, 설정(`application*.yml`, `logback-spring.xml`), 배포(`Dockerfile`, Helm, `.gitea`), 일부 테스트 +- 기준일: 2026-09-17 + +--- + +## 0. 총평 + +구조와 설계 수준은 높은 편입니다. 판단 근거를 담은 설계 결정 기록(ADR), 계약 테스트, 외부에 보여줄 에러 정리(SafeError), single-flight 갱신, last-good 스냅샷 유지, 요청 전체 제한시간(deadline), 재시도를 도구 annotation 기준으로 제한한 점이 모두 잘 되어 있어요. + +다만 **운영에 올리기 전에 반드시 고쳐야 할 항목**이 몇 가지 있습니다. 로그, 비밀값, 배포 설정 불일치, 타임아웃 분류 문제입니다. 또 코드는 Portal 기반 다중 route 방식으로 발전했는데, **문서와 Helm 설정은 아직 "배포 하나에 Tool Service 하나"(ADR-0007) 방식에 머물러 있습니다.** 이 차이를 먼저 정리해야 합니다. + +| 등급 | 개수 | 요약 | +|---|---|---| +| 🔴 치명 (운영 전 필수) | 5 | 운영 로그에 DEBUG 본문(개인정보) 기록, API Key 기본값, 배포 설정 불일치, 타임아웃 오분류, 도구 endpoint를 임의 host로 지정 가능 | +| 🟠 높음 | 7 | 요청 처리 중 동기 갱신으로 지연 발생, 가상 스레드 pinning, 응답 크기 무제한, 이름 하나 중복 시 route 전체 장애, 도구 서버 에러 내용 유실 등 | +| 🟡 보통 | 9 | 프로토콜 협상, ping 미지원, 사용하지 않는 이벤트, 상태 키 충돌 가능성 등 | +| 🟢 추가 개발 | 8 | 메트릭, 트레이싱, 서킷브레이커, 동시성 제한, 감사 로그 등 | + +--- + +## 1. 🔴 치명: 운영 전 반드시 수정 + +### 1-1. 운영에서도 DEBUG 로그로 요청·응답 본문이 그대로 기록됨 (개인정보 및 성능) +- `logback-spring.xml`에서 ``가 **profile 구분 없이** 적용됩니다. +- 그래서 prod에서도 아래 로그가 모두 출력됩니다. + - `McpExchangeFilter`: `TEMP_MCP_HTTP_REQUEST_BODY` (Agent가 보낸 요청 본문 전체 = 도구 인자) + - `McpController`: `TEMP_MCP_HTTP_RESPONSE_BODY` (응답 전체 = 도구 결과) + - `HttpToolClient`: `TEMP_TOOL_HTTP_REQUEST/RESPONSE_BODY` + - `ToolRegistryService`: 스냅샷 전체, `PortalToolRegistryClient`: Portal registry 전체 + - Spring, Lettuce, JDK HttpClient 같은 라이브러리의 DEBUG 로그까지 포함 +- 보험 업무 도구의 인자와 결과에는 고객정보가 들어갈 가능성이 높아서 **개인정보 로그 유출 위험**이 있습니다. +- **성능 문제도 있습니다.** `prettyJson(...)`, `toJson(response)`는 `log.debug(...)`의 *인자*로 넘어가기 때문에, 로그 레벨과 상관없이 **매 요청마다 JSON을 파싱하고 pretty-print**합니다. 요청 본문은 한 요청에 3번까지 파싱됩니다(extractMethod, prettyJson, 컨트롤러). +- **조치** + 1. root는 `INFO`로 두고, ``에서만 `io.shinhanlife` 패키지를 DEBUG로 켭니다. + 2. `TEMP_` 로그는 `if (log.isDebugEnabled())`로 감싸거나 제거합니다. + 3. 본문 로그가 꼭 필요하면 크기 제한과 필드 마스킹(주민번호, 전화번호 등)을 추가합니다. + +### 1-2. Tool Server API Key가 기본값 `tool-server-key`로 운영에 나감 +- `application.yml`: `api-key: ${TOOL_SERVER_API_KEY:tool-server-key}` +- `McpProperties.ToolClient.defaults()`에도 같은 값이 하드코딩되어 있습니다. +- Helm `deployment.yaml`에는 `TOOL_SERVER_API_KEY`를 넣는 부분(Secret 참조)이 **없습니다.** 그래서 운영 Pod가 이 약한 기본값으로 호출합니다. +- **조치** + - non-local profile에서는 기본값을 없애고, 값이 없으면 기동이 실패하게 합니다(`@NotBlank`, 기본값 제거). + - Helm에서 `valueFrom.secretKeyRef`로 주입합니다. + +### 1-3. 코드 방향(Portal)과 배포 설정(Helm/ADR-0007)이 서로 다름 +- **코드**: `/mcp/{routeKey}` path로 route를 나누고, Portal registry에서 routeKey별 Tool Service 목록을 받는 **다중 route, Portal 방식**이 주력입니다(`PortalToolRegistryClient`가 가장 큰 클래스이고 최근 수정도 집중되어 있음). +- **Helm**: `discovery.enabled: true` + bundle 1개, Portal 비활성화, `MCP_PORTAL_*`와 `MCP_REDIS_ENABLED` 주입 없음. 즉 ADR-0007 방식입니다. + - Redis host는 주입하지만 `mcp.redis.enabled` 기본값이 false여서 Redis가 실제로는 쓰이지 않습니다. +- **CI**: `.gitea/workflows/deploy.yaml`은 `main`에 push하면 `/home/ubuntu/apps/prd-dap-gateway/deploy.sh`를 실행합니다. Helm/OpenShift 배포와는 **별개의 배포 경로**이고, **테스트 없이** 곧바로 운영에 반영됩니다. + - `Dockerfile`도 `build -x test`로 테스트를 건너뜁니다. +- `application.yml`의 `spring.profiles.active: local` 때문에 환경변수가 빠지면 **운영에서 local profile로 뜰 수 있습니다.** +- `mcp.identity` 기본값에 오타가 있습니다: `ax-hu-mcp` → `ax-hub-mcp` +- **조치** + - 목표 아키텍처를 하나로 정하고(Portal 방식이면 ADR을 새로 작성), Helm, ConfigMap, 문서를 맞춥니다. + - CI에 `./gradlew check`를 필수 단계로 추가하고, 운영 배포는 태그나 수동 승인 뒤에만 실행되게 합니다. + - `spring.profiles.active` 기본값을 제거합니다. + +### 1-4. 도구 호출 타임아웃이 "TIMEOUT"이 아니라 "NETWORK"로 분류될 가능성이 높음 +- `HttpToolClient.hasTimeoutCause()`는 원인 체인에서 `SocketTimeoutException`만 찾습니다. +- 그런데 실제로 사용하는 `JdkClientHttpRequestFactory`(JDK HttpClient)는 타임아웃이 나면 **`java.net.http.HttpTimeoutException` / `HttpConnectTimeoutException`**을 던집니다. 이 둘은 `SocketTimeoutException`의 하위 클래스가 아닙니다. +- 결과적으로 도구 타임아웃이 `TOOL_UNAVAILABLE`(NETWORK)로 보고되고, 모니터링과 Agent 응답에서 원인을 잘못 판단하게 됩니다. +- `HttpToolClientTest`에 타임아웃 케이스가 없어서 이 문제가 드러나지 않았습니다. +- **조치**: `instanceof java.net.http.HttpTimeoutException`도 함께 검사합니다. MockWebServer로 응답을 지연시키는 테스트를 추가합니다. + +### 1-5. Manifest에 절대 URL을 적으면 어느 host로든 도구를 호출함 (API Key와 사용자 헤더 유출 경로) +- `ToolBundleDiscovery.resolveManifestEndpoint()`는 manifest의 `endpoint`가 **절대 URL이면 base host 검증 없이 그대로 사용**합니다. 테스트 `acceptsAbsoluteToolEndpointDeclaredByTheManifest`로 확인한 의도된 동작입니다. +- 반면 `application.yml` 주석에는 *"nothing a Tool Service returns can change where MCP sends the call"*이라고 되어 있어서 **설계 의도와 구현이 반대**입니다. +- Manifest 한 건만 잘못되거나 변조되어도 `X-Tool-Server-API-Key`, `X-Praf-No`, `X-User-Ip` 같은 헤더와 인자가 임의 host로 전송됩니다. +- **조치**: 절대 URL은 base와 scheme, host, port가 같을 때만 허용합니다. 다른 host가 필요하면 Portal에 등록한 allowlist에 있을 때만 허용합니다. + +--- + +## 2. 🟠 높음 + +### 2-1. TTL이 만료되면 사용자 요청을 처리하는 도중에 동기로 갱신함 → 주기적인 지연 +- `ToolRegistryService.listTools()` / `findEnabledTool()` → `refreshIfStale()` → `refresh()`로 이어지면서, **tools/list와 tools/call 요청 처리 중에** Portal 조회와 manifest 조회를 동기로 실행합니다. +- 추가로 `McpExchangeFilter.validateKnownRoute()`에서도 Portal 갱신을 동기로 실행합니다. +- 5분(TTL)마다 첫 요청이 connect 1초 + read 3초 × Tool Service 수만큼 느려질 수 있습니다. +- Tool Service가 죽어 있고 메모리 스냅샷도 없으면 TTL마다 사용자가 타임아웃을 그대로 겪습니다. +- **조치**: stale-while-revalidate 방식으로 바꿉니다. 만료된 스냅샷은 즉시 반환하고, 갱신은 가상 스레드에서 비동기로 한 번만 실행합니다. 연속 실패 시 backoff도 적용합니다. + +### 2-2. 가상 스레드 + `synchronized` 안의 네트워크 I/O → carrier 스레드 pinning +- `spring.threads.virtual.enabled: true`이고 런타임은 Java 21입니다. JDK 24 미만에서는 synchronized 안에서 블로킹하면 가상 스레드가 carrier 스레드에 고정됩니다(pinning). +- `PortalToolRegistryClient.fetchRoutingManifests()`는 `synchronized (refreshLock)` 안에서 **routing manifest를 HTTP로 순차 조회**합니다. 이 코드는 initialize 요청마다 실행됩니다. +- 동시 요청이 몰리면 carrier 스레드(CPU 코어 수만큼)가 모두 막혀서 **서버 전체가 멈춘 것처럼 보일 수 있습니다.** +- **조치**: `ReentrantLock`이나 CompletableFuture 기반 single-flight로 바꿉니다(`ToolRegistryService`에서 이미 쓰는 패턴). 또는 JDK 25 LTS로 올립니다. + +### 2-3. 도구 응답과 Portal 응답 크기에 제한이 없음 +- manifest는 `maxManifestBytes`로 제한하지만, `HttpToolClient`는 `toEntity(String.class)`로 **응답 전체를 메모리에 올립니다.** +- Portal registry도 `body(JsonNode.class)`로 제한 없이 읽습니다. +- 대용량 응답이 오면 OOM이 나거나, LLM 컨텍스트가 넘쳐서 Agent 품질이 떨어집니다. +- **조치**: `exchange()` + `readNBytes(max+1)`로 도구 응답 최대 크기를 설정합니다(예: 1MB). 넘으면 `isError` 결과를 반환하거나 잘라서 반환합니다. + +### 2-4. 도구 이름 하나만 중복되거나 개수가 초과돼도 route 전체가 불능이 됨 +- `PortalToolRegistryClient.merge()`에서 서비스 간 이름 중복이나 `maxToolsTotal` 초과가 있으면 route 전체를 `TOOL_REGISTRY_UNAVAILABLE`로 처리합니다. +- Tool Service 하나의 배포 실수가 같은 route의 **모든 도구를 막습니다.** + - 메모리 스냅샷이 있으면 그 스냅샷으로 버티지만, 신규 Pod은 readiness를 통과하지 못합니다. +- **조치**: 중복된 도구만 제외하고 경고 로그와 메트릭을 남깁니다. 실패 격리 단위를 route가 아니라 Tool Service로 낮춥니다. + +### 2-5. 도구 서버 에러 본문이 모두 버려짐 → LLM이 스스로 수정할 수 없음 +- `HttpToolClient`는 4xx/5xx 응답의 본문을 읽지 않습니다. `ToolsCallHandler.failureResult()`는 고정 문구("Tool execution failed.")만 반환합니다. +- 인자 검증 실패(`TOOL_ARGUMENT_ERROR`)도 `"'custNo' is required"` 같은 상세 내용이 빠진 채 반환됩니다. +- MCP 스펙이 입력 검증 에러를 `isError` 결과로 돌려주라고 하는 이유가 **모델이 인자를 고쳐서 다시 호출하게 하려는 것**인데, 지금은 그 효과가 없습니다. +- **조치** + - 인자 오류는 필드 단위 상세 내용을 포함합니다(스키마 정보라서 민감하지 않음). + - 도구 서버 4xx 본문 중 합의한 필드(예: `error.message`)만 제한된 길이로 전달합니다. + +### 2-6. 요청을 받을 때 Portal 장애가 "등록되지 않은 route" 에러로 보임 +- 기동 시 Portal에 실패하고 Redis fallback도 없으면 `bundlesByRoute`가 비어 있습니다. +- `refreshSourceRegistry()`의 `finally`가 시도 시각을 기록하기 때문에, 이후 TTL(300초) 동안 모든 요청이 `"route key is not registered"`(INVALID_REQUEST)로 거부됩니다. +- 실제 원인은 레지스트리 장애인데 클라이언트 오류로 보여서 **장애 원인 파악을 방해합니다.** +- **조치**: 레지스트리를 아직 불러오지 못한 상태면 `TOOL_REGISTRY_UNAVAILABLE`로 응답합니다. 실패 시에는 짧은 backoff(예: 5~10초)로 다시 시도합니다. + +### 2-7. `ToolBundleDiscovery`의 상태 키가 `bundle.id`(serviceKey)만 사용함 +- `states` map의 키가 serviceKey뿐입니다. 같은 serviceKey를 **서로 다른 route에서 다른 serviceDomain으로** 쓰면 last-good 스냅샷이 섞입니다. +- 이 경우 한 route의 장애 fallback이 **다른 도메인의 endpoint를 가진 도구 목록**을 반환할 수 있습니다. +- **조치**: 키를 `routeKey + serviceKey + serviceDomain`으로 바꿉니다. + +--- + +## 3. 🟡 보통 + +1. **프로토콜 버전 협상**: `InitializeHandler`는 클라이언트가 요청한 `protocolVersion`을 보지 않고 항상 preferredVersion을 반환합니다. 지금은 지원 버전이 하나라 문제가 없지만, 버전을 추가하는 순간 스펙 위반이 됩니다. 요청 버전을 지원하면 그 버전을 반환하도록 바꿉니다. +2. **`ping` 메서드 미지원**: MCP의 `ping` 요청에 METHOD_NOT_FOUND를 반환합니다. 빈 결과(`{}`)를 반환하는 handler를 추가합니다(5줄 정도). +3. **`ToolListChangedEvent`를 받는 곳이 없음**: 이벤트를 발행하지만 listener도 SSE도 없어서 사용되지 않는 코드입니다. capabilities도 `listChanged:false`입니다. 쓸 계획이 없으면 제거합니다. +4. **`Mcp-Session-Id`**: initialize마다 UUID를 발급하지만 검증하거나 저장하지 않습니다. stateless 방침(ADR-0001)이라면 발급 자체를 생략하거나, 발급하는 이유를 문서에 명시합니다. +5. **Origin 헤더 검증 없음**: Streamable HTTP 스펙은 Origin 검증을 요구합니다(DNS rebinding 방지). 내부망이고 NetworkPolicy가 있어서 위험은 낮지만 간단한 allowlist를 추가하는 것을 권장합니다. +6. **도구 이름 규칙**: `[A-Za-z0-9_./-]{1,64}`이 `/`와 `..`을 허용하고, `exactEndpoint=false`일 때는 이름이 endpoint path에 그대로 붙습니다(`ToolRoutingService`). 이름은 manifest가 정하므로 신뢰 경계 안이지만 `..`은 막는 게 좋습니다. 최신 스펙 권장 문자셋은 `[A-Za-z0-9_.-]`, 최대 128자입니다. +7. **HTTP/2 업그레이드**: JDK HttpClient는 기본값이 HTTP/2라서 `http://` 호출 시 h2c Upgrade 헤더를 보냅니다. 오래된 WAS나 프록시에서 POST 본문 처리 문제가 날 수 있으니 `.version(HttpClient.Version.HTTP_1_1)`로 고정하는 것을 권장합니다. +8. **요청마다 RestClient 새로 생성**: `HttpToolClient.clientFor()`가 호출마다 factory와 RestClient를 만듭니다. 지금 부하에서는 문제가 없지만, timeout별로 캐시하거나 요청 단위 timeout으로 바꾸면 좋습니다. +9. **`claimStaleRefreshSlot` 경쟁 조건**: `ToolExecutionService`에서 get과 put이 원자적이지 않습니다. `ToolRegistryService`처럼 `compute`를 쓰면 됩니다. 영향은 작습니다. +10. **`CachedBodyHttpServletRequest`**: 잘못된 charset이 오면 `Charset.forName`이 예외를 던집니다. 기본값을 UTF-8로 처리합니다. +11. **`searchTime` meta**: 값에 재시도와 backoff 시간까지 포함되고 이름도 의미와 맞지 않습니다. `durationMillis`와 `attempts`로 나누는 것을 권장합니다. +12. **Portal 방식의 bundle 상태 조회 불가**: `ToolBundleStatusEndpoint`는 `mcp.bundles`(정적 설정)만 보여줘서 Portal 방식에서는 항상 비어 있습니다. route별 서비스 상태를 조회할 수 있게 확장합니다. + +--- + +## 4. 🟢 추가 개발 권장 + +| 우선순위 | 항목 | 내용 | +|---|---|---| +| 1 | **메트릭** | `micrometer-registry-prometheus`를 추가합니다. 도구별 호출 수, 지연(p95/p99), 에러 유형, 재시도 수, 레지스트리 갱신 성공/실패, 스냅샷 경과 시간을 수집합니다. 지금은 health와 info만 노출됩니다. | +| 2 | **분산 트레이싱** | Micrometer Tracing + OTel을 붙입니다. `X-Guid`를 trace와 연결해서 Agent Builder → MCP → Tool Service 전 구간을 추적합니다. | +| 3 | **서킷브레이커 / 동시성 제한** | Tool Service별로 Resilience4j CircuitBreaker와 Bulkhead를 적용합니다. 느린 서비스 하나가 가상 스레드와 커넥션을 모두 차지하지 못하게 합니다. | +| 4 | **감사 로그** | tools/call마다 누가(agentId, prafNo), 무엇을(toolName, version), 결과와 소요 시간을 본문 없이 구조화 로그로 따로 남깁니다. 금융권 감사 대응용입니다. | +| 5 | **Rate limit** | route나 agentId 단위로 호출량을 제한합니다(LLM 반복 호출 폭주 방지). | +| 6 | **structuredContent / outputSchema** | 결과를 텍스트뿐 아니라 `structuredContent`로도 반환하고, manifest의 `outputSchema`를 tools/list에 노출합니다. | +| 7 | **JSON 로그 인코더** | 지금 key=value 텍스트 형식을 logstash-logback-encoder 같은 JSON 형식으로 바꿔 수집과 검색을 쉽게 합니다. | +| 8 | **통합 테스트** | Testcontainers(Redis) + MockWebServer(Portal, Tool)로 Portal 장애, Redis fallback, TTL 갱신, 타임아웃 시나리오를 end-to-end로 검증합니다. | + +--- + +## 5. 권장 진행 순서 + +1. **즉시 (반나절)**: 1-1 로그 레벨과 TEMP 로그, 1-2 API Key, 1-3 profile 기본값과 identity 오타, 1-4 타임아웃 분류 + 테스트 +2. **이번 스프린트**: 1-5 endpoint host 검증, 2-2 pinning, 2-3 응답 크기 제한, 2-5 에러 상세 전달, CI 테스트 게이트 +3. **다음 스프린트**: 2-1 비동기 갱신, 2-4 실패 격리, 2-6, 2-7, 아키텍처(Portal vs ADR-0007) 결정 후 Helm과 문서 정리 +4. **이후**: 메트릭, 트레이싱, 서킷브레이커, 감사 로그 + +--- + +## 부록: 잘 된 점 (유지 권장) + +- SafeError / PublicErrorMapper로 내부 예외 메시지가 외부로 새지 않게 막은 구조 +- 요청 전체 제한시간(270초, Agent Builder 300초보다 먼저 종료)과 남은 시간 기준 timeout 계산 +- `idempotentHint`/`readOnlyHint` 기반 재시도 허용과 404/410 수신 시 즉시 레지스트리 갱신 +- single-flight 갱신, last-good 스냅샷, Redis를 캐시로만 쓰는 원칙 +- graceful shutdown 40초 < terminationGracePeriod 45초 +- 패키지 경계, 코드 스타일, Helm 배포 계약을 테스트로 강제하는 방식 diff --git a/shl_mcp-source-no-settings-20260917.zip b/shl_mcp-source-no-settings-20260917.zip deleted file mode 100644 index 6c830c4d0f969e66e05ee307e95a9ea759319b84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188208 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

n+B2!^&m6&mS5x+?r67E$EC(=kHccg6r*7Q zo6MPt10#jyQji!vf@;l|tVR2S{9mhtwu@dKdmV^BR2%?8UJyIKUcu+nccp>`L^d|s zJKFL*8@99M{6|Xoq7NOxC%x}umK<8pRXL-zv%?yNnT5j?#)cGq?v*<$1qjt32FmV2 zZg80gza5Mm4%-G5Cw+nb(HTQI7{Oc4@F?VwN zn|ATn5&s`o{wt=pVUI3}(fy>FJx1=#iHcojgDWJ%7^$SBb_XO#MXqG>+e2tOR2XaT~&a+dv%-%B*K((W9QwLs55VUr8bbvp5 z2NHdO;lDjI4;2c$l8~3?G2tslnEn(%cA5=8nGqvGIyHj(UY?^|9)giu;8sUnZ#VRP z+p|p3^y3lVm2puKDqqm!!5S~x8NJvH+{| z%;-2s&J3VMBQ8~ff_ld=Ss&bzIR4US(W0lWTEuslvY?c*fwNY}YgVJ}Usp-Kk@y_q zJg$8R07FdB#w;cqy~rvkNb`!PKif*wUo5~pXGr-&_Bc7n9JOZ$S9y9MRj(-TMsnDu zX3vcYl(u^l3_Sa-u3je1Rq76`f;zxP1!PRppSH_g!}q?^HoU#`WaIEeJ_TzT_>X5(YcL3M~MGa*i1yTEwf!VGr{NTW(A_??T* z8S63HHC!Z$0ebiRow0=5^FvD;@Vj8Q$E1jm?vM2Z@35bsjHU+_Qop?lJ7eug<2gQy z3En+qp-RbAy%>$Am#+A8#ezU5Sm=_F={k2)mfw;yM$dns)V-19Y?FH@r685m2A^Di z6uh1KM%X2N++Z1J-wbgy0uC990d#9>`_xN~^^yyq#lF_Rgts)-8-9s>D?VT7U)B64 z%CP>TO!{I$HSRCUPX4;j<^O*{nUsT_nYr_SVohD&c1;SyZ>hHReiT*>){h$AT9gE$ zy-q%TgYW!IEO)?WIL(94{ZF{iY{ek(&SThDnji3b8nxV%06<{S!@fByj(|zW+AW zwwAA2YkhH$_)!mm0Yp(?dt0$Lh-!*K2!o5l>%7V63bj#o%ChldY>vce+hi_1&$m~B z3pdnhEhP@QuDme7neKOfex=E^4#!!;3a6W&3MOPkKWn4WCFRm#Dh%9H+SLYUdH_@U z6<+?1Ahk<-#V21j6Hb`G#qYz23T-VKL!X390_jJc6tT`z~wE78H=x9m>q?Le7 z^yTOV@?W$Fx=ek~s7Q`dQ61Dj`$1(*LI77iy9o+addE;A5u0Lym5Axx@aV#Uell7V zPDMgdRf4gA&x?#n!b0gk*(KrFk5CpAkj0H(aW0$gd ztQ~Xa7;d5HVY66xuJ4uU+>|#H95P44_W1%cIFTJbZPjG~003|i_ zH-9+-=Ii~X9+JnJYequ~z66k|&5F$9g_~!YDY@gy42M^)aZ)v8`Usalk(&*p6v?1I zF>zO4{i4nXGsO7%NGWhF7DgJLGSnQUoDT+19`7uyb312MBAoE+D-#D;+m{ua6oM=g z9x!j}D8fsIT55M`9fgz!hB^=(U=)%d<*2&o-j)JUD`Jww$Q`%E$hZ0dr|`+nVf+F2 z@_xp3g(K&tPt-9NP4mgg=}CuMh;?{7N8r8gqSjv;`g1O}%rZ3|)BAzWI<7Wq7gG=e z-8abp#JxrQcl~AwxNJnYzo|2SbN&8XVKZ}2b5l20b4E1>2RmVBOElX!_Mm9FzSMJmeJWYZ3TV|Qs?;#|dz4hq!{ z@%y!0z%Q5#&Z=PdiNypyMwKjl+D{1(gMR8 z#c*@kK>!c4)8qXKEEghn4!Vz;+>-pR*Ibbp=tBEGLz?XTt!PLzH{|I_4G9t)>nVnk z3e~ovZSR`frcIp=dI`f;=*pHK=#qtlT!<@DwxGx7dd60E#O4}hK+9;>@VS@jIg}XS zsD8urm_Y6MsoMX8LRZ(^mRF}q{i>{=2XWh$_k$`RY||Ln^T4@T0k)=V`LztHVHn}R z7ujRopcB${z8};Q|Ll&qoTa|Wb9jY&egltE}~`Bt`5+qWzeV zxVpx9eR}edB$&?;Jie|@cf2aF)@mU^`uyQ*CGfxwxkLNXi)3}LnGh&gc@skEKmaM? z|wNOZjwps`B#Z@O?)j(S4X*n40Ts!SM`2(c(rZI=13qHB&cZ$ zKi#00D5V~>OF=dN*Vt-D6eE|aPFhR6FyezrN1AURq3g?{Y$_KzQsBPmxinHX;dfZ# z1Qa@icefM|&6j?x+V1EQ|AL%1GpmaGCy?-G3&>~pkdJHhT|K!ZzM@1Dqni(ZqwK~% zJeE`p;mSNasYmjn(5NmaH&9QMluD4p>}k`d@ZsX)5Hh_A*9X`87}LGgY!w&{!5og+ z@uFC$-tuVdsRIh0?@ilj$}yVQ{dkKcneW>!DouG}uW4)|Z;wi7q#Un!A zVGFqL(%8!_S)Fe9L;6PhdF>w$ZlMZS`E$H{SZjc*JLosxGjoiXQ@Xw+2A%j-AF3-0>WRP3~Do+XhRh07NR z>g$8qBg3Jb&7UZy1>kdZGs(0G3W0j_7tFs=4n#=4l{Q0D(rbtVqmw?GwM)bs_mT4$?@^C)Vua+CCjE~^O&GH4DDSz?t+M<>g5pCM^#wgJEGQy073^O zJrYFpr!qD(X^3Kev4OemS@bqU9x$t`e+e!JObyOnB(9$$pfvE|9uIWUCWSyvS@08Wtxn*s!Lco3vHcr92*FrLN~w83U+RJ!g@39Mm2^`Uh* zr#{Do9RovPf3g1xkW@qW8`w#e;-S3vO0#eJarf`?RsQ4-E?sy0bnnf)DBEv~1?dy1 z^j%U9YfXuxVRI#scPmv1()6_r_mIFv3@4~EjX8jARJ+uJd4)pSFeaNa$^b_??Vu5l zJqceRmcqm#n0UB`{3v1OtNHRG!UO)=t(6fK-6Iux$zW14Y*Qk~?~o(11=F`eK}GRO z**0V3SMjB8@NfzN=#!Z-3sPGQyE;1}nSrGkr;?FQg{Jmn>$9GV-Cupl)9upD?-4jgDG4=^J?e4l{-ZQ69!FZRq zCur&>(d8m2`r8$%#e052M?4F-Rr4i^^au5CQ9TSdXQ2J-t$+-NHdyJi<)-g_ZzxL-#E9He^}z8G?u}A~#0i#` zI>zZth}rWBdCJ_;ch+ynmT<8d3cfHP@n+`5DCfdLu)*3M4+GtKPTYsYatEO-7P4xT zD(@o^@k;az4RHL0e|tZ@Bz`(pOV;M&7;6%Y%zB+P|4cUG8yPRny1yOyp6toH>7sxU z0^S|djo{7rTJSA*e|M)*B1L6kw%}?-?=`kQ7a0mzmx&t__=}a%SSM)I6*(I6W(ga^ zn0s~IDP{yyv79{q7wu*?4osg^^5}Yl=y0CDBl(Xh$tjkULzQxHx5E;B#N9I>@iF&zp;%SL!w~ z1GJXSI+SSq2e*@%0ZfTBeyrhb7q?ie{!H35Gf^Ur4eA)htSNZ8m{rA}(Uhh5yJmoj ziL|`RAJVJ%AYi1HAI49&UF8u^kp+ZsGZgU11{P+?o9a|nx;zFIP7+Vdt+s(|hV;X7 zUV}|E7qnd}R8?rj5kH2lIBd0YZU$_n9WLhJ69$rEG^2KYO%^Zrzgp6ph(G zQ|KDmEFc2G2&sQ^k?%0hA){Q!1%EGGAs^OpCZ4+yHNO}m;%Ny-kj}6~rW4E{x;=5t zWW?$}*CBtJYFP+$PE|?@Ggq|k-ayqs>pzx&`PTkfG%)Hhb0mx@ zv*yl}jq;LF@6%1L5V|+C;9a!>MA=Sw;O(`eC~;H*kYLjuYOvD|xOZSO{W1OJ-eVYm zY8w>BA9q7Y1ff%vmwEp4?iA^5XU0m7I&OItzB6AsML#FEgN4=ar2Rf9(6nQ6O#}w-zF|XtKXmJLCCZR-OOBHVt;P>moowKup0vKm`6f zZ1Z1NoubBecK=B)m4#(#nNhm0YJV1D$;UvW&PQy^D?xmKTXQteoLfk%V2GnsE8XWy z#T47cK=XGFqgT}MKVSofzKA;j3!Co>84leUU3RwGTM+eKq$1CCsj~n*B z&EgLG)-%auWFgz;3bykU8g6{V3T_}imJEDMQInWV4B>vbCh5eNS;7KQU=z`vD11kh zk7wo|Ga0+4yM2@)9Q3X=>)$z4%P(2#;{l*XJkO|ciK9Ic5IEXD*`RzAn60OOH?tVFLDjguuq@3C8Qti?=7Xo&EPsOiC$Z28{jPuCB*`xM zx0nfx1q4LqfBK5W|3NbTmd^Y~EseFQ`9EIwgs!0jx+Ye@R4La1C^ws&$e_j=WMe3b z*eVJcRa2#36y@HT=ZNPJFRQ|cND;^-4MjN&Jp&R@)sjvid$9Doerl@sR-RTNPpA zmPj?W(Y9^@Zo_F;baHw|Gx2`%*XmBvb&O(eQPm`|?4*U*>$YFz=sMxqE<+wW^wt&9 z_8Gs~%M&U8I>Y+$>jO^0o=bj}dkdSOm%z`K)!4pDC7^rEZYE3hrLsS8H7&)kM%yW7 zQ5HDy?MgGt;#f0^t;P!9dpSvHn7JtboE49XwQX!HqB6-D{}W!$2&bA^qDNK|$?InK zo9)Xq`S`A3J|$jWUX@&&vSO4gwr=T(^1h4Ewq-ZNDdtUyQbJf2QIUjm&`X)=fDe@c z+l`r+;!Tas9P+||=9Gu!o0DN}w8Ukm*0Eb_Kv~HYoP==t!b%mx;b?Hl6zp-n7%Mis zm?LMk!}WZ*02d@SJpUU%9>eznW4TB#u+~H6NAX3q$#ld~6wz7pW_m}!J`Wy@t6RrM zKWCE$sC>Hf023e%gkHV+EA2Q0(Eb7hwwqMj!^cKxvAJX-afW5r87Wqw&yZh_PE+N< zi3VVV3tWIV2i`&E==G)-T?J_r%AA?&*y=o31~GCa*QhNIi*6%-8N2X5hq%>B=XHxk z&s~C}y!St)e{4G{N`d&mBAMpbRyMVXTrF9h{NTK2H9l^fRx06KTMYbcwZ9+?1UAcQ zo=vX?Y}lv;X*5?`V%BY@UJEuEG-!AbR3kV85gzqjA4__b;FggjE(zB!&-$a_+xZgO zIpk(iDMtQOlm!-)H!^Xv^9k_e5OyUK=5+G#C(FbcD)_N8^E2}$WrmV-xieU;NRwLI z3`xEJGGqe6Dlf!}eYFw$WH~?-1%`0e03}io&l(5$lqVR)#U~?6Ns3C-I@GQu$ZU&&6qx(@d&89K0YQZ%D+NOqH(C4)@B%AURhM!eke>nZ z_H?4QSLuuXuvOJIXBVJNv4KSBY@>@0d)12!0ibQi=d3~#f_6};^i9?OxS#kX- zje9z=#g8knnykMUHr?O)f(ow}h5J{d^(ONH3eA#|FV4RSk3*8lvh9e)rbB$fqS|>h zJUvH>dBVkbRR!1GBQm&G9MLf>SIyW$Tlf0IQ)By)9OAeCBq!zX#6NzMWC_LDq~3Z> zHg45|^SZmHbM912{edu}8)t68IwjlWZ3R#d>eecGaPH89v~`2t!>jnYD6`(b*#-RA z+t6j;!F$=@K%Ts~m9;m^M^`lzd%U2cy+4t)?fRoVJxg0hbG8^VY}Dmz?)UX4cXyPB zUOi|L>BI)}_>fhnh77n+Hv0y2Z!_t#1EU9+%IVjNyqzez7K1f)?xNUV&Ms6u)Xg(! z>byOGa`C#lU!P}?=;$_!Tc^|B53)?(hAjGT3`sDl)f?@zp;vuSR;LTM^v!zLhwt## z#cx<%6ykp=y`jV1w~F0{UkFp zXJ@U5W`!Fimi}G7G@U$xZN@w!*jr*Ap73H^(6hz*nCJj|_lPIG+`z;7X5|~j?LvIi zHFsl&y8BW$FvujnLHBB)?1Rg=B@!FWLLuwiJ>W#{wEQn?vgcNCOfEzD$)q6FJbyKM)W}`^&`eAa{*n}q;`nn6RI@_6 zqgxS1=Zt;^&uQb2#jtwTI{4bl#|UI1)OsrX7-o;=Al9842oiAA@ud6^Z&>n~ROiIV zV?Ge4O`cyQX3)#~Co@QPkt5L!vkNfmZ2_jdFLeMTr_3KL-`&tmxhvdMa@7ZqThXpH z6gP|)ow3k}zHwKVna%#>fcRKfO{3MHPh$?-cLjjnn)GcPinVy9`?G(wJmnnlHSqZC zKDAe0GiRUtwvOj{GTI4}Wzpcxqj;OyeO%Jjv}lHyKM@Ty_@$_!m6@RZa0sUX z{-tdJ*>~r_MCOsq%_%vwnnSg2KRHz@=7$?X$7z4T{&#}?JTrZ>ZUh?)Ha-;_Z?tm* zL`*1E&tZ=#Y)-!LZq>^e{ip(}4|cA%x6G}s^);l~vxDl|KV7|Isex6s=5csdT(M)? z@oT+NB(lkmTEWxcy<1@)cjZ}kMT>{&p7N~#{a1nT6dECX>-m-HuVy)xFBi@PRkyhN z;_8zo0@h!#r*?wx83MI0HgR3-TosXyj&R2YgWla^Jg!eytAhRb+OZB|*RG2tqUD~< zLE^LitZ9?%YL*i1A0zZlbyTe)oJhMr5unco<$2gql@LnesMLPS>E`emJv9a!qpxoN<*7)Qedl_>np3~VrpYk6bZ3=dHcq+P- z%#|>ZQH;t>(V4W@CR*d;q~Gwe4ETCHZFikQc5BWYWMpj>#n2FHd3KDXJBz3ODA??J zj+(MJnJ2T5FL=A3<==pnxqVYLM%Z>y1A?O7L=L)Jv8Po-PyOtF&7y2_4_uxz&~4H1 z@LfJXixA@!v|H}8NJM+K$&5Fm(mA_~rEh z>1iwh9zUxrpbG}_b<{-fBOm`jgJ!Lf9KJ+Vx+6FnT~y~I)L(pS`5Gt~&N7cp*mz^a z7q(=RCny8_(C~ zZD^hUon2*t_K_$jQ7!ijrubDlR1;TXFBhhFGD*ONl@~QrUaNA#XtF<;E0@~(-pGkg zxt!7+tezNm#>0#<_a@4c%LfYzES;}p@G8jD*FZ5}ka9H^lpQxVMQC$Lg)t4eFyyoT zo1S(ysPlG7!lQqdzat8gi~o~5C-U0>sy2I64K{oUaFRvh$zeEXCj7~;#o%f+7kRNI zpg}q6+T#0>(`k4tkm(L z@c)~y$7LQl=XFGZ$Sbrh?d1Xe+#7iSkykBorjCA`mF{}B@CKF7H2ajD;*&0`a-LNd zTTaRQ#)!Lo6C1`gW%4Xzhbve|nn?LPMMzA#o=3nFlSKTwmhnq#+>V`Nxg3QyHm{0o zI===mx6Mt;`UjiQF&k0ny$n{}2GZ`vcyzU*4}p1njy!9@6@6kv>D;8LD+uqXQKBQ& z^%f^huO7|gC~+~p@6|u+bGqmUfl<~J)QWbhrpukncf5ov^(q3nCmuT|Ktvu&eRLZY zxqkxb{SsUEv3GT$>wOmf7n>y3i!~CuKn4V`jQZM=%L(jr|8vtRxzGlFL(%E_69U7P zh0%6Auw%VQs6%!fvO)j>n&C!LuONkLrKyy^`KZGnjN9IRL4H6aDT*r)EmVIJ9?w|w zWE!=x9^hZP$K*KMYRA7-Jb~$MqeuS>*@(D%iR;hh^9yvxX1{dyoUu-A^H|k|$koMc zDWi6X>A{xgaK*wi!zM9+;k5N$;djQ# zuU{nZR0!s~u7s_PgE=pGhNitPots>oR?@G2p*MVOvANck$c03YSUOzu@Z^e@% zGu*Ov6NUORG;p2XZ@Sl?J|x)@zPNrY zU6M*b%_LpB{1XpHMS=c!&(xh5^S0WUas}*jXzd(wpdq9CVVoiFdG`BDvM5v7Rr2 zEeo$Ayw$903AYOjc53UA;0%&^)Hdx=efR$&?H#`>jnZ}RXeFuGwr$(CZQDl0thi#^ zwr$&}*sK_Dx_6(m`@H8pX%9g(#TGOm`!ADG_W=i7nd>1uBc%0%&$6Mg2Tr3O-fI%6~ zGP&VdHXCctw}(kV)-8{ISfTgpvJ!~vBq~plmGLOWzl|H!assV?4SoWI z`?Tdiz|_Opz&&*m#j)=cb=5w@?HEw>3@I3~L}zc&XsiNboMIsdf<%Naj~v=dH5>tG zi@`iibpS)U{)@%Ms+WzlF-MGuZo{ZiKK+Z=8xe4I8XA-nutCQE}j>4ta$#_CQTAQT+Ac_Pgd*|4DK z&}P?VOXsc=C_NA^fPnHPbWyln3xC0cXq@LCT=;5smsMy%OYL9WG^+QVTK$MReo>1q zPbC?$w&3r?Mc_VWu!4Tc$CH^ejDTcq66(3z3^z!onS0C^kNWSE~j5JTFJTh!7 zeRgtLs61gW5i86=^C~&|yvW%tzw1*uxG6m5blRy{-`Q$@z%LdaDqS0-t=0#E2JsSG zoBYZZxBnG8SbJJASF=jO+K!M5fv%2^e8W3nHjmNu+EA8_OfnIfGH4hkw|o ztZZvlI$6eikR}d!@bU=)4ATT&_9D=0fQbci5;ebOFe^FS8chIqu?5{9RQ#4{NCK5H zQ0t$-B$OCKtd0-Fb|`XH)8MB1Q+II<=Qd)y@BthZ-0}KuC&S#)p{C+VI0>y6u{ti9 zL_COTJUuQROZ39S2+$>I2)K|{n#ix7%dyC`7BBX?z*8vpFS*DN;$Q}Wp1C}ffOmTf zK&$mkIlP~1^EIGqFZ1&iIoB51TNA`QxC;Ghti%puObl$hpw;A$x1VU=uk2BVx~jo{ z!5{zJ;2IT&M}5Bd(EqGR@9Bp9Jj(uh1=DGekc!u{%JX@o%^4Cg^#RFG6i+C)auh9*=juRDg-f~(aY&n(iFK}MhV%I+{eQCP@^T_NEPtV(R zT~pcB;AI;c+(%JlZ`fs$W(`x3cU4BRA&C;=kQBM{Ty=sqRVOeKQ?6<>cSU9Czl1(T zDs^+suBB1xRU@lRO_n0hsGI9=7XS*o67xhtpCFhcNDnA`1;NmqQG<^-susv!``V^= zX~6oj^RcmWGdg>G_h94xeYwC&W`q0ns1n4ppL@Uoib{G!C2JE$=*rW-sHbVr&+511u}W6X}v=h zG;@@U!cr{fs3nQ1m0dY6y^LzAgy=l=GUx6fBT*$uY5$FlC#2QEXz?o=tf*AQsZW6_ zKIIc<=EA?!jQ<9LMT$$lgZX;_awaX-n(9n_oC*XMT1}BTGBVGaT7rV2xweuQS*o0p zr@2;8#+3|dPKu0-Z6w(N_>_vxrqM0~Y(rzH-5^Z@RjE8pHLA35QiLdRe;*MetmBBA z{C2mzT0>2XlF-A#P?$+I9zo{F0oZc_U{WT+YzvFstEFq88kVi%odv}+X*Q2MKacb6 z;~&)!=3+zi?gH5Cr(WW;{bFma!D-e9UiZWl0ogj4zlUnwfNk~$s%(>oPw(AcJe`5# zZ3SDltNoTZaptD5wl>j!UM{YU;a92x+@5KzdqCXg3w!W7evxrk0$Fz&Oq24S^`_@r z1BQl4z`?4ll4Y}pf7)Jk^t?lMEl_oE>>n<~40K!9$&PG2(@IP?AY2NAH( z4?@OT<}g?5&5N@f-xFLyzhf+wVGW2WhKXkX)PU?2jq`+$Ef{%d-WsowgU;=96(N2y zP+>A+Gf&MG6#=m}mrIlZcEoIBNLW&y zg;=Dhv6oH~zhvZwyD1vtTnv%KPWSeWnErTH8uOQib*QHPa(7DCSfml$yR&no08!LoI8p(YK{GA~2%(Y_iiP zX!n1P|LDlcnau<54PKUc@ZbfNw%l6amYH5(>Be4c><{@M4C^Rg=N+0zO&*xwbE6vB zRs}n(;R#9o`7lvS?jAj!j}VVIF#5Bde-gF@H_$H*HXd4EY|&m{SrA8@B6n~Afl2vN zgrV|i2$Rn_&@-{l?4r6NB-WminS;K-cTw=YEX$y|3}wS60es!E zeFLxV}8rF)8&tCuPD{-N;&TYw- zV|()y@Q^XmVSS&0zakb(zj}q{z2%GVIq>F{I2v#3jrW57-xAM1R6KEdc--r6&*%X3 z|1d^*7@Io$Z$R3R+W(?098q9H*&ZOExGsT9cuByy?L7e07T5EI<7p&G#e#sOWIzK= zbDfOW8;Q%Ls8`%}fhuW3#!k#j zMH(n7MDwZcpirR)k?!wejU?xXSe2Dwb+r({+6t{h0SRhI>fx4(#$AQs)*@auR#vsa z2c}H~d@QW4iqx|J!PJZ_R0FiDvmBg|3~4CFDN&_-glDbgBKsB6a_#!!yHgNWQsJYW zpT~4>A26@zY>#w~Juz;eczjw~olWmsyaFu)F*?0HZfh08VNWM2b+&JEpbq80Q z0lIel?frAE-95VOo*;;)wK>%1X~{2n^jh17^|b5Ok8Ft5UFkLY>>kCwWY`n6+uX1! zS+$CKE%5_yV$+IJ%vv(Ep%Oy0Af%}N%a;xJ!58|$7jBT7OrIj`hx1+16pYy?tW~$# zHPg$2MHzz#)f9O>L6&^{Dz8@v@3o} z>;5nZlcESmU|pH&COU6N%qvw{TJZko4 zzq=J$B5JdPe)sj+CqKM~Y-nXfC1xopGq3c9n^7hcS62ix@azyg;9jb6GcrTWG!sEu zYN_YUACw+^*?(4CZ61+MBg<(7UW?DUbzK7eZ4IW`b|;v5c>dz1*j@@zaN8`6Fns#2 z;c7@1+I$u`e4+AcK6hJK$V=+w?V0ff)y(=)8IGlog0Q)3Tp|VX<%FnAOvX4*Y-iVI zaqT(+He#+b#a8!`4#W`e>9{XJmbpG3B~d~?OhB((*YwC0&3SYd_X}vQRo9m3@YI2x zx<1>`<3d!?YgLD;CNfgSYcJoi$p?~1P|%AWiK*=+yoLXQ?Q;>vuiGfD$jwlExwMsYnZD#guGk^JmoS$?$FV*QlMtc}=Hp7D;?Ji_}n94iOd-nflNQwOTcE5j{0;m8$K$8E1vPaI|#nSBG zv5VgbH)~|Ue+Gd0W4M-i%0ip~WDDJCN2 zp%M9p+a^KX!kdzP3A!~{BA4y@uC*~golkN$0F%W!#DgG9{KlX+ysDFp)Tx{U_YU)EVU;ohdFe00 zL)2L);ffQ2CgLdsk(!12aaSnfo9UE!Fc}TXT#NAjWTMD%TdSmbp$yqk10bPh*)SnV zr-*bYBT4||!Bd~Ajw-*Tj{B8>M2U{GZqhN&6wUis{(Nb&-uAo5aqV5+PA$l`y$a;K zOwYngUB|BF9(h#uR0^(dcykr z2JqB~Tw~bb8bZ~%OPh>YKTs8bH#XUq@Ow8E<{k&AH%`*r$PpQpZ3AAG+4R#5cSXJ^ zTGw!WwnL7gMOsnl80<1?co~+2wQYNI{mlH?z?R1 z#v55{EJ2KKC|G*2 z5L7zGSfBpEHxaS^T)eUCp>48r=lY(Hjt%~X4|qJjQdwkBOGTz6m~4l zVJhEHVdStMG?BYBv`BmqVnhtq22Wx-0ZFH5Qm7-LfvH7ej=^cI5?FK9?aNy#-ELiD zoXHK6q>HLrlknPysEfq{(Gu#+D~UOE8{*Zxuz+lkJa!>Wa`UwBYCGf3?C=r}MFH<& zD6RXessLfJwFnPHVT70!j^J}UYM{9LJ%62c=`&z{diCi{M*wtb?rjY(&>&WTP=8hE zC558LRABu0H}&ZGfwC5`3^Y|7gsoIgu# ze?idZ1ETdvcop?$lC^kFH-P@!$HZj+kt^+RpGjc6 zn!{psq^iE!E_2MaBSZKe`dsQemh`Al+xDc^(}o{IgTHz);Km5VzP)<2Dpi9U`rv&k zXG`yJeo!5=_1V}4$p~3G4!*!x36_CPw%Bs;fLRezO?2Cuvqf4S#XFk3|J$bCKkC7j z#OuoI@1FGv_CK`z{Qr8^e;qLeLnr5dEf7_y{qMf@7L+j@COoVZstABsP9}w8CGm>! z%N>HJc3abI*oTFnZLmz?z8@4NaXnl@R*6L1sV|~bBrPBU%0KwJdr__K0h@dDtw`Vz?l36^O)Oe%TyV`X zZDa5+(>@#6K258PlRN{r^fZ&s8IO!K5)j`o*s*7^;3AmAG)bDEwS-FPFy=8BGr~Ot zP+qo7PGa#p4k&XU#2;bG-i`tLJetNnn5RKM60zX~7ig{-GFI=Reg+nzr6+pbl@%sq z$dibLh9WV5CCcqMdG3XVgh=f308i2HV_?=R5eQ8i(Lp{5$q>QF;Yy~#?##^01bVw& zEl)4?Ra2=7;QFZG`?Kc#eR|g2h>TI;HnqP62}G2^xonpI?zaCPi4b3j zfaZRXJ|4m2`lXTllqcN8SS*ROx+qOiRehy4VL(#AkdzTqC)z`)M`P{1uPo8OA&Q^n z_DT_q&C`of{Zd@YFJWalS9M)?*wNLQsA(`duiaed|1k+{RD%@7DRRC4>6sT3HOoU= z{(Nj7e;yn-abe-^81$<^f&cc^H=_cF78IhIChq83t5l7B6 zBBKDo`sA#*@3hKB+aHi9N=33WYu*U=r26+A35Nm^is{r8`4Hx;@uIt?=`mKYYfZTX zU$DbxIee!JXf%Sxfg4ERzHytU2>B)tyFxF0moKi zVk^tvJr(`(C$iZBsdPnch!sz^tb z+M?Dyg>K`s?<&gn=V!H$RVkvb4^sZ%F8Hg}TON$yO+%;UpFovNR(fh9=oOK40xEnA zh!_oRKU%yv7A&vPAFe&421;iU9|%5d&gO#NW|*1zd9uFRHUYPc%${6sn^fEA_f zz5W)wK&}KC<8SFWNES4?+W7c{1c~a#LADzNy=PADe?-)a>Ml2-B(%Kg2`}@j$xZL+ zHuoCa%IaNGkVPT8fOLS(nM*tYthYq~pFpTpf$0hpu69@En8H9a4!p{QK-B8raOa)b zIVLrAoe7au7Fu}kMW#906(;-i@+<3uyVDGoi#>pqm6PV8nVFIkeDeHtjTXQWb6DF&Y=CWB zH@%&rSpnJknQ80tGu1u9ZY{XSZ<1}?#u$C9qwX4&1|nGzcq>ZB74i{M2cyFQ@t1Gx zFrAq|sLznwXz(**HWmUn>vrjlR|e}NxLPnNz53xF#6jY0k1kG*zU6hFV}T2f9c-W= z`mz=a$ouX@AVtWrzFuzDZMyrvT=ZS%8G1s-DKTlGRdN`MKh@pW^nQ2wLcL!SFI%{^ zw6y=G@>VmlKVyhRA9D?`2Qgozx*aFq{UsiMj+8%#Q7|`YLWP^OXrIJ$&-}vuqHnh| zZD!*ySVF}i(u8BHfj{1Ptl<2^i1EiffgE`851!Rr4oaf zAXncX?7epU(@Mw#Be;sVTNmup3i){&jsG3nP7nF@^v5{}mUJO{$dtACg)D5pK_dT0 z0Xea!kJCiqFI*d-B>{@6I&^UQ`2=i+$iF`6dBQw9jC*HDjJ(fdB}CpK&@`oPEfrf* z1=qG0e{L`f?l223BCU$x3Sg>h$_HJ4qXY^oKno!E4f3TOY%{idi9-EoIWjA`diV0R z`#h52TPc`)aOEYZXs3bK;T=}aoQ}r>SXVCbfy!fdY?Zw2gp!xlh;aBkan|Mzubgj1 zj;1s1e5QK5z`i)2=qjdk3+xgVw_nEzf+&yO{(TT_97=P8^6peR`jzn0thV|Bw=Y4y ziGf1sNwYzF%{-$?<$}C+L`(F?oM1FWZ4;Zfz6=3-`1v2w{^jys{ggp*bXPAaWf*zVj z+z=qaA}2Y`t2wNM54B6Xzo2T5Mrs${cdYs&63+Y~ycmm$mh{7*&tmt~Q+2v|gT zNHv@PhA}bFj_4rg;0Kl@CT*-Rk*_U@YJhW$IHl|tu|c#W+;~cIHagOgJLAi^qhM?; zKbOKMN11bk_12Ko9J!MXow)n@Drk^nhvEX|v^IOLeaX=*7lMx@H;^krzCnNVVj zR%hO$!SmYwo0Bj>%j5n<*yrvTzH{-UdgYL@Osz({>`v=P|1Ka{Fblt!ijgOCv8;`W z=K4DHFl*k;O_juAkvjtIgkZF9Cb7-iy``8%aw8s$F)f2 zVHX;sDhP^%m$+yfDNU3-_hxQ+Kkz!W?lOT2ElSc+GBji!R5jjX zVR0(h0;7KH^Y}2|getV?1S_rt_pTb|X};`$)Nqf@peu4icasiuS=*!r?s<>&rAzQp zj^IvVnWj}$X|dBL(A(vr8N0Oso|;`%)EmaKj-WxJ;=mPjRPmcw=l#gHR+{h&4WjiP z3I0p01myYX2OB#u{Q1EQ=uGu~22*ZV%rE5noo>j4YR%&6^7@xsUqMCM*U6K1sHps8 zb<+jglz`4vvE#u8Y(K1@ve-L(#wYUd4(2-z=U0lzvwmBhn zY}!F=4#2lAJd#7qa`yR`fx(YT}kUW-m$HlHHI?PwM3M{2VY%uJlvyh^#nrmr?yLOwnJBtr~_ zdwy<$lyX`?kahfVfKS@yF85H(ni^1rrFJr_Iywwo#wv%4FU9ywkO=uX!YIOhKI2>c>35oNFN}y-1=- z4--!TUV#|bOQ(ZjvkRl#;v%VTf9}c2Bdi%cbozl&!YWb~%bLq1Wo|)VadiMB90DZS zSSSh!O**BNd?1LOEHa?b7-B%BPDsZh*9&Q@WW?I?!=E6$>$9CBAX~-J`Tfk&J51lWp-Dd(_#8OHdRtTc7oyw z&$F-=5|R|RS72`1gMdgB@$fMA^iD=-u2kj`^Of9_H8rR-W_iwc#ETy>M2>8L&0io; z;FlvZJ&5E(#Vx8H*2Nb=b>nVy8hxWnml3@gJNPGF+tF_vA(4P=Xo8G*ZE`CK;VnC- znQNdrG51)xze-FDO%1pi^u#)eh@SpGD1NXNW^*@ckN~VV2>iIt-aF&{`J=S-fe5|f> zd!TW(J}z8DA!%wHt(a@xRHu|GiVHF5A8&hK9cD8sJ`%1E3c!qwBlE^SfUNZ@!L7}6y@*no z$({z7o-9soM~fVpn-eoYM;)o_JH?tqkJc-dh8r$v(#KWGlnJUv(+ImiIj@c@8Lbb_ z5;jM;Vqb9-#tkI(@crytd&%9vSk~&LcHJF8eSAl~dDV7Pg3zlit9)K2|eV zF1=X(@VMl(*Qs@Lhg;Q)^`!x>QGYhX*LXv%VSBbby(j-X27K9m-IH%$+`G$em)A9H z=W2s&`;3(z_uK379ZhA2jp!w!@iTBx-+yx2 zKMMG)>f1gRkI6j+T)RFizA;gx2pp_>2K9qd((~dm$}!e6>gczARy8^ZYqcT*vpcuQ zMD`%_+r5Fqw8N%U;8|yZxeZF{m33sG@50*eJrlI{K6<^E(%ShjV*>R>*t22%c`ix> zDnJ-s0R6N9=ze{IB?yBDnBSJ&i8cNlX zA7AG+b2CTr>%#xo>U`jR?@F*DI)^+KsKhu$WWaE5DJxn&*+I!M62jC48zv zQ?;eM_&k&7@|+?B99|scnqe}BeqWzo>i%b9!fAXUW3nXf?00K~W&CO%(uxTys#)vB(bC*<%DLahSc| z%WUZgNu6n)>_uK16~!>k%|Q2TSiIP6fty17@Y!B@kV4^J)O79Rr;=H4Qi$oqLNkAM zU1EC$Nlix(ysrO*`>$AE4VSOAZihfDDwPOd8u(XTj4S-wGjH^H<#@CkEm4>IWjg!E zfqJiZ8VhF|8i5JaDLxuOqWI1vI}8`;i-+<2_h7uz$Q#_hj zEC2S}b8b^LSec{vwjzDfg9bkDokQ_kH3SW-qpHV+3zU~QGB%;P5q*LDcOg6Vy|xKA z>Ai;V9Y&kKeMkKNFT)09Lo?HVma+e(5UA?QZ%80~?`mTFr6jOYz?Un3E_mc9>?qGu zJ$bWqWHWHEnQ&V_(<)42RuzfEs;+b3fH=I`wJ6L)kq~l5dYX?-#PttbsLtYtQ*hP4 z$XZLwO53qFgC(+0goTQv)69r$mSj;KQ=$~MvDAGL9UlvAG(AnX9KDYSPGELf2&KJC zknq%2EHc$qEwiC+H=Ej7CEP6<`LqMC z4m$=2xZ{6VFI!9j`O+>hMB_Bk)C>0bG}{o_2iYQ}`MpFh;dM{}CHrjh!#?`-_Eg_~ z0CRVMFJC=yhcKp8gKBV_6w&S0u)5IY?zq*i3~52E+KIO!-hzJWnN8`T;8w5)S&=%N z{}hG4Ir06v0|IG5EFu~gy?ZRS>rZZ^?1DPCQZiEZV0hZ)w!F$?d13$t$pH)$O23;s z+5p$+Z4GIKEzKBV`5{GRE9eO~67@-P(iwE%^4K{S% ztPLV(P&y?^o~r^Ud}PHJv3BRL+2-1IWy)Q_kkDzH&mBVzm-^a~Tk))2c1xDfsZWixKO|hMSs(coMgv$$J&%**rq9HL(qoE5-R#)|Sb3;%d z*=vQx9LO53G)RC|!pVL~z3jc0P1v+-CjNA@Q!vlJ!!$xR&`Y~i-wmm*K-@G~SZU53 z^(YZqz2q{pp^L$ut~E2nU5n11P=|MsKueF6DI&g5j*V`Nc^9BuO^Lin5NkS} zsTEkT#nSWxDd%yRp{QD2OeNlF$<0t`hE!Ith(?ns_26%J3;1FxsNhcTr9Te z;1W}SxiuZ%;oU6PI7GYP`e(4VmOJ9#(T@KRjEXy(1l7Lv$meh4z4Ct&Y-~+kEbL9_ zCG9L-EWepkUZy7hF8E6r+L_q=tAox`mA1!b|1UOxElE@t`nt`Dlx4?Ie) zF$d(GkRHEq$E*R*hpayz$s60^D0W!_)w8hJSaT*@p^ZioBe?h&~fPc zTHCAXU>apiaFi&-#h7rb#AhjOX4ugNQyz_h#QeETY>(fzfgkQL6RcRL*Vr^SWjxqC z;B28mzDq3j*+HJSXp?Vwo=hw=di`qI4mmU;T=37E=3R!-VG2(W3yNIoP$fZAgNn2mkEcH8>Cav4P>$V}PGtPX7q#3bLY!Oh zr7PV@xaF-m*A9PrA#n2=E4gefch4`k_Mtz^P3GU>4hzzE z1i4NdiuFoW)m(}JFRjqcPaT%N4srY)b(wnnvQb{1mw;prur!(GI#>LQPigNvc8;nZ zd^z`B7`m)#hBKDSKE@=d3d}eXc65S;*O{alK&Inn*v9$qyQQWjq2yUl{G8m6%}&`R zZg%e82A7)F!0Aua`c`^`NzN4sR>(Z5DbZg9tstZ{2s^16IWq_KmmmM;RSx@pev!yP z;%C< z@U*@0^!I*Sn|rl0=pV|jUBo)6jdr7e0v>duK#z#&f}kmp6pg>9NpLdmFd(%u8fq0a zc!yTo0x`o~$BY`TQ{a-PeUIr4Z6a~vxG+aggQPgMKStPNP#BY{fu~N!4BAPZBlCwD z6LcFK<6P3|WE!c`u;ZQKdd4K(EYWMBgbm{aRp9#2`6AjCj5*w1Akq_Wp-kGe_dVqY z>ORejb4aUEzrQoyk!Z@=CS#MhIW9B84ZmYMT!XF?o|;_bBB~EyirH)m++Ri`X|*d6 z{T4|KRgl&tvE8z!q!zi$v@=|%;^th`B@s2M4&%xHnU@W)Pd#=GSK?OJ>zGEv><2-M zVAD~$t4w6GA!8tz_KU9!vRQ_6EN84bA&#N$4+2ZyI9x-MDls~}4n_bp!&PPr21}Er z;YwG?1Q?ku6-Dz&$^lpNJ=)%@cXlgTNsJPFF`1db7?Zk8)TkJ&+K6m2xd8DrYg~u? zVFtcw0o0xBl(*;VmR(Tgau>U5+?4HgX%+yP+ao|rrP4%DEn^D;7E&5C8Pc7yfz^Ls z`})?={jJx#bB}jhJhuVAHRn?yzxf7_7nbz7-?ZTJ!+FbF58|bBX=^KKrdfb*``Yfa zt7Gf2yG-b~@DMj^kOeMg4q`duZprIHKyyposO4<^F733rN^=JKQblae6a_k(BOU|XY zzb}+t#Wv?lluhNp-&1lZ)d)L`u|2kzGvT)JSLRjpLc>LMra;q{y{yXhpbC=Bs0(DVlKQQdEdq zq0D6{6tJ~-_fa(}Avq;}qEjL5^)P_Ph-+0%9u^wt8|BxPrpI_q5?o?d(LCG6ZOboR$?2-;ySryU0#VO$ zsrYU7;iMQl&N3WXqn+V^B22l=J*DIXfcCM6igJKfbOQk)ke*?6$!pe*-D&QzL9IGT zqKVN%4OcRz+>lx&)G;+%2DBQnK=-t}P$mL8j5I%IqVboSa!{*n{A=qeyW!R$EmpTQ zpQ6_24FM!jlgjqJ;p-cbzP}C4)AeGmslfzw#VL@-Eb@OmS;-fJ@lVVK zL6I}jXrnC7*5Ci0&UB}CvU2jjj7^R4>tY{4_9*aIDNxI|_V;~aa&N?j-7U4h`%$xH zpHr=GKcv4w9VI~+18sONoZ)0y#dfVfWWQs;PI&?U9GiLA{CkaTzmPLR%=1{zKYG31 zPB&s^PS$IZi7ZVoV5#iERp{vdD>^ya%;Sn%fkMMnIBv<|gc)34i6aPu1gAWYB;2{- zdqe9GK}HhVcgG3)pgMjtS=hOOp*AqgYb23Of_zKxQ$URXJuPeE6dda5Dx~K7ZETb2 z&&blZvXDz|F*0EKvzM%yM@Oub-NwpKL-sYMJ>*qVF`HX6vS!Hitn6%fFE1HiR!D?u z^#z?tH2o12T(9sDA2s428yzxAD1RStMjxO8P`?|}?nd*j9F2)Qxwn2nr1 zAk4;}yg_O?)`RoKC3*a6GQk|h>&jqO?dn;ETLktddE-WAfP1SW8i1E`KaC@GvH-A^ z0Ku8f*CTV-G5lZA$t}WBY|H}(C4$Vv_v5@{V|98jhHC(i9l)*nIU*a@EUcoOanB?y zhX@4Q5NWv85;$6)!bxPy+Ely}BaMTpjGRGSSIAKKBfPFAYap%n!`~^sFhBw%44yu0;jl@g1!^&>>-z1hxO{_)WLQqG##mPPN#O9S&Fq3%}Q9`fze zF3-fhrD8jg%OwW>@IJYF4~olZYNNal_Uj1Kq=CvE-oSM;{}C6mreeh?=o-b1t~_HZ zX|H9=-*JwU?_#+;t3dhYQ*{ZJwH-{^d%6JKs`BjpScOeq;L6rTuch;i6+gJ~b*39m zkJN5IkW)_?EX9HKIu~}!{(O8Fc&5DTB=eFVOt;?~>cI)G;O z<(rroL5W9(04p0@sT_MgNSK6%wlCwk6h({#8>qJ6Btl zwr(*xNYI>D)_O@@T{#K}Y|OvsncXz1!eat-ox}|*V#{Km(EmL&%2lJ(on&g2sr~NZ zrV#!^c=*2xz;8mo>_0oYf7O3VrskH;E>52RHG$XAc3u!e@q4P_D5953r@+KZo!22l zmN$q}s2~tkD#;H0p)?REDkra=6n*1t|t}0`h%)v>_94A%Q zP;AIqVygbNSC%LQ0w$p61Ij-SwwBIGBb5yeWz8^_meIrt07%DNx z*l1OA#=Fs6MIB?^WsEl)(;!IjFoudYyB2Et#8IFCC}Wt%U5cqaF@ z8pYhdOw?!3g|mv9sch6;-P>XsQ74a21zFm`d%@;vOFx*x4vW_amLfUj(QNTVo1MrZ zuOvGb0sA$?U;`@g=KoUVt`yF=)pcU4==k?6gWeNI#_y>yC}@TjBU%IVqMy8xYg8Lu z5}K%NB;k^dH14Yb@6bT}w$-AWy9))=*zDB`p;K?;6q!j4E$9AOQR8q;{{XeCQEzvj z`|1twITySshMa_!=7^-8(5MV7uZW?tJ_Ehm;g2!2aLXxPmwV8SXQe$QUH%%9LUfoZ zvUg87diM;kr~%?dU%}ScG)0??wJ7(45b;6pK})2)@HOvVgiw+>;gb4RBxYLUlRNV&01ihv64=QSr3;${ zrR#bJb5-4C106Pq65QeJY)HUBJm67)qR(HtffHz<$(qVQ%BtD>4A!Nq%+qb2rXr(r#}-m zCoS7ItHxKOF2u669>&F*Hb69{q#e7{tstYI!Gx*Qo}FM2%$VQgS7$b&DN|BS{kUQ^ zc&wbbsR+H|mi6w6KR1XNMqPMf%L8Qlr{2~Mzs!1@FO(PHqL-*SZ;SL4A?DA4N%;_= zrs_=L&{;f+L?~0J&S#9N|x!zVyFdbJO`qz?U4UWk$Ki6HF2Nqf6eUiz+?TM7-BNK_o&JMX{JpguI>9XY0VUS_kyCZZPi^8vVc@_ORGp1zCZsnfpO%S* zL)JmN_9l|`5e%50vC?yGM)Y1&xf<|(rYX#Hc8y+AW)q@B=ZZa3*w}ue_h5CEMq`I* zry|1I;i_ANYHDf{I%Oi(3up-pG?Td|%lq}1E#+CUfh2!6Doj99E`gw%n0}IGqg`%t ziYcEUW83Z;q`XRQ2hV`HDR_|9J?hjV3@UTb+}W=}=K{ji^rx*MOYp9h`LB&6dQRfh z-WfWPHR-!{P6|abDj8rfAeY@Z6hdk>I0d!9p88?ta9dN=n_%iN?DFHtoG3QAvodF~p+5c59hLq<1K1EI_QeZ*=0ElX2${psHP)>1;T|3mZUzf$8r@cPdG zAf5jEXrxO+Umkl6^_#5EF|oj5L_fz@**-Pj53*6)&%sn&{+ggOjLtLWVdiBnlRy^V z8KIt!VJV4?PF_cxA5yDQc>pFH5&Rm!v$B)d?r+BPxY{R@kwxx(l(X5AQi0CStd3*}48TY+-iaG(Mwa2#H?kt}}Y3D?A{-6DIyB_d9_ zr8$3J__JUlOtXf?ArIz7`~M^D9h*dr+HJkIZQHhO+qP}nwr$(1ZQHi(wOZ*n*{QRW zs(jcvKjC?*=A1XKF-Bs?Zj29e6ho)@bCI~hYTFE^O;&npCUPI_mKKrA&in+$W4rEF zQ5@Z2hT}7*lr0x>>=~)a-No?1mVZbM)T+2-SDbBUI@7zD;|NPhy(5VZNq2~PBm!)x z-H~fdRGwiGDDk22n=2Iefp&Hs;aXu>Ynzl~;CAZ;?(l+?&0VkXe2lJxO|-@?IB3W! zX?&l~E6h?)nuLr_XHoz)!%2*mkx{Fi(VFfsC=iYSo%oKc&B?C==^2irt5rmakku&| zPsZX64q$wJ?tG&qAJFR|ruQ4Pb;^K!ugOZ20!U5M+TS<+0$&|7bMhL$+rB#BE!vON zV!75;zFpK!3diU&@La7_RV=H-KHVq(?Z-Wwzu9vFSWupph~6*3`WyGu-V*C!(R#aO z4%jCPx);!->%{jXEA+i0>i*$%ewhG>N%go=-~IkFVt5wpS2pdFShW7`eP_`66Kqz8 zN1PSnJszz)AA|neM)YulDVyH>&alhbP?SblfHA?XG^^Mh8^nW82ODEu7>U0UVUKjT{hcnHet-+4v0v8W4E1J z=gi`E#w{eKeCEb?jummKiH`?R(!IbfFo52!gQ|EGMK(^-fkM&P#YFG(qw23X*eq5} z0Q$xZ@>6Q6zWYwaI)~NH_2NQJfUtXZFNIWkMWh2Ryd)8+UV_%(&MGIQ?P?!Cw^4n| zrX2L(z`cS5KphlewpXfd}Z! zuNkfIFd)*sO|uj3+uzS1wX31;k(rz+&)lvj#AxjwhW=d((6B8ZGRw}leQuBc?9>py z$B0~ZP+^|W+@&c&H~b?=gVjd8%>eBXYOUj9v8aRP!ZjN{0T}y&>SJHFOXd8 zSZ$$daT(qD^5peOB7+uW6+JMC>T&s6#K{1==+HDG6^-gfD$2d*=_pLYsB)hZQ%M~d zS+_l#qQZ(-cy9lWV}xvU;ErMih%#Y>$y3oI#VW6?rKDI?)NcGZXw#Qy98=R*6&+6f zqCwm8d)QH-9z^yYzr>HJ@9X3XIOimgO_=}od%|vW6Vraa;SY94@t$z^+(r1)d z2>&RRMcCHSUi&&jbc#hG4AFo}HEHq}l$ZliTQ4>Gi=FCib$9ekhDGXTXr1Cj#Zl96 z@lQ8T>z&(9+^_`%zDwTfh92c4coCb<2zb*ZD0Ex=9O@WQnYHM`+{pWV-S938*9zKu zy!N*xBv&i5n-+RYd02BW?T>!n=OpR2aL2sgnhk!wvooJW^MDHiny3P7ury7Ui|8ni zg3*00%n}7~8EIm0PdA&{0T8A%(Y4tGuY7Y<8RmqB!|ipLLqZYjp{4ObRAU6s*o}E2 zB;LsiU!X2yfs_cwDi>R^UUk1u3yuzlRY zw0VurT1efo@Z76G2tXUkGPqW;vVDAqA+hl1XlI-({8a$5_OE7O`q8gM|5D|OfgV-` z6riSUATK|XG#{u>iB6oyCc{o7E`6px<`sh$tP*2Y17$VU5f}^}@1I{S;Rjev{LM)tl2|Hi%37NM5V}jGZsynUiC%W6=#hjN^C({ICz|=8lGNYS|{Vx`x zvus(1=$)}02uC{(7WPN&AR5w!;2YJO8PW_ZPnyL7qaLfJQA8u#@hOH`VIPL3gAlYr zK#c?K>~@7KpJJif1>JIFiNEJY)uxMNquLYW`WRp>0pW50C*Nv{KeCZ8Wr z`KN($PUprfxX0Qt;NJ|{mSv+@q&^Fm#@jFuqsE&1hTsJe!DB}}+|X1$KafDxq`D;h zAJjcQD8^m*5XnTf{vYBYU79SjZcvJ+(NVtsGbzBm&InmrNdJ`j6h_JSp3l3D#mVR< zbUg=!Al%EIF6(@pzu?-RDC5Y;+@!&KpN&5jOgREU7vgQO6bNf0)<(jH zu=QF(fj!%&k(MbcOn+DU0r|mg^<0Ga!QR4q%;DoiT=(tSrN2-4?o1vDUb7Qb??ABi zT-;>w7{n)#{jR5}37r&KFoc z`|lTB&7F{pgrWO{Iyv9cJ2OwNeY_q{b;y!uhq0E2!iy~?X3I|(r#7af>FMR@&FjmV zpZs&Pd%B<7FQ(a_nwy=Y@hx9nPUWX6J4b4sc>~UihyQ!|^q&o}>UNxB^lv2DH1hvO z`6Tl@O!$A6Pdj#7Vrac<$~pg{ptc?7qm34Z1Ko3hY_Uc{ab4(@v#_*{lX2)coepJT zEA(0&jM1;IwHmJ_!eU&DyByq5rR`AqH=_CA%-`XnF_Va1(!0DB^)z#wPe1+kI9rOb ztN$^92_>o%xCyq)HiananOh`&qH2Z((@aCL_!B1+rU~nUfwj&j-7;SDHOaITVOQg| zmWK68T=R4tDSqJ19AT@cx-_8 zObr{~a&^g9W)8`uZ~U8ydRmAFy{bp zmQaILZo4&Lk){pbTsLE9%B-|rV{(8s%c*wDNn(@PdAhwo1G~s2kM%Fw@#>Oz)Gl4lLXVSz4tsOhc6yKa_vFRv@HFJQ}=!z`HLdF3c+f{>h zhDPASLQJwcE@h4t0?w-FQwlSwRBio$Unhve4m6y*iQVX9KNM_45E9MKAMCRn|L>db z{*97@0%~}<133wGLkgwqL?4~$P)lAkIeJf6e zz8V)(M>B&vyvURFE(bK+Ye}-vkLjbgKl<=#CI?R{VJIHl4mWBU6U~JIV=MKtk(1A9 z^F2ok5I~JUH{Rc2b=i128~I-P^^3qNsmj>G%_uMO(b_#Kz`fi18+O4`D#I_+K@|N_ zjC27XMYVf-)!<+&1x{RLR`li~>tK%hM|5+acCgPH>NvL%Kk(00{#{4mjKj=M*6S{k z_$5evgCtpE{T7#ABI_Q;Fem)IACueH;16eKcXYh%FPDSwbr_p`kh$LE8O*n~^*z)R ztcYN`pH37;0+7@ulRu|$?>G3KUrLNtNdyQljr-@zy<6Y$)5i`9D5va270SVrX6l!{W46FLyAG9mxzW5yO7v z+9E(NW{U(!)$M~&aKO+LSyUd@4^2mlL__%puC&>rc+QP>mYOCPab$&W3*s@SFydAw zh{cO3X|nT}CsqVh$EdKt-g#&vff9OCRR%=pccXIC#`P9VEf{8+%5vsI`C4q;ZO!?2 zQBPSS9W`H$F!Qu$ar%Zqx!N%ilYsLm&FF%-krnk}NKWH|2;~~QsKPRps4i|SE7UXLYH^|>br9!bz z7x{fJTS@qD%bq6^%hmna+Ejyg0qt@l&2bd$CUm1tg41S-wW!1~XMuceU_ad_?ewZ) zyCVw^Vhj0J=YoRL_FKH+iy0)+1tWKg5no##k?SIKwOVMq*7$j~Qe@s6DK?Zfj#4%ZCkdedOjH0D|?~jKfsrf2F&cId>8dA2%=izS#Bq znm_!&i*ht6xZtG!or#0JrQQFP`&+6i`yU{z=Qk|ok_4OXKmJk)wh*%3)!7Ab zUgc^j!zQA19Xh0T2n3BQ{jEL@i4=+}sf5LBNT7TawJ^u~--I{U{uCYfi&c%WXa|;@ zIi5M0Z(&zTAB45c`$-Audr`68%9>;&zTP-8}`;!zV>-Dz?((GYuki-j`HbztoDlTx3sFc z9(9LBdde*mc#S4^mP-@qyL zrL>~4YrZ29w4$kF4DLt$?Az?9z4wN+ix14;L6a?*1rS3)ZY&g;{D;cKMc=Oh9wpC*-L`JO9b&qM<~QtgSD;O z?UGyT$2V=E4_9mcMA>G=$8HB*a4@*SkR9CH91MFL`qA@shq#o69TkfTcW@7UkBj(l zY6C=PZ_{ax`sR@cC<%eVcp&bZ;J<;beDVe$g_3t=e#~0l) zpziW;q2le|W8&o>L<I|E?gDn*j+s(tFmXzl>YlG^>sNuo-QV1g&S34>n>Q=@#qQk{-q5E?>CP zcbEr*2|M73=;HPHfNAh{@C`>@>P1rL#oib>_)zpRZJh(YE1C(3Qgri9nK!1HErQ({r+#pAqcsQx~oeQ z>({^MKKU0SQ~TdL_riuQhBo%*5~hYWE*6q@Cjaq(`ma3FTvcs(Y;hF7J$=XHa0moU z1-v4vl#mpj7I<65rO$u|uZHrC9nG1zSc?#o{zRGvki@1aS({@D^r&Mgx{PJT&uBOE zA7NJS#x-<_tf&2#>zt3b+-A1b{6ikV$pqyBH9&2!9TJLg(8)#q#LBG*Q`|vm4ry4b zHg%TREViRVGHAKSWketBui1;hM_&1s@EjfIxdP*7Mj zgPHGqUAR~mVD4G^b&`UthB#0*4L_nv1x9h4TxD$qvw^uQYyx?`$>=`QYM@6O^)~&0 z?urk5u0ZW{bJK*|K=+NXaKpwJU~&#|+CvV4J(u8QtnneTX%M-#OM?2WCUww_-PCg2 zgxIK`Hn2z4u^)}JSf=R!X-&neHc6S$_JPKR8j$?tNh zOR5Uosb9V4*|*^ezfbs}lcOREMmWC$psi@^AqX^(d)nQ$=+s`}$seo`+n?RjFI1XP5M zIPGe;?ItJrB|)VfA*8mpBX0TPl;tVm-~_D#Omx^M;O`!$FQz7i;+NBv(@A3EU$ z2a{_24qFJz`V`OIcG7y!LU28}<4b3LZ>>BXSWcudX&}1IjAN%2StQUSuNljR+a+0q zBjP-^>^)P}{k0$9^n!l3pyIfFO3-lss2(+@N!CTkN0;)Nw4(lD2YU0?I4641==a+^ zSR-VGn+xX`3E;9=Enbp*3g=F2s+BvccX8_n_WG+lbeZ0}Yk%vB-;`y56GJ@<*I=7R5|`ADE4{3H~_1x6ccKjCggh!_^tRa zJ%8T_v#edV{&dsxvx##*c^NqpMQul=(|Dlk-Z>S#GiB~#Ok4M*{X#(Eiv{8m!p~os z(nCq6(*)~5vXi(E3J^w{LbM>k5J}R-A!b(7Gxai^QCXiH8)M4vg+Ok3F&8C0B9%q> zQOgQEkxF4J)=1s1)=b;M!@>)B+2P(3lw)l*E*Tx|59prJQG>)p46LK!1hkn9!Q#sc znvwT69I4ZXtzgZ}egK%foF@BtCN@SV6{&O6@|;rTshIT4%^ZqvFjqBJhDuLyZN>i` zQ2oyo0aqYrn)R1YP(%73Y6JgYb%m3mv8jx`x%q#w@>^mkKfL}U%6t%LYYgVEkrqyK0Iza>LyBmRK5R?L1rTr|MiHH`{2El;JWSB^5Rf@8k`A2^~ z;g@zcB4r_3s6R~Kqm9mU9^C^)b!Wxr=1~KF$ ziK#4)j3R05rgB6lHj2T*7(G?;kQN!0Y(UmN>h}^p z_7XqrhXb~}mWI!HUlU+C%ay)>(AK}^3ios3l1lQg$$68l` zBJ6~?8`odj5&;H71sLXwscciuyM?2{1HpZJp?w<%)R>IS>_n86`-8C{H(h8(K{7RR zO#mBhM%0uO6kSDuf1=Dx2q6=#5}L=+z?CF2rbo!Zh>$`nAjJA%214~uQwLX38!~wa zv{mo^GP0~ywRp_yXaja>5&NTz&qA`Kr%fE{HFra{bjY$#?RUcQ+Att}orI9?`ih~) zX;{D{A8@gmMI0EKD3&<*J#ww?Eo!24~jC1B}=w?xoN!fK3a&E2X-7&eu6qJTDSG7 z=KpFE^xY)Wo_)f|Vp(ZXB#WFOXX|w^GleO&(M;Js9LQ8+CTw;ldiIxu#JHG>2wPGj z_D-pZ1B3Ok3L|x~n1f+c5@NsqLI6p5ODy;_1B)>=HJ6yeQ8{4Lv$&FSa{_GTWxugv zQhcY`7nvS+nLcSrf=FkwIlh6B$v#(qbSy2q_VvU>wKkJB5#c;JmTGr@^RL{lJ3$HT zQfIkmoLZZ&ElsnpRk~K)L#ClT4MAl{>oKLW*khGPE?3xnTLt|6B;2T6Y5`3AL+R8m z>;el3ObudKLgg{%d@onz3p971zH3BK`#fujV_vO-1NJ68W^DE0!=+o zu$5~bL0^QPb=a^lep5sm*TMoBJUQ%(Od2|4X{0BbzA!O3(ecp@j#M2M0wZUsw6K|Z?6kbUyB30{B{&NA$1oOL?qG`#V}|MD@K zoiDmCQv&5yC&rTUvE-!hHbOr;#@4Y5Jw?EV#hP|)?i*c(o@$k9?!qH%>QK)sh4z$k zEc&mP@v~uAy;F8Kl)4AwhgAoEMkFQ|kN{U%5WiH`OYRCd8u<%z))Kz;##pQ(C4 z+qJPyU@bPkT101sT$P`t&r?!gv;_DBgl^)Q00i4LEX8txdTGt$?Eso zLim@|p-Qwz59>aBQ#ImUt;9!o_g~$FLUg%9CUr5)+;z=rE2>D)uM=(@jg6zi4o6NA6=JAtT4kgN*>P$v_ zL}C&v8_i?p)xY5FnSXMXe}{0#3G`oNHU5;vaPi2Ci$#hT^@L2w>ovn(OUMJ`;=f{r zqEYCMZ4$&0sXkm`_cj!fj5TjeTv}R~kkv~Gx?k+X(%tK$$Q)>}REu&cCc}F{B>s6? ze&k$mg$h%?xU!uQPqgvCKXmj^Pm#DM&xe-%{KMm6m%1G7VD0g4$56U|1pmFp*m4z~x?y=2oKC-0FB~oafYSe@@^$(zM2=p@-q_Ga%+kj6Kcv9_ z4bJ_FAx;0Q->ucuw?~;k{AC3yu9vd5V9xR65DknRB#xtF5go`y6+;A3O zS9<{;&L&Vo#c&_6Je5b@H6po2iEt%f)5~qZ;s};&P>gJM1_G+VbtLRRHYpPomK@4$ zINKq*lO6M2CP<#5=h6$`>K}-D)ye;joX}oQJtBdqI9DG#6SYENR>p0HPyZlgJBj%- zpgI6dMN(|Y@6|4J8{NOM)rHoP9=dN-GRL{)de^~{5c5%aOUopUGn%^)iD!&D!E;uG zU}6^&+BBtc%8afohXHXap9(^`w52o6k(?tPu0j%ztAL22t7yWJ&Ybi~v>Rgo$>d(c znf{Tqn+W&dOBc!Jq=Fjj4?bA8zY>%~=*|4z%9%(d-3+R$! zh=n(`mY&sjZ55s^D?V<3*RBPhcBCGTkc&MePYa0PHAic26`Hk!W7Iz+I@JvI5};eS zKiv|7PPd`uyl9i23NK>|kJ=V$Ys*f$E7kWWFOk&qI+}_v!m9cpt=%i1w}oD9!0zF^ zr*i;w&N)&+mdyCP^@1(!^FCU(b*jbU@&PE41eFTddty`43y*2VZvs?KSuOS-=WT@>a&^jU;-ZxJ_P5WpNuBF4$BplGpwq6@of4gVhT#MsxSM58Dl={ z8Z&+ow|CX%+!YT~&w%5-8ukythqaxa#oKHv5O zaIquUpb07&@jVb^w-IbMbtn(;0S1`I1ePk0rX4v?l3>0-SE>`GPB5YHT((zyXf*p|Q_14%R)#-4vP=fE(O#0ppwzDxWD8)KUIms=ANl-BA1YbrF4 z(7O|vyQ*@tczTYDRIu{EU;d{bzspkep=t|}*s0RWH@X}dv>+etl^09O($x$viBfo& ztU1U-0;jN2doJ3#mBag+x1RK!H;ZW?+|pElw;jzt1e1FOBr0es`hE%!QqdI^F3*F_ zMYr1lSjvZwy?4bngvJ=ed77i@CSgDYRB>u<+NU!26ZuY>z+v%L(|t{ zi$Nkf;Ip7uIDVCZ_%WCkhxFXOQHq-@my!y((uXP06c9KmpA;wqU**`9l7doOOu@H> zH3`2ZJziePRygqw>hT5JGAr3&?T|7E1u;_ZkUg^ zCp637m0m4Q+V`7P2Xt*UQlBJD=&?$3=!6d`{73@M{nbA?K%GIR8(Ko~-E*s^wLvtM zV=zT8Fl&_=rgWi951Nr-NR|5*cQ=Z~VF2ncREwPlVc8iUPmqWj?|psvJ=)_a_8IvZ z{MOuP1FGZ;D_X<(IrmjLI}G3yNObvZb1!>8B*3F{R&klAR=;S&WtZ- zU^CTelbR03q~kwA{;nDo+}*Rsw}xFqtDj?RAJ|IlVfliTcx8_yDq81rGx@la`IFS|s7S#*Mq z9u4e@QsiZ@{>sr=)U71>tkN+_;-UjQ{Vvj*btj^$j*Eiqk;`y7K^q65$R{5|L~ zF`cA-9P)nI*LxC_RfoFEt8izfK9UV??}eIa6}3sd1a~AhSR`q5Th?g6ARy~6dA$+> zw<^Z!`DQmu-&Jn*D%f2~z%056Csz!BQ@D=mAUIdl`JUrJ(B}Qu=-A@E?%unlVKMbg z)An!50S4VoF2|b;*cIdkhQ&-qo9sNFT4w$b)=M0V=G1{=?FEOmOY(X1#jy&=&FkU5 zkO58hJ(r|ILlK|4xgLYF7uvL@WEBIxSoG2a!yW|Fq34Bq7KP7?8IXs^! z#Nf>T$`3QDk^@GNZx0JIrZtDCbN~YW^t!mF^cX_xw7CV^J|nhOBtBkU;+_la2sIx7 z;RdfFR<*Sko>Z)dX!QDg4D_WbZ`j6?vFZoLs?*KrXU)UuIX`@CbgG5pYsd2Z<=k3% ziTJQ|e`-YDhv__v;bmY9fXEWswo0}T;f{qDcd-Y@TaN_Crfy#bxSW!NHDOU)`y|9Q zTM=hb71ifS)@H)+fHeM{`Nto3Oo$@ex*x~K%)ZJT)7+;PeX*IWss7iEZ{<dkszog* zEnC|Itrw+&T(T8AjGrTLR}&^-+!|1Cq=!-Ajw{l?TI%rKxnLE1gwJv|HZrA=f>um8Vx8U*f)x~ND|E4`Ee z0Dz4E0P_F8Dm(>yr{9_8|3`Uu<7@4Vy_UM~{uO0?yNY75MC)y3O(va=BME0EiiQ{s_ZeB!TRUjK)K&{@5yf`Ot;5iPVvw~jp452sZHD6tWvdE_^SI!+q!VG!H4S% zq_FROAP{&~Xy{2;=>@GulN+Ma-?Pxp*GiopBoEs6`YBGk`TMu8SJsR5Q)v3Sc*sNEsi6Nrp{cm+Y@W?=^@!^_Xjy~7b-zWA!v-_=sTcg3FC5?#<2+Ek`8PIu(r~eq zj&D6d9Mpk zHJAMdAZ%@O;mxW|pIgco_q;ZnaJe1stFQM%2y#f+UYr*+>{h$*9Q)@xG;{44(->DZsfK%qI<6rEX+MU%6Ydf#M$kT{+O`~U5>fe zi&s-GT=GJfH)S7mpC!xJdR`%E7s=lwB>DT?;r~o{-I=d`+~E^+tifaR@q+lvP~tP4 zyB^+(b#KIXy|wBWn07CY;=e)s+|%FIUFnOce>||q7mWRR6pr|YKheJio=Fx(8f+r~ zBYRkq+t!b)w;in|mt6X>?0IXJS>j@-?c=Loh$boc7A=?JFN|K0iyn5@ey|FsS+8T3 z26k*C>D|G$d0Q6T`zfC;;4>~Y!J|LP&VG1>C(*kZ-f?AOb`Aom+krUkacF23zjQU&ijFC-t zd(S(Z`&zDKKM9|+U2HxDiamR8RUnIW=_V1)3l+eP3qosDc(deu{fqi}09E5Bm>Jjp6gk|puVMX00+gQi3 zO31#MToGtqhAg$5f!g3Z!T)f{!z1#ap&vO!SxE87%CY7J2(2EVuu$dS7^LxHx?zhf zUITyKeWe#W#0_Wy#@JuU0kIOOi{HoL5kG6CJ1n-PqbpY ze(-s$WF`_iOf!J@m!9fC3uu69_mi=Ag?u61{cxt|AZ+j%#Q3ZU9nVX+_SD z+!LCVe4_Y~^iOq5-sjfFQn|$EzSQy#)@~a zy&%8fU3@3*Ow1rEP_tt`o~2LK3{9{mWL>zNOin-`{NTuLL-@lV{-l4{!e(US$B{^= zv8%o$sqK>)>mosP#z$rsMnc%c@^$mts8T3iOX>-vO28+Qh+fS?e+BKk=qCj4y8JT@ zb9~6eAo_PhI=T&-OPGOy$t{{(?`Yr+G)+Q#zY)#64Iv-OSQ~5$a~- zOphz(jM18|uikUr7ahdzyuW&FUk1#wp0^6<#^LKk{?SkD*ow4&36vP7wnf_0jqJ4% z-Lt)npsM6>*|P);# z56AXZ`LWx^*1Mx9hEh_`qNI@GPmr4}4HQl?^k(;4Ma20B`v9H8KQ*JD8h`IAaT+fo zbUE~4KofHl1fi5Q)|e2CB&wE=V4A6D6s0nw?G6LOP+Rd7L}dT$X`h zfWAGfR#$SIgZfw_PKzcIk3Xt+3#6B$yBX2`mT4w(7(Oi!mtknnY^!D%@F+^{E-+@g zMJN=vsWK2*Dpf*eWi@7LA-Gk=)<-oLI)UQK(2FkIy>3Imb2F_6n`4D%c7uy4>r4(I>n$)fk_XT zO}7oL*_q-AV=ZW}yXm%r_~F&BGZ!Q4>q;?4Y_}(8a&g3Dxqi zeBBxSy6ahc3z-a%3DsXEAN53Hl6$cofcR|Ot&ypxn7e0!`ATANZ55k za}W9O_o#S**0$})7Ll;11+K4{l2GJuafcTy6iGI!a z1pvB@1L-`*H^&R!eqT>2h-9!OY<9sl?A?Dx9Sf)ZQP(Bx1BJ+(3i=py%rVvQJQ8aX zo{&v5D?dZg&2N$|POiUa-Gf;{6tEmu+;og9SxNc`vJ-#QnP zLxt|w|JUP5$sE8Z;vk@Av*Rh3v$gKR>khdboKx zpF*qjvOD*F;d=4(Cz+UzhQ8VQ(=k5R7pD*50oIQV=``AGY`sq{lM4zZoNbH5s~zc< zCi%HveK12vi=*voqJ?H zAcfK~riF{3VYegP#jH7g)Ev#9ar<1nnqFy}Zl2`34u5aQh>$)2o9{~&Sp!hZ<2QS~ z_``P?qwXKcCN#DpYMy}t#;p~$0x}Dt!)Ld~0gnn(q%ItTej7-hb1gL>2cYt~z-H_p zY@w$}EsMraH(L)=>2ZDrWQB5Z_Tn*kL1{$rfT*R@_{gbiSPIViOlHmj@;dj4ktup5 z)BQnL-2i$@Qdq#i7F>3K&@zD$MN|KThU%x1B)C-)mCsZ);gBSQHQ+2YA{eLGA|2o) z%$W&^e@n|Ge;eV`XCoJFg2p7upFgE%|bep_wkOSXlK8611@K{pfYb`aA&Q>?zgT; zyuj={~G8eaI zUDMCzT>WhUi=wocw%Lu6+6)$L=eqNzdnQIT6}`aitK;@;etT?kFW!sig5pM8qGCoq z+Zl|Il^Jiw#h;;s4<;{)QaoK+uA@x~lNYR&p_KGR(Ra@)I=OxrI=`~RJpFg3yHE9y ztoC_>im6CK1GS9;y2?~`0e$#$P6qLy@9r`RwpvfV)=5DhqaLFvWO5VxL2>L^x)E|J^{h_}bYjYfkFedR!6r-ag;NA{zj0K3+PCUqZR2HZ`O_wEeIvNXS74 zE8!1dAriax|K3^RL?S^~YE&l?cXp)T4tSV@zH$iCdBtSW z7*iq(6XuXu+h`LoUK#d6-r^Er0zgP;Vb?>0tY1L&{&T#sjQklg#Ted|GucuPDZI4%GXd@{rS>DK9*J}$ke|Q(75b;Fm zxpbQ;WNkaXA6m;<*cz#+0NFB8SbkZt)w0+ODZ-{&mHUImg-&Vh*Ii~Y zsI=OMb}bglnvvsTb)<$0^S;uMbZpR2wyO9Vd!2y4yRI_bgG zrdr(MxNIHZ+3z7p_I}hMXpNI4Wyxznw2vp_h_#`y>?5)-Ko>TCy}+PBXs_I<9#~ZM z$NXeAb=TE?wrb&Nrt>;)tSt7S&IzTC%~uG$oKO3Z!D-pLi|`Zq-?)EBlDeF48;e=o z%giGFy9ADtpENZnc^-hY-qhpv_I{cSHO3>1n7BU)Qc1%o&{+79p;o@2bc8xr0kM(W z?b7=t8pNe$-NOv=L75~_Yd_lO3;ZH!WKVIf?n=e>*_Y|-#4Mil9H}ZyWptk|I`90_ z80+HsgT6om#WP`93t(>fmn|w#?nzT>05?sSqyBJnH&?Q(@W?l*TWV36SbD(}4yRX4=qc5#AWp z!J+}2E9Q2Hrh$x9Sc4hijN@K4p?37fkFwzzPqd#cCaFCsK{fuDXF7bCoOmVmA;9_Y z&ZlC>se6}^m+Zmv@MD#Fy`WVievt8Ty!YjPK~0-POC#7VPMgpLUTB897`7V0>;3@x z#Ynm=g9MR~n5iOUELL{lZGhvO&IZME5`;=}0T)pg33i>*q-Mn#`{{6rMEJhT5^OH0 z)*xZTVfg@wnGp1Tce>5qOuL$?F&5?)VRM^uc`N)ls1$aC@0c$;ybYoDA{@`!w8x0J z9fZO+MF}^8aOtEa&>^~Jrm3E~&`!eIGSp#v?M4?Y;AU#KPQ!#`i`(UZ zz$I@3B@H=((5c5REyrz5IxIoxfo1IUzg;1y3t9!WXm}QPZRk+#E&=p0+BtqTcni~O zVbb20d5wX;Pq{#?bSfQ+b9L=a~6xb5{6 zAj(*P24skgQy{2zu(4jY4Sm8QoLVeLuo0Ojd6sEKAZ%~Ah^B#u%K4!R#~aJ~fuk3^ zQpv;VkU0|B2+l>vO)U(HWyuwtDVz+D+sw@Oie{ZAKrtL@L7=n|<&`mwcPj-0pH`qV zVl!~1MrsA8*-Cew=9xbFvl;<-h|kQ$0j7@u7U8iElt$6WMvIZt*I4+4F9BE_p*dV* zBf3nBzPn)r?rwm_p&$UEqFIC$qNnc@AjRsSI`<%fB=I)L%jjiDk)|==`284 z!xB^+7}3lmLl{PD4WR)fdL`Gto&7RXDWKRAPAXuBA()NKXNQa~Ok#qQ-^(6`XnJS$ zau!(=xx($@Baho+TS?d6F4C6bP_4{>s;F4h8h7!dz7<^fxKGAUobRL4y z^ba9{dw^7$FYb6X3Gl?pL;^LH=(kz1WTzckR3&n=B*fpimXb&8uqsAZmE}XJGQ}V~ z4JCOhA67+)fv}eF(#g7hsnCq~554Y<@C3IsTkxmzlL3~K*8!&KKlDpTe;j#>^2fa9 z6+KUc+5plu*^E3y>O-Oh+}ZL0l0OAqE?|RMWN=n&iVc0#e*38Xlsz7K38qp%6fx+< zJ(j}52n65^k2gr&!{HLK0DjqsZx-~nwF8dzr<$tHB2NkfjA=@4Ns@`K!9s{=)_%-i+r&2 z=D~o6OHp`4nDJ2>?)3Z=VF~leW2Q$lzPq-+FJ8SH_#C(94%-Y(5qj;wk}E;H79>o| zOQQ!?B2sK?VF-}-ky(-iP^N%7DmfR)6HK1__rILK2b`)2aY6hyBl-1?!e1g)EyN#a zYcKDH&nsQ;LCkSy@Zf*+V~9E|J#%u$`OeMNV9tb7N((84XwV1ij#VK#ohnOL2SQPW zzm*;HVhVmd4}H~g=xgy~%ic6e4g7IRpG87rL{)200$qNjQqN)XKtylp&W$);rl&34 zrLqv^$dI#PdhIDe%NSod5CG*bXf2nutqe!?XXuu<3@Y}`G$U)3vP#(?TcaDM9glNiDs}leovds(3?W(ED#)W2Ci`)5anC}${6T8wuEFZDy8-^T4=EO z_QfhBm}~ii-EJBxhbTf_d~sy0ekdpHXb?%YN)v#m^JRUta5-eN&^qw6V_}Oan)WK? zV~+kqrAhvD2cUrn76qub8(UF4%)^O!-;~v>3=@zhFT7WXURn9(S>Hwx+xLHP_D;c> zMeVwF&`HO(ZQHhO+qRv&vE6aUww;b`+qRRPZ>_)f+W+Y~n@6*1&Z;qLjOWHxU)zWY z$AO4dT_w1L^ZYI0MJi1Md1p;fE7hjP7Mar#F$~RL$u~-ZR1Cd15a6}(csb1}BgoaL zG^n>^ZXj0@+y;gzWkw{$jWI6zdYUIOmy1FINGaPPSsT+HTc`zj8B<{4R9WNi$JTnN z2Nk5-rx!0?k+Q-w1@m-ZP>U}y0EYYwQluJNCmjszN%_;4le~S;q}e#8kEU{+bxT>b zV?nmubC)dDz3k6VzVoZ-w7+wv`T!VXPQD&BzUkMk2wEV`-S6=Onr^KGn!>5$J%0Ec zJJD&aa?AuUIY+Ku6EGzIdx!`pCCcDYW`!IA>bbnt`zNRZS|X3mpvRW@zu8%Qfm=r1 zIC>C-cD7gB>K*n6KDc-q!90o}%*rwvEOiW}XzV;Fd+D;yGUp_hqCc+{rk@)ID@ z=_OKm2Y@G0*^?Q4>3D~CMTLbzF-9OG zg7*tNAL_=xwq(>hSyZ)8EOip}7FW(szlc=Rnmvk}<+38X{Rb7u{|)n23WF!t*&YoIvflaT zP`f_B!ZWcZE!w+Zs0QCHwCGua>i_lLBOL;Q5~;np+cf!U!N9b_+~Q?ae6rI$OUYiX zE(7Eq_TWnH<@1NUqt^W_ z>a##%j$OO!1l6&vRU{$DpNR>&3*{;E(PjQZytmqPg3G4?qPnhgVo~B3x@0O>&@n+% z=HbhnN0+_MW?J3;cZTvPa~DLJjx_eN(wU&&5xk(4D?eE>4h|(&pEneRLBp^x0bfNN zCqKI#l_#!dPoqcWuS?2{M~OxoCu#|)tfLy0&z1rxV-UyTv;ZzLc)=Yvj7`*kAhmhT zGu6se?h+D&TDW);s-3@yGH^t!rs=ar`JFyKi{H$dXTWwqeo?e!NO)3p9{2pt3z0MRg^m12LwviCQ*TCWbP>{p4ErcZNUk@?;PzfD z$+fh}j?o3rh6fQVkK3A}7SrDMOq&O}`-;FkpqstH@X&*S=9aonZe5cF*`9A6t}ldk zg&A|>i9;F$E6qJjt!vkXdj`RswOwi)-pMI8^qYZx9TI3s(W6g`lFF;?yYgPSpaP0Q z{GUqF*ow}D@m{+>@NsUOUO&EmYRdTQ>G3sTl>waziEw}590E1*+4xe zx|!hIAU)Q$vcnR;7}9=+%;MB6pJwZZ=Og8pbD)WSMw|9V<8oFpPW{6n;gs%%uz$s3 zM!t78VB)5{p&8Xge3HV2LCEp{hX241z<~?9JEsKKM#9-9ypGdoVZjmfu8`YobI1Wo zFeOgbl+CCZ+X9MEZbaKzr9Q_s?vN_MxcnYjTu}4^5HqfmnWd#?)G?8a#Fh%7hSZ4 z#Dl8K>;@mWLUB9HnDOrjc~7u_is) zmVUS#_b_+6*h>69w;SgTfxaz2qAjwCW7EmeA59t=)OaUbdfjGqth-m1fqGao{nobR zs@2(iSBh%Q!U}=pe0fEDNUQtUd49O6{6{=hb69eBi1#u6FU_-Wq@DhHq!m#@ehJ@J z2tDU*k2lq3dHYjAzd-Sv3Z}=Fl4vLQN#J15jP(dJB=dQV`hGNuVANVkCTL$dC|Ad~ zKj$q{fqWLk4Xh=Wel4!m)ukUbWklwEa!dtw#Iwt|aSBR_AxszE{vy)ZdDi1$ggE$EG)+SYyz4V4a-174SeWv>>U#5Mhl}5skskI{f@V$J8^#SkM(V^n$NS> zhHe_^xb`m^KmU!$YF+=$r>A9VAaiDWD67439ixdgNh^z}YZ`J6rIt--dh`xr@PC;^ zH18!G{}d*m9w_+%al(IKSPuvZG3k3DO27C_lxIM0+y+zlshvIo=JdhvSp}f#Q{9F^Xu4=JvyE$e2+UUAcJQ9t-wQ! zfszosZHqDXmq(m)o{7aWe?_34Ubv>c5B?-Z%leS#ydrw)k&xI@HMMzB;bh*igk#e} z*s~N_Tj`Cc{3RgCjBlhA&H!KMEh;!w&=O-={Lrv-ra2t-u*4@xlM>Ob!6|WEI3H?x z5A|f%TSP(9#hv$ ziY!D+caH!S>pS&@smvh33#*q!qgqklUE2y>#l1Ixet$w4(!cnCFVvv7dY)W6ApwpD zabZy9ArVywG@T`x%N__u$jSvh+L(t#3Gu85dH9HudU*sZ-6ReQ(^AUH_VpFBisGcIhs63fY z+=204YKE*yIfX>|$Z)cLl7pt3YqV=2QCHxf$lXz?(euLHF~=-Ifgrx{R{NiqscIjW zJ1cIl2uL9wJ~d@^Wy5X*LD|39`&q~sJ5bH7yH)f%qKoyeetLq7G%f)>Q>`3?h7zMb zMUfgf5ax4wCZm5uo)uIvaK&ZpzzQn}{8g4Hg_mKf0nzk*45e#+3+WeimJ+fR{uerM zeQr6v8K=f2azifxMPh^KtSXPrK=#G6s|m=#=_jOScLfIJx9+C;N8nsu=&ZXJ!%gTX znEx?zu%ekwM#}Ps|4bz;Wm;!dKQ93|EK8ZG#287!==G{Ke+1yaUHPBFGb;PIjL-2HtdxT;?vFa=vs zpvgb3mP~a}K!Lpvx@X!I-QL^$%K_FL?NT5$L4i|)02T04kf<-IO+MAVdMt@wn_*6U z`v>hrWlWPgKVU3Lm&cE~?lucOZQzeb|Kzr2B9ip+s64`0oou9<>=RXn4B1{6l-^mE z>lxvrrv%zL2j^%QqGNcNUjFZ-lB(pji&sh|@YCmHaTyed$h|cmWh9IVKk7pU0|*Ma zt0kP$Fy*gHux2Me3lk;&$x3|m?&drK++S2t?y$St1RG@Yg_?A`LbY5uHAB*KxWmT| zdB#(q9Ag?cwLjs)79ar}FTU<3E8_!MrniG4ALJ3J<1%lRX2E<6wQ&EPHR^q|9a?X1 za$INj{k{~Gp$$VdI5y>Jl}VP+*#_5wxs-Pp4Fzgn`|O)LVG#FZ9tPtwavdbSD4TS? zC@0Zu|1A^wY^6}3HPvnCqAU@O)(oXYcHM+K0KChN=Z(7KNIs<}JLz(n6B#B(@g|;j zE>5$Bpbum5KJ}b%lRCdcgreSI5gSE|AX&9)&f`EiRp8iwkF`a0O1A;pakWMplNQ!A ztkp_XJOW?<(?+5;J0?7G$fGbt*XZH6OVD2T@riWxq3qy^X$(1YZA`T$*VUq{`MaE~ z=A`6^D`>SjM4E}Cl5s&fJyHR~j5ZV{ny6|@*&}VxBt*Ych9Tsi=1M;0ECLMhiW5{G zhWRvX_F60SO;Ca>1PDS&b9T(ayzq|1L%6q;O4iL&kdI>%{2dYW9pS(eculf07Zkkl z&{*kg4d)ivqXenmqyoS31wl6Z2Za$d!KCNKH;#|FO;Ge<+JHnZZqlH@L&qanRGGAn zkUAS9H3q4Y8#N6{Zi=fJxTl5@5)8yB_+|_e`FQW0eUyvlr@kol04B4FV%!hX>bvX3 zBS`=&^=%M99)jt!2)L#-#yjkoH;+9Mbpf2|S!!AHiRBP<^aO9%-eYr~ zz#)pnKR}?~f(@<-V|1`OzdZo-UGg&{ zvI{#xxyaRHvNNO2Q6ihMuJe!5A*E*Dg>$a|_U`{!$0MW;6N#OrApy~lC38*9E<67( zd+k3l)qR)mZJQs6u;&j%_LrZ85&#sH}btp&0Zdx9m79Y{x(7# za!f{DcAh1(99R2qv$f#gHE-u*9T@lHq-jfOZ4wJ*0I>4uLUaI9vJ}JEAen_Stn3B! zVfHn{YBx7sJVTM>eFgXX>-UGBAC7@F9QO}M#W3^@^`fIuCO!r%GhaTz94rDkJS=EB z?$~Jo8Ux*c5kAF{0>Xc<%>qr^neaYgh(pj_=t$ntEPQ@kx|A&z(HZ+g0 zuXe?@Ia^!h$H4?m-5@W{uaFWh^aCTt9vNJhX{cfjXbAM=kg_crzYs-L1$5c7yt*tr z#;d#;T7SlY~gg8*6K`DV-fDg4ry@Ih!Dnvu}Aa>5Y6Yd{|4 z5!eKIH^%hgKQVD<1}OHR@j|I_Z92Gt_Z8wi;dCP%gJ(e+#=t75StB+`S~*uY0}}$o zpe*GULA&cQFYE&=l_Fn=o7~^!l8bcgP6m)8)I00Cwt5h|PDZMH|K4i01HJh(`I}MR&JzI3KmiQn zb2IB3X!M&+E-6M0XygoO+=*?g-*A8?e0n7__yUol(~H+wa43Unv^0Yd_x3TZ1{y3I_wSNk0!%sVLqFVKy606=R7zol*DC2h+X#A#g&imzy zA_9kKM$A9KG#3lK|M?WN3mgr!H63>^wR#SrvAxMM0jfcj*zt3ql@e2ysG7w{um3E5 zKZbOH*S-@L{~@sw1eZ*r?QRXCjI6~5jsI(}WX*qm%Twp(3-ygW=VZda%n^8=53Iy} zJbPzsk4d}QC35-ZO1LzRUmvgcM7nf0&`QEP=oq+C6t}Akwqf;pgu`eQIfrd)fvE2; z7=n))19gG-PpuM-*T!AdID;;Gzy0O)=xbY8c9=;%+d(G6|4Hb7I?^Idx#{vGiD>sL z-MFUbA#Y@LOO=g@<}zs-ZCgd=idOV8cYQ03W=+6ESwVr@xv5$3*lb%Q`~?`iAC_h>C?pL>4z0oRB-^lG@Y~ zs8V_K*O@_xFUaZ&zzy4qK%}QDZmSZT%Ze3D?lm9r(<@H^|NiV~ z;qpWjlxL5T4?aIGxVAsUh7|?;V4O5U&wlKZohsepdN_o@QpUV*5>V=-uUOgAgjU7A zUst555`0oSyKa;1GpKU!cqf(=c2Q&9~)oogKx5w_jBk~@xGFGxZy#|ywmq(`76NoN2yjP=KRCBZrgNS#p7{KT=#&3AkWe(wE65hYR8Cvb zA7}_o*!zLxHbSx*$$S=c1#8-efsb@) zHNNS^MX6gmnU=IT`ScMmN)8QFwP>bQ8N0@eABJU`Y{FX)Xt=}%XP!j{&-T@A=%r!f zGEdSC52Q;vpJ|P|5U}}i9mt+RxA_D8PX++Vg-|!bCuS1sC*{fXQvxmfzsdmo*T(+; zivaxJZGBSn+a6gQ?R(RIC`q1tbpaQlN&yT5n6gwIf&l4_I`bm-Qg*4MV%0GyON_~Y zBvz!{S)2}TC83ZET?uS7KIEKh~$<7Cau0CNpyj+GI*x02t1_UO3$MRF&wka`52{$<|?5@{Y88@i8w_ai&Ic?EM^W94en-c zCK(p?@PEppnfr++o1Mh)Vyve?t++#&f?M-9SaOC&m~4tr8C)TSkzusCir>=THrbOf zMT5F&6>*%E;Zo8K3$j*7)4K7P9F`qc;Hhwt!zg+FS21V7v4_N*cz>4(7!e25>Uc?~`g69Xqh_x1O}WBGiO`fnX9 z!Uz67_C=o}uMXFy)(h`tI#ftx&JjRMw32omkTvT?!p;aKsk=#*d@uor@>r_9<2Ps^ z`TZj&nQ-kU7t08Pw!IG9@Jx^+^(&+qnpwm%)7S)oP)BcKyk9Nt1M05rVzxa#2CBl5 z{oDNIEBU+`Jw+us7t&GJQIgbnz?47JLNV+Wa~K{8SvLqss$`!jBi2xf5ob95f`=AZ zB4230@yZ1Uo#86^5e)F#7{x;eGS0WCIw|uU`}E!~IX$-w!1(Yxe&cy~r)+8QBF}-D zNnkEK-8KEllv`kWo5=!IAm4`y2t}W%H7dSJlv$ls!Y6nacW2>SW3loCJCnW&2>a)( zqn%B$&t)JVlh$9iT{_psoA1YV_J5~ZsC(7*T%WZt375RR2lW|jD|6j%X#(}S2KZTh z`lsXTXU3Mx8LPT00*9AzWgHp1u?c)EY+cv=qw0Ct_}lTR=LaXPAz)p#;SRZIlqeeC@OPCD20MN@Z6Wy;FFoQdF=hYRUI>w<9V zSYYq-(bO1pM4uG|-7ppg+Uf+%!gqMGF^AbqjB^0wujbG7Z{+z2IOzyH6z20pX3-~Q z#PrFFWh|MHDn)Y{5osecfFT$)wA^shbeG(&=!|&S*RYF?Ux-5+vN6VL0-_%zkBgz{ zL3uZS=OPkuNbL+0GXfQ`rux(^^@sa`96SE7ZLj>czx`8+KIfkcyHye?U~)Z#km#UeaL z3D)=!M3Pr?!2zPwFST%2cD0DLbLsZt6;pE+Y+%s9WiZU}@(!s$5w|z1uj3;}78irJ zT@8^b*#o}E%tb zgw&@1NbWjQq2L8xBII>y;$Iwi+`E6B5i}En{2}}*JV6;U>QBRkQWh+bwWpqGQB$Oo z&`?(uVKYR3&6?5-e zx@_!|_boWOg{SusyScQw#`nLhS`Zii>>>O2ZPX#=5H{;{kmm6*I$v%3h^}P9ePx?9 zw#Au(_Gu}lz@)>j6gOymK=3zpG)R?cvUH2@;a4|-l8Z=J6n$en2C31p(kxaiMPECU zBE@uo=n;Wil*6MIOs|sg!V}mG!#q?xmQx}aQs*PR;o9r^3WIcVQDT2c(RS|^;h~HO z)zvECD!duTInIg8+hq^Q%3%H_Av-}c_Ya3QYIpad{-lX%8gW4$7(kh2#TR2L0O($^xCcWhXj+gw{uNFLK$0Nypr3bUTJ3tGI0@c?tzo3+cU z;qCnOuU>TR-U|G7@87-Z?xLJYz9Z*XJ=}hjTw^olsR+|v9dC&_LQ|6O?CEggqyjDc zz-C4zKb~Azv4aEbY9{i(EM|k6FEY%rDy~E=(_~rMd}%moWc}dk0&5jtNP4lavSp(X1>+rJ~wz;sQaTzyXXJxA`vy5_YjyjfibSF9n;hP*ZoGkGSwr_Z*yflU}|YA93L zodxMH+2{H*x6TK?2aZ;H%m75XtgXaQ-4tW_WqyWXxqeW`L<3!xM%H90SK$Hnws&=M zPOT>OCf|JGWMvkSaJz`C_L`Yh$eB{`D*i0ywL!W@@U_*@ZZH{wMK?v4_v9=|iiM?K z@mZ!~8!F#_dAwLWe{xjA`1-gyXuOFR&6EkhZEYgY3YiXOFXd-E#!R4md^2jgZya-h z_54Sdxn{ie5Z60?$iq8g_av1Opsnr5&|LGW8@K!Qd*&tc@yUTC+dAMin>*84T`6J) zUnk>u_@+z)Vsim;jNA^S$OHK@kmLubu9tu#hNitVu|3K1+VRNJ>Vac)f^gWRlQdz} z)z?s%|I}`eP0^DugI3^Zvafi8o54kg{DX3d0dT8Fr561av`gbw2W&mk<{ zfZZkjo7b7jW`Gi!cSI6akD=8J1l`yP^_^c~grR2U$ozs>x^#U}_S&tR} zepk72{k|bTTZ!y|Q_TD^U#nJ8O0UzO2lf&r*nc2#nWmpv!l3(eq4R*WRBMzHndy>1 zMznOf(FZB=*X`~trrNOuj?0(8(_e3CRtBs8Ag7tl`5Hee?RywM%NR2s|H_9mo00Bc za_ZDtn){4}>ACzdTD&hs#vm`uWyr93k-CSko-<-~=wdvR)fR2<`1iGAR#GmwI1X|+ zE9te!VGj=cxOeZ;B{|SS?sr>vo6pTzmS=M}K-qxND!_jB9BIy(gq)*Utgdri&nPE5 z%uePZJ>Y`F&S1zK<6oZH%xXy5N8XOE8wX<7B~Lz4j;oW`t^FAJAiPX-SzmHdU-GXb z06tlI)1X)=CdsaCk4vR*suE89q*bwzmLnc|0bXuz`sc^v_}x!}9?0I=nLcMjt)tt{ zKTl_xO3}4fPo6&dj?=f#t29z5_MB)&bc8G}YgmVF>XKD%8M(XlACf&0gUpU_fEZN3 zB30LfMnQM^+t*@ScVTny7N(JOddAVR)jbcmU4PBNPj_guK22KL|DD~m19b1Y{i!{7 z?mCyfsNXzwv-(+A9{X&Rqn-&@^RjCG{a4#&x%73vbAR5ryO$X_&sx!!e4Y>&L%9#7 zpD#WckeG}A`br-|Y>zGO=NYi0)}?%V;`qW?&Qr8**AJ!6ZFrvW1g2FV3hw74IY_L> zqp_qPa*ylg59);zi6`{HpWO2TI=L^2)SpHGjQrF%$_0J#MpeNN$od-NxN|EnyF`02>hMI8OlBRAJt|Go-V#vNZBoI?6xK;s_j`AM%&=m+fg6{}aP`5${hf4p zC=yc!m$XvToE~e0s@oT5OA8HSQ+qWc9i&>8?shZsG{f}JL$byZ+M;V+&r};XCBp)D zLHJ18{M^~ly21ULtwWvo;>!JYyLab^ef2YDOG^4eLBExeE1sErI_gibFHFmP66XYB z0I~`A=z%BqZ6`M5u#enN;x?cy!N!H&g5iy*eX9~bGA`a)vBO~O4%T#AT$u%}X^zdC zCAhaBb?hmoSV9_C^)Hnia>f{t0+>sd?5x@V4-W>7ve%ZZ4 zYTFRHRxPh=vT55q9WD2NR|A*HXzMAk+9Jt#F3|L4IlQZ_tVNqGL$I%b&Dl;P{!INk z-Z5bY@o3!L*Fsp)R(O*aeAYIfay9Qs!xaZc*#{|R%4C8mTSAcI-a_?R4CKyP`_=3Q zNpgz>r?XMq>9OM>RsR*Ah#l0l|fUA$%M_+{RI;>PN~`sm21 zi$Yol9Sm6y-0@SW2W5OjtO@jC2bi`ZC#pIe#P>K5*ioI%bIOt3RE=eIVkXL`TZKgS zj8Xt#m|*b?Iu*{D4O*~4SS z@0lMCUl(udQ4j8kXT+{PIKv}zh>3;4A$3;TE_iu;(ot-eOI{HLYDAh!E zg6rf)x@|v7Y&n4#agutaL?;pt4^F!ujAC>@LQcj-JpYC-c7z>foKT{i_RqcN(2@d5 zVi_?$P7rd*yX{Dr_@lzudZK1FB@40R=T8^j0qR2O+G(+GJhkwdo3`siu49KXXpTT> zQxSapSO7P+^T_F_(8Uc+pvuNY;!{Up2t=+`URM>{zggX7tvzLW2M@(Ixu@9QcO}8o zs^Hq&gv^;7uu2(J;oI@v!wrS!($Wo&&-Ql#gl@4rSYkl~8lN>lI9!_5B>WuOrVFk5 z8xV2{>sA5^Zl9P!xpO zg9^#W&u`95%-G^;R1%GYShfPv=gWRzYq{Pdlc59zvc_l6AfN8$w$o)=dey zmuz;pYnT7&4E^;x2SW5w&|?x!Tl~#f{tPnUTsnl6ZNR=eE$Q6%E17o8aNv%IrO{dJkoX515I{2lRxv4E*6?5a5{01zFiBMKEeSAqs)zRGiU|d1?~bDO+d~ z1U^)TEO+W&Y?}fUl5RwnzcUCEho)P@qDG5Wc75KE7!cFzYOC+PKWjPOq9ab8*L6=| z8%0b%L{X>P;4;@FZ5((CRx;?#*a4F3DHvE@1OG4%v4mYXShnWoWMGPKqKqp+Gn{~n zlbRkEf-TvZC2eROfP3wtz)X2O9s90#8RUefn$@ zU0Oh>D`j}IhfShYH5_>9JhQwJ|BBa8i;ecvWu+-Hv_xjS+Dm1)pEu}gc!)Xu$(~M+ zr^chx%h|zbBu_ol;9Yq9waLLZ&?T3BHOjm65(1oFrgf-k>kogRtDO*rf)m|lY}^a? zbyV2tA31k(#%%GW4eisADEjy$klz=4tB~LIkb1ULlE&+*jv+3&jRWSas&19tFu99) z{wsF1|8UOY>AAYjp?3$&o?qdJPJ+c=F75fM6n)`g83z-=-o*!VDb^J zbTj|ZG%9FdcQPD$_ctlCnC$Sv*1;_d+mO26;YZwtJ^40ZcV)?O!FE!W*(ukLEpzF9 zYue8--2N+f4P!aiVV_(5yjlNMytA^kN5T6ronAQmsF*kwck1+&aqc$xb z!LgQPj77BqBO-XIoi^hE#nHOIHc1*DQ2i`WEx!~;Id76r;{f~9aq;r}ssWCW<=xCQ z-@NNCbkDBq0^u}S9`05X29b&DWs0fUno47x<>{4gjmZ!>opu>ze~$PL&Cr5OWlh|< zbaz#cmh|6~u+sxug%yhV!%8*YQwBRTV(lMrv^#r`##Wcp2Dmh18=r{SlI`zZPV}6RCcDs<)YXq8`039*6xytWRDy*LxHVmh`iAJ% z~V&ADg;T?D9iMp2VUKIBfBTHtJb-iXExV9k~-=GD5)mg3i@qxEL??=NcMaxOi9ad29!`%jvvO94sKrPS9EwNRd!m}8_~&?K zZ|NCk24w-c%_Pbz5i}fgh=C?NJ7m8kbM?OeRo6Q>Kjrg$m;*gv?q}k{TbCI4^STC^ zSm*SlzgN$FO>8k9uy`i#5O^SqU`*L*^nAK zQXuwT(Zd@PGu=Mk!TYxfYlIDp3L_Q6H--;+Ie8tB0|KA>Kmg~sD)1t`GUzkZudGz7 zoyuPX@Z3db>GQ>=!bO@Ae295K9VVYk0=L+fecp+c7@8?q5N<%UChSaV4o6>+c0!BG z2Nj?;cW2(rJm_Wo*Z?3Q>68x>Ke6nwFaWXC6gWjdy=tWkd4Hvp7GvE`3kWz6#r8ap zjSpE~&o}57XhrWAh3E9$sTehn#MT&r#fACGLIzCn$gKsx9w3&OCa$%^B%9NTVe2fI zWVnPoy%yE#Fnr_~>MSuw+E%CCb7&VDbVkZbzInt7IPd<1doW(w( z0eAlwM1p2$rvQhK!e`b^w!FyC6z#&!bj1+s{Adkmz3pd zW?3Dq$ne$i3zb~w)G|ffW3++UBS@r?VblllarG40vo;v3S5W{Fe8=Kx*Bfj#YoDgTme5xFOh zhuHVjTqV_mQouQ8XsJd1uk?qKQk|x3b^ZHkfK|oHVkjUxMO8AM8 zr9OujDsckrYRzaROJ?<5?OOiHB({az^FgX3DP9pO)9K-axbUf&yTSKSm$bsaza7dF z9ii$U#5NQJ(@1QpTq%X1)_p56rX%OTy~K53EOp9(T0_fR@-4cmAYMUeWaXsVd5 z${v-+cOfnk7Tffq98``px;(BIw_Q}*Vgdvfl@(LQH&CbwDo$`$^KjT1S}P7uh&T6c zL*~kMjeh-f+RddDuZ|AVlB7}E${Adk3UcI7d{t~XTA4-$c4iDjCoKmQJJ-QlhbW6# z7uBE1jXlTZrn1v`m{%SjXX3O@_+p$e>k={4nq^bw&c!J zc7##T&@*Qq+w}GvJ>v~GXWbX^vw&7%gT=M&a=Z3+lASl^3Dn)2=LtmNX58wg>BR5X z`blIp?h8Zi`G>jZMD9UjXAPS?oYwfm%$W~pVdCLhLW`yQ5Q6CHQ$qt@0Je>~4ZYTo zq@xy=b23rGT6~A-AElwDYy&l-bdPUD7!wiw!?s52%BBIVy0Xdn#6wt?qC_=h=IBhM za08LBujekyxyk1i_9prG59eVs6ZE?^7RbUbJh5Q)2zd{meEL zw~ix6_&!fFp{aM9r92i`(=@~m;B{qo-kofBUjo@deOo%EF980;?W?AFH7Q;zCL$kT zqp#kqEXLR9UZQQ#E!Vhpjh$#w6$JHzf|D45iTN_KN(UeDxu4OUefmR$;69KDDq$no zm*#;9xmfv$)M^Z(L1iayLOh3o)T%Z9RwZRV7#^iq0WUTw%kL1)J64N`G`Rt|CZ3Hf zgXnQkuNd%2fY88G%}>G8DdoEggZfxr;Aew$`1jb zS)OY!9edzY0^7*}6xOS>xs`lon?gTBc`epbzQh zA&)7-sO(uc3fucodUz_m(Rv?hlkYD5PBc6iCU>W9D_yzmsbw-JO!|vLEU(?I|FmQi zj){kOEXEDa2m3!PlXP>9C%vS21p|kDopy@C4-PtVqYmno!6x zDOEMtdA154R9=)rX?|7n3#)-Ia16x*o9hqEbR>Zxs&7|eK=4%P`~wqJ4p5iul3`&M z(b`)-0)t8S7gl)A9ZpWBB)ouF+)qPPZs zm>ER}R^MryPkd_b-G zxQ3{D?`+5%CgZck6X>chS0D6_I&V~TKYcKI)u{9drr=?@xg|x;sUr9QQ*IVikd)kk z(4QO^owytp-$(?4SdcN&y8wB9(v_uc(fv)+{OlXD3e&S+jK>l1=>3o*jOBi0B{OZJ zJ*ERlhX;Q9{jf%=5SI8Tk`HfW_MD;}S_LL!xTzw++3ePDh{H;o`Qh-#diyke&oAp;Tps^|^vZLZYM@nxLq{#ck0C*bm&oDU)JJl_ATMd53EByRn#u)Q z!Z14)2~yw*2JouD*uHh`|0)ZpJ1=~H*)~7oay=cbNA|-o5=*hy%-=C!OxJxMcVYMCL*Q}P6nU4GsI~=17!Uu9Q zMZuX!)USVSJVt3CZfxMB;_BGp^yS`?>$X0Z88#-}Ni_GQ%mxohVesAm`C;BP(tgmq zau#a_J1sOqJf57YZpqEV;JDKK5fG9a=tx(svKv!z4XzI9$%@W~0My>|6!eAIT!Mq? zySe0;A)^$TnWUIFJ*+S0L0>3hd03>Kp~y&nWzwq(ra-Gq*AmTESC$eOQvbMvBhiJI zTN;I+-+#t>b`eMeRHT^aAd27KGji>OTUdck*wdSV-lqB5;T!)#_)+ zM7RV~zA7w|=a7%r?;Ft`QBV1Hxm{&|AWyo>I$zE=h{{yGFcdPC2CpvvhNjS0K$$^> z$>YeH(q{{;pvB2$BqMvZFGj5^BD9ZC`dH~x^J`*NeSG%_t}LC|AqAmuUxNjVT8x%0Un}w^o=E&8 zEq}#-8LZe+JCO(EvXBREcZJU6@qp#eD`jNwxmP>#4sf3L{2mVD?Q>IWA2L#Ow!lrCn`MzQU2bjIn0mWzv%>m}$jd&`4I zom5vxy|)&-CsQ!4Q%z{ES@vG?G1n5gN?Mf&{avCGu2MluZbZz6jgw+orV@z!U!BEM z`Gw!8?~Iv&jYwi4r6wvwwYw*%H9MmM8Z%kP zP@riDXwFg;1dM*{Uo9CYr2aOQCM=>n0wgH)p@8EhLt2qX!^h^tFRTtn_J*1my$-lNONQ5) zV_)nd451k& zjP=28q4s#O&?;~ZZdOU}ltOPkG)wRSgy95`xrdY`1e zB_EWxOx_U=j&&WOcli#!$>I8!>;jiL$dpgD6~5?!`<>%;oi4}?9{$Sfr28c_SU)f6 z|9ku_YDz`@7bP?7=eA3e-z?wM9+(IX8%D1E9G*rx8k+rVOxDM^C^BVX#f zx&!X2a(Sk!XM1(6yXIYl+6Feh$1;RxHWC25~W0Tl>xEz4QJ5n9}}(9+=)Z zUP1l=?dAMHasGF1WcQ*L&!hef%Kl-si7`49)e^RMWKj1|21$@ zFaUXDoA&y8j=jA1d1G-Fklg;a>3 zj-GFO>SE&Kh@IIRj_Im^2VBUtMc@LYo;Goy9njh>)jby#R>+)9PG^32suGEUJNB|3 z0&8_Fq1R){k;`;u@DI|hgg(!G_%E9?%;z^1n_!-S&RuINtfrnjuGoc7Y(7!9_^PgNic)nUQi&jl6wJ6vy2xH0Jxoq~lS#NI zrF_pNN1AaMB|WzWn2@cF^zUk&_T(UGhGU&a@ceGewPj4 zDC4;va_iQ)XDb0oz9&3T6M^40s*sETnG=V(?!Bp{>D2b}bPQQ#4{U5FR&VAS43Qz4 zBh0;~`#s0+(f9Mrn^HkR#~C9h1)doI_GzcwcwVr0zxFQ7t)yhbw(t`dr1q)n;Qi=d zKLMcQmN{~20S)*geFu>a8IuDCA%Oo5=CF+1D)v}FT4WD~s1702k(?B5ON}$;DCC4W z9`Q{NY@Dd$EKPPnv&q=RlrYAw(pr%*&ktCN`16gUN!rw>30cC7&aH8Wq>0YS8cu^= z(x4!+L7_9fNm4C+!7~xSk|xRdS2YSF?}a_VTOcwvG-~B2aAM>tSVcN z-aw`!03!C35lR>rF2r{HBYzqA{Xz8gKx+NcC65p%FG+^-9=puMD3 z1?+Y_loHg+(QqgVB$ewp<-``kOEXZYpa1O;w4k*d`eVQ!;^ajdV8NN7G+2)=!=5Y2&KCVz z=J?A6VP-ten6&m@kafTv7vh1vn<70P7(8Iz9X(;fF^@>i;3G$^ZN_Chhf)1Yc5T@Q zI1%eLrxIpmU~j$bEMb|&WU@`#vR9V>4{7fd99r0IX~)TqZQHhO+dH;x+qP}nwrz9A zcJk-+U#I%J=$k%$x$aigdTYLG&N;?-h+)|n#7Ga!P#w~+K;I^oRok$u;!hJ;c4v`f6&t|~ zEN5%G5w&D|4QqY3Wh)_qRrEr;8 zP_P>jSDw*nWQ*^JwIpDh2rfA7(IR2#EYpi-1y)TSao1jPqjpZ49aD}lzYOMV>1eiJ z9o+8!AH>X796j~u*fXaM_PD(s*GRnws z!h52z{^5am=qNXCz(-+9udgSWaiBOnt&ioia}we~vA4Wi=U1zsNAwI}OPmzY+sGkFK3o*B%bC0sZNY902{LL3Em}V41odNE(+qdSVALb7T z8UJ7l#Rct-4LXuS3{?_kly4(n+LZ*QkjeeBY^B;--yLC=9q<|E_9=7VL4}jLxKrEv z?`Iz1hKs{@8OG7F(RTxMzN&)D{B?Q0X2LUQtvaHb^s#eS_8kC141EyH*ref4@Jqgc z?HDCE7z^5CA^q+}`O{MF|JEb@m)mDs{5&=R2ms&|1OPzlf2>FPFSfmqnZAvwv5|<& ze=~og6(?mk`H{CjsICzS{{ci+AXo0it=_Pd= z6s+ltl0@f~x9BFN{mU4yGZc)5S3iv;4%i7s6!Q*&PUA@3p&I}OY;QDA*v9Iho#=q^ z#Q!d{4l!&FQJ{t4lDTiLr*hUe|vZLI#h!R~Cd+_t}Q^@-{o|mmufH7ti zc2I8lU|hUE4`)JDhs8E4dYimx3o2pKa*UFTy*wH(EIWtWrW_5<22#(9sX9Iu*hHB6=kr6 z9Me_&uABQVpoSj4GgcG)Z`27B&>iaTV8jzrny?2-h+eV_Ty84Ll-bE4N#2d&;Pb{ye2%E!p(4{1y>#2IY=);xSo#A8o%f)uZdv zNA#7u6Eph8Q0NE7MuD7`!$Zn2{CJX%@P^<12b~3^FWR>6z(n|M^6~n6C7U9NjU(`s%O$;Jvat;OR*5>oqk09{Xfy z005!?@zIwtcG5Tc#l6y6=)34gt8U9~iX->TDrFrPK$cm`(^aULw^+HVZKwvQO1%Jv zxCxf98&2jl6+iHAzJX{E;Nd%S55VFn~wnjyL^;t+c-!BIToJ3!mNfIz8oT z@xPZcLjayfsT4OuP>4pZD5pIl?vm_~rXqg=i=kvSAc?qBQvxd3au_cFHYYJJO-nVSX15^8%b zC|~JH{pv2lOjWS&x5f$C^9fo^PRrK=)^h@K(E{Dp4)xhEvB~;+ZF;*M!u~R}54Kxz zUrj_Z=sVFqqxsSL=R|N5a!{gX{MwbWrYCmKxt|Z zmZ$)kn4T^m6i<@B2iGC|)QarTH^qoMi+&6mebhhXzOAezGi7qHd6F)1Mkud5@L~(O ztG7tVd6h`kv0FN*%;F@dA%`GG2ycI#op*sL zicBv8g{cZId`0{QMGG&v5Z2LiBcJnyxsMsj$CNKJ2I)@953BmH=E@f-N`h-@e|?*% z1d)}oW)b$z@}mj9(-P=SR@U5Mi2gpRZvt&ppr|gnx7nip1K`jlOF7;zlP(G>%V3yh zo#2q)U50(<%NDXR8Xe}2$_M8x-b7Xb!JX^N0FE;+->Q7bIYx+Jr)C4dF*PUj}4=iIh#t=Cbbk%(EJwzdh_V^2bRAyECt=VQS20={AG9EuI&Tl5oM zIx7DNT_kQ(oH2pCHSriW2ty(xekgt_ELuHYeVzWwCZ;^d<4lR)*6$zC85sp~oXP&( z`R&LuujoX|tqVyE8Du{6D6DVwsOb1EBsp)U|eJwls zfu$))gF`{UQw;Y&CGti^76_k)UW6`YS4WOKW0}C@WUPo$jK+Ah_Yp#lXHuiP9 zyq9Xj@u4p&HSG2IhU~95V{JR6(Ol%3X|~uvO&zaBg0-D}t)IsUkb_DrY^y-+0&tr7 z+fSy{T8=&~)6bhmcz^9t8n}RN3j>pYE9>0{;RoQbK{*3kq7J@SWi&14p2hPVvo-jo z??kTc-iip@=Uc!C3r{3pC(EY2>y6X23H>m4ZtjVh>9*1D#l&Mvu?HntOn2jRkX`P_4=zw}2bEpZftoyj5GQK^;Am1}lpd}1<!nPkTnx#YK!s6ZqBz%>?$SjoxCID}wM@t`v%uIE`&- zGd`}Ax5(tY#QD!qBY!iE608lKZGEATQgM^9Gic+)`n91~H|UXllatHzi8uQ|_Fw6@ z%zlqC#>-OWW{9i|DH(AYQtK1+B8`%)KeMqgHqfL<->N(JEiI?&O3Weyb*JC4+~*tE z-pNOv{O|-*Ps_yWju|8Jcteu$pb$+l4!)Z9-B~NJKq*Zof>21o%UQrRM3o!UDV`T3IAAMQ|H`{>WMrnh6Hi~o=?$CP z&WDwF_+C(e9bwA&45kORQ=$Tw#KB+~n4AGaeLiu$+Xw-9hkCitNJ~P8K&Q6Sx;Ux9 z@^B#Ptt(59j_T21uV!B9qK2pm3}*Lz%v%e1mjblpaGv~youUoOl^c_gRRXM>YbY%c zF7lfV&Z`HkTFO%X>A3-2>9SyELzT5C%KmWI8NkjIXmLTAS{ew%J&Tstshct((tYjO z*TsRGQpKzde?o(sBs2$_X&TKMA_)g8hdjGVi33&EP^OJCnMNbK{!rbCFs491uuok? zru!e82YPa4kyHRxRgrOv>g#fmG^P|3JG#)?2Z8)BPmaC;M+KOlI$C&|Q$JtrV2T6; zI}xhLu9Y?rf%<4MTvel|PZ!`;t-jTrh?HwXY}+L}nhkCVXv37DQ?WvinmuB(1S1$y zSUaAeg9Z3LWP?^{A`olnoFD}N{$eH(#*E}Hc2L%>@ittq(capX&-h4PW#BeiE)xzotrms!0|Ap4G<_3NTV5l7+vc*#!|f4i zv^|lkdXp=jWHJ>6BdCbK~ae0xFNln1Z8`=&YhCbBW&G$t9z8Tv~kGC9jJ z+zCVonV|iM8L&Ak-hGHdlX3DdzC#aVx+=^nswBfWjbGp{&aTBkpfD_{7*My-|JkeY zi73Hv=n!`h(MNP}T@r11Vjx@Onv>MG@4hlEiP^t_2K!rq_zO-TD9I^?-gP_oZSxTq zkf}2R^?YXpyFaH|h=UIGe3~V*InHayR#@^)F(sAvbOPQXGn|?U3RHvGn>9|$yI3@4 z6FkM*$luRx!%1Rs|3yaIcR;Xv<5BJYfhxjjSKEkhxg3_od!IIJ^ZlXSn^3Gf2&WD{ zxLTP7TuB_+gVJv{-_T@7Q@6JShT93;+j2R=ayx7;b0SmfjgPDnEkfmCBS&5NGEvzI z&CVHd(9$Ebl55`%tfzOGc8LuM(Rzi6<(r&T&+L^ts{pN{b!LM?d!05^Xv|xKl^m95 z((yO1Ymd-kab67$Atnq`B&oM8T=VQ*VSVjv^=if4xsXyXhqB`2L}3tgY3ou85QKsn zfb|kFd_110;c}I}h^N3{&py?A!ZnURaFXfRlTpyZF#ld9xW0$ws9)v8*f)*_z> z&3kgT^ANfDT0yPt@iIuYlcSBKF^gUkoj>Lo&jI{K_*!XX!o?kM>kF6s_$>J{!t|#k zg1p&K-0X;MBa0M{OFC&{%5)LOPbUpLv~!+VjmN4~OxDEQ;^&?O?bE79{{qsyX?4Y2 zY{z(q2d_E-Nmi({&(SkPDPxMh5c$a1lu)tq`{s?wdoQ$D!}mqK)sgEKz1W7g=e}Sl zpPb=;hE~95Gw7gc?Re1tj*(B10RW``pKmRB2V*N+eWU*dtgGM1VToaWU-urUyblW- zjjNRYt4WF=w@^7xfCMc4;9fKI%y_!qxkS$(Bwn;43JAwX0VBI3EX)9K1GX?le!VI?cIBt>U#Kg+d1`)3TA|p#|36!>Ew?BVsuIv)I?>l4)-cW zVM-CT&smG&&5|t^pJ${1{-q~t&3@fsUFD?D8ghEC52TV0O1m?*+b9?uIU=LnMM&V8 zNtKK@MVZro(k$LGvZlF=HaH~+M5T>zi>`J_sJiB>ojomq!gvT6uL zUAfK>nPgrPDKF1tQ?f%cslG53yP7>4Yv~mgfsQOGpB0mGM7|)MFsOJos?W|JO6c!b zi;Q$sdbyeLcdMu3{6VY%K5)}v&hbB6daYEIuMR(C4EtB&yOIW?U=7l#^{FEDI5F@v z1jhnD&FFjTXUDT+4wk9ovjn{3L-CKt=O2uFz27pNWEt<(XH*U__oB7iC%D0_;<*xO^)hRxub6esl7*?)fo#2q4TjxdVq`hiML6dZ`$%medMlngY z5kG+~_dh+Bq`hkoFOEOOAL(oVrA3U^dXU`iTnT3_Ai~#BmT*~Z3Vp|=CO;_>%_gH zCY#i~5SOv`;ri)*E+x8I^&)4UdMi_6)t75PDJWw*BL!?Qg|qiwMZ}~AHF2__h$5)! zTcs?ljtzrUg**fJp@eOhCcFJiyoI;ZwpJZXJ0L*l+l$T3g!QOWo$fkvR{e_S!Xnw}Qy_(4w~*RAaWet(7U zK7pkMo2bFlNa8D!hLc}I9_QIv_U&2&{ESlYIra0|zFCXa%Pu0+pdsd8g!9O;JHykt z3YXTTz-{(N(wNIW8x{i|%zNCH(b_)Dx(bgSSA|!{{O(J6ZwBi7Ywc&`3*kV(PuWeri(sq2P&uo#Sy1*IT+EP*hTxV`@&$<{XaGCTL>cMhUS!%i04?vV?r8S1PnInF%x zT74g9J?c0skq-OWB|ppjE_*l3Bu1eWe2d6dh|>c9h5tCx2xeqe)lPoa@ves|Me}VR z+sFk-im`SkvrStS8~3SchKu;qrgl^fp2g8!iTZu!);6V>ZXxDA~{({UL$YAag#!z-D@IZ^aD zf0IR7j`9!(`SmJ6-NmV8m;UoLFVaw$9e?EbPJf3w!Vm;xO~U&^!V(DuDs2B;^T@WY zXBj6zt>pLUHLh0_*89pDD1;DxC^s&3j0Ed!zAX+%Gc*gs0{)J~9G{I%$T{OfNno8h zGWBmGdc2=U5p^p$D?TR<4=s$^U%C4{yl5~LnRq1?IDWAfgs(KbntEr)|sJZXxCTwk|w$g=I`P(3kDukHB z%J-LYSi;|5oU33!2L8@0|M`;OmHLb?MLt76C-WdM4ipg?hR&L2EbJs9yx|L+?;}&V z_Wl}<$lTb$%F(w#j9hPB$gSFjY01jT=5xo%-!(G+k&mCX(oc8szw z;=X11e=c|le)~zI)4xXmzlK*=$Nv|@>wou?O2!T@=7#@&lGL$|wG#Gdwr{Q6{7Enr z2fboK=T^26G7^SPlDHsAUF|gr%jNTccq5Z1Q=^_iC1g=D9F(FULzswW+cL(V@lYzL zDkJ57cY8e3(ibl6uMhna&k|GDc_HjondC`>lH8A<&mU*o@u_Y4Qu>BpziUgD`LEv< zi1pq?Pg>KLKB7Hgf1l#l@7mr-CaXT2Z~;nwiW(ho4!-tLWrnpny#=%D9F=vUf9TqC zq5ZUl{p>xNj`>C%D&>F7Y09NGo$1eE&f#w8bk8{hnmVoc$5SC2)^M_2wm*ZB_Eb`h zr!}a%Z@`D{spg~RFxkPWZB?=zVb-zx!3MWic6$k%YYB#X@h(4(0SANx{e`6!dvEu! zT~20mBGdn3c+zV-iy_+K*XBwx+3x?)%kp(TX>wk5-HB(WdjS=@FrU$KvWULIlIWPN zz5Y;#gnqhhFh278LWfYtd6)Y+5n45gy2VkD2f6Es%c!epG)dXmP8Qk@+2!>P1k9%mg4)>91vZfnr= z@5ASRKPT9~W=GEdX7f9-;-zqV!G1Fk^OP-@#lK^&TZKH4O`wrWpjJK}A{@Z^);AaY z1^}~+51z^!(tE%w{=|J7z#+$ihr?$En4!m`u`Fm4x3WnX)6u@ujm$2JXoW`K?tl?W zu`qK7X9Kv~aMWc{Fk5o~-s3bL$#nu!y05uRa}!=fulNX=KjbP}3nIN@=G1$wRov?J zH2(m5V&E#v&pTBCJp&8p_<(M=V0s#r$Ba!bs~Yx5P3~7pdKQXOdj5Ryv_IjLuc|j1 zHAY0Voq0Ikg$<7IF!TESiQoL?d$E8}eL1OFol^AVmdbh&lUIQd=L#i3I}?Xd!&8b} zg77Zp1p6lkc&SY-vC92s-T zrr@P_21G|uXmKuynnbIW_Tuz9PmI5wu6r|9Eqy9)2s#B8#;uO~(kxmW8{sBQ_V{=v zEvLhus4jE94Osd|4!-q=Gsepi1hV=rY|FcU8Pj4{gVeQk(-m&~9kP5WPx`ejWUN}} z{+6R`@Dv6F(-LnYuTH^|?=`}zn%}h-3#&UIB8f!6JivsV-HPQ~*rF+XB~nLm-LjS^ zmYE!<4gE)qWRWTI4?@t!@<$%FR|Fd4rP`><&1E%sO~dW)x3%zEVdYK zj&QD6HTYu6Zmty-Eoa{l0Va1SuNWIRx$)#d?avXw#9@F&OQ8Bh|71M}U*9m3siI<3 z;?=Z`5z}0}8Ccpjvd;&%R~H3xV+dwLm}L~EU&HiV4Q@hevmNLeq^h3-EMao@NZM9JUhZCD1t0CWqvmYM4dBv7E}0yg!fV^g`*$3-*Gv%Jx(38W=T)={@=m2+ z*Jhe2tC4Z$#ytv+T3o1%q7MI2=<@AF27G6H7wAhM<^jGjTPD6QkrF$jYB~(GRlkWm zy|w4U)HXn4^5u3uk1eYqA6R^|NJCG+fNgI4G~f5qnxJw*bl(t|{8Q_<&gaX!WK)TA zO%dZ}^t6c6+owv8=Mpgc*ui`(q3;{nbVK-c1GP=FdP?<|=x41H8Ou8-bZ&!ribb_3 zXfvDIKq<-u))S`t9LNNIq>6A0>YyjeoE^vJ^fo{53yfy%@084IYM?J;zuM&0LHA%T zjGJAnkv89~Q+N%@mF)?4^wRdEM#B&i}C~TzJ-h>2=b~wytK>*>X+VlV{TKIc@4z=G*zk(;0eJj|*ifyR4v% zt=OpP^cyCHU8)V1cFqyCclU|80neHTo$h*Fs6&%sR&*tPCLVf-EVg|20dv#m=D!xZ zt>QJqH&%t^{s!wWj(nYm6g6ZB+{@ref&vnlY__vh`n|h9y@bRmwOG3wAf`76+7D++ zaGp4hUCRnBOEcHWsIgSj$6nWr$U+pmr0W_o0{|&3h~ct6qy&27 zHM6aZoe)^yVEbDSt{=@yTK;fcgj&wssokl)$oQd?hQ{Ms)8#73neOZ#Ls~O+T?Az z{DX`)O{A`M<~B8#{$XnSRc=niI`rIa;k^Mx3n;+a}l;k7WJ^!GIw#pCLew zq|g^Z=K*}?dvXoTmUPssVRVm3F0^xu30nLWac8criV!N5h92>5*ODaulu!2@NV<$3 zQIW|PjW~^lsy=l|D~zig%=!jTn1j-uXISZ?-ok3MLOgzqrrQzHq!H?Zk2Eo%1ccRj z)ClaIAZKH+c5~*T@7W*=-Tb++m;j)VViYMqQ72#?>xve`p8vdrUZIYB3BAPZ_A@|HWsm_=lCQ)2x5-W}AMA){FEiD7} z^n(3BapmfA-J(n_pM^hN^1cUAOYCSVk84Zs4{;glC=6|zG1;yh)R?8egVXd!B0OWz zaBqSX)CHb5b6sEMQ?9U(5P7%((}v=ZmKQs) zooYo!$?{Idwq(9r7x!`xrRwa4HLNZ>>xPeOENCAd!zl(ZrLl-;(ot4GUbiFT@pb0GeC4UAH{~0i zv|5&UfvDSz>o-)ZjjY2GuE=+((b`GQgT5wWjQT`_wxHUebrAXHoh4pIXwKT;Kslj zS|z8Q7$;)i#pjN_DGu0^BC^b^c#ksf0Qnw18;{i{cbXR~QB9n6Nzv!??>cqFeBXc| z!Cx<5LIwz6vkChzLgJr}qBO?Q?B!!jBNJ82VQ*w@+o36$7a_32DU2|>^mg*3WDTl} zfHK}l^sW8p%pXY?ZMjZKdW`u`Rp*q}!yPj23!ycbUEZP*0bby0i3axZ>a!$45B!bL!go1it1MN>||g!kf=xH zp=J#NQ46XgK0{I6%dmqUEQq$a7ykI%vJz_p3tkytr&y&TC!$jR z^^&!X+B-G`;3tu^@h^rUkE#pj{UJX+VSwyn>{-W9Bm;WPLKxj@NF5AlL{^m4Vk@wT z8E{G$tBKPREv&!?hUwRud#h1)dbk!12)D+s)8FL5W z)&y~5mdkSI5M+&K%3ShXt<=id=Os8Unr%7wgsDc>JtlDsMsikK&)=-RDC5v`8hB>I z;R>?xGDf7~(nts`;AL-49EN#BB;0_39~qjTo=({mob)Mow7hVKQ$a`|=uHR2HR|VI z)~~)fMW(_BaZ9{|bo4x9D9?)j zzdu8`o(|{Q6M$0SzAfG!+?vy@OJlYlU&yrfP{o~6T+4TQRKl|gh$hA`uM$tOaKlLV zXMgf+?~sxGHN{t@BqDZFeaCt;oAKVQfx9@McJCYuuieY};NMyE-M$pk;URoLmz}lI zWh)Y1Y*sJ3i~S=crA#I-Zow2I!yv4c{~!1#-p4l?qXnW&q1@d|B?dW$b|38#9NzrD zg}l5!f1Vu#<+brR1K&TfR3$)q33mxAyt9yv!JD1DZ1TpsgpXwE+0Z*7P-F~qEm7|6 zl24Ay147A7BIppG)rJ(N$9f7nauQjwNXRTt+(e&YYqq~eVx%JxM5mQ+77Ev?#*$!lRYe3JbQwkc3T0_Ey)J9a$(xX_t(ITY?TNThjg8FJ$WLJ4p=HrZXF3UP-SCseW6wn#p}{@rACE=M3n({T|(+gvN{SONP( zhZ{eu1Hi1PJZSu;1eNC9Bdmou6~x^m36HEOOk)Y%=QUFq+!ysuv}{eY2~(9py>w%i zQ}Vu*J0z-Gixw6M+^o8d29|~z5tM~(`PPs!h)+~y*hr^xNyBt*$hYk zZ#8;5ML!Layv%M^I6;>^oF@LU)}&|;#+^k&JWss1>7@tQzOz`hD}POCC<Xij z@pKaTyvcJw$FyWtzn3~+_MYLblRhAc{t#vnJCjb;m3n#o;epND#-yQJr9653J4ygm zz@mdOiV*tYg_ok3p~w6gbTn=zr1beb6aYK1sg|FBu~~bNqN(pTB{%Ok{t3Q?BwkmT(j>Outifaz*HX`4A}MAM zTwX51r#Es-N!wh65WZ>g)tlBHzJDZ*X+~@rg&<-zmg2I%j@hE$Ol2;)E&4 z$&RYsTM{TyuZ;XAzM|V3QOuugElnQp>nR}Y%gXcTNMRK z-N3LO$-3cyJDk}6%mbbwQjy^Y-fdq0b^7uPT?ZLv5C#Dv9~(ZI z3nM6u3SyG2Z$!)Oyc~>1y4|g0*L{P;aD2J-qzAlTAhf2zA{Fbfq1aezyZ)kw`XE14 z97RlO$!{sJv)CqiiJhoN;iSnzw*@o!yM`jIu-G*2uQZt-t-xZ3>}GYrY$Gd)Sj1x7 zrmsHmZ}BDitI}RW`U5|%nolXKN}E^lpG3rM>@JMG(X8NI*fVhr3QkSsJ+HX(Na|c4 zksser1}wAX^-H_eEIw&*JizJ}u$)~vcjt4BLydCOM>)+#Tp656i8<}&-3vV;Yt9NO)kH_hXrp`_jt>EsQq^%*h1?@^+K=lKV#HPv zO?Y`qpW7q=?Wu{~JsIp@)>w7WQIRg4$TF_q8SHssK4X_p@iEXve~0UnGlsG6Y?mg% z=%VnfxbqKFPmo&>nY?!`E!ey~5d>;mE<{+N3l#ADN6orbabKh=h1%{bL3O965`7OI zw?QVHtv|0eUa4afH$@W3mg<~IOX}u0)b7Cz9(NuFfqz|pWnr}LN$eSTu>o_1k_W|c zSOqqUwdF7I=w7ssBdC-$MH=&|0G;}P?mFm1Qq}zo7rmGFT!HGEodwuo^V*t#+Wi!% zr7nb~fe5K%Q>&n++FcI%NuA@5dy!Fa`3cny%-n?%vm9wgYDkf3+pf!E?Y4h%fBpI>0){TxjueYPw{g*3h3jxwvGG-e^|UTjtAzv|oUk-+=6 zRAwFeAbH0jy(~72xi1@!e-oS=XCN(oG>A4ej(`gq|7h=cz+uvmj!#o2E9jLCqsiJM z$+hbSpz;duSBfNaNO)I2c~^JWzr!ZB+J>Gia=hX?yd$tjP2T_h5%^_=y@>8<4A+1Y z5n^DEei3Wq2|+OqiFpB1vSc&u6>c@kYG)F76!vFhwnpt^@$f(6P_v3;Iol~EP~}ck zI}l8Y?mocqdEpsoi(t~EHb4#++kr)n)hpd5aLRbIwTWf8n+gEgq;`Cb-;425^;Z{t zt%sSvxlFg2_D~=C^Mp9oB)$;UFMS;~NBmq$;+M;u?!Hr?GxCB?X8R+EZY^Otcf zgL1tlw3URl!YAq(L?KAnuHSEc=G zj7hZ9= zknCy+1NV|b5)NZTC+WA66nZ{0x+3^JZjcGdkcE+50cWDo>@3xYe9roIq-RV4Be?1m z|52y1(lG@GD#T{$IP5Su>xs)22~HZ!*d}Km?DwR8f<`3C{kE_S#4L%RhhT?7eUkgq z*Aw*E1w?Vv!()CCOpoPUiExxhs)blACBfob?p|j6ExL@2kMUdbVCgjX&S*S%iTp$u zr6_g4QLu;pB*opT0To)l(h_o9LoFKj_C2janr8Gox5(BNG&xuaXdl3j58;cYa)1B% z5WRx&r@?Jvshq>wK0$tW*cBa47E&aSE4-Y+`ob!|orHOf`-nnIT2IC$ENN&-_UHY> z@Y8tTPWrNV{VR45VK44E024vgfYIC{{_inlvJ4Ss|2}X}hgv@k?j^Ly{7KO2v$cFl zDwm~qCJ*j~YMGfK$DoE89RQXWr}dmmWh&XJ6l9{M+CB4fDoi%{aUO33$n7It>2eia zZrx_434H$)AG{oxhx}+U&sMO((eC8*Q4IM5Y>rMY7nlFXjd8nh1M89!y!n3E|8Lcq z^R4YSD~oqY=X?1oz2BZF-|J0kshp)KNezG4Rdy!X_kZYCI}~Vj8ogs&l;8mXz&HT_ z#Qtv-Ku*7Tx`zMDF-j-yc2c4LZ6ICN`s=tk((Johy4FBvL`h(idEO+kUQamB zU@c`tQZaoM2?mscYz5y3nv$R*#?&w+Yb=#b9*wRFn9)Fiw)p?%DIbO=9r zV|RK<`yG!jGAenZ%Pmf9_k7uZeUruWV>UiP(;gIWB01AwLOmH$gHm5KA*{LZO`VJ) zMOac!)e!=7Kfjiy+9I8aKTItpvQDtpqq9<++2AnA0E13KXC6YS<0x&oqI@Stv~ZeY zV-P$wmJ)oWFp6FhQ4G{0Lx=?94mZpkp(&A}P}OCvxkifVB8n|`YYhZ^dh4rNCsgv9 ztpEldNrob=l>6^1t-V?=(yZjpW-3VUW@4ybdJw~$A)E#a7G7d9Nd3#wQA9P&y!Nfi zW`e50NRQAMMw(P*c_e1>$8Ja2MqhDmVy$Y3I$Cb@q)RevxHuLOzB;P-Jc8yW);QK- zxFB%6Nt#|7S?HE*u`i4KM1Q_%k}?5kC){(K27#2xuslL)0`GTZXZNuUUviqbLojtFYX=35ROKhA6*W?nkNr7X zZvyR?X2)YC!_dk>Yf7{)INm}&l(QzxM%8>^%cd8qJ5Z8SNBd+Owm2KghM0&A zYsGqof7fhgPb2~0P9GH35itK& zKH)C19_3g$y<8k>tC&AgSg(vIoF1WAGshcXf~lsFYL%1+GP-DDJ=RUw4>(VIyM&ze z&hQ^={^Y^w{uvg+P643Z*eZr|6_7dqrYK_sN3XkB`S)lCJiie*BjJd>-CkumLi4EP zg++xDkVrshg#FYGT<-jCm#T_2P|!xE0#aJ8L6DuuwDeUVkZY57Jy?3Z`%29i@C<=R%ySUVBLEQ^9p}umw-8DEG>Fj&8Wn&Bzq+ ze>Xc`cIT(Jr>VQ$=UFWsFRVezPo>w5oY2=@oDP50I-9`?o@nM+NJ-CL+{<2q_V$3- zA6$9h@(7~@wmp)0c@M@;fQJ*);#o;iHgD~=IBc9{XZSr@Rbms9h~6D+KsQ@T4(NLZ z??5B!F?KA6*I?y(Ai%Dg=h)hu8i~u@$`vF2#ki6{rl)@z5Tth2LvYozr@nm&n)KAY z+S|PI#Z|0txs*&sG>cD(0PGe7UZGeq;RgUG_cX?+)?ERtXFCVMEHknM_L=%Az0Y`@ zWkLNtm?n-@U}VXXm3F{QC+oxKoE!`ph8bEo?PEh}fm2tM- z8Gv-yliSEdvvG$W{i+UU)QYzbf+>h+Ns38^QI}*TZ3$7cV?>cU)JZVEZ6owC^sF_* zzTXecNUXPR994$xNPxF}Els1j%@9QDy%5-}i=^H>p?nah6c~zoO!J3A97~m!pxUD% zQ95K`Ki60hSbgV!5}$(Jj5^}>ZyS7Z9uUqUdHjpnf(PAV#kHoiMZBx*2I>Ya2<}>A zpfTK%DBX`%(gEiGT64p)qp5WI(7ygAU0V_2gsj|Br5>ofe3$wmrnaKzZt(KyH4MXA z=!y|+&3bDw)E4q=20tap4V-cz4!DcWP`HKUPk8AKxw!{$@qLKy0!(<;Pu)x?Njn)M z4kR;<;zpL+mdXh~pcRI@4z3lAZg9?NgbKBuE^U)fAA@-L8Oo#+T=yiD#LpKgBz|UG z;Mv6c9OD3+WY4PfYG`xaL00Jh#|RM~OzXwPA;h(U?a7Z)=8sH^~^O( z#kOWwInUC}Cwl)6CSrYF~G2EuTjT*cNf7$l7`wUQFXy^6ma-GmwyU=fq z-rTtOoHd8X0sRDZjD5BfgMhmW>wN2anBLCs!ByIbD+Q->h)G3t=ed~j!f%2dJifhg@* zissZ1`@vK>omPB~n_srX}C%lQ#V06yJ5ltGeLi@xy;BbKEe9cW2Ie^TiEv%fmfb z4Z+#C!3zgL3L}P+jD%B@<}yEQsKUrlKpb61A4)gJ`xf|QFqDkwoJJ_#utx0szqv?_al;Ig5_K6r_`pt{T zK8CgrM1MPL&08tPKYha0c_qGm9w^&zB1w~Kp}LmQp+dG>rk4xODyLWvXn5Q$(oC72 zpf@Z{%v|b75e;!l3aC;5T79 zz#Z-{yFCPgluI_pWPjkl|gN2Ul*|>HUtZ>#KiUKT zPi*IpDq77TOc&Y3xkPE$?S|xNkV27B)A%$JBSAnaVGlk<8&Q)Pcw*bAS~z5V7*V0F z>@d+2&h_!%>b)ZHaD%W9=zPlxhT4plt%M{fE)xv(KSueioWAZ3{0T$=0Vf9;BfyWr z#Brn__ITLkbDNVXM7BfmNP4DGnN6%Kgad1G-LqXhQ}kjyF>sL8)uraOhT__{u81Xs zSgwyyX$p!giH;|{-~=J3AMImSq4q5-xbPP666fRJR5BAKomA9-`u|A#rXbOxcDXrY z+qP}nwr$(CZQHi(Ib+*4&ls7TO6pJYb}R3DSMA#BUcJ8Vmc#|j+yNAPXKFMLx~9@E znl26bX;yVi$C5?tZy6$W23r#P2{#pmxp(oFW+i`IOF-m zuzD_QC8SIR!l1-iD$k?x0OmD6>|g({`Y&t-<%ad#*WzRI98}JX6oZ51%Jcq>^_-X6 zI>O`a1^?@bE%W4m`W#;{h%}kQtFiNk`0< zU90y83MjM`Uv9Go*`kg?g2;QB;TGeRicwC6oddbkI4jna(`)I>-HXZ4*J(nRMjT)Z z8b4Z=%T*kL=mcwMri6!8oc>^xJc8?OvVwGYiIle-H+2@Q0epxF1^|>O6C?eZAK&e_ z30QJ{=dtaI!po!1`)Z|^`(8`cosG$<1Gj&u|AE+!qwO=DX&*-&o>dc7s*p8xnuyz2 zPuI2=%*yt?XIPsne^=No!sDm}oyk<*2zIOQ;$QM@{O;Db+FrN0L1wPV2tP74p4#3u zEov~csNF}KPBLxxMNkjQGt|#>J05#gmQauxPkG^raad72?RSnNB(QfusHP;SkgAT3 zt31XXnbeaDiBS>U1@!qhj^r zd{8_Y|0^@{0UuU7y3utFPTE{J=aQ|9#hW0d_qd#!?V{Tq;ANJV$+TR>@THEkkcS!B zKm9?h7rwqrH9TguUGjLQfBEG&YjirDe!wDFyruTt9t7ld>8XQQ{)lU&vIqs2TmO63ycy6aYx(o# zN(kw)b}RbH&J3K+`BfQnc1ZIwfXgnv{e{WHzDi{(faJ{Dx7o{Q(Ezx8iS{%hMc&*| z$0oY-{p(9;u+HC+4G*Ntq%$5Se2+_sw26|Hyw%l*QB7mPDJm9Y>Zbs$TPK=_4jT^* zoF!v#;(=xz@hgwMWd+uqgn%e4uGXA*D* z2G0#ESl`P@I3WV@Wah?R1be&q^tdHG;~{Su4ewATWeD*td9fO@@V5jR5M94o1I!=O z*~bNr9FEAuh8+KeT3=l+-0wX_tBb52(ht^Sc^VCX_&j60PwWj>7jxWcL1dUqafbGW z(8u*6H^UEnz!dJ<0~n40x;58Aq{1{a+#D|6{mmOK~~(GYWe%0D9D6XW`X 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

B+fJdi3S<4vZTwlUr%^}J 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 z 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 Ig?< */ @@ -72,7 +74,7 @@ public class PortalToolRegistryClient implements ToolRegistryClient { new java.util.concurrent.ConcurrentHashMap<>(); private final ConcurrentMap routingHintSnapshotsByRoute = new ConcurrentHashMap<>(); - private final ConcurrentMap routingHintRefreshLocksByRoute = + private final ConcurrentMap routingHintRefreshLocksByRoute = new ConcurrentHashMap<>(); private volatile Map routeRevisionsByRoute = Map.of(); private volatile Set changedSourceRouteKeys = Set.of(); @@ -226,7 +228,17 @@ public class PortalToolRegistryClient implements ToolRegistryClient { } /** - * 현재 route의 routing hint snapshot을 반환합니다. snapshot이 없거나 TTL이 만료되었거나 Portal의 bundle 구성이 바뀐 경우에만 Tool Server API를 다시 호출하며, 일부 호출이 실패하면 해당 bundle의 last-good 값을 유지합니다. + * Portal registry를 API, Redis fallback, 로컬 resource 중 어느 경로로도 아직 한 번도 적재하지 못했는지 확인합니다. 한 번 적재한 뒤에는 이후 조회가 실패해도 last-good snapshot을 유지하므로 false를 반환합니다. + * + * @return 최초 적재 대기 여부를 반환합니다. + */ + @Override + public boolean isSourceRegistryAwaitingInitialLoad() { + return !portalRegistryLoaded; + } + + /** + * 현재 route의 routing hint snapshot을 반환합니다. snapshot이 없거나 TTL이 만료되었거나 Portal의 bundle 구성이 바뀐 경우에만 Tool Server API를 다시 호출하며, route별 {@link ReentrantLock}으로 동시 갱신을 한 번으로 모읍니다. 일부 호출이 실패하면 해당 bundle의 last-good 값을 유지합니다. * * @param routeKey 처리 대상 route key입니다. * @param manifestPath Tool Server에 붙일 routing manifest API 경로입니다. @@ -246,15 +258,18 @@ public class PortalToolRegistryClient implements ToolRegistryClient { if (isUsableRoutingHintSnapshot(snapshot, bundles, normalizedManifestPath)) { return routingManifests(snapshot, bundles); } - Object refreshLock = routingHintRefreshLocksByRoute.computeIfAbsent( - normalizedRouteKey, ignored -> new Object()); - synchronized (refreshLock) { + ReentrantLock refreshLock = routingHintRefreshLocksByRoute.computeIfAbsent( + normalizedRouteKey, ignored -> new ReentrantLock()); + refreshLock.lock(); + try { snapshot = routingHintSnapshotsByRoute.get(normalizedRouteKey); if (isUsableRoutingHintSnapshot(snapshot, bundles, normalizedManifestPath)) { return routingManifests(snapshot, bundles); } return refreshRoutingHintSnapshot( normalizedRouteKey, bundles, normalizedManifestPath, snapshot); + } finally { + refreshLock.unlock(); } } diff --git a/src/main/java/io/shinhanlife/dat/biz/mcp/registry/ToolRegistryClient.java b/src/main/java/io/shinhanlife/dat/biz/mcp/registry/ToolRegistryClient.java index f2c0d86..5217275 100644 --- a/src/main/java/io/shinhanlife/dat/biz/mcp/registry/ToolRegistryClient.java +++ b/src/main/java/io/shinhanlife/dat/biz/mcp/registry/ToolRegistryClient.java @@ -79,6 +79,16 @@ public interface ToolRegistryClient { return true; } + /** + * Registry 원천을 아직 한 번도 적재하지 못한 상태인지 확인합니다. 기본 구현은 원천 적재 개념이 없는 정적 Registry 구현과의 호환을 위해 false를 반환하며, + * Portal 기반 구현은 최초 적재 성공 전까지 true를 반환해 호출자가 짧은 간격으로 재시도하고 route 오류 대신 Registry 장애로 응답하게 합니다. + * + * @return 최초 적재 대기 여부를 반환합니다. + */ + default boolean isSourceRegistryAwaitingInitialLoad() { + return false; + } + /** * Agent가 MCP 등록·선택 최적화에 사용할 route별 Tool Server routing manifest 원문을 읽습니다. 지원하지 않는 구현은 빈 목록을 반환하며, 호출자는 initialize 자체를 실패시키지 않고 `_meta`를 생략할 수 있습니다. * diff --git a/src/main/java/io/shinhanlife/dat/biz/mcp/registry/ToolRegistryService.java b/src/main/java/io/shinhanlife/dat/biz/mcp/registry/ToolRegistryService.java index faa77f6..2a504fa 100644 --- a/src/main/java/io/shinhanlife/dat/biz/mcp/registry/ToolRegistryService.java +++ b/src/main/java/io/shinhanlife/dat/biz/mcp/registry/ToolRegistryService.java @@ -49,6 +49,9 @@ public class ToolRegistryService implements McpRouteKeyValidator { private static final Logger log = LoggerFactory.getLogger(ToolRegistryService.class); private static final long TOOL_MISS_REFRESH_COOLDOWN_MILLIS = 5_000L; + // Portal registry를 한 번도 적재하지 못한 동안에는 TTL 대신 이 간격으로 다시 조회한다. + // 최초 적재 전에는 last-good snapshot이 없어 모든 route 요청이 실패하므로 TTL(기본 300초)만큼 기다리지 않는다. + private static final long PORTAL_INITIAL_LOAD_RETRY_MILLIS = 10_000L; private final ToolRegistryClient registryClient; private final Optional redisCache; @@ -415,6 +418,19 @@ public class ToolRegistryService implements McpRouteKeyValidator { return registryClient.isKnownRoute(normalizeRouteKey(routeKey)); } + /** + * Portal 모드에서 Portal registry를 아직 한 번도 적재하지 못한 상태인지 확인합니다. Portal 모드가 아니면 route 원천 적재 개념이 없으므로 false를 반환합니다. + * + * @return 최초 적재 대기 여부를 반환합니다. + */ + @Override + public boolean isSourceRegistryAwaitingInitialLoad() { + if (properties.portal() == null || !properties.portal().enabled()) { + return false; + } + return registryClient.isSourceRegistryAwaitingInitialLoad(); + } + /** * Tool 원천을 한 번 조회하고 성공한 활성 snapshot만 memory와 Redis에 반영합니다. 원천 조회가 실패하면 기존 memory를 유지하고, memory가 비어 있을 때만 Redis last-good snapshot을 fallback으로 채택합니다. * @@ -585,7 +601,8 @@ public class ToolRegistryService implements McpRouteKeyValidator { } /** - * Portal registry 조회가 필요한 시점인지 TTL 설정과 마지막 시도 시각으로 판단합니다. Portal 모드가 아니면 항상 false를 반환합니다. + * Portal registry 조회가 필요한 시점인지 마지막 시도 시각으로 판단합니다. 최초 적재에 성공하기 전에는 10초 간격, 적재한 뒤에는 TTL 설정 간격을 사용합니다. + * Portal 모드가 아니면 항상 false를 반환합니다. * * @return Portal registry refresh 필요 여부를 반환합니다. */ @@ -593,7 +610,10 @@ public class ToolRegistryService implements McpRouteKeyValidator { if (properties.portal() == null || !properties.portal().enabled()) { return false; } - return isExpired(portalRefreshAttemptMillis, properties.portal().refreshTtlSeconds()); + long intervalMillis = registryClient.isSourceRegistryAwaitingInitialLoad() + ? PORTAL_INITIAL_LOAD_RETRY_MILLIS + : properties.portal().refreshTtlSeconds() * 1_000L; + return isExpiredMillis(portalRefreshAttemptMillis, intervalMillis); } /** @@ -650,11 +670,22 @@ public class ToolRegistryService implements McpRouteKeyValidator { * @return TTL 만료 여부를 반환합니다. */ private boolean isExpired(long lastAttemptMillis, long ttlSeconds) { + return isExpiredMillis(lastAttemptMillis, ttlSeconds * 1_000L); + } + + /** + * 마지막 시도 시각과 밀리초 간격을 비교해 만료 여부를 계산합니다. 한 번도 시도하지 않았으면 만료로 봅니다. + * + * @param lastAttemptMillis 마지막 refresh 시도 시각입니다. + * @param intervalMillis 다음 시도까지의 간격(밀리초)입니다. + * @return 만료 여부를 반환합니다. + */ + private boolean isExpiredMillis(long lastAttemptMillis, long intervalMillis) { if (lastAttemptMillis == Long.MIN_VALUE) { return true; } long elapsedMillis = currentTimeMillis.getAsLong() - lastAttemptMillis; - return elapsedMillis >= ttlSeconds * 1_000L; + return elapsedMillis >= intervalMillis; } /** diff --git a/src/main/java/io/shinhanlife/dat/biz/mcp/toolclient/HttpToolClient.java b/src/main/java/io/shinhanlife/dat/biz/mcp/toolclient/HttpToolClient.java index 47b3e16..c6ba095 100644 --- a/src/main/java/io/shinhanlife/dat/biz/mcp/toolclient/HttpToolClient.java +++ b/src/main/java/io/shinhanlife/dat/biz/mcp/toolclient/HttpToolClient.java @@ -12,6 +12,7 @@ import io.shinhanlife.dat.biz.mcp.transport.http.McpRequestContextFactory; import java.net.InetAddress; import java.net.SocketTimeoutException; import java.net.http.HttpClient; +import java.net.http.HttpTimeoutException; import java.time.Duration; import java.time.OffsetDateTime; import java.time.ZoneOffset; @@ -45,6 +46,7 @@ import org.springframework.web.client.RestClientException; * 2026.08.06 j.h.w 최초생성 * 2026.09.08 j.h.w 임시 local fixture 활성 시 실제 HTTP 호출 비활성화 * 2026.09.17 j.h.w Tool 호출자 IP와 host name을 기동 시 한 번만 확정 + * 2026.09.17 j.h.w JDK HttpClient timeout 예외 분류 보완 * * */ @@ -346,7 +348,7 @@ public class HttpToolClient implements ToolClient { } /** - * 예외 cause chain 전체를 따라가며 실제 socket timeout이 포함되어 있는지 확인합니다. + * 예외 cause chain 전체를 따라가며 socket 또는 JDK HttpClient timeout이 포함되어 있는지 확인합니다. 연결 timeout을 포함한 {@link HttpTimeoutException}을 일반 네트워크 장애로 잘못 분류하지 않도록 합니다. * * @param throwable 처리 중 발생한 예외 정보입니다. * @return 조건 충족 여부를 반환합니다. @@ -354,7 +356,8 @@ public class HttpToolClient implements ToolClient { private boolean hasTimeoutCause(Throwable throwable) { Throwable current = throwable; while (current != null) { - if (current instanceof SocketTimeoutException) { + if (current instanceof SocketTimeoutException + || current instanceof HttpTimeoutException) { return true; } current = current.getCause(); diff --git a/src/main/java/io/shinhanlife/dat/biz/mcp/transport/http/McpExchangeFilter.java b/src/main/java/io/shinhanlife/dat/biz/mcp/transport/http/McpExchangeFilter.java index 33f3965..1d2a168 100644 --- a/src/main/java/io/shinhanlife/dat/biz/mcp/transport/http/McpExchangeFilter.java +++ b/src/main/java/io/shinhanlife/dat/biz/mcp/transport/http/McpExchangeFilter.java @@ -247,6 +247,7 @@ public class McpExchangeFilter implements Filter { /** * Portal 모드에서 요청 route가 현재 endpoint registry snapshot에 등록되어 있는지 확인합니다. 하드코딩된 route 목록을 쓰지 않고 메모리 상태만 보며, 미등록 route는 controller와 Tool 실행 계층에 닿기 전에 invalid request로 거부합니다. + * Portal registry를 아직 한 번도 적재하지 못했거나 refresh가 예외로 끝나면 route 등록 여부를 판단할 수 없으므로 Registry 장애로 응답합니다. * * @param context 현재 MCP 요청 context입니다. * @param request 처리할 요청 정보입니다. @@ -255,7 +256,19 @@ public class McpExchangeFilter implements Filter { if (properties.portal() == null || !properties.portal().enabled() || isFixedEndpointRequest(request)) { return; } - routeKeyValidator.refreshSourceRegistryIfStale(); + try { + routeKeyValidator.refreshSourceRegistryIfStale(); + } catch (JsonRpcException exception) { + throw exception; + } catch (RuntimeException exception) { + // Portal 조회 실패(연결 오류 등)가 JSON-RPC 형식이 아닌 기본 500 응답으로 새지 않게 한다. + throw new JsonRpcException( + JsonRpcErrorCode.TOOL_REGISTRY_UNAVAILABLE, "Portal registry refresh failed", exception); + } + if (routeKeyValidator.isSourceRegistryAwaitingInitialLoad()) { + throw new JsonRpcException( + JsonRpcErrorCode.TOOL_REGISTRY_UNAVAILABLE, "Portal registry has not been loaded yet"); + } if (!routeKeyValidator.isKnownRoute(context.routeKey())) { throw new JsonRpcException(JsonRpcErrorCode.INVALID_REQUEST, "route key is not registered"); } diff --git a/src/main/java/io/shinhanlife/dat/biz/mcp/transport/http/McpRouteKeyValidator.java b/src/main/java/io/shinhanlife/dat/biz/mcp/transport/http/McpRouteKeyValidator.java index 690f754..2baa445 100644 --- a/src/main/java/io/shinhanlife/dat/biz/mcp/transport/http/McpRouteKeyValidator.java +++ b/src/main/java/io/shinhanlife/dat/biz/mcp/transport/http/McpRouteKeyValidator.java @@ -30,4 +30,13 @@ public interface McpRouteKeyValidator { * @return 조건 충족 여부를 반환합니다. */ boolean isKnownRoute(String routeKey); + + /** + * route 원천을 아직 한 번도 적재하지 못해 route 등록 여부를 판단할 수 없는 상태인지 확인합니다. 이 상태의 요청은 미등록 route가 아니라 Registry 장애로 응답해야 합니다. + * + * @return 최초 적재 대기 여부를 반환합니다. + */ + default boolean isSourceRegistryAwaitingInitialLoad() { + return false; + } } diff --git a/src/test/java/io/shinhanlife/dat/biz/mcp/registry/PortalToolRegistryClientTest.java b/src/test/java/io/shinhanlife/dat/biz/mcp/registry/PortalToolRegistryClientTest.java index 13835bb..a23b72e 100644 --- a/src/test/java/io/shinhanlife/dat/biz/mcp/registry/PortalToolRegistryClientTest.java +++ b/src/test/java/io/shinhanlife/dat/biz/mcp/registry/PortalToolRegistryClientTest.java @@ -19,6 +19,11 @@ import java.nio.file.Path; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; import java.util.function.LongSupplier; import okhttp3.mockwebserver.MockResponse; @@ -433,6 +438,33 @@ class PortalToolRegistryClientTest { assertThat(toolServer.getRequestCount()).isEqualTo(1); } + @Test + void refreshesRoutingHintOnlyOnceForConcurrentRequestsOnTheSameRoute() throws Exception { + portal.enqueue(portalRegistry("portal-1")); + toolServer.enqueue(jsonResponse(routingManifest("external-tool-server", "revision-1")) + .setHeadersDelay(300, TimeUnit.MILLISECONDS)); + PortalToolRegistryClient client = client(); + client.refreshSourceRegistry(); + CountDownLatch start = new CountDownLatch(1); + + try (ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor()) { + Future> first = executor.submit(() -> { + start.await(); + return client.fetchRoutingManifests("external", "/tool-service-manifest"); + }); + Future> second = executor.submit(() -> { + start.await(); + return client.fetchRoutingManifests("external", "/tool-service-manifest"); + }); + + start.countDown(); + + assertThat(first.get(5, TimeUnit.SECONDS)).hasSize(1); + assertThat(second.get(5, TimeUnit.SECONDS)).hasSize(1); + } + assertThat(toolServer.getRequestCount()).isEqualTo(1); + } + @Test void ignoresFailedRoutingManifestWithoutFailingInitializeHintCollection() { portal.enqueue(portalRegistry("portal-1")); diff --git a/src/test/java/io/shinhanlife/dat/biz/mcp/registry/ToolRegistryServiceTest.java b/src/test/java/io/shinhanlife/dat/biz/mcp/registry/ToolRegistryServiceTest.java index 1c2dc16..95fa745 100644 --- a/src/test/java/io/shinhanlife/dat/biz/mcp/registry/ToolRegistryServiceTest.java +++ b/src/test/java/io/shinhanlife/dat/biz/mcp/registry/ToolRegistryServiceTest.java @@ -441,6 +441,53 @@ class ToolRegistryServiceTest { .isEqualTo("notifications/tools/list_changed"); } + @Test + void retriesPortalRegistryEveryTenSecondsUntilTheFirstLoadSucceeds() { + ToolRegistryClient client = mock(ToolRegistryClient.class); + AtomicLong now = new AtomicLong(0); + when(client.isSourceRegistryAwaitingInitialLoad()).thenReturn(true); + when(client.refreshSourceRegistry()).thenThrow(new IllegalStateException("portal down")); + ToolRegistryService service = serviceWithClock(client, propertiesWithTtl(true, 300, 300), now); + + assertThatThrownBy(service::refreshSourceRegistryIfStale).isInstanceOf(IllegalStateException.class); + now.set(9_999); + service.refreshSourceRegistryIfStale(); + verify(client, times(1)).refreshSourceRegistry(); + + now.set(10_000); + assertThatThrownBy(service::refreshSourceRegistryIfStale).isInstanceOf(IllegalStateException.class); + verify(client, times(2)).refreshSourceRegistry(); + assertThat(service.isSourceRegistryAwaitingInitialLoad()).isTrue(); + } + + @Test + void usesPortalTtlOnceThePortalRegistryHasBeenLoaded() { + ToolRegistryClient client = mock(ToolRegistryClient.class); + AtomicLong now = new AtomicLong(0); + when(client.isSourceRegistryAwaitingInitialLoad()).thenReturn(false); + when(client.refreshSourceRegistry()).thenReturn(false); + ToolRegistryService service = serviceWithClock(client, propertiesWithTtl(true, 300, 300), now); + + service.refreshSourceRegistryIfStale(); + now.set(10_000); + service.refreshSourceRegistryIfStale(); + verify(client, times(1)).refreshSourceRegistry(); + + now.set(300_000); + service.refreshSourceRegistryIfStale(); + verify(client, times(2)).refreshSourceRegistry(); + } + + @Test + void doesNotReportInitialLoadWaitOutsidePortalMode() { + ToolRegistryClient client = mock(ToolRegistryClient.class); + when(client.isSourceRegistryAwaitingInitialLoad()).thenReturn(true); + ToolRegistryService service = + serviceWithClock(client, propertiesWithTtl(false, 300, 300), new AtomicLong(0)); + + assertThat(service.isSourceRegistryAwaitingInitialLoad()).isFalse(); + } + private ToolRegistryService serviceWithClock( ToolRegistryClient client, McpProperties properties, AtomicLong now) { return new ToolRegistryService( diff --git a/src/test/java/io/shinhanlife/dat/biz/mcp/toolclient/HttpToolClientTest.java b/src/test/java/io/shinhanlife/dat/biz/mcp/toolclient/HttpToolClientTest.java index 4da116f..f7812f8 100644 --- a/src/test/java/io/shinhanlife/dat/biz/mcp/toolclient/HttpToolClientTest.java +++ b/src/test/java/io/shinhanlife/dat/biz/mcp/toolclient/HttpToolClientTest.java @@ -211,4 +211,27 @@ class HttpToolClientTest { assertThat(exception.httpStatusCode()).hasValue(410); }); } + + @Test + void classifiesJdkHttpClientResponseTimeoutAsTimeout() throws Exception { + server.enqueue(new MockResponse() + .setHeader("Content-Type", "application/json") + .setBody("{\"status\":\"late\"}") + .setHeadersDelay(500, TimeUnit.MILLISECONDS)); + HttpToolClient client = + new HttpToolClient(OBJECT_MAPPER, properties(false, false), HttpClient.newHttpClient()); + ToolRequest request = + new ToolRequest( + "customer.search", + "1.0.0", + server.url("/api/v1/search").toString(), + OBJECT_MAPPER.readTree("{\"customerNo\":\"1234567890\"}"), + 100); + + assertThatThrownBy(() -> client.execute(request, context())) + .isInstanceOfSatisfying( + ToolClientException.class, + exception -> assertThat(exception.kind()) + .isEqualTo(ToolClientException.Kind.TIMEOUT)); + } } diff --git a/src/test/java/io/shinhanlife/dat/biz/mcp/transport/http/McpExchangeFilterTest.java b/src/test/java/io/shinhanlife/dat/biz/mcp/transport/http/McpExchangeFilterTest.java index f60bac3..e98322e 100644 --- a/src/test/java/io/shinhanlife/dat/biz/mcp/transport/http/McpExchangeFilterTest.java +++ b/src/test/java/io/shinhanlife/dat/biz/mcp/transport/http/McpExchangeFilterTest.java @@ -18,6 +18,7 @@ import static io.shinhanlife.dat.biz.mcp.transport.http.McpRequestContextFactory import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -490,6 +491,69 @@ class McpExchangeFilterTest { .doesNotContain("route key is not registered"); } + @Test + void answersRegistryUnavailableInsteadOfUnknownRouteBeforeThePortalRegistryIsLoaded() throws Exception { + McpRouteKeyValidator routeKeyValidator = mock(McpRouteKeyValidator.class); + when(routeKeyValidator.isSourceRegistryAwaitingInitialLoad()).thenReturn(true); + when(routeKeyValidator.isKnownRoute(anyString())).thenReturn(false); + + MockHttpServletResponse response = sendToolsListThroughPortalFilter(routeKeyValidator); + + assertThat(response.getStatus()).isEqualTo(200); + assertThat(response.getContentAsString()) + .contains("\"code\":-32003", "TOOL_REGISTRY_UNAVAILABLE") + .doesNotContain("INVALID_REQUEST"); + } + + @Test + void answersRegistryUnavailableAsJsonRpcWhenPortalRefreshThrows() throws Exception { + McpRouteKeyValidator routeKeyValidator = mock(McpRouteKeyValidator.class); + doThrow(new IllegalStateException("portal down")).when(routeKeyValidator).refreshSourceRegistryIfStale(); + + MockHttpServletResponse response = sendToolsListThroughPortalFilter(routeKeyValidator); + + assertThat(response.getStatus()).isEqualTo(200); + assertThat(response.getContentAsString()) + .contains("\"code\":-32003", "TOOL_REGISTRY_UNAVAILABLE") + .doesNotContain("portal down"); + } + + private MockHttpServletResponse sendToolsListThroughPortalFilter(McpRouteKeyValidator routeKeyValidator) + throws Exception { + McpProperties base = properties(false, false); + McpProperties portalEnabled = + new McpProperties( + base.identity(), + base.endpointPath(), + base.server(), + base.registry(), + base.toolClient(), + base.redis(), + base.trace(), + base.protocol(), + base.discovery(), + new McpProperties.Portal(true, "", "http://portal.test/api/registry", 15), + base.bundles()); + McpExchangeFilter filter = filter(portalEnabled, routeKeyValidator); + MockHttpServletRequest request = new MockHttpServletRequest("POST", "/mcp/external"); + addStandardHeaders(request); + request.addHeader("MCP-Protocol-Version", "2025-11-25"); + request.setContent( + """ + {"jsonrpc":"2.0","id":"call-1","method":"tools/list","params":{}} + """ + .getBytes(StandardCharsets.UTF_8)); + MockHttpServletResponse response = new MockHttpServletResponse(); + + filter.doFilter( + request, + response, + (ignoredRequest, ignoredResponse) -> { + throw new AssertionError("Controller chain must not be called while the registry is unavailable"); + }); + return response; + } + @Test void rejectsInitializeForRouteKeyThatIsNotRegisteredInPortalSnapshot() throws Exception { McpProperties base = properties(false, false);