From 5b2d6d0e12bd986dbf169409a773d0ae36bfcf92 Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Wed, 23 Sep 2026 12:13:23 +0700 Subject: [PATCH 1/5] feat(datagrid): show whether a materialized view can be refreshed concurrently, and gate its structure edits by kind --- CHANGELOG.md | 6 + .../Database/MaterializedViewRefreshing.swift | 5 +- ...uginMetadataRegistry+CuratedDefaults.swift | 2 +- .../Infrastructure/LaunchIntent.swift | 11 +- .../Infrastructure/LaunchIntentRouter.swift | 2 +- .../Services/Infrastructure/TabRouter.swift | 8 +- ...aterializedViewConcurrentRefreshNote.swift | 45 +++++ .../MaterializedViewRefreshPrompt.swift | 2 +- .../Database/StructureEditEligibility.swift | 11 + TablePro/Models/UI/InspectorRowSource.swift | 4 +- TablePro/Models/UI/MultiRowEditState.swift | 8 +- TablePro/Models/UI/QuickSwitcherItem.swift | 1 + TablePro/Resources/Localizable.xcstrings | 11 +- .../ViewModels/QuickSwitcherViewModel.swift | 2 + ...MainContentCoordinator+QuickSwitcher.swift | 6 +- .../Structure/ConcurrentRefreshNoteView.swift | 24 +++ .../Views/Structure/StructureEditGate.swift | 25 +++ .../Structure/StructureEditingSession.swift | 25 +++ .../StructureGridDelegate+Inspector.swift | 3 +- .../Structure/StructureGridDelegate.swift | 22 +- .../StructureInspectorRowBuilder.swift | 4 +- .../Structure/StructureRowViewWithMenu.swift | 9 +- .../Structure/TableStructureLoader.swift | 7 + .../TableStructureView+DataLoading.swift | 3 + .../TableStructureView+EditGate.swift | 23 +-- .../Views/Structure/TableStructureView.swift | 19 +- .../Views/Structure/TriggerDetailView.swift | 3 +- .../Autocomplete/SQLSchemaProviderTests.swift | 15 ++ .../Models/DatabaseObjectToolsTests.swift | 2 +- .../Models/MultiRowEditStateTests.swift | 17 ++ .../Views/QuickSwitcherObjectKindTests.swift | 88 ++++++++ ...terializedViewConcurrentRefreshTests.swift | 188 ++++++++++++++++++ .../Structure/StructureEditGateTests.swift | 54 +++++ .../StructureGridDelegateInspectorTests.swift | 82 ++++++++ .../StructureRowMenuRouteTests.swift | 25 +++ docs/features/table-operations.mdx | 2 +- docs/features/table-structure.mdx | 21 +- .../images/structure-matview-indexes-dark.png | Bin 0 -> 395597 bytes docs/images/structure-matview-indexes.png | Bin 0 -> 735164 bytes 39 files changed, 736 insertions(+), 49 deletions(-) create mode 100644 TablePro/Models/Database/MaterializedViewConcurrentRefreshNote.swift create mode 100644 TablePro/Views/Structure/ConcurrentRefreshNoteView.swift create mode 100644 TableProTests/Views/QuickSwitcherObjectKindTests.swift create mode 100644 TableProTests/Views/Structure/MaterializedViewConcurrentRefreshTests.swift create mode 100644 docs/images/structure-matview-indexes-dark.png create mode 100644 docs/images/structure-matview-indexes.png diff --git a/CHANGELOG.md b/CHANGELOG.md index e2e438bd59..fe92d8517e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **File > Session**, with the agent session commands and the assistant's conversation commands. - Eight more rebindable commands in **Settings > Keyboard**, among them the sidebar's lists and the session commands. - **Global** on a saved query folder's menu, for a folder every connection shows. +- Whether a materialized view can be refreshed concurrently, on its **Indexes** tab. (#2522) ### Changed @@ -85,6 +86,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - AI chat's saved query mentions missing a query saved earlier in the same session. - **File > Import > Import Data…** importing every file as SQL. (#3047) - A file the import panel dimmed still opening, and reaching the wrong importer. +- Materialized view opened from Open Quickly edited as a plain view. (#2522) +- Index edits refused on a PGlite materialized view. +- Structure grid and inspector taking edits the object or engine refuses, such as a materialized view's Type. +- **Delete** and **Duplicate** in a structure row's menu doing nothing on an object that refuses them. +- **New Trigger** offered on a materialized view. - Compressed dump named `.GZ` rather than `.gz` reaching the parser still compressed. - **SQL** offered as an import format on MongoDB. - **Save** permanently dim on a Custom provider for an OpenAI-compatible server that wants no API key. diff --git a/TablePro/Core/Database/MaterializedViewRefreshing.swift b/TablePro/Core/Database/MaterializedViewRefreshing.swift index 7179168faa..1677d8c3e4 100644 --- a/TablePro/Core/Database/MaterializedViewRefreshing.swift +++ b/TablePro/Core/Database/MaterializedViewRefreshing.swift @@ -14,11 +14,12 @@ enum MaterializedViewRefreshing { /// Nil where the engine has no refresh that leaves readers alone, so the prompt offers no /// option at all rather than one that is always off. static func concurrentRefreshAvailability( - of target: DatabaseObjectTarget + of target: DatabaseObjectTarget, + provider: any ScopedMetadataProviding = DatabaseManager.shared ) async throws -> PluginConcurrentRefreshAvailability? { let name = target.name let schema = target.schema - return try await DatabaseManager.shared.withMetadataDriver(scope: target.scope) { driver in + return try await provider.withMetadataDriver(scope: target.scope) { driver in try await driver.concurrentRefreshAvailability(materializedView: name, schema: schema) } } diff --git a/TablePro/Core/Plugins/PluginMetadataRegistry+CuratedDefaults.swift b/TablePro/Core/Plugins/PluginMetadataRegistry+CuratedDefaults.swift index a72f094fa5..e43e87c7bb 100644 --- a/TablePro/Core/Plugins/PluginMetadataRegistry+CuratedDefaults.swift +++ b/TablePro/Core/Plugins/PluginMetadataRegistry+CuratedDefaults.swift @@ -590,7 +590,7 @@ extension PluginMetadataRegistry { brandColorHex: "#F4B942", queryLanguageName: "SQL", editorLanguage: .sql, connectionMode: .network, supportsDatabaseSwitching: true, - structureEditing: SchemaEditingSupport(foreignKeyEdit: .alter), + structureEditing: SchemaEditingSupport(foreignKeyEdit: .alter, structureEdits: .postgreSQL), capabilities: PluginMetadataSnapshot.CapabilityFlags( supportsSchemaSwitching: true, supportsImport: true, diff --git a/TablePro/Core/Services/Infrastructure/LaunchIntent.swift b/TablePro/Core/Services/Infrastructure/LaunchIntent.swift index ca06981d0a..c349a900ed 100644 --- a/TablePro/Core/Services/Infrastructure/LaunchIntent.swift +++ b/TablePro/Core/Services/Infrastructure/LaunchIntent.swift @@ -8,7 +8,14 @@ import TableProImport internal enum LaunchIntent: @unchecked Sendable { case openConnection(UUID) - case openTable(connectionId: UUID, database: String?, schema: String?, table: String, isView: Bool) + case openTable( + connectionId: UUID, + database: String?, + schema: String?, + table: String, + isView: Bool, + objectType: TableInfo.TableType? = nil + ) case openQuery(connectionId: UUID, sql: String) /// Open a connection in Agent mode, optionally carrying the question the user already typed. case openAgentSession(connectionId: UUID, prompt: String?) @@ -27,7 +34,7 @@ internal enum LaunchIntent: @unchecked Sendable { internal var targetConnectionId: UUID? { switch self { case .openConnection(let id), - .openTable(let id, _, _, _, _), + .openTable(let id, _, _, _, _, _), .openQuery(let id, _), .openAgentSession(let id, _): return id diff --git a/TablePro/Core/Services/Infrastructure/LaunchIntentRouter.swift b/TablePro/Core/Services/Infrastructure/LaunchIntentRouter.swift index 77df2d6259..a6c2212e50 100644 --- a/TablePro/Core/Services/Infrastructure/LaunchIntentRouter.swift +++ b/TablePro/Core/Services/Infrastructure/LaunchIntentRouter.swift @@ -109,7 +109,7 @@ internal final class LaunchIntentRouter { switch intent { case .openConnection(let id): return id - case .openTable(let id, _, _, _, _): + case .openTable(let id, _, _, _, _, _): return id case .openQuery(let id, _): return id diff --git a/TablePro/Core/Services/Infrastructure/TabRouter.swift b/TablePro/Core/Services/Infrastructure/TabRouter.swift index c3fb132351..04a23f4371 100644 --- a/TablePro/Core/Services/Infrastructure/TabRouter.swift +++ b/TablePro/Core/Services/Infrastructure/TabRouter.swift @@ -61,10 +61,10 @@ internal final class TabRouter { case .openConnection(let id): try await openConnection(id: id) - case .openTable(let id, let database, let schema, let table, let isView): + case .openTable(let id, let database, let schema, let table, let isView, let objectType): try await openTable( connectionId: id, transientConnection: nil, - database: database, schema: schema, table: table, isView: isView + database: database, schema: schema, table: table, isView: isView, objectType: objectType ) case .openQuery(let id, let sql): @@ -217,6 +217,7 @@ internal final class TabRouter { private func openTable( connectionId: UUID, transientConnection: DatabaseConnection? = nil, database: String?, schema: String?, table: String, isView: Bool, + objectType: TableInfo.TableType? = nil, passwordOverride: String? = nil, sshPasswordOverride: String? = nil ) async throws { let connection: DatabaseConnection @@ -241,7 +242,8 @@ internal final class TabRouter { tableName: table, databaseName: database, schemaName: schema, - isView: isView + isView: isView, + objectType: objectType ) DatabaseManager.shared.registerPendingSession(connection) WindowManager.shared.openTab(payload: payload) diff --git a/TablePro/Models/Database/MaterializedViewConcurrentRefreshNote.swift b/TablePro/Models/Database/MaterializedViewConcurrentRefreshNote.swift new file mode 100644 index 0000000000..5963ed3377 --- /dev/null +++ b/TablePro/Models/Database/MaterializedViewConcurrentRefreshNote.swift @@ -0,0 +1,45 @@ +// +// MaterializedViewConcurrentRefreshNote.swift +// TablePro +// + +import Foundation +import TableProPluginKit + +internal struct MaterializedViewConcurrentRefreshNote: Equatable { + internal let systemImage: String + internal let text: String + + internal init?(state: MetadataLoadState) { + switch state { + case .idle, .loading: + return nil + case .failed: + systemImage = "exclamationmark.triangle" + text = String(localized: "Couldn't check whether this view can be refreshed concurrently.") + case .loaded(let availability): + guard let availability else { return nil } + switch availability { + case .available: + systemImage = "checkmark.circle" + text = String(localized: "This view can be refreshed concurrently.") + case .requiresUniqueIndex: + systemImage = "info.circle" + text = String( + localized: """ + Concurrent refresh needs a valid unique index on the view's columns, with no WHERE \ + clause and no expressions. + """ + ) + case .requiresPopulatedView: + systemImage = "info.circle" + text = String( + localized: "Concurrent refresh needs the view to be populated first. Refresh it once without that option." + ) + @unknown default: + systemImage = "info.circle" + text = String(localized: "This view can't be refreshed concurrently.") + } + } + } +} diff --git a/TablePro/Models/Database/MaterializedViewRefreshPrompt.swift b/TablePro/Models/Database/MaterializedViewRefreshPrompt.swift index 3bb3c1f253..9d8ef62def 100644 --- a/TablePro/Models/Database/MaterializedViewRefreshPrompt.swift +++ b/TablePro/Models/Database/MaterializedViewRefreshPrompt.swift @@ -73,7 +73,7 @@ internal struct MaterializedViewRefreshPrompt: Equatable { case .requiresUniqueIndex: return String(localized: "Needs a valid unique index on the view's columns, with no WHERE clause and no expressions.") case .requiresPopulatedView: - return String(localized: "Available once the view holds rows. Refresh it once without this option first.") + return String(localized: "Available once the view is populated. Refresh it once without this option first.") case .none: return "" @unknown default: diff --git a/TablePro/Models/Database/StructureEditEligibility.swift b/TablePro/Models/Database/StructureEditEligibility.swift index e92038fcad..3db106cd09 100644 --- a/TablePro/Models/Database/StructureEditEligibility.swift +++ b/TablePro/Models/Database/StructureEditEligibility.swift @@ -109,6 +109,17 @@ struct StructureObjectEditMatrix: Sendable, Equatable { ]) } +enum TriggerEditEligibility { + static func kindAcceptsTriggers(_ kind: TableInfo.TableType) -> Bool { + switch kind { + case .table, .partitionedTable, .view, .foreignTable: + return true + case .materializedView, .systemTable, .externalTable, .sequence: + return false + } + } +} + /// Whether the Structure tab may offer one edit right now, and what to say when it may not. /// /// Mirrors `ForeignKeyEditAvailability` so every refusal in this tab carries its own sentence. A diff --git a/TablePro/Models/UI/InspectorRowSource.swift b/TablePro/Models/UI/InspectorRowSource.swift index 3e194c8ea6..e819603517 100644 --- a/TablePro/Models/UI/InspectorRowSource.swift +++ b/TablePro/Models/UI/InspectorRowSource.swift @@ -14,12 +14,14 @@ internal struct InspectorRowField: Equatable { let value: String? let editor: FieldEditorKind let isModified: Bool + let isEditable: Bool - init(name: String, value: String?, editor: FieldEditorKind, isModified: Bool = false) { + init(name: String, value: String?, editor: FieldEditorKind, isModified: Bool = false, isEditable: Bool = true) { self.name = name self.value = value self.editor = editor self.isModified = isModified + self.isEditable = isEditable } } diff --git a/TablePro/Models/UI/MultiRowEditState.swift b/TablePro/Models/UI/MultiRowEditState.swift index 9d330a346d..484843ed34 100644 --- a/TablePro/Models/UI/MultiRowEditState.swift +++ b/TablePro/Models/UI/MultiRowEditState.swift @@ -35,9 +35,10 @@ struct FieldEditState: Identifiable { /// A schema field has no data type, so it offers no type badge and no NULL or DEFAULT state. var isSchemaField: Bool = false - /// The server owns the value, so the field is shown without an editor. Refusing the edit further - /// down instead would leave a pending value here that nothing can clear, and the inspector would - /// go on reporting an unsaved change that Save never writes. + /// The server owns the value, or refuses to change it on this kind of object, so the field is + /// shown without an editor. Refusing the edit further down instead would leave a pending value + /// here that nothing can clear, and the inspector would go on reporting an unsaved change that + /// Save never writes. var isServerOwned: Bool = false /// The value already differs from the loaded schema because the edit is recorded elsewhere. @@ -249,6 +250,7 @@ final class MultiRowEditState: ObservableObject { originalValue: field.value ) } + state.isServerOwned = !field.isEditable return state } } diff --git a/TablePro/Models/UI/QuickSwitcherItem.swift b/TablePro/Models/UI/QuickSwitcherItem.swift index b37a3d67e0..cb4373fcdf 100644 --- a/TablePro/Models/UI/QuickSwitcherItem.swift +++ b/TablePro/Models/UI/QuickSwitcherItem.swift @@ -106,6 +106,7 @@ internal struct QuickSwitcherItem: Identifiable, Hashable, Sendable { var payload: String? var isOpenInTab: Bool = false var isReadOnly: Bool = false + var tableType: TableInfo.TableType? /// The schema of an object in the connection that opened the panel. `target` carries the schema /// for a result in another connection and is nil here, so without this a local result committed /// with no schema at all: the tab-reuse check compares schemas, so "Switch to Tab" opened a diff --git a/TablePro/Resources/Localizable.xcstrings b/TablePro/Resources/Localizable.xcstrings index 052e9b367a..efb0aa9aed 100644 --- a/TablePro/Resources/Localizable.xcstrings +++ b/TablePro/Resources/Localizable.xcstrings @@ -23313,7 +23313,7 @@ } } }, - "Available once the view holds rows. Refresh it once without this option first." : { + "Available once the view is populated. Refresh it once without this option first." : { }, "Average" : { @@ -182737,6 +182737,15 @@ }, "The Oracle driver reported an error (%@)." : { + }, + "This view can be refreshed concurrently." : { + + }, + "Concurrent refresh needs a valid unique index on the view's columns, with no WHERE clause and no expressions." : { + + }, + "Concurrent refresh needs the view to be populated first. Refresh it once without that option." : { + } }, "version" : "1.1" diff --git a/TablePro/ViewModels/QuickSwitcherViewModel.swift b/TablePro/ViewModels/QuickSwitcherViewModel.swift index 849dc33d6a..a85bc7df76 100644 --- a/TablePro/ViewModels/QuickSwitcherViewModel.swift +++ b/TablePro/ViewModels/QuickSwitcherViewModel.swift @@ -214,6 +214,7 @@ internal final class QuickSwitcherViewModel: ObservableObject { QuickSwitcherOpenTable(schema: table.schema, name: table.name, browsing: browseSchema) ), isReadOnly: !table.type.allowsRowEditing, + tableType: table.type, schemaName: table.schema )) } @@ -579,6 +580,7 @@ internal final class QuickSwitcherViewModel: ObservableObject { kind: presentation.kind, subtitle: connectionPath(for: resolvedTarget), isReadOnly: !table.type.allowsRowEditing, + tableType: table.type, target: resolvedTarget ) } diff --git a/TablePro/Views/Main/Extensions/MainContentCoordinator+QuickSwitcher.swift b/TablePro/Views/Main/Extensions/MainContentCoordinator+QuickSwitcher.swift index 3294a4bd9c..3c59d65e93 100644 --- a/TablePro/Views/Main/Extensions/MainContentCoordinator+QuickSwitcher.swift +++ b/TablePro/Views/Main/Extensions/MainContentCoordinator+QuickSwitcher.swift @@ -69,6 +69,7 @@ extension MainContentCoordinator { schema: schemaName, showStructure: intent == .openStructure, isView: item.isReadOnly, + objectType: item.tableType, activateGridFocus: true, forceNewTab: intent == .openInNewWindowTab ) @@ -79,6 +80,7 @@ extension MainContentCoordinator { schema: schemaName, showStructure: intent == .openStructure, isView: true, + objectType: item.tableType, activateGridFocus: true, forceNewTab: intent == .openInNewWindowTab ) @@ -121,6 +123,7 @@ extension MainContentCoordinator { item.name, schema: target.schemaName, isView: item.kind == .view || item.isReadOnly, + objectType: item.tableType, activateGridFocus: true, forceNewTab: intent == .openInNewWindowTab ) @@ -144,7 +147,8 @@ extension MainContentCoordinator { database: target.databaseName, schema: target.schemaName, table: item.name, - isView: item.kind == .view || item.isReadOnly + isView: item.kind == .view || item.isReadOnly, + objectType: item.tableType )) } catch { guard let self else { return } diff --git a/TablePro/Views/Structure/ConcurrentRefreshNoteView.swift b/TablePro/Views/Structure/ConcurrentRefreshNoteView.swift new file mode 100644 index 0000000000..fa4c32cc28 --- /dev/null +++ b/TablePro/Views/Structure/ConcurrentRefreshNoteView.swift @@ -0,0 +1,24 @@ +// +// ConcurrentRefreshNoteView.swift +// TablePro +// + +import SwiftUI + +struct ConcurrentRefreshNoteView: View { + let note: MaterializedViewConcurrentRefreshNote + + var body: some View { + VStack(spacing: 0) { + Divider() + Label(note.text, systemImage: note.systemImage) + .font(.callout) + .foregroundStyle(.secondary) + .fixedSize(horizontal: false, vertical: true) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 8) + .padding(.vertical, 6) + .accessibilityIdentifier("structure-concurrent-refresh-note") + } + } +} diff --git a/TablePro/Views/Structure/StructureEditGate.swift b/TablePro/Views/Structure/StructureEditGate.swift index daea3e356a..d92313a731 100644 --- a/TablePro/Views/Structure/StructureEditGate.swift +++ b/TablePro/Views/Structure/StructureEditGate.swift @@ -78,6 +78,31 @@ struct StructureEditGate { canEditSchema && StructureEditEligibility.allowsAnyEdit(on: objectKind, matrix: matrix) } + var allowsTriggerEditing: Bool { + databaseType.supportsTriggerEditing && TriggerEditEligibility.kindAcceptsTriggers(objectKind) + } + + func locksField(at index: Int, on tab: StructureTab, orderedFields: [StructureColumnField]) -> Bool { + switch tab { + case .columns: + guard orderedFields.indices.contains(index) else { return false } + return !editableColumnFields.contains(orderedFields[index]) + case .indexes, .foreignKeys, .checkConstraints: + guard let adding = StructureFooterPolicy.operation(forAdding: tab) else { return false } + return !allows(adding) + case .ddl, .parts, .triggers: + return false + } + } + + func lockedFieldIndices( + on tab: StructureTab, + orderedFields: [StructureColumnField], + fieldCount: Int + ) -> Set { + Set((0.. = .idle + /// Where the user was. Held here rather than in the view because two tabs on one table are two /// editors: one being on Indexes must not move the other, and neither should lose its place to /// a trip through the Data view. @@ -147,6 +152,26 @@ internal final class StructureEditingSession: ObservableObject { appliedVersion += 1 } + internal func reloadConcurrentRefreshAvailability( + provider: any ScopedMetadataProviding = DatabaseManager.shared + ) async { + guard objectKind == .materializedView else { return } + concurrentRefresh = concurrentRefresh.enteringLoad + let loader = TableStructureLoader(scope: scope, tableName: tableName, provider: provider) + let outcome: MetadataFetchOutcome + do { + outcome = .fetched(try await loader.concurrentRefreshAvailability()) + } catch is CancellationError { + outcome = .cancelled + } catch { + Self.logger.error( + "Concurrent refresh check failed: \(error.publicLogShape, privacy: .public)" + ) + outcome = .failed(error.localizedDescription) + } + concurrentRefresh = concurrentRefresh.settled(by: outcome, discardingValue: true) + } + /// Breaks the cycle the mounted view's wiring creates. /// /// `TableStructureView.onAppear` installs closures on `gridDelegate`, and each captures the view diff --git a/TablePro/Views/Structure/StructureGridDelegate+Inspector.swift b/TablePro/Views/Structure/StructureGridDelegate+Inspector.swift index 08d872e57b..97b565962a 100644 --- a/TablePro/Views/Structure/StructureGridDelegate+Inspector.swift +++ b/TablePro/Views/Structure/StructureGridDelegate+Inspector.swift @@ -15,7 +15,8 @@ extension StructureGridDelegate: InspectorRowSource { atDisplayRow: displayRow, tab: selectedTab, provider: provider, - canEditSchema: connection.type.supportsSchemaEditing, + canEditSchema: editGate.allowsAnyEdit, + lockedFieldIndices: lockedFieldIndices, rowOptions: { dataGridMenuOptions(forRow: displayRow, columnIndex: $0) } ) } diff --git a/TablePro/Views/Structure/StructureGridDelegate.swift b/TablePro/Views/Structure/StructureGridDelegate.swift index dcf59c68a2..1b1f1da630 100644 --- a/TablePro/Views/Structure/StructureGridDelegate.swift +++ b/TablePro/Views/Structure/StructureGridDelegate.swift @@ -40,6 +40,19 @@ final class StructureGridDelegate: DataGridViewDelegate { guard let adding = StructureFooterPolicy.operation(forAdding: selectedTab) else { return false } return editGate.allows(adding) } + + var canStageRemoveForSelectedTab: Bool { + guard let removing = StructureFooterPolicy.operation(forRemoving: selectedTab) else { return false } + return editGate.allows(removing) + } + + var lockedFieldIndices: Set { + editGate.lockedFieldIndices( + on: selectedTab, + orderedFields: orderedFields, + fieldCount: currentProvider?.columns.count ?? 0 + ) + } let tableName: String /// The lists behind the Foreign Keys grid's reference cells, shared with the Create Table tab. let referenceMenus: ForeignKeyReferenceMenus @@ -152,7 +165,8 @@ final class StructureGridDelegate: DataGridViewDelegate { } func dataGridDidEditCell(row displayRow: Int, column: Int, newValue: String?) { - guard column >= 0 else { return } + guard column >= 0, + !editGate.locksField(at: column, on: selectedTab, orderedFields: orderedFields) else { return } let sourceRowIndex = sourceRow(for: displayRow) switch selectedTab { @@ -181,8 +195,7 @@ final class StructureGridDelegate: DataGridViewDelegate { } case .checkConstraints: - guard editGate.allows(.addCheckConstraint), - sourceRowIndex < structureChangeManager.workingCheckConstraints.count else { return } + guard sourceRowIndex < structureChangeManager.workingCheckConstraints.count else { return } var constraint = structureChangeManager.workingCheckConstraints[sourceRowIndex] StructureEditingSupport.updateCheckConstraint(&constraint, at: column, with: newValue ?? "") structureChangeManager.updateCheckConstraint(id: constraint.id, with: constraint) @@ -518,7 +531,8 @@ final class StructureGridDelegate: DataGridViewDelegate { rowView.coordinator = coordinator rowView.rowIndex = row rowView.structureTab = selectedTab - rowView.isStructureEditable = connection.type.supportsSchemaEditing + rowView.canDuplicate = canStageAddForSelectedTab + rowView.canDelete = canStageRemoveForSelectedTab let src = sourceRow(for: row) diff --git a/TablePro/Views/Structure/StructureInspectorRowBuilder.swift b/TablePro/Views/Structure/StructureInspectorRowBuilder.swift index f682f1ea34..11cdbd450e 100644 --- a/TablePro/Views/Structure/StructureInspectorRowBuilder.swift +++ b/TablePro/Views/Structure/StructureInspectorRowBuilder.swift @@ -16,6 +16,7 @@ internal enum StructureInspectorRowBuilder { tab: StructureTab, provider: StructureRowProvider, canEditSchema: Bool, + lockedFieldIndices: Set = [], rowOptions: (Int) -> [GridMenuOption]? = { _ in nil } ) -> InspectorRow? { switch tab { @@ -41,7 +42,8 @@ internal enum StructureInspectorRowBuilder { options: rowOptions(index) ?? dropdownOptions[index], typePickerColumns: typePickerColumns ), - isModified: modified.contains(index) + isModified: modified.contains(index), + isEditable: !lockedFieldIndices.contains(index) ) } diff --git a/TablePro/Views/Structure/StructureRowViewWithMenu.swift b/TablePro/Views/Structure/StructureRowViewWithMenu.swift index 6cd092ac5c..b97daba020 100644 --- a/TablePro/Views/Structure/StructureRowViewWithMenu.swift +++ b/TablePro/Views/Structure/StructureRowViewWithMenu.swift @@ -15,7 +15,8 @@ import AppKit /// disagree. final class StructureRowViewWithMenu: DataGridRowView { var structureTab: StructureTab = .columns - var isStructureEditable: Bool = true + var canDuplicate: Bool = true + var canDelete: Bool = true var referencedTableName: String? var onCopyName: ((Set) -> Void)? @@ -129,9 +130,11 @@ final class StructureRowViewWithMenu: DataGridRowView { addColumnMoveItems(to: menu) - if isStructureEditable { + if canDuplicate || canDelete { menu.addItem(NSMenuItem.separator()) + } + if canDuplicate { /// No key equivalent. This showed `Cmd+D`, which is not the binding `duplicateRow` /// carries, and the real one does not reach here either: `MainContentCommandActions` /// guards it on `dataGridOwnsSelection` and returns for a schema grid. There is no @@ -143,7 +146,9 @@ final class StructureRowViewWithMenu: DataGridRowView { ) dupItem.target = self menu.addItem(dupItem) + } + if canDelete { /// Read from the binding rather than typed in, because this one genuinely works: /// `KeyHandlingTableView.keyDown` routes it to the delegate's row delete, and it can /// be rebound in Settings, at which point a literal here would start lying. diff --git a/TablePro/Views/Structure/TableStructureLoader.swift b/TablePro/Views/Structure/TableStructureLoader.swift index bb4469f9d8..bac8f37f2b 100644 --- a/TablePro/Views/Structure/TableStructureLoader.swift +++ b/TablePro/Views/Structure/TableStructureLoader.swift @@ -59,6 +59,13 @@ struct TableStructureLoader { return try await perform { try await $0.fetchTriggers(table: table) } } + func concurrentRefreshAvailability() async throws -> PluginConcurrentRefreshAvailability? { + try await MaterializedViewRefreshing.concurrentRefreshAvailability( + of: DatabaseObjectTarget(name: tableName, type: .materializedView, schema: scope.schema, scope: scope), + provider: provider + ) + } + func coreTabs(includingForeignKeys: Bool) async throws -> CoreTabs { let table = tableName return try await perform { driver in diff --git a/TablePro/Views/Structure/TableStructureView+DataLoading.swift b/TablePro/Views/Structure/TableStructureView+DataLoading.swift index 368dea7d14..52e003c112 100644 --- a/TablePro/Views/Structure/TableStructureView+DataLoading.swift +++ b/TablePro/Views/Structure/TableStructureView+DataLoading.swift @@ -26,6 +26,7 @@ extension TableStructureView { guard !session.hasLoaded else { isInitialLoading = false isLoading = false + await session.reloadConcurrentRefreshAvailability() return } await loadColumns() @@ -65,6 +66,7 @@ extension TableStructureView { columns = try await structureLoader.columns() case .indexes: indexes = try await structureLoader.indexes() + await session.reloadConcurrentRefreshAvailability() case .foreignKeys: foreignKeys = try await structureLoader.foreignKeys() case .checkConstraints: @@ -205,6 +207,7 @@ extension TableStructureView { foreignKeys = reloaded.foreignKeys tabData.markFetched(.foreignKeys) } + await session.reloadConcurrentRefreshAvailability() } catch { Self.logger.error("Failed to reload structure: \(error.publicLogShape, privacy: .public)") errorMessage = error.localizedDescription diff --git a/TablePro/Views/Structure/TableStructureView+EditGate.swift b/TablePro/Views/Structure/TableStructureView+EditGate.swift index 773e5947ef..ef5f4e0ccb 100644 --- a/TablePro/Views/Structure/TableStructureView+EditGate.swift +++ b/TablePro/Views/Structure/TableStructureView+EditGate.swift @@ -41,21 +41,16 @@ extension TableStructureView { ) } - /// The Columns grid's headings for the fields this object's kind will not let the user change. - /// /// Name-keyed because that is the only handle the grid has: `isColumnWritable` is asked about a - /// column's heading, and the Columns grid's headings are exactly - /// `orderedColumnFields.map(\.displayName)`. Empty on every tab but Columns, whose rows are the - /// only ones that describe a column. - var lockedStructureColumns: Set { - guard selectedTab == .columns else { return [] } - let editable = editGate.editableColumnFields - let locked = StructureColumnField.allCases.filter { !editable.contains($0) } - /// `displayName` is a `String(localized:)` lookup per field, and this is read on every body - /// evaluation. A table locks nothing, which is the overwhelmingly common case, so it never - /// pays for twelve of them. - guard !locked.isEmpty else { return [] } - return Set(locked.map(\.displayName)) + /// column's heading. + func lockedStructureColumns(for provider: StructureRowProvider) -> Set { + let headings = provider.columns + let locked = editGate.lockedFieldIndices( + on: selectedTab, + orderedFields: provider.orderedColumnFields, + fieldCount: headings.count + ) + return Set(locked.map { headings[$0] }) } /// Why the Columns grid refuses every keystroke, when it does. A grid that will not take an edit diff --git a/TablePro/Views/Structure/TableStructureView.swift b/TablePro/Views/Structure/TableStructureView.swift index a6d4c0ccc8..d36071f83a 100644 --- a/TablePro/Views/Structure/TableStructureView.swift +++ b/TablePro/Views/Structure/TableStructureView.swift @@ -359,10 +359,18 @@ struct TableStructureView: View { case .columns: structureGrid case .indexes: - if shouldShowIndexesEmptyState { - EmptyStateView.indexes { gridDelegate.dataGridAddRow() } - } else { - structureGrid + Group { + if shouldShowIndexesEmptyState { + EmptyStateView.indexes { gridDelegate.dataGridAddRow() } + } else { + structureGrid + } + } + .safeAreaInset(edge: .bottom, spacing: 0) { + if objectKind == .materializedView, + let note = MaterializedViewConcurrentRefreshNote(state: session.concurrentRefresh) { + ConcurrentRefreshNoteView(note: note) + } } case .foreignKeys: if shouldShowForeignKeysEmptyState { @@ -383,6 +391,7 @@ struct TableStructureView: View { connection: connection, tableName: tableName, isLoading: !tabData.hasData(.triggers), + canEdit: editGate.allowsTriggerEditing, onOpenInEditor: openTriggerInEditor ) case .ddl: @@ -492,7 +501,7 @@ struct TableStructureView: View { databaseName: databaseName, schemaName: schemaName, tabType: .table, - lockedColumns: lockedStructureColumns, + lockedColumns: lockedStructureColumns(for: provider), editRefusalMessage: structureEditRefusal ), delegate: gridDelegate, diff --git a/TablePro/Views/Structure/TriggerDetailView.swift b/TablePro/Views/Structure/TriggerDetailView.swift index 9ff4741479..b54f4d2f7a 100644 --- a/TablePro/Views/Structure/TriggerDetailView.swift +++ b/TablePro/Views/Structure/TriggerDetailView.swift @@ -47,6 +47,7 @@ struct TriggerDetailView: View { let connection: DatabaseConnection let tableName: String let isLoading: Bool + let canEdit: Bool let onOpenInEditor: (TriggerInfo) -> Void @StateObject private var state = TriggerInspectorState() @@ -54,8 +55,6 @@ struct TriggerDetailView: View { @State private var pendingDelete: TriggerInfo? @State private var actionError: String? - private var canEdit: Bool { connection.type.supportsTriggerEditing } - var body: some View { if isLoading { ProgressView() diff --git a/TableProTests/Core/Autocomplete/SQLSchemaProviderTests.swift b/TableProTests/Core/Autocomplete/SQLSchemaProviderTests.swift index bf46b5c4c3..2856298fb8 100644 --- a/TableProTests/Core/Autocomplete/SQLSchemaProviderTests.swift +++ b/TableProTests/Core/Autocomplete/SQLSchemaProviderTests.swift @@ -169,6 +169,21 @@ final class MockDatabaseDriver: DatabaseDriver, SchemaSwitchable, @unchecked Sen func fetchForeignKeys(table: String) async throws -> [ForeignKeyInfo] { [] } func fetchApproximateRowCount(table: String) async throws -> Int? { nil } + var concurrentRefreshAvailabilityToReturn: PluginConcurrentRefreshAvailability? + var concurrentRefreshAvailabilityError: Error? + var concurrentRefreshAvailabilityCalls: [(name: String, schema: String?)] = [] + + func concurrentRefreshAvailability( + materializedView: String, + schema: String? + ) async throws -> PluginConcurrentRefreshAvailability? { + concurrentRefreshAvailabilityCalls.append((materializedView, schema)) + if let concurrentRefreshAvailabilityError { + throw concurrentRefreshAvailabilityError + } + return concurrentRefreshAvailabilityToReturn + } + func fetchTableDDL(table: String) async throws -> String { "" } func fetchViewDefinition(view: String) async throws -> String { "" } diff --git a/TableProTests/Models/DatabaseObjectToolsTests.swift b/TableProTests/Models/DatabaseObjectToolsTests.swift index d8c3fd816d..2bcfbca332 100644 --- a/TableProTests/Models/DatabaseObjectToolsTests.swift +++ b/TableProTests/Models/DatabaseObjectToolsTests.swift @@ -93,7 +93,7 @@ struct MaterializedViewRefreshPromptTests { @Test("Each unavailable reason explains itself") func reasonsAreExplained() { #expect(prompt(.requiresUniqueIndex).concurrentOptionDescription.contains("unique index")) - #expect(prompt(.requiresPopulatedView).concurrentOptionDescription.contains("rows")) + #expect(prompt(.requiresPopulatedView).concurrentOptionDescription.contains("populated")) #expect(!prompt(nil, checkFailed: true).concurrentOptionDescription.isEmpty) #expect(prompt(nil).concurrentOptionDescription.isEmpty) } diff --git a/TableProTests/Models/MultiRowEditStateTests.swift b/TableProTests/Models/MultiRowEditStateTests.swift index 2df0128669..e973719fc7 100644 --- a/TableProTests/Models/MultiRowEditStateTests.swift +++ b/TableProTests/Models/MultiRowEditStateTests.swift @@ -1033,6 +1033,23 @@ struct MultiRowEditStateTests { #expect(sut.selectedRowIndices == [2]) } + @Test("A field the owning grid locks is shown without an editor") + func lockedSchemaFieldIsReadOnly() { + let sut = MultiRowEditState() + sut.configure( + schemaFields: [ + InspectorRowField(name: "Name", value: "email", editor: .schemaText), + InspectorRowField(name: "Type", value: "text", editor: .typePicker, isEditable: false) + ], + displayRow: 0 + ) + + #expect(sut.fields[0].isServerOwned == false) + #expect(sut.fields[1].isServerOwned) + #expect(InspectorFieldListView.isFieldEditable(sut.fields[0], kind: .schemaText, rowIsEditable: true)) + #expect(!InspectorFieldListView.isFieldEditable(sut.fields[1], kind: .typePicker, rowIsEditable: true)) + } + @Test("A committed schema edit is not a pending sidebar edit") func schemaFieldsAreNotPendingEdits() { let sut = MultiRowEditState() diff --git a/TableProTests/Views/QuickSwitcherObjectKindTests.swift b/TableProTests/Views/QuickSwitcherObjectKindTests.swift new file mode 100644 index 0000000000..a37ea25081 --- /dev/null +++ b/TableProTests/Views/QuickSwitcherObjectKindTests.swift @@ -0,0 +1,88 @@ +// +// QuickSwitcherObjectKindTests.swift +// TableProTests +// +// Open Quickly groups a materialized view with views for its icon and label, and used to open it +// as one: its tab carried no kind, so the Structure tab refused Add Index with "A view cannot have +// indexes." The row now hands over the kind it was built from. (#2522) +// + +import Foundation +@testable import TablePro +import TableProPluginKit +import Testing + +@Suite("Quick Switcher object kind") +@MainActor +struct QuickSwitcherObjectKindTests { + @Test("A cross-connection row keeps the table type it was built from") + func crossConnectionItemsCarryTheType() { + let target = QuickSwitcherTarget( + connectionId: UUID(), connectionName: "Primary", databaseName: "shop", schemaName: "public" + ) + let items = QuickSwitcherViewModel.makeCrossConnectionItems( + tables: [ + TableInfo(name: "daily_totals", type: .materializedView, rowCount: nil), + TableInfo(name: "orders", type: .partitionedTable, rowCount: nil) + ], + target: target + ) + + #expect(items.map(\.tableType) == [.materializedView, .partitionedTable]) + #expect(items.first?.kind == .view) + } + + @Test("Opening a materialized view from the Quick Switcher gives its tab the matview kind") + func openingAMaterializedViewKeepsTheKind() throws { + let connection = TestFixtures.makeConnection(database: "shop", type: .postgresql) + let tabManager = QueryTabManager() + let coordinator = MainContentCoordinator( + connection: connection, + tabManager: tabManager, + changeManager: DataChangeManager(), + toolbarState: ConnectionToolbarState() + ) + defer { coordinator.teardown() } + + let item = QuickSwitcherItem( + id: QuickSwitcherItem.tableItemId(name: "daily_totals", schema: "public"), + name: "daily_totals", + kind: .view, + subtitle: String(localized: "Materialized View"), + isReadOnly: false, + tableType: .materializedView, + schemaName: "public" + ) + coordinator.handleQuickSwitcherSelection(item) + + let tab = try #require(tabManager.selectedTab) + #expect(tab.tableContext.tableName == "daily_totals") + #expect(tab.tableContext.objectType == .materializedView) + #expect(tab.tableContext.resolvedObjectKind() == .materializedView) + } + + @Test("Opening a partitioned table from the Quick Switcher keeps it partitioned") + func openingAPartitionedTableKeepsTheKind() throws { + let connection = TestFixtures.makeConnection(database: "shop", type: .postgresql) + let tabManager = QueryTabManager() + let coordinator = MainContentCoordinator( + connection: connection, + tabManager: tabManager, + changeManager: DataChangeManager(), + toolbarState: ConnectionToolbarState() + ) + defer { coordinator.teardown() } + + let item = QuickSwitcherItem( + id: QuickSwitcherItem.tableItemId(name: "events", schema: "public"), + name: "events", + kind: .table, + subtitle: String(localized: "Partitioned Table"), + tableType: .partitionedTable, + schemaName: "public" + ) + coordinator.handleQuickSwitcherSelection(item) + + #expect(tabManager.selectedTab?.tableContext.objectType == .partitionedTable) + } +} diff --git a/TableProTests/Views/Structure/MaterializedViewConcurrentRefreshTests.swift b/TableProTests/Views/Structure/MaterializedViewConcurrentRefreshTests.swift new file mode 100644 index 0000000000..62a6cdd732 --- /dev/null +++ b/TableProTests/Views/Structure/MaterializedViewConcurrentRefreshTests.swift @@ -0,0 +1,188 @@ +// +// MaterializedViewConcurrentRefreshTests.swift +// TableProTests +// +// A materialized view's Indexes tab says whether the view can be refreshed without blocking its +// readers, and the answer comes from the server rather than from the index list: an index left +// INVALID by a failed concurrent build lists exactly like a valid one. (#2522) +// + +import Foundation +@testable import TablePro +import TableProPluginKit +import Testing + +private struct ProbeFailure: Error {} + +@MainActor +private final class ConcurrentRefreshProvider: ScopedMetadataProviding { + private(set) var requestedScopes: [DatabaseScope] = [] + let driver: MockDatabaseDriver + + init(driver: MockDatabaseDriver = MockDatabaseDriver()) { + self.driver = driver + } + + func withMetadataDriver( + scope: DatabaseScope, + workload: MetadataConnectionPool.Workload, + _ body: @Sendable @escaping (DatabaseDriver) async throws -> T + ) async throws -> T { + requestedScopes.append(scope) + return try await body(driver) + } + + func browseScope(for connectionId: UUID) -> DatabaseScope? { nil } +} + +@Suite("Materialized view concurrent refresh note") +struct MaterializedViewConcurrentRefreshNoteTests { + @Test("Nothing is shown before the server has answered") + func nothingBeforeAnAnswer() { + #expect(MaterializedViewConcurrentRefreshNote(state: .idle) == nil) + #expect(MaterializedViewConcurrentRefreshNote(state: .loading) == nil) + } + + @Test("An engine with no concurrent refresh shows nothing at all") + func nothingWhereTheEngineHasNoConcurrentRefresh() { + #expect(MaterializedViewConcurrentRefreshNote(state: .loaded(nil)) == nil) + } + + @Test("A qualifying view says it can be refreshed concurrently") + func availableSaysSo() throws { + let note = try #require(MaterializedViewConcurrentRefreshNote(state: .loaded(.available))) + #expect(note.systemImage == "checkmark.circle") + #expect(note.text == String(localized: "This view can be refreshed concurrently.")) + } + + @Test("A view without a usable unique index names what it needs") + func missingUniqueIndexNamesTheRequirement() throws { + let note = try #require(MaterializedViewConcurrentRefreshNote(state: .loaded(.requiresUniqueIndex))) + #expect(note.systemImage == "info.circle") + #expect(note.text.contains("unique index")) + #expect(note.text.contains("WHERE")) + } + + /// Measured on PostgreSQL 17.11: a view refreshed over a query that returns nothing is populated + /// with zero rows, and `REFRESH … CONCURRENTLY` then succeeds, so the condition is never "rows". + @Test("An unpopulated view says it needs populating first, not an index") + func unpopulatedViewNeedsPopulating() throws { + let note = try #require(MaterializedViewConcurrentRefreshNote(state: .loaded(.requiresPopulatedView))) + #expect(note.systemImage == "info.circle") + #expect(note.text.contains("populated")) + #expect(!note.text.contains("rows")) + #expect(!note.text.contains("unique index")) + } + + @Test("A check that failed says so rather than guessing") + func failedCheckSaysSo() throws { + let note = try #require(MaterializedViewConcurrentRefreshNote(state: .failed("timeout"))) + #expect(note.systemImage == "exclamationmark.triangle") + #expect(note.text.contains("Couldn't check")) + } +} + +@Suite("Materialized view concurrent refresh check", .serialized) +@MainActor +struct MaterializedViewConcurrentRefreshCheckTests { + private static func makeSession( + kind: TableInfo.TableType, + schema: String? = "reporting" + ) -> StructureEditingSession { + let connection = TestFixtures.makeConnection(database: "analytics", type: .postgresql) + return StructureEditingSession( + identity: "analytics.\(schema ?? "").daily_totals", + connection: connection, + databaseName: "analytics", + schemaName: schema, + tableName: "daily_totals", + objectKind: kind + ) + } + + @Test("A materialized view asks the server about its own name, schema and scope") + func asksAboutTheViewItself() async { + let session = Self.makeSession(kind: .materializedView) + let provider = ConcurrentRefreshProvider() + provider.driver.concurrentRefreshAvailabilityToReturn = .available + + await session.reloadConcurrentRefreshAvailability(provider: provider) + + #expect(session.concurrentRefresh == .loaded(.available)) + #expect(provider.driver.concurrentRefreshAvailabilityCalls.map(\.name) == ["daily_totals"]) + #expect(provider.driver.concurrentRefreshAvailabilityCalls.map(\.schema) == ["reporting"]) + #expect(provider.requestedScopes == [session.scope]) + } + + @Test("A table, a view and a partitioned table never ask") + func otherKindsNeverAsk() async { + for kind: TableInfo.TableType in [.table, .view, .partitionedTable, .foreignTable] { + let session = Self.makeSession(kind: kind) + let provider = ConcurrentRefreshProvider() + + await session.reloadConcurrentRefreshAvailability(provider: provider) + + #expect(provider.driver.concurrentRefreshAvailabilityCalls.isEmpty, "\(kind.rawValue)") + #expect(session.concurrentRefresh == .idle, "\(kind.rawValue)") + } + } + + @Test("A recheck replaces the answer, so an index added since shows up") + func recheckReplacesTheAnswer() async { + let session = Self.makeSession(kind: .materializedView) + let provider = ConcurrentRefreshProvider() + provider.driver.concurrentRefreshAvailabilityToReturn = .requiresUniqueIndex + await session.reloadConcurrentRefreshAvailability(provider: provider) + #expect(session.concurrentRefresh == .loaded(.requiresUniqueIndex)) + + provider.driver.concurrentRefreshAvailabilityToReturn = .available + await session.reloadConcurrentRefreshAvailability(provider: provider) + + #expect(session.concurrentRefresh == .loaded(.available)) + } + + /// The recheck runs after the index list has already been refetched, so an old answer kept over + /// a failure can contradict the indexes on screen: a view whose only unique index was just dropped + /// would go on reading "can be refreshed concurrently". + @Test("A failed recheck says it could not check rather than repeating the old answer") + func failedRecheckReportsTheFailure() async { + let session = Self.makeSession(kind: .materializedView) + let provider = ConcurrentRefreshProvider() + provider.driver.concurrentRefreshAvailabilityToReturn = .available + await session.reloadConcurrentRefreshAvailability(provider: provider) + + provider.driver.concurrentRefreshAvailabilityError = ProbeFailure() + await session.reloadConcurrentRefreshAvailability(provider: provider) + + guard case .failed = session.concurrentRefresh else { + Issue.record("expected .failed, got \(session.concurrentRefresh)") + return + } + #expect(MaterializedViewConcurrentRefreshNote(state: session.concurrentRefresh)?.text.contains("Couldn't check") == true) + } + + @Test("A first check that fails is reported as failed") + func firstFailureIsReported() async { + let session = Self.makeSession(kind: .materializedView) + let provider = ConcurrentRefreshProvider() + provider.driver.concurrentRefreshAvailabilityError = ProbeFailure() + + await session.reloadConcurrentRefreshAvailability(provider: provider) + + guard case .failed = session.concurrentRefresh else { + Issue.record("expected .failed, got \(session.concurrentRefresh)") + return + } + } + + @Test("An engine without concurrent refresh is loaded as nil, which shows nothing") + func engineWithoutConcurrentRefresh() async { + let session = Self.makeSession(kind: .materializedView) + let provider = ConcurrentRefreshProvider() + + await session.reloadConcurrentRefreshAvailability(provider: provider) + + #expect(session.concurrentRefresh == .loaded(nil)) + #expect(MaterializedViewConcurrentRefreshNote(state: session.concurrentRefresh) == nil) + } +} diff --git a/TableProTests/Views/Structure/StructureEditGateTests.swift b/TableProTests/Views/Structure/StructureEditGateTests.swift index e4f9430d67..31cd026091 100644 --- a/TableProTests/Views/Structure/StructureEditGateTests.swift +++ b/TableProTests/Views/Structure/StructureEditGateTests.swift @@ -51,6 +51,60 @@ struct StructureEditGateTests { #expect(!matview.allows(.addForeignKey)) } + /// PGlite is PostgreSQL 17 running the same driver and the same `CREATE INDEX` and `DROP INDEX`, + /// and it was left on the tables-only matrix, which refused a matview's index as if the server + /// did. (#2522) + @Test("PGlite offers a materialized view the same edits PostgreSQL does") + func pgliteMatchesPostgreSQL() { + #expect(PluginManager.shared.structureEditMatrix(for: .pglite) == .postgreSQL) + let matview = gate(.materializedView, .pglite) + #expect(matview.allows(.addIndex)) + #expect(matview.allows(.dropIndex)) + #expect(!matview.allows(.setDefault)) + } + + @Test("A materialized view is offered no trigger, while a view and a table keep theirs") + func triggersFollowTheKind() { + #expect(!gate(.materializedView).allowsTriggerEditing) + #expect(!gate(.systemTable).allowsTriggerEditing) + #expect(gate(.table).allowsTriggerEditing) + #expect(gate(.view).allowsTriggerEditing) + #expect(gate(.foreignTable).allowsTriggerEditing) + } + + /// SQLite, SQL Server and Oracle take an `INSTEAD OF` trigger on a view, and none of them has a + /// curated edit matrix, so triggers cannot be a cell of it without taking that away. + @Test("An uncurated engine keeps New Trigger on a view") + func uncuratedEngineKeepsViewTriggers() { + #expect(gate(.view, .sqlite).allowsTriggerEditing) + #expect(!gate(.view, .sqlite).allowsAnyEdit) + } + + @Test("An engine without trigger editing offers none on any kind") + func engineWithoutTriggerEditing() { + #expect(!gate(.table, .clickhouse).allowsTriggerEditing) + } + + /// Refusing the commit while the editor stayed open dropped whatever was typed, so the lock and + /// the commit guard come from this one rule. + @Test("A list whose add the object refuses locks every field, so nothing typed is dropped") + func refusedAddLocksTheWholeList() { + #expect(gate(.view).locksField(at: 0, on: .indexes, orderedFields: [])) + #expect(gate(.view).lockedFieldIndices(on: .indexes, orderedFields: [], fieldCount: 5) == Set(0..<5)) + #expect(!gate(.materializedView).locksField(at: 0, on: .indexes, orderedFields: [])) + #expect(gate(.materializedView).locksField(at: 0, on: .foreignKeys, orderedFields: [])) + #expect(gate(.materializedView).locksField(at: 0, on: .checkConstraints, orderedFields: [])) + #expect(!gate(.table).locksField(at: 0, on: .indexes, orderedFields: [])) + #expect(!gate(.table).locksField(at: 0, on: .ddl, orderedFields: [])) + } + + @Test("The Columns list locks field by field") + func columnsLockPerField() { + let fields: [StructureColumnField] = [.name, .type, .defaultValue, .comment] + #expect(gate(.materializedView).lockedFieldIndices(on: .columns, orderedFields: fields, fieldCount: 4) == [1, 2]) + #expect(gate(.table).lockedFieldIndices(on: .columns, orderedFields: fields, fieldCount: 4).isEmpty) + } + @Test("A system table allows nothing at all, so the grid has nothing to offer") func systemTableAllowsNothing() { let system = gate(.systemTable) diff --git a/TableProTests/Views/Structure/StructureGridDelegateInspectorTests.swift b/TableProTests/Views/Structure/StructureGridDelegateInspectorTests.swift index 44fecee4fa..283780049a 100644 --- a/TableProTests/Views/Structure/StructureGridDelegateInspectorTests.swift +++ b/TableProTests/Views/Structure/StructureGridDelegateInspectorTests.swift @@ -182,4 +182,86 @@ struct StructureGridDelegateInspectorTests { delegate.commitInspectorField(displayRow: 0, fieldIndex: nameIndex, value: "sku") #expect(manager.workingColumns[0].name == "sku") } + + // MARK: - A kind that locks fields + + /// The grid locked a materialized view's Type, Nullable and Default, while the inspector beside + /// it offered all three and staged an `ALTER COLUMN` PostgreSQL always refuses on a matview. + private func makeMaterializedViewDelegate( + manager: StructureChangeManager, + tab: StructureTab = .columns + ) -> StructureGridDelegate { + let connection = DatabaseConnection( + name: "Test", host: "localhost", port: 5_432, database: "shop", username: "postgres", type: .postgresql + ) + let delegate = StructureGridDelegate( + structureChangeManager: manager, + selectedTab: tab, + connection: connection, + tableName: "daily_totals", + objectKind: .materializedView, + coordinator: nil + ) + let provider = StructureRowProvider( + changeManager: manager, + tab: tab, + databaseType: .postgresql, + serverSupport: .unrestricted + ) + delegate.currentProvider = provider + delegate.orderedFields = provider.orderedColumnFields + return delegate + } + + @Test("A materialized view's inspector locks the fields its grid locks") + func materializedViewInspectorLocksFields() throws { + let delegate = makeMaterializedViewDelegate(manager: loadedManager()) + let row = try #require(delegate.inspectorRow(atDisplayRow: 1)) + + #expect(row.isEditable) + #expect(row.fields[try fieldIndex(delegate, .name)].isEditable) + #expect(row.fields[try fieldIndex(delegate, .comment)].isEditable) + #expect(!row.fields[try fieldIndex(delegate, .type)].isEditable) + #expect(!row.fields[try fieldIndex(delegate, .nullable)].isEditable) + #expect(!row.fields[try fieldIndex(delegate, .defaultValue)].isEditable) + } + + @Test("A locked field refuses the edit even when it arrives through the inspector") + func lockedFieldRefusesTheCommit() throws { + let manager = loadedManager() + let delegate = makeMaterializedViewDelegate(manager: manager) + + delegate.commitInspectorField(displayRow: 1, fieldIndex: try fieldIndex(delegate, .type), value: "TEXT") + delegate.commitInspectorField(displayRow: 1, fieldIndex: try fieldIndex(delegate, .defaultValue), value: "'x'") + + #expect(!manager.hasChanges) + #expect(manager.workingColumns[1].dataType == "VARCHAR(255)") + #expect(manager.workingColumns[1].defaultValue == nil) + } + + @Test("An unlocked field on the same object still takes the edit") + func unlockedFieldTakesTheCommit() throws { + let manager = loadedManager() + let delegate = makeMaterializedViewDelegate(manager: manager) + + delegate.commitInspectorField(displayRow: 1, fieldIndex: try fieldIndex(delegate, .name), value: "mail") + + #expect(manager.workingColumns[1].name == "mail") + } + + @Test("A table locks nothing, so every field stays open") + func tableLocksNothing() { + #expect(makeDelegate(manager: loadedManager()).lockedFieldIndices.isEmpty) + } + + @Test("The row menu offers Delete only where the object accepts the drop") + func rowMenuFollowsTheGate() { + let columns = makeMaterializedViewDelegate(manager: loadedManager(), tab: .columns) + #expect(!columns.canStageRemoveForSelectedTab) + #expect(!columns.canStageAddForSelectedTab) + + let indexes = makeMaterializedViewDelegate(manager: loadedManager(), tab: .indexes) + #expect(indexes.canStageRemoveForSelectedTab) + #expect(indexes.canStageAddForSelectedTab) + } } diff --git a/TableProTests/Views/Structure/StructureRowMenuRouteTests.swift b/TableProTests/Views/Structure/StructureRowMenuRouteTests.swift index 918520a1fe..4845886856 100644 --- a/TableProTests/Views/Structure/StructureRowMenuRouteTests.swift +++ b/TableProTests/Views/Structure/StructureRowMenuRouteTests.swift @@ -122,4 +122,29 @@ struct StructureRowMenuRouteTests { #expect(rowView.contextMenu(for: try rightClick()) == nil) #expect(rowView.contextMenu(target: .row) == nil) } + + /// A materialized view refuses `DROP COLUMN` and `ADD COLUMN`. The menu used to offer Delete and + /// Duplicate on its columns anyway, and choosing either did nothing at all. + @Test("Delete and Duplicate appear only where the object accepts them") + func rowEditsFollowTheGate() { + let refused = makeRowView() + refused.canDelete = false + refused.canDuplicate = false + let refusedItems = titles(refused.contextMenu(target: .row)) + #expect(!refusedItems.contains(String(localized: "Delete"))) + #expect(!refusedItems.contains(String(localized: "Duplicate"))) + #expect(refusedItems.last != "") + + let deleteOnly = makeRowView(tab: .indexes) + deleteOnly.canDelete = true + deleteOnly.canDuplicate = false + let deleteOnlyItems = titles(deleteOnly.contextMenu(target: .row)) + #expect(deleteOnlyItems.contains(String(localized: "Delete"))) + #expect(!deleteOnlyItems.contains(String(localized: "Duplicate"))) + + let accepted = makeRowView() + let acceptedItems = titles(accepted.contextMenu(target: .row)) + #expect(acceptedItems.contains(String(localized: "Delete"))) + #expect(acceptedItems.contains(String(localized: "Duplicate"))) + } } diff --git a/docs/features/table-operations.mdx b/docs/features/table-operations.mdx index f55bec5d79..46c6cf2626 100644 --- a/docs/features/table-operations.mdx +++ b/docs/features/table-operations.mdx @@ -88,7 +88,7 @@ Right-click empty space and choose **New View…** to write a new one; right-cli **Show DDL** opens the definition in a read-only tab, with **Copy**, **Export** and **Open in Editor** on it; **Copy DDL** puts the same statement straight on the clipboard. Both stay available on a read-only connection, where **Edit View Definition** is hidden. -A materialized view holds stored rows, so refreshing it is a server operation. Right-click one and choose **Refresh Materialized View…**, or use **Database > Refresh Materialized View…**. The confirmation names the view and warns that other sessions cannot read it while the refresh runs. **Refresh concurrently** leaves readers alone; it is available on PostgreSQL for a view that holds rows and carries a unique index on plain columns with no `WHERE` clause, and the alert says which of the two is missing when it is dimmed. Tabs showing the view reload when the refresh finishes. A plain view stores nothing, so `Cmd+R` re-runs its query instead. +A materialized view holds stored rows, so refreshing it is a server operation. Right-click one and choose **Refresh Materialized View…**, or use **Database > Refresh Materialized View…**. The confirmation names the view and warns that other sessions cannot read it while the refresh runs. **Refresh concurrently** leaves readers alone; it is available on PostgreSQL for a view that has been populated and carries a unique index on plain columns with no `WHERE` clause, and the alert says which of the two is missing when it is dimmed. Tabs showing the view reload when the refresh finishes. A plain view stores nothing, so `Cmd+R` re-runs its query instead. Comments are edited per object. Right-click a table, view, materialized view or foreign table, choose **Edit Comment…**, and type the text; saving an empty field removes the comment. Column comments live in the [Columns tab](/features/table-structure#columns-tab). Both need an engine that writes comments, which today means PostgreSQL and PGlite. diff --git a/docs/features/table-structure.mdx b/docs/features/table-structure.mdx index 35d6ed02db..0e82447934 100644 --- a/docs/features/table-structure.mdx +++ b/docs/features/table-structure.mdx @@ -20,7 +20,7 @@ The tabs are **Columns**, **Indexes**, **Foreign Keys**, **Constraints**, **Trig A view is not a table, and the grid offers only the edits the server will take on the object open in front of it. A refused **+** or **-** stays on screen, dimmed, with the reason in its tooltip; a cell the object will not let you change beeps instead of opening an editor. -PostgreSQL answers this per operation, so the tab does too: +PostgreSQL and PGlite answer this per operation, so the tab does too: | Object | What it accepts | |--------|-----------------| @@ -107,6 +107,23 @@ Everything that runs goes to query history rather than the change queue. | **Unique** | Whether the index enforces uniqueness | | **Condition** | `WHERE` predicate for partial indexes (PostgreSQL, SQLite, libSQL, Cloudflare D1) | +### Materialized views + +A materialized view's indexes list, add and drop the same way a table's do. The line under the list says whether **Refresh Materialized View** can refresh it concurrently, which keeps other sessions reading the view while it runs: + +| Line | What to do | +|------|------------| +| This view can be refreshed concurrently. | Nothing. Select **Refresh concurrently** in the refresh dialog | +| Concurrent refresh needs a valid unique index on the view's columns, with no WHERE clause and no expressions. | Add an index here with **Unique** set to YES, listing plain columns only, and save | +| Concurrent refresh needs the view to be populated first. Refresh it once without that option. | Refresh the view once without the option. A view created `WITH NO DATA` stays unpopulated until its first refresh | + +The server answers the question, so an index left invalid by a failed `CREATE UNIQUE INDEX CONCURRENTLY` does not count, even though it lists with **Unique** set to YES. The line updates after every save and every refresh. + + + Indexes tab of the daily_totals materialized view: a unique index on day and region, an index on lower(region), and a line under the list saying the view can be refreshed concurrently + Indexes tab of the daily_totals materialized view: a unique index on day and region, an index on lower(region), and a line under the list saying the view can be refreshed concurrently + + ## Foreign keys tab | Field | Description | @@ -181,7 +198,7 @@ A save is often several statements, run in order. Engines with transactional DDL ## Triggers tab -Lists **Name**, **Timing** (BEFORE, AFTER, INSTEAD OF), **Event** (INSERT, UPDATE, DELETE), and **Enabled** where the engine reports it. Select one to read its `CREATE TRIGGER` statement from the catalog, with **Copy** and **Open in Editor**. **New Trigger**, **Edit**, and **Delete** sit in the action bar; the editor opens the trigger's real DDL, including the trigger function on PostgreSQL. Trigger changes run on their own connection, like a structure save. +Lists **Name**, **Timing** (BEFORE, AFTER, INSTEAD OF), **Event** (INSERT, UPDATE, DELETE), and **Enabled** where the engine reports it. Select one to read its `CREATE TRIGGER` statement from the catalog, with **Copy** and **Open in Editor**. **New Trigger**, **Edit**, and **Delete** sit in the action bar; the editor opens the trigger's real DDL, including the trigger function on PostgreSQL. Trigger changes run on their own connection, like a structure save. A materialized view or a system table cannot carry a trigger, so the tab has no action bar there. Triggers are available for MySQL, MariaDB, PostgreSQL, SQLite, SQL Server, Oracle, libSQL, and Cloudflare D1; the tab is hidden elsewhere. Oracle does not return the trigger body, so the viewer and the editor start from the trigger header alone. diff --git a/docs/images/structure-matview-indexes-dark.png b/docs/images/structure-matview-indexes-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..e049a23f62b989e93ba6988ac104e761fe34abeb GIT binary patch literal 395597 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 B5Fh{m literal 0 HcmV?d00001 diff --git a/docs/images/structure-matview-indexes.png b/docs/images/structure-matview-indexes.png new file mode 100644 index 0000000000000000000000000000000000000000..39ffc130f25d4e4febc9a951aea6d40681b1e733 GIT binary patch literal 735164 zcmb4q1yo$i5-sjd2*KT5g1fuByIXK~g1fr}CpZi)2?2rxcXxMp{^UyT&HL-G_us5D zoSr_XwYsWy?QX&q6_n?(`$s$WiSo%*sPftO>HL#Wv_STCRfNz8liq>lhiCU< z=)hAGm(uPP_y^J`nb3t%0z_;5eFWb^n(ESqMGUreqqyGw@UmZFciMT{8FK5q>@q(Y zcwzuC(FG`^!3}}Mk$-;^;@&n{P+)A)oazq}<`2Odz?YdwWC8(s4^FzX+tnY+2l8Xs zO~%~w`SJAi{Z?~30uqP<%GdKH1Uc-lC2{A`ByUW?{Dt1_nV7?w-|>A_K_y06uf>wf zGQE-^uzJE(Hn;vNlm>$X=1);OUmyY^!6uQD(km(Q5cd@YfZ}iu77UN#Dk-hqE7}Zi zC|oEOb|&NJ`K13q`ci4$UPzIdO}XA;o{rcK%`cobIP%ONyXhycRqpPKECNqR7Va$+ zr-{v3f1af3i}v;#G{gu?F1I%Skfc%Wna7R^qwx+W$@`@DqdI`lRh~--nLZwhvkubt zfm0xUlCLsqX@z_}EY3Ni6+)!gXd>`Fa|MvR8%Yk5eBu2GSHse9ky*R6z9Rl2=2E4r zLWs%*9fI1?M9y0XA?$uu+5-|UcZqTdAi=J?l+v5-g=L=Rn_>6F5z zPQkM*lX<}^2a#U4tJq8Oko(sFEd!k6sO()sTKmazL%8-o`xI5?Br~T=Hle#XgT=JIeg1T<9FGdaRi1f z9%xXDb_9^~BOy5koOnjCZVXUy+QE#WA1m(>E>;P_O9db;K=8KcSVgbqK`GXtcuW|Ta8&|@*C;uV;P z?&i1yDJF#ZDrgc0Rwj@Uhi?L=Dd_wi@*?;tAB7S-A_$ELl=S08zN`Y13RtqRssh~= zi!*jBh;E2yKJ*wND_lniUk_y(gtDQF1_4{>J|p-|P|w=7192A8?ia{2wq}H?kFj6q z&LHo&ypi$!^}nD~`X>lc6*MRmQ*uRw!-@3fp(zkgX{n%=zfq005@`I?s_3QwUdl8@ z!TMHKaB{5Jf}#PL3-^a$$*0+Zrh=hy@o~C6`YXIELQmXhMB%#vY+u*pCZ_dJo+4a3E%?$_ubur+$7s-&qfg=lU1Y$P| z{#)&b^k$(Yz9pt5k0skB#uE}fxa#nxuU_lMXJAia-c+4Pen@^euVDP5ab$a_xUc~b z^hBvO*$!!Aa?O(O$YoHs!=OaWjovY(HwS2l*%0ax^O1KZCL~OxIL5)HY)Dt8QYUf| zxrkaR9H2|)n8+9<7)csUuuY&ULGOd^aow~S~=XO+&N z>5yv`Y88C|Tv=lUM&%#~n}x{a$dt(>4$G!9X$F4oq*YF#Yf}RV-89&A9R=fxjwsP9 z(97CY=wvUcwxD`swRg6c@ThkRyu>|;-V?z^6bKtCaU{tm^(09r8B(WM379G-mi10; zPT?Ok2et=B3k3_s2!(vr3;`8QD(EDZW>WpowjtTe*E=e8Aca7dGx4?vs%TLvaWFDz zImu&CbTE4GHi^GtOoc~PNyW9ip`1riv;w;Vs=}-SU!|jv3lP@&-4fMYal9Zg62JV5 zRi71+RmC(?*|I{W!mPrr8fN*aa#tx|aenD~as206?ai#dQgYEr(ZuQ&?aTHZ=?t)F zLFuC8@m7mXEh{ZPEu%{6O8iPHTkvCt}9TOuFckrR%w?@mqQnV z1JtWMPf1U&>(*=XYs4#(YxcvYgV=YJI5h|t2nUGxI0=Zlh?9sFh^N?w(R*T4V$e}` zSUr7!KFL0eK6Y6HbZ+#{0no&i-n3q%NXW;_Kodvk0>nGn^kC$y3E+l*xSh1xU)gq zo-8Waq%PP2jvJn>%Zwk+qYBrXp}!bJu5AWI^j#(0`!kZ$)UfYN^w$(9LbxZ~m}swWP-w z^==@_IBNFf?FsR%*{x(Ti4$Ud5BT=_vEtVFCe+tp^SP1_6{YY#1=j zfHtsP2rP&q=x4MjL?pN>7+-uNtOSAyJSkXREG^6jqG4VeuenbSJq{n-&4Xn`Y(#9o znG}kfNNx!vc}!)L9*&ofKkWhD>Bxx4$PRyF9yRq!LF`}Xd)s$I$F7l6|8xL1jZsE3 zQkA4Rpf~>}G(0k@BJ%Mol8Jgf#fIkj<7Pjn%!u9yO%;wCyIa!kFwJ_0go7NVq0ws6;&eds)c@fk<&wBuzDYU5)PVwYXRoJQUG zbMbfCW5@%@L->!KmoHVF3att%b6xY6PTRM8r}wM3Hnl5t_Crm?cH@mkksA{m4BDL9 z)z1d^!t=fzc{TYC~+iHxD{$S$ZscN%2>xueem+9*k=t;mL^fD5gO1b)5b>Elx*Ue|@ z)AAIn=Yt91IbqGv9D*2*rDyc#k_GJPjE#(HaR_m!n2)%}<&D*qmC6;1ddRbphvKol z_-!sro9@~{mcpu^jEv7=9fZ6$wnsnk-)3KN&(Dk4TX7V*S^2RPwUk0y4cKDY%Ua=C zMA{wl9(%RcFPC-PW7g}(WQ}tve^6ULx^epE1i4#0x|^N5hvFKgE78t4)lzpk-dh^! z))v_2Nq?`~>NtOR(Q7Amdrvc>KBD8&?)iZItaa$pc1Xu=W6%0(^=R!Bt1CYw`X zDsPgT#HZ?|^_)3w9}VsbZVt^0WzPfeb7K+4a&>SUwc3S%$wR@<;FEt};QGyKYq)fF zuQGK=52*{SGXtCEN%$o8xf)SF_hIsQ6lYU$v&UYBadT#Y4%-Xnd}|jH%xjAF4;ItH$Td)u#SQ%gIS0Kp3wzqyh^PF%hVLlQ;;W zIJiJd$X%$Z6TTN)Udw5qCfIBEuJ@e{;mEc-G{~3lX|=(!c45%z^@4;j>x}Fm+S<~6 z?F2d3CoBQBVBLg1JK$@#N5w*Cv1ymre&f%hSQ4!-wlA153viRv21s&102^VdA!#Nn z3qlP{!+=15VuL^eQ=q^vA1KbRv=}HQ2>2iQU?3o&mLL#+z4Nn%pPxA3_h*?u@8Ag^ zL7;)Z(12g}Jg~pth9AoV|2qxU3Va44s4Ofg3A`&CJDQr>Ia$~{li{LY0W)A7Bs85s zK;Dx5{DMjTF2pZfj%b z#O2OQ{Kp$y!1T{-24ccLUU9bOCDxEtAQZNDG$mxCXQXE&=7S?7B;;{4G2>Da5&Nq+ z@E0$!g|o8*7XyQvn;X3w3%$LgIRg_XCnp0VGXpa-9q%L7=DiZUvu&2ME{WsoM}Ed9)@31Rr zjPH6!8UX+)X{SV+rDjPsR<^;1>%+p9GD&&y!q!$X&*|%=g`7qujw;(7Y74;Rv`$}<0C{`-ah zXL`&QwxNmS@VHz={e3IGfKgSs^KvL#hwj3{LXqz6;=)2qktAn_?;d-k&~O@&$|EAgEmIJA_{>&rxi zdUnJXjUYt+In5YkFW$SjoZp5p)(bO*{BEw-@!L@x2<-oM33x&*sQM#s9$U{=CSwe# z4<-~zLy9d!Pa((omWx*_gP*9XPUocI*J{=B+(f_VhFqxWobnTJvvrYyfp*}atn`&p zt}wX7ibmng5h|*_+9$oYp7}mOCLN`EkJ=L|{rd7;s8rdnEpFIO_J!`Z&OxB(`SYd0 z`$+mjNc=BXD@A~8W`@cBglXMc{pgg^GZYrHN$J$=Y=!9qKJ12v#d^NZt@Uc97{2yl zO$pco26bMwf+CO2o_N&53RI1hH}0l4Z93WI(=|B%U8o?u!v?3SX8p4jE) zM+``(-&b`D5wLG|9L#Ug2togsE1*i+py#7lI;S;2t5~0!L_8+J_xVB6)U+tka4tVq zGs}%`l*FG`4gQKIy3v!SplLC!@ji{n>u`2r!bs)uaJD+NvfrMp!|OUKy|pRAYjzV^~>PB~Dj-qQdkrt_HtK>?5MX>>Bd$(dX&oM*|Ke(JA|ewNmWu?NeP2X9l0{ zFHN8BDhoUH2_kmewvBsb68~i{wlab8x+fpL`=1q(Iv^yMApw~$&5(Bdc7IZxnwnZh z%^1xiY@eOmH~?SBqoTZN&{K7~!ky2|!*?V2e4^UkK4O>MX%qjqk#8jdd%)Q{@cqB5 z*6#+R6)QkAGWGk_{;713RzYak%0g;vm{zX(+p(b@(YFkW@K;tbE4X{ruErU9g|#0( z4QITU2H^9{JxpG-ulMNxW=-Q5z}}4QM$&Hn$8!Gf3xpoRAl$bv3fc5%?t_xLIt2!G zMl97fQJy-SCkp0R(_ws06#RZ>W~M3+zcOIS2p)^eByV?Bx0@;Vw+<*+06T!0!EyS# zTl?*uf4RGV^2ab>hjUoucYb72Z1%^dW@KPbe--8-sOO7)5_?OhSFES#1cpCu(dG>> z2vAW|9c*U$M3n>mhU+&4`OX3gw|9w*l9brZbn9i$q-#rQbdGQ zqCHK4I_R^KwfjogwtBT5S>%-SGd=fdsg##>P3K~bk=So5Esqj{GLHeybtUOHCHe1b zArBtS!p<%pQ$LHm=Oc3B%kv>G{1u}}E@7ViLW3mV%boGOU7Ky8TXjwY-zp>llv(({ z8pvY>+5`QJ?XN2F|I&s3p8+RP1egw~eb=_{phG8@O9Br32k`??5yFKeS6A?pdm}Ne zPZms<(#GG6rkZoIOq0pvb#&-zX=@i%R{nTuXfj@;SG=~5C9k?s$Y(GuED)lmp&712 zO-@d3)u&QbRrS7fq+T1M##9!o6d<>eePY{Ni)C zYxn%fQ9Q%|`k1pu@5*m+_+YsDa^^E=f6wUpS7VfrU@u(y>UOvJBXGOZK1R^tzFL?O z9`-Aq>)DiQcTIqTE&`jqGv$45?KK6mrGDCY}~m-fe;+I$>B*Q_%V`I12nDet&`O{IyL=(avzp= za!ULdEzziF?gz$DO!2o-6PQP(ga+ls7CQ+RV9hxT5{rATMI>X@I!1=;Io5Ev9jeNU zh%;CW_t#$Zu{n;lty#D@ONAZ$h|UzL;LuL?cQt>kOJ^c58)Vn~uSevX9~MX1hJf;@ zTuc$uhkhC>F??j7O94z7E#}#SJdO2lBE<#eA0se;gQvDH>`?tNou`b_8! zFx_TgNQ!?JOgFvsb|y|Ybqk*c7{RBgC0ebrCz&#bS}!pR@HF@J1=*H0BjR9hhhUZr z1jA}e+uG9Uc`<=`YJh9hnS>X!P#gD0F(a#&k!I`@1~`)V^TVaZO-xPM@b&q4-lnwb zbrgnnI>$?FK=(e@kR-a3tZ(?S8nuP{aTJWZS^{kVHoHxn%i(M$zW}f2R4HZG%+ip~ z=s#xPR5DKm@(PIPM}h^IhBWiPSmMaoIHc@snsFnHl?6Re4Wf>)snpV9;r%8OpphUY z>Ao>w=Hi*ffUTj+)+m31BE48sG=sR~GwqAa|I57PX+UV~(ja-vB%`$md&6(mx#QQy zevo;ZJKy^@7Q$b*VNi&?FVY&v_ikL4jGo@x>e5M^QQ+k~sMdT7Z*!!GBOk<46q{&E z%!4TUCjEeZJNbYrY+u_LD*H>J`Djitk5ezSDaZ>ByB+Ik!+VbCI!b`o?egt3oKG79 z7PH83gjFt`4z8#X|HGc}yvuI(8;DdUN>`%umu*Q9f+g8ZHYsiE%&U`0@rMI>TU~}k zEER8~AvM6^TbAhs=0OwD5PE3k{GsSl5dH!JIvSP5sb;~MDs76x>yo;1CG);3R=+&v zh^&BL##|~;fC_d`Hb|1<*fzoqgw&cbKWEcT(D#LrX9N#ao88$M;lc^09A#$K$dojD zOA`)JmHl|>KkyhOJ}3Y>vOmX-o(I%#ao#WLjY|{2nQay11{&i9i@u2aVU^(ZgPV7* zRGD|$-{98))*qO_*S0ga-s3W*pi?@B$H*>q%Pmd<<3b7 z`RYB&$unxCR}`y37RFbDL_3U$*}mTX>@MSdy?q7}jpM$#y4>&|g875rS4QoYubLkv zkUKq2oIdg-C8#=Qh6>p*fr5?Fr%g>yd!VZxbu3>v-5%eYXs5Qd#oj{R+S=H#jv}o% z$yiXPXamE5_PYtzd9zI0VJDOTf8QS&({(oU%=4C^w)f&y8e~0>DRiLiYdBNHJk-qB z&ySM1ozI2kt>ols>il=+)M@gN;DMgQcVCbpt}E$&)Y%AG!&>Mrnx0m@}f_Xa-Rakpnyj-kEDtCN|Je7b%Oq$`nl5Ma(ayVhdv5-rj$8uhSM=Qykn5zM8MA zd$jY&&l)Q}rQQzVA$L;ij&V(!PHx>!udZt_HCV;0s2BAM!Z@RlcIzB@UWK1DIa?E) zsMhxjr@gaLbp8?u$?QG`g2h_XxkYf~Eoj(I8b<}{tukA-?e;|Ux%!mh`8uS0D%P5t zcKEQrxU%v+&tS|)t)89@8PX?bQ`2OXJ@FzTx~Zmpg34(wBD3l8=^bQsg2uquSiE1B zL0})9ve+O0Is@@=7XI7RUST(3S*7q+MXkyM*+iqV1x^K}7eY++>_vZJxSrMv;HZra zbSLItfCPwaK_KSvx10pP_R(Q%q!0bMp>l^B>1;besc-z}6|Mn*n_ z>F>Grg{fIiC8)ZOdS6pD1=)9gMr$O4_O>S9vL~(Khc#!6q?cvCd&L2CK1r~PZA0Z? zOY~k!JjTeT2SY!zk2vofesvD;ez`Zo;&hY_AI`qDyz0Rs7~EQ>*pJMNq-8-u+k1dG3-ylH@~%GA zqzHmSR66|38{O*>wsXEN>F_WC-D0pBLnPdI$(8uS<*o;wiI;YQ-FAU;D3w7SRp--{ za^&6Jrpzz=tFQnOL6#@JX>z>KXy*E!i(2Q<$fCW_5s)9`z}9{qsejn#zYyt_MQxX} zD$_kWQUPm~%^2YIgm&1(`7y?el0w@z%{E33Oapaqv8j5$=D;1&=NGK{Gtr6$G&gNZ zmdp%-5OC8eA0ZokEu>TDHHOJqW*TQcTMYB%=TU_D(t~!&(<7ezg^dO7Q4HFu8BJA7 zTa`FtH`g_F>dj;g9>I&YVr-3`(E4BKzCzZHm_2c7dcQm_8W(~i^`FedG^N<$FiB#y zY#U!5-Lf!xcNqm6<;*7~wv?c|aecTS8v2IH$Y(cLq2EQ%&X;qP4NuL@&+yu|zIIx3 zhcV$`6b4~D$V*xe zTL0RYpy`Vzkjs^|kQmLZTR$Wt;@UauE)V|f*k&(voC=7?>5YX|(>CR>b+ z@%QLe-md#WjnE*R5#CwVo5>$-xtSd!56~Airp8SH0Y*7t{e2;Q8wb-B(bqgM`}_YX z3G$zkFl%uQ)tP6j<*)YjTO4Whfxl_LzSXynvBg=i0|)QrL5+c0_-2WzdBBcC}JCDv5xnlX>c6C+uzbUU$iP>~7e$F?Z zcxJ{*obe>Ra!F}gF5sbc(q;oZ8^+c)`o7pIyz3%}Ieu=p9iBwYsEKu8)7|D+S=c`n z%?cdi{AhJa3WK|NdA_y+^&&V@=RDf-Va~^^LtXA15b32m=G&60u8^a{Utup>1|ELd zbc(%kRv(hP9qDuUtK zz9!{BR!S)33a1g=`Mf~1kJ-n^r^8%z27UBy9j&yAr2b>GpMi}FIF_}g^!;|DN)>Ly?hV?hZ6pZGu7z7T5!1(;#0=|y- zT|^XxM7IV9>$?dHX=58G@F~}jE~TDOdk_eAi^oeG1*@V--ibuXRh63G_Q!*!TfVTZQXVZHa0~JkJdszO zkja8ftEq0QUaMi=Bn(|oR?d4h`AVzR@($3JD3%ZL0_-IIWDaVdHHdgUuj1BwK1!OZ zHfo9$bjbEzen?2d`5zFb_`4UlQ*z13(V8j2Ii9i}dfZDymT`04HbtwjRxz>Q zjlv(s-V=^;{K8N_l_Kv9!o~|FvD9!JHt5&}`E4hzdp|C!!$KWr1kEv-^Tx zX1|vbG>?n2vhi%U1;KJ^V}df3JdYfRR-AyH9WzaUP5RaTr1-}&cYK0TK#CfkhK2ko za_}km#5_OsN@&kp0c-+79rSP&2~(G3)B-v+)aO>0L!giT0wi9IjW>Rgu6YnJZ-fM5 zJ%3zm4;86VKpKVfEWTsK!`__9fcIR(qOX%lDMDw zKL&i_|82=7fr3`^YG_-3yR_@j=Wd%kJVY9zSPU{W+0!q8Xf@W(SoKHqdDkXT*Sh&Q z1sM^o`6th_SMU?FcLW|+xfG3=D?)BNU|H^F@r6cJ4PAVYploAh^}KPtX$@mB%zM+X zEj$F%&OIrwQs@ZgHnfx^2xYphy9n9WFFd5Y+S0I^iJN3-J_t7ZX46NrD_>DB=O#h~ z-{XpZ+^4f9Rb-QZ@{;fz6E@DD$UmJ^I)ygA)8}!pX1(W{HyrNsNE0_f6jEuHlck?O zmq6R-1Aruwof53aU>>PLZkKU;8?z}WjG)2FoNh`P!5tP&K{Ka;JtJzeR2+U z%AUTy{Y6r(L#O|BR-nKs6uV?o=UxHhEC(K>#)8jgUo^AHca#|dU4`FKcmOleS|haA zP0|ZjI(E$Q7iKCR@_I^$R;{12R=^|HZkZ*Z?v<-i^A`uDQ2uk$rV}J{s;V^92Ol)2 z&iA|zj}ua*F6v!z-+Pocm$r%YYda~5efOhEMW5L1(APpL%c4`ab|}c|>+czy)IKKC z+<`yq)C3G91UMP!OT1_hZPdQ<5ygwYUasz8-YoQJOv)uoEbgGL3_V&Ym3DK5KK@%qR%lPetp{vnt z`9zV&dH(&=Wk{W%`FM8$U&>+LKibO|;0?E@SpB82JL3Smi~t3FwB)@L4}IG00Y-2C zw>Mk<{#`5Y-jaPa1h8Yz?vYwpSurOvYWg9Ni240(F#m|PDS5#FymP|p#6j-(&pnK# zNp;!%HwOC{b%nSUX{2swY3&H_w9Idp{)mm)dd zNYka)I5|xs8LH?e*Yc>dU~A5zBk95Y%(%zzG9JAy$%eJ5S{@-qlMim?JdqkHWrKNR zPXv#rn?QXXC>vjPTbvIgrq!?m8klckyELkdtd3KZBu4g@wy=GH{96w<8?nJ211^Wp zUutsZ`d-(d#p~{|al|z^@YchYzxP#w9>32?ov-Z-XHr#HwSFk5Tbq`v# zMvs*kWg-xBVAUe3F&F%*?@vvnL1otH z$H5&dpUzh2+SK;GWp*8YS5{sQ2Qj^{Ks{L^pNh%Zy`3SKB!J#SS}Y0?*k zb+P0$Isjzu$XLurSU*(jcdax?GNKwRHGinP9N``cfX1f`#rG^V2n5l+C0=VZXBlu! z0N9I-&vi>~&?Ez#JG(&Nims*j2nA?JjVGQeQ>DO7iu|Q}`{)MQ3_fbvumi114^zxO zZ&~*JBqT&B7O-JwDYzvjMx;Hlq=qL@m#3MxTmy|oN_sEOkFl2z zBarRpHy$ug^yKUN@@{2kxm?$r;q9!)+j{`?regmUeJP%k83?s1owBzJ>=MGlK`IqR zGXTI$%&Ei^i6K7%p8q``asE1&PTJC^9%#y~&CQU@?9h<>!9i+EOUo3G%bl{2XFW3m z;(J|>UuKtZ72*O2vpdX|TV0rOX+}#Oh*Ws0T~ebCXykM$J{?{lCY*aE(jda=>oQ{H zm>{Z75fNE@fs^gzNfME*B~BD=0+6FLCsRlirCmh(QGZGB`uixbq8 zZ9LaG!OpV~hVNgX31}ZrySh+^^nI?U9dDQ2G67a|E;C(%k9%(OrkM5EYP!1Fnu-|r z8N6Nq)Y)p?wwVUS5spoSmc4?=DEC#pAv#zSp>7=IFQS|_(mi=!3Pd9#CQ<;a{_8!V znFDk!Pf!|wBlJ4bW*1oJ-rIp61h;<^Gf6OWT>5+qK5V(4FE!Cx=65QpRE|FIJksub zevX$)P0ieppm|$8JYhkTQA4yI!MkELL|L*LiAGKF#*Ex_JA`5ULh9OKr-8>wCuToI zxOO#FUC&3C*uL}H)!C*8IDfL`32Po`dqxm!d;VX6TdO8ldr|-FBGFSY5EqCs;(DLW8IgU9wZjEwf-198gOVNR&;yyN-eV7 z1GrL@`L3G<>x(`d`*#w&UN@|}+FDv$bH=gB#xb0IVVls1*e2gPnvqiK^*pvQJnq&* zfux>Z+)s~Il&VK@;HsK99GqZrTK>8 ziOZ0B9GkQ`L#A+NXk2DD@%8H)>-Om+RA+F`JqqejW~ma|30UJH>-bJ}VQC9*9*S*E zLPQC!Re;K=bmv{y?TT}__t}@Iy|8uRAa42PlHf;xHhiv|+N@*3XUkb*=dU=a zN1ssnLmhe_NY;I9;=(`_lic`xk)-$4RMZA9OovR;U!t(z4{Dr#*>?W5ITJz=XZ_P5 z!@s4C%TLy19<$B-5?Wju5f3svrstic8B=rCBc~7K1zR zV2r}?@Z08uKs@Z+jX{_1a})^Pz<{dP8IZtEc|2*8m*ZH62q5zab5iC+ILLOMkh}m& zW&ji#m$2*g`4lqnQ3XkD$M1efe^A$L*);g3MvK68c{rVAyJ1o;QC;6hwW?(Y`+hvu zH;LL4=whQ_lccq|a##JM^3TE0V2BjxPn9Ju_GSMvbfOg9T>9gYgw?Q=C9O*IIlYC( zGah8wK3m0~!JIwW%wF$}qMBT9nd?jgD!X`=oCJ3x74=?N?_-Brc%-9WDOk)UO?HMg z#|6O;(YfWHr#xi9mV>+NilmD)D_5g%xaAg9m7qX7J`6yZk&)B05MYyXZN=6<5(WBq z3ca!dx4N`}$3sld;)rUWF4+GDeF9%#x3mPhyzdOH)ai2xv(9!|H9PtV zQu=iR{k8cK2IG$3b#t~MA7a$t!%D~hBd9+mRwN2?{3RNPJ>!N@X$Jth{ESp4H;(_* zL-1k{yq~J;nqDiky8eI?OOflX6vJ~N!Fl+(K5F|R&LDqPPjO4mz=?C+;7hwgPcB2?Gehik|o&i&B06 z##3+*Qu!mdSCjHXDcW{a=oE6akfge7h(&tpf#Wkk;ui8o&>~c%S+L1ucd&*vF*)%y zi+e?@qT+kcm^~lfP$`M7UwSjq(=ME@o}E_UO=7Y++q19W?OhJiq3J^Q(jKt2|9%hdP9LS@@O6GB+bo+k=Dl9pWd`|{)?9Np4Ga7)N7lR6Zof5Mz zz17jngwd-+Mt3Ia8OVrW5ITpx!PGPrg^Il{z^a%qv|;l1e#Q21@`R~ip3X|$4^L-? zJw*WX9y4BwAyrT1xe|egc`W(C>fgY_C`a! zMr=uph^0EOJaqw4I?cMJ?MpV0$CwQ~EIzYbibyBi>!a0P^!lemyOAjpTa%EvqK{Vx zEiLHNxoG%_0_;Q}=RDu|?>?Lz(^e$5@M<;|F1)mJl#oKOT8wbbzk34>>{VScPYghRG~TiLh# zqhw?ThaV)tTPRpcxi^@bm@-hJIkDQfvCGnyV=ywsN*P0cQAL05&F8VgP-^DP{G; z?rvB8{8$X1fF<4_j6t`|%&3tp@Sk;qN56l_W4t=_g^((zt29>7U}7XddOOdkNH)6) z!cb{>18dkD1|-4;g=CS*C)S{=s;Wkw2!F;ni9k=oV0Ds&9B^{MmnPdcSe9J)@hJHdZuq!P3K3( z*P2kW0jIRl+TFtKl2OmrkzfRv(}%@#wa=xPGyU-=&tJc8H%2*3l5U&Gg_6-qzb28P zcJs~CEjxbb(ez8g!0qe5)YLoa2)a?s0dDuMP@muX?oRm3f(?-bG1p{0djMWi_z`UK zRvFY!hw4meNb4NdcgJ%Y-@kaJZZqM-JUPzG54#IPWLG z0rg>M?EcrH&;V;e8~b^xrX<&w`jc1;>os;Fd}S)cw7!iGePtHZlx^UK3=KULH4Lcs ztaNjFHD8*;h#QK^s2ffh9UUEzEbulC!3SUaPuto{2E>JGBsjdD4JyD>5_ruc4ZQ9^ zppXgJ0n!Ju-RI$oDNvn1(y^N6y;Tlo=?r~|4@&2`MFY3l zNEQ`=?_Ito7EV^}f*#Ogn>^i}n>DrxSuSxUsb?5h_2Sz97`i3Si+UP$t=m+sP#fSr zZ6`qy`gGI>gkC_4FXJj%GLmfUQ8ZXO-Bf%zVrUf9wT%DHFJ&9+U5Tgb$F3IgwT`+M z_tejPpil))=O@)VjaoorfFWi^MLlG@$mH2L@N$mytwX&jtO4aq7~RLamb_TSbLOV| za}mBcSLLycyfDp9R@css4rg+3_w0SP{0x!Dj4w23^X*4gpKWZqHxx&We&}q~ zuh_@u^KNF1!ZH>Pw)>&#ZipL7@(sB{B&{g8h)=A1E#{Zy$g6>HB+Khxb$aq4;2|~h z!GFX%V6>dEZkKY!6%BQViwtucN)RxjQy{sVh7T%WpS}C4$v;ID$vebH`Qsn%?PuT^ za3a;+NNx6zAGF{r=quRGnsqqV_w+CeB-NLl6A!bU35*stWBK)pWi!d!PFk%eYSOcU zDZvY#_@CC19TzN1AoU(L30^f$nm3U&8!QypJUkNwS|J9@=(0!c1vW4ZSvt&fJj8r2 zGgrUYkMgz6vqbXB#BshpUH-U*dPZ{AjT8t)ll>HB%bz6u^`X{&u;}ZbC(!~m{czIcTFb%vpUMHOQK=)=xZd#a;#cer3I_b-? z9*oXYu_V~^y+~h3bGuY7G8_{Ha(808K8jg(S6QBy42b(0+dtFbJS?LeJ8=Pl%ocFX z{|KjCAn2`&)+jeMGT}L92i4+XcX{|MyFnXVz7g>wzdyl$)Zi)m~ zQb<&Gezw(uf~D6}t3{LMNObTgOQ>o+pl-QcdHjYcEY$3ccU5(0`I4sNupVLt(4F&X zZ|b?tFPn;>)$o2A=w~(?*61OoMSA!Zhi&Bu&_i79Wu>!t0itlYUg%9@Q z824a$S)gg0YLGx8k^e87No24P! zm-mQ!5<(Cu2tVV4q37GxTnEpRY}bU2n+0iCVDN2eVZr#Z;^F4l`T=1q7KB8uCL?s3 zv?h>PE!_S2dNz96lb!h62Vl&O1FlrXf7^x>pyZp|ie$PI{AY|-flBF|&4A}?;g#e2 zux|#&^40hW`MA5|c7;28XowjB;*!AcsWz`NtE@t0v$zHy@o;~jPfEI@DyiE1od5Mc z_UXu+KM{+?%p_ta?Eaiq57;R)TCPnPt`CA$Lzcs7Oq`R4+pSSt60xM}^icfCiI95lVLvu3E&Qbe!HX^fe&2%rvwcHO?=jSUK0o9msT9lSV-=IgE`j{RQ9g zJJH0_LJFyYp`0!Ehd_fFH3kgLkd{1tsI=oC3>3z+0Ia}wDEYrQ1WMch9hf~sMBE{8 zyRsR0Fwt=>d%!gV2%vBi&B!X(eh>U#0Oqo?T~Uz4bm!BS}uTG|&qyB-cI z`UbhV#&70~k&W|-VZ`JHY4T95PE7}=-BupHEWkq0)G&_g;;H3nwYl2LRa&{KrwsoJ z@qpl8U>683VFYPDGvw#C3F8n&-mKwb?AW&*0~~=^0WSE^aAXyK33%8dD((ibXb0a` zIQc^0a}|G7m{M-v{Nl-SwiCNIr7VxpP*O9@jRzZyx_6cn3_Siy!E@LNsKc28WIp@8 ziwxLq)&cxf5{JoHpR03R=P|(@yq*uad_G&D{7?DbyNjzQ4QqHCpS(^x)c=T`c{&}x zNj&G|Gr-PV?@8qfsC(v0<+3SD{1Gyb>B7FL8^P@3$fw6ehOotgi1&+zH!<8g9H7W$ z-PAHXPx{0k+?@upkRHD9(u($Z%=p5R+Exwh6wT5r?}#xRBv4OdYE+cq+h8)y4~S)P z0-uJSPfUhiA$~?LQ5t|;xe;46>-n*V{Epc0>*%pat}4CC=huCCzl5Lc%=r)RS$(qs zqwk`ehV2+1{S2ddG3nJ!lVG6>xdTG*{j?Xu-Cj2d^in#jXfW_Ud_!e++>&4cM6j*W zH7yYjO_g&j`9FAiY(}#W*Kg}4^~se?&JWyD&u%AEN4oEfza8Dl_PYGRz8xow{C-J! znPGL8VqYrxj(c4D5&dhHM~e40IR90dKR-fP;lsy|y|&LdIP8)py%F2gPW0fIO(_$d zh8+#U9TYJZoAxi>Vtm3b^vpaiGV5O^ zov4^KV~R%xs%B}Cck|7T%f!`vIxbc?feCDjPIX>wfz|R^BUim z^V=$on_HLR*R@^Y*2apIZz4xZI{8W?VBm0kufW!x9ekwGi;Gq3ppDGnV?s7ieLsPV zt}Q-wW4ETEdjNsg6D+#(L{*zRaps&!NQ@~wfi`*b zcihYhYc#;eA>)|E<57q3j**bbq5TMrmz{u&?$({L`de1(`p!EeFY>5Uo`buzHvw|* zoDGsQgw4r6n`j+ob^x*aipTCYYkI1VV>k~mJ|mZF0A*Z5h9{me43}&G{oLbNjQiBY z3RiE6_2whXsnB2K5vhU>kk?0=7F2`LM34GLsHq8nMrDV(dA%R?8&nj>Pv`k`&IY~^ zpy7jXeGUXz-1qOXvU&wLqq_5A{DAN*{bm9f-_H<1$t?5!F7E1aPFq7eaZN{o*XwjW^=qU?1R|LR%Y$j^fE{II`L|3Vgc`$&Z(=K zH)FUbT9OPSB=aIW+s9c;tJFl}5%EF}@iOnje z&d*~89w#lkXnn)-ocCK-SCu2&v5%W=0KLn4iOT(w%jX75qy@W$DcbmC8Z|2|W8%|1 zf!-@&Xi9&vH%2NUdvpY&akAC2i2zQ5LuPW`La9ndp|r7?m14-!kdpgu1n~OmS%18d zMz($VOY*WgtAZ)H6>Tf>QbrBY!*ZBovDQkNlmIx_m-TS|Do6a3(Q!uenIDlT~U% zeHPzNOtv4?md;6N!C6T;Sg@)*Q;`;dd_^1Ig&dgi!x&^zlS2t>FvRy~wY7;)iME{> z^TJGL-4dAh>?TzvCtv0g29c&piU_*%$#DgoewLQ}>cP-X*HshTH@bOc@As(Pa*(Q? z8Ryc-3o$fcU^$3{gk0E)sqd{A!*M}b@7KG{kNNavV6G{6N1xq4L|o4j2O5}9*V}LVnF3j|2|+|tGKFH zB!3SwW@_dl9(EEqSD(95wxMf?i>&3L;S4UXRDIlOiG$N)&%%ur6 zJwf7F^Z#)S6MYx!_w?zg>-A-YE{6AJF1Uz%yd?^@**S!yo0$^Vdga$i{5%ebG5oAb zwGF1S>6>#;ssTYShZuk~U>da1Z^@@A&n~3%MFnZ7@>A|pyf{A7wJAb|Tqc{WLTF#1 zfkt54L3zc*NzeomrHQlO?Vv5zOsirVvHssn+IZR$x~t> z9gD}U#yHQ76B^*~`AvMaz5i=8LD%(6pc~qLU+`O*lz}2){+>d~#C8BHf~4sXW$M1M z4i*|^{Vi3`5);Q?Wb>OSfzCyr7p~mJ6X1bcx9vfi>LWr0x#WA#Mp8uZoU|pK5u^$- z!_Sl0?Sqzj4OI}*OKA;Asj(k;7H{5_*v9HaZO-3_=Z$G!qGyDk< zFuAgPda4_ec_dJKSl(sCaMPIWlY(*AtKD=@_!&dJ}9^oSY50fI{e$WMgsZ<{Q8$S&p8^`g`?`lf8z zhXJut$qOSd&tYj~+6E-enWXna@!>8X9nQ{+x>bR6q5UgYBS-bVQsn<(>Z+rnY|}m+ zQiF7Z2q@j%t+Yr;ry$+kHGrfb-QC^Y-Q7rc$IyI_-|oA+|1t;8nHlcuzJB@KPm!jV zW+sZO=Mc=lE62f%bjM5Tr?LUeKV@lOK9t zT@_vqbx9eE^|Bt!w&#adT$f-znlEi(6z8eG_D<>HXOYW(?4h6JDzp6EbSqM|7ffk1 z75p4+7Na9;^8p8J?5KC|{Z$N>^j$amEeaLprtG4HAS9Q`^V6CaL}1GnLgF3Y?Vy^n zw^`C+xY~Ki0w%+(p0eM;i8nEUo{o`_)oUVgsiYUix3ZgEGO;ylMM2n6rH$+;UdohHG#`*QPw(ysZzPl> zh$)E>&g1Z*(=EZVKv!5iy7-|!yq?Z_(ncH{;;4tHULOo`tdYIco*(+CQfo4jXG8s`CU&$oDn-0S`k}2RVUC0 zjc&LsFUT7VOHVeMhxlA!iYNH#vU>b%Pw+pl@w6SH0aD5Pyi9y~ldJtc+&LvC)upxW z>+nZ4<870j1B8^@OrbD=K5laQl$M*Shs6uPyW$5DSaj*ii@;3o?J`u2|S)s&OZTg(~Is&HnsNkLS%c z)3-(=OW(ED#?{DtlsOOim$|||NR4&6S;^Ki`FEnrl;o-4bg_p@i#|XllN?S!K6m*i zm-nwz3gZi{k?%XpR5E0wMR=1`;TEZ;iBc$(lLhSyPpB^^C#Rzr{8&k!T*&0ww(#o0G><0z)Fu=xL+Q+JTCJ7_rBu$O9FB;!}h zKV1Mj4FX7XUn*9d07A#TUb@cTxG|FNlzUMhOtP)k{_vaF<&Uo<_eJZO=Xj1iK!Y>; zFIBh%+7GV$MTL7Q_7Roe11t91(*!-6FeeP5oB-AmIbQ6m_rpQHvP1D#Jy#6Fx29r# zA>S$)eN}DI$$JV*OBu#Ss~gSHm#3r=9^{$JVl6eBK0f}>e)wn!u)5u{<6i?!?90Sx65W1tD^-6ib(dR}NTox}>+uG8r zZr+!#sln-VV&$NbX4Nv52ykUqO7mNWe685%;Ucys-=nf-dB(==w^*Y9Z_LQ7m=fU+ z?}cw=4p3ypb-DI(OZuN{TE66x1>FXr6TEA!-iL^_Q#_DQI5)^XPL4n{A4BanU>GJ4 zC5ZQ4D-Ja$O^}>{E7<)(m5GDmfORj`{)j_JhMmcmjsb2}r~?BF>s_&m@L4)EE~u_T z$0t_^l*QHdT2}G`dH%Az^uG1smP2)dB8h9$UQR`vp|QSLk2G$-Q>u35tqO&`c<-7j z>RT*xSPGAKRaT>BKMs{>ZlpZr+^pKOgH(K@b^PtW0Wu-Si8)>iqs-bv@%2fgWDxq9 zWmZH27z)x60KavMwA)# zH%XU??W}N=Qzq6%Lcbx z0mOOm%D0?$zg65w&15UhrF&d{8k{9Vp~ygVk41wccR_qEBkoxa#IDv93~VvsiS^y- z`kzt+qtAfr08*>#l5ANwiDOf25N}Q*P!M4)?^K26^E;jy;T)i>a)0;Gq`8Pj@E(3} z1)w7k=)Tw`M2!M?)Qi3|z_`XdTqCCFeKV^@6MmI1^jw&@jhx9yuaU_RfZPlGVpfO2 zYH@j6l8pfUH+_y8;bJxU0lM;*FS`e3B_O8mA_Fytc^&ssEr4jHHcz-tIsL2*T3dJ7 z3eS{Q%mX|o<;QK0r+H-W*!7-zju)$U@{+As=Y~3oEv03v)*a`y<-U2HnCo7p#eB7; z;)|R`|I4wneL$5-D4P}0f&c~zX37hc01+ut0!=0EjkZ*eND$ak#;{!u(M)K@_Z%Q5 z*1{+|nUqc1pdZpYHH-z@p{<%qd`P`O_j+$RhuHAYPwvjVAkBT3IpG*vDtCR8j!H08 z*Mg2pT_d>v{~ZeBkt-HBrAxqH@T(H}ZOCz}-$^td1F#^fiMJnA+$vmewG6wa?ucqx zZRZ5||3+GUxR60%7otWf8Ph|?+MmKltje*--fk-VO3P5zd4%-@HFf#eCiTfal6$>e zr6-#p%tMp~_KB?9eyEoHlt@TkchT{FeOyl-ASVneAdV5XJKZ!6aPjBPA#_(Tr92eJ z-bbtcNOR_%8530vIIjC;nt7zT{S?0JmC+)I@S|eqZ!zZ~8lp(^srn2w(p6r5{w)+s zbDfd!HBHV{gA!r+2fsRrFyH)_Ro;`UIT(R3YrPR-bh=ZKc^^T3Q{;*KV6U7dQh~77 z(-@j$8|JxUepmFuJx^fLJMTvGW3fSFSIE8fD~I<7v@L`p7LOdFN&}P)p0H~3 zB@R3#m8b4dci9i+PRlp%$9hseSswFKzuDh-`bL+V+b>Sg{0jf&+wyphCTvf)Nt;NM zp?6zyU2>Dt7 z);$J(>r*X)@=a}aK?||>%(EA6a*C^6bE0y_&l zWQxjX>@yO9#Ut$eNsbJGfgg;PVq+54pqKH5?1Bl}2@%r15{7(*TjFsWJh$2hXwRyW zSbvx1CSrPu!&E z!Q2A-f5I&V^$S8H05^wWC{D8@1qmINu9}}Nhj+YRA>N~ZlJ^SvDpbLo0|29R;@WM8 zjbN-GcyC0xa4QdY+|huJutW|6R_QF;CpWlX9QXQOg)sbl@Mgabzvj(Z+r3(FKd(}53WPEgp+k)G(kikFOaw{3480DRTjW$1#Yqq zsS!|216B))Jks`A)gu3}S>nkT{_6=bWkE({PmCWmToXc2`b$Bdc1|QNOCcUrS zj?890Dzq06_yeDAak^`+CdS!T`^9_%_LW={UmY@I9Nj-AJ6Mr}mxyQ4m=BXB0aS97 z36aQ+6hlE7q_4D!if#nA&=W1F=Uv{`%Z$aN5&uSXy3)Dv~rOi^WN^OFz9Hl;I_-=k0a)`1%W+ z_o`C2Y#BRqUBF7b5qaISU>d4&PL|x}Gb4IP#svN#Xg5dODv!i`pt_{NnXo;PGbjGN zrA|0v?SOsJd%3*8+qi{a(V*A%Z}5WpSvYbsSLm3mo%^H*?q0Aighryo$E#~@s}%#4 z_g?SES`+ERQ=0e7J>XL!XEKv|+K}p@kL!SGrOBxG?XHvOg_#CSA}|l-#EwQ_3|Y|` z7i*8Pt4VwNy^(0rrT|)6U}5+VMxcob_aPmgEuS9r)wF8Nonwe$7u>oD$!H4D#E_<` z7ulE$?hO!ikXGjc7-S9PYG%8dz#WVcRA&hme7#2 zrchZx34!n!Ol%ii*=Ily5K_;wxDA+gD>_GR0iGMZb}blP(EJ46SO0<~nd;ztwSwfm z`q10{xlY=E)L38V1uWqOsHWcciF@hZYe*5eOga|y(pe`yd*>Pc=&a*@SS!ch-N(lO zYMS6~8qA-0JXzLd7krneUnm_bzAH@Ci;wH9LB!a~56*!|@QB$+*ScB^Ix{{gkC zIc`cx2)qush^P@sUG%C(v}J4yXtGBXh3e7gs93m9o%2)dLjNpQ zqQ~Gc+ZrrX=zkZ5Tf$an=xDMZ8A~|1XSUK(-Tk(p+Wt!p7CZWL)jy%4h;NJ0)=RPja(*v`1!>I(~ZxYRJJK52O>qA z^}Ln-V&tdaTMn4>g(!+oMT*=qh&WBj49(q-E5SVQbJ*X4{5trfAm z7^7gC@adw$n#doj4k7;&Pm?jC&V1|jTV|Ltyjpe%38m;?K_F2>sA=L3`*k`21O-AS?6@P65+gMB?1qv(dFg{O3R? z`NAb>Z*n9^D0#*JpIf5C5mld=*A;^6W7*G~wzDq;?W-WU0?o^+8v#hA6(1JR>dM2|INgB0}$hI z*SCbZZ|(EK44Of6&Yy*?x4Jmf7`+e4FBj~~Tjd5~VcY`jri>Z=)K)&4ETj-G)Zf8OU#Jh0-5#O$i{y)UM`H%BjG}5xpk}2(Am+GXA^j2g z_YMs0Q{;?pC_n5PiIQ$T)}A&JtzT6NNXhTDs;c@MIpq)!BW=*o(7q?1>4MCK-(U1# zDL6FX#QpH^KuD#pGeq@eHjRw<)b9R;=sdnyW!OkG6p#Tm$#>7|@$_3^#@ijI^W^xao(u@Qsz-l>w+Sr4sUX_gYc@S`YpiB z)%@Z?#WnDQDq+u#uqL67HMrb;eHwpNXPQQL*^ZVPAvZ7DNoFwxqP1W~{eFM|IdBMG z(+1b=|D{)i9wsA4wlz}xLHc*+8#)zyrwwBAd?)N@cj>QB`NW>rlWUc$oosd^Ed5BT zXhHrN_@a*v#MB*K4+3#);BI@rHq7Anz!!he6XHa+^xfvH$i_Vj{gm4ATTL#DB&_)n zKtla{f4W6cXThK@)Po|XBUwOR`t&W=_O1VcY4XNu%Ryf92oCl{K6KfP|9e-3x4+Wf zr#zxkYh@$uYN4;uc(?FV|GQY`3x#3<@A|S?%MXQABsB0X_O+ZoT`0u}fXPuBFNf$V z&4~{u^V8hSo(ep;OwaTJ>8h8UBC4RXrJZ)TW#368x{awJ9*(%^W*&ZC6#O~5bSu(q zD`uEID0ui_3VWAYx_>Jj^ahTcmR|R!%bpd|RBUwQ+5R49R)uyzRraoYZUP!rbvZm??L&ip zFNvtVz2vy4I80|_P_HYj()a=H+{6a_d|n)jkm?bxq4yJ8;ktD*#8y847Qg#Mu43Wb9Ay}}8t zXyk8!TTI--DgJ{qIU>#NLGPA#G4fBPsOz8j7*tl)3LVTX5!*3(OE-o|!Ol;HTpb`bS8aZoay}eu>8G&iyIbt-DNDSiks(EX zg`N4wV+?0P*HOX_L`4X@Lci1J(0?A_8`@zpOr2uC6RUH9HAzWJ+@+|&q~^)e>j+-Eom7uAto?gjaB6U=SA zVAo^E)4zfwy3N*-msD45`$=H^UtS>X@noVtrMNxHJhFm;y{y5-rQJ~404OX>@5F$y zK<)7cR+AIG@D-gcD~gO)VTq;~m6DUbqo7ZrR|EgR4eVtR@{4^b3Scw z%UBA}v^pe+1Hufx9nKYcOyp^G11bUz_~}cIFrc4p`^l_ZNKrr&%M}SNHl2ZZN!@(4 zC-5wM#D{Ygf^D3FJey0{@8D%Y^`fbUZI?KWXKjzN{Dod374{NZ74|6__5QiC!R2RD zyzaGi%Y<85s6ANM=yzNFw1}q4TiRWELWeK-SD#%ye=+Zpy!jzxc#IlHGg8nsDSS=^tjOh`rs$y)-OYdT{Q&1Mv`Y9CyBK;yY9OGvKGYtgF|)piZrkwlE>?L>5W2Bz5cUiaH*aOMlnjqg2;m7 z-K}hhW=6aA^7vm$OsFWpkUyDO&&LbK<1DIdtRWBu=--=&46u%0_g!3Rv>$DT`u@VK zf2KU-LF1~{!u}pP<_t0@1MB>c1lEIuT{Pw#_9mRg7Z=?ShuHvoSI@LxJMi$kB~25S zX?GbNqBnk}UB4BpTy=X{0Plv^<4OKh)0^osPk;mV@4dfpQxux5JOOUF&Uywr?T^bQ znB()6y3a*}M5?7?kDZQ#hwfI~&DLGZ{!u5>3PKEEQl|tSz8~}2JAlOw8TEjvzC(CU zd6?qI-McvDI%A`%0?S$Ecq;+`j5s`a9zW}GZ`?M(Kjc#2?#EQsV>T|oWn|(?6nSi< zRcQW|vJT_PyF>88-t(m;{&rl1&hO=;q3>EcCYiUIFou|wck{E8y@X;TwTv#~!&jTF zUziiwoz|=+so|4#s^8B0*N2kg^9NPkO{I|G_G~x!OLEl;qKI&}muBpyqj4Bv=up&Sh`=k7dR zPNC_yyxGrRFIPn|5&HN@#`bB;?58v1)=QFAE6?_YH0{*)x8;bEtmSc6`oBp@@{$DX zm)@&h5rzLeUZ#lUih+H1x#E8&{k-6B)W5~VmE{;?)f2l7yZfGR40eItOKy)rL5I$I z#9Q^2$7pY1lpwUxuboJ7}LHh2n%`9 zx!%;yqrMv{@Q|eAuj41L=*)mA*=WgOW5?jzl*YPJQPZJNfB7)O^8-mvjvsX_o6V}c zwOucZ@1cOwunU(aqT>;+Lh2)@l|?MjwMo%zw&VLB=RElM1Q>MG4(e*j%~i_bR3b-^fOL)j&bpZ+auYK}jjk|; zE!^RL<*fm|622n%oCtQi!o#_=f z^q>6|NW9`g*C5tU4GtHy!_RI^s-j$;$-0BO!MVL`jGSi5*|7zFO zU6Go2Xm1ePy`Q$ozQgCm>w0|yJ~%F{V;3BkY`M_ETpMqI5FRa3D(KJFP8uSBenuo4 z*dB~w1H^Q%U^m9okipS8ec3;Bv`|v1n3mP#;7=0;KVL5*y=5DmdV(=8dzri@OK!2> z=ONPc{QOh|I@Sb-)PmH6`2`he=9|Zm_L*8|TuN25c|cY-*ZQD+ zE4AfGu<$JS&|qBX;Q9`~N(Ngoy;(FchOLSIvpbS#NKF|4chjPTFhEIdsE5PK9X6h^ ziV$5xmjPk4bM`n{2d2pCxkMD8jVq8d-f9grZ>RNp?LXp9#Pv19X5Q0V#yHk7Xb)KX zj27z(lU<|v>?2vqwPb%l2F)da|<(<{}UYCIFcQ+;gS%LG0`~hB%euccg zqywaBb6O`X63#?KKc96tsh$DvS|T&p1b>}-euK~DekVQ|(*591*+yg9E&2xoY)z*+ z>3_ureFTVeV?SY44cebitdlG5;3r`N>;}L`=ayXo4;45PvTfcE)9P(o&mUampYCrr zfu7ny8M6N!-&tc|PD$YK4Du}DtDhimMa`>FwD2i)?l-#Nb`+eUJo1L;2|gs{V?KYafDIY{&w_r)u@M;@^<=gV zD%h>iGpK9I5~j~P7po7=8ZwFA$!4k6E=JPWF8@XPVAD}mR_A%X{e=oB9x&~9@)B;v zJ^8V6ByPDSN|*S9$TqtUb25(Bi3oEmC*jfEN7qRV^6^-Et3+%wqy2h~-K5NAlY~!in-=K^|_|9zS@u zVvdj3kACd2u|A~a?@Yg%?`?#gd5IN$U1-VGaPH2BduOLIMwICRCu;wUN2e1!b<<+j z!olaJ<4rCf$%k}iYf;j$b;FLA*s+_dl>tB1V(V|=J}eaGv!-4(AE_pZ{?0+pS-iAS z=<28SfDgmmP!3bX^l{G=((nbSD0vU_6MNTH@S9!7^_)*s+qC>#STNUX((iiiCQ7Ab z`wU1{s4aO}$iFCkEN^F)QT1Gtx^3SkMN=!R)Uy+QIN&6MThX0fnOmb3YS>BsGTkoW zwCJ9dht={MXOqn}*mI$S#h~Y@(xG24nDEn6B=ivcLEj-1Z7P>-g6AmgrD`VBn(Mvc zVoi~T)zgbm4(*rRjZokUcwx!5xIB%?ZOUshv^~1dVSKR_!KceeZ@9Tzc>CM!6jVCU z@-$S8tn_qKr>SCe!7;7mys#maVE+;R8kuEZgkRgYaN3@Y82VW)LXh^>SA>{gyML`J zw^2gJ{h7n?gmRHgh$!tp_=-7n#L&Uy`I;v8qo`JKVpXRnpIIFKp|b|&q1f}1{zrI0EXGemwT009ZIC1gz&;90UPQ9 zJ}#mjJ=N8ToX~3#X&+Ol%z5|}NKjtJUDQCH#+=&>>F*W|bBMCewHmu;E)n2p=R}S- z>)(d5rm-4-_M0Gvy{TVwD~{Je0(%v~?v`;w+h$#T6miM&I#|J)|JS6?S4d|BU8^Hr zjAJSA>(gUtw7Z`+_6K7hv+y!dX#Kakh1~ZGIS?>BwDN@wC73%}eS)h+WXXV6>ai$= zBs=N;x_y5*%S;MuTT!apd|~(sfd3FoUPBwU-~M_eUCJ}P$56xwTg(Y4GRLOt8QQ4O zjqQSjxXzp~Zb-T@r6X`k%q2FOEak}v!8I{*!Mz-&cnh84S}4%0;+F;OK|Jb>eHnlz zk=;rT7^=1;|8`w%`T()6c`V}Yw*qhoHWeR&ofK#heSK3GLiynYr`x2Np$TvsRtMjh zcIPr=IB)t3fA5;pG@Kbjia%?)lHWVtT?H}-m~?5D!8d%%ag5ts9bYP7++<5CaQ9Cd zwJiVMP054rgE0)Q9q1>-N+MOr|D2bKx(kiG6OQo)E7LdToX;KNdZ4pxTRp1KH9LzD^88<7 zAefg-{JcQ9L%S%(#@lPrxbhfW^GIGGkxF1GR)RnGo0!_FT)pxg%{Ni^-nx^w^vmFy z`4c$`>DrjzrMg|5+Yd%t?Td8+Hm?@x5@BquMsRn9J?oLh2r2C;%%7AM&*^_*nt~HkE?}eKWYB_4>iw@_i{<2mq%_cBVuZvqlRq$cjPF^4k^m1O_3c}?G>?QDS zvgD0SR_~!VF2>dzrsXaLP87P$qMZDKX)>fT-g(Y{mK4T7D5B?@+pDdY)=@5o61!a% z3$o;xV^0g0)~UT=?kY>NrbO-Pm*7}-6Qt(l>au=z$nsdG*bWL_Mw;iysSGP4qldRF z$v?_R*~1%6qa03imAG}eattYwe)pv?%Ss${9+klU;GO8_|3~XAUkE~4pM3lfKFO+& zN1vDv>2SqTJ6^jp=nFWN77!;u!crjZ`msx%CuJA@LAQR_&7Mr41EMQ&Ox9X0z1C!1 zM(lldG+(`8=TTP0KJZ=RvSUA+8= z<3g`3_X~(GN*pa>Q`_#GZ{e(iw`GY|ZmYDt` zU^iY`cA-Yv--r=O0};azI9P~@W3#LKG5;5mH&XspU~UMJLRlJCHqM-cTRV#r?+!UQ zxn3TA-t^Ck7Q)vR&$r9X`Hc$yWH5wbBq;yRN+XgbKWQalPod=7KL)kGxIPDtg8G+LLc3UB zme*fY8G&jYR!rKSdeFQf6fX%FdZv1ecX$S@CyR?jd;_Cob-geMupjRMty9`zQQl^fm*e(3LVS4yyfz$t?}orKB!Ay$t>FZg%h3S{(g_7Yix-&H{ReF^n; zJeg}er5iF}Ntvwx7c;`LNcPSPX`AH$eoo?V&4)ET=)~Ov@7%J72Oo+Xh;PWIxaeAX zBT`Q-ydbMzc3=5=L3^-GwgpizwWtkXt+^(D7ssZ~=;w(gq2|hDg7u?U$LQrlrAxWf zgh9A-_d|vm;3ICEbTa1IMw29tQfsKWDzz0N(`D$<+JB+Vgbd2z{!fV!Hn6-p#im*y z>a&$#JF9`4bQi=&WE1rG5o1sk5&d0A2unI#U=PLqSW|-$Qm&>l_Wn!}^s{ZSdvID} z^hBRj2iqDohZ6O1nmbnIstRM)ep5M-GRq__8Jii*d(FOaJW@RCVGI4VRY4kAw+s|E zStt-GwQ1*~J6hF@vMet1;(Ln9J4J^#?fBXa!kn7>fR+ zaBdNy%Nz1IE-hrb^WB!y{yH~7M$T7*wCc{J!^9R&PfJ}XpfgyZrFDAM^j6V`0D=B1`BhuR0dhs}LB6R(>?bh1*vos~M| zP0cnB9LBw`qu=a9!jShP?}sMWzGUmv5bQ7%k@zXMCT0cFQ!=%#Q2d+fw-V2&hH;y* zOq)lKAEZ6(CD-U$w-DHy!=aZ~R=Ai|n&REl@<)H8R?-S!GpCA@y;-ou_UT;6@Xc;p zr0}nYYWd1JQosI7x8zjh_9Vmp88RvQbg?FD3(T_VsiA z+eu#(8HYK!B=*5z%HzuBKu3q*qtYvs{Zj8L284bVW=j(K!tAZlCLr+Q5cRx-B(*C`$fEw`%4-e|2FlmO+93e}(t|)#*nClP6FBzB<%M{fY_`8ODDIkMbbkTtrVN$8S$A|9$qQ8h% zOv9jF(Vy%l3wO z(WuA2u6+G6_me`}m%4XWNQR|U{eV>6UlImCNlRU&q0dkzu}mz>oQN~`$b3J|i)42a zpeM_Cs));(Vf~XcGBx-dK(%V*vFLUK$)%5mFdaZj%*xLf`IPJX2!6Gw@I>wXWi_h# z*BqGPXRkeLnJxaF7tnLJ$OoH#66XZZry&!~r8T&i9EvD;$YSk04p74Do==%EUZ;Sx z9(YvVzGj3Ib8~T;ZSx+t=HxTT3~KA%SncHM zb5uWpiE*BIg)t9u=_`$9yjEHGy*ZIre-_zFYT${asMv>OzAoY6e!Pt=J0}E)g(p;N zxL8o+U0^XG#5CLaOeTaA4Z1#2AtdU(?nYVigpN@27f$9b-&sHx57X}cqq+VNx5(9g zeTMu1doBlV7Vo{O=)!(l31F ztv~Tq@n&9}Y>0YLtg^o^pxfE}ChiH+5VcS>LUE&W~mp>08E9<9qu~F|_!uNdhk~yoVudC03M^L5>vg`6rPWqotbW<>M?B+zYYam6ff9D`vsRN~t);&gvF7QI{?zZ^ zDBA33%fH@_tGI3o0vC20GrnO3<1v9OcclMav)OZNX&l-EmF{%Nx(JLL))?f;@P@7V zEw8GMn2?&^Rbc&I*Hn@vQH2rQb>A0$(py!eeXfC5%l2#w$F53Nn;u1u22w0DDcb9n z&}B^7*W%-EuZ10aMKG4fTS8-Q5s%35&&{KsklIhyxmSPxrp-wAoNqTyho}VW z2M*usdJ-Tk;%QX-Du1sP`#pL zp#w5kJmp;T0yop{l!9`>L6P6=fuuo?Y0o|=tJvqoZ+>T+D__P~E;UWnx9LTAKP|%F zhVUJ{?*@x`DqFfNpmK22tA{d{im7!$f2*YJdgYvpRHR?O}&9rQn znb$FXd#BD>=Dfrv%p<%#?og?-?C*N3Bt`+1J6#I13tbZWNxY%NJyGj8bLi(DWKE)C zl!1OW<@}+eC0i>J+60hZhW#T|t+4k#0R5HQpL$i04G4$?^?#bkY9BjyB`)};)$dJQ z)SD#0yJ3Z(5r7oHCTTDaP@k{g{d@AZV158tmzytJyiX@wvpml`ffW>njwaQ7Mh_GF0_JRZ ze+%z@uDyc0K;2@j5-YIo-ll`ei0MbOr*W_Xm_xeSWj*P!|J!sJC47No#2d9+d+Tw+ zx80E<(@l1xjPy>w6#s_mOrv^hwNqUsi1~R^icBsc%8YSB7gTG|;dZ*xm`1*uCR5i7 z^#I6dCWmyW!-BLC>`su+x8pxW^Iv?t{2Xg_n&50ul;i)NSoKmc>J z&{ar~tZO83M)!K_8$d5)SX8#SA{IMY>6wtl*y*pLqeJSm);y5+D``nKB?&t81L=cB zfCm_w1Wl@_O8g>|-q9daKJO zK(}0h@v|e$!Y}k4qnbBr!+u{p|GhvDkfm+Og=!0+Qzb=rpd$>^W9=Q<@*AIjn50pGJ2@#6ZLT zYA^lX68^wfJ+lC|?RX_NX z{k|ARov`3MQ6G0kWSzV8<@)0qq>Fr!&yf`EG(nN^p$Q;iCYQxVT$h*EcGrtvW+*1? z)e%K8&G|uplo9Me&un?Y!n!l0$YN;xB!sujhM2ji$4wt{Uc0w18IBOP`N|;E zn}n0M>~iwe%y6jCVjUo6I7v8P{qXy`m`Z-|FA7UBt1vlDL&059;>$q262mI)(!`hV zVamn}Og=^Y-ahW^QGe}+r7)=x;6%J@_bn9SOrZ<9moj8Fsfx!3CUNCnZNp)D62 zF)s2C!+yCq$1X=%9j!fyuY^f_6GK8nG~?M1+3+bC6Pm?%G$Xd?wQ2r!T75A}C{j>z z2oy+-qbJ%$y@p$RP_7Nh`S5V9vq-((lzX3aGt)f$BIftbTCg3qb+PB*>OK&;qK6Ja zVcWN(J!Tr3lBzIe%-;!6P7dnsjz`I_a>UwUQqlSFCIj`6ktrbZ{LoQeH&9I9^(}Kj zI-x?*Xkl{P0YI1~U1chflatbkr-Mah8){2z^{|dvpg1oXT z=z^6jsm_!kKL5OQQVZSHOZElpp~=G;3U92XMdT89yoX``zCj|}4QwXsCc1>n`CQuG zw6^Nii?M`bvMa5TP^d#yy58ZtnNwRak_X zL3$pIpLm}NszEs@gMvQ}WuiX~fP03W_O(2N1j?ScorTjV7StqBY)gr{ z&zmO)>7kA<+}SJ|jgfrEb(ggxUf=UL|I545Kx@4t+*bf9sx0KAhRBljM?P(iDs2a4 zgw+)SRkZJMYG%+4IJPb3x^-`g)Lb{&mX65VcIO^t3~kHsV4fFE(o-=Fc}$0AFFyLm zwOD&>5m{L;(lr1z!>xFI&tW$#VInsZCH1D~U{{!=iV)Z?0kD_QRpK}|d#_w(VN8Bi5mkO}PJ)vtQ^UM48Kj7u^#j74{%zb5z zn~U*GqRWWm>m$=m1p;=*%Vbyr*;-HBT}>m3^(HHJhBizKg=r&pl>Z;Lz|7SX2jR~p zDD=C07&aL34}thC`2^TbMT#r4AXYUlnqZ^Z^H>Sfv8}ZA;z!zU173r~RRnST-Q1DD zg=u|{L44Zyc|RWaxU>c`dM=|1*Lh+UtA8%dnEDogI3E~-HWPAmV zWaEfe(?n%fp>F2!Z5x>SQp|CP5tBmyd4qk0z=|4*wO@CtCpmgl(S{TEZ7nnCO7|jE ztw8yvn$O7?eT-qUiEOy#5xEM{weiF6FWs3@^>0Lk0;SB_f7`Ige_$f*A!eacPO00? zKJk!ZSu>*QvyAP?09-fz!n&%~0Y@@||9E)Hn|8(451 z4%(x$9sYB=xDx3}3J1@Kec)H!9_!MWey^pULmY46+`Q8Ra>T#T+t;Dn^dKpT+1 zyzaMq?Vq;UT04(u3Q|>KLHy9EIgHMpGTsRKbp{X%;HR%_%fAj3T0v5G8@nSt#AyT# zw#cE?hcNh{MDO-O>RckZph8!=e&e%)%Jzm*o%Hv@ik(8I9PMS@cC! zA2f{$=1pfP<=Ot3v42PH$a|O#4^URqFOn8noGpm@>C8f_gdzCZz%(;8V4RU?%=n#N)xO1}{u(jKw!-bAoj^E|T(oSW73oY;zK?KWpa z?1tVj@L-WvWlY~R$Ds2%?(n^$;Pp?wCK_5r!qbLR-Vq~`!2TD|4#pgMW z?ixM;uXpuD^SA5_4F9{VLO*L8k=aaK3EnCs$Yk6+#j`Tr=IJR^lDTlpj;^5@(yEZo zD0uiI{j8cK-VlgJLPSeA)8n2QX^@8`iJn}nc#X8@L|>p$b3nLdtzH-9&`tX!kHjsQ z{0n|u)bOZIIXssB3_DW!$!GW(eYH4+7_|4Dqr!y0?aZI-n8zhaZR$IT!OqZcou4iZ z=rFg$5ytZUEdn}ZNlSNk3=K*PO36?PA{{y)F-jvH(%m)G5CcPeH+%1Azwi6~;t$8c z&CGSLYprvg!Fev&>oq2X;%2dd{KW`*6x!LZ(ZvoU^G$wB5@0-YRQ4 zooL&(cDn?zxO;H9k+Pt8du_zQcgz$c!emqMs2!qekBUxh991H$4ECb;31SKiej|!; zszs&vQPsNHqZxnSwmDh(-#zWLjiliAhq%`SCq?rSnVy=h4?^TI4xq4b#+}hU15W{S7 zE%6M!XOK6%myOrsnT>P?EhBU%pX%AZJ@Wc0*D#add=n#l!s{5HnA;=z6PG8rym@mo zzp+#b-kU5%RIT*&GMxnanZVKfHZ}5egG5X1@DnBr>KglZZJZe4P~MQajFfo(d|*!7 zx;3Qvlyk|GaA}Y4;=T3KejmcRD29G*?ZQ3krZ^9`?8v&CP%y`_g-KBP>8{WbCXZ!< z3u=gY?l+;hoK`qagbd#z;gUQuRqpNw6tYFJ70GyJ-dxvBA{ZaKzmoT;EnQ3Mw;3zl z%l#g9ZI)^-G=-3r7b?QOdzn|z(tkId_cdWcwSWOl8tVcGHd^Ts2EZRagOOtmF8x0; zwyKTOkS-yS#*V>;{^~*E;$l!5&V)4*JkNE@$x%>n)b~qai}C%E4^?cu84m{ z2!$CIYQ|_qwWm;EA8`brkY`XLp9(>S=jNQCcu~{ivQ6Y#iodBoM1aV-ohJVcnl!G1 zX;f7#j!dUpRZcN|l>N(ghG@*7O%9^CSLE@ihH^qMvg0=Y&js(@39q@xjoY4a+(5D& z0r``^1s@3Dz8vT}&s&0?;4{@uj!HO^_|w?FiUYczD4<^-b-1@xmsGTm6B*Q|0S}GJ z{AY;#*AGe(w4alMAw-erv#1uT_K?)QA@NteNLkSfwRJP~8s324xYsNCBIAwv?`p3A zNwH+M)~SelcDF0{y5*lr?}#o&M5MZ&?l z+UpboJgdM?!brA{ zO|spYIHg6EZ$S-d*$yE6OJV>2-mxV_l$%*8t%Mn@+^-u)q!~jBf3A%^ovz93yv4#I zpjzsB=bzIltOlEJF%Y)5Cd@$33gSx_r$Tt27oPfY5V#f9n)TOeZ+2#Fe=Sb-n!`45 zg|DUgReKY*JJDa6MTuP+4|`dV+p1*U3;4r8Jo;1DEoD7tXbgd;SO>Y2(4V5F$~rzW zUn&kVy<)H{uzq=3-rhlr%p?Wh3Y@v&pmaX5eEV_2CClAPwxBzudpcfBwQ`cfYOfKh_)=7;EJ(E#TRpP)KGitRlM zNm*(yl6a-C58fYyT>9_bh0WZYu4Xo|=X*w){5&JMQ;h8nXn=y=VfsyMk=oIN-Wm%- z6DXJl)(Dj8B7cg#XrU!eX$iJ_Mb+`Y=4whsG=d}K7eG&P8!!d zey z#(iXX*A#{*f`xWiWW5q%$L^5(rSnVqM{fR|5j{Woe_OU)BO0#B!Kaa2TEX}AiSb zZ`95&|9YK$0q_dE-luVm5?u@6+PQwFWND!4pTw#DR~i4 zvlP#kuJ*vGn?koevQ_^|Gxq%+gZBMB%xYG$4*CHjVtZhGtIO1XSbwoN(}M5nO z^NapM``+iicuKMMk82+y@cZJNepQi@%hJ{a)Tf5>-?0jKMCpH!uRn)@Hw72x=%7mn z2-7D|{p@*eA~7+p?%~G5nS4JvlUcyMaP8R_bvC>0x0jw{47F_6v2d5~w0w<<1aOf& z4d)=iQ7ng>T|@NN9xLiqI$XEh;OhCt@FoMH)3{)LI)?E(h1Es9^BcZlK&yTMn4<>$ zWUsZt-vcE}jWvgwZZ6UyEnO3Y(Pw8k&2PQHbBfRTY`*op$d4GU;Q&t;I)u}R8ucJ~ zjor0LC*7|gvcc`7E#vHug$9a^Z&Qk_ZXL(AYE{w%9NOsB8bun$s7s* z1Pkf_IJtzT)84M6l0DTy=&6J1aS?+O2|06L%-9JRSZCuW-SKm!NyFwGK*rbSZ~g&N z5-HKHa>Ww)8TPg-F0CmMU;UQDm~eVRR*W7q`|@HHqCS*r1-OkWtT<#_RdlvZu16>!Zr*TuIbUAaedlSb;}`=vb0xYi+Ns>=_2 z8<$Ei-%fE%wC(8a(XWk2+wc;1(9(ZVzbT1$Bc6e--M#-d&u`Xod@K3w$&mu<{@kWClLGNv)Q+XIy@T1FcnM$i`-{N}L>T_M>*NbV$d zKADDkTk4d<@-W%VIR1td5oSNKXz@2Twf#Yz4cj#L_d?MozZkL z1xQJ@3y5&lgE`0TB3rYNz{{A2ymfCAA#%f#fkcsl^Z`$rHdC1Vx8x#h7_> zs~1X86wQV*H>OaZmC5(*StiTscV=(G$~tc(oqCG+7XVsWSgqK2>N2jpS(H6g>ygMp zOE882{wbF9`mc(pokq2IrDHE0QZq;S5P3`)*-%)qM$B5lHw$+&Lui7Hf90pug>Lkmw$Je zALvTBN<^}4T!2%}v*p2UrJx|To(ouck59QK`D6+qD9FwLI~?{x|!_U zUv$H3g(M(`C?pLkgYNtubZz}1Od#DIXBwBZ|VY z%1&yA+uj;Y75t{cKcy|PrH>?69K2(QnW&1r#IXVQmU67&oC?5}f7zR%Nw5D+*OKT{ z?U7#$NK8aWtO4<>K{Jrc0ed@9@f8LszWIY_6PJ-J0)xcT(O+S`OmPA26(yI87j2?} z<=m9@7vT}u6$lSdL8eIy-@p_N@pkixr-_^%nlzNO;0rx|Tr-ONO-FegLsdT35Y9ab zEEy8Y))@9-C^##Rm#Yp9SJ2+0s>EqM|6c8TFNWQZsw2=gM3=rnv+H{IB-sS@%D{c* zMo}`dAZ6v8f1xo>EqpRy6I>|L=f-!3T*i{k`u_W;7x59kdw`-JXBS(h>8e;u#4$z? zQ<|j%YGP@c4_rd`CM&@STyQJKrzBglUUAW~B^`(sN|8<&vW(v3ON2kHhw5Ozxy-kB zj5)A9yd=-MP;Wcqlc__6u+MhB{88G{d2ajP>PvvuL5~PszD6vRo1Z-=e1PRMEWY(g zmoJD4alc>>P6!ceh z;ah&#g!JxPkVgVJFWHQe7O|ZI_73fX@T`OHqbPwmVcwG$b*mFk7%oR;K$N3WDM9|# zabaVwrp=>fzFpwv1^P<`=#~}ld$}TC^Il{gm_%MvQ4w+Xc7Kf-(fAnw-)q~vMa-n$Pda_;QTEc6ypF#U zYoVrNSU|jQ_^Ej#GVQUm-x;x`;DudNy9qw2c`srvzNF#xQ+|=eodi@~%dizwfKtN$cdjHsxF#?w!X#Au7QbIkTh8@#Nn}qA{-Ssrb&Wc!;ZZ zinftFuRk0R%Z}+BWnpZYLMpNdh!Eq5;%89yaQxG5Al9$*IN!6IifRT^lweJcQ65)% z9k4@4Tp)~czIkRrKuHTglIG4mP}q%YwK4;o&WW)v1V~x=M^~6GnEJo#r*NhbLbMgikC%+Or~xcV8oZ8d zLIK|U1R$y3XCJCVZ0!-xd&#DL7VA@KA`(e`_dAiqMFMMc=!8-uDdJ7y-}|e`E@|v ztUEQ!zh#Z?z_&U$4_sO?q7rX45DEw?E(ev}M{kOeM|}^YWhn&8r!be;>IMChY9qx6 zXUqv}lhGpRFNewTPlM7)UsH(-5e-osN39THD7pMSia!rhgSJxN7wqq1)BH(t4EqTI zx^3I^4XA=cM2IRh8lqB}H=EAj|L5k>2>W~u|T!=OwQ3U-ImDmbu+ z-yKNDssC$W5{QrZ3By^*Z%eMTft0zLv5Z8?hIku60)=7~w@>9MXYU?Sm@Y4M$PSbl zV-+R|+HZ&?luB)Iv{`f|g~iHfYw}_QZEiE%A$vl}PV-j=nT(3WR*Z|-KK?-K{@m}b z_33coXXvLt3T?*DzwiC%jN9~3AFW!u!PiMM;C~RG2x2A1Yi`=^mXsy} zZ(2OW69SE%ILq|n<{axbVdqICO+KTfz#?0#2cDFZ@-HdQ`9rSslv)OaweY@XsD|6B z6_`nA<@U7$1I$}vRx3!YZI5yit76stuu^gfXT0xEMNgCJCxdF=(f-j&&O~rFp|uR) z=_=V>lr@q9RlDvxSwmlMBWaVwniroR6eHFPl#|L5j1_yzQq8aWGAS5~zXX3z5x}k* zlHYe0MzF=*>7$26S$3J*I|e?n|GGBj7f4e6(eZ0Un+u%D*-ZEbk3|9=# zQ%2ZgfKy-HxFmvp_^pU={5eU#umHvtf!x?x0ULyY=u*`4F7#j%WWGL6S3a-B33%$a zl{3+oG;slvNfl7U@2zts7tkrWQ=^g~sG$His(Fp^Sb>t_!?v5(xSjvjp$)(9<$+uE zR-0Ty6)&kmvx9M_riV{EsRD)6`uB-|rY}d>kJ3UQsiUIRu%4TPKhU4b2!kddxs|n~ zmY<>eXr(KkXt9+zB5g*NwZSG_tedUs(xHr9F?Bd5_CQ**w-BwbBMH{h0QX)u zcKba>r>y;Uj&xfx?SuZl*3Uc`SKV?Z@)8>OCf%g@56rHPPsK-1~=MEUEx9D?`>B@ zBiKiaBVbhnh1abu&MXr(4kjz#rd8uHGp99gkk@t$c@(JxaBH;Cefmciof&J8D@n^N!Lb_^asAXpBv*FMl)FtKQpmdFjnajE3-sq0B%M%a?tiurbn?qjuO2$)aL?MFtr^O$w(T zFCn`{H{;idXhznrffUjSh7z`+VL)OFDbOLSCfUAt!i`LA?Z-pP0JbRS=9IYKCY97k z95mPEc;l>KjI(D{Q`V^wO&X2e^iI*Ld-PBV`SuROFIV#3>f^cs2=E)-C7DLJ|L zHLx7P#Wv#4!kEO8A~gnXm2(?Wh;4*_9(z0o@lTmEy{=4S-TyvV>zR0d`P6$yJ2`tB zJ;P(@cU*P<;N$GFZ9xIBu=&+rxoUN}clKJ3sqj{>?rvarQ-yMm5p5T(y#D3X?;cJg zExtQ_SYi)5E4P5Z-J^ZZz7GU?-R__NFfs{IOO3M`mM5BQf5xdM(cnvv>urL$C-J(c zc3g3fwmUF=p7M7@79jE9l?;fkICbR>?9&L)q~5(zrZ8Jy0O(x^$;g&x4Av>1e*Afe zGZ|U z%Q`=UUwbINHK$DUdv=fj*k+iS3w%hOlCUis=E%M#!_ab%TG`se(oeHI#q#hSJ!m>q@)^&K zls&NSx2=btuu605v5h!~YV?gYw8j7z&EF;w;-@2(7Y%`}I92cEK**1C8qY`$SriKn zv7a8v2gHSN+dOI*slM#`eo%FH{mq1Ra_-=VsRaM%I|2^uqLvKu280%2q*+`8z5~(7 zTc@^Z&EEcya9WCQVoJwzhaNPYZkcPh?XICC9ZIMcqOJ`F8y^tHp%SIF{z=lnivo%h z7}1X5(pBh1kA>;J-*i|z{JH?HZ1Zh0tF(MLDvL+I%g~SMtD=~yptNTy$5qh2$Hgt< zXn*^*E4Z;|0X&>Fcey-1|09^5hreL7jT5>&Ix!N%Ib(J@(m#X7)H)xQggQU7@JjfR zm!ZehjAFni_mnEk?|5u>DRsMQ@qjc?+3k;_O|(AY0dtL1AcH@+al-(*a~pUtOdz%h zhg}mvE!!M6GCdrsw>BSG#A?PI{svDs5z#6P2v1$VtYVXz;3kQDxqpzZc73G#ekJ7x z$+qEsJrtFlI%Mt706N-gu8Rk|R7A*V#r-78-VuqwI!=*{{>D!0+u)Dvx6j|Fn7CG* zlExkl)clOz=U8ls02&ItoeF~N5^g_j)~}9r*)jjrmYNu#Z38qqfX^cKDa!w;?C5k6 zP)hHrK&TSDqQ>?&$Hz~v3v?dhzg}4-!oU()Wz^1cOnzYf_r9A5W6@JA_QiY2bhY`? zKhefRBXq=0N(Ot)yC!(5ekQZjWYncEYT7yO)O%ubLt$=eB7 zS>^t6DOm!{Yp$W{7}D}Zn!N%dtq%DEHBykdrb3FPV6Q`Z%0XnxY4@W7)s}z7$H3^oFQt=Br9Vy^~7p zuXhHHY!M1J${m6V6Pf#5*dt; zfv-f{X+T`Jo2N@`QETlVk2P{pQtkXJeqZcUqNvdzEYHX&LQcb~{ryq(_KqBlaSq#&M-(qTt@tclW>Tl z-o4y?itW~7C&REft8z1z%M_m=^A=sC;q8dWgSbFPhg(fIo%owkEIDmL_t0^4<_O>$d9o1}M$#PT+a7n=y~Z*wi%!WIv-3lTf{G;_ z)V-LsC4Ct91>p>p!==sa-q#(VvbqmMntThHYO~K7yBJo_{3X-uO|s)W72LavmJ0vHvA8 zD|pu(-`o5A`fqfgVe`a%?V$Lw8u9i+OL{tBXt)Ll&3AqMiIzYK3+Y1ut}3^Ic2(*oC9!yUjC{d)xfN-5hTd+%L;VlGkFA zsaa2&H7q|lwU;gYI!cLPCIszuQ;Ymdifl0=Mw^gz*w(r5!D8^!g&&+CpE zzh^OZyF*htevzo{!#*E(sxd3EWi9?m2n$#9T8rZvj4vi2#OO?OdKx4u(>pOQvHaaU z*0C4G*po~|F9Sp^{{*%{TTQR-6A?l2D&F_@K}E@A1JMv{^k56Rn^IKRdY@wp()MF+$B zziLrwgGblZFAF_+h30MKvgOs}Bx9-mX)f+b;C3VtMVE}PlSZe>haavs(bwI7Af93M z#sw8@f?-mCX`htNr#Ybh4$TU@#%1y>Vxl_{#WM7z4FNO=L9X2nJl!6llCx`jl$kAV_(N^=B0VF$lwVb1L8GnN0|l6lzy9}pZKNLy@*!6kvK%ABOl%fIaI zaBx*pY~2)1&K0LWV7MBIle)B6;81KR6711Qn%M0ol@e#AU3{TJFBbo6UhTW0!V4Yv zn^63MURJlCviBFGl9DBK_7Rp;%RPo$_f=40=wE0G z*J#yeb1!Sl@sk&78TIe_aaI4M&rxTYbRT%mtjPXYqY2|gQ(wn}`l#kLat&bMu&2OW_=AdBU=MQa^6p>V4d-#MvO9XDNafl(R4Ku9=Z#O07hPd!IU**uN3iD^`_p}zkD9U3-Q z*?RMM)FUiq&a>2YewtZ*7?)#FO>>=`xa*yV!pkj=oRdok`?q;fcWVEO`S0DX^DV6= zb=MBivjfo4igX11V~N*@wCw8(ONYg5@*rX*;nBO@ z)L8TfIrJRgGMm;2TK_Z4Q=;84jqpZ5VjhUhWMxH@I?zRRt|_}ST$jXI^{VgFZ&nR( zpJF|v;3i?B`jGUZmzYR*@DwL63ivxo4VR_e;W;kt+@fw;js8zf@|qG=I!G%c zGhE-T6Hit0nVK8|tsFG-;d^YFS<8tDZ3{2}a3TjCL<;r2O~wPRjzNKUT^85MetA-! zwM}7tY?-H|u4^@xwQdU%Aai*Z`Lu|v4i(uO!i@nY`YT3qkDMF{M}qQ1MslE*rqk1) zd%|Xg+&7p0dEo#SMT7`(Z_-RNu^@evT3czwR^4Kyoe@GFyU!uS{!t& zgi+{R-pAzpwbJZ}yC_5g@FNI(ddD+K; zNc)Lc;N$Y<=+5&U_@-Yj6}#LQi*ylKRtmMEkGP(ofUwx>BCMVWtbBCN#JQL-&5_PB zu}OJ+;+@{)!&6!Hvf}`qfJ^|(`zf${cbai5%_GY*fY55ovv9CJyn1|Z(F2eZ zL)w^o`%cSFT!d?#}Y;MPQ9_U&8MO>HS?`r5tZ2cD*Tk$hM{%c6d(Z^J}4%%e& zV0~!J-y|^QE#-v(Jx$h5vOi^c(JyvUUaiC!FJG3G#d9N$Omhm1&CiL(D6^>Lf-}I$ zFjv0+p$Ea(H;&ii+80IaFR~lO)%%ljS4IK`3(p`)mPy&KJ^Omd)-q6TMp_dOH|cBD z2hoqxHOgtWML3G_Lo;-$=({6NkEO}bq)+f`TgWv6;gba|-R+}9RUKZ7YQWE5w@BuE|6gSiO?UU&FmKCVzPpqoTG9W+D4(d_<#qIYh zo104^(as~H>IY_M3Mv#Er)_oG5Yk+c<|JnZk6e1AL-Icu;PN*J}ouQ0G2-Tx2|4@k20Oyi#uvij~T_TY9y5j<1oRFh52Xi z1CZMTb~Cl3+(+(erw$!=9igI)7E1^{|DM_0c@Yy=I0cv@s41qAS1Hg!bR+ZOW$0Q) zfQakj`Xr90^B}tOLX}CS2kJ23>zsG<4J%GB!rILR(o1lhuM~RAG)B1iS%N~>mg(Ii zE=)(Y33p8oZZrR>XS!=9|V6$WH zd{)a^y8x2lb$sSP03s7>Z_slW0J(UiMH)NGpQ*2R!-U&fU&)6|(5NxYhlj_WlIgHkndE(%St3Kb&o7&br1+WV zzZhuVTryj@K>~k&L#>9Lno<#Rr99S7^G`Pm%(Hx^7_0nJWr7Ure9vB2Fd2Qz&xQ~( z(@>)rP2_S6-d{4s(XNX2F#aquOA)s=!yk93RMmLm8H1rWCSZ--@J^2JB5CcfNXfbW z(xL?s1A>nLTQGBTvjG6q#JE@K{TLqf#WZnXj-A^BL~;XlZQ3e%6G_bWzu@a0F!JJ? ztTM*cH;>|jA$)KTbvom-H z*74am#74MfoP>fJVFEM1qs*ehBz`V3=6lyC|~i{78Nt3S2R;I=NF6=bEV*BQK6j-yut zMlWxK%%T|Q0h(3_s6gKZ1So*~Z!fo+U0)IBb}n^#)MSV??ck!9EWPizsigfy5y;PR zkoRU;dbxBDx;;0ix}ij=cIP@o9L!y;f*Q%`qaH3K-cDotB}!iTE#!?qgG@YVFO+xV zNk0j=bj+=IkiS~yY(g*8tAcJ!6^88M1wtt)zAqWIO+W$i#1?{j`>$R&mBAnPjmZ~y zFm@oa(@>W(dV^~94p_7Yybf6H2AK(ZVO%9IkNu55_f=a!*gWh5bPh^{U-zb(e5dZ( z(|1G{+Fq!g5-n3;U)r^C;VE+ElMP9~-ipECVLkO6jc&8dTv&J?df}aL0glgw*_7E& z7yn);R5ojue~~Gh6fdV9t}HXKjzN8@>=t;!BT}RZPMY&M1kEFN%NN$Wml9Mi9=YA3 zF@5Myv1E6>PXFsE+UBT$Nkr096gnSi8;9+AJ6gm6c7Cg8qvWP`s!(w8C}}^G`gz`6 zwMJ1s(Y^=^)UwG6A#u@+3OjH!4sC4?UV|s=2`1Q#eu)z93}r&;8F*P*lEyt*KOG}T z@b?dPYlh9KV&5fDaD8yt3?#|SNJVBU;;w&w)Rb!@Ia9-mwhul|*qfI@Rd~$tnru>V z)d!H`bL?}S<|z*WK`FC0r{L>ZeX^&S?VvtUur+K-bAAq-7urIzRoZZ&wDI}d~MjEU9EJ@S-tT{=?Id56sD#RI2P9I4?ooUQpvEU@|UVT12jtYXwt6>?$)S1wccpc&iDn8lzl*ul>|so&qW zu(=BU=lSl%k0ZotNuxlNip7?x7!-H1&06*tYR8xR2-E6sWj_0C1{E$CHMcZmwq#DW zMYDK>dGVVtY{X*RbiHREKf-{B^2qdcHMP4$CVh-d_#jGEdROOmnZSr4XuFUg>5vwA z*mLjaerxyco&zaE-2nAQ+5w7)??rj#7(ry56-Kq~hriJ}0oR&+`isV%%Q+e`sWTvC zdU2^BcCLK=qe}x$@+T@lh3qAkE%y%~Cr1&XLy7PlpVZ60dgTxQK4rHNiFtU>Ez0v~ z#|guuq@T6sO{krtfFYIrfvBKOH-k+-rgI59mO#jW9{s*IL8KC)&Sh;%VB*}p)i2VF zYE|aAC6o{q&^jb7bXX|ngyoqvhr`(B6v}N1!k#34BTL$ze!Vvi^3T7TD6O-JzmO8I z37)mM(T7Xx5NzZF`G{_-rHIxaYg*kDmY=*+;KhezC9WR~wURqkpSxN> zbbCg9mYj202nfu*apS447&hn3)f*Z$*z`)*(Oat5E5%pYZbyKK%7Go^~dhG8qlk9eTF4?Hu@9&L!F+Vp*Iwl&O zc8MD;#JdhBhzM)TO^wWB|Ge_F;1QC|V)P?n1pSOS24h)ov(IxG5X}N|b}!H5PLc^( zO(JkZxB8<>?`{)kCS>$v2*#!WS=yBo6$k66y7k^dd#i3#JPThST8km&`hr%uK zh<#d>Wy}ZaZ$iA%n?vD;^U{0n-WTr3Vw3ty`cXYtUunxPZl5`>`B7J>13T03;ilh0 z5W}bt?`QglvrK6Xza^8n8*neuJJR)s zclc{nNozD%nm$R}-cz5ds)mUp63e>yXH!)e+REubyI&}0A8d4S{C=eHXI0`)k)Mvu zAxoX?KPMC5GmxUW0@5sg0IQspR&z67y~y#@6tly5gbNe>kKcxvD=tcfnz5; z0X>0!ps2rmc#^hAY7;@;;Eo4>9kCpn^>3FJwdgdMiwo`3$+KeL_(zHj8}Pb*p1$Ma zE8OCm3l5Bt*+`Y4>F}L>}L^HeVDTvJ&&gPerc)0 zA>X(m$B{d0T5E1Q;?%WyCp=}UxAAu#KjM}+ezVs&x;FGQQJBsWkXnpLDMcj$|r zXHRJO702ryoUNVOe54727U-`8*RjqsCOnEe5s(Y1YM8>@QK@~CbgqzMKV@mT#e%k0>V8iwO z0En)u3F?FF8x~^3x8gOd32LbmyWNMZNOp4+78P*4H$HFITz;nT;sc1+c;(kKYX`RK z&GS8>cFXy-%A&*1TxPPbv4A~8s`>MkO!)h6xmtw8Rrq7SVaC8fH4&+U#75p*igAI7A7^kzsQ z8e}h{B-&_JI#sV-qa%^{ofEz}{tUS`p8ol%viaL=iesEW^IK0!x&07GLy@2DK{P@) zI9p&+@Ro5PVZUwGU;Q*Hm1ZOreGq}?G@?`;9khQ*_(_b65z=C@&t#TfolL`{&`B=d zDm}aP$iDBvXfO)rcL}KqSFBA)8;PS8EbJ!e!o;{hQclQ@2Op&ENcCu?H_B#WF8a_& zyDC4O!B(s5W?NO(>!R9x?FN5sct{ey{ThBk_|=?{O}_8*L!;XH^>`PAB_w$*$HPt>U^;#1y0(nfV#b`u{QUuOgPOBqszVF=x{Z+8iYv~-h9~B23l2-ZkvgVH0@%d z1f0077J$U?ciQJl<2#pI`G*~LABD~1QJU^S=@&SoB^F6Y;rF!PD1>wcQtp6T_@Iw# zf~7$ZfL&8ggQLYY!HOR$?B3`|;wWzH`mXbCl|;OD0#WBl2P9MRPn09b+`?gVa4g)kql z4gHPlwHVSw|1M_mqKjd&>j|ep0Qd3qlS-QCJv`t`f@8@dBZA)^E&dX<6>|tbckTXN z7KmZh*oC_1a7pe})MI)(D4x9Cxjw6&$)`2I?{`dpcH0U>qy){n4}O{Z@YGPHF1fB| zMPl?3!(}`mwlq)Ms7#_bXKRW`?Z8(Q)De%~+4M-b-k2BCo+9-1OP~0ii`gIxc|jvN z?EWEY|K^AI>S_t*22|l214Y+nlnCw5Rr2@ul!MmOFTB2S3}MJu?=_DPe`Ep(2>FRg zN1N^Q!qd54l5OHlG(`48R;GO1>N)44e0B^s3*+b-E?&L65cyE3hp*>5K;7iCbrp=GW& z_S&F!>U8Dh{->y-Um-Z(k~R%tH+t8pyqLDo-W^)4)C0E9k}tC?0REhw4Z~IKe+6p4 zh#X?&XfT3w*Bb=w#7mE;%K5^uySWy1Zlhsa$6`-?^zNjr!G*c4DPm}&jeHp*qAH31 z`WB#CI-n80-$-NOm!JRh_IX<%+bOPB1>?*Os!Vq%Ue26CaA%DwLjF01|2~bgs*J)a zhLW366^NqBfw{p*U_lQ#7rFraVmh25GFRKh8V^~(!0P~A>I?-ObPRW=XzyEE;2O00 zG<(ou_U{9pqfxqQ(44)C&KNZEbd-76m9mvGp6@=G0@ijjqDTm5dyFf%i>(A_B{STs zf&TmGXu#Er>;E@E^*QWr!mXq`#IiG~bKlV;YUKNr`Q8O9lW!d?!ocQS1acJ34ltwE zsIot<>va6!4m7BItslVH@C?6q!2!Niz>&4_5_mxt8unZN^IWu?UseqzchNr^x&1xy zTkz4x3ynoZADeq`$AZskWqJQNFWnsYH#6YQ{H&7Cy~8y>LIeMzNW`-1EzTmd2YK!U zeC?UCCS<_NQgvNynVBMN?`b5PvC7w=z~y(^>Q{^3Yd)>fidNty5D{D&M@rO+q7vR? zxf#m>zQ^r#Xw%paAIAR{ANxM%yn=>LI+<3>QhZ#I27rRWl>h4S7H_MR-7D-6<*Du~wlE`%=2 z-{@q&G6-~%VVpz}9v7dy^LfL5_fKY;ywVr_q^lmGN3GMGNaS^>&uxzFoUe?hFuNKFwtw%Hw@ z2K$tYNg_MJ(ZFhxu#n<^&hfK^2%Dj9DQ8%*41*M~ z1-kye3uGQNN$!3ve(@W5H3d6>+@6-A=5iX(=MtItJTQvHy|N%bB;6@4`j~owB;!vUid7Nw5nh5q z)Du9fb~hn?dz^ByP7~7)@g|D+ninlTA+Zl<28)a0Pv{1ZZSOn&bI&GH1MQmZ_uM2z zn@$H*Gmvtt$YmGsrtwM)7T112ObubM_Udk%@5Sf~*~;@LK!VfAMk$~9{H?q2``2gl zxckNYbu`Ie^G$lC%y$-WOyRo`Gx(l+KpMxymEH1fDFV<$s!c^#Inbe)lKmaU8|A1wRLm0&wfU%dd}= zOBs2vCWvVT(T!3g%%geGquea%x3K64aqyW+c6#9)T)I<~2I13-_Q4UATiZB4_Gewq z{gd$2-{wG#jlSl>Ca|v*Ot&ZTEkz5GL*^zsbK;c{?ofER%(WW-%%RBeZGn?w+J!jc z1lP>`B%IFcO&7HLZ;I4S>{%l_GY*_-qH1tEiFTusO64m(%gfNPsWQ~1yxSqgbHQKq3{=v`KmQkM(*tKeSdY+;?0HxW)>zG z$1RZU)+F=|m#6Vp>%J{-`36*o*;@!>m-)WMv9xMVn0q}`NuxHW4fEc4HD9>kvWKql z5+0h&!WRj5OlEPL5&SpYn$?9Jy(T%R;$Uwrqijnct?E-jHYuqr*-*@rjI)J@zjfTA zb|Y#Qb>z*CMzL?`+#-0A;nf};T=rZwUL#Q%_#1Lt@&11vCVH-L?7A+A#br5Ob4bqX zddB&g_<;F~;4k`x&hYxR78IMcaYIdqC%{IA4UjMM0?qqu&Y@1@OWs6qwx5*`A9h@S z`^6#Yn~+~0D_0$<$Mo!Z@8I_PQVlfcC40Z%QjR~WnZ4W(Gqx8nXca-~q~hyw&gG_A-v$ym}9wNaXzE1z=@_ z^`t~s3&v4Z>+ApnHcz7p;Chp$lizMM;)U({G_}V~ryr8)h{r=Osz*ihoxHX&tR`9~ z>rF(D<|=o`qu%C!GC|U{VKGs}pI-`lF`qzTtvbDk;HEDcnRZpm@GreGxDLGkYp$h? z5WzW3bRLn27pbmXhf0geY`-ACg-p>+b>33jkD(3F-k+1FdQDfvp>b=rPar>|F!9Mv zM_%g)hvDtzbX)zGpm@(A_!lvJ8$V)#Qo3RMl98s`6o=ubK zd_41CMKh%^hAs>Y9J$2GRGeh| z_=j3a*Vwh@BT=!a*-L=hAPo}JTY5|vwXW=OlzDwO(@CSvS8CeY{ z(MGyWEWu6zFVhQTmdU7ndZ+;6 z(v_H|DVFg55Y28@-)7r$G2UHE0IMvwOa0RPfK%&wheYID{;DwvwMa!Bpj*5(Za9g?-w_^}hU3&51oWt~E&8KOTL7r-2B<-ICP?^g z8D*V{fW?vm&DCdbQ!9B+lFy#?CiGc>K=>Vkddm|s=MM4X-kk?1>m1DBj#?mXdmRiS zCMc9>mASLQDb$6o#O1G)a9|P;kc5sYSVz5Vr*gU$&vrs*>MQlV-)gKUBFJGRghv?3 z!w?rs>{*CUcVjNebsf;&ED(mW))5j&A%H$kG9zcJgXP5b#~JopJG_MZs%!hI-IkL; zz0x%H-t^kwv`&Ga4ulK8_XO-z8g*kPUF1QE`ARG1)kE()kwI7e&Z|tj4++lQoi@a^ z@}y3gL63ayH>|a?AU0%2U!EYvp=1qLSX*#<7*}|<^jEw;eE_O&hn*f-Wf{Xf4c+%Q z$Ef%(+D_;cpDj#TGC9VZpkS*Nx>sQeut!)>Q6%39zGaYt%olvwFD|?pW2b$otE_}! z6R`dAb+v|3O-7PUS6MQva(Sh)UUJyyN)1_T!Bfkm*1hV6Z2-hqoEILb8pQTk1K0JU zWUZ%5QQ>fu0tL4#^?RS&UF}rW0V-^@S>+_Ta9RjgK;9lb?Vd92vQJ4Uyz7K<=$aq* zrfG`>S%3I=ym@UWtybgA8cRfO0ST2g;!?@ql&72!a1)?Bi3OQdPr07W+8$+F3h)iL zGYp=S+9F%atzupR5ED#@kM2!OHe+Q&`EIAb}3QtYep-ahO^8qj^JP(~g;iwT0_Z z{49{!ZzoxYn-9Q)vnHBH&+ULBceVGGJTw6Fp7}z{$JA%Q<^$?i46<|p_d=Fg_toPW zYilD8!Xdqv4IME`xu4Obc=gJr)puTBAnz#t z-%~kx%$L}cY>PgGT8&$O(vZ#+1Bm>zp40Rkn z;G$Ha8u6N0ARc)a$mjkJS@UxXt$O{0r4_8(K|BAbU4#OKv!Tl9#(S>!kL5-_JDsIG zq`Jzo<{!S!dWIp($^TVj8$p$`WC;jG#2y<9MT7{w11#U^`3g)9L$6{y>U~`4GNadpp2OR71hDA-aniV(-<&a#A;cQ*`fXE#k&>4ph}bEBJ8)7_Iq772v607(*m3I71$ptn&qcB zmoDzqBInhYzDLm1FXd(eBETRjN{>iZc|dXR>C2ag4)v0KdW&Mm<8W4l#Aw`yoZ#69yTgr+ zj=l?+splkpZw^=L$lO|;8(%@y?g^d37wiAISd0bz7{%~a3dPjOL>7?T!{+?vKJ5Ia z+S^Xzx{i0JZmIK1@}{$$<=_qZ%H+1U57>@Ih0_(O-G};(y4!L5XZk(68B3pHCc~b9 zEdWdSgbeqqY;d-cyB1Xw2pJ6+dr% zV9*-&C|A34OUyyHwCADwr(deFn07>cJemTJlZ3D)Y;GhFaaBarYdj+Fb|=o8(DCfP z9hrvB00nzATX~hgr1-Hy!7?eIyl3k;wOs|EVGUWVK~_lX+w3 z`DdvcDwM&3e;0xeJdBnc4x&p*s{3G{(W*wwl0uHYKx_9pb_-}XTW{1s=o)k$0A%kZ zJt>fiu_=f)x zx6<=vUd_C@%H11$2oE(K%*y(LsdmY5Ti4+(vA>y2{p0l@uRYUZGrAUu@QzIAM>(i3Qf7uImbJ zJM|HNGI_^O7qF9Pm^i=Qsoz~W-M3SDwaYtFjWWjT-N7UbM&iqS7BWt z(|}FrlZD;7J=?9ZBAYt@RR^9=vHl!IT<4;bnJsaN|Bzev29OcJkmo8riAr)h>HIFg za3+|M;49q$M0Dc+0LP2}Myt2YV}AOQ*dJr#GFLG4 ziB9I^9l9hB_rdRHU(!hz2Ix3i;`G#P2+!J%(FT;-GSOcl_otBy>Hp!OluweAY z@dkm5MJBBKNazbuA8|<4*i4;djF&qA){$Bub>i606F*JPN78A?oH}OB&ol2<)6FS9 zjGKQi4bIqtY=&++FZK!P?Jqlg)*@TJ7|mC%0|IZ`EDs|T%##6+htCJ?68r{pJ*5TkdIn`lhBm2O;6QpVrt+C%zYN2)TNr3#GN;W%;Y? z74HJT_c!->%%K{JrBGy!V39+fT|(5GtMxr*q*~$iikgWfu;}o|4T~NzV18?ti1X#) z0kEB>c#Ib$K?pmDfJ*n)GVzKh&A~N%rm;L+{a_B8FN^Kk?}Z|poUKajU-^vw98NAo zpPtWWZ;J@-*zi`%ta{E!=pTJ)^lyd^A%rGjh>r4HFR$S5&#ch!Y5P>#sxP1F8@+|^y*Eo5! zt@J|pL-p9$?OS8y+Cr;gZp;OK{ByRRn=$HGxl(UQ=R9EdlAShq0|&D zd1~_z%$<+uY~)`}$h-1MgbwCqcuyirTP1hO4!0|77#2JvzH)!cnc=<-P0V`6w^W*^ z!Rp5-6D#`gdab+3@*G}3RUZCGA9RWG*eUr4&MW9;kLhQgM$TTm7Ve<;R#q*5F0^aD zRakZU*sct?xGje#HfA}pZRjj$b1TyEA$ANE2Col#18D<}!2Uaw-LzSLMp^9MGeM#e zyFegm3wYwM_tY;6S=x6W)jN z;H*i=*jV*ehdw^ZJ#BUYekap&bcmerDHDeh!d7%wbZIMXd9mU%d8a_Zh>{M+*OCh4 z)Z#H~vDDcz-Vy4?9ZbhuYh9GdgBvqlly^*unyE3lXC;9nJojB|DJJFKTzMSwQBUI(f+|u6_ zD4q)%7ymw=w#&wTe0%9N~RpG5=S~KP;d?2e=+-46YhZ z@yM(lGp|hf;g}P|i^FS}5n{YKqKl@-Dn{PkO~Jl<=bBpxPbG1R3xY07;dx9vjrqrG zH1G)e0847Az@%80cN$h<`St$fy8>qUD|?%*1Y+E)V)Yfn{Q3t4|Hab~{L;Y`0QD)pAud)#e8zIv=^KT69ML~)ATWK+1W zCcl!)tnj!SoeSz?(+;)~lY^}o1>UyYxdltm{M11-n#i>3wvryf6=D;B{nB*y)IiXd zKB=*El^w#39K)7}tzXg>>C!4}Hk8zyf(k#aQwUj0=LvMy#%OZkxcX*`E*5Hc);OdQ zJw4>6upTRPX`a34;Nx8OI?o75)|fvuluFsl^o$kjpZhJ}0Ca)ip$T{VHTHRH##*Xj4xsyGyR zi|ClZy!nAd_Tzc|njm+_5+LK1+rCw27+DRWvzL)~Fx6Fr23Grj(1zVW@99w5BY;2+ zNb%7Zp#aPa2lrlB0n!~8R-$HHg)RF*t_%3Jyi~X3ao4q>(r0BE;)2MZ5r+#(UmoIk zBhIrRE813PUl&F5WL)VLcVD`r@H@RU7D(lx{CJ|crL50}I2|5Y|NAti&x2dvGo{q( zdU6)g(0lc2`O*!!Lr`chBP=LjS)-e*Y|E~I6hXn@ErIkAYFf;XQK{FBTnj)yP{p#@ zZ9v#!=Q+_jMj}z>Gk$h&`$=-LU1=w{v$`rQvkabCd3-GQnnV2q@;h1dD0#9j6U|cO%ZtJR9CK3xR%s&xz(1+^5e;s*4IZbO@ zgChNrSVPR#I_KX^OQVf64>4!;j&k#(MF&~=#s=A6e!b|8XZ4K=cWTHACkuF1XI42o zhQ2v!w>AmzYqcg!_C&8e%aCSbgg1D+ z@!!<|JCOgXiR3l_Ot@|_t)37Lw5UIad0mj%^Hsf8R4uz)?)FAAx&Xf9v$@GD>lCSe zJxqNEr#R7d8nfT(N(vHS(|&RXv@xgbz5i)O73)RsF|TGgr?P@@*@e%xr1=Yw^=U?| z_(e5L`bOP^{L0c)O@CenPIf<@Ha|LGNi8h}a3%Hhd zoPss|bVGg`V=8I*b@N!lzwBdqcC6RL5bJNq)P+L%yp^Sb;xXRQB(FC1;^WzSWh~RB zKFg-)Tho}(s^W;~x3W($3v~`8F{QAon2qm{YddeP`6nZHno3`84)10?eEF&M+ww=X zn;7w40QjToOYT$z=C~a{6M}d(rBz#+WF~O>?c2rWQon%C=t69>Dg&a1;ij`rzk@mC zl9sGq@F2w2w7ojJVBvLH)RI*47Bb794wi$Y9&Cl56CI|PI7&<*Zarzc9^h=%{QNo5UPKqul|ODC`Dh5&jydgBts?UU9?CnvbC z=wJ7_oGFAvj%Wlw`wCz)F{~0m)b$tbM=a!>9vl3-ugCCyE0yJ)BEPMA`g`%LF+v|W zvjQHDJmTMwVYJB=8uge?r$Umz5muA4(UfDzJZoK&z$gDIMGOc-a(iY*T^d> zFfZ!HB(@=FemX?-fW!{lk{5}fJO5y;BIKrRUg(^;V%(mJhugoZ8gC#MHQWV_?kC`uYi28@UGhxxw{FiK28Hx9g_G z6Uc*?9;b4z6DaV4NTkYgU2u6%%s`hq%W9sWL3KSV zgbjQ~C2-5|U7Zrr@c}%Vp#XXDVxG8)*ePf@>EE#oKD3Z^9kG)foi!p^*@d>RcY_5y z+*fO(Q-_!(#t{6`n)k9!bfww2-7_s#eU}eZo)IHC$ySm-CDz-6z{wc2ROC($By}C? zn*VOPS%O%G+4V)K@EBti{maRi{!=J{H;-=dLm~kqm8NV1bt&vOMmCr@OOhp_ci#!2 ztdV^iDD46;>WyM_ctic%#7Kq7S6_dNHR^kbnq#_G{;lv^BPsTtf|p$=k4M)GGf$WA z;eu9=GA>!)1BXEeI2(Vr{pXY~Z-Z1Fs2YX((@LpIDUul3Bq^4wG^+i_eZrp}mrars>yPY$@>lH6=VnJ=0L_NL z2GmkpyvN<@wxAxz@?<7vtFOJLe3gMNI_uQ(e4lF+mQuffV2dX74bpNi5xN+)&rhP}lfGH&7M~g= z4~2>~)Z!E#Wi*L154{7fCtc)j6E&&_ap6`qkewF25IbYL28G=kgVCV#UR1%ZywM1`Vfu z84e8$>WwxqAk6cW-Hwl)>paSkAGu%-|Kj||AmI(hfc7LF2sh^*lTq>C9&OkimX@ds zfdAUb)_+cLkek>T%_G1zw-yH9@#a$V6lvBT`Hq2iIX?T=qeC8F3oDC|PQbQbQ%|APCDEhLclX_}I}cVx1@R(w`&wz#WUHP}~VEMH63@(wE^$hd1$oy4pSNCwU|KHuc{D;uC10qefzVX#7%e06)Rt zdEqzw&aN46iki$3R%pml(tQJ(dN1;ng-$bMSH}X7%7`SeSAXo~k=ngfJBY4fk#u9d zeA(J~FYI=%pG8WB@@z!cRM2YS97O7_a_lbhKI0LNMKI$rn9=}c+ zM=SlKRnp_!$3RQ-2DHBvI)&)yKQt%Ty@HF7WDc0|-=2={d;6E6>9^aK7y!jCLZ@Hl zSCt}yCjmlleh=zeZMz@bux_z|{74e8_!T{cnt7|;D24=3Y$4uW^H}~uVc(OYCej?GwEE4zfo-Rpzkw(QPeqLDdbnj@^Q z*h(m-nSnDH7i0pxe&nIK)(u&3>{M4#+Z`=@#z7N!pTQEclcrqdy8OB1&-s=^G_X}& zL^G4KGPq3jI%WJoMx}ajq)Ve~Q=!;=g{lvKoUz`?W{d2sAxc1{T5}oeguWq4RHd4K zxu!tf(FVsWL2`+v^|NvnIU|-wBfRRWT_3T`nBS)jW4k>Q!F?cM%$b#J7w5BAN;T0P z=0(5z1?&!pKjOLSOtND5n(vo}0rf8N1G*n2fVf}}m^+^B%u4H68 zR9)f4Iha7xD|)^casPIJhKdWdHOVaSHYDC}U-8Y4Hp8PC6S`+a%DNf|YF-nWVyr@T zA?BVvYAUf2HAM1}SA;84Z5khSVx3~us0$gnNCu))b{Ryzz0aG8?|OUt*n<;Jp~8>xjIoN- zD4yWAvZq~1EW>L4!kVN>akmU3yoTCt)IR%ueQ4{uHsxb+Hk50s$d>3Ab6aZfpFW=K zeg`b)4)q!9a=agV9{tPvp}p4Z>dNSOJefD+L&RsKpz~%`6A%E`uT%D5SP+>gP;-X) zM~>3>kpe`tLfAtTY&bu0x-$Fx-5`95Vi*q&(SztlGqUw6;_+>cCzT<4a4t16@GFIbBDJc^-Sv!h3L9FWmp!Z1K&QclV5f_piTb0{!E6 zT}RZMP=|l~6>tZnfI)|b=mLA*tNWw3R^gPsH`zVXv1-#bRQci%b82DWx!p*T%{#gy zfQR)pyXony<*_%I{rfH%*LIM6Zw<|TTM3RG1|(%T9#dBl?Rc`+Ft zv>AMncdb~{FE~dd`FpGW3OWO5Vm{wW8F%Ya{tj5hRcdIPwPwZJyqW2i;=CQDntWWF zn_M>_s?i1|XZp!~L*t=s*MBUdW!N5hpH(C4RvU`=PAvMr5X;yF%C8i6HT0@0jHXiC zMP>re`NI2a&y_Cntt?)IC{Fxp^G?=btgWU?EAp!3P)+fP;x4s;hTCS-xPivZeJ^Lk z$*Aj2{JkwbMxf32NH*7$BJzTcrk7;NHX=t~nJqRW`{m@bk8+l>nNfi-$=~KOk46+M zkO#g;UOTPgu1;3m`Qz5fD?`Eoy?W)9sxB91D^s~YWB7u0hVd)Q&YrNsPQ>uJ;3qKceMDRa^D8EivP?{LzBfI+{n(;%}aUuBR$886>Rja z;q7zs42QRc)0QJA!U_7n*8nJ#NDqhP4-P4}X{WKd{>rgOCV}hYg8alov)$gNW#oXV zT3w~*U-%!8l^_q!qe@QKMP?^>^bVbQ?`BHkf$oGVsTfYzM;^k7m8u=mG-@w(7TLF* zc1Z@r8;a4hf|F}PidF`GGgQp0l)j0A;N)B^E{g^)zonABw;)IC;SqTG4(ZPdH#H-< zOu%^Lj?u`2)5rHT_Y3Y@(1g$-D#Lc)ckBpsJlJmcvU=?P4V*)^p!6rZHrHMotS1EC zD-BdiHrL|^=-sksfFZypl+g{)Mr^n|Yj3+A1p1vw`W@z0Z`lI$nmP1$hdH2Y^P{bY zmiEPD1}C3dspAh*cFNHixfP`|W9E~HZ=2HNZ?2G~ojDDC{UXcRGaud6;P zR%VS6p33GqHffs8lmZ@~X9Po_Q-mJ;N?iUPlLnuF`qnqO4r#3HhCcvU4FTGwUB>1b z39(ogcw+tADoW6zw^q~zxoh|0#(1G<_TX2G zCMy;DzxbR|SbG5EDA{m7dxD_;q%r~zPTdwxSA9OTsE2?3?1w1SHYbrWC{pg|pLyMB zWdJuKkkZFp6P)arTd|Zcbyc*Kjb}uIDWHwu!D$98WiHlE@9&MDutLpYO3Gg{=oWf+ zY^7;{tI*M3Vy%>&GHEQLLCFl=(!;Fa&`hR4^C!85G0c|Sv@#1Q%$PKY9~ zXlp5RTiR;(+m7wg_!vmJ!x01?4o=U#t86xzGGacNk4m`Xb6SHU5ISf)V8aU=5cGc! zgG1?`0tZc<_7+Mg6OIq{1+^rICMPGQWgda@1HxOO&rk@MpaM7qILf#D8EhN05#@Kh z*0H^Fvzkrak=#e3<_6h2J$4ob1{TQ( z>YKK2B%keGeyrnm>-TKhXwhhr={`E+23{DstX@5f&TraK??%>7hQ8F!VUW%xMKJ{2 zJ(t?4kEV1$al8|b3^a-pD5|aam#KCYX!85yP7aDAa5u>cXp&vLV8-0TB0}^rn z+lSB|+Jkom(k@gbBxlv#pKxn?-cE(^@!ItwnSQqUg^hA*2V|oc+-I?9EOL=LCav z$witdcg&swy#w)RyLJq0IECEFS@w*!J#2VKa;;Y!Io9cyW%!Du&>n*I8hGZ0;#$}) zrh((e;5`d&nB&{9x14AtC~(3)3l`W5>$okl-kBH2VZRAa&>dV3IyUrgS_;#S!|N>d z%#}`C_FF!u3xiM~xK(=oZIj$VXdl6($&vO&? zX=_U-YXW4lf+HcYRV7M8BOL>ClVhLFE$8}GF9CuU!n#0eM}20TdlQ~uIgwDAr=RV# zgYz%?_N9Oxd^%tvb->s-c(TG;4`Me*dMO?C`foe~hCUE<@Ao`-U-@SI4e=++{-N!M zZ#UEw9k;?L$K^M8JWV-%>@m0i{d>&IvHnkImt;e4s6v|p{H&7DE^t+f%LO^K##kpW zbWfbyq1_PHcN!UxNIV|Em3YEGzzqMhp7x|Dh|rEED{pNAbqh&uQqg@s`V0-IeL?$I z;t&OfvyjnQiWUk^;}b7K7Wrynwp~dzSe!jU)*l!8V}BxSp>dDeI@nT}10&HE>SET{ zs8IVtPyD5ik056G`Fu)!5Sqk?2YQ~W09pF{u_MfrZDEh@9hu;>9ca*5I>KtZ1GJI~iOYDik#lla{J zQ~G3ne9+kSotlTYT3dfO65spf3vjQpMs#odlK(1yHut1}k%?AIa^YQnwiQD!vo*Cp#u&^_S#cC_N$`1Sx-#pK%&By(Yw zAlDijdCeW#ac}-{dl>i|NX!}*osk>!w-n9v1=qu`-*B*mK8L-q-X8iyj*rhS-s+%@ z^NR(4%cdD%Gy{q70&hJZBxj1Ra+e@eVgrQ~5sI@7lcDgFe~mp&++CM<@0vsDu#aM5 zBJ6zbUMIozlF%3W9;9*ctr#4Ev$47{i8QRN}xU1k3q5jc=~(Q|F4IHgwSNv zDgC{@7}sknE26HhjZZN#^V~+TTz3jw@!Ef%3_l0r6#$l#3sZ?W)eX3dhVXQ7BQNZoYWJ!rY;>N7Kr`?$Xy6d+k`8@hU2+6yt1~$aZe=ohVatO=M3OPE{L3j=dz?;VjekpQfAaALR1i4D>BDD*6Bchm~NZ#e7kL zjS}xF7R0PEg;47-@}sm5J^ZM<{hWC|^acOl#t4Q+C4O+g?VUE!f?*cH$H5^gS0X28 z<-feL+S#YUwc<{cRV8RKfqBX|@{O*Vp}aeK5V$Y?_ryxhO%Q zP<6Bfocz+k;i3zzq3A;;Yw_vhg)kjEP2t!yM<#dtf6Nz-1d29JIMf@@(U~&4V2G=} zJzK|Tu7o=|E-ugOc)IG2!s%=`(s(pa)X}jvmRcPjVZBu->@O_%?@aWcpST-9qoNL2 zOqL1_A*BvlvKV7wt{suFv5h}%YjtBj%UQzq=;+;r zgM-!jz7EIRYqi8N8h(1QpOE*v)Poz{*RQ=JXw{V9H)rMPz3#aQ03L#`&2(Nc?| zTTc{;+jJC;HQF$02Ms{0RGAkl;IOyf1eMe-{Zj(FvnYC zh4LTL{4uC05szSCV2qu%JFWgNnfxE+b~BSl3BtPF-W=`K*&b7Y~^c2|bR2*ltW8XBt4(jmQPSiwYh)@jW}4EWn-ls>K%B`zr{hx(5)E%6cBDl$FMJ!jjs_34g4iOO)9^3BC?Vt=_DHCK7 z{~+UienK)bA!^0EWfF`ZNQ7_-RKU8zgE*Y7AwItJ3~>c@Nz=lM6z7JX-1pW*0^e++ zB-I3!e@`Avz|5&n`aknR6a4+K-fzfpoJ7cz((*_mAmFCuYSh_cyZXf7V{W)`%u_i> zHrwBeC=pZWPEk=SiIpzDS&_m64GFQb?3Jf_+aa#5lut_8i)#vuitM$v|5cd=+dy8jf@G> z%O`%-oa#~4wMbN4wd=%NpzFIO5^%69&38jet5$iOK-7$du>KI#zWhInW)#r9Txq(y zbpmP(T9ej@fRQ8SoxO4oH&K`TU(qoo%63VI44)6>l8#{TF83WX7|#6$O_D6?uoS zd(s%&z{<#g{L7Cf*fWmj+KyEPk)e3VL%fgbgrQty3_ksT!C4*jfoIRhR)JN-F&bRt z769*|5T=p?@c2Ein9$;|lm)H=mqpzPCN{k`xYhq1L%>i0XgGX?Wbe@4 zXw28{@HMGUEOfnC9#z&l`7!jl`kDf@CVoYS_G60>B7j__Pbsl z?hQpV;$Lp{21rEQh8#H*V$u|7d-7uN6>9~+$;9){Owx4q1D`pcw7jwb&StSs7k_84 zHkprwzjFcnH|#Ic%yv(=YkjdKW_^6~8#!6-NofugbTgLZC2n`FMwXf{Fzi=WqC0bB z(-Y9WN&td_+mB(?MS$38nbr#I=Nk}mTO29A&dW!p8tnkR`tMPDHm6LtE37SqJ z+>qJj<)^W1c17wVMTvP7Fvt8!bo&3h`hZ4`QtGa$mMq+`1{763+5sIu?T_9!3TkSF zAxW99vPdpatq?OFE1&}IxtvWHN<&{t#*mlwIw_q&z%S+l;8 z5^94Gc)myk98&w}vccAjfOen`ZGrcH#{OQ(;AI#9r290D(J(B)oxix(H6wv^L$7$R z?c;Df<)wK=$t7Y4f%Hx6Mu&%!c)}t_?YX|I!gsMQ#({iq z_8>w$n0eCW?gbFKOG`pm%5$^=cg?fZa0=-tk{XBA&qOHZHk#s9yyezweTO&K1d6q8 zx3}T|sO#mP3Qtb9kPyrxfqC65`gpS&NTr^gt_K`Dhx@I_-KAP?Os(HLsnuTZHeQ); zj29=%v)fkUEO`(2v&(-(b~{ELMdm%~VJfw|gTi1v^y^s3iZ>4fRMRe#;-=J=O7ppl zN{jjf@0qh^z$tZw#dYbhF_amAoq4qvO64f3*ewpP=X`tF;Ial0r3%UUKIx>3aa0 zRg-Q<@cu|dCMh$N8|WA%p~`qvEO>Rr3BmxR49x)Wwf^(`2e*p>Q(el|Yq6F^NzXch zL+|sRP))?mOM%^hi(YZi^4WnxTx%8V%9^f|DhV}^ZcL;3#)jo*Q!DShM)T#>^!pMv zIG}XJSnf?LCmYe)pyOKP*?OCJVS9`&NcZ++SugKX^x#KNo)-*-xbCWKj1|VK%>g;R zUf0^}rMB!f+4-Wi>jI_jT*Cuin(al+Js)VYARzOq^47r!Vd^)|`!L|vr&TiWoK_Xg zr}quTVJne}S_*NULNbmNnU}kVs=;Qh#vmzbceXB`f4wQY_x$UO-HH0>f>_ASS>;Yr z2U~BSamy_Zz2s=ki%F3^;nn86kws)tR;Ac`vG4}wIB!x(`~-?M67&E2D&n@JusMF2K}-5>0jd?%qxQLW~}>TF+UM;?+j;$Fq@1?xL&M0a{w~O zN(6K^IL@UM^lo_uVllkRa@|jzYRH%svYK}}69sZhLx9`vjHVOxlQm8u{+<=fm1fhM zrZZvgqJUgM7s@>bk)#MWv2W&PV-z#tB=3&-7^gZ`(Ixis9uK4nSUKN3qDKC@P2jTJ zI0OidkSs}MBUg<|g*>G~>U$vsTwf8>^w6alICA4rNLDLUWnr0oan$wA$pLy`PR zv%!&ykGBBY5zl@&h-an#s4rYBl3MiU@+8yoWb-XW3LkK`X@3|BBNNwaZgx^Qb%I3> z3&!K3b_;sWLdwJ>e=+FBchXbVrFD1iXnu3H$zq~7^WEuD?aBO7yR?kuY@LnGR?|s? zVb`<;ne823$?Mrft7Sz{;E^rWklBsLZ;^ED!RrPht z=>GtQ>(N9?v8coW`21p2H~uXaORF1zd8Zs{y+VJ12oyq(b;NaAw&n+0earBIVEA>l zq-@pqD;Uw;z!^BBI$mX=rBY*+sgNrtL@u3V>Q5ND4^W$x(y%_Yw5qW`jYjQAPci7& zqDgmGI_^A=*=%#msZ>sd67CMh;Hw((s-SzlOsjYC({VwF}e^M1-qyhWo5p?U+5 z#d-NYla~M56L@#Pu$g(~lma@Qz76l{PzYntZMXOGxXlADtx(S?6R2jJ^F;1eZ;mEh z4osWZN%AIgh_@Bq8bnUQ5?P3`PUq)otV_~~#f z1jxc6y2ZM-r7>A=lzyw*=P>`q|6;rV5oR{LSuy;2&_=?I;2PvxLM4VDh3xi2Lkz@ zUp>pM+-^#Ihs7n9EB`cxa1kmUTU3l%$Cpel>@ni;k)g-jNxAh;Q#TqZq8y=U(&78vyzgY*+SXh@MxGVm17sM{y4M2fvCPo?nx~dSXb17Rh+kQ>n@`JP`YK@ z+pgjP}OO&ZeY#JVO+HX+_sVFC&|3tBo^=rAZOYXEH`pvv&)t zPzt}KRf=Knde}+9c>KjjA+EDnGOVnhSM5S4^L9Tpz3Xn}S+aO<97|*}0Vz;x0b%`y zEHY-J+r`<-LKbCHR|6oOaYlyo=(~VNC zZJlOY!+FaamJL`g02W0`##eniIN9v_0E4JdztvG~xuo}XNjm4dgY}w7tM_9d+9Jim z(%d?h)hy0Lse-`Y9slNxwrVb`>wt7X_|C;?k4qs=nlE+%*sz&plx^L&Pp>Sdhtah> zlz2Q-FFJ~%Zq;t`WM2b>cwpnGqIR#oiRIy!{{xq{UhW>X#Y;2M7VppLg!WrfbONwu*iZt|&*9Y|-^9>Fb+pHiy!PG!HdK@wyr&9%BpmTkW4Rj<= zp?EI$4$w7~gmj=4^!2mo#%9v)T(#Fdjqe79y*W**Ggh5}Pv-cN}-BWyo5;O+~hcQdp(3ERsJP0kaS-xF&JZv;qPA2Dd zzTcEYWdH~*81QGLGIJ3r?>0n@o3|vYv;Mmwf-n!%6-8@umBg19x%lO$&axN`9)Na) z+f<)T;ILl4KI&(CD%@si4(&+sCCmhV=4B!18e^b8fkWPpq00QK{{^))w4=q?oR;%} zQ0)HUi@X`Cy?WXp95y9a0Pq7RSXYzDm}8+23tG!CJUV$!3INwT6_qu};;T$6$YpQy z6oVsy!%=jtFA?S;FW`PA0W>ze$RTtR@>jeGT$ z*X3h{cjI)4ke(QZE(?qSWT$hYnysQb^|HJh8PM^1lbdGwM5TINbAIvW`k33@1&uLIQls+BDO_KHEg1Ve(;+xfzF{A`Pyp(y$M> zdrF*HrD`fjzs=lk@XedofFtNevhUusZu#m#)LN59tbU+0RdZ0de7kX&J31iRrkQ&( z$s8%DXa0j_*JA)4T=l@@_=jm8Fg~Nu0FuX(tixG{?0bm2>+-kI!@dZ+*E5w@o7imT2}YskiBs-X>lC{xBs#nzM% z*SC`2)%PUx&A)_O7w8Cd`9fu8tCV$bRzG1Xsctkm!^ha8PSGmU4=OiwNb<+w(l39% zF(lM@wac|JR1uF5&%2|`0c0kKLk0%;PheA2%5Wt@HuV^a=mhNGwb2P<9Fw2s?LRjCA72KEKZS** z1>R+5Vz*PQ|5Dru;h@Q0q?~C74euD}B5!;!Bq;j|4+Xd0Z#F15TG<+@{Ow*TH#QFv z{@RV+F5dnB=z0sFEVyr9SV~G-LK>u`L!?7MX^`#)5owTaB&DQ7x|@eax{>aXltgS@Xkd+)W@uT~rrHP6p0gcVT?0jlxb;SbkwEL!xC#%G8ycR#F~ zO74aQPphh|mvpangrHI8*AIw+n7FX+0<9GrkJowrpO5?-r&gIX8tJk%!qi6%z&?f( z5XX^Z*~-RjL#gt1s^`vQw&`$c9|p|*3)43W58?p=dy}wD2XnQS3z=iP z7&7#A8?(C;2lm5)F9lrBMif4WJZRNAEX;Bm?6x>0atGDc@Tt&bI5E=9hwRn#sM&|? zSWk`-eO2wL1JlOpu69KYw0?ZQg4cH;#oO8j|M1u$t#H=g?kZzhp5W{jS8(RU3V+@C z$v$>GE^hX&)iL`2%PkAfAh*H_FpiG@N8ljL3ZKcG&ee7Ld=Sz80h=a5h1{Ap{c$Z? ze$6KXqwwOQ`TouJQcH{0+_2E2`|oo5c$7=3^p=YxId%Z{)iz>6(j2BV>|S%plQZA1 z$LkHePK7@k&y$ZwB(qbGNqc>)GJaE$$R;riC20n)@$=`m%?c{ONhg;!tP!IDvpFSj zP+OuZ3xm#}X3nk1myGzvyGQVBxaC3BY!Ch{nnpG%14A%-stMd^K@gS)wm z1_L#(3gP{B?x5D1-|B8J=ns-t&d^ow2?SSct8dR6e~v*6MAtEDy&oRmhsA)Wbi1RF z>E>|JX};i&BUc{P{BZ#?YF0Q;*rQ_lxGyH)=r}P``RU2$`G+QMl&z*#gXjO6sApK- zlP>&9<2UZlQl6{&1C~$!can&Ut7akbAj2C{tN=p|cyN1Skh1geel<<6^}aYC;G$G0 zM8=T*AFS(tiofU+)vf+m2HKgi|N02hq2yB;njB*M}xXQ9+ z%O2Z4rB1K?Hrb%JBunZ(LXkUN1qGFro&~dl64NQ`X&D9fZ1Nl>9rV(s#W>|Q7F}p1 z&uP=hC4YiGbk+b!Vz%^3l!}i_q69Nv3Y6j)KpX~(7%9F!#ZWMi=NA+KS%RN6z+P}O zw4dhFrR<+Z$n*GT%)ZQS)9=mn_51<@_b%S>6YO;F<}Y4|u(%^y2&?zE=hge7Wlg1( z$dhuyE!IndJjdD5DoM;KWlB?<<(1B(!-@@#mK-enfTWAt<`7gcxLn{9JNUUtn&*7> zwM4U)t)s?b(YTZj8y)5zl%=&kbP|>8l+tD?01oMsqLQ91$^J+wX%8>b9W;6ru=yh# z`w=|no|j9s$u_>k13XlD$?n*<*6)Uomxm>Wi{cg(<1Sno$Bq2*lKl-?vM;IA*(POAb+;`l0OJ@H{< zD8>B1eE8;kHz$XUlshTD%y(oMxw|Zvnso?M7H6Kh{b_bv2SKVaPtgdGNK=yT(n>MEa~7`y^h$gc}i7$S7ZdS5~;{udIT&I8(5G9)G@=9Dd4fT|0gXrQfv9u;6x zk2N_o4w)PjhCh=!FzzL?+f^5y$NT_$W3QEe?v6dt1gpOR@6ACMe$1~iLaV`+t|^M_^f-~lP0&EmF6W^?{rw& z{^jw0eXlHetnNU@Wz(|up+WBvrnEQtf{2qp_P!P;(s`!5Qshuan58?xp)Ep43aAVg z2qj>eh_L@s;eh)7{veO8?Iq+BpqxKpZe2=6SuCuwqGSDM5?iMI&}5j}XyZ0o z`SB{mG#K1<1*)TdmX`c1XiZZnM!=8-ostz;<+A2%I@aiNYJ)#`0`7mNg!kn>UHfK+ zB)JIu*!Xyk_D?%3`joDJ`b8>sC`aM-T1*T&y?Vo+;k5w;Y4DxO>EatkE-$%LdzDN% zH9cy1{$oGO0I-%tmFB1VkKv)d7=V5J0{@k@lve>R%pLa^yLOV2k_r!|sV?tzf85od zh(39|n6vIrC}+v{*zLgyc();!!mIH$W+}<5cjcXLVu)(|j~@&X{3k&&X~)5w>euod z#T+k76|&x2*@A7A-@)bXt$D0z=+ap#DZ-AWp`~r;V)KR<_J+L~yBBC}a_s1qwd?Dp z?R5%3u<#1e|9}YSSBx(*K8kbzfSko)XCiW*vj4>VL1+JU z!LKAd&%3%%70x)O$H`ap43)*th`B%9Tpk`i4<|7Zc&Hjzxe8j2kUU&$S{Nh$0}eaa zts@`IeRmiUg6huZ(CzGi(8se=yZiI5+{G`C0=8r39|`w={<(W2czd{{_K*=>WZ8wX z4kZ=!LA9o?=L;{-35ugtw;bowO2&{Aeyltu>G_OW8V>8KMmbOWm-Y^#@&UC+N>^8x z3Ztz8jB%O5f8y|?P4vQ7YfI>eQv(4z9`wZLB=MTP!1^t`)JG_;HcA8eG)k%B51NnOsx2e1jKZABy+I02z4$v%DW1v-GgPIcUusik20RLuwHJp!m zO_1w5Z@QPi%9K$!Pxl+5TWc*wT{zJOBUd_J3;!Fn@1#Y%pK%hvWB5wL=25rCq9EDh zg2xIC#Zg9Ko8V&KiuJ|6ncz=!YpQ_TgqV05av~rd$V-vtkKDfz59Jv6*YTPaGa_G+ zf1oK5UL;I7{3l;niF{I`+_S1-lp@*61*1FH{DKVux$`CX)v@!Gx+(UN+>@uO8RMD% zVcmR$|F0SWYzv@TNcgStfhv8e+B_bcpy1nYq?i)em()%b*~jt^&p$;2ViVlYl^;+1 ze#A1&q57;gm=p_u2X-D4$@%++{8K)@C!J@0~P)?YNW`2obWeqlX|kDB|YdR>_VC}o9bhxw_v#3iy|plLFDWlyk9YH;Ljj` zLzW;%NB$6mA4nUf0;qkYquC2M?C9^p#MpnTN&fvN8T^seR5Y6anZ^t7tbl*L4}E|C zYEb_}GO)$V5$T1;fllp&O9PM1zx#p!c1cR#hi~!!%r95s*V9 z_nP;^Q36(t3#pQ^cd%YGnccF{hJ~3b3^e@$(=iIDxkFm140_B%VFfo`QYNkWnmNYT zMjp+L50hAPpK}OK`FF_TDLEr#iy8dE)eo9ui((tEdhwdk(4cs8zNAp8 zota?Iu-NC~q&;uFr{A<7Q+;;^1H62reIFjQITx11`j33b4(ueB`nhMJ^!jg~`xz-T zrV^_Id_>OFF~*H|V{%QD6}?%jKcONZpD_t?fWrdyoF3tip*PSWOn3%KSXhrS6GKKg zEh>s05uG&V5uoUx5o-9~KP++ugfql2xBa{{Px?yJ;W#LQx7g%1DYo)Hj1U=&jaE!( zgs+c&QO^X`F1kvCM>MYj>?oX81P_XS2>tmr`KR6apOt${EqbZ$Cz57!H6`*iryGMf zNM=

!9D-C9>E<>1>$S=e7LI5D)yrAf>I2X1rvbEGXjvScP)_UN@10faHPy*6w< zf3)4~Um+e96UTxY&dTrQ89WTF^dKysl4&|zxo=v7^@t;1>G7d%5lu)$@|6vIS2E9& zNIYBVB}K%*?^{uEIhhv^GjrM@Roi-}~m9GlDtlo^PmeqTSf7KH|LKY@)sBA@hH z68z7v;4kLN{^&D_*V#~;{X}yEKo{eqKW&95>S$JXSI48p;d(t&n;C$PwCh0QavnJC z!q@w?(iNiOPSPQv0@`MQ+_23cuu?<=&>h9yHh?S`l{ouyfc^Cch!~d@Z`Txcu2+f>OS|;ZQ#BLeZgT2W)3MW00xkC zu2rfP>&`u-Hblu>f)ra^a}ii>8}PQ?Ct0NYnpS^Om+)E!-q|t`*_hzl=&DIWCOudZ zeSmd!e+bBs3KG5@ch(>_haKgn-75bYSl$}2%33M}k15-3y-)7Al&@Z{x%;T}x{gc- zD7(eug(Chc|Bq$J0X;T=Ef18}^xc16vJ4-uI?2g}|Iy3WD)R8+tl{t(m7{MkQV(9Nw9_Gw`@O#&uONLQDAOzeV`F-ETAGG2Wgys_cD zFPS7436iNH6D=lcK4-2M-fNmw2VoKNk+jx*F$2$rmqr}|sBhe8*MD6!A#Aj<_fz%G ziB{woI!2K{OpPLj#^McZ`CU>`Qn> zxDjCnrCFMu5AIw!Sa^`?YrM#`;S20F!VtVlPg>I})#l-3Bgc-0-w)S`GH~_^Lbkzd zT%BJguCE6{;Bp@L=eO^sufR7@CiOT|s8;;W$&A;HP)^qwvXLM7Otxa9R%U`r7m zcqk>QCmy+%1+jyJ-yt|PWS5lW(_6jKFVj(f-g4YcgpesN!@dK+6iKeZ&11vk*$a(r zI%@96yHkWB4EUY9l;@Xeu#+on9K)aksZ>RYIC*Pa`F?1m-S+emQk4htLK;@&{<@u$*uO-&c1A- zL`e;Ki$dnF;Iv(N)e`E^wZMIZ z4P{xOI6l0O7|uw?4Y#iI@+B3wdQkn@Hl&G7TCRExuAMz?e}`)$-rR1gMh%bzGpn9@k6=gVPL=7Esd5*nm8DKQc8O%O9HYSx)jb-_M@L3duryy~ z3g<@$q2rKIR9Mc}l{cRBF<8m^d0$LvS#x&9r|>!`Mjx@Z9e{P&SdCtO9aot^B5ZY? zCBQsllmKKz4Uv{g;1KMLBz%G?nxfvO{4IVCgkgA0npD-FC!;Wg z?jTe@sGGabGjtp5HwGdDNnIuG7kN$koqh6LUtyLiVh)4uts^(@yt+!VOqcTUP9N%3eiZo{qK>?Q;&$(Nz-E8wga!EFS6a1 zbX7-X|Iu>CB>g+yXIg-*>co+MzV+(Q(IQ5XrWJ>3OgBpKtjWiZePCH+u4>(cfosvO z81NKg3u&Qjt!`?U=R%tyOljyT6>`6V6zepo5)$;k5+NumKG?U2uFlc;wAsAuKZ z2p)$%7A78~Q_E#;?k$=W!qZi&Kez3iXnX8O^oUMOf(%R^S~FH?>m6ms)_kl?CUO; z=|)o-dHMJV!5fJ}cE zYA;ReIHf!z<>!u~gJb54E8X{IAcK2h6Vb4h8KNv}=n(5e(Ar5a=JTX%pHBGFM#6g4 z#P~ND0RS3I`taNYvPRkieG5H9cPz9Gm?%;k z){MC-j8-x{=zI=HBBPxz5ca>vi3@t1#EU4>%hby=m0y26GkEg#ck9dw%=V|qbJn8# zUpw*ve|jN11u0`f3c_W!HUQZL?Rz#+W~4>O=NO0eaK&)H!M`(S89cF(qz5=cq-c)x8BJ+7&q-+#=*L_D6mod z1%$l)g(;D@3>?n)YnN0@_?G=}VlexxDhRRf!2E9q@(v5C)af4{9}XX5md@c?q@o{wbdI%5S%x;UF{?&zDK9_t(6A0{o+fASZg&uZ!8RU_UIN8`5rD*7D$Lq|)yJ#m}olFG!r`GftdwMyzKbZO^CM zK7&mey4&a6$9NjEfQc-kmahKR8});>;)_FSb{DA~B$mbEt_Uc$zN8D(d4Hxsp`dIqtTe?}`-T_N4wZ$8{7 zXq%VT=|81vetXXv-j@CLF5n46lDcirj}UkU>z6vcm_*UQ5UA(bgWZXhzlSBWaZDrX~w4_Js1B4kS8=7R(9^ekzXg6?gfYqOr zdY;!guBtx-J?hOlGwaEuryZ5w!n+&+^0&EER$c|gff)0%XVr^KmqsscK*(9#;>tUS z*OiqkaUTvZ?nG|cHr5zzK64{vX_&H^D%M~(>_p<2IlrXTgLO^8nx^x#Z%3iGQ7*|d9{c2*~&6`rjW&*O)wcj zu^ehBM5PQPw8XLWmN)sIPD2)cL}=xm{O<}AQBNP`q`LAF=r{Tk=8ZjqPwlO~sAG(w z&?G8QM$O~=Hh^uv9?UUzIem)F?k;npTgN4q+3~{vjp^|ghrL3hQJ9C$!(cR05h>wX zbQVR+WideRF0HdxMH0uj`pgQ~AHa4fBuRwnRlc<`5yD-@W}qEo7LJs`B22a8bX zufat!HK)MKBw@M>kSI1A&!xWyio^A945c3)z_L!Y;Bkdokk_o{|5j$IK#6vHuC~ne z;%k?qdgoZ&6@|CZ^;$Fn<*{o3q-RIJ9ZO=$>_)F!=5Jgj>cjYEXLIoGHBXQ2`^5LwSu>mHALIj}%?t zX?T1h;By+Jc5g%`s-LJs7Qo_>&#Qo*)y`UVZK*=tN^1~M8Y(`-lovEcf{-1gzIws@ z{@OnLdEZr{xbf7m_`;CGd(EiOEe+MAlr_dyv379H*Q5Q#P4W$>Nzflg$CJG(-#e$F zo2(V$ZFgJG&oDR!gv+hJ;LGA3#%W^D=_&{}Dw&O8acXuR!F-CpS>Rw%Aw!&CDFbig zhnAS|Qd$)^qz{fKj=9>xHR{>6_Iu_}d$8RS-e5V^Wl$sMVUUu*7hUT)BIdsDKbUQc z@7NB;J5EM1hTLtf3JEej_?g>W`NeKa4>ET9rRF$D&Ix(Wzq_A@R8Bg?M69-kC3>oV zWV8_sFn0;AB4dGdoxikUX&30)0dQM}YRIUesd@5wsvoi~bk!OV$SF7B05M|{P)2mf zgx|itxdVfM@WtM5qX0G5XB^9^L2ji*-h{q2KsQ-v>M(EWdbVY-@f9(8$ma1La2oLI z9m}Kvw|~50;EZ=B3U;%1QcI+1!;tn zmrp(4VWW}<{vNy(o%v#;i?3^k060uL{6!@Fh{Z}@ak^DXG^-Ui2eC^UM~U$}qcB^yH3F%PT#`!{dcrR8&FCnH+hrrdJuVWdai0eIw zehvivnL=WZaDlr!!26zU4BA znLOu_Ky@5Xz5|(-5k@*lf0`qvK z@FrPRwq4r<@2}y~REF2*|)2yUmq?hLWzM!FgjytP>G z;Tbbbfexg>omJ$r)O0t(#KnUVWI~IC7B}FGt5bjUb5`I(+5owqG?>IIUHoENm=zgNx9^RhC)C1K>GT+g*yz zKY;h1skz6`UcIEMMxN}YE*R_ZQMWM2m}1xi)aQo`CKf?ddWD@%vr?5x>;7|vD!5~h zj{#XSfC>oPXJ6|MA%V4SxI=O?8p3i}We7|!1t?Vp?4Q5= zt=RA_%c`k|^tlW@q&^N!Y5kapLuEwXYoiw~I;CV@Yn&!Yh!p+|OxO|F&Z1`- zWx7qtndbt?u;u5AGPqpG&!U5oPcE@g-=bqpx3l*QF>5>-&wnh3lqVpef}FRgEBhO zwt?)z57d}Rpn^AoHh-|hqZ5fe~b zR^n|=Vq|Gy60UlXceW<5{@EedOky?gMd`jLUM1w?az4_(1}NGD)vwDXuO%kQ*F6a3 zl${~5Y}E%CQih>702a*;#<$W7%6uZT(Z)T;OViVt1dxoOyV92hD#8(Lj5PLJz1)r_ zM)O{)VO&WHi#PfDF2W<$DQlle2afdFQE4dJ-kEEYm73!h%{lE($yRqAJY-U4o?$Ue zJH{lDofzC>joi9fx;Au+yg*Ek%-HC0B8YxOC+61ge^#UgA)1Zi|@pek4=kMx{=jvZo zP2c`s8OC4Wp%WA4*(|Ib@H4H7d5t~&Vl&t2AFxj2Atp*`-N?!ym)muYBq=BLh9)5Q z6_U&9w1L7*yf+$x0MVwm@+-ET0N-o4|&iy z-oU-VpQNX%OJ^tjkS{1$x}cvk20~U}{Lh%bTiYrq#x(seBk@L7>o8kI*QP-aeht#g zV=-mZ#6w?_zxIWYhzO|%_@`R{6y#SSe3)uRisy1EWf+F~wBN{65qG3j3STWCEBn^n zFWd+}aR41Aecks&A+QI|$4Clf#pok?tHOmTqs~f@R%8exFtl1R>C%UN)1rmCmaX|}Y#M^D_p@>J z_wr`T$=bv8H-s6T+3bFR^0LW4;)mF;&n?-l|5+B{*<4fJp6Bi8O=>FoMI1Ly(K>B) z6Cu9dfQxQEWho~eTcnk{OZVboh~j!fEzsdy`bTcBhYs;|IKf*kAt&LQJ^Js`KVB@S zkSxz#;`K2NlYNH^B$j{KM!I|E`igyHh*2ftp2z=Wz9-NmgF>uKl}(aakU`e9$|2}c zA%a={06+V9+JnD1S$V*BlqixRU>{#bAF0!UpG)W9VC_%Krhdj3&hRuX3kyA52a9WC zm&Z1X^(9D?u$6nauEq0TwyV^Z#i&~b+XS$zL5k$52Y{u~bU+aCOY?fr2<8MHxqKVZ z;%6`+j-{7W^F8F60>_;=Dp62>pyjAuhZH+;I}p6{njB+YiUnn|nV}7xH?K=_2bwxh zybD=TpgFjQB!s(BsPeS6I0E?;ui$sLf}vG2bKE6;U*gWy1pcRiZifp_OZ%^iP%r{; z#k?_#H`mtkRrL30+I@ujy6fOpDCR38F*Z>zO^e0g*w}_By6G@Wj1-B~Up`x<^&;uU zarGxvPduC{&(cywN(SZ<``&?pGwv6diTVYXK*O*6-n1&#!`uMc6MVx2T*^f0{af;B zm2@NJGqkPBhr3hxQILh(wRdY9_w$o zZMHY>^u7QeYvG|#sa~9{?Sb!Tt=_II$1>Ej+7if;)Jy}Q_l!{TrDBGXmIi5OZ zf2MO~CmQffp@@!>WNgsA6AKvcAA#sqav$HjX37CxJUk*Yy?|ey{yU<-?4Xki5hu|?q_tNiRD=FsN*a~lD|Xz-}mIZ z@E&$hP^SQtQ^oWo=n>L3$e_sOYIG$tknA3lC3tC2qXDx_P#EbboL zP0%vS1JaT5K?o33Z$z#LUvi-kQl*N;pZ4{k^O`r zcZDhE{WM)hl0eEChcY^#8Jrc$MA-Z%H zypb~PG?uTry^$}$4uJy>d5PFfS3bssLsqeE%wY4&jqer(4#lfn8^d_(eH>(XT5jTm zMI$7)rLZ?(qjzsGrxGUh;Q$|Hbn_SWL^YUh#LjEX?T(+{E(4dozbbhaDKH=9b+Q)x zDsb(*?YE-fIA%7H!KEA^nTozmu7QVQLz;cf3!f)dx;XA=(kCoJH{krPyN7R4|`)Yit3U;?>kv!T6$*CgN4^sy#;@q^*$_Wdpxfw8#tMwNr9WhL<{ix z72uxZoQPDFE*+~MNO8sjVK#YtVnkae&&WQEDLnkHPI@wKS9e|38-)~Hlw4^<#xp)l@Pc^U?4U?wr?XU3D!-x(ictdyY zP#;#Gk;%8tNJUrNUYHkdc886p;Tn3OB**tP^`F8~4c`UfGZ=j~_rlzAz}+L5z7Dn)TgV!o_JsBwwa;4e^S>rq##L#!3=ZwlK)>93O_#mlH#x*uibR2Pn)@4Yxz zy}eC{`WJ-YPg_kzH?2Jhne409b&x%+zCcUumW!+x+U1RzVuIfD)2ZVMAz0VlY&QM| zZT(_;IPe`v-y0me;nz4bw{a`||Md(s>4?vsy#b@0OWFB1M1dTJ4;Isx%C}N8EO3h?ZuP4zV2GMp z32}*w#oNBc6n(`N4>BOH2_%0?$+l0)l->f!kl0^3WEfgSUGJ*2w1#VQe}c_kF_V(& zpLtqZI;RJF?F8I>n_7DIjCn1=1BHA@KcuqMZH_#T2amc zH?=2`!6R&E!S7)b?zcn%&J9y=j)*xj068cS1W z>DoX_bsN5k4q!-M7?~2QE?*(7tEXt?^{1%u7B`l$6`u&*eGIpF1Amyodjzk>Eu+1~ zcaXmHPPHU~arNe-`QVZX4KWFT2zae2{0er1K#k6D=YuMF1}g_>8u{bG4wNu=neLW=o$L48!P&fiokFDY3%N8o75Y+PXBhe zYY*hDuO4$)On*z-B9fT0aGAlMWh5aPk@OfdSX=7g z|H=Yjj8^N$95Xe}Cc+aNi^0W0ic-{H=0JG7@*!ctB^IjMWv}}mX)8WQSgfk=`U0Iv z=U_!GqRZg5uLG*DI|3sL<8=eWsM9mTeR9-`-tp@o%8R(jFY~75F+ojEtjT|?Yb%kD z7}kiE|E{Aio%OR~+p@-!ZxvSGAZ5)rQhl-ZNN-EbK#Q2_wg!YG%KiEBKi&+6)=a&` z#@hm+JS-pxf-53V0Md>6R;bueWNTxGoHY*4=Q8?N+@NVy*OKf1us(5s)KUc& zXtVciE5$Vs1i5%^yWk3&i1;{1BQlOGe2h*XKqYgv0(C>;)UrE4+UXPTGv+qBknQfq1j* z6zA4tQ*hXf>G#SakvZ%Qh$=v4%xZsYjLs06Fz+`h{S=+}Q$NvEqQP5S^h*My@#QlC zi zKZ0Nw8R-+?YgH+NYh}gL2Du;WW6~_KK%Y{09Jp{jVd6TcIp=fezd!)DR15SaE-7_B zM*0H*r)Z|Mec>B*R)_xM|0|WETP53pHWul;mJH#O@-SHl(d%;!5*rWz| zF~YmXAG2w9pwQXPD}98&*O(bOCdixA_~}> z)98B~7v0aSkO{@*<>u0xpE{4`t?KMzeyTI~{9i`qM-YG@TdtiZ=&=TklF7TaG6RdY zA^JW))aN;ufe{p*rF^;h?nGLt)e@KForo~T?iFU$PhO_<9#t*X>fB@MzkHrMm~^KY zb02}JS*_hg4dxyg6l1C%!0h&01{DL|1B4PO7~)68y3VVPH+ePryUO~>2OogCEB){)pF*8)jk%Q6 z%``4qby!2#%jERS&rQNW)`$DU@IF6{F1)1@J^zio?7m+=h$)=_{e5CTW^z;=em8Zt zcqdA;@heKjMNaZyUt4vSOPZtOsSGz=%L`biBGhwrwOWaIPqp}RPSHwxuZ#iRC&n_d7IFFRhiMhcK*c z&#~v2!S&ETNu`mTSr55{MB$BqZLJ@=Ltm_75v6)j%=%WMtU?!nLNholPDupa)tMWQ zM9!@capGBhkmW*J8yBMWmx<$)?;Rj?$o)|^sebmDW$i1j09uBhItI|>pm-xK>e=GX z{JZ~ACR74RTjnwHLSpj?jEI43NekAm66j#eGfRzdr`t9W!zn=F6A0@)zeLW|b6+BN?pi~aXZ`@=0l5!l0Y4A$ zSEDZfyId>I1efN=EA9TMSkG~oLGzj5jU`46ye@7HZ(eeuBbg8%11J{d#s|Qs+U7oa zLLSt8;hpz9-+5^bHFf98?N!g6f9t^rsHV2}VcDpkzm;~=d z0Dw*h0Q4A+18lulnCmhra{NOZhT2gQu;ZApS+4y8u4L73#l zfnU8(foe^0%FlrM_oU@Q{bbdN6I3f$bXjV);sEfVKk#SxX|XgIUzkA7cphp*-|6@s z!WsT+xo86c;%%T=Gk*|3L^YXXUivtnc60O{XgrgL624Nh5Ue~Xg%lTMv0D!dP?ik} zuADhM>nZ=NDi;TUA4#Gt0f#~YL`Pf5d#^`x9?y`iT~*n*-mk>I%GP*y=LU*sgLl7v zg!mubh6SU;=?z7C)pE<@jck|99eae~!haLHoDQ8~aYK&@cS59QO21SK^0mha^(OVW zNq_rwqTpN{KA@TKl1N5V2%t12ddON{z&#*qehE(TjUZyi6_DV^=+Bq3dhC5d+Ooy? z0bGJ+9`^-#so3hneqVDg<8@sn*~+K1rnv}I=}gCSWjC?~kS@ym!p@1c5X7fe4K0w{ z1mJf7zgKGpk7~x+i=GMIlsT1wAUlZQD7mqNEVwBUXlwJRdp|^&z1i6tIWo~ zME21O_>tSBGLEcLUtVvfS#OM{LNf$3zVtkxvNVzdCq>P-b{^kPXhYHOnm(zgtKn9- z>&N~A?&n_sQOCt$%7p?O*jO4-uIGlZ@F%kx`bEKc0*>850hC;@&muzAf~SzR$J%4@fY{=PvSYw&D~O_KbM>nAvi=)-1_W zbKQjSP-Yo0?_Q8)k;1$*GJVNeT=7_4uC7iRZnS+;UXqYPH7G9^E4P``FUd(V^#|(# zG)vdp@}{WQNVWFs?9s;EFV~eP(uhvhOY!%wDPU*_jj-FV^Y|F|H;G@xye(Vft{y!g z;N9DItIP>tgL#5FQRAkcHoF7HneK|ed8=bJmRi-mklN-)Fi3p=VO1}gLK9Q~%sF=J zm*VhG`@?~}qh9kG&2UFpmFJi$JrI+`_X~H7N8hVFx|VY|2Fk3|I-#H6IPME-@upqs z$uuHN&fTz=^c%m%YO0oK=0wfO@}m03mWqPG5~{=-t1yw~G(*e02Ar}MH1!1t7S(*6 zQ>Luk{oZ@%% zv|e@1#+a@SsW?jZ+bo!^HvbW~g+*$K4|=029(cDqV4MyFxFNOBjdo}X>rm?q(&d71 zvXDoPj>~eL&|IumQahA!_&v4C=SB0d!bM%I9xSN~^%*9m7iwYWdp|^qlPWMMQVJE% zu4+y(f9KuipYMJO)i12_L-79M0M^jXsFtJq=AVcWN-Y8@BRTjQY0Nhm|B~E6@*WsA zvbG_2@Tebb{-b+Rzup%-swftZAnjwPVoVfign64h={o^}TGjz5>Clhv^M`X<`z6T4 z{2szwFOllJg3N&?rsW8GQ*Az-G&QKeGBG@Sv&r;xj?5^(HlJ1~5~Bk$NH@$!j?$x^!TjNi!rcNaM_G%+C8};GnaXYl`t} zYN2at`Pe~%V?~#}IBi;Jh=RQqWs3qOjk7U1Mp8Zs!0ltJ1#ot)kivr<`gr*$b~DK+ z)8|ctik@EyUlm%Ye-!#s^Kih*QER_*uny&8E_4{=PEOZbThkE&`S)nvD}XoR&| z%QBa-RMB{70O0{s$IZPl{_Z7x`v#mt(!H?@jCj@VjRK;DB9HG=9WB*T?jDL%A&V-9 zU!BC)9y-VHFcB|8C_fS=b8tk(th=bEvoJBoA)Ij|&St(;B~RqG&D=MGhEpI+DJ?_O z#drX28M{P=m7p?n0(f~8KlTS+;GZp0IR~2h-mBx)1)AlI=6o(~Mx-r;2q2PVIJT4v zH_99W$_RKI*lKX-nTKGx^C+U?OAG^798T`Hm0ZO>AQc{{E+#ihROI_ z=xjukeg~Qo5G^nGn<-J{Y94UuCc(3uqrj&;fb5~B=TQw^*_m zjLh+y_tl;eM=2e~az&@6iVS1Bo|v$VGF1*bSTNC2Hy8Uw-n9~FXmKS)MHnHOzZ6jnL73Q8Y5TTu8BCsTt=5=6 z++H_Qdg};oUKc7>nLVeo;VB%&WfXd_H_(hZYqi)G07|TP6Is6|G9=-Pc){^L ziObrm`=_f-n#+Fmv@&Zd8mnB5+}?SuT#oT;l$i)shcxp?`nBV?ZqO42N zIdTdp4{*_UPatAi86pVPWkUKnc&ZzJZqBx|iq*Eci;xyS`!oYTt45Y@I&s`O#Z(Qi zpA(2w0IEtMTnk+L+m}1;Vw%VUpEBk4X`NzQ0ncU2Ug%&#W~kPigC z8XJuX2=|&0QFF$R46)AbYY}PF5lfE)xF6PL(QWSvWv|B$bBL9y!moU$VdRYIWi$ruDvOptOtmBkJ}?nmlTf zy9oIaJIPcu+UwOwRev=1nLlYX&1jCuTw&lX_#jBIB9!-m5Wjc}j?#*02>47|TG{I- zmmgqIi!eK5LDV$V>#NBIDo((yG4KwlL~d1<+dUIwP_4CD7I6WUKm}85Q8RyEQaHl4 z4QOLxa=sY*dZXd2+dN)@HXAjVk4OB`kms>*sm4dSDG=lsdZGFq79pGc4Civ0T7Ufa-aj z3ad<1M^&27Xx=*>%xi@4eMk4r1-_~FBI0fX$eViC^Uu|X+gGaQm(&8xLDUqwjDMRk zkVTLYs!&3y9%^*haM+w_{oQDFIDz<;!((u4@d%mbEuBoK2bhy%bG~FVy@I(1s$hg@ zi9gW9yDuIA?J~Gq>m74-q`%w27|&?APl^+4!}1Lm;E#^QtjO7<)D-C$f8lMJUp;=F z-1Fn-JN8L9rO}9_&cd?EMZg_cAGiZ8{%?9eo^|VgrbtoJ+jt5~0NyD`DtX@0W<90+^&}&+9+BW-F{nCgDdL7-N=ez$s z$Q}~`TvKrvUW|XgiTT7w40|N&H|D^y2_A8=fXEZXx9&iEfWR_9UK;T09<&;)dUL(MlA@&f0|KHj-N{#Ieo@$?!n!M!FPi|6TP4oVHM_L zwoGj#^M{99>vL@FkoxcBQwV36nQtX(T~0qvk~RkU373Q3L#pv<092>=jR?ehVOJNB zfZ#Zs=lTwB_~t00&R-TuRapFH{|Wq!F^@o=5(}QLVIx(fJN;LTOiZ#Lhf_<$yhw3+ zG{o>lh4p}0nAbd2Y~JW_AZmPv$L}CsplS)ieVE{G-;G>wa#oTE`<9QGafIdWr93(@ zbIb;9USBY02qp0-Nc<@hCY5}%&-neF*ZRGX+a(OSip$~SV*>~T*Qx)a6H8Anf%V-G zhG=SrVw6Au$Eec|*XzOadUHb;hcozR_o7i*Id+ypng7SP7Gkg{Ks6m-)AX2j$l(^i z(J`<$v0!j{zqOalv(B^G_;kk9QE1a`@AQe1f#;5aMvX`Vv)g6A=JmpOEbpuM{)WD;JC#a?nx8ZT+%DZ! zy??z|cFR2rzuALvp^`RzpLTw$sI|Uu!1|4)RyT?z>*ltm<)RJc+CoMD&+UNZZ@cSP zZoVkHwVXk^`Ix2KwoNw%`rePfL@U>Xypm115^JkeA9i1*8Po~R_T4?hN%s;Qggg83 z#*_dT zkQqC3F2_z7Fp4_<`h%d;f%fBNqz#PgeqL481Zgc!;i$`js$ze?b}9W#hHt zEy2g-zdP!9KuI{(G}Dv29kli|Y7yrx<4ibEp8vA3UCBpY7JGN@R{k{c^{4DMosyLn zk6T9&=TnJxw38O`DT%L&->CbUTe)cd{#jG=cJ7b8OgMDzR^6?=;Fp4ywk;M?I9hiM&J;OWlQ;kpXZO<&f|FTzjS*~DrZ?*`M^o_iBrr&&FQ={(`~ zQogf5@_k*;v{J52c~5p)#F_68v4P}=4uOVCA}j5*(3XaqM6s0WpRye!YSKgUwJmc@ zE(g6cYSQpq=iE3i5UJ{$7Jt9k4Y)I@dnFS-FlZ`xAECnR16)b)D{c*Jv` z9xNp$FHJWIW_LNfYR7>=t9|E2KsMwvw=9e1c#GQ2y%Wej&BSl`G+y5LFfiy*o-^cx zxOLtx?S%ETi73Q#Xw>2Cuz37zg{i5Pqt2f%_s{uRb-?x42P zPkd@62!dq4U2liB~_?9BtAUf=$4WJ$7=4PQTxO zQ_8&G_kHcx>v~-m6E+xwk4~!9ZWzCaG9RSPx33NRs{d@QM|A&Y*q{H5;WoruInjfT z(PX%mSwdFb~B=`d3 zRx1j1+HD^T7R-SDlDX0@35qRQ1J$1pso~=sMcF-$lz+=&%nPwtzdVx0DVZCR$*=1( zqyYbXJYkSy0sxh)i@(ItnqTkygq_~t)<^>3gcCsWZb0N zc~qVV6*-FJFC#;BL|^{ID-I2^y=1wZ-L*RUcH6%F5Yq$g?u)YYO($qE%Z=o;x%wt` zTWk0BicM#mG5OW6*H4#Pe%`jv%-X=mNDaUjyPxs5FwoBKF0v3vw&yqKYqa=PYcyH0 zeJ%E4KA*C5BDPCDMKR#(POkbWg0K}ox-|QBpnF#P)x>xbwbvq6 z!e(#P7O@OgnT@{`&Smaibb%Z)Q}I8c((fqZxtA`3Z`My89#*Ld*K=qW-Fco3CRZhL zF9FT8aQx;kSUrSzc@o9@78;Yl59O_V+RL1~fOLNLbOc}sECrJsppu=iGceOQ&~s^t zG!{&1Bq zVT%ry0W>}QeuE>1OJ;=Yht<8Hla03;GE_c4TWvJ&h^0@W?Lul5HW2gcU z0{r6yn{qAq_FF8E{&ue<>w3Vpo{>hg#vMIVZF$$9Om;&H53vJPqjr3#8NhK zg$`#{HzI3B7q{{x<8_j*oka~jL_f-yJmeiM31P3|`&JA+oE2{>V#dDY49`FFZbDC~ zv9V}?xoh`<;C>qCcgJ$y^H#rd*X^p3rURrmv z$&g~rQXkQik~2VR`MUiKje-~{*8*Da^6bXS!S2x%ONv2F zsHB8+>ttE{)LmN&0IX33blmx)6;t zntsgLL%ByYnQ5!AOWCB^X8rEDn|aJs3xadSi!Qf$9W5wSX(?RKUhq2v+d_4Dh&)PX zW-%*!fZ#c$q*L)Mv*uE~?^I(TJG;FDt*Cj^Jz2@%EI;2d7xoC(IO?v!Qg0G`YYor) z0E$xu!w+A@KUIo6h~2~c?1_EK>+e@RKt9N{Iuec3yv&G*2^BP?grzp*IJ6+vPU;Pg zcSJ<+3kP-t3;0y$qXe=uY(%^^S@xb8$BwzldFkQHT}AB=mfiIK5H>dpi;)p^L%!aw zY&kufDkr*`XT+M-iJcezSGhR4^{&=84fxHsj#{?ZoaHhZ;4jg zdC_1v96p}77ZM%I86FpLPR-YpBF35{o zzShv)FsdAQtK6P_S>_D8wOi-I#hUy~#hSwQa|hiw=!QBC5&CuwZ&Q=fRuhe*NbrUH zClU@8RS}n1=6bT0VVc2@qJ1-fFZO2^q#G&%b1U`}uJf-ZUR@}Y+q&L7d|Pk;27=es z-Bd93cdgL+F)kxHprD_dUSfgcz&*ALEeI<;VGWxpc+R7pr> zKM-2WJP5MLj4%_tFJEKf(^Xh#m?VpRA&hqeC(bv_hu4vlgd43d#*_OXb*w$!wR#4A2vErBR(_a_J?Li`B29f%< zjWyaE8t5ZaMK0|ztFqVSCG%8g(0OZv8{J*e9%*-G=Ccz!&IP+JVx1*}9W0uyw{cMf zcz4<)qo@(vSkhiq&gdYqy<_^2<|N+-nbSx5 z15f%d0A6f-dBn+@uIiZ1!-)fd&y+tdFOL^J)4gE{2mUtqfX$8^IMv$fOI=B%FuAk0 zYLJBcU(1d`NQh>E#B1j)!!;@7k*^-Xj5Z!3_T&r6_n)wS|H)&o5|#w#4mIEc6>fE^ z)k6WZI-QPV-*5vyr^ale!ZDk+ZDw|MSRdHjq`L^$1JJ7(U9TeC)b-xO*;`(|P*^+_ zNBLGHA}pgD5M>$>_V-GV%upB33nHD@cVot!My*S1QTJ|6zAWi8A*iNNzj%ohmFI2z_M!@_8XHXvIw`S>Qf)u>fPO+)6+>KAC_<`?y9f97f-QvC1@QvCT< zF8<2qO|hol!M^m_d>_e+xo5I(JivQoeY{N@cYd>6+(l*tNeOjc8{=WI8bq{;&af)= zqV=>z^`oJDC-Wrs0Lp5G!Z2ArFbrgYl3{u&pDQ-B7u_-vuhU*xqByL*Di)PCx;O-> z--3O;bry|l3FWnRxwo6`%zhON@||USPH^p_frxyX1m%p=BZK~j&lL}_F{ijO2e=8l0Yclewg zXx4c9mW@0Rbo~go$i~UlolO;oIFO9XAn$oqUq?;H@B$YTB<1xUgp%t;Shcc~9{0al z*KL1xCkn}T86qX0Vjfa^+cW-h@0!xk$;I%7;4q)n59Xw#*tr*v0*LV(gCfM6k|iUF zGf0Ij-hK0x?$ggqJ3&QDE1WOSgkb6&o(B=>{d8$Y^L%-Ugo_?sJ4xUx71V7$-;Md zkMOXtkt542p1qz2V5;p2uX@F9va@Y>Wt17QFn~9(*_E(%#CAxci=4N+w|XzFgL!AO z?3kt0aHvJLt7^pMj|fs-A^Mc!MhfzckUg6oO$q80m@eR=WgnLGU%ZyStC@7 zI{8QcIy|Bl4w0YrnK`$8g6BNDxmJp_^Qg-6$V%sZP&sFm7tV*6v@jlnc5bvq6hIm|(i5+V_ zC)s*>_PI>x9WCRj&$bmOO`4`1Bov@dzWbJrC|y^5S9hwiKpXY<`hxTamt6bzcklbY zKU3m6EqWe#mp6?5v{>6j@on@U-^V^I<|>pAF%c)nbI<1@M=f}Hc=G2_M$N}vLF%yb zD8HB&Z7H`0dNN%a1qd)wH1oxqUWElA@rFjkD90L5yxox$l(@;ENB-biUi@{p5&+P+ z%AehtT|!ReEvkj;2}Rr2!{i*4|85vbbHg;$)EK3r z2M-rj)Pjo941mZMBBVh%Ncz+@d!q*dcMxJO-Ez#$Ad$18FvvYWc5;-7-l!=pcA~_^ zBBodR?ByvAJzmil>DB&>};g4~A>@vWYHKfM=ZJLRDM zn_5;jB!d*?vMHZE=?dm`tr*lNkw!(&PBAa|u#A9mcj%kmBzp25MGp08EEwT#1%{eP z1xVN_t+@k;c6yeowjXCah;_2P({xDjyOeX%zm7EL2RBjV;db>Z`P6sD!@9b}A8~wgW80sH2*N(dr!vc2MF&IAe^ri_k-TfU@X%Ll zc+%2aYf9g`lk8wK$aERHGXyzoX1dZ`{7WQJ)k#3P~Mk^W4}EGZLGg9F$G zgW}?1lZt^V`BQ|A2*Q^ejasYaqRc_IHm(j%&OPxmmd&HCG&Rq)kcRj8wj+>*Vx59E;6_d|R z-5W`+y{1-RT%*Fa=VXYg+PGs~N1o0e%nz@0omt-A-rO;LwHv-pT5Lxpi|cQ(H7#0K z8693LI$o}ELJtKiwgRi(UcY{A1ZH80{GdeAWDo}w(*#q{oNNL!sy4i9?9aMx*aL#k zG`Y);fHP)uu!hiIO$FmVh0=i}<)Yru9Cv);Mt+=0;d7bC+E{r3AjIgFG&Wmzfk zf>n(K5@Bv``AvHV<;N2*X7On6hRk+eTEwvHTsHc^({W{EXx6O+1?Kz)X0R;q;Xz zRU-Q~qtlx?xFdG@S}wUViEC#(ovGr1(A8dZ$D%XJ56SLM&c`5Pl13U(A?PRP@r(?O zGX84;5h{?{U9{cS0b!&jlfau75X17Vd<+$1PE^icE(d(_1GI@9)`2xO0eY|bzyI(#h4y&} zdZmvwWzb>^OEUpu?C80~!76cL$kwF#d43vKR`b@#rA!k;JyX?-&Ezz9$R$#w&i$y^ zP*Y#!gst9cw1}MRkdavHvDm7v#GBPloa^UO(6?x?0r2O7B+w%3LEjr%*4s=e1liH zS6oKi--GKY#;*AM1wBJE z@WmzMHZHnG{b@NRjt^pJ$yOgGAUd_n_nte!He-#63<6V{M%qLEyWH?vI zegFDpvO6?gyzeE=n2zM-<*9&W0R~yE;!Pen$MC8ucVRujZO6I93-fyX9DXO#W~6); z^d2jp{qZ}m9DdP0gj4JpjeFkc1f!@KjOK}Zqnw$;7v8Q@GNQO0E9oq@g}SnWTFqg( zY;t$K=x`VJ;ift8C=kh$8M(Q|K1YgJuG5l|j|9{ncywP3tU-siuw-?W#yW=zn+KAW zYth;hx*hGunm)vT8a+od|K{&6L;N*2$*`4{w4J8L_dU;YDu~?%?=+GRd2k4`^v9VZ zdn-!|3nQ>fgi9oz8>F1YoY^qO4ChN7XeMcUpE>Fl$=AOmER*T*H^*vTWu%*9gDXqe zpyXk5QLMF$mAC;`k+>nq$ka4_=Sxq{E~)`Z&BjiOB_|y|L%hIwGHov?Z+9;+9@f-j z+kv+ucWt+nY8yO*VWSdvIw-xw_=1AFFRIaHhU&+Dn*1uZFXmwJANP{Wk?_?u7osZr zU5hxNUMZmT35l@_b-35hB~@d*Wx})4b)y1Z8n2h9-d%JYWu5n-3V)@5+ER`=D$s_1 z{;CV{)&CSJJMyT5S(IM=n_jZpx_1*{fsKYYF=_91i> zu3S=+YAmN&QU@OLit@lri)-(NA@XeN2xi0k3B!{j4z?ysa}{mHpYo3HkJPX-{x~p* zB-3GnI!f5LK+A*7ceGqnF)PEp6Xs1|r%jZy zoZSTJSqNHT{k!}G`FUz24Zb`nkih8)89mmeh+&6Mhc0RFenG9qu$w-I=m08vi=d~6 zmNTR#2PPhMe7A@{j~9}lP9fB;2TZ9{=)BIh_2YS>AVwckF!zLp5_k7Sa_RP0I@_vU zXnrwodDmrPJSr=q!gMcPkJHT*ngR(gr0e|gHY8--G~_R)V%wkmkqkWVE6P@YlH}N) zqmu=b6!tK4;m*vX9g+&<3#`;}-w*mYQ&&8yFQSrkN%#i#mgq2>7v`9YskwL6R;oN; z+j(CBdyZM$>aaV1c;y(;juFO}W&w5bY*{d;j5S&-lIOoIHAtVfu#$^b4&u+?e-#3Q zj(WYPTqw1j6i5Z8Y|;a7<@f;q+1id|f^hiS)dZ%qSCQPOtE`1c77qQq_F8At_#isY z2J?@GLad#x?ev$P<&=8hC3yJwLIm_GUaZ*YM+_e~*t+)Z(mPJ*=LU45WQk0+0R+pW00_sudGU24*_Q*e|A*%B0mJ?d~JJECT?T2gUQ z-x^ms>cRP`(iT;J##;MGMCHuVAJu z_j4?}{#22_c`FWW(p|La^|`fqtaiNURU|#KoVNmuc76XR3TcoQGE8V_C>Nv{3NR7p zDE26Jm`k+1q>U`2kdym>!OLFQXeH5xjr@KH|z_ zeXw0l3IDM;@j63-t*k9q`t$!VX8-iZpb|13nl7YHsfxY5eF^~Z5H6XL9=V&i_oa3} zPFZ8&62D5Z2&zRnIuG43D~YuJV-m&jc)sfAJC2li3ZJxZxZN>KSu?O#VY4uII+KDv zbKjE6dj28lP?c-pLrqO383*R10W;#>B?=nm7SJ8%Tpq{^)td`YfVBZKu#l-k{>GS$ zZXxrY^E{U>S-q{NsZ=Gy7??l$;S7Gs^gn!p^pHO|4gfU#p~uzW)d!x0xg8$p>4aVO zrx9PO5an)lIoV!&U|nBxi#o4y>|$Y6&X@+I-_8RGy>1Kv3x&Xtd2@UFwr%EpLE1YM zFSqc#m%Vwvy7nt?=KmqNjBaB}pZxSW7D=%nRn)T1 zLeMS9K&rH$2*2i&xTB6S2G6(s0dI-)W%}HcQK7LHys2oz4$ zH;_~KyblWzP`fu^}Jf;Bi^Z>IPB}?vLk{~6qdO{eA*Z<5fL$k8en2cE_HiiUz!|%P&QzR{?(epLYM4H zMW@tO&U>qi`JiL!mWNp#9aKR8v?Jf6549?Qh*YPbuwX?*|HtKd!SB|x$I~B688p`R zfi^z5a9V5#0t4g{5A0vFyoeW`hed)75JnMry=%B5fZo=m4`*>%eGy%OvvCD9XV#+F z!VU?wym(>mrPX(+v!qxf{~q@Lj3NK~_5V61H=6U;AvFLUahgSNrR$?c{3NdwJLgs8 z%ThoeO7Ap?WxeysZXdtiBD(7*HXjvOK@i-opR1xGgkB~PKw_inhx~Wco&#P z%PyuHAVauXxdgCn7ox>%3wl|;ERCP|!~X=)f)uMSJ0^3=QY!7Pjj!&w-}oV&Jz)1+ z5Om(sv$`lp8PFfv3W%JE3h6D|t;WqD5%618k&&B?GKBj8I&xyr1L`r$R1RA3tKYV; z*9My-P2)~!%Dl3<L@wNhbK}v*VwO`AM;5LqmuE z=`jBD(7YnZLs$|9U#|kG4gr0-(e zVdV#9E*ogS+zSg&0QQCpPbV3Euyh0v6MYskY5SvmeyviL^?~vh3k%Ck)hXfCjksq$ zcQ)f|_70wmNT1?mOi=Yb`>TBSk3#;}4;ZvKGD%^y3bQja3cw`qtcbR(SKS$Fl{wf; zb2rXja3WOF%QkB|98w%J5z9(m(cq?}P%aO*H6501SVJJyeN5|q5(KLMT`Ui6MpdIE} zR}Y4g1HsNFA#9wuZFO6uu)Guy@P=h%bmb{W<=dtAcW-z~TU^q(^`F=BPuIs`LzLz4 z$aNS1Uhh5(2n11jQ9#^BS$Y{hkd%hJQ;8CgrKAs7PHAavot?m~m5xGT&7U7Ue0V}r zW`lBpnNRnkKQrP<)`FYy4wL4$UDhlzlrMhLeJi)t0&hZ-JCL<%G<_LVb|hEbhmEq9 z1s{EYR3CWc3b#t5Cz0{WQBrqcyGu-$Ym$=c&`(#2GM$FGmBO09g|1@2Y!!F?OIn&C zU*;dz1G(jO_y+b113a?)u`S>?5qh@J<)_zBu%7smEsToI{T|)*XJt}Gaqs#ub)R}w z4uY*l%IjQ68J;qoEN`q=|RGIhqg=b%Ey(DT;FW66UCY1oGIpG zh09h2OO^EWV%uV##$gtF8zWh_3U}1>^|^&j+JdCHy4Y3y#X$^H%+Cn(wjPYC%uj7)J*90V#C~5^EQqo)-x)6m z93Nv~<2kNW{YU1NZ2~WfCm=I(LyxFk zL4c{2%@G-BX}W#ieR)N&0IQ@I>>5Z5frrHoC~mUE0RsNgZC05zJ09tENTpT#Qvc>x zdG^uA?u`L*o70iP7i4561stdr9DN6uL+>Zk6*6C(nVV5aSBbr~EBj|A4dj06xZjB+ z@m8YRgZg0@k6PNNet5=P6^T8gVbEtBvk{1jxol9SC)cP3h6`SvLWs457Ml7Chv@=- zn=!}T@sRj%K~3njQAFa`&Dqvj0u|e3WM#9uiHCtf;_5sAK!--#R1fQZx_XPv4HJB? zQgv9048xP0YWSN$BPsblu?8a^b#Grv4Gy1rL4B5skIB*n8n^(y>pif$t>)=*XTkO$ z47*Y7t%#to!T^nHsI9z8Io|k=D92!0Kgm`AfKX4EyhIH8fYIbyNn^1?uV&e!vmrGp znPhl%!m2yd0`m~?7#X~kJbxgC6%`d{B2D9qThroQlFrySaXO9QX93r5aA(c8x(BP?3Cb5Tq2N4&QkmpBNWkk zU1k=)4YxOFFfBQbT6F7v$=(8H8q9tD0J!D8GpohtJMYpJ-j<*1WK@+B@TS~rcr(~u zJ`o_-t{!6#y6#Q-HkIu*u#F4hEnv*uJl!#7TmN8NM-o0TJl`}@JQ=-s)NNx<{jM{e zc9B`IE__?GCtKClb$d2^wSs@!hXk&4r;z4+QIQ!!o;v!e4XB5eJp-TkYaP z_Ma3YomPs3_!T5|~wPIOP;937I_jLa+yPyyfBsEI-WeVZpAp zA^ykpm#1sqoFHG|K6B;%((>}`VtU+r0vOjSL(Ejj~mU$+qYyE48MsM=|MC^nl^1a%nj`k1M$3yC5uHvfgtx;CNj)P zAHg4H^Ixr95hqc%nfV@ZOw-Be3Q5JGUL_rV4B~O+iEs1KA>r}d;kxempd^MKR~2@E zx-VYP!jD_1eTIXrFw&^V;(9@qbP^QhC!3mSI&(9#AW}S4li#tIzEbO-{h3=w9GB0_ z$mn~x4jVhMI(rhDc;s7v7rSZGs{G^bIC3B-rmt37`!T?iPt`2Mx`2o+rsxQUJLak$ zaW7dpE>CjSPI#wp2T&F@^Ox>_{4^ssrwbT<|M)^PfG}u zIN?>L_ih2WhRWiTH8ISxMeeDuKezz&4`cv+d}Zvxh~+`hLG{M%Q&KJ;qzFUFPEaLy zBH8~}sd^8jN-e{pIpl)Srx$Mv9PG*NCR6K0)~W*sA%*Fx2Q@g8x_gGk07C7B7um7^ zyD*YSu}8Nifd@|ksF`-FV;=d83FzVEbg&Uc%RsZwp8^E>`>ksCL8Y2{!otCaDb zVz^I?igGz7)17U37P>g?(%XGwx%*Cb|RsLZ^? zwdI_3=KEX@@hbYi3Tyus}{PT?uAZ5q;hQYJFe*0smT|5AHwJdtMNNJuK2eIMMuZbg*C3bQ5P8-0>wGqdvC<70$@@& zppR1o!IrY8he;o*>VP2Ct+)@c%=UnHajz8jZTd5j6BY*pgfStpsB{ZBNQg6^VRQ7v z;MiAlWS+A7ql>pd@(cE_#mVrJ1`)=#V`pe4H*@UNNlTlbiCIoO1y_eZxno55%c8Z8<8 zs#E$v*TZ0KYI?({Wpcjy5^zkaDU}hW7a;7yr%wOAj1&^f^DI}1>vd=q_Pn=)$u#op zLUB#YOG`8C2QGRbF)%;00Wj`iV5wBI7Zuw@A0HpFn7ohcU=Xbt%rsrFtkyRaAG{p4 zrWqe7v8ljV#Xh|zmbN%>q$}R8ZUd~D|9}eUzZUm|QCf02M|fA8&4!W`YbVt9S4!uF zBG;WRF{#JoIqoi{o4-jn6hhS&faNo!2AEriFcmd42&dqE++^zvpkNNxv8i@N%KDi$ zbP5Q;1#qRxSEid}@Ei0S&w{(e$QKx=41eFzCmmO?@T^Wsx~Y-3-|+AryM^q^TUy$$ z^hrFAm@FuAPa|)9`Gp1Cr0@7m6g;jY9OaZ-b@jYO{O-{Ztl8eRu5 z_dNrg6VJ-Mi}NuKC3@i`c+1o5#E{$8KUyrAbr;^oz_$Kdyx|cXsZg zMFDPvXuM}@D(ZGzTieB(`!dz=_(tIkjBsa@bt(R{ZpLD8I`D>c(%-(gRNOH;O@^V~ z$iMQ#CjD!j@IEzwSvZretX(&k`&Ny|jxadO!clJbzdVZ|LHSPJy*W{nM_EhcmD2*G zkpSmTPyFBTDhC9JViZbnonu498e)!<7YKpUz)8itr?j&5Xo5W4e3B!h)sm7@V z6K`5?j_Yxs;>1oK5V&0Xbs-Va(dTxf^830HUzP<5EG+_l=9c2Y_G2iHjVZ0d89*2E z3N~t#r{F0a8HMrrX^j8nydh@9CKI3)`8ZKKYjBEQ-L$p%=k-V!>zn^_w|CT ztV=wg)>622*QL5vy}3_IQx+pw^(`q!JanOWkx+bgap8WxdJ+PY-xvilbi<=vHRvN< z`m1Nc+`(Fc8>CpP1EE-#o#A=q?R`hmEfwj-^QVN2{16jF{4PwiSd`%UkrB)uCG0O? zdaXV6!}rKA)pi6hh<&(=%6sF_FbRZd3@1DTPrMH-;)}Rfzrm*FRc$2u$^`{o?9X;y zzqIqb7G=_KRkjfxj^DJ`0+6MdnVBZrgDvqZnn?(PE#loMVO}iLHX}SaKthpV*UArO zsQ*y?oTuU`%_ds%vvl-t4uC_9cwWU(Sb$LGK17LOwoM!KT{uL?a}y%{@WX`fQnB~t zQ3}jBCMhlLHdH8dVKDr?f}ywInyBN_6`@PM40yvp83BMF4X%b`Ti%?S_Zhj{8M?fP1e|LUqYmu-Ux)LR`gZ)|A_J{NQMS8I@rB8qIA zvwqV=t7&gU_8x7L+FCO z%f}ZB;t`r$>&DOZdR1ctK;G|&3=8Xpk$P5hmzS3t1R^Ucw4Kls*5RN_e_L1Fikt6e z-S{T;3!0vnG~JbC7?wAkZEf#!M@xoj_Fnt@%dT=}s!uqM?Y;yBLgHj$;eN$IJv}=w zD9?xAI7Fog5=*OZi0Er+VBPEOlYF`yfQYN_jApVCOlWq03vssQ+h;+m{{0}T(VN25 zU8M{nmA@-oW`kr;sTS&e=GE1_$Cn3@;RJl~5qKJHH!d{!aM#NteYjHFsCB9pZ{{-S zCH^&J*}N+ed4_DHyO)HJyH<;s$8qiMpxvF_X$x>fS?#QjVEdV=rXAKfm-VT~IxN2$ zTK&YQ>RMNx-XrZ#ZpM)=bIoVXy`=oAQ~ zelu;ADZutf8&2>E7;GE#=MY9gGcz)Rwl7>L!Ma1CajS)?hcHg*xG&6P7~GfW2F{*aF4|adWf%sh6p8%4QBQ>?sdi%a@nx@5FKj|`85yp6fCc zUg0%F@el^~;;J{||w7$WOy(K~EoZA;6#jcC-{jS16IJC%k=({W*dw?QT zh<=bD&Jmrr$BXcTs@AbaIjf?J+XRaC_$P03UW(_U@$vZK9K4)36Q+5E)9h_XQl>>l zb-#W?L8i_>^EqiHbY67f=4zY^}wz0@CCfUBP zsF2V}>;n&%HqOaw3N28H`1w?%D#htm-JEJ^EuKs>N@gDjZHn>{FgX3Gj=6ZnX4RwAsX`_D8{r-k&mvR+y7|orS)h^ z%bTqVr`1b|bz38W!W~>$VZO7@D`Nt*+q6CKnzfMda6#Z$9%$+dZqFsQQ+H8OW$kmq#F@NcrIfuto)dy0 zyX)n;OZoAuEB9q|8}JAxkgi4%H;jypeXPa{)TJWX7RNIE%`&9Ny7*jl=U0Ts+)Z8G z+_)f<6BAE6nE&Hx{^^eisT831J^1c}L3TpnhH;VmMmETwl;q@mPB1auA$k^u?2kDK zpm=MPW#D=`<4Aa2&+HBS*72XekVA}=`ww<|USYA`E3tXW{d1yH=qrZ8sP(4+1epZZ zX6?I6#%)<6ollHZrYmsnDYWjaWv+HEj-^_T%G~K-`1y89y88FB^FKaJvwcsg77LZtq1BF^h;I^di0Xmf zRUKgkh_1hGi-VFBF)*$of)Y9;7N`*+jvwOXzs~Ynyp&I9`a@I{F}@53$gJVZaKL>A zYGI?rjYDLZ7xQ}0?!F^m0M>!-x1CP&Nwa(~XX#?+2c0($sxByaU}0%_K~S($L#VyA zIXGraw;2;fG8k7?B?!n#sf#m(xs{N5*CY?e%Hoi_=lEcXy+ zMFu@}DzfAzN*?ghL~1BnD|%lW-}(uOD-tH1RQG$k(;-dUlb|WIZC3xiILo)1zNZ3RS7l|lBzBIBgBZi7RG^Z-U}N zgmVlYGRK5QPcBEe7v8nVj!YXJjJ_Q1Tj}1(^3CD{J+0d{{Boh2b|tOHcw641U(b4t zG`-F(!*o{)b@9HSbl*!AQxlVsges7*%Qd{ZE``L)4LZ+UFD*_5#%e^eW$*tsQNMng zk_@>CW+pkgbJ*PNzs`^T&&l6fX&weQ&$xB>1@R~nxEb@@@7h3)AZ4%jU^J40x|@3| zH%ah^v~Y}*KcVkjKE;qgkC!gd@Pwkj70u_VR-3anQpsR4VmILHg>G64g@!*XbN`l= z=^V40N5m}N>y+rkue(Sk1%mt(m(!cut$hW8OdlO$nQxQ+AD8{`uwCtr1bUm(K0??vSG2j@Nvz9 zrIrpK`j4G!#srnff3xL3M9-|3Z0${%Fzb@m{GzPCbOn2qe)phCZx)6nsk5V_gx=KS zQk)Jy1j#MyC(UHb1OIuAnJ4_t#0_4TBwfBIf6QDfV|%o>>LEA{5q&*9Yxbo~w3o+F z*GmT`L9~(^_Fcp8`oLVlghVWGz__mGL0CJoZ`ZC}OQNUkO;5UT0fMBOJ7bsO{idpI z__-n`fcz)64+1;F5T`ne3t1sSK~r_q)s5LD*aowo#nPW-iTPXn_e*&H*H1wLWGrdU zN8~KlI}~Wjc{7DDB@EKjv&0Q%+i#0$u*9hLujY(=9IfN|d6WNQH;bNoY9u4GvI;29qo7DL zKWT1mZXWrNKHvcE3*E$YL{j)J#+G+WF;)fMe&zVr`z2gId@I<4{v*R(vx(uHayxg2 z)>w}boP!V<2Ah}&I?hmdHaMFvkp8_L0=NIxZ$dzJ?vm!-M*5r=Wt`q{0ga8xlkb!< zR@zeFhQ@T8q`Tj3uAV!E>Z1CgfgjLEJ{^A^xXYJJ-6&tEQiZcs8odBO5-nQ**d-=~ z1dmYb3D?0g)|LOS67kn*w-|#0O=5R;PyWKN z*H)inxO-JH%5f)FSYDPfys1&v_=`pP;QW#1-R3mPX0d8ZHhiW;A zgMXtZd-;8u@4sK}za-&9xTi^n=s7iY^$S3P6fvM$?v~5k{stIm$NBsh(}r5&QH+M) z2Ti|Au-6PY@0I}L@fo(+>QNo=?fAzDr5TDC?~m2IjlsW?p8xx_i>OGQ6PtnHpH2## zuTldScIY*T$U4O~Vx&fY{nuM3{kRWMxxSffU?CH!pGb#(}i=Ak~$){*ey*m zI>*2 z@Wp_IZ^St@Z}Eyaw>;p|ItRvm!wl+uUri8R`~Fj8^q-Odv83)B92^}}23@rF_L&HG zCB9rakW4;)v0&)x_ULCMu7Dt|+iG?Vd_vm=`YNLu@kEWd+D8DC^i9#W)jWW5tdu+1 z&}kQE0ex*G5_K7#ryM7x6>xRR&vUl0Iuj2SsO?>9H?b$qHbGA>rU zjT*4nAVE1iBVYW1*9QO13$9kn`e8!6lLHkX5k>;Pd-tuGCp5dmd1dIn6r1W8_ZGmT zHUmP?^YxgZ&{)H)Hu_M|{Z#^Cy>$&(fL#F4b9;bG&IpWZI>{WOJQ@U+rK&wa!Nk|R zkLG^`wN&Gcsn0!yrmCj^k`D2fxW*j}##`5dIp=Qb;ct@0WdHUef4v+>E;-S@|VWI zS;ed(V(jXu4RF0WQ24j6FO$67SZmntxqI$op2u_PzJk`{0GQ~_(g{#>G5+Lt%xSy^ z^e75!#w8@-04CT%N_FOOIB*IV@%n5dU@kt+)7JZO+UJ@KRO zlT=m#bX1i~-t^KJPm5W7=mmUWA=Pl)$f5#hi;f`Gmy3x!&&1_@>3hEm|Nelc?i&~w zxrB*2g$6B`KJKn5QY;wR=HcOag(bmZ78&n}7LjLy4)YyXtkKY6>aKYJbpr}D?!ObocGWK74cP70F=#mWw95Aj;9gtS7k}XC zu{u(`*>o;&$Pu(^*_#0fYiTlo`o{zOTRs6-f;h~A7T4=?24jD!??`7NqiA0Rpn0iS z0pOhbNFu*>D-jto7=Ojkm%58ttkPO)RAiKg_it8=!5dOUiX}ELczNFe@Wx_S;-0^p zENdN@n4Kw~k1On7MwU&z&S+@+h#xzsJyc*mefu;N;C5l_QyKb_#0EApbcWFyH20W{ z+I6qXE7q){@La=d@aW{{$n*&$3vLJcVDY;JB&Nu+>Y zrn`l z>_umSK=A;?#g5A-w@Osl{}zt_?HK+SC3$i3PlL4?@%ny=3kd5`)z#8pj>aJfuEa)9 z^8w(<5`U~^Vq#KjiMq)Fj6X0?weItBWtZK7)df8l(_+tgyHWBSBj`ePGHn}CFxx>* z?s?_czw;}(QQtb9FgU8R_^2==qbb0Dcj@BmQ{VzC!Cba%ht!txDVv*^4H4SSNkD)e z0=AI@YM4~o@Wx)%DpIWTgsVK*9B!1oFlkp$3ovq7kOQCcN052~%X4S(>rU27m%-A? z-Lu0V47?Ylt8r_Uo_n7^e-?6Fdf5GXZ!L}e69EuqjcRenJ_~^pz*x8uU`BSrg3f3t z(9kv%_0QVR&#U=gj*57Y)JOXI`i7=_qlO1=26Y!{fD#h>5HP;e^j)1X*Mwd2uV;d? z>OFw|v65W@p~zC;AxgUU$6m6re5jT@io6klIKWMAg8j;`r_A~r0fmJ=5qr*1>uf6w zIKV(91+$xp>yrjhtP~J@3M`LTmeR5~F7|w`iBk~~5ozL%cR!o0i7aW%*(yQ;LRBJv zXg%dO$LlOV4Iu<~(oYP6{OFA0C)+II4s)`o&ib{a5xmG&pR zRl7S;;}uC<4&SRH$&{E-=No4d5Vb;jd8D_bRtl#5N|70e=QC}{YU;E) zBD$78i#XVQn-)lUnv6a#g{@Wc=~jDbM38Ifs=Oe}+w|gFo>0NGe$PscPy}G~Uo~KJ z9(zh0M3&5DMoBma^nAx9g6HoCV}qnKDu{boIQofar3j_7HuM=1JmK0>b4gN)zB{bA#PZ zgJ?8y4{RCf(1;yeZ+*|BMw})RdzOqFu-IaG4sbDrR_w6Zx=F&0xMVKrX+3?}1MOfB zz`yK70HD^@jZx-bP25cvjsWa10_8Ys=g1LWTom;8fb%CT`y{G&@ z#OwXxPf_W2fb0n{u5@3nq%@ImT3L|S0aF!b9MEXrA<;I#+T|+)8lpxcMdnV`9^J2l z!K%tU_;stH%h#s-&aD)EKgoWc@sAN7y{SeWw_5=(I2R!O%ts=glFJuRVF-EX?vxZ2%0tS9I z0uffs<%clZ!vw${;b2=Q^3!1a-!>2OntVjp6B=7oMCgc>GzOgYNgv;XSc3>=q|IHh z&t)4%xdD*fVItConpB+~92OJz^73*jk?aYud#@C~WlT5#?5NiI70)R*92^{0E3m0K zMalztI+pri(bI-~Eh&`(7>Wa-l(5)kBn_B*I1hG62NN47hFvryV5a$}Iex)NRNm5< zo{jtodqvypOsYgmlB)flR$|Yl(6lowCMG7L(sd~_eI+)j=rs)S&~Z(yX>CF!+uB0ijkfY?|5;h}gm_>davtT^q0E~WpH4S4 z`yD&CB1GH0;H0juPPz<3K~G7$m%U+?6niW!__svEjvNrmfqjbgP==9m2UD<3@tIiQ zqL!cn3b2l@e$Iqxa?!ds_Fy_xKr%|tL0t5MvJ(kg9bc9p#ZI8yS^V^y1 z+T44<9e7&Y=0q-pT?rR>@QohCMc&2xTk!{0;{92KH+aMQMtZ*&?Qlqw@<(I<>(p)b zr*(qmEI?sz`Qz~PJO?ZgRFE<^H#amXDajL3-m6;FDKP=&&ht>%oi^dl_aMuZE6#-GaQ?a?`yu%PAmb7wGR<7~B@U|j+eAxppuCv?P0ss28HRq! z<1fklk54JLAvAY@d(&Bh<>r^De*oG+VF?z~%hmI2UCUnT+jM&&*cfCh3w9Il&}Nu&>% z`{6^EFOEsydv9dS0B2i+*8u!#tdfYXgd6rV!SW;K)qi`gFT}_|A3#m(mtpd$pl;#J zd_}be)1$PBL{=YHQ-p#YLtMb&GUQ^|^56jayb07+DYbn1fv?sgAZ8Pr9=$%jYBwqu z6|VvcHkZEwZrzg5?d`&s9&~;si@2KLIA|rIQ2bfNRq9tB`pNQ zRF_Fmab3U{7zEZRg$vjN{Nk`37EEgz0VPf9pC|^(v|IpYofMxw&F61N-q^duxYIpH z_Zf^#XoBu2*n4W7?KU?vGXx3NsL^~pUP`%AY+l@vr&rkm@&yZa30n|s3O)IB__TCS zP>nCX*qp=s+xpjE2rS~QmQer=TXxZ?AAxD6nNi`_@MY=SbzOi-?1o0pBLh?C#Sys% zR_P9?RF>w9MFh05#&RGh7)&YZVy5oVc0?C!N0kq91FYTjjNdt~vdXvS6~$zj^jN1T zd=7*AhmMUiV5<>u3H#?=o(>I?FVy#Z`1iB=UKLV^^i+HEz(FJ`{Z(43qbF4LOTVUm zXnV9cuJb~@uOrI^5S$k+RhHP1VgdX|CuFkbY3~bPgEW=crFho=$KG20NDBaQxD&0elv~&+h=gfNzo})bXxu5$v z=Z|N-zxQ3g#agUc6W_Y_wd1otd++OFd4!k_b2kQr?zo$bclsgE?ohM4fQH!5zU#!e zR_nOlI8}`=7FWYSU4oGPzJy(Qn=~OOOZ~>V{qx*1*t$O~TR6pkd3lK32l{>xOxW z#P%b#&xU!syJ#r1ti4C0fus3%tvpN;mssTNt8al2R!^X5Yrh+90q1_U=ojS5$5a2&ppV| zN~13?PGjnCyUpJZ*^2_+Lo^^xk-sm!dcvW?$M{n^rK3RAx8tB69N2gDp4yFImNUdS zV9QIvc3Us~LVF#EM2wdy7y1ihh=)YC`W}8XFiN8Xc9qlP@cEokUl#`z;E(87Rd1=f zJ{3$wK=&~WT9?ur)naOKLn44CR?=EaeIJZ&+{7N~oZV;wGy_cgJXEEU{7 zwPTal%N8hw`0sjtC17m^leu1~h3r-^0|f92m>^>+wx&C`aJt;ZCc76jVK7D5A)n8* zJBjYBj_ZO>Y_~PBbmz!nPD{5!{<8=4=cma!SH_4sL_k@fFoWv}oECHp(g$GCC(Tul zH}Bq=S&7d4c&;(?d5eDpROnfA50D-KDX?1oUW7&+v~_{1%Ji-&5OR1LVY(Zaj_uc? zchLK#2Oun+27zHoo`c6)PI=!7C;*E9vqu_Ldk`02;%o|90nyu5cnq{ncMNI(46Waf;Hml{LbzqW3_%=`%pyE2z>$;VmaMc|ECvVhc4YA!y!slK80#IsD6x-tOjI1G}GuE13KHa0d^79Z z@)A*n4xC8rTse*X1F(8-fjZ8Vf`T3oN;cpW1Kj=sEuHq?O~PG)S72{#ZSmenV!$K> zyR+}#4mst1+x+Qo(926K;xxb;Dn%)$LF$qOFMllhdP|zP(}@TDAB7g5Nk!~Nr^SaB zphtWN<;h@*i<%N9Cw^VeN^0e$vy-aU51O^#10Yp(1uv*A0xgVpL_S^oyJ3$Df$4Ld zLMX_PPHwqK7DA8HSxlhRdEwg$;*9q+0TalVC8g))mZ%N#a&wb@R2&-?S3Ge!|M6yW z*uJ0Za=m>S6Mulf#V7RDDR*(Vr@vScppA?zE*Wr0l;$}yH_bJPyXU||yW$S;INNit zF}=sp%c>{e2fr2OTabK&4tYVgqD~Kqb$k*DEJrk$W%1K;F}ZQX@deN=*e2 zPpni@=&8xdja0}KLT>);bG?#*rKUDsitIB1d=)|&77gbyfm7Hg^WZ?E7JU>e0OvXj z`q1&-&7;4vxu|)x2D{^u*RwVQKk4rL=lkrDgn^z|MURv5 z=6H4hPN_#ImHN>X$c4Q#Lg3sl&FSsP@fsxgUoNVp);Unj%D)xU60#cND}2y+5a>v@$5 zg^lO8O9ZP$D(R^+oi118k{6J8I7009r%z~=KV{?JK4920LVi6bVL21QzQWF4X$c95 z&k`Fq1iQ>YYPIBwp`&BTJYy8t+SeTxPSAtA(TUX?r;3u&sn@Drlak$+yh4CWK#EWI z$VZoy$!l}$r9E!497GxSZt~8UETN!{OEB7HYw;ql=hH61;-^IOQMe)}k02N>CQSvOQ&bv9_LsUaXIr5(bk{RJ zxQ~_E?5z|0lQY^wu=Njf6=sxc=9gMjUC3?nLuK5xfp}PFypL$h(sh z2I-~k`}=nUem)$_Z|KwQO;ivF6weu0CT)!WOSSh0y zmV4=vvI71;dD2(}PsGN(62v1(@c-k|i8Yab_NtkB_mJ`Aj{@cogXKKi<}V`NA8qu*<@V5Ydodx$&N(xCfKGd-IVYyT+;4;@+7^%B@*GD6brzngu*BgvFC;H zHVKk6!YJVg*-*E?e@s|8KKC1}BUkzzYtS>-KaMlUUGRewWX|K(oIPLH_l1>*SSjKs z76OKg#RH2;x0TwYgvXpx^F52RfBi}Lh2M91;=BL$B{$UD?-mTbKYYol=UMgWjn%Fm z2JQS2@!k>ClKYa&*7EDcbll&EgS8Mm#&Nl$)cWc&&i+0g0p8};4@SP7M#KgS9EtiKx7W5V}Ol z1*>h(ha;*t6ga{&mohPM1!fK#YokO~c0r(~egJa?vITDYYbD?z_-`sIJ7~HM#B_E2 z!9RLY+rO`sy^R^*qbB(y)|YROj~XO z@HG2fHFGh@N@Nw_gxG`pd1)L-V2`pFwnyZB>|bji;xp?>e$e!l5V8zvkr3wUcYp1A zZ{sTuI=yr{wS(uOuso{^&DEv+)qJ^m+#T*sP~PueD0`7Iki1p#bpg6tM@cPh*Ypq(EM90N<&_$;^jr7A($>5k=ebGX#fNE5y1@+GQbQ+UFz zKe?8iT#(Srn};J!iHEH73c@pnrJz?p<84fqMF^zDMx^OI$sF7d+Gjzx=*OjB@My|> zDX1=P{<&=$xUb$jP~e}yb?OwDD>ECH53^Y(`wG}I$WVbdNQi(%y z8$N2&M2F1Es|}bTnIG?3soohw^40Fi^Vd>(|K3lr!5C2?nqQ*F2h!j5n(Ww20Q2?a ze(#<;oKE92|KhpoW&yF!dSYEy=E-o&X6*wkKZX-ac{%q!p%b_JS7QTPz;7;euA_p7 z(e7)1Q>uv=dyC8oL-8;S^0a42|QKt6UbVZM#`n7H3sn{8V#)=it37 zzymld^;>VQ1##5eZ7y8wQnMiuT`#@wVIk%@?!Hr=Q*t>npwxS%ba+79xj*qmCNK~f zWYlSNi|-pdmGediFL5JURo(2sP%Ni-Km$2W?`B$PGM$JTKZ^t)R{Q*K?cy!Pctr}S z4!p`Dv^1NU*?wsrIkYwu`LrD>P0 znmW&&e==r&+1327wih4Enb(RRXJ2&nAZlqetKi(ev24)rc6JSl$+&E3C(n&_PqF5y zO{H#MX$SFqnBXFtQ)l^{ZzH7aGkz(UwpXsAst#1W&;Vw-Ju)@Uioj-rI1wSdKcAHA ziAFIzCGOj5cN*SOvuwDiX8#h8*p~2S84Qyrab3zO9Z`(dy%SlM;55_?FfkWPkj+NE zcSYKm#M}7A339lHU$GMN1T%ojr#wByn``IOB}c%=3m%74^p!x6za+SC4$Q?6_TIeX4OQM9XWW19Obi1(x4aSk62bAsC*%>t*VjI3O>uOA{_EH$h zFGWWkDCSDt)fN!V1&b;B@^X%pM2!(RkQTVoyvI-3lnp#(?nh4cgN?UBE1n{{t?>=< zZ^dx&<8!lNHJZJ2BXDV~e^$9tg3PU4 zz1EsXK<~N?EuD~}v4E@N?8`*5luJ@*-mWK3bh^9)xF4fH^*~aOCW9a&ik|xq`Sd1} zVR5%m5{OEt)hlX4HT0-8f8^-Sm{XnKIh(wyby;>z+zd~U$FK#hyF!Ma7Iwsc`ur>A z@Rni%ULfPPtkJWtUNxKw$;V2^yOG5UDsQl(sAfhtm7cYEVZ}#m35Z?J215xH|CRzx z61}M;;_BzB1&t#~i<5piW_CkdUA+3j3KN(OmBMxV}EIW7*?9@;& zpUwu%;734*pHX5 z_=!cIvJ+@~`M`keNj$G{Ej+W4<#UzUGU|iFzglSc5kYgI00>tM#W2K%%EB%IzTj9J ztJ)d7bF`0baWVS<8Nixoi*shv2{d^iG|TqhKkrXJdyfCR*T<>?yMx;s=ScRSd6tI= zfuwp+&#TD+O)CeXl`6Scg?O77HqgjBlLWfW7;Tq;B|v|Dy)uEZXJ=@iKX{O^b}%&x zlEXCN;m09o*ZvOrg>L4ficy$f#)1 zx!=y{PlvWb^bgJRu;iezW2lgGH!@AoX)STT>@r7ZLjDwAl+k*I$U$ZUo%`t1T-`(} z7-7l_Z-Q$1UrhY z6%F#jWyJ$Jtn-TdQvsGS+GLD-ZsO2Z^bcE60&@$oT8!zc6-C_@aUNW|6lXPiv+Vl| zQeBw?rVo^RR%H`@VEBM8+jXaRDKWM}%b#8jgT7JPfIb*Fsr36Pbuz&kmr*4J5(xuY zQTk$eOy(QF$cNCB|Flr~_`pIvKI&G{?7cKKzm!+&xGvdYOXJ&DC*@%Uy1*Pr41za3 zgeAi%ut#IXG}~vkahX;y<7GxU+t{ZD)LHiqBwYuj2Sa3F9F1nKI(9=Zhd}$T1rfmG zDg{H&DnT=x#_N`qE4({H7J231qd~Bbw3NnUKi@VFQP>Hw2y*UqU$8d*S7`)en^=Lz zKx_h>+O&iLI2GQeKb_;-%C(O{5{!a9fa6(=a8wlCc$)6?;WWiPhBx8UBx=%^oef{* z^m*x!fl*SU!l216vh_xuJ>V?m#l0^)t7$k9j?v;~F``vb0vCUS9xxSbm&%^*#*HDi z9Nn)SmSSj-<@C+F!jWH3hI}n?j^GuB-?!#JH&N$biRny~AGMhUg`q)H&B>TVK-tFU zGw(}}FbZ7HF6^}J5;@2owr%66qlj*0VZ#0?UvNC!>pZD@U>xWu;8|;{giz?Z<;OiM z8O&^zn9P-d_1L@-tpqMxlQx(egaoG}^z$YY1K9$f>f*BkJ1E#QQDZ} zGIVO%T>+P;T&LQlJS}mXhA3)xedRtO!<`t`2Oa#ytiwtOT1^wpmUX@&PtctZ3EV|{ z5D>|-sd|`@I)i!OmIo`PPU}0LWob9k$z(?%@;Mu+2jSm?|F9+}7BN8r7#5mNFAwY5 zh1|og3iSslKDM0&v#@lrf%2V!aYZ?*P&qxG{3d(UMwwV1uPzZ=4w%)o)60JZD~sb7bXtpy@QW z*AluuC3*|x+**U5dX-RrO#0b;Ito#2n-gI4V6eQ%|DR4m#L0U51))qU0V*?{U5@LL{<|y=X8wYO>^;e$ZN_|6+s5Wp(NfMg*r-tp7Qav;XQV zkeYg8uRk5L#@qB9+qr?LR5M~lcf7e&x}xrWB-3trX_(<_rFo(I$r$I`k` zAzxmtjTq5Nu<;Aih1XjQ_89i!TE;8-)o507Yf<~JQ2E0&zniBZ9J0ii-_o6DkEwjJuFhWBez1QVA((Fq?Ameds+aQQ~8C3ZP`F#K>Zh}U1WNiqin zl<99c9NyRh_~YY?pSEErNGzq18&v4qL8?K#Nd@R*`NQDWULZdP-LwU{eAnQZgjX@z zj)N7%i3Z;I#PVP_C$lm%mgx7f>Y}MY9l|j1LF)*qMR&iDjDX^gg`4Hm5o^UVGP)hP z6&fC6O|HBnf@jzcwc2(E?bxi+ysPh}vo};?{&N!r^57%FDL3?&!-|`>HJ2_!2h{ajQpA7ye2Jbl^Jfacl$|OAGyb-fz}P>A=8a;!;iX1takhx4Jn8kPA;=0w(+ZjjtePS~66Vx6v;u z>XwpGk1A61h#xnOdnP`{Q94pEP2#mKGYi^1_HdNfPa-i}`Cc2=Z=?L#vpnt8he6`` zEt1v(y9seZjtl9{3Y+Vb3t&I2U>xpJL9Imqk|lk;kz4kaqxNuJ(%}(^g>|1q*k;=3 zC#zbTG!IO!J2ZEGTHbz}CQb>CErwuv5C#p=A_T-!I)y_pK^ve9TNV`f#ad38<+;Uj zNpab5^QLg5lrZo*eO>c>DRjzSeKSi-n4NA220Svq@k?#)9b(9U`eH}jzA?PboRHFi z$v}mn8$&|w8G_w+#0Va7#SFK3)eH&1o|SrNzR_#5kViIGXjn*dHK=eY_{vG^+O=*; z@)$5Dmc(PZmsf1=gaSNcW?kK#8KD-ZGvhX_5;k6ro0-6uFsxzj{|jvSQ_0$kg54O3 zT0?zfVUtf)>DCqoAGPD0s+|mSsOuN%`EyoJS18gf9_) zy8%>c@H)=!`i(hUD02$n-7S>^YFmXXvb?EK|<>--TrK7V7Af9=|l)FJ# zs27Ac=RxoD(a%yL=&++vsAXRDcAx{pFCPU9pGj)7!&D3cu@TuBvD3pJ0bfP}VimE_ z`%EPan`ITWtDEK>wSS06Q=~5i)G?tw35RQHSy<1)C1 zQ2~x5!ke!#fn59{R5Q4v9^W(3ecPtm#Yi-#7*Mv$fp|72xUIJ+bS?o~YX^372@N1W zMwaE247IjM#Eu|>lm>y0rE1kQNpOfi3>RL-bkK9^mFM#{2?8Un8w1V{qmRbXT&5=+p%>X=0O#8q>0g-$KK@2r(O}`zK=J)OTfsm``c$+i06SK zxZ?zRCi>^!(47}NST3w990G$Jkbt;XV?Fu}48`PvG&SEA_)$+jsvpF0sfNY4OQuHl z21KIGSP(N^ye?h`7}~Gnc+*zbY=y~m^B4;JnjK6-cm}M2dCcRu-rU2Y?m6vz4IM#( zh`Xvqmzi!H@7Tzb7M;&=%800~>3F!D5|z z^+G;g{bg4E1b@WHLBP1-2SVum;2O)tqDxL=c{Pr9#BgDL&D9XA)S|LyU5iVK`hJxj z=vJo)PYZn#r}=*Ok?$V8qmq^Gy)MiujiAYSCo)>o>PB4F_>Qp?Xb@_+d!c|OvtCTQ z7gVHqI%tN;IJ&4MY&ngYNn_%oGb&?VIz%qhB$`g6?qMCuOuC+<#Z)ijWQSQrnNTia z!a=QtfhjQ>J)L|Z}*j-sZe_c>@CXP_I586aF>Yj!oei%=g$dlgh>X+faqV|30UZIz*Q2t zyR;=2e0ipU&&GB%(&8F%;j^Dk#u8{-%SEC4vbW#FVtaJcE}I2u+~ov*P}* zWrezJ*G$A}!Tfl?1Nv(g@117}_O`D0`K>#Aj8fHT(Y9@2&OAr+wy0k?I@Ag3cj2Xs zS>a)?U3i{g^X&&y(q=wYaJH3*1F^lywB$X2-%1?RppRD1;7kHWaKrXhF&On9yT*u} z-lqQi7k=&8^1f#XOS7HaO5~y;>obRSvLc^`2fHAAQgJAgYHri84y`5#VeVipT zBGNS#*DI)~Y+}u7zbO9%~6g<{K?sdFg={)|=h{W5s)D z%Ilz^e>-VVI&a^O)sKB|R7nK2Yf##pE-6tU8o%a>0sG9NBT&SABcvY9sABG>)oV`!&6r1$EiPd|1`N`Fd_2vzE>Xb?}iiw$o8wAmh1jT(D%$%(l z#%lgScZEd?#sdtAn+^;iM1s!N1bBw#Z&((XIwUEyFZ3jWkpc|W%f?Os*}PkKl$Bd? zefjdW1)JmBfIHy#8QkaM!f}BvMkPF)In7aS+~S}zDzsWPHK60V^5h#cLXwAcU@0b< ze5wJ^+O8ayFe4NPa}EKGpTultDX1c=D*oj%Cq$?;aH6`3iA7h-c_Af69Q4V4!;Ik6 zIv`Cqrfpeu(AQ#<%2}^8C{}PBtOj!W@sD1_fSfP)}vA2>@&=BJ*&L{6_{!Cku9Wn(FxJie?rafdU)y0+jAVTj*I~bdWDh2G zb^_Ck&w0kZhAd!es`PYZP{3l9kKs3TI`s!Xq@w`=lM;>#gUZ6U0ms>-wId6r6gj@LZ4R#}2ZO$>WU$&`sf=Y!oQi#VM6Bk1Rn4*_)Q z+a=XX&oC3l6(wkvc&H~W;w)(W{qvf--sslH9!?E8Rw09CdYzdtSwfDY2XXIREw;#h z!@JZ`V$8>0Ro)S^r#)tHZXI&9fUv5p_HYI=G1CXaKF;OCRI|3dElPOXO>6yZh)~=) z%3GfUysMCz8m(SBB0^{YRQN*VW^~0a;^brC;2Ebjgs5QfDdn)a9 zpeE7wR&(@H`O(!NEeYnZLq{fEGg@xb*Q&nbejr$qE_mm^Tv7w3s^Cc=%wrjjc9ZCj z*sAWa`FX5Q`Z(~7JvX=&zY5ZB&j-c%224qC_7AHSi+3LPSkkT1JpJSy8FL{gGVj7d z=+_FI8ZfK`;4!sW7MJ%{wn6QeT>;@yLEFtNb2t1)lCaqFk!ZZly&vpCJ(zml317-e z9JgzAx`Xv|{-TF^x8BB3_=5_xwswJ~EvYwK)Ns4%7T8LW7|&D@SFXT-S4~8|a3Pev zYl73Up*RN1JqLj>&ofBiHBIMtn~}Ih1ZGoG|3$Ds+7cUUPd-bJXny9f;T5Wr!lj%9 z-8-3jKWl`tirTSoJAML_<1hW8m|Bq-{FHub&wNNi`uLA+fjK_xm<#|?U${N?k(EfvSfhpa|70hIQo`GI3b4221R zy`PmLE0!v%7-DC`>3$eWR|1f0NE<+?nT^MRj`vM*7&T+j;WZV2SxOnMW4~=)oW5}j zP?L?zLR%Cz7dQ8d0nFwTQ}-yZhElrK!73}KI z`UoQrK)n^ZVhkB!(E6l4j{>oyk^dOR6>$6Vc{WD=cKvfL#}Bmt+Z$;PZ;9a=1|*X) zS9Y_~&>c*n;0VQ#UAHUyUPXG<(+tbKnHVQsw;#Td2P)-h+IqehIUymYf^PVI;y@U( zHM^C zqmjmcbWtvcP}gHG<)B5;gKQmPA=b6UGA@@up8M0g9m2@T;X+zsMIwkOupC{f;7e|~ z+xr@A4%v26#Ko#yRjlQ!7X$s;-2jEbofqG!4-OO+|;f(k!APTMSK-quoT+v@<#ycE-R;sNI zVy-)CL}Scd7&1Iol}Dp?>va<`h|rJL(BJ`p$?3a6<{(n)0|DMiMbZEi0wKz$ht={A zWiJ`)fBJY^F6GWoy%i!2yKE3E3nbc?V^H$>`gF?|F=ZlVkh0V+9ni2S2c^fSCCs4% z%4vR&Q-ULzLnym~&R0{Cw8d!E=hW;kPPF+mz*{FkdNw37!PMrNA}rR%9w71luB1@Y zYEZ|XY2JBMx|MY)M!k#Le*d`iY?0}YC2dOSt=#VH)O$t?QhyG6ow$*r>T2_G-84oY~^vmYo zX4^lt*dJ*8G$Pj$^Lz+E2LnqM9Ef}cD(*+E=Qe}?0>^oYv683w@`N^xheIH@G@uEtm|? zw!D6`av+F&stybwYa<4xpc>%+dNI4(oUq#MA&a_mwHT=DTY?BTto}nv3iI;vFerT_ z%TNEAN>CzrWZ)Am>JQeBxeNF)^Y!y;hX506(6;_^8X3&hX|4G*-&Y9q1LtbUWEcRB z%CxGE^UVEt+`i_ged$U_fbbFjFn`42XOdHWSc2ML5*pnrOMh~~;XLpsFhDF4#P#Rg zL9L0Rib|f_$}Gl{(}jmq5XuSgR76p5lmI3BI=P#8UXE%i21MZG5s>T6TCZL2I_E2o z(%Q98fYCDrYcISP*BBlUdz;S|1WO#fc-1~LFrW+dih)@D8ITaj_iT-LgtV2Y%&oT* z&2KqN)?}+#YQLtqKRuIk>@9q|ym-4j)@Fzb5pUk)$ZYUf7uyViv#*ht=Q6Ik;*h-| zrMNMm)lp@pBO5R9C!ge(4u>6q zgbbr#=sB&Uj_woh)7Ui_;G%l%E1|;I3dVy*8mnbhb)%?)=fgm{97!%t?O-I=63k_H z0Fiwf`O9k-Vvt4;Oe)p1>%25Arg*OATP{#@oh`X3D@K4ZLWa`>W`dOigUUG&^iyYy z9)lQB)bOky1#UBUgIn$W*OVJo&0nQ7ZacRYWbJ}!GYh;!ri@O2YT!4od$g#A1TzHe zFzJ`w*83tP6Wf@4f(yU^MnMM?dTM5=mu>8Y_XqJX$`A>nuF^`~WchtsEc{2Zz&NuT zW!@>T`hHcYVJ-y0+yT6fMNslLy|%?Zn4#1A$ik4_D2fwSink8%Dv!syOgVx%(qA3V zxb(NhpJ%jit#$@k$4P~~0k8K8M*6@~)>vtjOUC`Y7F)Cf;DLO5D2~Jhk$;?m>1CB)RIFbrzC!pIqpulu z;$p@B_3jn;W!&|~)n`i5h1776k3wQXKO1o4usDE7V#`8fD}aP^30>_BwgGuHIqm%x z`y4gmdFCn*ew{JMkmnoarrc|L*$-OVA4ip+3^J2};&Qp>+9kY0RAuPo2KDOJ-e*;a zrzAQ89*$&bBejJO1v!)O&rC?gxj*HCIxXH-_SSoPK$nSJY64;7MbwN;21E4x%#b7e z&KcjBBEy}2jK8jx=emQW3(nn=<6Jj-2ckQEC~64A#iJlYJjE2kKd7!1+*yx*P%><3 z7sOt04{m3wiQONXQpFhClQR#GQ zUgu3|ISv|45Q>oPfMyMq364W8EtUxV_8We=iva9g5)NIyi*6D{LC2;Z8#Dl6L2Qsp z=ngWVL9Yrken}|l(TbHP&8%cOh0L4NBDfli4_35lzzoi>Tmf&c=~9Hp#BKV%1-h8` z_Ed9FYXP3sr!RQOZ_s@jfyg2S6G&KW&Lx4?U3*dPjCPuuT0z&t(42FRSxtmnM z6h^Ezl}252%!P^x%Nu!YfYy;V(73ZTIFtJv6dWk^{e1OO>OJJ^Zf5QQhZR3&1#aSQu==Wp5OXoeo43)GF-X&I{ z?zW9~Oj9zrhjV9mOldY&b@G%8;{`!PKc|AwdhEltZ=GR!P`4N;+YS`;&T_C#i1?wE zfmOY{dlSMC7#Wj0t-%1f*gC@gTV@i3Sg&VPM>{{1DNpwPi_nO{IDblwQTDx)v4poH zD?Au)6R?oYzGd_x+pi_cp(jW@DIJ9`PQ8*%pf=0sR<+ox-<5R~zxXl&R3G!)ri_w> zRAvX>ffa3d;he)4x@Im2-QMj@L`_eVEKM4o5f~KEZH*TF*w$IOukI8;FYID}iz!l@ z0VGn@l_W6{^XaKugATexdD-MIC875DLYs1jfC@@WRPY{ngAdZ?!89T&$M+Nlo>0!Z zV^)|Lf)SI}TV{gzJ)FcS{wHpf*hc5#o)!eS0?j=V=CPTyHmQpIH54Y6Gj)&XuzpQ7cs2*j zM$j#D5(I2hPQSHSDP+|2X^FviAbmehYz}qP22M^L1^)Dm$kO}glL4QEs;hjSgLrC? z%?ZepKgC4=0DGQs2exbkNB}vJnGuDX>o^<1(E8=9;)1?;T^+n|n;eDNm&=nJc&{;P z_(9M_)p8j}CA^Igmmj}R7B*1M-gWI5#1KJHC?^x^opP{9845+W_ZC3aU`mL0ZGa5nfze#uj!Uh;3 z;l7do6KD1NI$uVJ@DYAsCVrn#=(L4k!OMzZa;Of+mct8M z;)s~T`VN7)_?d`D$>`}w#dtRdX`Rq^ntjzrVysLNuAI>Qi;PCd7QqiV6?#!yoks5@ z)*bK%1vGUQn`_&9&Nol1%jmR*^W4e90z4BN;95Ql)3Got-8Ua<-;yG5%+_7yf97MM zU{P;KR12^fBuG@$L{hXaI;=0>Gy+38OEW(XE$(Zmq%c|XVQ+QDIa*Mj{;P8t>+{pO zWJ>5TJK4o2d9ZV4Ss(Hirr zc|>gw!tn!BM3e#1UP%kULd$utRI|?HwT1CCDUJoCs_FSh3C) zOvn@bUy56}@sFOCYf6N@^6b7{j|^)$#sgSz*Z@(UBWU5^Fc=Alj_k31 zp{A=geQ;LAsVkr;!yZu%3Lf~VlTnW#Rc_wKjK^}srzv{isn>uI|qdfv3pa~$emoZH93gE*Oxs+gV z)KSnU1yCB_FI)nlt!gjXAV2PqD=kmwyB;!pdn@cwhnuT_MvL*U!MwjvyBpb`#CMSO zEc}&7L4`Qj5`TjN6QH5q-F@%(&D)IVV{g1seM3w(3S)4i6R+pJj_MD z6LiS5Ff+3Ob%sxa$x|<`h{LLzlq$Jn#Tia{U&U^pxyr;w{rc2Y5tfiI3(sxvfa;vi z6aOnU#M@Hgm<+r+o6x@Si)9OtMmkU+fk3F8DC~e!VhEPO9`lPiPiP&sE+-$6-UFOt zDgte9aF!dJWY3;*1In?~()l5r-|p+rd+U%oK8sa}&Yar`IiZd|zB%Ima&uV0X4Faa z6)ra@rM0Win2F+&VYeGeiK|`t%)fHB`YsJk$f=FgZWo{J6KsOxmtuuKdAxBs2m##_ z(1;&1rf^IfRIvQ29t*j1${@CJ-amKjY@?Fe>YX7HZ=X|k@51310b96I9Mat=#Rw>~ zMVCJapOBj4m++^@%d~I2-MgVM@zcHs`^lUj=VST|fg zp&S1E{-4Q}-?wq%G;nrsM^@4AXK$al8|v6&*&;b1TYqaIKy?`+u;a4cp!K#>1w zt=qp5Gd*16-B^vx>}Q}_HM9MWEl{~GayV3f|KW+jE_j1#W`2-)2>$~v{`qjc1qoiA zuP&1%UVy?BpZB}ed)27gPX9F;`ft~}Ljo-4?1Dw-i6TcBIez;2YSqzL=+WmdFRSyb zliyCD<(N7sjyN@k=lZD?++2g1eO#wKm5*{3 z^2~99&ER)}c>~sy!v^h>r{$yOdo&)lq@J_ol?(37;)&ngrYwAZ=OJ@N(ZHjEjF<5p zWJw$5#H{~+J#=yaIg1~+t#HuIxRh*-$iY|@3a*Z1RK(8p24A1a_2WBFE$&)A%os1Y z-h7sqB1+BT@u3WPuXm>ur$)%rO+SsMOi;7n z|FHr!{_!GJ)*dXh;lncmam-SG$b@`CK-o~j&3d)#}`%$g28@M)|Sk@2>lM|c^)T;0nsls zfdMpvhL0b<_v{g$U z2T^iWeXJZsLs33ntB;ZBij||0 zlX^=J4p9-Cx0Xnj6zB3p_l1ld`(-4uMYBb3qni_$5Q$|f;kEV)72&UDO(!Ev*kx!? zUSu0gSwV`;8)~6470Ar`{j56wy{5yBrC0ogjc=n^mE!mZ=+zB`Ap_&>ZwUY%B@ z-hN1Qc`E6_^Jdlr^RHAYVMd?`_Qai0W5}Lx9^ocD1ykmIi zOE>Sj8>3h6B~mdkCweHH-a}}@M2Raj5_loF)_kCrVCtxCdF(TT+cgGjju&x8kPjc3 zRI$+JyCzS*Chm3Z&r!TRgyfbpH{axAXubZ}^RZ_cnxi_{8cj9pmrZ5U@=Cm;7X9|C z_?LFkS^AAGMc2p{xo%0I(R?!>Q*l_`A~m|&2;fD z6k5Y{yI%UUZu+Z-9xEN9k1kbQT_9N`xf{5vxCuea?`SyhK^UTv+b%!!8}fucyTI-L z^P=Nt)6fqUu4g2^E@=AWlE;2t@;Ma2nMPefg-6P|1SuY522)A2r{$krxO4xj?S-aY zIsRLy9-EI5`?73Xk(4y_Gi;{jN%;C?(MkM`x?jD2#DtPZ^{I(xB-Vf1Ws|=1kVX=$ z2WWSsKhx{({y>iN%8vm_yR-o;YL=4M78r$0aKYIcAL!dAc&Gfdk zg{q(#sXKNT4y$SmA4i=QU3w>5bUzUmGyoCGVW}JounBOQ&?02b=C1s)w{(q#wQH{z z?Lkz}VNrmiYa;pM?GLE7J&Gcca841ubZ^yVN|aip&9crVl9a+pdptxOZ?xxR_B93?;3(G(Ra58$ss;h!}tR?hf5s! z8|tAdSEsj_>oVDQ)x-8LhJEz)%vuVoVq(8JI;i=@x%O2G!UoMss?6VB>&193itYK` z$stpeug&5(ibn9Mr7qjy)U@HDL-Vd&V*!yc-FNl1Ob#6`_xpU6XaiI}>J#b~dgW`| zeoS^?HrjW%(E7`!KW_z^u)+6EDq{#n?;$3ZZ@to^^9U9td3Dfbzeg$)^P2zOS#cd* z&g|9~iCckf#zzK+Q1n;a-gk9}8~oGf3%=iisgeCAc!D4t^x$45@5GZ0%vEW2N2XKh%Ug6bO-H4tXeAe?gK)k_JKVXtEi#q>x3Y zUHiUtzi%~BNZyH6EBIr`fo^#giRUgC>hS3;QB-nPC4vimJB}#+ll}ZzFw&28KygaB zr7?(BKk#FSKFeX#0mav3XBT16PCX?#BE%|azb)n|*nE$UPj76CVlhJXO$rA-lMy+; z#kz!kj%LQ8nrY$Zd^9l*-x%L~+ zd^FeGCF~Gq)WniNjT!jYBF4czS`@QHf=I-xLGv=Iq-k&VmOTm#cTA>`q&Yp6_@isL zOEK=bm4&hFAop!_RN4j1#lG0`2Y+eHL;9GvvqfjF`M&*Vn)KvI5By!LEP4A*nU{D; z(OLHR$}vjS{ITaP7(^rV!O4K^$t>=)(tWMj)w+Ppk4du#&OR>@L*6du!LNagfjon> z8e>FO@-a40V3?O9!>f>T}}3=u|qi9+Q0}ieA*C%3@){X`8o;pDPYMx^O6W^yTeF*ZBGA z0TBYnwcReaYahrLAy?sF<`je>51>2Nk{88fHr)^g?@+jVEP1f0c+hA z_Na;PG0n*J9TVZiCybr@U8|6U-2=j|!~%Fx*AWHY=E8ai?g@;@I}qPzZYof@I*I&N+kn}?PB&V`8(=S1XSHjdGdV)eS9f~DlCR~BdhMQ4{hbL`Kp`n>%5&|MBW_lL5oM&eT3Ef(aMqh9-e?MGZAxK_LDo?4W= zrJfAz)zDi4=A^}BTk_}s*%jTm#Co4{wRc}TtGb(GM-)r4^~-~HeO?B}*y-W`jp+T< zH`%Q|!KM)i7IW~7lnbttbAFW3iAy)iu##=byx;ta#rfIC=#-jk%vqfO@}tMyT%p$r z?_r)d!9V%kznp9=lMPb1vv$p|nWsq*EC6}T|ADJ_3Wm5fHFwjOq$r>*Omq~sB?n@Yjr68)mxG+cq? z294`G*=EBM`T}nr_?E%=!og?lvF5E5F?}WvSz;gGW1y^l-IpAue?foXk;GB7q#@PG ztHnZHe&nj<8JQQcYw`6{IU&z;h<=#(qZH~$c6)skxXj64m+8GPoW4De&i(3nxcdVo z;llCGLP1dQ?9`2^|A)P|{)_T$`+Wrjln@b=?k;Hoi9u388bxvl5fG%i2I&StxF#c3U}pB^{oK!5-+QmM_8+ic>&0&a%z0jC9@i1?Pkabh_CEVgg|aqy{_ECI zQ2|T*`^3Sgm&|-&>LJcQ$@l9ytFxH2fZ<@@#PuK|>t^km&`|Ctf5&e<;MWuo1{eSK zyZd*j3GwO)ui(X%yu2Tr&$g6vt(1dMPwM&k!`9FUp!)_zL2#~cPS3}GoAZO_@Y&^% z2EOH={=rCT$Bdm?o%J#shxd&weJ&~H{!P|L2%v0BMHP4!f2P=#pvH?7`*#~j5Ne`} zXjtM%2xs`vMBGbuow{LbQ@>>yIbNJ0&}d2X2ncWY=#%9Ctd0Z1%^VLm2^G@BC~M;< z`O45*CBllhor_9+VDPUv99B_eHbE=%GbnG-h6%O-(1Uoz3MP`okL=EOQ=nyvv71vA zKG~NDC3?Yyj_V>&S$jrJyddV4YwuY>YwC#B_!z3Ygb6UFRuJW&ui_{m(Q36~(gz#f z@v^)rwlH%hG0_@mi}V>}CYAqDIs+&;((M*g*29Q_$O^y04-SXl9|G-m`iKzAGnxrDAqf zV-m4o<52Y&)ltf*flGDsr=d1pru1gMFJ zq>u=xU8@PQ?%=B6@{nJ9lpPjKwTqa3U9(`d)%IP?e(n)|jqx@A0Pp61}FdUUmcFSkz2(ug#0ou+Sp%NWk=Tz9y(~^C||6!|l(a;FV zi%NpL_Qv67aI;U~L0x*#e3yCC{{HXpEW)pVU{djE+~3Ode@Du)bRPFbHZ)z*sR`EI z=^kgbJ0{U+d%HJM_{>GVx|?a)C@9q;TV*BWYKJD^= z7KbC=^WM(EGT&J$8?m^3c&WJddba}P=-c|^bH&J%Oyx>$a=-P6 z7xfWx&p5Gi)_|(;Lag0@d{9&Far)q}@|PZSp+4$3GvL2J<)Faleh1vMD~g$bFJ=|# ze;4g$wH27t%t1l6nM1q?u}4k&-hfHRNR$nT|HsGyMseS>m|#)oIc(GE{I>jbo!9-@ zma^1h7Itvlcvgq{`rHf@tg$F*kcf1hfmvizf0*6dx!STgVq$vKyTY}!^&M4usQcx{h~~G-3jz zk6xM^Pa%_UgpGUI8;S_2TC8dFdv~7xIOA~-!}j}B0eh1MWd;1WItt=S_$k3d;$V0L zw5bQY%qb-g_ApS89Bd7bIHx-oY#6F074-wG@t8H8_WRL1)iqCr#^QhVn%5w7M`!=W zR8S|C--2O4A7b{5&FIRMxd(IsO3xSqfp}v@J`5rV4#1693bRyKIuLZU?raI*(Cvk5 zCXqMZksYHNP#eg4yEV@1uw!jLK<^>fhfc$P-w|_GaN5*yew^KbK6Amr9(>B37l5CRaYe$GV?$QXm> zNDQTgV|9(D+r1>!aJhs*kaOlh8B{rLBmfz>T0DgX_1cq@YYG4P#fN-tivYnk;})3` z^~rm{O3~EE0H)+xPR((lJgoYtCTobzpx%hSD&aYTIOW&4Tr zj?>TC!qx>nv-EXb)h=ZS#IK!(N3}}dKe>cO6`$P$;49mkRSbeA^;|iC5Z5YOqESr7sxWz9C5HsE)5}ExLV{N^ zm(9#_O_Mz8T1d!lHOtyy`<}aLm);d_S#T$QQ*cMgg{iB6I4G}=61|$5oM;iufDpdb zgtCd%ii9fe+j1b6T9H2!bSEgrRJkrQpK?C9-nhwVK5=1?!i zL0NIqIX6DxzZQMhtmAp*02HAlf&H=MA{sX_y*1>-QjpPPYhXgi0u2#!#LcZP@aR2{ zxE2h^kbfyxo;ypfQiK!Jv0B?EqdFc9bZvNZg1Xx)04qzkkL1~{ba?X=RDg~Fu}SaC?HmnX`TZMz$KMNJHFwF9IwBToK&j*6aB}aXS>o-=dqV8(E>dzC(n(Iz=+7KaX|aSIm^+ zmqP;NR}!Ov*su0mr2$pNwEJNpo1gI?98h=rB|J!%d3P39ph_*3xhq8}3K|oGw2eb1 zCI)olQ++OfT)n!rz0%;i?2@SOVfpbS!QitcYNB(yYzDHE?%D{DoE8)LJ0rWImv#Cg|(Wi+?%8j;5LCJL6XfF^zqnl5pQN=8688r z^8*wwDgoDTCDH+iU3FdsAJ|@>4_?hygfBuiu>v1n2x+~t-jbSm#?HkMdM=**@|M}8|E9`tCeAJJyDeS&HSYJD*kTwpN$zk8|9{ayB{u0?sd+g%*7mH zkTO)wD9F`3%_rZ}3NR$LlDL+z4s4Usg1FVJ-deEq0t~c{CC||%<{5WW6!u~PQZ~T3 zMZMj!AVZfBQU;oN7N%+yd%^Y|y1TG{e{$Zl4y0Yz9f%)TABPQc-#mA*MmR8w9@WO( z0qM9)uS|Oyu4cfqR>c$$4LPTYdmK0lNJ_lHx{Qk>+@gy{+2weypCC)n#Xq}Yz@ber z`5|u1I#HBb=*+XRdVB}~II-A>lyc2*EEmeU0n0v}eS4tF5P`a02lvCRMp67wmo#@c zna$yXZByAV%8i*7Bg9zkbp|TZ0hvwpRTx>aWqXjxvwX6?-ws^$O!vLF&IjEjhNo7c zs$5u_O~_lL%HSJ#Hqr`Rp33{j9c)y4SRd7ET@&fqz7vn5=Vhn^kx9_#3LJFHaS&%* zPOMv%!fk9mZjm;TP62AN7h3N|M9XGCZexAHuawZZksGr0S05I%w4g0d zPft6eZ}lfS^8Ox6n&*VlFO+f^EnyY4L)*TSxV3ENPl znctYP%wq@C7XyIUN=a+W366e|g$q@3uyBy(IrfS@(S7-}L)f)!gvTt{z3LPVQbBhk zTYr0(LvOy%9d;4saiIMnJ`Hq5LR6T5^1eY#Blc9aJvZjpj)m@ycD66UpA^%aYNKQ| z2@og7ZjYXep%_g+{&_BpmG^komp9V>Jl2i?d>oSv=X)2c;-Dw=bzk5wtEtI##dGxP zcxeH|vY5)-RF6Obe1^v9*^iw-b~(z?(FgMKX4dn>+1vbNBizcKyXDposM6+TnuQdp z&g9s&o+*!(7G=g*}lY8^ab~bf#*`4O)(9BtH;RxuVn`%A(M8( z4Diu?90`C&I%ERR#~Q04Z?OA4$C*grGWkC3M{BqcGL-R&eg#7y;AX=i~AUieOX>o%FxBf%ogJWKJ)9z(~!OH#0E_j5vIcyZY-hrhIh%ylJ>_r7V4WlsJ|Fbs4vgl5fp{A znKjtLjG8e3x|<~oR(A@8GtDwUJiCqn3)+}++4H7#+_$ZvYccI*F>PutYtuW#7Mxp8 z_t^l@rM#lQQjzuJauk7U%+0A4ZMr}v#*<>Op2n2eJ~uh)+j|>?rq9oNyh-4@oz(^I z%?BXs4{aq+P&GlL3D!YH1R-dM3zXaPut;y356j$p=?OsDUWAtu0$2~;ABRSC7p-fq z{sNNy0SvyMVWK_+>9$U@L{R~yo}ubzHG^CMFfQ$ToAz}%uIftEvu{uk8|lm-PqO)K z%ir{Cr3AdpH+Z|ftwJOC$yOnHpXbcH=@f9gc^mw3^5TmLmF%#W*}pcfI! zzZOk!g&fubag&L-H9s@QC?qVBxW{`FG8l2GL*{>5lflN8mwl0K*vAB-V=Ep?YlC93 ztQkhHFn zsKX@xQfvS}qZ2}?WLSO9mY-TT2XccYvVT$*7ukNkri?=0da+FF2^8#02y_Ch=LUc` z`o5(Kv3P77EwK)shs)o-4r-}=e%$Pu3iGc25F@hnPEs?^N4-`A#j1Gzh;>*`gO{(otGW~P8Up1%R|vss2GTT{S2MdExxa4Z z#DzN~AB=*KXVIs1=wxP{+hp6&q)85^aDCJk%&=M^Edm64JrP7<9rJ?)pK}s2J(UR> zby)km3sN?K`ecF|K@2a^ztuan?y+q{u!2UtM85Z*(Ys+`IYl(c2vBms8v6^izFM{# zAL7x%#aK;&_G*!^oMgaa*#;-s*|YckFh-h@M17D-7Gxq~9nm7D%C14m68lA-X^XiH zSn!#$1D~n^pYkK=aoT%sIjF_V{%eNJfhQg#gAfK9nchDq$lyyEN*Z_=#!oCOzZ(G! zk*ak5cGmmkvU`I9|DP`{INNA!Ar3d!YiP8}GsSrX8b6;giH=#}fc3Ihy=J2WtAAnZKmI!BI4-Qr;&V51va;$7;D?hu0mSpt<=#poAb8veu=^SS@LHT7 zTB{KKOUJO#CSg9(vAYBUjzh_n7dz0|WzWXDR=NQb6QC~LWI4VBB(o1hCBxy$LKgjH zGtj-yp=gMvgVF;Pk)t0$N2vST=FM28Ry0Ka@<)@IN>ek>Xs8!LV`XBH^Qi4ANaF4U zB55KC7VDCtsWnG|?)y5AXH6te0G8^~O#>lr#F(X;I%+{Cofmn2742eYn zdj-FGp^2(uYaht|_UT>S^10nO6(rC@-JL*pMxd)wt_QS3Q#8#kgsZDYEg z&*;N1nt>O0KZ=@RQV5lmJ;`lji5zTeAKXhZ21Oi;+LVDy_eR7vhH?&841B~z*DIx$ zgjQ7SG45_$32qO*Kz$Hi1`46vK}%7#^qgLDnpF0Y-=;R6-NBUOTa9v+X|Wln2eYno~^!J((iG{K?*J4$V>ak4B z(W$hMK=|kdnCkVyP8^zj3aWbewN*vD2=xK;AD z1M{myb&MW)|7{I}@|&LZ zR3dz59*|fb<5~wlTKvM%Sf31ov9Ju>atn1eX`l)?z8beopfV&CnaBLwOxu6PC|Sas6g%kbjc%f$#-q{HI!0 zipQaxQC9_vaG)4~PfGY7wGfiD&&GNmz26nuP9z;;$^J4p#Wyv& zIg7KQz*x1Gq)^y+MJJB0&0!W6?<=ecJ@mREK?Qs8y2Kf5zXF&?H-OT06HqJ8Op1pD zd1|9qPLCl*7xI+@S?R8HIMj7xY84dO7>{J>naosg539MqCiEq^{Ct+3{zC6Atgk># zeg4J+1$ErcXym_X9KCDvra{@-2WN;ljwFll?~J4;?|6@hbQ1pNYA#AYD&QsN|NfyS zZZw^cI@o@?`2FQw{>okiKL@>{t7a}L*IxoanGBHaw<`(7UPZG8ld8r^tmL>6G6e??@Q-qgN5oFN>9Hbbu`80 zkUp386!aK1NL(62(kFQCV(R(9A$*VJgUj^lamwu0v?MBGHOJt7Vc$pnmut+U)gND; z15mxm3!bK-L?MFmmQ0rRa7X){7~vTEj23q`Aw1j~C7{x?!1n1?^`QdG_*pNN`Jc(Y zo!ueqv!Mne&JBQc^!;tJ_*1q@%>t|b_)+{b{{EMUHcKMJ?FRYlrmpdjY8{OTx+SPW z5_~ax3f5aoHc9xcO;0-%9X6h)5F!bl(duvC0i~p+)xl(0{4R0FNv-Fc~Wv$5| zFeGp}VS=~!2kk4y5%B8RjMNRxoC#D6i9eav-lW?!^nPg>I21wl8c({gx>9@4JM)sejI%Mu!!z(+>{$)#Xc#fSh%clmY9{ z#_l0}x&%;?vX}NKKe=E#Cp!bk@nig>Vv)>zyLGeR0`i><^Q)ZkD0h@;?qK--tSSrp zi;63q;V*}55vV-m(MDK&g5bGYCMriZoN@oGnV+aiJ>zqRrs; zR7;{Bg<3g5sa!$`t{-~)+(%JiwQlu#3|Jz9u4=ttIE`dkzl~u<>&fOus>0n-k!bZO zFD$*#E2qi)NG({YqSm9G%EMSa$iX&Ot=pakyWX|TTx#Q$zuF?OVz=(KYd;dUI3VY~ z9Q^t!OmUQW73@sO90iYH-JE08mLT|yfa70Y332Q(&Jo=P72fWQ4yUwzC48biQ}MAr z0n-y*^u@VE>Py)z+)RlW$>xp?-k`FdZ-VjWB>zq-9AgvZC;p8>(Ul{#uRVBR=VJDG zBA5AMU3zOYL+C22KMwQ)NhckoR`+E(?{OJ425`2VCJv?GVZhTE%T~z8 z4@gG9z9(Ad6T9OLI?@`fnJba5JrVhyCkRniG6CZbx7W{wzFHu%I_S**tKCam@&V)p z$N&k} za0%Fu>f`jmlK^Ha#dQ20;d!zwew&e$dcNK~e{9g)<%Z~*V9_x2f^0rHYdhaaq1n3Y z_%2VybO09SuDs5QT)H(JDKe^@Jww)gJ|bri@ea3bTf0zb>hfMyRye+q8xcA>TxgCS zDYKWDF468CdZVMJOyQmd(UuUkqj``%iUw;KwVWtlYTjfrH*an@`H9-Qh{opfzI;vo zC7W{?RMpYQbjY3hV(>So zchC!DP;vyJNHe}Z$}?ugEb32|V|3E5Vze`H(_&%fmoY=2WIR6kme6N~*#G#aPe?Lx z#tT(u{~EM@OSt_J z|2P1!8KgyKzZgpHdm@WfZ+pAZQubA-8kx`sI!A_{LlN5)0{!}=K!kSxbgKl-o3u*k?(BkKoIvc9b~r^)DQBg|Q5>#4*-B(g;_(~Kg#VF z5ZeweRi&zrFkE2^*fsTAAAKm5`U)v>Pu_=-_{KAHyDzo~^tsYCyIc)Eu zjxPV0Mvt32f{6SdPeb~j^{P$pPwyTt->fbv3c~lNOA<-Bwq+!4ESI$}j9Oj@%L;n^coO*>%2ex)6n(W?@V8ZqZ6I?T$(&Y#0&MOJz(d2;-`|4uY=kq zjib}!FX0wroG9R3!x2!uH!_l>d27FUAqtGDyd^9wzBY3udlgo*F>qABLG>DRMU}#D z{*sca{Cm%F1Ce7xTym#zjT{ltif1(Ng8yXg0{)Z_i^`$8?|x&4CNbre6;5!Z?GXR^ zb<9iXI*!NXntb7?skcQ};dfF3yhH!4o?+Y02Ax<2l%DX3m_G$+o8Lv>6JgBLTSsFm z_UNp6|oxBWsLe~^G{J*F^S&zQJBSArAlQ>?Z3&SO8>eD~yLkweIPs#GV= z(EDn-QeqRzM~XG9D!wtyOU*H8J6}pB4(p1e<|;juK7V3Tb`Mx!7DuX9XSzF54A?~v z>9;O*~5)}AW=D*Bz*dtLy3crj{m%25%97C!=Vk!#r6&Tw+> zwPIz^Zek&PMO8d4hN=~m>Zz=j67fO~9B&)fpi=I^Gi7mgRiD^E=&c-sfz!Tiiqq@@ zmq*#OKL>0V^0|gnL8HO}k+PeoP6O??I}ACV6f*f+7rjc{4iDj_vp#}ZwsvRTQx&!= zA7LvU_QwL7O^r_#j!>3Q>zCAX4{wdxmWH}7;pla+D%+Evpg#L5S=LS4p?RD zK(gbr=2eAQEOtao#XB!Z&SD#V&qYWVr8ue#b|z0M_=E_fT`5&x(Og?(!D@g@W~(CZ z(d9Q@Q?cCe=Wc)rdATZ0FwVL7>~f(eGDlj3r2S9oY`8=;2nz#Vlq6s9Gc8;T*%63q zhOZwgn11tCd228}(NR6};!EBxh`Hg>e z%!eE$CZcdpP(PJZpN%>iqWG!|tG=H;AFjxfr(PFd<0Thycu4Pa5+^?tR^}&eTzLF= z{&645W!kkNe#bH;SlsyT`fHZa`{8tsKSbp@3EBof7Y)nd0J=l~pX$|*HbYq5Zd`Iy zApgj;uu{4~BVV1xH+anG&Z(l^jKgFyk6VIyP>&Si!sNR`94O-*%kM@m0}a^X4)Ay? znbtt8>EatVAi6na41RsqQfqVz3=g z4}vnm?k(n71vLqadiy1HUYP%}#ArN6&1OKHO6|7}dqxlX?}%7B3dLyZx;=ZoqjE#3 z?1MWjt+**UQ;neI4lZy6vu@&6g?}e&1%yc{ew~R~B9Q88cT@}!QR-Uo`@7UAjpc&f z7oR97l~)Lqj?(|cdu#Ch?_^iNMk3H?6N7Eyc?+khuLRj6qtZq5RC_b+&}Wies!zV~ zA9jKE{0Tm_w!jkfLQu@@Drf7A;kuYO+Xeii!f`Kc+<5cNzf>4fUsekb4isTjJ0oVV z1$R;ohdi*`^qTjQ%`>}U5Q_LtWkN39+89?xeF*-J?QL6cz5CgnHll! zfxM1&WZxvm)A0l%c}7nBjbDNwgbX$>v{5DW8IuJgUZV)TkIT8)*tYb%BWQhdG+k6X z%|Lh{M*(@O_v;HLMk^t0RW<`9&whL1^MOy^U)Eg#(J*Sc0JB=UhtgZB3H_lf*(r5j z+^?<~q-@f4>$-nWju?M-p^yjChitnjGyKf813r(YMDG58<#6ibcF+!gw~bjdU%VCR z*q;q~G6Z1cm!9p_xnB$tiqQ1DmR_z#2r=|aI-RnIJdv1+Lt*5&)LYGF0Dvv+@1s2@ zm^d%8xKf1{;L)8=s{r(g`_)Hgd4w&H?KYZ8VYfpgAM(<-FZse)z@TOu^O8Mc(f~o= zgKsq!r>fB0f+Rze`=&e{8jMNT9hrHC6b)(mh!SSsHeBRscNR|fm}k43NtG`AIBt^R zWq2Z5dqQh+(tIM}vH4wo_W|H`TsO4v4mxSOq5eW3-py?GDQC|ofNNKr&-I>K^V2;w zeqdH0>--PYLzwmL(D0YqwZlyc3^*o_lo&;jiM8ZO{=50m)JOX>MbfENpX)k2VL;AB z10E?YW5{s?IteYhcm-FQq0~e8e25`UiSB2~_W+d}L(uw6|2Xf4i;!Bh+0>F+1Lv+#ZDaG)ch ze9u@`-S0)fQic)^jY`eVkX)_dj($gE0b@LB2ZVa{Rd-TRIOMaD zSaT)FQO5aI7PnUAQ~Wm%?Wmwmgx*`?Z4v1ZS78DaDzUU%UblICIg*_lybOy7Gg8sFz+oZSQY5n zLl^d%iK8fKdGU@89=gra!Dh7F0@KQ~FrLR@(K3Y8>50|D?rYBKBbV5T$JOR~$`ZzQwV{1?`J0I_wsv`v`pbD`A}#@^MtbShSUeoaN3FQVs~ zI+8z{s_;L;*se(1hpocOGWtlinBnyo;DYdBhJ)yCY)Kyf91BgAZE#`YCIZ*lIQtVq zVTPuKv>%>Y3QfW~Q(|Neeri(G55u;yZ22tt_8Qzg*~P&&2Z=>s+p1Qh81D%3-yFV9 z@j}5W{y+fNw_S-+*8lru?HjZKYY~c3#BKsT^d-GlkeRC<-k5jcuzctNUCPRPJG>Nz zPT?0TSZ__;!6uw_4ln%sVf@^7P}ZkmhRv*9HL6n#QalKz|A48{?jQ&+m6(S$bNiPu zCLhx|1?rO_PLK&3@V~^uO$FpXkoZANH!G+I@8uXr$`*c2+}dw+Ke9u$wcb{zhW~kb zwPYXi=b*Ne@U_)!xiSz06^*C~pOEIcEc#H!{&k@`QX+#-C+GAy(Du}Zr-GBq{* zCFVHR4L3apwjuXLngtVQy=3NCW@a0U7hlqXAI;x&^Ptw`sjqu%7he3HnrKSVqbB(F zJ-5ZU6Ki3)a;u(6ydThFTp z%d-GVN=W-2mW&_G<@w+@I!osFtPm_bx8=vh$s=}Chg1tLe|9?5g>R0Q7{0?qJB(Hs z88VHdtal|KJ*@z3@v@6Z^&`ysvd7W#*xYe%SZG;B=6JL{UcsCCh(XRtzt^g35*HBp zO{B1iIdi=1tTr3;r6H1m31BA>QD`n=Fz``BN@l+DB2#xmOyp??)>S-kRWQ6WcM5Zo zoe<8mlV$Zw?9LrM0iSwlo|ds{K6zNIKm2C#Axl#D%ci$@g^qL+fL@mce&=FtI7xxo zU}ER#kuj+UC%+U=KXzNlqsy!PWQWs$o8x8ay8Vtqk`py`(g|@tkskH8^)^dVaV)CY z04IDxLRk7#RNyPzsp4P}l-z0CLbs90XGR|1LAgDv(A?;K_awPH2z)O+k-ug~*}(yy;Q{_Lgrps%tJl30o+--R-->N3?kU{gR_@R}`yOcvw`)@8X@{Kb}(F)sT@ejSWLvFmR zF!LGlcJDeLAn7mJpB6d@y27n~za#zfvWxr=d21x^_2s?@CiWDwx0V_(iv!k<(rVS) zgbr#>g%4&|dxHFUq9pbUa|4dm)SoE6>A~{#vWhal-Tk}O_(ONpv6i7@Rb$z&vjqGJ zUKvqFq_QVn)^c5HdzN!Fdy|-H_ z_0_j=FTv1tqng%1g) zkYWF;b1u@&Os?^4Y1m4serS!HqrF^TB0;_Dq67a~8D^k8?ub;2DS-*qM+AaEjoz>T5dEbpQuXZF4U@OFv~s7nslK4vE3dZ zCf3=QS8%xIB|S zVy@@n%k`l&Nru~8Lc8s{^VK0;njZ#xMKq3L*wnvAK}_mN*pq3r_*r?(pR{*Cl2g^} zhQY6(ejl!~l12?|e2>74ZZ27`Q=ipuciqW|*XBoN=P5jrR?0+a07YZ_@=rTW zNQ|`~dG&IZov(!IYRk8|I~BG?kko!x1#he9r>I6E00oMGsIdi$ALG9^2J4x&CKuO) zvglZK90#}mKRd-F`=xy7mC!>bD{49=d%(3*D2ep@3{^0$B_}a-Y5UV^ML^ZNg6}RJ zy(Ywm_olyk$Jc15=vlxVn=oyh&#kdwEAVnc9|j%Fu$RL$qWcIFNOW0@ekXEJ{>{|I zMi^(h^szq8av1)s;|ezSu{SXbFeVJ~%CexxW|n!hp>?4PO2 z!IaeK%=y$RS{BCE`~r z3v9oG-){7qoEqt=)Ao(}5zZ}(H}5f%dO9C`&iS4CYkiA9a;FziS?0iE1_0#&q!NYq z(x26daK;hFZO+B7NL>X-|8 zydM0a_kdi;M#gFu$*94EE>5pF|KS0rVRaJxat|YyM<(oKCjE=Y$n-|x(px~bR#Xk=Iv5$t6zu};%t~`w|%Vr81O44g(BfH;+-Y_PGTTW z)=o&d_2TXQh4-3~CWi%QsTJJ=$L*19m073Q*<$WnZX35MmU}?cuKjzhD?Pd0j+Ll! zgsbjr3Xu;Lh6XufiGhBl0U=ir5HMfcH6ga*f8D*ZdF!;dD3UujoeW9 zgiO4Aa9HP=pRECF#BQdI$0HR2X+rnZVg5PVVjvRwQfGB4LzdTgP722&W8zB)59c14 zCY$=ZkH2EjQ-aqYuCtcEW5+aA=!^{_6nkg6@C)CDT=L-zy=>7$vbod}84uqwhV&x- zzkGO5aUxP;Vxo_w44`1U|Os@Y`P8op#zOxGI?RnQ+of|M+$#z zxqG1;X+uQWy(=_LgWrDe$MbkL;;o!2h(U=n*W!+A6WT!fG{BCx#2_*?p5)2Z|u z-E?*xj<(wE%Z(z&ZrL4HoEH!k>`%c7DDSt9NDI9RaCBMRJOQPZpU!+@fY4CJ=yiq$ z*mh4OrrDa91g8O-?a}0~nvzt2L|G;UQG1$vLCCw8V0Nak$Ad34BpvJ9A6frv!gG@T zb#_PhIfVx?iJSh9KhQRM_zGC_xjz88E;6o$C~CUkK;khRP#M1=?Iuj?u^WC)c~Dkqe}m=$|_f(R3J_@ z-|2kS{(^1Mvowd>lLt+1VrT{D26o3LFzq^Pwx|ov1t;FPwm0d7opM=eY%0o!ea|N_ z@g(@{OBO`eceN;2?rggx3Z)M1o{v#d4xVO2_?VaWL90A(LNux712ERZ%s5!JGxVJ_ zZ&K}|*xAq1m`lCl&7c0O|6+w?iDZA5)(=)@PCa1ZZ#={n{>Pn_8J+AQH(ed{XhDlnHTivKl;J?5|i(rXHLOee8T@|Q%xV|(?4fW^*cHJf3%t1 zK-~AwPG!&w%KU3v{r9s=+q1>|N2g@}mvc^o_CGomHuco_pKTI!|NmzocryW?PngFu zng0w>(T@KHD`R*GL@D(M{4QX%r5xVDQ_^MW%9D~`AFzwt)HZ=-fAskyxZ^@6LOY;4 zAy!D;&-wm=oZ?4{cE<*nk+ZnG=(e|3OXH}JM-LU+(FSXa47%G|H+$6*4yU)9n%WT0{ zuHq zCc9*p>5T@{)F$&=w`4x<$T|j_ngoqgihf;iJ z?QIhc8WG*m_c)3a0$A}>IfOzs6EciqK$^t2>`!AdG4?-(0j(755xnNTd-4!T(Cu@z zYHCP$iS9&fclgt~2DTh^&=%fr4B6wM*bCi#@MQ#; zJij{p6|Crz&;%K;i97zD-C-$ z>Q-x^Su6DSJ?|A^0izP|!W?i?xnLiqaY0i8{Y{jn+-a>GsLzD_3%h zGKHz+i2x_9CJeE0)5vQhx|)g!sBAF^T&(@-BxQgg#Yk&ASu>k&)|I$BcH7F2EP=tY zf1w-s=<=`X8lDq{0{`N~NvhB!!S7MIPwy8S>5o>hF%DmqjsId~fS~12QJ5+-tmr|E zEC!VdiqgLcZk-eon7Vs^=pzyC$#~QG%b6OgU;DHaYJWaFxy8a2fUM{rY0K3eu3T@rXvKbnTYuqm|SCcevmlODnl4tbP&KEb1i0;C|! zgz440NOds4q;C;-S0u>q4D!FT8lM^E+bdF`SZa(UqbWY$B24{ViM}n@KEGCEXV68w zYeITRBodxAmcEmG|M@|-SLe>m#_KbMM&u*d_N&K; zs9Y|qj5@F7Oxw1fEJGJC;e^S}35&sz7*eR0=%-V84| zbIzW9_WpkN-rr9QyU3Aj+vz{UuK>N_wHYfbVE^|*>6HF8BA!1TMcIxX@N}_GV4e8! z5rBftOMK1}-Pk&ND|mq7^%dyTlbpf6qKl_X@CM1g4@lj?Y%1D>1J;<-^+ z49??H+^Y^UFrfC)(GvXuBZBz zehY=Ca0T#&5`EOQpeg!K{c0ri{e4x1d^PH8awkNlHos{-(%+~A2$Gfmg5=Tqw=r2VhFO3K6{nXwxr5gufpg$v3B4q6W3H#4bcbW$; zE8cuZ0A*=f&*UH|1q^e<78#Yw6IA8Hy-pkOeDs39l>gonWFWsgHv4&8wd~U6 zgfN#{m`6A<`k}jRH>@k9JpblrN!3ry{%9{~Sn(qC5VD@DgzDTJ4i$#E%haKH7O5uq z!!Yj)&bQubNj&~Kq;g>6Sa~~02JpO%`N;O*Kpwn9b}(Ea@ktqYl&a|zU4JJH&K#TH zUH-X_Z^!$y*pk}Z^&p2Mx>_Ch6+gBDZUL-|og5q!`<7z3pz6hAxlL_LmLV6A&q;5p zd50eruSwLVa3jcHsUKf~xOU0e0d}%v@)rI@oxm!H`e9i@Oz?luKO7IcVeg>TeiK-x&tY7pLT1+K7hW!U9tJ>>V&_lY z2O^0px%9)Hs2(FVG|y?qp{?A~?SqY$YavfGF|^nn6zEh+0{f);>L9|4HA-9JFlI7sseol>O1@Gpea>m~7M=*U_Wc z@BmBPxFZ1Y2?I$o5YpoEK46&u5x3o{9HeE&q?mQN$sAT9Yt6}s-~q9VFx$=!m-`CD z8)K@um25KXTjuNuon6O-S)%HOX9=0(wE6P+!762#0x<@+Zj%N> z7OX_$L);VsvdCW$kHPLJLM$SLMpN9p<9VQBAM%tv`G@x_sKu2xWHj++^=aR^wAl(N zEZk+@Xi2`auknxx+_CJdMk?;`tK)ilr#tF zJJgWH2fxAFq?e(Dl(`JfeEVJ=__daG-7HwxUMZ<6ze@D-9`~n2I}3o&%R<EnIbyvC78+eVvQ9J>A7)9vK0Yh#mNblSh~Z=q^5=Z{FVu<_ru#Y(g@AjZ#KV(s~9?CBRan#%MQPAHtd1n+c z)F4c>jPh(nJ9udsR1zF)LR}YMeG9@3<|MCxF@zpIcw0EZS(L5R_UTHfen?1~f%rG{ zu~w!4!>2Cs$PQ#LB^=vHX=u}Ft`hJsk7L}Er!pYwT4hL7VKtW< zw}M-{e!2$UKW*N1aAUH$P?kYDJp5OA+0g0TN%rvuVG=2chc9cCFJa^)tjx&6x*IQZ zxRRstq>epSZk0Jg4!vL(yngM`p715Z%nyC$qd02w6X+;w;oV8dlT7TIwAv;|2zL$=bE@PQEHMxt@8mh*TBMe^;T;D%t3ZwNOjJ zNZC%`?QqjxvemX<*-&kwc;<+m11-p7S%l~%&=Rm`%uUdB{ql<0SRmiq50xkrY zU*mUvM^Q@DDAOyQ-!F#KGTt(!%XlK?55I|wSES{gSlkYjef)INb|;V2$o(+t{D(F& z1EN=MLZZBlHT^^rjr-7?KN3J|26-dv(WMIH`6EL_W2^DM&9vvFi73f`G>v~5(3*k2 zzu#`)@kS?Ha2Uc8?>Xiet4!JNoLo__#vnc+(I8NB(V!PeukGKN4yhDhv}!vVuwdLm zCi|k*+R^N*Xpc`FA5WCC5D5h5CDYHe{+}7`TFo{9P5vbHkP$|oJ4~zWX~4TTQ#C-< z0nQmW{IOJsOv4C38qjUk8(LNpFdh%on`6Qy3iC6O!AFd2Xl!tfRq#*(TMVXOv_aJ8 zL<9-Q*6neyf@P(MZvgRyl)E{rEY%JPEnnXsq;l$-R%_61oD?)i6517_qfixac6X#V z1!!L=OciMqVdIm``A}cir$jP--|mM=7q53ScMFoAJ)6g3nP{+90dittVIXFkg8-Iw zaxqF`Ljr=mN(E#t?-_7ToKAA?%xa~7Fqm}=?6qR-)S?@mo3<_!ofhNfouF}R{y3S} zc*aiYKzZAk{l9+6b0P+03DxN?z$KuNbyJT#03naN0eCdjUET&viT3(DqA>iMz#6kV zn@ug}2^iv!N46*-@!nXRkZkYj@B_9FctvsRv@~I66@kWxp^-^2^WV1wZ<#v%0K;K1 zXXBI#PL>n5Z|ZTuyIGF8XQwTrc<0(}$_F(le8eS}%+;YA=h;zlUR3v7qpU}Jxp1ax z>{LnnD?W+SytCCGTjY(Z{Ur2}tkT(#Cu5iuT@nFOWt`S-qj8|0io|nkX^(9Dn0^rw z36;HC)9>E91XL0d7fDFu;F*n_I}b2}o(wrl(rP}>td)&}bypmG*Zd=S+J6RA0_fcu zYXsE2oUksMH#Kj%A4u&sHc#K0S=8%xez^H|v3$edmmokTy`A*-7}c6uz*Q%!y!0XO zlc56rjmze)WK>56!W?sb3xGAO`tfhkk#oQ|dZWVq^e{Wz|1PC{7)@8CobKTz5O}?@ z^(8B)v-(LK%|wlbyvfg7Qkf7>=efm*V;ENMORWcn$;=(K){{Xge1=#GUT(r+36}JZ zt1tUNG-BqNff)k1Hls8n%v7UpS(p*&zS_Z2_Gr`l{!xUrv60>l(5-~ejTcNL(CRmj zdnum0WSLO*dCY+TY|VGO_u3vt_lJ{sOIe~E6hnS7$T$^_I~(K7!stn4MAn{JCR1av z#4J{m?E$Ke`>!&QYCz;95m09Idy%ER9-ULCZiIkhJ5m_(Rh(jz%05%FGlCcqK0Kqh z7{$E5d+QfjX}hHes%!s&4y6l}jR+VC>%OSEEKoCo?A4nGy8q%alQ6wOA0iin)J zXuNQg11$!e_&VBIGWR%^_KI)DY>IT-@Lpz2(RnQ+me&3ff0t$7sUzof`>=PHg}VOT zdUTk?+o)N0arLFJSKYIw{S792P5G&rWwJd@`RZxa^Rb{u`@Km$??%+KJQ}rmM%M0q8+d4myjf27#l_^{@ zrYRaVcuhYK?Rv}j-2&>A_?X@1nVz#3J?4OyQ?SD(X(C#Ls8(8C-$e!Bw7i2eE+Iv;qd3uk~ zXb}Zi3*;5de-KO#ofs8}OUaY8RHwyvR@R!nPw8G*e>rbrAUYTihss<*F3Ot(&cYq0 z-br_`E(YOBuQUez>owjAA%hT7ulL540poOU-)JWPXaWq0qK+}+>=5WkZoHB z=xx3Kx4rHApGNuad`&z!)lWl%Fw#wwlOI%FnLY-BJdd6=45eA>}e2gC~Y#-koZ+e zT4ydr?s_2d-+6P0HZIX#953@E9~&UyqMoU6^Q{v~l_i+v8{;~N@ON{+uHkmW89V-- zPWHYlpq)}f&VAQ)dx&-DvSsD@EUGr8yz$T#Ot;D|GCz=GbYbg`<{crntx+|d8`meB){?pEZZDK#d%7Y)gsgAYhbxG3 zO9V<|)XIGeJ~h7BJesIt^^1(y+l_P!kP>~Hv3Tn;N@M$)5pUe;E&3Q+DoQfNG$*9I3_NW}GL{UUxlC z7rt`Qw#RoD3-L>H)1N&D&Y!@vJDz{CJo`EVP(;jWPe*ov>UY&vuX9%i_F>#!pS?QV zL+IkGGLvuq6k=O2v)*t@enRui(kJ`j0X=8^V0mfjXI!A0H_UtnZ zX{%WO*w~%d=y!*Mc;{&sA~@&Qal7!p^SjehG@bjFxMs(n-O zjU}9sPor3K>Evvb-KqVC{m*hus$!^ZKg@$We%8t432ZnZH*`jMDN z-QlDnRw-XkqAZx{l7_OvGQ5Kpm22ng>}Dsn^<_k*gzr(5h>9KXOQ!!#6pRo3S1{f22lX)EZ?1A{}m5;^z?Wkfr{BRsUeh0{*)6+9=`_Y3% zHG8*wvw`7z7GN@d(_3)hrYu8Oc88Vi$`khP?_8R)vn{7X+&25wmhLKfYHRj^e(Yb+ z+o_P(EtmA#vac+vICP3%W9C;nnOrH0@0?_R!BjjCtx?AwpJ$&&03q%7z3>tgSU`8* z6OKa`I{O*f;7;=!V+F$MJMDHyyjug1fEp#c(yCJ1HeK*7RkT6L;!`2AK!4_wrm%}u zMx}nrb)Hl|AzmT4Tr9G&`ThinM{-E|2G3EcNzsw;^!A)FAKi#5+8}X2t{4RONiQ)< z`^!$9l$p}I`11!D$4DE-A{~qy2L5P$a^{|OXjsjb9I5@P-lX_>kPRva|9e0Cn+xtV zw2zOkQtk|uiESs@mCY`eph8oXK2cj2AB&Ys6|rN#m}5d$^)nRt&GA>*dQdnHadEKd zml~)5e3+0aBiZI3o=%-7DB+KXEgRN;z`+3-3|;prffY7eo^`&J*!MkY7JfD+qxJia zG3}hf5z7aC4@mGeEW2`3@VSb|Jrmu(wk%y+lfy!Ke%XxWR-EoWR!oLJasgf)8FfnUdXS zv22%;eHkTre8`H1?xKNAcR|hm^?xQv1mInJW%KpkSFLWx%eUz#8%0^r*xBJhr;RIIKZVF2MhHf88NHw0sV;I!z-qd+1Sab>t{6$FQjz4ngQ8Jkx|8-71zccKRTk`rIV|_zoPmy zsQ51!LYX}P?E4!taDoV@fNY>3IT|xG&q|*p*Xk3!%iRN6Q8Uxl_hhD@>tEcu&Cy24 z2RcOJ>^=@s%3!r!1(*TQ;)MYv;g-6A9tdU;Mv}b0o~yjFq58NLgn55TF)T;AD$u~DkCFrT&>eTlQN?ZNDGHeE z34*K`aYA-Ji$CI~T~AAa}jKwd%gUC4RI` zMMTGYECFr+{q>4DceJe{Tce}Gtd@l+fV-x*YDt^{Ar+^+1zdaTbLQN_R8HfWEarJx zm?P}2{?CiEMC!&1a~waBBknX92i&zp#OVBPZCK3K)7ku^S~;ra0KZ)uJ zZ%^#qRIhJOKVcs@@2HpPl}QqNAC%?DAfOFfLudjLWwBMC8tEMEJmtumD2F+3+f=45 z{?#PynwgvP-`wn2esplXrr#w`Yrhijk(r(i7Qx@t>bPv5UE_BgJ77d7&r?PAj{)v< zjuj93UQd)hiuQU zUatIu;p61NRLdU*a@R|5+>w9JJZUZ#FCN4vOf};YGu=`5@hDlpEGylL!jvI;Hm|+& zry)E?sWGfs-ckm6p+C}O8-WomQRGW@^UnT3p05((yemql!EBjlmJuMX;@n2@J4WoD zo6Pa$gfses9l0=G-B+%P5;zt(!$nqm%vlDyF&LDRC$0NU#D1KFUkD3u+-ct{ytpJP z%F@M&BAT2Zp!{&R-T2I6%yulOv7o{p=jpmYbm+W!4li3hh44(k@X zYxbv~RzR=%VEoR0O@G88wJSkqI0kcQRY_#8wf)tg^Fz-e(x}u+480aix;JC&6nZOU z)AI_P10p2J*ZYENPYO~D+2u1WFAB!5Lii)evYa;}ZFU(~Q5|>k?Y`lYT}f_+b5ZG( z)A=z5;R|(k{Nr!87iBP)*9guj)^rM-f`3Ek&(@&Nlp5MGWrmOYAF0O3lfZF#nMNE{ zwh71Bz!~?6Tj=N`@mA6jXtl07$#zSFFBSH!WHGh%Y-~T4Ko03R1RHM+8MZg;vRgrZ zLWSlNS1$_`CWb#5O1hzKr|nfdAIk@h$=5%Y*X(2DX1VqJ0n~AM4xi*yiUnv7eD{?q zpB|H-D)JyS0tVYpbdYa*Or#TvQ?HcD)J-IMuj=R;d-T~ySD(!bG3&FGQ62g_4c5c` zOjk)%qp?MxFmIS+8Lp~&K5~jjSTd$G9N+09yA;tJ4kS>NtqPcQ9C7Yqcfb^d#_5MKZ{5V z8c-j9t|pBRufoO2R@-(uA2c#8yWG(;jPi?@;WHh@A+w|z+h;G8o+0Z%XmGHL$xy;xrIhc}+JNJxf=pR7xc!HS@-k;mx7AC+XSd;aCJxWe_~+3H z_aHBhB}&#G9&DjIESX9?)|gOtwZXg8f2C63qnf>uFt{Z@zm$d(jKBWk-Als!+N4s@ ze=4AZx2)VD2z7D0hrx!A>CM8&gPuN;ZTPSMQcXxzXkoGcPta$N7afr3p9LNH9SNo@ z&qsxNF&x{ds>3%3&i|&0#68DV7)|FWrPxk!Rkx(v?t-d4q_&-r9{K@+DmVsqp84Oanf4+hgLwA5@)sbjblU^6Qwe?XkIq-1v-OlzFY2 z0YC|Ui+R`}{s~~NOPX*?W(7pl7iIgD=!Z9nl|qy~Y-h>n-9qlzBLa9y$JeL%sxa^Q zs3rj7mWK@s^7a&jy0&Qku1p%gN*YGia_(>od*MJs^zm(f^)IT zvsZXT+#K5T0P4l=bemh$bZp6Cy`wX%AZ_9R>3#OyJP^yKfBa7|-^Swk_SL~`9A206 zwg8pSNSai}LrT%f#5z7V#KjKnxp=OekhJ-lT*)}z`52ZDP~rF~wz@&zRbvr6Sd9GE z2n~pFY8rY?ResD%qRo)fKqs?tsvza(7kWGz24S=fRZ+FsVhwdE$@@4toDc{a3 zHVHHwa42Z>clRX_LU{%)-tDG7Z%ATIW`rSKeCWffl)u63^S^RyG3d**U%!f?Yl9Fi zOt8}~ID@sts){ut#LbF6IxOIC)}GnTkSk;sV>GA{HN59wpqj{VX|(&Y?tWvnPJbA^ zhhAcr5^Oxmadk341loQhHSvFXWWLGng&*7#W@0Zl4kNe1_L((!<2~bC3#Bq~18a+x zmXoq_T0P`6RxLmE=u(+yk}(4YCqp7Rk%(P(rCyTpkYKWD5~1>yu%DD^_G_BXy^*C4 zfW8z3)dXqG$kVr<#>Y%`3XCWu1L`83!uIevo;Ao&X2*HtX&A@u#aj0Q!j||OOZ2_T zn&dPS5I~5kJsS!4M;YdV8JA!ILub5X7V2OZ$Cs8$F(L=7L9KA2qSLz<;F13JNt!Xy zB^D{b^5fRgsle<%lVczO!28;uHaa>TAOWOHS@A_vNB#We6&EMIL7=vK zzZoO8lFw@_Hs!thD<|rhk8TJFxf+(7bdk(6Zcu9pcANB4t6+1g_u6k&9J17wFB7R51sX$aVjHEjqHNcuXw(iVRiqkJoAGb(pI2G(R z=+LmD#HPw%G0xUpXw24&QCOyaOB9AeIIZx|C7VBYq~qy+SguYK1sfVJrukYAW znQ>jdA|YjG0K?d;xhK_&=%%s6I1n=+07m3{yU&p%<(VxfH@3Cvq0dhPa+IdmZ57YG z&?@LAky8Jy<}ihGu|E~Q@-Cb=Ntua8815&I`#x})bS0y_TOv&vMaD7#C&0dSx4Aqt zoTkPruB_|NmIdmkHeFl}_*gSe23mE{wQ(%Czo>X>VALRl`L^1nWW!ixO^0GhHMh+o zyKe3YpFEB=>g5kmu3pVs-4}wZu;DvKF?8PM`U$%0NC;0)H8bR`go*mnHRT4;T(iTY z!0g%cW{);2$KN4k#WjRi6_7`PvO`Z??(nYikxc`NcA-8kGy zolr?HmBl-p*!-zAxsmrD|4K+V#<0DQO&$OA%OdU~{$`3~teGRrH$lg+>C_HTylJG$ zRm=CL6Y{>NzaM*U)b1PV%eZ?qzhuk4!?4O;&nN*?eq*)tT2vwJe5L2ghJk4FY$MYj zza3H;|H;IMz99x+nK>o%zU|8%F1Y$YU`9dND{$aAk)w}c`4bRA;}N?oHLCmknb9<} zdHur+SsrDby}BaYDaW~HIjHu0P{RSvdenXK`OmZt z=jD7~YXZwa3$Y{#mPwtiL*tV&*o1RmWhZtC;nHCyxZLe z0j9qm$Z!QDwk)L1fDUAKOi_=vUx;IDm2d$!2$W+~tl~UJ8 zZ__yMk*qBj%KPVWhi`xC{dd6b@#=R>*@*svy|_f}_UAI?#J!3KT(W#Xh)kT*`2u_9 z(avQsffdjGb3IMNCjAFFO5!=+{iiJ$Mldv1c93kZ0$6q{(4+YeW}w9pwOpWumd&3o zc8=CGWo_o2ST7!sNvL%=uRaq->6=mG1dm&}5O8pL(g3jDZw7OHmZN-m$&iZt4P}ZV z04Au~Gn#|B(DsS4&TcgxCI#G3d*&J#e;^D= z#u4(ekVBB;ou`VE?bXHZ6qXn_N9FCaKK8mfr6>kR<_Tt}=`?6M{L5f0BaXZcg!{)M zc`rs;HFCwNl?=r$4mm^c85-e6^&7>TBnVtyxy5>iJh!p$eA?Rlt(APlbk{*Pb2qJb ze_L!0=L9Py1|C^dzbSYj?>onBxjV4F>VFqAf*5>T*!c>J)C`_VVTYM6WckqJXvNga z=jt!6LgbG+&OxA@%-VeOf#EHCbPKeVhy!ym+k81eN01EIT?WxK0b-?oT*jgi&epv~ za$F|Zpq(BwfEi?jecydj`2*HkE>vhepxq|h%$EG+%-%Gh$ zD+2}CxJ3eo<>nYZo23YUh4-&!5K02N>?tq_me_Le*5HOReW-+(DNEW9U;l8)+56eP8E#?1RBu$oG4~fw*I_fy;Os$ae-QH zc4yWk={RBQSnV>ok!>47Ubdq1a<%m-7yPPG`|Ax7M;u6uC0v-$QlI1#_(Djsd z4iT1W=SglA3QUCb(pMDX6oC;VK)%?|;S+QR2-hs2b?W>nI=~nvPsr*azCAhw1 z@lD%LfI%aXi1?cd7c3KZ6?fFB(&b%?!cfSlcUXT`6HuZflM&VxAgf-e`C;ef?VaCM zw>I>}E9&VyD^jZW9>nuJ@B0wIVXEy^bJ-z`pX3GEURJDuBli0@tV`~dw|9(>0^0+r zCc=r7P+0=v83It2iL~>FEG4cuwpU0&M!aJOEbMF4Jw8i1Po_gsH_0Lv^bBjg?;jV; zDHN4^k123T#5!R|KdPaN*b==u@%BCMp6hF}P8j2X;~m39?(Gbt3bo*2A~O75qqi+~R}9{(sXT_C*~#vuoq4uUA)M2& z3Nz11FDhs%zy3?QyX(weB?NyvRi>JK!RvNK+z#BYR*3t{j8aeq0>z&BXpBPjmgbx9 z54&Oez=*G2tu7@-YvSOralUpuXc?WF=S4d{jZ{S2I>SgPNjA!x{tvM1)WbQbXdM_a5Vjn?>Mb}@78Yn%hSD=LjRFe{AmM`s8BM&`A6{gP4xSnqQ`-< zPyF8Xcm6EUs$Ie(*uLAX_7P7dKHd@r!72KVn~2aF8KSs&>+4O?PTy?fYJ}s^S(6qc zWzXupv5|m8uiXn^#Y=gjAy-TWudUt*8|H5kdE3ueB4%3V?&YX&la4++m8cdw+CF63 z<3RlJGGZTvBOb--mAxEeid`@TXn1g4)%9!20ECE?_Byh+;o)?}QR$%BsLst|!_k+s zn?UTl?~ffxHayg`BpOR*)-JXT#qV5ifVJ8eT2a*JRhWWD*lmNGQL<&-Q&-vnA@GCe z+!}7(UAqn+qd5Vhr^`an6ApC!KTdmxp`8?+iS4_xGD@2jCsy*E&6qQ|Kc#;9PCR?C zl2Uh|>&>aE2OcDuf6)D;rmwkM0wkf}r5H(+{)$^Sl#c>e^3`nvBJOq{@EW{*eUa*cSVJPYF5`opA4+B! zbxLrl`y+0<1>@(d!NwB$p*lquK2ytnPNRbPn{uD z9YDMws{tpB#zcD!POE(SJf}F@pxl&){$P)yGD36&fv|n%Xe6uZ zPF&2Zy_xIrfFg~IFvjP4DpuE|X2||Q1r6!Hox!7|%XE`vnpu)Rd!CwXNAvGTOOo5)vq+0=t@Lxu@)YzNqWTTi2`SU$$?H?t%?%}W zMWh`3{u&YhbpU~fEM+MAy=#H9sMp)7R^7**+%dFbBz+|cJ$s+~P1@;*_T~x5D@zh$ z-U1X2l5HZYXQrCG<@PT*;64wdcTy(++MHSxW#_RNWqTMi`6>Z;ygd5V5B4;@k4N(w z_5obukq-#sJnubBt#3YWKQ6m!zdNG*NY6GNM`Duqs{E$#{Y77{(aupv=<%`&9OQ{qqB_p9y=DXFc=kJ?CMX%f*VZ9PHE=YO!_E>(wB?oJZzEOZn@*L5SU*jo=6TL7Dn2p z%WL(HSb|FcZ-XZ6XWpI03-6)#Hka~Lb1tA^^Of>WDRF{6m(6~SNB0>6dxaIJ9g|(D z_B;rP$&vNb-Y4Yq7!AMw8TWP z{F1sEVHqU$<45;Y2pqvB|?r$Qde6 zbO$>Q?lfGi&tKFR$R(5HB!Ieh*bN~t46j6|^=GTpd>DPI%pco6+)$wIi}qXiEG+L= znjzv691@Fuy@f`eN!p<1-Ux)uwo?bj=h|cu+ueL5)1)H^xyq}lB6VDD#&!E3-A11o zWk6eGQAQmu{3Soft*xpsuG?hu;^;GX##C}6#jXyr&2{i6TXi9SU~o=5y0!2uO|8Ge zYl>-%&29JRuUQk;_bcI}OuUpUX?yCiSD9+%fQ=E4rhNiB@+Qc=$nf)e{7H~bH=zlk*Xsy#0%>l4S=a#6gKTRnmzSJ{9?jf zrF&;rXf^54Qk7b5f3i|6m77+poXl*&?d&kWe)4+$l&VPfwP(V+2opI1+j+|b_j)M6AU=dBG9BaAXZ6{AF7B= zx)R?N#^}U1Vd76e2iDRj;T{Iu=#hRTdY{(Hekayrj`XU!{)EqsaAqzYyk3DOOrm)s zo{edWBT>3NqpV^p)23t7xP;_MHOz3A@XbuuwKdF42f~e~vEx`ALpf=$b^woR2pVm7 zYBhSR(+;8|DJtvJ;QMyP;m?HFJ(kG2%CH{V2mE~FW5^ta!h#NR*`%A>NcKJ|zm8aX&rrjgou%<9* zwE@N`6DBMy_6yU_&G6%EypdJ0zSbxa3cn9ln{DE$`oJ>E5wYfR8~zK_@x>3X3ftgs zw8=D?_MKX)?8~jQ!_=NE;)hP8-cjv$j&-Fl9`yN?7Nu2Du=w4vXCffdj+^{t-sfpf z>Uv|lUd<4C9Pf6?*rBIDxI{@k7A>mVJ6>g8F=|$MC3Jv~=+wrsi=MNxs zCx^YV@%0cfh`QtWgUEobhR_n;D6gUsJ=*hDBVU=ZByxR>krUZ`L6WrE8H@z#XqwIN z{LNTG)@eG`ig|%eK=dz_%RYJxq>fIDtQfif+j0c%0eCgzle>^^iZ7Wa*tesNVP4b4 z+MHf5kr}en0olYG{QYsF`#pXQI`Grhwx1f%#y-lm=50x!pwzn%Oq9(8Lwr$e(F&>)9#G7cYlma zRJlafXD0i`ZVf8EJnDWGlSu8sCx?HsEF7#UbECs$yaON)`o3)+V_&z}KQAN>K2SE9 z^r!a!y4o~F#VP?CdR$NPXK~V4VI}Ol4m&ZR2c6s|c%krOo6>Be*z^18F9Ei%k6(Nk zp(+U=I9VW|ZE7R15c~V)JW?=rn*m377pbr+Wzp9qS10{Ey{og5*?GCy!}`9Nn28}o zaCrUQ$f(jovxh(4N9u_tw!j@lwuQtkI>uI=qEX8ys{ynR9NTX`XrWE)j#k>HFT!Z8 zXENuhpx5u5hb2)%0wlE2M{jWnpSp@S*7L)9hbY`lcMsP0T3%)&xZ#GWe8#HYuAPr0 z$rVUtuQ7=GYhtEA<5`=rpunAuR|S1H0%i=zbYlvokNCyDxYFZHin|aUS*bUOo_J6C z8&IhkZ+y}G>(~9`VV5myCf_#sO^PvM0^*kj1>U)r6h?#S6bNiq?f?Ez&s1FKuC(1P z&(f1UD*?*Q2eA^87?!c-w?X0`=jsDY&o+&0KYLow^7(~#UB&gUwwoH$1QFaWF~Md_ zqhA%qzkKD!69@ZVY+S@gq%{+XWD)qCfg6q^9Ny-I^^y|V8InixEkJMt$<@fV!6`l4 z`DOP$iSJYw%@)fUJMgmxhq4GJ`ulL9j`q)76TO1)<~S~EMliks73$k##1*jflcbQK zBe~IJMS9Y;<3fMeewPc!DIYvN_=OVa|@tC<>^Pf)SF}V&-2UCKOa30j0*>wXA4^Ryq+2`B(NBtdE6;`aN@=$%j)dDP};|6+xK}A zQ-T0Hoh;0nH=K3Wkm?jn`}Q7&y0Ln(kDj|D!I1jQ`p0ZLK<-tLX=DyYgmv}cd;mtG z@GCH*EbU#y<;~&UxOhOPC{+eg{ou=h2lWqFloQpz47_BD&!1vHmk9=~f zYdKVP^88VdRj#SK{OgyEnFn#Z+2ejUY(CCEPeuFn8G1P1Md3LM8g-u+X{V9R{hrwI z&3K^?EYrAD{x{SagzEQB0;YgwqKlo$6tCelOVEr#yi**Cxi03=HsJC zxNH!hG>hPW@}3V;LU+&OgtZ-&KPY-@?_0Mye!ZYxaMCZ&U0V6h>rgN@xKx?vz9`#Y ziG0&)G@ZI80An>njAv_(DU4>M`yhn7qVe(5)Vt(b^y;`QW$fLUAoOy{`weM5CleGns59I1)y^$8^&u1Fh(ghg-WR3yFDrIXM>)CxF)Q= zd#h7_P)ifwSEP^i2#SU5sPIO!W@?WzHBI**d5DV6Dju?Vk3CDF67nM0nGXM|vGG;Z zVrRtpIUmmH4}30|dJ%=6S^j4)d8&vgNlH_9=$!ezSA3q)4O}!jMj%$&y5h9|ez(zO zbK-?-8==4Fyoi1M&C{mKd<|aF7b?${&T{el{dnKY>$ktlR#%lb2pBF$NSqNh*>fL& zRQGQ=D4yZM!a{|7&htCK54=EM0WpA&am>e!rK;-A% zG?)7ikvB~bs)M>{W+@LIEMp7!UI11U@=a}0d{!|J(XE?fpU*ve*y0@;mi31A^XBSP zT>`K5Ok8tAD0e}qLJuOo(D}ZIrl@(PbIAzW?S0G|MzarM00sibMQ3ajMeaH@G04e-(IFY#ms4XXQCt$ zZ0{I&rucK~U2RyN6WoRjBb~d?Qb%}T=czd4+5f)yfA_}!XJbSA{da?$hKJ{+13Sj{ zfvE)tsnc;}NamEM%+r4KxIX?2*>J_eJc=5q*WgS_>}L$8wu`5-5b4TZRdh1>p5YOx zxv4dvMfNVRou>3uOgAvwW41NKMmut5yNvayyzSDc)xhZstlWhNJB9Hp>fv}o6JxdoIEV!E0XBp$ zdr)1$cQe13l}!)RO&K?sJ7~w|CkwG&W%Hg^XfDn&u?+^`-@q_=Tp<{teA*OD+|Wo9a?OSwa&3G)l82{oPDsm}il^NR_Nv_I9 zPL1`Lop>eynWN3W3>~8jce}nA7)muzylg>NZ5LJPzG?@<8b)#@7Kx z3NJK4=tL3RU#OMj;4aFXtQGIiu6}cS)4o_YfcPU~t0{i|O}7LLqbWsY5%*S$t@v`c zN_oHe3UYdBK%fX`SoR5_WN&4f!M31fy>D{c30323dTv6ZSl{GkMR?opm-2vi!wwsP z`c=_|Tlv+GyWK?2E_U+PvlMf`#&fneG;HpOfWHv!x!~RJOqMjk>vy^i7)=pVnz{;> zDz9KFCf&TkJDc<$`uW_z<{q;&VXCCXBYC0Xp8YUJJ$9TbKIh9&5fXNrR`hMjk1gpN zoJ9DWfFfHa*^dgmsO#`B?UvYwi;k4Z8hl}=Aby((!(0BgYau?CO!lX++4^zPW|6+xnR4Q*xS9s=9ct-K<4QCZfdJc=JU^_Y9QTY0f*=u z@AMbLFfKI|?ofjE+Hf4mKTBivrM1lG^CG#bUHvbqMdmJPkiv-*h_RITp=SrGQXS^| zq3Wv)%SGg$A|&K?ci6n`;z8AEt23%gz_m=IJH@Nt_2GMXYJ72$o#pF&IO$C*0MOce zZ4`|R!Ea!Q50iA~` zx@k8%R4`Of9zJyA^R363K`#nK1UOv_-_~M2tfbuF#*<2(&~L4Bl1uBMbx}p6&muB6 z+;DHATp!W;;PBbs->stY2q(OR(Vjs0ul-RY0OAfWt6zGkSJmI)h0FJZ+1TO_%%#h# zwMatemC47!g4apQvg^;eSTD$MI4iD}&K6HEdY3&Hu_3GC4Ln!y(04~vCZCznp7S25 z&az1m52QxNEG`HI=yQ-V0K0L2Qm?(zjAcGs- ze;VAS?w}65O#mm?l}{ac+SkAF_*Nb~sbzb>m~g?*f1s{_SVKtq4+ivx%LSS(Z*0LB zN^{U;kV)_J`2H^AYg^3SRm&7pcKhZ*_OC_$oSVl=RA+0w*??KK;$&CcIV7a+2C_yd zSuxc9oSl?WR+`Rtq7zC^PUE?BVq7g7L;p!(?op~;PgR0S8!Hvu3ht(P9W}B~{1s5O z$&B@je73#KulQ~Oy*tcDxQkpTP3XDNCHCYgzfWoJ5M)XCB3fO(y$`?tG@S~`V2*#t z$29?ZsGf9el2?GErkQoheEFzoSRcFtg?HY><=Y+DLZSY!c~b55w^7P(MzDRawR-1_ zb9!#beQ5;NXJ3nTwqHiDDs?}EX*D(WaHoi^yJi{WaA+rO7VsF+^b_-a&jLTOl810H z$43Nf{n+$*z+K49fW8TR=D)tLVo(9w9Gwj$xf42$zN^-#;+MKfO6+y@tGWkllQT^o z=5OrtHkh|{GJJoIX7oS)=F1#$&L5I%kE|w^2q2h3$8!{n*B_$m^BEDUL29}lRKpZo z6@s@qLo!>hN2<)H3R0n(tNv2%6p~RSF5ZOx~KqSB3{8M5^U3&du2bE<{@pUUoLgtf$S^} z>fsQY#;fd4TL*$BPAn~>HEBq=5#01coW~d_YBMgZys;t5bm97Tyh7ss9OnO7n1Sz8 zu9>uOJL;CU@lhjZ(&|a?ivdQ(M^t zHk){U-m?F00_27lW?VPp+%DS$o_9QEJyHAyP>Y7Q=web()|vjVlH(FwM<;{WnZ zNMlHr{~`Xcu|S~!dR`|q3oYrVzk>ch*n7{YrrIrBR6!J}(z^%>(mP5I3W7)#kS-As z0qISoMx-gANbdxcD!mILk>0yBQ9|!Ep(G*6x{L4Id!O&@bMC!=?ihF6G49}pj%2;b z%3SX|+w;shMFt5Caro&@F+c@)(iHu{mhjLgOW(`o5edb``GR^wkJGjG+vihd5IAicjZBIGC!2TrL(DBpMA4BNN`rhY3!1k~;uT&=Ib^!D%6 z&x&a~lc={;S>u1APpH80*mvPb(ykm!q_ZM~KL`}~13#^9eRCh5O;>ssYj7iBI| z)wNMrac7KIaAf(|Xkk9xsX~p9eHjco`8hHu>XZpOFYhqBs)*edc`cUcO)Qd%e2*VBv)-dxz0DrXbEpcx|?#9VC<7h|uOeY2=`lr?A)O*ok&8%me(#z>4p z`E<$;tktMxe|)-9cGnUc#`4WT23k1l1~Qym)6PMQ6oIZusLS69*06jGR}v4f}ce zV_663XBZqujs!WID=#5+xVl5?S#J+yn=+F2Nh{VUFx;(U-)7#nwz^kCh94Fm@ntw& zURdPy;!?Gz%?%W+FzY3~-GCa6vIu^W1yM;o&|cpd|MYsg23#rga!D^MQEmxPcZk$EY{%;kJ(Xd0ja^v%j7WpFW(WZMx#&fnV>qzJi!d{J2{mCc0WL znQew{B#iQD%0+GP878A)LZv2NgyK-yd5tW-n{2ihk~r)KFceE^TkNZe&n$-B`Fw2E zqpp+SU+^RHepFD1PQkFX@83_DH#Q2VH@stq8~{d+P-=3U`f=BSW264pyjzez`!q>lDM8W>Hrtbu?XNoBO&-HSyZpk8nc1R0lZ5_&xVz4Y$qP$Vpz6u>2bH zn&uf# zR9H5+lAuQu{iV4Ntb?&D7uxUFI)Ve2ucT7UHvFb9Q!c9+Qm|QiUp!CWmgPGqXtKd) zu-Zy_9_+^aL@dA9W%91`nkB={#qP?1YVz4YaE4uEMGKBX9AiQbqABp_;#;tb`L7YJ zy!4MFaXIY*aU&(8{S1nucf5I1)Q7qaifj zD>n7%xRD%L?d!kaaB@3bTYCC~!>yUdRu_OqJe=9;6+`&dA)_jNw(`p* z74`n>e@bpYS&g~1_$8meLPAy@~Lt1cHqwK ztf;HU$AyMsrEl@`3FVSlIPWR1m52=Ux@|F4WOA(Jecg~$X%-&G|Mepot_^JjEJ^(d z44klAl3-4LWBaGN`u!-98hSoG#y85THEItD5Km%iRoOl~IIJOY1lyIsU+MNzJ?0og zY6-ZYQ;Eswd|H)7MS1LUX_jZ}4WhE{|t(M8xQubnP^_!*p}vGNT^wpyrc z`kcUlABA-PW^%<=DUz-?yUlG zm#Uo_V!?_64~C1g3xj8{zXXR}=icrpHY&oUUq{FO^qj{N4o`-62gVF=5OoyQL^tMeQssikonIr~!-zFxgWN75w$_ZEZ2(Tc&+G6nKl zJO%!H;fgq_bwxaZA^fK)ja{%#)rMduN&2ihIct01SR?+PipXWGdYcG#(bGPbU2=CQ*h==xJ|ygNS>Bqs4W zw}y5`MboBGYxmdD&zgnF3PJ~oD_8y3a}V1{+9wajM>1UM)6~sZ2)eib$b1j{5zP<_ zA%0!XwYvI7|LyoF>c*DZ3Wc@F^z#fCbuHNMuO6s(wyO)B?;W`47+9@eqNLldYs5T> zSNtnE^S8qK5<}|0UOCZ6bIpU&b)0b?x=al$>bI8XGCvfd`xI-Xt**up`M@G#P#L;u@gf=whpfT;23hWY=p5QVBEJv z8zN5TVEW5@i`rtB6?ebdM(91vd#i?-g9VE#QAL+CCJAg^`1tTyB-#A3QTiv1Vby8( zcJ=dmeK%~syjARMrDsB2x&1hu=VE`PtkL4ycPY7#xmkTMuV27ezj$OQjS~5eeEEm5ygR>Lh0Yv#LWpO9epI>q?O?LYEhz%`+ z$eRI%FoS4U{Gh)=NkI$2JFwmlJ*PsfE+5|=buIaXz4<7xpw327W4!4>gOdQ$fy~`s z1=KqDX43*HDepH}{l@sqciZZOHi0OgpEP>X4u2Lb<>L+`B$$}zXGTLELsSG4n03#0 zhP)M8hYf9rH%qAezIbo{WUjO2!cNorVsyLSbV^=%-tK+L9k{I5%jsw1@1MOp-Sv&7 zEX?$L@y!u3n|e!}Y%EzbhZPfF z-;FV;-R7NUx0g3}*w+`TvC2_im2daa zkZcJum04R|P}WGL6(|W0`%BDh**u{QP}VP*!f|vv5i)9mz&$-lfa)y@Q|h z&8uEqL%18uo3^cKV9Va^lZ8Ch!Z)wsO^*d;1Myf48mp-^{54N64d|41w5bR;#ybqQ*$%>722@yCDp!bNnDs!LJb_!Lu+RU zZp@eR#N;Lt<)m~+>deV+#p-`PgN0S97E)`4lp8X%HYKVR6ywHbbL=KlCf0s-53j<& z$3h}n%P{ruj6z+>ABaEbwm~iTVt7``KGAJ01|H~;xd_3G9EsrcO~w**Y5&Vvmz$IQ zh4biy4$Tz@3l`I@9g~o3Op!W*Uxb5>1$|HvU+wF)`NxXPUnq}7{9Npsc>0l>BPnqd`fuJNek_HEsV`t%jqsd z>LkIB=gwokY`s?po%=Gu4xc%0Ij06bdQGvHC~A>cI7`NSFM^g^Y#*G1DjYP3+XENT z`-0W*k-kqF4Y-)-r{T>Vt^J(d-*%fy=BJtynJn_`GaTcxO)$moh{Y)3h@gaFn2^dz z*1xmG^PELAH14!eZ~tAvl&ujvf27DGQotoC}Qti~&ucijkmCm}BE z;y9SwqH83l-G5Ej2x|BsURPasoMkKKT6wZbicFA818ygTSTBbTM2&WT+8V-Lji`8@ z_41daXRwrVzU~7;f}V(`S@(c8S@{{DrD+2A@Y7y_=9pF*3jtETnvNjTV|7~pP zGRXa7yc$8}M4dhsY*AlWtsB7?YDjv|jIev*tezuRM+d?49Hay~UN{*1RK4lvCE2pLP8oRYV4&Gz8e)H}DbD)SO= zWRS1HN(LYs{wC|MUn~HOfxWN2tP(#Tj{>tU4K5f5_SHkNd9g2nJ-LxKP?T3pq@1OF zSx*khsYlg1RsvVqZs+Fpr*3LqdHuGJaYreaF%e61n1aA1HEZA8TfTbT!sj1ewJ==-l%UL_!K>7n#sne_eoWxQE^|G|eeYa^tA8BNx>Xdl30E}J6Um&|yg_Agllzrpi0i~76Y6h#@Wd&~i!p`t z3Q40Aj}`?HoT}P4@fNLjE^#q7z1$JHC%}Eip`5?DTfC1DRSDH9l<_~_7EBRg^*x#} zjpjrdl8IA}pjO$PO5=_pu*#)ys^c09+}@vW4Ts7>3dx^IltssC#CHFKC4t&Og=U}J zCW{#MC}v72y?mh)tMUGohk0DK4GZO=MO&tqj1VsWa=s*%p8jsZMTc>N+{RL2Ucrd* zyJxRDu2QKMfbOx$-biz6?X;!0_UqudXJS_QhqQ9@uO%2xrzRp|$!B*fAIlxiW61cu z?hebgU;QJSYk`Aq8BJCg5(|AqrK(uVQ>(0E^U|bqNE=|Vo_*)QESHWKCGVsNxxJvFrjCgr=zSJwFpta5SUx{hcdB*3j!)Y`H%vT+wZ$T17$G0bLdum2 zFhzb@xkLF2O515Kgjk)bF?^9Pne0x|@H!Y6a51hY1Zkzc*W$x21vK8Cd!^R&H1y~;x$NV{)19xUP+_mY6K#;; z3Js#38*gD`7BgdHZ;}Zk_8+I5{0>A0ZTo&0#5{cVR5FuSTvy<|mbCpjsk$Q~kLU6kT5O|V~JYV-Cz(3e=ORk(oRP=qx%+>$g zEtc4Q0?Aq-K>0D3mr;95$SJsqISe$&1e-`MW(OXEU7$wrNX{J_&_1!)xd|x`chD|? zMe~i#>OzI8!yB(5G$We|q66TNC$+>B$IHzv*>E8m8?f4hA>6g?z2Jy`ssxV`;c$F_ zStEv(&i`nWPl8*zC7o_AfE!K|@tH({X|xQq{yW(Cl64`$0BNYv7QqL^PrJc>n7WDG z#RIx?7JR^J{fzaEX%IQ8X8Ghm%QR8(gZAX?T-k%|M87{0nKoJ=+z-5)N|XhetUkL_ z72G1%uXZ^X3wIl#K+vZmQK6Emtj|)j1l63Ai|VXxnDf_8T))g6xZnCz8UEm)nM%@g z`ToQ7LIhaR8s^~}n?S56E2BQ$uAz;-U~$=xN!((?Av`!g$%LMg2T#%VBZQQ1j{9F& z?O8ZreDe~ftyAI4PsXLFja$ufU;QW!JD8LF)kChHrhA$c8>W{!d?IDM!_cb3&IqT~ zSg5;0U(p+Xg~6jz=b>l9FV_wIR=WrFUi()BMzqzi>q>P^Yv$WuRYL{xFZkh#r zH`-W9UE-6wcPas1tHrU7g73nZ#hibzSg24u{^mm+x<4_njJa~}T;Qg_DKInw7#%#K ze|e25;d4>RkM7+=EN!5`0IUTtN38(@h1Bmd#r$v{obJvTV)qJir9!$H(7yO>7-%8# ztv!JQK?L*>ata0o|I@AW)~CwdBAFZp&^73I02gSIswl)AJtVcHHLaQDzT7#$?qjFc zpm10au~U8I&MNYYK~5n`HYsJJXj#|k&QjNV2I0BSnz6~;A^n0QMjqMBqZ_84;3IE{ znn`k(%%&i4I9J}$3khzgzMZH)!_se_c@|85X`ajUZ!iwYUU3EY;Qov~{N0<|qKzed z!DWSI@UA3u-C*oI!^w-zcLc-QD36`GsRu||%@86O+)#m7Wa7s^ers7Pi*JH2=Ws$@ zvXTmo8NV(>aP&P=X3@NNVjHV$vM69%D$bR(?3hdJ1%c(-QvFUpi`qgd!a^i>wnYK* zS%NMJu-=0N*`tu=6YFL(p19u7z~`2jqYJ+O+%epj7OPYyqY<(rGhbO5;OVYQ?4cPI zO8U-nPZnpmAH=dL`;pRVu}NqIzAs!fMCSBqrhPoGdz>5+r5zN?$8C4_qRfo;5Bd^c zKKU!TUw_{ALp|hwrke2GE(g5&N$>yWYRij4Vn@`;fr*#dMxME`6@iP){$E=pJHO?B z^y#-k9y3c@_4^RPQ4)i9MQ#SmpLKd(^9S^+cILOV#>YzWkfv{ok}{>>E^4dvg;61^*Yn_Wxh>|2gRmScB+fExVqb zo5csHeU^{<5zPe}L1m-EaUleedq0xsQ6YLsdwlb>|4f)gk^ZJF`D~p|?bM7L zoUn9CBT=5nc+rM3$Qf>I>r&QDc$JX)M$o`SUr1Y5k}XH)MVf%%wF7=hGNUKOBNdUK zrg`^0?!U;AthkvpF(ji%)}NRB?#t@&?Bt7y3H$G&nYR?l`oNdsx9Q#JjU>nnEzD!a z8=CLWWRut#_N&VSt>+h_ZS*J#UiWiP=Q(AR+pzf>=1Qxk{girWsJf{86nqDbV8U>h zeKkC296DrBU4w)vCe#^EOI-`sDVGr&)}fxs)Urww(2D!(PCt(IJx!j&nbO*6C8* zw}siV+=)Pf1^jv639FO0r1(WFYNvJ-ZSQ3Xj3??{63;!Ja_Em z7xP0G8cHWIH<;xxY$mUryV6BG+Bn{6vPEsj-iADsR-tbN})BybV|t%T#h; zyc`VX{79MhH%dteihIory9gloUExz1rXQeAHLvnl@!kFHPB@yPBxEZGM1U};dGNDO zPh}4t&SdVsCZ!<vwvVL9^P#z=jYtCQ2^qtx9cC0m>TB5R@3a; zz>d3o!|6`tY-ZU}``cdDMe}@bZQ3K=WeOOgqA2z@d&Gs1-y7uTQA% zZpqEu1x4Ul^#8hU$7UEVL8A|i-OdNqH@kmj^R^d+XOz3zwi!%OW{h`+oEf)L!m=8O(8 zn#{j+Qr@XO>8%X?-V(wq77#ROTEVQf6p5Zdlhj96D!lsPC$Oy}SgmSomC_AZSFy}7 z>mJ@snRvTv?EwhP0!AKKagoKj{Gk=vHw&kGa&%bY^*FLLk@&Pb&ECmxV?K4{Jrul_ zpMH8@o7A1C2-t~vVufRByb~E0dj&GO+|gDRzq;YW5Y|8yqBs7=b+u;i#A~Bn(iOVn z)w(C+W9I@1URd-&p>6jEaM80R(f1F|i%yF`M5%vt!_Ri7LSTFxkF~;sK>UV3y!r-N zqQ@W#TxMZQEM_P3_iVNJP>7OA%Gu}>9FZpO!GM6&TQ2N(JZcs6Iz22T3uWCEKrT_q z!RGEjE?{Z;1iffnyor?NVeX|R9pjcG&5Ly_N^{U$%_VYBg>WzG-0iBh9gHWs_h zc=?fG&RY28W3JiHL&w~9PvJqwbWZ4Wy*X>2iASHThUJ_d!9b4j0@!99@xd%SZpEo zIIDs%wlMZCs|NT^U>%tQQdu7pgNRN58b(Mgwt1M6E^#4(d;Log;RxHHu!ek9Re7G` zP)+@Vkn*on;_ym^!ispGDZd>a~UF?)Z<8;H0pO=B8FP)ggDCI|o6)(kVRu z8<6&91vpnfNkd&tHxxVCj>ay6$;4Rir|vm znEOPPqb8txH*62`;DlTIaR_n0ot8y-Zd*X8-Ka4$YS=gjOf$d_;a$>|YuN!2JZg)v zkXj4@?A{mwf?EcO73QwXJ#o3fV}`2_{@n`z)gM`CLzm?W=2B=wFBZ!VUvbC<$Ah7bUpS#yxRR0B0(w*$)n8VIKP z%|MNv3zhcYkaC?mtt6S!oaKPbmQ(Jdb2?wG7S4i3xbssBKRTLxS^5u8Bqx2crK`Ly zJ)GijIegXThUgd?bxGXvtJmL5k25`%qagnyv~AIfxL@`4w`5lL@v6eusNosG{X36P zXwh${5D|_lfm=qW@ec2={b`e&ZOQGwQfQz>lnH;m_z0r)GY99`GFb@m5fYyiYl}VB zc&M}S1sQRus0ePutN^?p5CGV3{fLJHis|@wi_(+AkB7lMxZ{A=zae+@OBkq$4zIPy zat%A@Q%V5UT?NFX#cuw~*AnE=3XHvFpx@S_AhmQn;g$j6hIQy>1NxW+#yl};PsqL{ z!|!Mi(Cxi>lr?vNjbRY2tZT-WxX6kIz?v781TrjYkf;?L4= znbCHY7)&?gQw*K`$3t@|>oG1B(8)4>$?WyoXD{{xAS&zU#`*u-y1W|@w? z<1ct&K#&1-9v}V?q(XATVV*Tn)QK@H8L30U8|onDCZDry0C~TUZBWk+B)W{@zZo;G zd)aXvA1~BjpDeRXkQlR2U|Rq7a>wEpWZa?mJ6O~ENfml)d@9CS>pOzK zS0nm%!(c6^emCXCiB$nwG{H{5EFk-iOaZY4p+ynk4 z9I)z>ct5HFcBXhDa}8KoUzQ(&dP&n)4HIUQGNOxCoU1b5&gI!^tCRV6IZ%saCW8p98b2Ae6Ox#sDm6cXJ^%dCxS6x59Gz^1giiW z1KfnDN!i8HIJU9%1MW0Q^D`mZw9M*3R>mIYYos%bwRV7LARbLzyvV?6_ ziCbL2PF1{G#nt4gxm>c86MV$~Ae@(f!Q5^qCB32jpdxVaCL_q=A)z^K@Gak^E9$Wyciq?3%5L z3PcNWbOFFcD!mS5s&Mvq_Wlw_y0t|Kr`_$q z62AL2ntLj!C3|WbMe4^NtHBb!l_n|rG@f1^KJ#FFTAb|pRdTY)DS^YdE>Z@{`TVTr z2GZ0nZBMoJH(_rt$-UL<6HkrmSfd39AvNcT65UuL_)HkdkYGcfPkTTRuy+bW0;fbs`Q@KB3te$wbI#)D z1cqR?4yN@P(|>|UXD;ZM2vQtxOPP>5J}Gm1Ntn;%Z7hbp-NNFdxAWzQfWz%*X?14p zBl6X!F{;hx`knq)rLHsxw5pnwevqWfIxRiNfYRIVxfAYpU94q#G520ktu5~8s1o!- zrzTdJXhbh5c%J4jDS7|_r-~<-6XFSR@BS9D7UyWzR3u`)wgr)2IE8x;Pi7LhlUz4m z(Y2pII3LcFoP6VQ2KtkI^033h5RckVrsG%y@p`6*1T9UM*)f`1p22Tv4JjZzAw}Fu z(6;o%>iY|-{LSx#B4HR}{|USWh@g5RKJ{=8af%JKWk2O~)lS$+oxzc>pK>DsFx!0s z`P*551%j>!;;b+XRUZzGi6O zZcn+BEIECLZh&hG#}sU|Jsl$LVkTc;ySwP%rG6Z@q>dj?aXFR1SUX!KX$` zdoTi_0S*xG+$Rq`goQ5w{Mq21S~(R*!myxRpb1AFv`)R6u6#JZJ3&E!`_1Fs7G%ybe(-oAY;hkIC+{m{4|R`Am;B#5Ydo=}t%8gbHQ+ZEYK z5qloG&`gM<4fF?$t||~QzSyF&)WzWpS5BW-O`J4*h z!z(|3)jh-~?SuW87Hu0>g+^wpE#TRp8GF^LIY>^hlPxww`ClhqyWtU6op}36N66cY zfp%XggYwTo?)0a6_OVonjK{~Yhu|ml5ZTND3omk2hnrs3A3H(1#n7Pc0s*K!l=wKj zvULq{3;`zeGx)cB{>&GtLU*<*ViB91uqN?OQrA!4&OT`RP!D)vwQ)?@!@v%VDDF$l zh|+$9zf)>5d4cBH?(qWE`YD*Q$X6y7PI&EA3;d*J%Zw`ODL%t8am4F1;c^eV56)+= zGl~T(1_A}zac6Ic>>PD(*fMWC12q;g&hFmyJZkR@tb_sUItT!V-$O&>=g(wTJ3)+$ z^ft|jMaMw?L614xV98RKUhU^D(cX7iV1)7g9?W&}sIoF*T2G2do|4!C`v>mj9aIxi zUUUUg-M-LF^X3t5y|%eU=KiNRTGm{fJJG^V2d`c>C!EWDLRxd9>aghJ9hRik%bmvW zmekrN^x>0i=B5@FJ25*`*_)+=y&ZiG*PC46bDjgZ90?`e{$2Tv<*pJYb(YmP@Gn*9$iHEbdb9{gNgW8`&Ju zxJo2yE7+cLOn18n`kyMo@&7V|a%gU*^~P_kR<}E*U{yVW+avEDPd0ihE}wGu+{a=o zu9}oI0wo-GDG#}P0n=gvr&^W`u(cyD4saC%D^Bzd{0RQmNgO^!q3$w16*4JWV_H#vevAFn-OAV*)=WL1he@JF1K$npTD}a;4F1Uy_Kmjs}dOB_;Vj8k66>>Y%tps*kQ`M-W7T3$Vl8 z2%SK#=fuy8(w6FWz3W#{N5~V%;BVkwzNH0efzjP-RK zM0i|L06=n)01n4-5;`9N2Ne^N2L_-Bg?kWr1Qu(WHh*RvI}ZN-ry(Ee2AGcLM+=X5 z`TMN>FN*48Gww?G>&fzWi{)XaG-*lnln2Zy$-<8g1sET^F%SOJw+7a1P0TJ|;PV@G zyoJBdgnLW-ICbbs)t5eH#;plMr#J65N}*5j=Uel1MEJ?Ei|<+Kw*`leH4scFf5_j3@01x2a?seO^2Mo{(9_jtAOX4c-8iMEW(wXah-s_xuysKOpsVeuySMyaM3sYgtmoxZ_K zDf=ItXJ74G>VHaZx4P(rQKQlAx`}0THVfk(cg$z@h+d}@;y?Gq`nmm8{JEba*Ipc5 z*5a3_!JT7B>AY{#(Utn*GsMT@du^Gk1S5^2&8cF*|Kx4Kg>pxuoPN_8pWwEZDipf8 z#hE>U?x2U7b3h~hQ6c`_h|im|1Pua*6Z9m0DJkikq1g(713zNFDu`Vso?^c_?r|3! zY{`Ed#K_9^6vqN`CU%rll1KywgFb4w4i3AWg0H?Wf+GS6PQP$#dvHbM9w=1onQyR0 zAdLQ7Y>Fksd-kb-gLCzBN1>5nI0PbMR(Vat>Z^poJ2|ob+IAuV{9Bvy6_6l=!lj8}do~5@*Je2jUD#hztIEtE@B&Y$hJ5qt^p()ie(_abIlTP*z5mxb-k@=3@*JEBRVrLOa=-OAIL>} z7po$_YsQW+z)aFw-fH$UC9Um*6Po2)KkGS`_xVMEIDm7mu z(f(O&2k4=P11PTTQ^bcl0OZVFf{AuXUGn-nvch62va$Lt{%>e43i75;j2q1~&s|VOd z6^19IAOLVy+V0D9{TPRDgkkzeAYBoA25!iEt-j6oyXyY?zaj{4R~q*c?Lv-u))!fY zi>_3bd`-1F$P&|v5wNv$l^(Pse+A4^3oFkI+zb(ct<)cH&uG$|Gk)G(@ku_3hz4i}Hz{lA^a{7q$KKNM0hk!TrA;gZQ)rCqTQ3BAQEOW;sqb+dEr8<~QGc2I z6w$;plR_0AMjQ zN*saP)G2^KQC+BqBV`2_yF%+}}A*6L}#xUiU%!lH$|W!J-@KGe0{~l9KJ=o^Qt#w5&z7d38cHC4|R=*Y!V>`TzW` zCsL--$x<)ir0vrH>x(pM8`f78)d@roO85_?y8re-Cg~jzS#Es=GXp7U??Ri)RuQy? zI+qa`>~K3+q!%$78B5b0bRq|bwfdlbPr;x0IICf`1$xqDnYP&2AgPlPS%4T!G!rPC z(Ep6-2#V{WyX3tn6%s8Kv3}eHjPs9HbP@IrH{g-oSA)%tkr^&6eyju0*;!!#NNLpl z3UbNYDj%6rLx2@Wo9W7hs&8MK31DH21LiP6zy0-j(zg0p7vcC$6{iw{W*1F1bRG4V zc?@ec&^boKD{peBwN+q>x(`h*joTC`4N*-1iM*jsiPAauF-2PB2C&p0&M)2NA3Av8MGhrKY}1!$k1C; zN%GRm1_HZQ&v-@{n>xnNG(XsCc%;T&zx7GKIhp^co6yMpP_5jqO8d5Jr7c>*I_HbrZnd ze!5=!NYo7g`53JHy6KE2oV8D>y{N+~6DUFWy0c z9U#TpUsCC4IlI$`%Ev?Q#!Dj#uP;A2f$L{)P`JZksbChR#3(@Q?jgl5AAO z(h}71PejihvIJ~{7hWbLo7d}Zlx*K;(6X>PO~rM@(+E>@k-&Hue?i-e20F^+jQ^vk{`~@ksd>?;SsR40RT}4 zsqf}3G%PmayrX5gQ&8oWE(vdWVtC<(~D`FZmzqryMN;PINzzARy0%C-PFI!^WOBgN2FT5 zZn<#Wqt`sbK3~mH-}ks_Z-|Uv5o?-n+aJBjt=+=fexs#nhu*}(@jfdB&eFNjZhguv zEssj6DGcD&!(PK<#}FM~y;%&ii6~NBB!j*Zou8JVVFs!-a-kZ5ZwzbMhNXtfb<)~^ zDJ$@8g?Dj+gcs?6%8%gnQBCgfiLISBu=Iz1%N+GnC2B|CJRka!4L3#%EEzjGj?he$txkA1y+TK7ojy48&1P-g>Bz|sB2 z%{~gB<+&-i@K#duxkJjiAi98f(;27bN3%Z3Acu>Gr(8Jca! zvo72wUH;cm>Gz|I8@JU~ij0W`3uDZ~NFTL}w@(S}fjvvgCo!a*Z%vC5XJ7_$@;JsRm7D(324v}6C=s$yHs5J{|veO07)%5-E3%~R({hk%5HcymeF^nCD<6RhW)lv9o11yUmS;-+KDRFoO*| z+s#|$HsiW2Y)+A1Zs!w5Hy@LSZe47!IMr9i=IxKP(}u@gpQ5sLYkoMC=F$mlz+o5p zI-=WV8ITm0I0FqZ$5#Vx{UU;c%%pyU<>KqoeX862kyir+0*Re#Hd7Bjx4Gr6Ys_4+ zV_tBdoPGE_*%hdnwD=sb+j#T0d;3wYeXR9Db-$QaY1PeQ-EE*k7(kxR`L<`yc(vz7 zUggx-X^H%)tD(s;2JDz47_cdN7a*J9uzORo?2nScvo0{&_DJfa+!;nJ(6m!Xjpvgm zx&Y$uv4xxj&?!5wUBeRAFqci<*%;cMjhy?eh6ccK+cYOPyvVV1>`h_dfXHiLgA;V+ zY|$U1eEk%J+})IAoMKsU`oN!BRU{*kJ77R^A)KYl$X=PP*NkZ-pK9ErK7Z^~ABL-` z{Bu0ZC+R_e98cRmJobAQ{mWQFl$6!SPg4#dBtX81Nh3CP2S9>tL%INO>CHH<3tC=jcDM*Qu*hPQ z;+=hmiJ0HZs1;CtXg! zQT=D)QDN|AqC1w!^cmKi@z9)X?50qbyuQYd)8Le-l8@!5=rhizh@lp zaXioSFAjf@`@XL8bACr3K3^*zo{yUf1NJciIPmByw*^jQgxk1O#;~w-8--5#iD7^5)Mu6uBNBJ7*Q7{9%FU{adF3wwtVFQ(v7H zK!b8{aMcK3?u5G@fIN=ua0>jFS8A}>m<8txd*z5PrlCFG8KVUJx}mZ5$ygfK>aBrQ zybg(34-`g&myNWEKR0T)H)f^@y2OZQohI>L-p;GT-3i z73ChhMTh&9dDz3XT@GUg+)2DoH+vPFK=?^^FFsL21h`*nZZJ`wmn|LTW4>7J6I3{QDs5$`#kvk%f^ zRBgw2+sJF6tCiaaDe3I0W)hZ^X1jKVC8$xM*C(0-VsI4CJC(7r@H82(GN)l;;Wci2 zXLZqQgJ&jTqYrHyJ0L%KT+-75O}HeZNh|2aY=YFRx2<=~hg!CFfhHk6Drnn<$C^t{ z^~EdmI3e7{UDtU!nt33i8a?>OydKE?SZ9_bIQ`HE%N;hqzW!&fC&vtSx!GnhY>N!7VYL$<|?^)jBg~T(0UwM;KNULFkVOurIXl9 zkj6qnE;;ht@8Apeh=%r6blH8vo6brgx5k|Cmh1#mXGi(`E=SxcDEQQEu724%`jimR|KA>5mQr zre0GZ&ri#y!5!CpVrIRM{!g~wDgS&p^7;!OinHuNiyhU-o<~`q?)y4cYbs-r@z5;K zYF!qS+nXsx_>vTsOz{_mPD77Lp4720B8*PWQ+1v_uz&Lq`XnxG?Kdxn(aLomp?mI<3_35BQ=iBJG}97eVYV z%RR*zlU1+>(-S|9$33UCOCxs8gl6d9EZGAovL+Y z$IJ^;L3kWA44qf_APIMlNS~G0VNf%+vDzN(aaW4R`+KN5L1-?blkf2L7A`9d* z^VpV50H`I-qXqTamZqb?pHQrXi|A{Sz%$t9F}?5v>4}bwm+v+>C0`=cc025&t z93+5Dl35Y9z|FzGwEjh(caa^(LI4za9Z!4Wkz05NJWIIOf{V*|Ham24podS%^Tp47 z{pO{5{JAdMiaVms&k)q7Q9Q2oxyBw>U$UZ?pdZ)+^yLogVVjBU=O+R%#~!@Smkn(| zZ{%vgU`5*F~Uu zsL_$C9k=jv{SpqST`H1s`g*deggWOwaPe+N?R+}5^0UQ9Az`}}+$#ROK^0GlD@vFZ zrlh}24!1w|$Y%&FdySu`0_s&^a%ap`dRN&8x-xI>9YTM2VHfS2mWc+=R4vfWR~;d| ziC%>FE}{0Al=j(XjOgNLpaKlNT9KB(YzaY_W($0Wht>y+lRpsI+!}!kPpE}%eC+gp z#RbLNL0nmVh{Yy+bon+TB8emcKpNRE08+?;;6trZia_k(gKl{&hll zCKIy>J?ZgW3c&Hp0!x8C^PZQ-P;O>13&vR!d%yg&x9@i!asxJ=jks5v=yQd!chCXj zO4k#ksAw7$xeu%gV!xs(J!MyYGcd_bV2R#}hS>!JMq%gFsBZ=EK-1)N3wKNROan&U zxdh_kVOT=xnkLu5L%b5Z^JAfXg&ay(bUA!_V4BOyV85@S}L#);RNVcaW5({fmolH}c zVF<-tpjf7xdc7)Ys2(sd49Y6wZU{b}Ir9NZJjVg<6JUQggpp}6FUMDhToj^G*{d$ZJ6UIBD-0EL!@`SS-BiU;z#O;zmMRL7-TK)H%_MCh6Eg06pg>K4*BzNJt|S6voDit{d53`70%Rz zW-vN7iHceIcUjwG_0inW2jag@XM3v`PS%TPyr)?K76}Ww9ko-fW}3%~U9RUACWS!P zRZ0rQi#V0-Dl!K*41B@ z;RVG_@kP#Bh64cJH_oOKc)a`^m>jSLmCIKB8Wyo7F)@2fgEi5Z$@r|BVo&4Qa@s`q z>*n82wsi3R6{*GjFJJ%BF@K@84&QSOHQK=5C-d&;rVx!8ZJOs`u@C0|+(5X}jj1EA zUkTnEy^pOM@0OJ@fjr+4ncRItSM!9)Mn1#QdLZ{B!>oA#XUm7K;OCFtsGzg3b8Y%y z84+>$032cHLyvF1l%f@zDQ9#4QG5pb>N4ab5wTnd_*c|v6M1dJSnK{U3)7uV$i9Nd z%F;v|nM={z?>%2g*4WDj&fLO#G(SW%{9UNUjGNIf>Z45|-`&+3%P<(jWS|7HQ$6{- z5GwFtf!ey}`q1OkpYSOdDe4pX$hRK6H(yOIz_<`h%91)urgZeqtLl7w2|v??p471K ze6)IgX@~=NViXvTbA>-*Z@`H^c5b-8-+hf{v5qtDf-iJM_mIy-o%E#c&PEs(|Cs{gF!=q0#)0oAdjqgIzgbg73n_a8H`G_5sJ6-QXfB##F;A|^F7Vl-T_9cuJP9z{oUd>YRz~vMUQOL{9`(A zY_Y~>vCAVa#JK!Te)V*dfBK~x0Dg;wfk@Ey$to1N#Tr;n|0QitqjZS(H#wj>q7mk4 ze{Nla{Vww!BvkN5t>rSYFb}1*2gl&i9xPymR|-1V6(3Xdv+}9KV?g-?DR`i~qlUX$ zajUA9xD?vHwtg4B#6t3y#pnyX8N0e3zy4x${~aMV?|C738puM74{+SvksuT6oTHny z1dqK_@NU4CKmu?UzyJ6=Zj!K6gZ#c(z>$8K%$xsN4Y&~GyZx8~Ztssjwva$1jb!7e zjmK#(aA30-zx7esZl~#*CUby&zRmvGqmHLoh+Dr{9`pcLEHs;3U_v`z#cdnDDbVM_ z3R9N!sC)LaqQ6SMdN>H3u@a=!!PV&<&lMhceGJ3oes1kWWJs8!w|A{=o(0KMaY@Nh z4de?4yfB^XMvss(Zv#39?^?LZ6?{!hv@bVO-OE$(>_lKE>SOhRH`Wf8dpWLp=PJ2Z z18qi2h;@WM&jU2j900ei^_AeIAAcMzZ8RCJ_6@}D-Ss0<1bg){`T9>VoUXN`PbnY3 z7pOC!-gm!`eno|61{w0d?i~tY|IVu&AS*mJDJm#sg!(CoLkcAxX2J*yh>~g$c#oo zVXHRStT`fVP=_#~d{|#aiO)?@%A5frky)ZG?`W>gP&1 zT>Wy^Eb#3Teg-d|fabkgImS5Q3(-R4SclJhUU7Y}f|x-mw-#{V0ce_`!=?u9H`#c=zKWY&a9wPLHl&)nz?1NaZGkIcSS8W9*SGR6 z(?;VIE?edf2U(`!ebK5`ip!j31KN4U-d`8IV@{a#wa&hDIR{H5xaC{-@^NIOX;lC2VmV5(Tm5gXgT*kdGT^sa<50YsbvbsQH+;*(*Gh1a|cT!M1MbEma^+xjn) z&dRe3HTAxIiwxuOpbY=g(u$jz{KsiwxS+qCCOwXM7P#?FsQbUz%I)vXEfSg5P@kQ= zb-Zzch8A*d!`d?Y(e}VZ_`*Er1ke!1VYyH%5gTGqu~K{5%9hy$JYmu!H-A$jU{{}# z8W)hg1sEAyu;GxU5J{gYM{PK-U5fG*IsUhk8hq8T?^GH=0*J|%;bBa(#agj-V;FI( zi0oqkU+$<7$~`PuK08$ZJ!mV9-m3^WZr!gu0m3h(*KVy_2owFc2{I)ao?wa0Y?K)T zXjO7=U*ZGIO&3e{OmEn?G$7iij=E~BVO#X;GlqJj&J0fxh6I-fK4Z7Wm9VI*w8&Fg1m-tW63;%lOQMy z1J$j<&W422b(ci$^5xD!XiDPpVn6O&auemXaUub;c& zrh=eP%l1b6@^n6UMQZ7Rd&=AW|MsIq4)?NAFkC z;_v7b61J-E$h>}0)n2x`#S_uU-9KoUD-cf2ft&$t1Dq^4>;b%pwM`bim+84M4&}mO zkD+R5zOP=C-l@08o{U%nB716v)M}88*Sp`kmr79j=non*MSvqsWcU7egSOZ@&s(MU z4omHB{=#p<0!jULSzn^eYy4xY@l_6XR5)^b&xo}z81b0w%~$4cd0AfR#fDD3sFa%k zxON1>W9>%Ma(#;A%8|fn3X~iw4EyE4Z!J!rt!WBKGu9rrA9tvlrc=s&*8m8xJ>Lp} zRS4?%K6#FI!pJZXeYMK1r?DKP8Cv-AS+m=cW%V7b!S%yym0Q=H|4PCMq(V)vcV2%g zqVm3jPRsc{h>oC{5*>wWpmGR9b5FJUoLXDWObU(Bw=A-Gk#+@AKrHOOf!N6eREi+pNlzavt_~G z6FJLo=M+QepH`D`hw}78lLmVcJzAy6G7uDLpcQHLOzwvEdEu%{>64U$dcPSnMudLE zMVQFiG&XWO05dzc0q5B$eup$)0KkQie%rCFP_MxvvUnq7(}!t=C8UJ_F8(;4y#`qO z+U9Xwqcv~SL#^}QNgsxNu%~7vcGpf6sL@?`QIZ1#Xt|TXi#B@m)IQyL`3wjO40sB< zh9m2ymbD=3J2c)(r`rXNmRp+4gbtd3NZaG~E9T&ZCX8!0-ulIz9eJiSXXdvF8_1#S z@cBSIj_ql|NACoD(C)lC^f-=0?Wi4CCsW|&td{05m zY|=aC>941{5@0};3AYQy2`x##d9_ zjI_!6j_5Ag#)kfmro2J@hzJxAxCNV;mw|_VOJY3FeOL} zeYflV_2tg7=I7mRd3~n=@|TvsOay2SY2$!g)BA#{QCRTaxfJVoaCdwnG zM#0cYgOGDPio|QEvY^0x=DCN=m|X7EbJFW;QB!CruC&lI?E*FTKYc!@7eW#R`3ymt zoeaCQ*3cnpW$7VrdhQ{VY$cC&XtzR!=ny4U_ls@uy#4)@D!4&#DE2ULAH4dk5g#YX zw2N1O{a>Jef|X3rIW*@m$Zg>Qb#&ExiX{v;m0ai*%8ib6e(JoP2c zxgCZJgyKW~25Eb>xI=tRZZQj?Hl_E!RXB*VG3@Jn7u5X;6KN>@({?vxq0z+beBct? z*|Ocspiia$ILPY7ASH-CK#f)AjXLXnPt`!&U#I_&e|RW&B2o$PXxa97{u074Yh>%r z@Zqk`p8BmAu>HxglF8z#|9%CDM=#f&wcmEudI}U>Jd@`5!j1d;09VKX*O(kub}HFK zC~RlX%{?#eUVP7RnefDMhazLsSowUonKd_wK!m=nWLUf3EcKj40H@oiS+xkgI$+p> zqc>SQUaaEIjNy*yGcxJRfJ*A5g}+eH_*$D~`#M=7@~JEy<5D1>(0wKBUAWW{%`@6! zIJ`sDm(PtAc5%$~*(lk-H?#rax%bz$}n1t0>^WlBAHS?@A>l`$+HBBNBR~&?u2Qafw=M zngkIO-SfSp%(o?J%v71FZ|{@4lw>7e0Ugq9SBGs&0oEs-c+b_%<Qxd%&&OES_^m(VboLi z*VVK#!$B*_-dbc)xySt8d?@`ik*~jVRV-f+1~M~;`EdVzBJtrAAlf>mR}K7q142Wu zj@%txlsY-_8Do(aaQ|m}>^D6%wjg8`UsTgn%>ixkE7@2oFz-L5;^kg-{D5=w!9t_g zrVW5#F+LIXBDrV|^nfMfM_IR>_0^X{{n3QsTcHv{UveSEX)Tn5cV&WqJ1^a8giiD1 ztgFR;#AH{NaYbpGg5ra(_KLrpI6-GCEk!L=j=q4TrgrsieRydz0%P*spQTo1Q6ON& zHlaLldOm*%BCJh61Zci3t*F_nllTN=f+QqNTN%@`H-)c)N9sT3Az_nL?amUshR&Pg z-#q>efSK56`{OuBO)isUL4{iCrapgE;$|Q_P9>OE;^reAVIlRv->CTn@~~YQ&ReP6 z8g))1f((M;MQNMvC|P1UA245^apgG(fOM|t_G-^O~Kzt%@SkNV;? zmdndV|2ag`p^G_9Wkk{rRc@Lqea&!>jW5=!Jy@d{m4Wk-_a0=)5G2Y^w8U>~^$U*% zCTy8QA`*rI=p75rN{a_>j@zqf*zQEWv;TP3%dM#gB>@Esg*Ed2*c!jAJM(b@^>(j5 zxYL(4gBgcDyCa)v38LH`$ zjUz^wyU&oHfhG)b2m7}p1s=jigG?~T8oih};qeC!2)cV+`8T7Tq^_@mU}UmFI}sr4S6*7M z)EM%0LEXzmX*iXL2b2gAH?HD1#I)dlVHw?s)2*aVKPe4W{@ut3XM!KlKR=AG2A!wB zjZQK9$lpLO{uzNDfAm{A$g6W$vnkd;{&k*QZ^t#`PpKHs_^AF(B`NxHk8C;Iuxc|q zKZ0K?L-5(w@Yj*2uzltugb#MX=&OEY=;dDN3j&_-wv+?CVupV3{G;eBNxu6*-=DYC zYKj*qI?+@{f3dYX-x^6dm2si?;hWu`cv;gzru zWh7e~ifh)d5rhA*Q1_#FOwUG(3Yr(@gh^7#z|Ap^9@) zGr}Xw|D6R8x4xRmI`VrXMI``mi6BRoK%6e$3~q6j=Kz_*SwEj%aV;Cn3<5Gcv5#X} zBUMy2lQ;xo6B%bOuMjJ0h{t5`V}wOV(LaS>QR~@dXk%L3apS0F{>Z)kTT(w>ziU_#TyIl+Fw#U#<4l<-l=Q zJ1`#aAI5je&H4GDN2Cv_&_qTr2hMMMW`8L_nL|JM_js}R`^)AdHa1POcznZfwP;9K zt8XjAA11lQJL0du`hNIPJ`R7wzhA_^IA*E%XFZPwCZvzk+u%iV@eQt<*o)sk>dWs2Qn#=y!ql}4XxFC|s8#Z1M> zs`<%b7uQRfQeVAZcwRsPaRvlxmyK^1&*sKLscvqpS%DO3pc(VYfb`D`CTX<#VXZ*4 zp`gyX1vWZ{hcW=e_RQ;$R!eVd4t^=@GXQggIvZNtxTO$>IDCJuL^}5wx`Z0|3{~#w zs%1IC6#GvH1NMvLrJ256JDb=HcgHtBHy5nUZ#Ozv-2A+KouUGGUM&ifO`L0>V6V1h zb;6b)mBbdens0jwtUc|_iV!6*CafgpN{hfEP6w$WEZrhKH?{)j8{!U?cpjId9g$N1 zLGzonw%RMEOK`X)b=vQE`209%snptg@(u=%@$&uzr~VPFNYe>=EU8dMUa` zH{L08YjjBDw1k5i2vU(=FgkI`qn$=ub+um0PQhepxzp&C9}w`RHM%aE*{LVmUQhYQ zjRB^b?P})_?W#tVa3WeN*W5HG=$Gmwj>GBq>Oz+)61RpvYrz~@M?=Iq8v~A44JDh+ob*r6+t1!(g0QV`=Bo*|2b^QJAGo}5>xFor>bSWG z^S_GMZ>`d$y`<&97v=zH(667%ZyY62QG0GZo%nc=hc6BY2$zQg`TFAe0h@@a*Mv5G z^&3B#K!%`SPWwz-8u!)Sr3*Yrch34@)M-6Vhq?LU5mR9lOw)m2SUMr&D>WP+n!^P7 z(D(V>9{V!%@8QpjRxKbczV$@cLM~TsYh1U&tTBDmTt?J1YTc~Cr2;$t{UC#$$$#uX zo>l8nf&=c?Z}kTjrMOklHM*Z#9sSy+zSQn3#jsnL`lgeEgHTvO=@SA_D+`uw+G)@x zLV1XPZ%(sh<#(Qx+surq=hON3->*wn>&QBTvqa+xt764)ho?=aZAqYsCVn^2Q?WE% zQ>hzHKqp%)3!gmXZ1fP6;PR)n;clFSw^OVs=vk7cL+F&p()V}u8trA2u{o) ze*{zXd_%SdCQZ%a2)@{tP5lST`lcE)zZ!nS)MkUECtM#~yEzVvNNDkUd@{~Hc3Krx zJzt!VC(K^E>kf@N=ZlXAK!|X6zwUdKi?d`PboCB*5-Yx3q?U<3_Ltw!SE`Ld`?yX&=k_nxxt;ECUXU8GET3-l(YhjffH0I0uU` zxYN^TD&G1P>x^qx(Si&2f$|8PL`irzDf~)D1}rC8h90;gI1VW8yUvjNod~}qreQ4Z z4@88V!-Mu;yF@n{LI@}ISHo^9N=8#@B0S=0q$yfmnfsudg+!#%k25Yuyq$uS^jx`3JB#r5ZpoAJt_m2Q45_F zVsq>poY`4vjlog5V?L{dktR#l2;B3Xz5n~SuvSg=Db0;eo96QXbp4(eQC@cuRPavq zli>$teD1*h?AK>sp6^M8t*YrfQ?21Y$=Tfp1*!CO#y_?SHl*ec3?n7Yig zm{iB~^C&|`v&vtJw(e!mR~4pAwkWM^TzQ_fpD~xr4~Mebt_*nHfymYIit+u61OxsW z%E7RERAj_Q1)CfI1PE3CH&Yoce@Kx3*Y0UsN=3$=CicsO8vz^H38Ow<79J|tJ zgNgAF6H$R|zxjKSG&CLPRe79D`6|z`Z4T?1wB7ZS`JOMs`R>rr3y9SHwgH@SC02gm z35HeHg@=;=*TgOidvj&pMohepvTr#0A?4cpM9xb+BWT`~$E~s4tPk&-@RMbg$!vYj zI@WQJvorc>2p>ze{rC6yaCcuKl~B<<@GXhGC&(?wA-e8gjRq533G;Vk?w8*GPRL%c zAG@pe8;aY4Fe%#RtN56?zj=2%QurpS+`Nu?Y*eehqj%``2zyn|q|?P-wP{n0&wL{I z*Y|PZM(ig^_qco|zZd5NUHKNx&h&D3l;edjB)1VB0}uGH;=kef(0_AP@xqsElIA3E zC~BY7e>{p`a9V#}-d@zd?~Am%&Tpbg`?bxVj%D9}O5O*Q7|4!O%E^u>-yQ($gJS*Y+wYcg5E}(UD{J(E*nxF$hf$6T4hcSvc z%bVQ=sIE=&F60VD)J?v96Mchm1p7DtyQO!87Wy{}@r5OOgOrPv?^EP``oC@<7Pqc5 zK-_`N%_&bPetu93_a;x+dI<3Brfe2dTTTdAk^(;bj`%EKt zed;@OYAK!NAH1{{If-DgE2)|s3(C-4gLMRM$RF?faU5X$RouzA$TACt;&h;jSW8ez z<*fKjbP2}X<6fciFAPkP5~OS*X!9AY+p_^%Y&zcz=2Ne>NPd!d>$V_O7tl>YNl$|F zVd89xfyo9G%zBJKS8?r9v5xOvlm5JXo2!9*Z$kXQ^a zK$=kBaokCuUZ{oKUukdXI62c_@FNIS@V%z{qLo81QBkEa9sqF5hY}ljtiHl2*ova! zlJ3N=LAT#CB@`|g9qSX)$w2tnGvY?!!?N#@9_X1eDULL!ozW1`?QX6B~T7z zl_mVWa9`xd23>je{zIa0uhnb_-i>AhZ}Is(Mlg~M&Ox#f)T(g_Cb6we08u0qJg%4S z5fh6b#^ogkyOrmNI@~zqhDvpJ^)59Z859=;1{D>DAQ*I?(vk1|`EF&{+WAOrpCVS} z)?3U`2xycpk}HUrf6C^YZXR~ZslI>DlkgpvbnBbz9dm6ua7Vm~D4U#TM81L_DSb1H zh`hot7s>Ail_5}FzQaTR%|y~(n>V65*!G}TN41n}6|IHxAT=p*+|RyEjiCV*wmtwg z=-mXMrUXcIS0882XikhLPZ*j5TpOcyHGCRdf~wbf1*2ltg!j3L3`Ra<$DP+V`;(_T zBoc&w77rxfY5@NFpIOt=Fp`1Hz-}pzAXtcJCup;Tz>{hZ@@e}o9df)!vhX%v`KrbP ze?oA`#U4|X3Vs(0dchBHD)?t=-icJ4$4%E15`wk^j+ZoI91lbYIGa$$0`I<@I@Nr~ z%$1qb>QRyrWXCe-S%VPR6DV~XRVI~KWI-T#Dd)6GDaN$XdKD+d-I(DDr%FqbrbE21 zfBnZ5h1g8l$_w;jveE9Uux!^<>3yjAp@XQP%@<|jI#XVT8X=g_x0%&Scw<@jTHK%6 z;npr)#1%Qmcw7R$+j`V6f=A-hO(DeLe`vpYEe^pDI!0dp?zUh$i_h-t zrR1G|sB@MrMh*s6TbQ1>ufn}ozuybeKDsAb&ORiM3+SPdby<3HOv^6Ap-0k(#iJU+ zrDtD!_ok$5KpsWrXe={yheGTqP zCTFFFYB=Mw&43fM6K%v82jn0HgR)M0;KD1L*x{d5d^;P8m;b3D;VZ9#h*Ka&W=y}z zhQ9$1(6GaI6zJWt0xe_WCn6w3l2ZNa{J0sYmER?NC+e4JoZ_OV@q4NHtS{ituJzON zY+Yw_jT=)u^QWes7Vl_IRxu>??@Xi5i!0AfN{#y8k_3QWOBi?LhbH?a3)qzrlI3s0 z0g2BFe(9vuJ>_+-4I9@jiTeVAEC;mA)~iC2H56rd4OFoz+&qL_+4E zNIeB##7R9%j06GFiok7T5kw)u^%AdnsREG{KaexK(a=)t zPs=u$Eq@cMP{}3*v@mad8os3_MGPBPP2w9dRKWj9AzU+B&FmzQkxjuNK|$QB{LK=Q z=nY?fz+b@=Y0kBqqUd<%0B@RI1&ia;h(_z1^N(~h;fLsl7|rnc*(Gq-N-7xRbLMeP zoytv6=&{%+p7#o*7+G3$3Oz)_ZnLs}w>SLUT)jz<@sIpp>A#EPct6g332mr+zNPZM z!qRGs4;i1d>~#NK{WK~?lvrP@FhQPl)*5X<(npAg%18E+wmgTi%%KU@u(6ByvyvE+ zh<;{PIt|6Ll=;FDVkmNtCOZbVnfe{e&c_jjA*4xXBvY_g1vZPAmHz z@7D1;*>;)QaR5%W!>Ub>6POKaPqy#SRw2*!Zl>TGi7dlu{PB`U={ku4X09Ri z5|Fdq)=!55SY~mvf4P2B*7crg9Gah(K9_0y%uXkdtDMlHD!2un-a5pkJ1Mp7a|hsjcA;*1GMj2S z@fP-8;r_e$FZs=JAE8Gqp$Z4QZ}>;~aX#U|gqw-}bqKIk30b;eiJt=IE`$bjGl>vY z{2LqYAljv^|DO~5?_-S z4hSAwRT4_&XC^>iQe)-ft$%e^^%SuClb+|~917<8go(|%U3w_Szl!`_K*sY$rlR{7 zOVsaGRiLSOfbL;17vE!ux^J)3wmXS-ucW&yG9TxtIvmXCD>JUM5+%??qypi$V zt0!D5(C=w==Jn2}4HPU;XpjN^q8BChz+el2H?1ck>8>o}o_L%N8!9+^Q5JjLNWEK83If~KnsDq1lV zslO=`W@U-!rytUu7ma>a@J;uCt1<38*xM3~*hASZD3Z)^iFtg2`hex)nQ3DI7tjPl z2^%%f9H(M{NZ5HQ&3j%(>1GlL<|Mk_V@}Vp-Qm=3C||zrY`+AGIx|wYp;j*fsaN1E zRz!eT-_gKFl0uIp;iFM=kZKip`EluZHnEQrES>}EM>m99Dly7;*@qjTX7aX;@8j(WZ z&dx+PQ^SEyr-SxP!M*GUhOfOg=`FMAgN=VGX|HI*cZHN4?r~V)t`>lph(JY7<=~e; zh_}okH<1aL=u6=3gWZx<4poR|p-^F<@|R1uyB4pGQ{e=f z$B$yLOCV7_TEVe5*IKx|-$74sJ?U`ET*pJ(S1dAHJZ}a+Rr6A0H+TqVrN(nhk}ld& z)wcXQNt4$h$Fuh=(Hvc3XS(8ycZ5>BF@{chPf0##eajLxe)_N8#c_V3NGfc>x9mkl zt(a*&aRmJ7R9%Sv!AnoI_dIumTLk2;P`mVbjC(8XZFtO*76MZCB1;`M`l<35SZa~> zR1q$n+apKTDiA6!03R^gAZ3BP`v#%v4OX{GMSh=#Uqf%78Ta!{oP$&hjidM{_CM2+ z31J13=tx)#O;d1XUmn>Va99Y4{h~r=(jya@#JPUpLJA@H~=c&m0;S54T}iH(C72Gc1cFDrJ9UOsHb{R zsn+2h+olM*ac$WMibtGz)_%W5CMOi8N#T)j8P^Y~+6Qt6Lnmn`M;8JUUnj7?QSf3Hwf?4+A3UXc zu$Z2wUh3l9T=+RT4%glmK-a!H->YxK&=NwIan{cp!9Z9u(!H08m1Ju(+KPTw|L4~^ z*=GVfOG>R$s#;%^R01JMef6v2_*)G9BPPF>XD(f;=kh=0_DQ-b!-FogZ`tlYQPlg9>p>eUx$gad`AZ z>q8uM{pfI1A22I!J_$qUV7QbQ)GeD(vUwFB#2l98qAeMQd)A|qP>AA`E%$?KduP{M zv|&zw)@vMfl1h~#f5>?g1Wi^>j;sfWCwwsA_=7Trt&naOhAksGddcp<^~bS{CAy$6 z+XIX$7XRjo!@Rfjv>mQ8%Mvu(Ziam}^#6TI{x7_4AVkpdewxKg<;R1nz0jqT)-6kwa_<$Csim0u;In+Wv|WP1 zMB`HrtI=@DZn}Csg#o|NTYiL zdW;L3N}ashb@DtyhDe7Py#;6LocTm=sVKxZF`k#0kfW=z_1_PvuPO`fc9I2b@~vg0 z4LObGf7SS=_eli29j1NJ_m6a98a8Xq4+PIMheN(tOB051gAn}PkQ=xRXfd9K5D|x% zB%X*5yhKg{h6EPeG;0dHbD|(Co|A|@Qhz2i6F+{K~6$pB6Nc4Lt#x(Xx*J z7(u^5QPEtY5nS%%I)G*hmnZ`P;d@R|8MLz~^0P&%_TV49%Iqne7mD#Bh!|~Rl4E;u z)P=ULR(*t6b;s`u3!%H8@9!f20-$qD4kg+HbMk@j{;W7E03e(TVgA&(6mohA5Bulcc*Ey$-W| z{tw({b^YJ0^5Rijn#;U)r&{#YY4j#gOshCz7BOAxI3jos$E34lb&UQj`_Rtv@Y1^Y znKWTLA%Yq-o6Yu-DGHY>S?tL7Wx793?QizzrwQlo`ZN;vfJ=a#Bbo)=d5^-Lj(*D> zr;{nnYg}cKway^5({cy|dvw7Mm>|;-5dB5f*ags{RjODnCLCdGq)I!udNt zXiPJq)|}SB-wSut#wkF?@tG=YDfZxHfiu|^M>aKM^e|FB$D`}D6CHJX&E)o5~L61(iI&y0|lhxfq8k%l+YqcoxXeri$!K zzFkxS@z_+ZR;agGR^9E=e0E2a(>+2X6<>{JMqFAt{u0s=x%qtK?z=QFNbmjm0|hxw zbhH14S%eMZJ(CDR?~(MHYA>h2(`<^EO?&p=H=jz3bP!Szhm9D#sLJwhgz$yDjp9le z5Y|xKTo$aGCzU7fcyA|@_)K|+apj5&`WwG3Bw9SDIvAV#o}s9(Q3Cwz?%GFqX!$k8 zfI;Ceu|!y#_PU#{CJetClzTSiq9%FkdOrg7u#`!I&DG7}5xVhNDCkoH=e>WOkGgl@ zc75;XYc>KvGdjbCylM>%!av;mx$}t!16JKrlQ~!aP~0jU&)5~nqz%JOk|Pfn5czt~ z!{eyfguUZAqEOsKsy8eQlBK=L(YWO=gtg}j$TBD%P*2K#eVz1i{;=$4JT95@gX-!_ z6gPD$B!GF!!KfRewLW1;-9|K7GC^Ogeouibt{%R!dAtjQ#!V;J;3sjvG}k|Fxxo$6 zrV75e_PzKfpnaE{5YZy>^s}IVgO*6^U)J#*O)29VIvbvk$JNOIt7Il~Ux4nCF@TD8^|*szvoBB9?!?{OQ_H z@sBOx$@!I}mgKNfK+b0HHhz|#_7l>cjq=fbHG%*C{*v8G)b?KQmX||08HcR7VNOF3 zHuFpirbpil$Z14mHis$y-9pXH!{Z0>J9!&FDr)@RkHnOQI5(gxio}~(Mp&<0ZmQK? zG|W0?q$n90fWd~WK=Wi-aJ$^l%efGY*Y{@Z@g>yc7>GLbJVEQYQ_!sJa~lItgp_cB_hBMhTT)(H>#;$KWCa0ocfa&uanh9R={^i<~xG z@a_F7A;LnZ2dr(vrVF3%3E!{RHhtrwym|~Ts1YW?IPF%t`|MBHNlvGXT`pX|J6?EL+wlzQsd#-6w2o@6OF-WMu5fpZobk8iW&oz&8Xd;*_AUMKcUm5y7(t+@^q%n zepkYc126hWI#3SiDA7+DTuHDS*-8vwR=D6{AdDLMu3NvXvZbGTW2r78)LF*{s$ZXk zlYt7wEt*vY^*{3Mj!XaJ8#pS)>PJkmMzrWsv;+870TKMEOCKaF?TXB-9s6udOy5>I zoRC)BYYwCf=txu%vCdZ8+G{5!yf2?N%%H^ujUQQ$vPYga{e8dk3`a(DNBFB1)KWY4 zE0mgDCVe^NDlkeie(eLY;aT&KI386Q_l3LTN!9s5 zX3cwO?M5g*sdCxnd_>r3hCR_&y;LDY)KIE}9Y*4jRaWg{0))?cf$@-wxXs5w zFr;iaP+aek^7(dW&xU}GfX~hcF7)U}g8Rt{Eq(8K-b)=MSi%i)uujs+mROrJ@U24H zNxsIra;ObR!Y{tW*)mh?c~zSromk?sESl$quQR4jQ!~8);!#poLPrFt zN|6!}qzXtE5$PZ*MS2gtNEZ;05;~$(X;K5C(v+%n2tD)~T1c|r{Xb`(dFGw-g%5jR zn91Ceecjhu>$fuEl>kG{S;)PSdl1N%Dc!7hb@(Kz%Z8&jQ>`b?nOz#ReeN$BPDv`X zI&S2#$-W}3o90rVhFb{oe7=|Ng|lk+y>2rzd^}-bdCKMIbphqgnZ>;h?X=$nVNSYy zqv;jPac$2U{of)nA|x3Eg}mtZLI#4ZFZ>rLmS7Tn9Lm8@Pmyy%2uPy_H~T9xY5mIs z@MtA9l10YQ5NWlkN39tYa+LfUe?{XI013;-k?T@BD}(wplwAip1-J49@+KELqB0`wQ3Hd+uul>z6NmQv7Ucu#B3Da)rvxnUO ztSCbD;Zvpg+U&pA5Sm-&kJjB7neJq0LXGYW&#NByYV2}NbakE`td!~UOY{Dg=6vAs zg!B1kY6Inx{{vH6Rz>x;?k&N$9Dp4(x1mrj&cewbUaz^@mVCGMl*^tx6tV z`h%Xl?;8OraM$dAZuX4op;3_z&qt-#{}{?g;@D+WNCQD5U7`#Wq5)qW$)FJi%Jp*l zhdC7l7%wcpdRLB*#zY$fylQZ1j+{4|g@=dMP<`S9-zYtGUbrJlR3wqxs>I2MI=iOD z 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�-M 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%0DE7thvcj6J+qz<16 z97FUqf=V8iVnH<5oVsXWK2=L215@8MGTsw9DyigvYx!hAmX&339=wZmR?0J?6^?#B-`bG}gK}&{L#o9rtS(p5$|T%auK>N>i!Fma<{`k2`%w;2 z_#pmsMVj{*c4Yx6L_R#Yor-*mfHSYS&E?+ZT)g=ZnhknE3*Wx!t?Z?{^4rb6`**(B zU?gumeZ|1gd^d1FkBOXsO8kV&KXe_v+Ml|Zu-7n_8_v{K2Od7lU`q7-`{)-ZC_O5J zSCli6<)ZyoU7z(&-vA0ODg z%0n0Y#6@MX4J>LCSKwr=^gpLd9L7|afO0}o5Xk&rWVthV$kWlGuSoZ$xK^I$l{w68 z^-zX92RYsR-kB?TIPRD7S-2}0k4Q7LZH3qyy zB{S^$1z?}L(LqdKX<(nupSel$XSHR9Rj1zz#lF2u?0w(KG+rTEX!^2arbg36ns)eM z#2ncfR+&Y<3SZBUi_E=8BNfHV3UX+bIy+0dA!?A{{p>isB|Y}I6@F-89WS|`yqQZY z;UzzQ9EXePa7zbudZ~7J`l@wrlEA-|(a;dWi4FWLo#2$uU0H4LL@(^t|5cBM9?QOH z4q1^ndZ1yma;}!@&TrSl*ZH)}q7K5I6;%SR_h&Q~wyq-~jTxtuAVdQwu3_3i88Y-s zwR3(`>ir?n7dhFgdneOkcrjT=&CL1Y}J0p#((us00A=cb3AQ+lXat6A3E zlKB#i!|VTLpVwa_#&VP5j*cdmTjAo!VlNH@)8X%g;eF_H_uAXfWlEUVd^@R8jlO5t z!ZenX094gD&6ZCTtZiD8 zvt#qaq#EMZRpLpT#9@liCVFPi>ZcDuPMA^=Wa54G)oSZohWy{22uq!9UnphMP-CE| zdgW~5JVoKN)8+G9B`dW>vCmhHthxj5FwMtVqM?rB;KJNqKu7M{^lh6nD2_cjcsX%| z7QW?PY2CKD)jskyII4_Qmy7?pO(cVotKX}AuEq;6kH|JAq5S{4%P>a_AvpUa7vo<$ zPaW}7fOyVrgu3_LcGMn$1H0RAKV9F*k*bu3@40Rs3;N6PKhU~gbSb)a-3H_vIhCAOuqO zHAZoR@-bQ^pOEEb+}`{UCwJ^XS7KqO;G74$y^YS>`i*D1aFDB)ggjS!#Hpx-^`{xA zx4wpz%WhAvdo+Cc2)hdZQN##H~aa-S-SVH_!FtS`wZ{ayfSJ={&l3N z)ou^PIk(E|r%l#OE8MO>GJ*K((BG{lXS(KMnt$eX*Y{B;hrn~Z!xo-`XTaXLGu!qb zNr*2ht#tOu-E{t#Ue|#YU02>Y6HSl8_mP%o?V@7aJL}W-7~YB@ORJIb?B_!AOv+fr zcUilN8z2T$@EyP9WE&Im)LrIlEv+<_e$m!mEQs^5RB+wb)3NFc~^ltJn(Co zGd{C}&ovtg2*wgL1(3)TIu3_62VXe|`o|h>3D-)>jb~nSK3i}MEcScO6P!RMHkE|q zVdeqVWhc}maXdbTB1zcs%2FL@i*j&ggtLicF3ODeG z-9n$tS~cp3hTkG1N!eRUpL|zpLxOa%rE}Z=RhIxp7XNX{q+lUU{x*!IroEoDjiGL~ z2h%r$1#0webr+OLi+x-uZtnIC9^Z3}C~kc9N=mRhCeac*P7$=9>U?Q5MK@RKxn}Mj zR}}3<=MeS#5*D8j= z!$k!agF2mCBD!fAq%b1Z^0RgOj$*iOvDg0D8PfVXaWeLsa!ND2CgAZyAu_QBx&NU) zH4VAFV*iR8<}u*b(5c@-AXXH;9cn539EIi4)-s0dYrvi z|6SJp&8qc`$j|FmZ8~(1S})|BT8=Jc1|%AH=@lW~s+9s=J%_7cEik}mIXA~iE zZBNDz_ivaXZLGV_aDF;EX+8{81X(TCa7lC@?X?<;As}P-^ggGrM0C6;9Co&{nn7ey z(Jr!}9t~ec6{UX351Kk(Z`~@?Tn1ZU;Xsd^o|7y2+su)1B0)#st<_KL?$VH@(-$5d z+Afre(AN_z$wj8^){0m=U)B|`Pn}3d@xyQ!yHpl7#XS^a? z1H{SG)_;Y)#2-T0RW~nwJJYfDLe-Rb=dU;CcMI=%mwEqG4#xk%79z6GDtv8M?W%b^ zY1@K4#7ovwqMd+`ZVXu4KhbvL^Wo0*I`jT!yF!rb{HcLg+rI{_zVwV1E}gpPmZ{Ut zyPR1Em?SnCNYxko2M)Jp+gGKQdN&(tN-C|_q#tbxc0c-xN_(||`L)8xPn|tG&U*$i zFH3Bl`5|*0x^};}u!oy>ytqJ$^XB44+c-{r-Dh|%V3khHk z`;*!%arl#JlUj9%I_yP%MRB;Xy_VkAJ+><06*n9dG|73LnW%Ta5GbF>tAen4sQMu0o)8h0;0U7@qrtaMRRWF$`DPyB+9By2*7Fx!CKAf0hB;VAo_RvpQ zlZ^^Hx#|ZLZ5VX({=~)fJ8;}I_NVr|Vf8<_I4ZwytK6Ouc$%)dpepQ~+Al{*KoZln zK*fMJj_}q;9~bxFbeCbW#q3YjUY2xs&*+-0!`V+H2tO;(J83GJ!{N(ZNpACU=^#dE z4oS^kFArR8{gOK{WsPLH*TKiJlSm`X{W+&4dliZ6E zd#A>XBmofVeh16$mOUSHu7To0=2kx0Y5J6IJ8b;|BmVDhpP#1 zOil~c;z*T@yqjNl-(T~wQp)!C!~K7ajt-1vR&Cc94?MeHm6LaEdLQWQl%atbuBZa4S8 z#5>0!NlxFP0$!~Zw8fb>>off$-#oj+A+AtYJo9pV^0hQZ7|4+Ji~52Ocm$qe0MqJk zerK4WeJ7JP1Fw_=ce;&kfQRyw!j=a4M0ccy4P?f^s&FZi2Fj>gt*)3*s;j4p^#r?b z9paUlSCdi7FqwwbXcJEjI-#$Blvg!2grlN^+K3$@{qU>ozXEmA_|h*yYd)u3teA8=7BS`@45!RJkTzZ9Kxv9GCO2y71mH7OWtSLsKt zsvzq1)1eltZ5T6Ni?@*vryy7A3_=}mB6*lb5u1bntUIYP|L`%tx~^?h!26$eWA5hqC8;h|6#UFz zr{&3qVT-<8d+^Z4b#8pkNeRU-8e&Zuh3S%~H*6#)IXxE5R}?v6wqp~~*yzBa)1%@` z4sNpO@-Ct!qVar=zeUQ0Gq(+mGLCG2lk{-QH2=HPr(CwZR?1m$G&=WW`_9(WL#q_; z*&V-~D=l1+nSSBwlkaMu#BTD>HlMrPTl2lhXxD~IS5*c6LpSagln-#9kd%IKdvq|J zH{keylGS(HTPe4m1C4AP{a4zQ zmZyH&+?!G|+OlQyp*>>Ba|*Mn`Ae}!1O)h9KUjVGd1t`zSX@g^G2#n7)1w?66~M>$ zviAI^(#xl|94k+4tny#I_rAyxj~I7xb8r3sYtGIB5d2&E)Kz7@lBTCAjLrY@D6<1? z@BetR7D4y2KR(V5H2)9J8oBr$puI0&qt* zds#8q+#))5p=e7%=c501iq_qG1s@~#-BObN@Re}P$iB-)We{)%Z5*uH4>^>f^euBv z>@V(UZ9m*&qmoVhf7pBPxG1`Qg^cJHxn zs&E1niB+iWg7;B*c8z3;A73~<q$ksok@i-NVFXn%>^#YD;%ag>qO*)O}Ik~)*w zm@5Uck@fYz_I=g9*mB30>!|*m>SF`s9AcC+Dc8By(d+1tZR_~y9rI8E-*Yk3f4lyi zw|#3COtvQz3pgaBf=+mo)GYj5V=x6B+!_1)g~0vGq@ES}>eD)5H5D~AWc}zLi8?~l zDz(LX2hQ@LuyXtuR;Ua^dQ(s_g_Jh~<-dpoEogA`?Y$8nAD_Oy?zj1{`6#gt|W1E zN3edL4syf;?gfQK4L!~-i7sJvbXf4aZ~tE5^rDhy;n9W7N>AR~FgN7= zJhDgi7sC5pd1&vc_E^pB$q$61MnaJ9?Aw)e=S{8PS*i5ZXIu61IQTPMxz7*YH-nx< zHQCE_-1+cDnw5DSe*ewui0$$|_eivF8>jJq*V(q8ZnFdiC??v5>eiOKrD^KRedI@abxtT0?1E0LVM=I-HJx8RQSPp@AfdoEMA1%|UO;jNEdx)OAWHJS6vuKYl0v1=m8 z&H*on^I|B*&E`5@jq6kg$ML6x;)L4t!$dA%fZ zI7#h)PK`$M+`D~|ucp^MqF#l99CHlIgrNV?I7R*WdmqItgopoOu{FJs5x>o%wi_Nu33K^lJ zv4(HBf-MG=C#+l&c`>E&*&7PpA6<=X)ZcQ}rccqHtg7MRz8rT(ioExDm7U=vjT*FD ze(eW;W?I)B^Lr?--}3oIM-wFmh%C*Pe&ED+%mE$Kg|9U`Fe%tfm24#%;S}J zZT-C=W?|#b8`Xc`C5HU3EvS~DXGUM^l>R#Shl|K%2tIO~qo|KI(Z%&0HQ_;oy_=M9 z#pzq~hU_Xy_mMmD*|N}uwATV+?+o8$$_M`5U_(fyWY~Yi=TR}fhrc~F&Bbz~pp!a$q-0lAM zOU94ph~n`ZB)!4rPXo{`2$$c=#=Vi~l=;y3Qxm!*7BH0o05WNWwflBM=9{xrehI(g zC*vcIiMR4zo3n8cAobPEBOxCIWa7+In!|l?-XKNhSRHyDEX)IBd77H{wn3kC$VMF1 zURJ!m)|K+Q@0%AWT!p)R-z>$fw0q|Enc|EZNNPl6Q7l|#DtIc;$1MH6XMaonAa>4< z#ht7WbS`KSLv= z=;&3bf%`k_OP-)*1D^+vIXl7%Ud&lAn;oryw%XAii+jPl11@JeX9fEFGP);plIaZQ zq15250y>LQm3lLsoC^AqeU~#HPn0qRRQSaIQ-&tm>9b}=O!Q2{`J#G)$~8ItWXt?% zZw~8r&L)@|kSZRpU(>eQdq&}9nk+nTLfq4)bS%5Qd&~EH;r>pT_$&KnCO$C0yL))Z z2%&x-L)KrlT|cUYF#JJ2`gmBP$*e_$GA!8z?eTA$mX8E|OD)PhM`(2@fAn z=b!1wWE3io_Zh$IIg=iGNo~~F_c?qd4La(w-X*rHODP=9c%Lsg51Gk=P85ir!S+tn zLE7GM1znUO<#{0z3SuK*ES?p$nhzeGJ?cSy(IsoIrUb^x$QrM2M(wB1F}>UCk&)la zqLCs>C~cQ`D!a?nHSg> z$WMBmX0p$D`+L6MlpOCIp8SKSXR{|aM__U`h)fQLKw{ef4t5wPE(v|{_=D=Jr$&6FX|W~QCLZ=)Ci ztbW~wzvKk;Iz-f;Z$B3H{+C1ZT^@h(7iX`L^rOw!4s}jADvQPy9(pkAaEiaI;7BN~ z1I~8b+fK0XFZwZ87>37^bN$bcz%^*1C>)Nbtl@15?y^5;J7$)4jj1E; zkNt*NqXwgmuc4RQ6v$a@2K#A$XZ%1Ub1)KplC2U)FxsAj+-wpzvKiejQF~CQV{4cg zVwdj__z}-~zLJGemV)qsSb)OJw=zcqQFS;nzr-^8WCO(*;!Y+}Ywc=L1ikWE9m{=# zdhf?e$tux>MoX8z=a+Jl2dwlxjhJ05#$jl)p>Q^5fymPXO)rpMr3kbyb9I9>!VH5Y z&|y9Lw&S(9N8Gz*8^#xHcinKaWBf(=q4H{8Qp7~QIOA7WoJfi9xQu64fB|1WlT%eY z=9?!2$B>+m_-Bjb^J6EJuy}FPaO42E$+FL%IAGftuxzGmMv$?q#fg@G>VW{7>?S)d)>? z{f(w6Q?`a+7pY~vf6zv>tc(9&=7gBs3sLtQ`@acui5_QQkK55X_Qos$Ed|LJsQt-` zt-da)4-P`-UTu?|H&$0nx9Mb=nCbv+=j-TvY`0-sp2 z6A^q^)cx@fFNLrKACL$Y+&{hf+D*AL2KICPmpipjr`IeXVlKCmG9a^@I}rw}CRSwu z*MktAgmF@2esSZ%T$~Xj-Sb=Vxm_h)6G-<=%9c#bSl|YJ^1!9T+jb>x=~W3|=gXD? z2LxXp*!*I`VHJ^9dB%Qi(4ydRP zZ9i*===%+6;49`30`mF~WyJG4}^UDLA=M6TP;eZL5cvvmmhiVykX`lE{Ejv3c5x zEnn=*!>6L%Z+Jbl6+oB?1RWEZo5myxU0m#5)e@6CeFxPu1YRv@hbQ+h6dkR(Sq>_M zUXgjATHIQYEw?4$&?ry^g7sXLYd4P7%8tu_B1srY^jFzg=!Txc!)upl+5{5E;h1upOOcEw!B} zH+G8q;Gvz5P$OKLTdV{E9jmM8o5nc1_nckX=Er$)J3iTWf6q-Tt0sP1XTRMPoAX8w zaI)>b)OU+tGClOpTc5jbYiEu8F*1sjJIHyFrS0Kge`)B1Bn3~FWq#UC<;qOjNlAB% zd#|IR+gTDRFdd&T$(K%#l}^snlfpa1HOGhFHM9)7^(CC+Z;vG?iST|UoWFj~6c!9B;?U|wF{!TQwr`S?jC zu32F41tjx!eF0L350KT5qOuu^kl3j7D|B1MkqmqT>W&7ro18`|99wFB`IeYf{y-lk zTl*?->C81)>mS4JvHMQY^Vv4dKnVGW^ZXCc@Ovoe9;1XL@$e<5O(Q@0`lzsUlK&EV znxp?=D!qOhBQUMlQ+V;8hWpEYtDT#USr-Mx5iW5#4+P7M=jS+u%J}d4j?ht=l{cif zXyonXzjIjQ*`?s3Kp zHd>O{j%yM(1_&;l7Y;U!e*mEMY76QHWP6Lf;+J>y^;RP7uv zq&Az6Umrr}s>1>1FlJ5?>&7_0s;BgpQH|--7%p+K{L@Bl4_nkevzo1@8b2Y(&s?0e z`)T5#!|pxKU7CWU>{z@anfF4ar+-JNj&p$BttT_}(XXztUl}V&Y6_D=H1MvSNV??r zBvQ9b;L?FWM4j}_f8}GvSKhmm%}uXe7Lf~C3X+kme5I{@IrYgg;-LQI`Ph5*m&9JT z9xWGWDBW%#aZ2pdp10MWns0b58$OAAx_U>~ zX1+8l&d_ z@het*OZcd&#r$bo{(FBjz5KYkEm}TgTkShPY01iJhyVG8{GW2S{{Maw?rv7}ffUfhIp0@>x1TMDW?JGzxUK#uf{Q>J-5xk-FWUVi$+2;2b^pw=3#Z7n5 zfJ4)0UALOrsq@aqd-3xv%AUjBckSk)LeJcFisN&$ls)1f$n(~$0lUU|)b2F%J5kAg z(Y@|BG=i9?I58|Y;&Z7X_0IW^kU{(2Iy^b;sKT*#xYzt`!aKW+ma>Nq`|uyFGmbtv zz);bQFFAMnGb5s}cl}{IPwxADQSg=T2I2Tlpu>^_%+m397)MH-mV}NB z4lxZy=j+AIFYTYh%|f$KYlVVmj-g7w@N@7cA0RZ6)6(Cx{}sRg3PTy2o3LJPD-rjZ zH>===M|=BoYxeG&LmEr&a)doHdKc~ZrwQWP*6&_)59SLwIV=@2`cCe~pIm*$BU32d zw1+QcJfH!e#krQUK79L)LX2ZaS3rZ^Lf?L$`y^vZhenrotuMTH0hj-hF`>|+B>xeX zq@n3Vm$F;EN=~A!F$U)L^-uC9e;?`NJfyph#almY)Jyc#SwN?(FHId7B6}FnP!2SL z)d8>jk?fAY_S@ocZkJOT*n9@o1|G(qCX=xaf;srshg2MOc(er_R33DM{gChK0o#yp zgKO)ONc_@sV#Jr3&0%||Y~Jy|055+J4k)WvQ*fAO?4w8l1Mm4#g2urFGO(S9IJz1m zHt`R*^H9!$zv5MlaR4c9CXW2k>4k&)r=th85q0#&k0lR1&KySj%BtE~(Iy>2!sJ`pia=mJljzC8t+=6NmTwAA~T zRTrsgbnkxfst>K3SXk~i^waH{r$7<{c0S)zJop(#v~4rz3HZew*^Te{F37{L3S3K0 zMb9Lfrn<=pJ$f_6H8g94Q#ePBf&C@s_rF^BYI@1V<@NO_vtFU6bL~MtU~4D`f2L)5 z*EQb|DypvJ%ZpHbx57sxd(Cl(IePprx47#2hS0HeZ0|$Ti@SUFC5;a3=t|*?092YM@8OME8cv~gcwqgg*uP=QhjLOZoEDYe({S@OazSf5 zb9YWtD7Tzt^SP!nOOTi!npdnQ)4(JA?m~Y+eweEE%sHVx-o*if8*h+znp`QjPg+P!!x7@&g=Dxlu(ycwTxe~RPX*j=k^ibn*< z*n!Q~ZBTn<<$0jA7TvBn2MAS_4*eRCa6|t+&rX|!-H~Fj0fMVinA)_LM#lFyy31~K zScND%(xChHJH~enjU8b>@)>mV71UyKgX3yZyz9n#Qi4->pEie_e3fKth=ns1)B_XI zF;!h6Xl7u$(0TCp03Jf)o%^F%2BR0x!p6)&&?9p5L-O#@efR@elNdaP6mOQg4o``Y6a zLbJ^))uPd!j5K(45xR@`DD*B>AApvptwyvc+;US@StEMhrAqEM|DHXI2U*-HM%@}e zvg~W19Hhk4TV6(J8(_x{z>?h#!#@UHbdr5riG&oJtH(NfRKd&Gqb7=vcP8L_Me%Ai5EZ*IUx2oZ2KFI4s({|+pH!P$S2={@8 zu6s%Y5yw=E_1alG;JQKBQLExAZP)h4AJNp$eUOc4D`DFNWe>`U)cxTEN<{r9HO+4Z zvz|iYO~?s7uUH!5j}tg_RRt z{8azoDN(lk%;jW?lZEvQ=39*nF4arx9A$Rwj@1I(te2o4_5ugqtQ`a&IM=G8^-cMo zvwqxcukqJk7G3-rQt^`ITlw0=G}YVst-*ovweRN~QCu_YdYPK=?Opxr{*@&<161 z=|%1Rb&DUG0P=9Yf2Bdy=2I!Mw}b~Z+Q__@Q#~md3MK-bp81QMhLpry`bFj7x2!>% z&m&j&*_kE8du!t&KP0LK-(_L2Djt6EM+BtmN*bvz%`FHmfUcsplp!9|djrbH_d%Bl!_={D4y|*}*;zc( zA8soovviU($!x5F=nC2hd1>Wd#7JhE+wRIz_F8BK+~*mputgffa+-(a}T{%IT2q>0B(ZhDJkE%Hj8L3Q;jxEEI8s+g&WcUg$2JBgLXipZ@6a zOc~TlP9aL_l=T$TaddnwIszKqD+k-t>ncmQUYJ7YpJXnG?~K57_KsBTKb}Ah{)_w- zw~tFULEbjX_Tw&NSCfO|KHd)UpZaN_P&`ZN5q=uOov0Kf8JC?c95)c*G4XDMV%&1E zKY<2su3|GDzvHPhe)*P3Pi?Yy%gnPzOy!53_q0|J`x9WFL`41CKP}_ne z9HY(e(1VZd1s$;q3PhB`;8{Ms0)bDyq6o5&x*l^HKuHBNE{OZWxm zeHLlw5ZkZM*7962D9*h?4h|{t*y1n7_mXYV9$%1oOYhWG+}1IH!EEAS_omWV6Tyf* zXYe`wVk>Sh28pDv6Yftr$;ZMo?TI4yU)7ritw~2i_DI!x&i_N~A@?*e(2pUdY;4~+ zNW;Z|mkhl|*jT)u>=+ShU@i}f!y!MyNBOTQhJi83)mQBgMFo+_c%>0gI;!~%S8)OG z6spRk8*{S7c>q+o^!SghqDi1?2E^QcHSaUk2XSlEm-LoVGVXK+)PO)0 z>8?I~t7lyx4^~XsK(9c|5$o^+IMCaX=T?i@QWXi^-{K!G`JX~S1ZxpD%i;Z#UdS`^ z(3>dHUPn$A^eg%1ln6DfWJlaC&lUo*o)O>9Zs=Aay? zZhF=8pT7McEhp(5^SlvgkdHK zNtA!^r6ShDtHI3{_w0M`!N5tCYceuN#lGpwd< z)^$*bN)`vcv9O|Udbx+nqccKbjH(0+kYtDeVf-Xo^3}^SVpJC9*O@JnYTI~}BS0M* z{%{pZf6^UU)NV(UV}(c>S5EGcO(dpNv+LJB>B3lKzJ=`JPl$yw$GB=x?!F+As7Jt$ zp=!{f&|YvHzDoZ>z>GbH~0=yYn77A@KroE-0dKBPUc*TG$*Jl2sA zFtuplq5S5GGXHK@y~dDbiAl+uS4~w7U%=+{%LCcH$$B?}yc{A1H=?~??KUs1I`t@0 z(4CU@I^M^wyGQIO#{6SynXV(oi5K#K`-^L0O2*uL5o}f z3BoRh>T4Bs5cY##Gb9fdd>_~1Q^O(evTFofE&iKdI%W7w1YqL!yL3{8IWcnx-=pDF zW;wQm;j)KQe?L@+C-}u7JVZy~o=$J|>3RKk;~cc##IZ^Vtv4yn`mr{+{G+TzHVb*D z%KS&}HeLyceENMfGfS@gVOfq#+``k%5~}P?II%phogF{eW}aj3Wwi!ItVjf(7s^mL zFcaH|FU^a%?Q!a-t1^K;yX3TETjJ~&{EWq|^~`n8su)HZ(5nQN1lhNH;zS5JuWF$h zbYVEt-RQE^+Fo$S@0mF5N9?)iM-T+@I5pA6-Yc(TUunvU9S(_0}b zN1}Xjb{3wCL#Iw3UdV-eT7N!7e>UOFYTsF*rG7{tv%%3yP4Dih(}CCs^29QWcC_8) z-N#uuGJ77jc4v&-k_er_{3Oh1o`Rep1z{5AWbr6B+C!bR@$Dxwcl?hqFM_lgan{(` zX`?>)Pm|(yGoP4ZOL}1rmoztsAFZlnuR}1<3NTm!v33-;W_x%-)Yr_%%~@dDr3XyO z00V%22csZ0HWWBzmkS@HsR+_EV+CUv$7n9Q<}f+v-r)`cPV*LIgzRbnsyIX<%N{bp z>T&oQy?$ax_{ikJks}W)Z|aOQa%swCP((p~a)dUFfgxoW#gU^NnBZ@w|2HgjoWEi~ z9b?WT*p}PWOzg?f^-f+KD6>17aq@Yb*a)ev2G?_8$FSw7`0j%Jmi2Sujhtu7e`Rc9 zust3X-xtMa?Z`4j%9osbwdJ|u6LxGSy>p_k<1y!2!KiBx3Fk{=riK7X4Z*8gwDZ|2 zv5eiG7LHxymILRB*j^Top8az@lVI8M&=|V zv8G86#W|1zwZEi7;rk9q2nPauHKrvyTMXuZwkQ?@YpXnAeBf!h{;SJ#c4tTQ_#fg9iQ(S+KcUeEn^qvA#v z^i7}n{Pa*%h8^R>4#}2mTE6Jc_q`WBS#-$U2K$-Li+Io3mS&NEfFPVFFs7w3QsiKY zeN{Pov#vnx)9k)F`x1LP*5U#Y+h55*7{0Pvn^F)~nRGE{o={}6WCEm&18D({;H6kv ziS|#oXr;g*@(RSY2I=q4P)>=k9+&{@GN2CA@}2H$50TDMxeQ)1o;D&Pl~$(QI;WLV zC4KB?)3oy7k7O3714im~BrOEbW7ad_rLu}g!evm_kcH;AG5j;Hy&%bMr$jRzIovh6 z2uS|n#2}{DGFLk99kD{oc9Y&Rq@2_ycSO~?;Q(0 zwUs>M?PjVvBs!)=UXmI(A8{SRt$yd+A*JFtr2B!Z;h|IYkKx7Vd60*YJw+*-H!MF) z)=}vl(g=LN+++b|{u$2TDrv5PnRtl=DSfvOhm@QS5CC6oF5;7(`RoN1)aRYl;Kv!s$zXqSY#bE3Gz<>ztRrK+s z?(I@F%%=?s!nTr!i`Wc8$58W;l&^U2bQGzop%v9t=S zN`5|97RI2;hTrDBs;#$CDhAn`ZbSZR3Q?BzdwDSZ##3`oe}tm@jC&h#ee%*RY_c3* zkJ_HDq78%zj$`xa`A&PQ@=YWb)bYQQG)NJetLO@`0m&?$wz)(o2O#sMpIrP3IM>2t zO>#gx88aY|mqebrK*aS&)j(mZuq5BBgxjX!COk9G6fNzTKgR)fd$yXn56MiZ`#ItW zKfvG*&};+yUL+2G@~5+Ds+sj^nH9{tsv&YFnr-+=$P^F*w-{KE&=eG9xIPndpo`_2 zrbBNJGs8vING1_O#7<(~LT``6l4(d(35CpAe8T~~tfEn}%*+45(@okjf8@2yLbL|U zKv+V)rGY+PftWLJ#ntiJ*waM8?)Z{|z@dZJ0#;O?U2w~gUKZ_r=dj6rYbg(rjm%x$ zxUc2$=plSq;6&J^1k2syxgweB^%yVJ3C!45pR}$@J<|v$3->RO{Z%%1N2n9u{jd+i zK=oT70Nj&q*6S6tZZ?)@>2Ns$h$u@ZlG)ZrCPxddp8cV`$r?b#<@1EYg&$6Ip;ZFO zlAT|wTe4yZ3xG@_(u6((2e_S5KV*AAyFb>i9Y&Q`MA)~j;y+uarg(3vL1SA$O{}|< zyPF@qF8_&rCi(~L!#PgYL{JIV|bL@kM_M6;nv4MVbhtNCg@~DbFnO z>v>}w`R^|G-4P8U^OBSTTkT`t-+FU=kA(Tkp`Vvj1B!)iEXf~~JZMm74$rQ%&0%BK z-Lj2VKmShk6n$}SfB89U5D=P1ntJLKeXdLnK639W-MycT)cYwMr|7?5)qjM@xJgJ{ zrB{Ff=D)tvz#iKeN~hqcU~~hjFe*uQ(e z$8u5w$Fb*G%{6`WT>`LvRP$vYw(fXe&r|BybdsVthqng8ByHCwR{DL!YkG=q9L1tEP} z<25Wbz&Z;qOMi2q$1q$90I8;rfX@{{pZqwu_wm_xQh{W>1$;4MY7f)jNgo@j6imU@ z)gzg%%2y(2Q|~)VFH^$&v}IWCg6rb-%A_NogD7zNB=|t$N=M9AM_&o=LaJ1K72!!e zfrv^9GU&s8Lr6nI2_Xh_lT(nsrJd{2FoBS+RUQaq00~pV4eoK-c+s8ko7_Y8gA=Jn!q;7&okKJOHYch$g>j!oZhVC~kEg6Ca?=OlxzA$N1|0_LhiZrWra{1r}tJ&zM(kbh90q{-cKaJI@Xr zl;h6qquFI^1Ug*gnr&W+(!*(=T9u&S>7h@pbb+Sz<2)wl(qjKweC+Gmj3Sf_mu+|(TjT-rC zF&_BW#L-tXi%98+4b%$$nOxl*k_%`J4R=__V;IPQ^2PT77%0xmrB4v`vjz&7(849c}@1y$wX=Z2dyc z-oA-9l76Ecg+tYP@s3}XnDpUHH%ZXj^XiYx-D@lV0f|zI&&$^;ABWddq)?OA+5rhQ zH~TeOc+pX!m*3wXDRspbK(erxz5qJIK_(#9T9DKgq6G~~Saqbr+MAw(4W0pi) z&2I8GozdZsZRI{D5W6)Yytg=D5<_(CA&SyNpbV`m)1XgYqg@5j`bTqGAN3sT#_Wzi{j>oR-y~<>#32hZx}-)V~Gt!lq?PN zM4>^V#k@~UfT`3|q6bmi2buKXi%c<@lGWAKMW)2wMw4ty$1uydBv_FwVe$rh^l`x> zTt56QP<@Qwr40`JGKVfS`jqz@7euZaWU|S6l1(-VfT$Lx4%s4Q3g^i;_~%=q zvPLQ7iA)GE3#YiwR&pY*TOZrY+G_Td>`m4ck-Vgch4MoOC9l;*v(qootrEOt&%aCG zLpQm+(iD|iU-z=xWIVT&QFC0zZFh;cH@8~CO1DSbiP@Tn+emq9-u34~CN+&=0~of- z6#M~R={6yRLaf}JMlMlR$sO&v8<^cQyJatn2Rc+sZ2}~+^+G1BEnRcpo`or6!wyWJ z(X+i|i)jx5)*uI@ZUFems4NBASYN))54d?pl=sp+Rq}@)bE&ne*ByY~$YAd>2+#Xa z>z^rFWD#cJhmNYXU)^DobYqpP87~Jq=w@?VrqG)PnpVwluq^U_%~i=}v^;o%@`_zu zGAMoQOZmi`nVDg63%m4fn3W31STM~b@TOpCD~RbACt@%e=vN4bI>OVM>x-~L6Ye{j zfG!t?5z-t{Bk6%Bnc+Lj$YWt7zQZl*w689@TGZfx>ELgf^oGp)T@o#HM6}6lgQ?sk zlpu7gCkt31dT`}Q38hSpxLJ4x2iLzW*7aN*AR_7zOs~mQsaxuiNJ&ZAht9r08(Lxv zEpobevE=gn`9AkNX65$cl4Kp%q&l_zIFfPvJLcqp?~1KfvL!XXS9&k5alJ<7OplcQ z%C>3R)^MyOR^~trxm(nmf2J}(YWTIC@ry|v}^+(g}l8U$` zca6_=;N6SwL+M^YvMMZbnan^ds1r=z^|G%?&5eFy;^5%>8(7dar!9*kXK^QOUT@Nq zMyj~TBH392!W6m_Zit?Qwr|KGQsw|V5-5YM1y(F-^Q(@Ocjr%q*Oz58t0{)`z$AXg z?Xz<(%%cAlWNs*VBow)EM)Xv&K-h@~C+)sE>|Nz@_W{X>usXgLNt(X?7-2R!;QGkH zWv8|B1BHcl3;Y~Lz#)ZwMJY-M6gVY5ro22=N-oG64RrUcBUn3%^Xwmv445O@%v z%%;!)A>`jq8*I=rTfkYh6&j*)8nsBug#3efX3%R%Ton7Y7PSrY4a7|l9NKY0v zWTc?sn|*as(^V}uFc)yqVCv#$;?i>}5P^Ln<(u2o;g_J3Y*3j!mMI5+8&2q<_8+34 zSpDi$fl2|%I3KJL^e)^8|F##p#?ukbHu0b$21s-KqQ_N5jiJ)fZ#a*`hI9u)&=@2j z>NN1=gr9U8PUKsaY7T=f6iPvXguWR~7M86*AST|C*1c76sF<|(J$LuIBwLN!K75*=tkmU0=*bVE8dmz zi-6qvVT5#_S{q>Zs^5iP>q2%Z@mxv(&Kl;3P1Q(?vwr6DHnj%RCrW z00&~uMJpJn<%3zd;2U1$$42IqpL#u+$aI~JXZWGB6~!zhNQKAZ9w3#byAa09U2|IK zAr(&vXs_>JAiW%Tm$Ow~>*kb$I!GNFCp3mv;w+j=FiW_i49A&*jrM$LFEJQfWCUlL zWlH$Lg{o$6Ei1<4K|6h8c@mH^r(SWX?S)RjU39BH<}2o>6lvM3f6Ek-dL8Tb86ag+ z3ga;y=dJ4LvF5jV0;$c6BcR!y-c8OVLf>eTNV#DISv=dPfo-1Y`KVs1fXo+7yf*%Z zNWo$}eq~a>WX=YRumvP~?-c0I{w~C;*t)dRq@}(RwTQ^%WKFFGDV8Rc_-2xMe#;(y<3U3_?CRnN6yvj~+YZKR3wlYk1DY@n z_=NkYclyj9mG(e}eTC@O$McF`xpo~Des@mT?L0dZZu=HU4;2*l8)p;@w1vH56FhKw z{ij(2daxkHDdozbo{QhG*WxD4^3GjwLh{lv$IByj&nIH>wBxmYtl;AIl7C?rS{6JmQ}e1&Gdn3+F^6L z-(>qWa2Qv;Q-~Afh0nkcKa5%&a_Tb|lGxPbHbULsqmfC$Ddy1ugMk;=S*Lwq_hgXA zLOaNm;#H)r^=z|2kFCgq^DI^}*80>KMk@FOZ(0h@uncGye42LbVwX)G{Dowfj_*FW zIeSYj_m*^Y5&knVybF~F-{x@+KV%AR7rMjvuJfIdJm%7jZWWaS=>!qR$2y)+ygX3K zpzuzHGv6#kNyKaec{!T92KyY^krzu9+dl4AhA7X?mLnRyx!%)Dh+;?yo*agE<^O$0 znIe`RC|Xb5+fqf5@(Hu@Prit@$?R7|X_6Nr@|JX$PRchQQ91;e2<4le-(iJeyGhv= z)%LQvn@h9h^hUhu%cp-f=c!tAT5wu>eWDCMe?X91nU;*xc(rdfPgkzEwVk+MZ2qn}2X=HZi`Hi}C!})m zpKjA{y1sxT86tfuqh0n~IpDx}B$5F1)!LE2z*~KkverWtcJcR{Aut@h0Z2X*tT}n@ z51Eg=G2Lo#^JS$rk{)5$nSkCk7dy}DGyNM+V2JxLzZlhe^m9Bebf$3R22%u7m%vKBnebg~ zU8z~P+ta_>^MRf^J7(fz!aibe9C)kxp}R}1j|7wMWmjS z|JLkRAuLzH%fhANfcw#@Bi+l@fTRGp#&EUyk*DV-ddG(A*u*nr^MKq*jo zj;p2DTrfKfBl67hWc%3&bRDy!LKL_kXXaX~W=Qj06f!~({wO`z#d+y>U70z7ncc;l zwi{Nj#b0ts)T*N_ATrU;`Jp^9<&1uO87;_#%=-K<&>gJ4mb5s#!z}b0vZ^C+c>N7i zzaxP+fswF8Nmz8iuR8=%f6Fus+M#JT>JW5}&r6U4i3m_bf(7G^B;|$V%rX}ej!WAZ z2u@3IN!H>Qm@YnqvcLJa*l*0@E$jXBjbwoAf`XTh8|5565Y|--EO)dn6xtiR{hBad zbXmtzeKSGC5$^<7uWsr@t4mZyzjUeO=#y8#Bpxh@#ivAm^&2+7Ew5yz+TCq^frMRu zywH@(Fof1H`S^JZ10QLvH4nOD#8HTnl&iZlKX6E^?Cjqstv%uv0|aP*8T6|k*df(+ z$@c!O1oZVQ3utHHke5G`ymaa=u*wJI1GNgRzL-U`j*@)jh{JNO+lfm){xipl&HFHq zUn2JIL^A%E$9v_H$UJrlMOSoe82g&j$TX?iVPymLF%p-rSkeY+@&qAXha6fV`$^eQ zs{_fAcO8OLI)BbEJ|K-QfLYsG!MFPZuh23XW;cht;)}x3?ho2!8)ZwRh{-rzqdKwq zCEsBhy{>e@$z`sb5{LI*tAhUp!PgY=l;*+0fVo2D$mRuR>f;jVc~atcRVJn$%w+UsQZ8*EPYl?19AX-Ac8n^oW~=*y~ws%0$u3tCMFymT3gjj0KegPP zOP0uyOPgl98A$uYCj16d3Rkmd@pn4?RMIc0DrCK=!2jZi&fn5p;kT@QSMNQK(_>}L z>px2LgFZ3S+?v{@%IcvF2fEOSuLnkh$wBN=gf|9eqv~9UGu|(f7!Zi%};NTN%DxJiEV1v$lCyDRcG^57W`i{Q}bIp^@@KoPl#W`el!YR6% zTw>DW6%=SjfcU!hfsv|)xLT-311oLmUGVNcT@*+HvcyIBif7+^3Cl9))Re9Yw<`i^&!K z-VWVA`ozb4c;H4JhC z2mKKpq&Y;a8m^oOAO}N5zA$A9())zccJq4D}PH&+CP%LMt?W1T~|tc&mpD)(i22isLVj9si@RD+|rJ)+p%D zr*K6=Aj+rDNlJAXgW&zaXM9fkYIqHFj>m9aqO*%}%c`xci1>d#Z$+a9mBV`>JIMPf)jIf=Y#$k$Y+_pW%W}Kj&KNOJ-dzB(CGGfZweH z_Vkjxh?WEC#q3v@u>0m1{xxLM(~GHBmGyme{)#M;0mT5^3!p`h9BSb3-`M8cy=kns z5`KHm-5x2DLP`uAMA`~*I!nxP<>0Hb(M1>1q1Zi+U-f~kc9zYr)J&)W`~W&?@SqJW z4n&cWiG(b)5qBOk7l0Hjb=|<@F~Fz;nWxp%!a3KP`<66yEMC&5)HhBKZ+~)S9;xe} zYi6(@y!0EHfSUP}M!_NVqo46AKl>-%yiGl%^c0rGQFJ^v7Hz68t725?t*T@0*#_x=6ui|+ru8g{kLH8 zh0=e7QTUUkoCD=y%|Q!b7(9)jnksN*CM5>UvP?HB9gJmX*An{E%xGU%cn5$oQ8FS> zT^7~)HOjg!dw*hij^vMpV`2E)Zk-|Qa4bcdn|Pb3yo5A{rrYvp;{02ohwFuVh}COb zDJ7~;3qIYXUt@fFpJr^A7h&?*y@ z!rpddyH?+)YDf*v7lY6AV)SYr;nL1OU8u$x=$Un5Usp)q! z^taeleTKxO$3}>0x~JX*YPNv_CsD)CPc}5m&HzAy1VvlH`U{^tW;*Pj@L0$SYxgMS zq12o54%|SmgsZKr)@-iF9yxI*OO0%jdHn^Yo7_}2I^S;k;}SU^P^;?eD!kGaU-}-o zxC;F#nR1m%1(8P}6m}=?`JDye+97wPst1q6xDkCn#ZtRH)0_mA^x%9SY*ru>ZJpJ{ z4LGAlWW`lzD_YGGSbE`SU_00V`=b@=$Ch_QEY`It(7(8ST~c=?7kR`r~hZ zS2UbPQ511+6bXNP`kAr4%A*Tz?MAOzg;@&APMe+L(D$Hs&P)AF|H#bXs_Gc30h}*q74`BbJ^RA@%mgKjE zTo=s|x0TI~C(f5+e~SW0ThUltyNh5v;AbX)`SP0AMX26DGg_1_hbq0Ix~{Rs+qtAN zq%c`Oi*}MDs=GqIp5B{D&l63t70Y;vtH^P}T!tQ=*jQ`5E$}3{kpg$^yTIe$UeiYsZsasW z^o?dh0^c{Sm|>szk?om$M8#(h9elapj_~2ejvom+PPVKm z`Fi%A;qOSoG`g3frpk+U8|DOCcKmVjY%(3`AI_cbvGbXG=359H05P?E0Ij?{F(AUf zag`wj%7qZx1i-PFYIb4{J2+_r3|vn;w1XrCL3nDwoQ*lR7DPVaNHkf3w!GmdjUQt5 zprIlz)L z=L6@&PqQ!efd!}MN=JvtJGqB@#%wUIxlygYy)+_YM*1+p}Nfnm+$;!m9dw))1L(u6+T2pXMng~(dmUS8WRWQt@_*OBs>KwW0 z3Xr@475xZr5*U*1II{IdKo*1&psWxF84%64Vnjxa;Ak2m*{nEFc>~yUpkhSY4H8%b z8EW+;;wM(5UhFVNp~8{JnxUfXPlp{r@wNSEI8s&kBl$@9X*j!AOPu0H_Oz=9jU_Xh z2pYnX1Ed609~nZFacf4=3WIXZ9F(w9m|EknN@0r}G9ek7g+i&$F!oJL<_9YWy(cI4 zTi1O{jf2`ZRX-lT`$~f|VpBIYCS;?a(3w%*qMLX}x}>?>ajO{~cv`}0Jzoz~c+WfC z*|C@HDu-8c7ocfn8)y;Qf^~LF&{DewqK2^@_8V;=lIm8jSJAj_7(O`u*`lnJKaB-S zeL4<_3pLoO=G@NPKxiqhOjICuriqtVfIcj$Bsy;rf9F)Wv2e{pB?h8TjK=I`;n5YjUA@_qi|M9`e$SrqI*2a}2)L zI=o_ltJ>4_tLpZfY8qdkY zP|E#KF%B`ml{gK_ltEN8Hm<(h%Z3uVlb(j~5OSCShi3b`7?>!H5x#eRAL+nh<=AX) z4D{l-aO6ZK)#UdZgYY64(}iJ&48V;-)Hcx+lQNJ}24=wtSt+o@Y-_PZL*)ddNNx=1 z5oBlfAXpkKfBN-5y-`v$)U%&Qo9<|#TV7R72k*kK)X0MAlM9Ee_`tH{E3Q40FAkGA z^`uZytlnH+)aMDlrGJxH)R7)JiDhP@?VaEf0?JEZ;l1(5Y^=-xbn$8MrYEcnu!o$W zaZD>{3)M=Vp4$td*=Cwbi13JlD8su`B`2A=PeO@N+ow{96C>LBs)R~u^pWk}D5#=; zBFc_pqi_*53}*L%;2`(=S9`bVqh#Zt(M2c=&cqS}^V>q$_x5yfa4t$O%a>8@B^_hn zUC8Zo;B1pIrqCzk?J;=3K~{7iCBfT-ltw&nCn_5W$;a;-n!)iIQg)=|gv17smIc5f z!AWwu*9vP?${&9Jm|r1Jl6>?)6<@_UruGF^`@Hr6=khVzuTm>!Mua~x78!c7ht?L= z2VZ)$FCIL55XCV@8}KZeUi52&su$y@jM#UAF@E1?qE(nba~2$z?%Na=c1cgX6(OGd zC3Hf*5a*MmL^kgHLrsq4g|fl5r>Faj_M==o)F zG108!ibLjvP_#XC9@@Ym;IvmD8IuApn|blDQ*dW4G5Q=x3(WV5=cBYXiKVkZk$cT) z2iVh&tlfaVZyT`Arzb24{WdW_L*qQ4@bc6hySk%J&i2vNy6`ysK;w?BNsw^akZ&B7 zP)k&G?uHJ{R{El{RMz>5;y1kI@yQ}#jjC~*8|7zX0_F6>6`mySS(7WZ!WgI1M*Fw% zr5ibrRVz)1ZiDaQ+Wpt=ze-$D8U&S-tnpo6;x`%sxXPm1f7nL?G#L(I3WdI`TTTUG zko&+s#J3M=Z3!cXM+wmM7@W2MZ^$d#VIm1N6Nqj&0Hy=`5-Q6EUZQc0919bXX{L4z zJ&?cv$_5C*!1)dzwMZ_Zjx(I5NvpUTc(&NpH)lRyo0#B8)LMdlf(gYP)2y8++S_3M z-gB02g5eevQVD)Pe6yC&6ESFLDDA2D&l)>w$;k*iyaob+p%h&uGQ4Cv)B_B zME4Eeo1aS=9QmTZ@4OJSn~XDV#~kf0JcQrVxt`RS2JTH4GaA6RrP z@UFv5q0pdNWpj_z=`Tf~hbzzzj1%FH1~#Q<53S`O-7LxZxRD*`hmMs(Q;kYZKxjl3 zoa6%@>jlT=?L^?o2DZ}7e2;LuSh}?Ob=2Wk&`Wu%d%h=dg9N>RjK=zpA2{Zl5vhie8`%d~7IIrK_5(fH*N$YwG;0zTMuG;!>F5#UW-| zF+0I0%HL1Cow-jdWjNWz^C9u8JK1E+tk~mHqLG_&RU7-Yec>Sr@4l2IjoBMebtP&M zxds+u4e>gTgst8uehjZ(OGQ#ymq+({_U<7*MNT6sgYnG(Xqom>2jX~QqCWX*4HX@4$PnGbZ zCIww~Ch@MDp4oO!pJB8E@#@Cm5s~-4PnV)$MK;OdIpGsRCBoDF$PXtEPlKbqWI7O)|5eCIKW=Qh2)E~lHq{Xp)AVz14NdD zSwL5*kj{dnj6DxhBhofd?zCAanvp~1BEh?`dr$&glLfz0cyEjS#edyX?v3Oucr}I_fT;R(? zH|R@~r~Fn`j%~uuml3J(DPw^I&lK|?6Jt~o>b}KN6ReF7kS!hFLk>e_%TUh+`B4g7 zGqb=j>`N40r5VvBc%<)jt$dzFHG4q`)ap8-f~xPs?lmP9iNmU8Qf#YffAFZsX%D}M z;7<4N(4FtltQaJhv9|_Cs{_;C2(F|Hns`>dfrZc<3+ALy%$`C3UlA?^9(&fl529df zfKmPcQj3mc0n2qb__?P>l8JQEX%dJ(@_z~fS>|@;rrAL{6&B=U5@q}fv zZkvN>nd#!R{?9?Q0!|8eP=sDsAEf(D^ zL?<8tDZ2VsEunZlt!Bccy6p|QOn-BhE3i07);Cwi+n8@FEb>3#VZoqPgjFvk*g>3tm{+F^A{LDY1dYXF`P$N#+L}`-)^8Do{<`DD_DmbE zYfTwQ*IrxaEV*)mGeVx5u;*2ub&xwMB7I6kMtXX45YE#d%!419u0pWd$gkSL4xT5Q zm}8$FgHuzJex{}lE(qt{?36M+z5aE9#=b{y5!wW{fu)FYS}J=D|C@=_hi*v5?CD_F z*bstwplgc)KBb3n*!qA_hr4%(FzlLKD{6r>@D5Z&SNFQ)PF!FM!sF^Iph507;r0C9 zQk02nWI8D^Oz!;#{Hbs3x}@+Z(_1$+Fv83Nay*NI3M=LlRbH-%cKF_{%6uAr2fjrp zWCC2G8clR&t7T?T6&$W~E_16(|K^oT?1%8zFqT+|Dk&o66(D2sX7F=qxzvz_hF9W@ z_}rs??NP)19%MeZvl8~f9%iE6w(rYWg^lZQ^&G9OH(xpMP`Mm6FhNJV{ieuMgcGCv zJ(=U>!lV5!k$>==EUW8dZ|`|p8Et@l)^V@iw=kMXDK~W|6MHk>^P^uzNr+7r`QJK{ zFIL+MxAERjnnfH(2yOM*Be$A>m}Q&mA9hId_0ga zVr?|CfsJWnk9~P8aczfA`P_e+`d?Xfh0Y}v;iz)(H~k8kV`~2&N-KWmU6+W?ekm!+ z{^&qm|Ho%9xkP-UVRK%O97i!u?3EU3b;xH)I@U>qsqLHEB&`O-e-xNnXgm+tvNpR3 zGR~F02PBS-*u8;Yd1Z1Z0Cq4T(Z%aWFnG~OptHpu;c7&??cQkp2O{$RB0L3gfy{^P zR1@31aK|xB%c$YK6|4}RmL@g&9n|#|N)v_yyHxlbbr7{pjyt5V9W?;i3c2qiUv>G< zLj1A;?1SsdvlXI7GN&+pEo$jf3=>+Pr}RZ)Da2E3l>OgdYrTF{<4uKAR7X34ev zRPM+^rR=Mo_iM-DKPm3)8qye@y$(Y_b|f|XbyVyyKp*rSu(CdUy765l;CuXu|4G)A z8DIuj@oloXaeq&gzd8lFHJsbei=AxHCa+tQY?Eamfr7p*3!7S2WD4Gprf)qsj97-T zU&!)k%c6ifv)whQ2gT=9ih0j+k2`5J^bEcx3NpDhgkG*tZo1H2W2V;TazDE73O7Rr zG&+yEmbG073PbkCTI}boQOfF`7qr_ClKd>qsHAV9(>iOc>&*SO1{vLYuRuFWHO`l3 zU^gD=u-3Ld(Ly3KzH+U9s236$?m%$A&h1ByzLf=El}h4nM50C%x{h)E9z}!Kl3)MG z(!6nw~QG~M!)pVu_TS<%@6TM^^+J1knfmYkkAfxA>-V4Qv?c0x4&d~MP zoJDFKY3Se@-|~*Uq%;>f6t@1XeHRXvy20X}^=k=T-VAxZN#@zJ$7;D7lm=BqYJ$ezs)>#N{0@e5&;?kps zLBte~4clBM%L)FER_IwG zq7-t(#q;X<#2Te~s4idDg+@&vWrizI*0{|b%lNP}@c7TRPCyztZRE(!d&v!WJkN|C zg8!TV(G-RyP$IjU zy5>QcGc>_QD3t1s9*d#;%jZMk9hqhg*3X^1HsSfKmrJ#EOJa}wCqjXXlvmFx&*C8x zr}z5Z4krCPx9G&~y7pcDHRl=2Fb1EHL9TPaO`GR8_I+F-)rrQSZDFF$7(}C0ceNdi z{sInGYz!ZBXN$BScorz?tLbPgPwxb!--Z;$6I9tMMMvBh|6~DR6MHIvWQsA^(cYYa zK~)R{#w`OC*tK|(7%Zx)YF=A=#b!+c?WGH)=n*f}irgTE(0!`k<=78hLG5cCiB2QL zP_VlbuY(HYJ*XD*PSi=j^-W)7$WDGB4hHa2`_jg4BL6&CldbpAs*)zJ7vWRR=l(`n z11sIdT6L&je-^o=f{ql;Jh~ftWW@(kG#{eSoY7H*Mifw=>QsJ@43d_x^_N{z5?oU! zHm~0kywG`yTc49(+m-(fs{@q|jThD$5{uO&)OT zV)5e=I10uP3EjXNUR^&%4`^{}zNRqumUs@wEgfa@uztH>Ur%~2*Q{Q7rxrq7VpB1$%<_#fA(EI;7PWgZAPX9AE`ri)>{Xf@}e+}rZm!diIbbM}xw|njYMSzd(Puy%2 zKEwM?Cm#n1a|`~Y&3XyU6uP7jy>K}pTbM0gfzQC1C*HF?pwdWAa}2QIUd?v>8C}qouQa*)Y16`0`cJ+=sy{5jAX*l>$agtXICcdt2Qo z<18P0^LDdTh^2p5-Q}};IKPybgo+EOKF_fxWg-hR(bBL z!hcs6Zkafjkh9$w$fgR7-eRhRdAmP5f^*Orese1>;cTFuIA7~gQ;Al?GR~c^KkCR6 z`n9c>aTioptO-#lbt~(JeIve43UI5>=Vo(@x;9M-YMdIUi1kQ*lXx;ev<<#6ofxeG z{b0(sUKO9+9=Nvrj*Mh1v>pK7QzEQJUbw!--yd5kH@V&P-a*C5NKR$O{#IGIsuTGG z^41iOAAOaqd{a^!v@Kp@!{K@+*Z1$n0kyO|*a3$lLGu@w)jrgcOh;h;flAhEU*tQF zTzcCtr$?%-2YLMk32|)Tf{lw}@x0#xw{!E?cD6zlQiCRH#f22kFkHD6)FdxR$Vd*q zahcfFmjO>226sbmFh(scyjIuvLTmr@2UhqRB<`nG4#7UBRqBSnPLKsz>bD(I4969^ za+x^V&T3Z?D{aCex5AcIN1j%c?~eMr#1F}njc|7*qh;>Ij_d3*Rs?{3pou{5Y;0aR zfofOZ-(0D{qlGVRGur`h{#KX$_$`)Jr|0(Ji`VcvT@Y3<*+m``r;DFx0tc5~>@dg% z)Fn@=Ytic^Stp(q)4sX@@!%#Z{`hz`z0bK`AjVx?&X@@Mqb4^Q=GlD8X4;_yh0*)b zN!!S5a93mnfoQBxchk(_=|3|(XOpZ%;_CQgy8Jsn!F(QI*^7*nlZ+jOaPqv+#M0wh zU7`+rxH>IC%imUBy(0;Ar@QK0{~%@R>5%A7>qnE+J~K&*MN3;Q>EAsM(~!kTlMD0` zP!{lp_)oE=s%Q$4lVfxJuBpP$zg*mX|5>|vFq@{>Z)@Sc=ah7g-VN2P^v@kNM4cQR z){?GGA`BOtxce0x-c!2{N_FNCtUP?~01H4V1-zg}0>K$z<=}?B$C^g^oZt?eTRiIU zEm`Vg{xf_x%=rHX2|M=+;*isC{aVaNHFdEUT=DvNdE!t+ZbtZ?er0Vx%E9YoieIR*ZIG^wy3eiTttTy9g{JGwr2wYMT;Y9vkk!lwJsdk-!pQE7%7O zJ-7@1Bx4Q62-C?wswN1Ep7k z`#crOE&oO~dZ^mbvtoF0fZ~iF)Y_ zK^Q!LgvG1)QsscATzt-m`NjlU6N<$AEdrlGi&rO}mpor^f900RqzGmYzM4k%s+5ks z5O|WK+zETdGj~wc`LGzdGDaWNA^j2{CCWGua>bc1&T2AEQCspiQoe#5z()U!{S;DQ z;mHGP^Ou)+u7%)V!+2^xwzQysY{l^tq9JPqm zok=pYy6Rw~qjm>y0?KYn-Wx_rDBM4OqoHvZcJnw6r?~n``Aj{O+D!P`*!G%2wJK_C zOKrauGG?4!3RkUu!?f^@F3s!+tr|oO36?JZ0Qsfka)`XcAhCsWC}RZK(uz3^`~U+_ zxM~XdXI0#usQY3WThzv8PYfB=yNMq!xUCY{%$)}BXE6*BsEVo7jV22}Nm?4YP~Hx6 z%tun6KaUTj7#a(D0Xu$Rk*aHpc=N=pQuYO?XD^|JY#-2X0WreVwf^p7XX8LE!5*YD z38oBV>-fe=#4(MH>=2ryJLwy5>8u_p-b~b_*FFPwQ{b|uUi_Ze_>4jdhR!_lGwXuU z3snU!oPZwB-TULkX_IuW3QXKwt~H}%XHAvgSKIXz$D>LZd~~$iHGJL~6)^BGmeE9N zUL3&D@+U84;6h-0Z|@3>xhmcG$UeqXOa2**MuWv9H1L^=KhVG|`@1k1*Z`kIG3x+r zaHu9zTtegK>e6wDXh^xnWz*8R>qnhLQ4*ZDhXW0#0f9dV!S9ny!vsIbVsWJ_WQY6N z=u~~>OJTNe$QX#$gI>H=h-NI9)9@|pH!qlbzueHqy}z2%X} z6)Y#r^(B2GNXOxj7~*5uXZKitVvp~Uu*a>iD4TTDTiT$Wnd+=*h`FD+bOqbx{0l1h zv?`WrxZn9ZP0-=1z!-@X%nf-AfoiPtA##e2fAR8KL{Nx)9UeT%I-isqck(2|u(6#T zZRn>GAFu|98-^jkB8@O>x7C3>thd8rm?-)Jn93d>4y&b-4e(EuLRPqA24@N&3{#8M-aHa#0@y2HP`;4n174VKIudj$xa@;q`$yUuI83f( zc^(+6q&0-qdN3i?+>NI;Ni`B3i=i9o3Ii}w1RFQ+1u)-8>B@;b3R*K z2!8I?V?+vOyjU2HjX`^~@x-n+a4=zSPgs6L559ReP-zL!34I*gg|kWEZB@)C5a*>L z-90X1W&&uqTe?4$)XbU>4CXy1C*^0wK+N}!a)%r{`x6vw#SWi_!>-W;*U`bBOxRxR z5gnStamioyrXrE>!ZeNfpBAQ4j(>0v>xAAYAZ{CrdRcgxM$hL8+HNNi6l+|P%Z6DJ zwC49;_z67X2#L*R>`91|?z|CoPW<};od?f2h?MPxF!_%47(#hJ7kl0u2YiQR-*Ehv z*b1_5>^*el zFIyg%G;y822il%RXvwbSLKv#1=*%0@=geViY-aCgW;s`orbWb~FWUNnh6S zByTruflS}TyN{Vf14tw^@6C}B)X0Q{F01rN(t}~Z;ccE87FdV*cDAhZE2xhfFR|1^ zL-(G4)(eOpa)JU~A$R_YxGb%t%lvchF)^DVOm{9ZL_i-0`ahLlWXe^;B3bbvXEig4 z@U91h>#-^(+1C!)LPq3VJ2}u=IYf&bi3J;3me#r9O#_HCb+o3iges7t4{A7e0%~L$ zJF=VSK%FtaAfLLyr)5Rx4qZ{fYt1Bm$XW+KnbclP9DoO+wCFtcVHEt7313PfAj?GV zKFf#3;+)tW>8%&&SYg+F+!=g2U%m6LN(#tMf2Mb=n! zjXass#imZ(Dp{e6-kE3a`TL_ztBT_d8F9shE&-DnUnnC!+QNw!+U$Du?ri4!W9K~0 zv{O?|i0R+j{GPx88eW=5aEO&>l4O>gWhHCeHncr{Z1^% zpdS$Q%(Np;R1+0MI>t{<@%~Ob8$(Ebd5MkD0ptm^sR1;`Z~X1dA-SoGb$dwv2h}E$ zS@V$ZQ|tS(NOK97zCO0FumO}o=X(avkr$!hwp;^Jf3p-Z8b@YDsBR2#lX#nv&G**qm+); z8Rpb*K)0KaUKu_h_3ZKM$wg~^W9@E9h|=#wKJ|;|aT)uDtBwY71f2o(M5_CNC)`X! zMxip8wR`2S3fjp47K?|F!Y8(aR^)z{60=Xp+B6Sp_}SH0#T!(awZuQJc;-sbe>E3V zUp}{KoqjX93@6XfRYbH1yojOsh2yVjr zz9kT_mti6he?chWF>N}5#>o;(8+0D9xYK>}x`P9HE$Xdz`5lhk1GM#ZEDQ%dJgnVV9jP;O(DkS83a|gM+#o;l zxVjqF?;;H05gJVo%sw~QUi=surV^o*^xcz_EfcK@PP~oh5KD@;GD|8JpVj6q((@i z+1@Rc-}s%klMxU=A)+{p-s$M=ihJ2Jdp6tOsw{1rkS--}_C~7czS3gEjn6*T6uaMC z7c{~5QPFEC!jOV%w)h+2Jq`LXV86TwZ2-J5mpDT-)SsstM&Zkkz?`Ll5-2a6T}B>{ zZm}mgy^%6?>Ne!Fw%F9e>oXi-H^*lq*5(UV5bj^ghrjL<%|D;^A{g$R#TVwy$Lx;) z^A;>Ss5P{Rv-2=gGGmwhnHhD$NtMgEk!=_oGyZA zfDG!x@dkR_^m|dE!b0b2F}RXSfA_I+Ns9FVxzkbebY}CrTM?UtH+&( zzJ}FG&Lah2>xsSlcd<+E0U^@PQw%rF3s|3zX734bz>k`n(*MT$)xC#F37^E#`4d7br_XFb{c zszGk1&Y3}oq$)$8tgO!V;5&3b)hlQkPsrmdqSY4*P z?P$&YYqjphFX%Z(522GeGIb0iDJ=zEB7ZGTTBt%#$);v9Q9NUNA)JomeP&e5uf?I8 zZ>WblGoJplSLJ1*zZN%DHKb1J)t{{`ia$lE?S5!!OiJU)=TnN$ng9G<;HHPzugx-@ z{DbzF-?{19X+Qa;mx)xTCx7&Ef$tqvM1(e+Y#i@8bDZOJ+{@>`_I~!j;fKFAFHr1% zuA09Y^H^I)>#x1{2q3?7d6{c!=YwqZ#f4LWs1nI9RzL59^f_@}6kuRlF( zJ8Sc6%c|?i*nhbXQ>h)v)UW}Rzc}6BfQIoP;#=%nf_Q1w?)Xf^T|>|D2MU2r=Z;d6 zHRZ%GsnBy#h#cqi5BrMLq&afj`t6g{%U2^WUtVVLQ-xL%S^vV(M-M@c7MV{D(*;kI{q>E!Uc@J^re#w)DUvx8_fS{+ zVIq~Y1H-U@w5FrXS$4QMDcjkcFy~XJv&xd`Y1@v_dIZq8{90UA$7#u!&c}^$@%qz> zGE=l9)%|udS`Fe$vu7YyZ>v|HXHH=r!xSxLC&Tdw|$YF=4c{4IjK>4Cu zqmqI#JRTdx+dJYox7UG3o8r%BOpSDH7Ec|&Zp4o7YB6zn+oFECgMMfAQcxAP6vS52 zu9?Z+o((;#I9Ci(934%;s^Jc-xF#w|hV{sd>D@$bB!;wRaEs}^2ptMN*yC0VkuCJM z8mD#BHvAE0D(TI>)onB4lX0G|n0pp3G8Dxr7Xt#ENzAmFT8w)|x>7wRcqirE3vO(4wtJZ|x>M93%7}px5 z&uNwC=;^_(WZH*ZOqp-+n@?GY`F5)&%K}OlGM0??O1%AN0p90Gtt*DYgo+>)!)_rC zx%5>z_AOo6uE|rm>X!vtWoS8sut+TO>me*^{^&Ab$2_LjSN!U>;|x1|{yk;Tb!8Tz z5yS}M>!Fd9`J-h>J7%Y)DN$OjtXj1^dO8iOFUp}2*buDRJxjxtF4&!Q-`~^I?n9d_ z-I)WwZFA4aIobP>D!Af`vrg)+qwVV#9&*llU0pSS^p5tr?L_6ZX5Y+h&bO_rD2}QQ^f_SX$AUVq^Ho#Q+9X1 zYRU2{Su=^$)Tq)}4K+2kcl|Hn8q=`;VFkJWX>J;AXq}##L_RI2VMc?HYr(@1IO~oW?cvn*nmISaT+>yQ)5M%!-55BbNN%qmvvmX1nZ;vCY9-)(p z)Sq5C9jHJ~bDn1ef>}d7ow`B2I5f4Ju#1(m}dNx$n^9YYf-#UVfYttY#&& zFyqbiR_IJ*$wGy1XiV&LaRYa*ccKkHt{nImSN=bm=fB&pz6LJQgzdX>)YtyecvRAAryG~VbfNpgBN6q3p?~}`RtqWpaR;kqx_{8yW5y@M zUqtp{K~MW-1-|O$g%GajSNFUqI8VCjvormgNw12Y{pOiI9#PoXP1#Du8N zN%C4H<9fJ`x)CH6P)jY#)Vn*XhL4Ww3Kn`nlD+ENb9To?adw{Q__

4htIUtt%f|5b&#b(VqB@du8IT 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 gul8&2yI18;{yV<9Yv0ml0kyt^jH@1b|Rb>`r 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

VBp^kV;O33K0-b$pgsFnZvb`E?{ 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∨48X*A7 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 b?=^Us Date: Wed, 23 Sep 2026 12:49:18 +0700 Subject: [PATCH 2/5] fix(datagrid): let only the latest concurrent refresh check settle --- .../Structure/StructureEditingSession.swift | 4 ++ ...terializedViewConcurrentRefreshTests.swift | 63 +++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/TablePro/Views/Structure/StructureEditingSession.swift b/TablePro/Views/Structure/StructureEditingSession.swift index eba5ab70e7..f5f921104e 100644 --- a/TablePro/Views/Structure/StructureEditingSession.swift +++ b/TablePro/Views/Structure/StructureEditingSession.swift @@ -72,6 +72,7 @@ internal final class StructureEditingSession: ObservableObject { @Published internal var tabData = StructureTabDataState() @Published internal var concurrentRefresh: MetadataLoadState = .idle + private var concurrentRefreshRequest = 0 /// Where the user was. Held here rather than in the view because two tabs on one table are two /// editors: one being on Indexes must not move the other, and neither should lose its place to @@ -156,6 +157,8 @@ internal final class StructureEditingSession: ObservableObject { provider: any ScopedMetadataProviding = DatabaseManager.shared ) async { guard objectKind == .materializedView else { return } + concurrentRefreshRequest += 1 + let request = concurrentRefreshRequest concurrentRefresh = concurrentRefresh.enteringLoad let loader = TableStructureLoader(scope: scope, tableName: tableName, provider: provider) let outcome: MetadataFetchOutcome @@ -169,6 +172,7 @@ internal final class StructureEditingSession: ObservableObject { ) outcome = .failed(error.localizedDescription) } + guard request == concurrentRefreshRequest else { return } concurrentRefresh = concurrentRefresh.settled(by: outcome, discardingValue: true) } diff --git a/TableProTests/Views/Structure/MaterializedViewConcurrentRefreshTests.swift b/TableProTests/Views/Structure/MaterializedViewConcurrentRefreshTests.swift index 62a6cdd732..2a2c35c478 100644 --- a/TableProTests/Views/Structure/MaterializedViewConcurrentRefreshTests.swift +++ b/TableProTests/Views/Structure/MaterializedViewConcurrentRefreshTests.swift @@ -35,6 +35,53 @@ private final class ConcurrentRefreshProvider: ScopedMetadataProviding { func browseScope(for connectionId: UUID) -> DatabaseScope? { nil } } +/// Holds the first request until released, so a later request can finish first. Each request +/// reads its own driver, so the two answers stay apart however the calls interleave. +@MainActor +private final class ParkingProvider: ScopedMetadataProviding { + private let drivers: [MockDatabaseDriver] + private var calls = 0 + private var parked: CheckedContinuation? + private var parkWaiter: CheckedContinuation? + + init(answers: [PluginConcurrentRefreshAvailability]) { + drivers = answers.map { answer in + let driver = MockDatabaseDriver() + driver.concurrentRefreshAvailabilityToReturn = answer + return driver + } + } + + func withMetadataDriver( + scope: DatabaseScope, + workload: MetadataConnectionPool.Workload, + _ body: @Sendable @escaping (DatabaseDriver) async throws -> T + ) async throws -> T { + let index = calls + calls += 1 + if index == 0 { + await withCheckedContinuation { continuation in + parked = continuation + parkWaiter?.resume() + parkWaiter = nil + } + } + return try await body(drivers[index]) + } + + func browseScope(for connectionId: UUID) -> DatabaseScope? { nil } + + func waitUntilParked() async { + guard parked == nil else { return } + await withCheckedContinuation { parkWaiter = $0 } + } + + func releaseParked() { + parked?.resume() + parked = nil + } +} + @Suite("Materialized view concurrent refresh note") struct MaterializedViewConcurrentRefreshNoteTests { @Test("Nothing is shown before the server has answered") @@ -161,6 +208,22 @@ struct MaterializedViewConcurrentRefreshCheckTests { #expect(MaterializedViewConcurrentRefreshNote(state: session.concurrentRefresh)?.text.contains("Couldn't check") == true) } + @Test("An older check that finishes last cannot overwrite a newer answer") + func olderCheckCannotOverwriteANewerOne() async { + let session = Self.makeSession(kind: .materializedView) + let provider = ParkingProvider(answers: [.requiresUniqueIndex, .available]) + let older = Task { await session.reloadConcurrentRefreshAvailability(provider: provider) } + await provider.waitUntilParked() + + await session.reloadConcurrentRefreshAvailability(provider: provider) + #expect(session.concurrentRefresh == .loaded(.available)) + + provider.releaseParked() + await older.value + + #expect(session.concurrentRefresh == .loaded(.available)) + } + @Test("A first check that fails is reported as failed") func firstFailureIsReported() async { let session = Self.makeSession(kind: .materializedView) From 818c728bf527e1969529326ba7933cfce0edb235 Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Wed, 23 Sep 2026 15:04:26 +0700 Subject: [PATCH 3/5] fix(plugin-postgresql): follow pg_dump's index rule so invalid indexes stay out of dumps and copies --- CHANGELOG.md | 6 + .../PostgreSQLIndexQueries.swift | 52 ++++- ...PostgreSQLPluginDriver+ColumnReorder.swift | 218 +++++------------- .../PostgreSQLPluginDriver.swift | 47 ++-- .../PostgreSQLSchemaQueries.swift | 17 ++ .../PostgreSQLTableRebuild.swift | 135 +++++++++++ Plugins/SQLExportPlugin/SQLExportPlugin.swift | 10 +- .../TableProPluginKit/PluginIndexInfo.swift | 32 +++ .../Core/Compare/CompareMetadataService.swift | 8 + .../Core/Compare/CompareRunner+Data.swift | 2 +- TablePro/Core/Compare/CompareRunner.swift | 2 +- .../Core/MCP/MCPConnectionBridge+Schema.swift | 1 + .../MCP/Protocol/Tools/MCPToolSchema.swift | 3 +- .../Core/ObjectCopy/ObjectCopyPlanner.swift | 4 +- TablePro/Core/Plugins/PluginManager.swift | 3 + .../Core/Plugins/PluginObjectMapping.swift | 3 +- .../Models/Database/InvalidIndexNote.swift | 21 ++ TablePro/Models/Query/QueryResult.swift | 5 +- TablePro/Resources/Localizable.xcstrings | 12 + ...eView.swift => StructureTabNoteView.swift} | 12 +- .../Views/Structure/TableStructureView.swift | 25 +- ...eStructureSnapshotIndexValidityTests.swift | 135 +++++++++++ .../Tools/MCPIndexEncodingTests.swift | 20 ++ .../PluginIndexMappingCoverageTests.swift | 15 ++ .../Helpers/PluginStructureFixtures.swift | 17 +- .../Plugins/PluginIndexInfoCodableTests.swift | 13 +- .../Plugins/PostgreSQLIndexReplayTests.swift | 35 ++- .../PostgreSQLLegacyCatalogQueryTests.swift | 4 + .../PostgreSQLLiteralQuotingTests.swift | 2 + .../PostgreSQLStandaloneIndexQueryTests.swift | 71 ++++++ .../Plugins/PostgreSQLTableRebuildTests.swift | 85 +++++++ .../Plugins/SQLExportIndexPhaseTests.swift | 31 ++- .../Structure/InvalidIndexNoteTests.swift | 46 ++++ docs/databases/postgresql.mdx | 4 + docs/external-api/mcp-tools.mdx | 2 +- docs/features/import-export.mdx | 2 +- docs/features/table-structure.mdx | 6 + project.yml | 1 + scripts/check-postgres-index-dump-parity.sh | 203 ++++++++++++++++ 39 files changed, 1083 insertions(+), 227 deletions(-) create mode 100644 Plugins/PostgreSQLDriverPlugin/PostgreSQLTableRebuild.swift create mode 100644 TablePro/Models/Database/InvalidIndexNote.swift rename TablePro/Views/Structure/{ConcurrentRefreshNoteView.swift => StructureTabNoteView.swift} (60%) create mode 100644 TableProTests/Core/Compare/TableStructureSnapshotIndexValidityTests.swift create mode 100644 TableProTests/Plugins/PostgreSQLStandaloneIndexQueryTests.swift create mode 100644 TableProTests/Plugins/PostgreSQLTableRebuildTests.swift create mode 100644 TableProTests/Views/Structure/InvalidIndexNoteTests.swift create mode 100755 scripts/check-postgres-index-dump-parity.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index fe92d8517e..b5e417a580 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Eight more rebindable commands in **Settings > Keyboard**, among them the sidebar's lists and the session commands. - **Global** on a saved query folder's menu, for a folder every connection shows. - Whether a materialized view can be refreshed concurrently, on its **Indexes** tab. (#2522) +- Invalid PostgreSQL indexes named on the table's **Indexes** tab. ### Changed @@ -327,6 +328,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Destination folder and the first database reading as one path in the backup result sheet. (#3046) - Only the last line of a failed backup's error shown, which on `pg_dump` is the hint rather than the cause. - Backup failure reported as an exit code alone when the tool wrote its message and exited at once. +- PostgreSQL export and column reorder script failing on an index a failed `CREATE INDEX CONCURRENTLY` left behind. +- PostgreSQL export and column reorder script failing on a foreign key that references a unique index. +- PostgreSQL exclusion constraints missing from exports and the DDL tab. +- PostgreSQL column reorder script dropping an index named like one of the table's check constraints. +- Invalid PostgreSQL index recreated on the target by Compare & Sync and **Copy To**. ### Security diff --git a/Plugins/PostgreSQLDriverPlugin/PostgreSQLIndexQueries.swift b/Plugins/PostgreSQLDriverPlugin/PostgreSQLIndexQueries.swift index 2a42c6d12e..723a9fe1b0 100644 --- a/Plugins/PostgreSQLDriverPlugin/PostgreSQLIndexQueries.swift +++ b/Plugins/PostgreSQLDriverPlugin/PostgreSQLIndexQueries.swift @@ -10,6 +10,47 @@ import TableProPluginKit enum PostgreSQLIndexQueries { private static let logger = Logger(subsystem: "com.TablePro.PostgreSQLDriver", category: "IndexQueries") + static let restorableIndexPredicate = "(ix.indisvalid OR t.relkind = 'p') AND ix.indisready" + + static func standaloneIndexQuery(schema: String, table: String) -> String { + let schemaLiteral = PostgreSQLObjectQueries.quoteLiteral(schema) + let tableLiteral = PostgreSQLObjectQueries.quoteLiteral(table) + return """ + SELECT + i.relname AS index_name, + pg_catalog.pg_get_indexdef(ix.indexrelid) AS definition, + (\(restorableIndexPredicate)) AS is_restorable + FROM pg_catalog.pg_index ix + JOIN pg_catalog.pg_class i ON i.oid = ix.indexrelid + JOIN pg_catalog.pg_class t ON t.oid = ix.indrelid + JOIN pg_catalog.pg_namespace n ON n.oid = t.relnamespace + WHERE n.nspname = \(schemaLiteral) + AND t.relname = \(tableLiteral) + AND NOT EXISTS ( + SELECT 1 FROM pg_catalog.pg_constraint con + WHERE con.conrelid = ix.indrelid + AND con.conindid = ix.indexrelid + AND con.contype IN ('p', 'u', 'x') + ) + ORDER BY i.relname + """ + } + + static func standaloneIndexes(rows: [[PluginCellValue]]) -> PostgreSQLStandaloneIndexes { + var definitions: [String] = [] + var invalidNames: [String] = [] + for row in rows { + guard let name = row[safe: 0]?.asText, + let definition = row[safe: 1]?.asText?.nilIfEmpty else { continue } + if PostgreSQLCatalogBoolean.isTrue(row[safe: 2]?.asText) { + definitions.append(definition) + } else { + invalidNames.append(name) + } + } + return PostgreSQLStandaloneIndexes(definitions: definitions, invalidNames: invalidNames) + } + /// One row per index, with its key parts in key order. /// /// A key part is read by position rather than by joining `pg_attribute` on `indkey`. An expression @@ -56,7 +97,8 @@ enum PostgreSQLIndexQueries { JOIN pg_catalog.pg_attribute a ON a.attrelid = ix.indrelid AND a.attnum = ix.indkey[k.n - 1] ORDER BY k.n - )::text AS included_columns + )::text AS included_columns, + (\(restorableIndexPredicate)) AS is_valid FROM pg_catalog.pg_index ix JOIN pg_catalog.pg_class i ON i.oid = ix.indexrelid JOIN pg_catalog.pg_class t ON t.oid = ix.indrelid @@ -157,6 +199,11 @@ struct PostgreSQLCatalogIndexDDL: Equatable { let whereClause: String? } +struct PostgreSQLStandaloneIndexes: Equatable { + let definitions: [String] + let invalidNames: [String] +} + enum PostgreSQLIndexRow { static func index( from row: [PluginCellValue], @@ -176,7 +223,8 @@ enum PostgreSQLIndexRow { expressions: nonEmptyValues(row[safe: 7]?.asText), includedColumns: nonEmptyValues(row[safe: 8]?.asText), ddlMethodAndKeys: spelling?.methodAndKeys, - ddlWhereClause: spelling?.whereClause + ddlWhereClause: spelling?.whereClause, + isValid: row[safe: 9]?.asText.map { PostgreSQLCatalogBoolean.isTrue($0) } ) return (table, index) } diff --git a/Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver+ColumnReorder.swift b/Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver+ColumnReorder.swift index 8ae22ad6bc..564b7a93c6 100644 --- a/Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver+ColumnReorder.swift +++ b/Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver+ColumnReorder.swift @@ -28,163 +28,28 @@ extension PostgreSQLPluginDriver { Set(parts.columnNames) == Set(desiredOrder), parts.columnNames.count == desiredOrder.count else { return nil } - let qualified = "\(quoteIdentifier(resolvedSchema)).\(quoteIdentifier(table))" - let staging = "\(quoteIdentifier(resolvedSchema)).\(quoteIdentifier("\(table)_tablepro_reorder"))" - let copyList = parts.copyableColumns.map { quoteIdentifier($0) }.joined(separator: ", ") - - let body = desiredOrder.compactMap { parts.columnDefinitions[$0] } - - /// The order here is the whole difficulty, and every step of it was measured against - /// PostgreSQL 17. The old table is renamed rather than dropped, so a foreign key in another - /// table keeps pointing at real rows while the copy runs. But a rename moves nothing else: - /// the staging table still owns every index name and every constraint name the original - /// had, and both live in the schema rather than on the table. Declaring the constraints - /// inside the `CREATE TABLE` therefore silently renames them, which shipped as `x_pkey1`, - /// `x_a_b_key1` and `x_c_check1`; creating an index before the staging table goes fails - /// outright with "relation already exists". So nothing that carries a name is created until - /// the staging table is dropped, and the staging table cannot be dropped until every - /// inbound foreign key has let go of it. - var statements: [String] = [] - statements.append("ALTER TABLE \(qualified) RENAME TO \(quoteIdentifier("\(table)_tablepro_reorder"))") - statements.append("CREATE TABLE \(qualified) (\n " + body.joined(separator: ",\n ") + "\n)") - statements.append(PostgreSQLVersionedStatements.copyRows( - into: qualified, - from: staging, - columnList: copyList, - capabilities: versionedCapabilities - )) - statements.append(contentsOf: parts.identityResets(qualified: qualified, quote: quoteIdentifier)) - statements.append(contentsOf: parts.inboundForeignKeyDrops) - /// A `serial` column's default still calls the sequence the staging table owns, so `DROP - /// TABLE` tries to take that sequence with it and PostgreSQL refuses, rolling the whole - /// script back. Measured: handing ownership to the rebuilt table first lets the drop - /// through, and the sequence keeps its original name. - statements.append(contentsOf: parts.serialSequenceHandovers) - statements.append("DROP TABLE \(staging)") - statements.append(contentsOf: parts.tableConstraints.map { "ALTER TABLE \(qualified) ADD \($0)" }) - statements.append(contentsOf: parts.outboundForeignKeys.map { "ALTER TABLE \(qualified) ADD \($0)" }) - statements.append(contentsOf: parts.inboundForeignKeyAdds) - statements.append(contentsOf: parts.indexes) - statements.append(contentsOf: parts.triggers) - statements.append(contentsOf: parts.triggerModes) - statements.append(contentsOf: parts.comments) - return PluginColumnReorderPlan( - statements: statements, + statements: parts.statements( + table: table, + schema: resolvedSchema, + desiredOrder: desiredOrder, + quote: quoteIdentifier, + capabilities: versionedCapabilities + ), isTransactional: true, cost: .tableRebuild, - caveats: parts.dependentViewCaveat + [ - String(localized: "Grants, row-level security policies, publications, extended statistics, partitioning and table inheritance are not carried over."), - String(localized: "An identity column keeps its value, but its sequence is recreated under a new name because the old table still holds the original name when the new one is created.") - ], + caveats: parts.caveats, isRunnable: false ) } - private struct RebuildParts { - var columnNames: [String] = [] - var columnDefinitions: [String: String] = [:] - var copyableColumns: [String] = [] - var identityColumns: [String] = [] - var tableConstraints: [String] = [] - var outboundForeignKeys: [String] = [] - var inboundForeignKeyDrops: [String] = [] - var inboundForeignKeyAdds: [String] = [] - var indexes: [String] = [] - var triggers: [String] = [] - var triggerModes: [String] = [] - var comments: [String] = [] - var dependentViews: [String] = [] - var serialSequenceHandovers: [String] = [] - - /// PostgreSQL binds a view to the table's OID, not its name, so a view follows the rename - /// onto the staging table and then refuses to let it be dropped. Measured: the rebuild - /// stops at `DROP TABLE` with "cannot drop table … because other objects depend on it" and - /// the whole transaction rolls back. Naming them here is what stops that being discovered - /// three quarters of the way through the script. - var dependentViewCaveat: [String] { - guard !dependentViews.isEmpty else { return [] } - return [ - String( - format: String( - localized: "Drop and recreate these views first, or the script stops when it drops the old table: %@." - ), - dependentViews.joined(separator: ", ") - ) - ] - } - - /// A new identity column starts its sequence at one, so it is wound forward to the rows the - /// copy just wrote. Without this the next insert collides with an existing key. - /// - /// `qualified` is already a quoted identifier pair, and `pg_get_serial_sequence` takes the - /// whole pair as one literal, so it is composed first and quoted once. A schema, table or - /// column name may legally contain an apostrophe or a backslash, and both land inside a - /// literal here. - func identityResets(qualified: String, quote: (String) -> String) -> [String] { - let relationLiteral = PostgreSQLObjectQueries.quoteLiteral(qualified) - return identityColumns.map { column in - let columnLiteral = PostgreSQLObjectQueries.quoteLiteral(column) - return """ - SELECT setval( - pg_get_serial_sequence(\(relationLiteral), \(columnLiteral)), - GREATEST(COALESCE((SELECT MAX(\(quote(column))) FROM \(qualified)), 0), 1), - true - ) - """ - } - } - } - - private func fetchRebuildParts(table: String, schema: String) async throws -> RebuildParts { + private func fetchRebuildParts(table: String, schema: String) async throws -> PostgreSQLTableRebuild { let tableLiteral = PostgreSQLObjectQueries.quoteLiteral(table) let schemaLiteral = PostgreSQLObjectQueries.quoteLiteral(schema) let caps = versionedCapabilities - var parts = RebuildParts() + var parts = PostgreSQLTableRebuild() - let identityClause = caps.hasIdentityColumns ? """ - CASE - WHEN a.attidentity = 'a' THEN ' GENERATED ALWAYS AS IDENTITY' - WHEN a.attidentity = 'd' THEN ' GENERATED BY DEFAULT AS IDENTITY' - ELSE '' - END || - """ : "" - let generatedClause = caps.hasGeneratedColumns ? """ - CASE - WHEN a.attgenerated = 's' THEN ' GENERATED ALWAYS AS (' || pg_get_expr(d.adbin, d.adrelid) || ') STORED' - WHEN a.attgenerated = 'v' THEN ' GENERATED ALWAYS AS (' || pg_get_expr(d.adbin, d.adrelid) || ') VIRTUAL' - ELSE '' - END || - """ : "" - let defaultGuard = [ - caps.hasIdentityColumns ? "AND a.attidentity = ''" : "", - caps.hasGeneratedColumns ? "AND a.attgenerated = ''" : "" - ].filter { !$0.isEmpty }.joined(separator: " ") - let identityFlag = caps.hasIdentityColumns ? "a.attidentity <> ''" : "false" - let generatedFlag = caps.hasGeneratedColumns ? "a.attgenerated <> ''" : "false" - - let columnRows = try await execute(query: """ - SELECT - a.attname, - quote_ident(a.attname) || ' ' || format_type(a.atttypid, a.atttypmod) || \(PostgreSQLSchemaQueries.columnCollateClause) || - \(identityClause) - \(generatedClause) - CASE WHEN a.attnotnull THEN ' NOT NULL' ELSE '' END || - CASE - WHEN a.atthasdef \(defaultGuard) - THEN ' DEFAULT ' || pg_get_expr(d.adbin, d.adrelid) - ELSE '' - END, - \(identityFlag), - \(generatedFlag) - FROM pg_attribute a - JOIN pg_class c ON c.oid = a.attrelid - JOIN pg_namespace n ON n.oid = c.relnamespace - LEFT JOIN pg_attrdef d ON d.adrelid = c.oid AND d.adnum = a.attnum - WHERE c.relname = \(tableLiteral) AND n.nspname = \(schemaLiteral) - AND a.attnum > 0 AND NOT a.attisdropped - ORDER BY a.attnum - """).rows + let columnRows = try await rebuildColumnRows(tableLiteral: tableLiteral, schemaLiteral: schemaLiteral) for row in columnRows { guard let name = row[safe: 0]?.asText, let definition = row[safe: 1]?.asText else { continue } @@ -242,17 +107,9 @@ extension PostgreSQLPluginDriver { /// The indexes a constraint owns come back with the constraint, so listing them again would /// fail on a duplicate name. - parts.indexes = try await textRows(""" - SELECT indexdef FROM pg_indexes - WHERE tablename = \(tableLiteral) AND schemaname = \(schemaLiteral) - AND indexname NOT IN ( - SELECT con.conname FROM pg_constraint con - JOIN pg_class c ON c.oid = con.conrelid - JOIN pg_namespace n ON n.oid = c.relnamespace - WHERE c.relname = \(tableLiteral) AND n.nspname = \(schemaLiteral) - ) - ORDER BY indexname - """) + let standaloneIndexes = try await fetchStandaloneIndexes(table: table, schema: schema) + parts.indexes = standaloneIndexes.definitions + parts.invalidIndexes = standaloneIndexes.invalidNames parts.triggers = try await textRows(""" SELECT pg_get_triggerdef(t.oid, true) @@ -340,6 +197,53 @@ extension PostgreSQLPluginDriver { return parts } + private func rebuildColumnRows(tableLiteral: String, schemaLiteral: String) async throws -> [[PluginCellValue]] { + let caps = versionedCapabilities + let identityClause = caps.hasIdentityColumns ? """ + CASE + WHEN a.attidentity = 'a' THEN ' GENERATED ALWAYS AS IDENTITY' + WHEN a.attidentity = 'd' THEN ' GENERATED BY DEFAULT AS IDENTITY' + ELSE '' + END || + """ : "" + let generatedClause = caps.hasGeneratedColumns ? """ + CASE + WHEN a.attgenerated = 's' THEN ' GENERATED ALWAYS AS (' || pg_get_expr(d.adbin, d.adrelid) || ') STORED' + WHEN a.attgenerated = 'v' THEN ' GENERATED ALWAYS AS (' || pg_get_expr(d.adbin, d.adrelid) || ') VIRTUAL' + ELSE '' + END || + """ : "" + let defaultGuard = [ + caps.hasIdentityColumns ? "AND a.attidentity = ''" : "", + caps.hasGeneratedColumns ? "AND a.attgenerated = ''" : "" + ].filter { !$0.isEmpty }.joined(separator: " ") + let identityFlag = caps.hasIdentityColumns ? "a.attidentity <> ''" : "false" + let generatedFlag = caps.hasGeneratedColumns ? "a.attgenerated <> ''" : "false" + + return try await execute(query: """ + SELECT + a.attname, + quote_ident(a.attname) || ' ' || format_type(a.atttypid, a.atttypmod) || \(PostgreSQLSchemaQueries.columnCollateClause) || + \(identityClause) + \(generatedClause) + CASE WHEN a.attnotnull THEN ' NOT NULL' ELSE '' END || + CASE + WHEN a.atthasdef \(defaultGuard) + THEN ' DEFAULT ' || pg_get_expr(d.adbin, d.adrelid) + ELSE '' + END, + \(identityFlag), + \(generatedFlag) + FROM pg_attribute a + JOIN pg_class c ON c.oid = a.attrelid + JOIN pg_namespace n ON n.oid = c.relnamespace + LEFT JOIN pg_attrdef d ON d.adrelid = c.oid AND d.adnum = a.attnum + WHERE c.relname = \(tableLiteral) AND n.nspname = \(schemaLiteral) + AND a.attnum > 0 AND NOT a.attisdropped + ORDER BY a.attnum + """).rows + } + private func textRows(_ query: String) async throws -> [String] { try await execute(query: query).rows.compactMap { $0[safe: 0]?.asText } } diff --git a/Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver.swift b/Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver.swift index 7a4e86f3bc..7d3ebe9b12 100644 --- a/Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver.swift +++ b/Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver.swift @@ -414,18 +414,9 @@ class PostgreSQLPluginDriver: LibPQBackedDriver, @unchecked Sendable { ORDER BY a.attnum """ - let constraintsQuery = """ - SELECT - pg_get_constraintdef(con.oid, true) - FROM pg_constraint con - JOIN pg_class c ON c.oid = con.conrelid - JOIN pg_namespace n ON n.oid = c.relnamespace - WHERE c.relname = \(tableLiteral) - AND n.nspname = \(schemaLiteral) - AND con.contype IN ('p', 'u', 'c') - ORDER BY - CASE con.contype WHEN 'p' THEN 0 WHEN 'u' THEN 1 WHEN 'c' THEN 2 END - """ + let constraintsQuery = PostgreSQLSchemaQueries.tableDDLConstraintsQuery( + schema: resolvedSchema, table: table + ) async let columnsResult = execute(query: columnsQuery) async let constraintsResult = execute(query: constraintsQuery) @@ -459,27 +450,19 @@ class PostgreSQLPluginDriver: LibPQBackedDriver, @unchecked Sendable { /// operator class, an `INCLUDE` list, a storage parameter, a partial predicate and a per-column /// sort direction verbatim. It also qualifies the table whatever `search_path` holds, so a dump /// spanning two schemas attaches each index to the right one. - /// - /// An index backing a constraint is excluded by `conindid` rather than by matching its name - /// against `conname`, which is how `pg_dump` does it: the names agree for a unique or primary - /// key constraint, but a CHECK constraint that happens to share an index's name would drop that - /// index from the dump. func fetchIndexDDL(table: String, schema: String?) async throws -> [String] { - let query = """ - SELECT pg_get_indexdef(ix.indexrelid) - FROM pg_index ix - JOIN pg_class c ON c.oid = ix.indrelid - JOIN pg_class i ON i.oid = ix.indexrelid - JOIN pg_namespace n ON n.oid = c.relnamespace - WHERE c.relname = \(PostgreSQLObjectQueries.quoteLiteral(table)) - AND n.nspname = \(PostgreSQLObjectQueries.quoteLiteral(schema ?? core.currentSchema)) - AND NOT EXISTS ( - SELECT 1 FROM pg_constraint con WHERE con.conindid = ix.indexrelid - ) - ORDER BY i.relname - """ - let result = try await execute(query: query) - return result.rows.compactMap { $0[0].asText } + try await fetchStandaloneIndexes(table: table, schema: schema ?? core.currentSchema).definitions + } + + func fetchStandaloneIndexes(table: String, schema: String) async throws -> PostgreSQLStandaloneIndexes { + let query = PostgreSQLIndexQueries.standaloneIndexQuery(schema: schema, table: table) + let indexes = PostgreSQLIndexQueries.standaloneIndexes(rows: try await execute(query: query).rows) + if !indexes.invalidNames.isEmpty { + Self.logger.info( + "Left out \(indexes.invalidNames.count) invalid index(es) on \(table, privacy: .private(mask: .hash))" + ) + } + return indexes } func fetchTableMetadata(table: String, schema: String?) async throws -> PluginTableMetadata { diff --git a/Plugins/PostgreSQLDriverPlugin/PostgreSQLSchemaQueries.swift b/Plugins/PostgreSQLDriverPlugin/PostgreSQLSchemaQueries.swift index 3996634c53..6d6e6d4c08 100644 --- a/Plugins/PostgreSQLDriverPlugin/PostgreSQLSchemaQueries.swift +++ b/Plugins/PostgreSQLDriverPlugin/PostgreSQLSchemaQueries.swift @@ -475,6 +475,23 @@ enum PostgreSQLSchemaQueries { """ } + static func tableDDLConstraintsQuery(schema: String, table: String) -> String { + let schemaLiteral = PostgreSQLObjectQueries.quoteLiteral(schema) + let tableLiteral = PostgreSQLObjectQueries.quoteLiteral(table) + return """ + SELECT + pg_get_constraintdef(con.oid, true) + FROM pg_constraint con + JOIN pg_class c ON c.oid = con.conrelid + JOIN pg_namespace n ON n.oid = c.relnamespace + WHERE c.relname = \(tableLiteral) + AND n.nspname = \(schemaLiteral) + AND con.contype IN ('p', 'u', 'c', 'x') + ORDER BY + CASE con.contype WHEN 'p' THEN 0 WHEN 'u' THEN 1 WHEN 'c' THEN 2 ELSE 3 END + """ + } + /// Column introspection for one schema, read under `schemaRelativeReadPrefix(schema:)`. /// /// `declared_type` is what the column shows and `data_type` is what the app classifies by, which diff --git a/Plugins/PostgreSQLDriverPlugin/PostgreSQLTableRebuild.swift b/Plugins/PostgreSQLDriverPlugin/PostgreSQLTableRebuild.swift new file mode 100644 index 0000000000..b170f93f0a --- /dev/null +++ b/Plugins/PostgreSQLDriverPlugin/PostgreSQLTableRebuild.swift @@ -0,0 +1,135 @@ +// +// PostgreSQLTableRebuild.swift +// PostgreSQLDriverPlugin +// + +import Foundation + +struct PostgreSQLTableRebuild { + var columnNames: [String] = [] + var columnDefinitions: [String: String] = [:] + var copyableColumns: [String] = [] + var identityColumns: [String] = [] + var tableConstraints: [String] = [] + var outboundForeignKeys: [String] = [] + var inboundForeignKeyDrops: [String] = [] + var inboundForeignKeyAdds: [String] = [] + var indexes: [String] = [] + var invalidIndexes: [String] = [] + var triggers: [String] = [] + var triggerModes: [String] = [] + var comments: [String] = [] + var dependentViews: [String] = [] + var serialSequenceHandovers: [String] = [] + + /// The order here is the whole difficulty, and every step of it was measured against + /// PostgreSQL 17. The old table is renamed rather than dropped, so a foreign key in another + /// table keeps pointing at real rows while the copy runs. But a rename moves nothing else: + /// the staging table still owns every index name and every constraint name the original + /// had, and both live in the schema rather than on the table. Declaring the constraints + /// inside the `CREATE TABLE` therefore silently renames them, which shipped as `x_pkey1`, + /// `x_a_b_key1` and `x_c_check1`; creating an index before the staging table goes fails + /// outright with "relation already exists". So nothing that carries a name is created until + /// the staging table is dropped, and the staging table cannot be dropped until every + /// inbound foreign key has let go of it. + func statements( + table: String, + schema: String, + desiredOrder: [String], + quote: (String) -> String, + capabilities: PostgreSQLCapabilities + ) -> [String] { + let stagingName = "\(table)_tablepro_reorder" + let qualified = "\(quote(schema)).\(quote(table))" + let staging = "\(quote(schema)).\(quote(stagingName))" + let copyList = copyableColumns.map(quote).joined(separator: ", ") + let body = desiredOrder.compactMap { columnDefinitions[$0] } + + var statements: [String] = [] + statements.append("ALTER TABLE \(qualified) RENAME TO \(quote(stagingName))") + statements.append("CREATE TABLE \(qualified) (\n " + body.joined(separator: ",\n ") + "\n)") + statements.append(PostgreSQLVersionedStatements.copyRows( + into: qualified, + from: staging, + columnList: copyList, + capabilities: capabilities + )) + statements.append(contentsOf: identityResets(qualified: qualified, quote: quote)) + statements.append(contentsOf: inboundForeignKeyDrops) + /// A `serial` column's default still calls the sequence the staging table owns, so `DROP + /// TABLE` tries to take that sequence with it and PostgreSQL refuses, rolling the whole + /// script back. Measured: handing ownership to the rebuilt table first lets the drop + /// through, and the sequence keeps its original name. + statements.append(contentsOf: serialSequenceHandovers) + statements.append("DROP TABLE \(staging)") + statements.append(contentsOf: tableConstraints.map { "ALTER TABLE \(qualified) ADD \($0)" }) + statements.append(contentsOf: indexes) + statements.append(contentsOf: outboundForeignKeys.map { "ALTER TABLE \(qualified) ADD \($0)" }) + statements.append(contentsOf: inboundForeignKeyAdds) + statements.append(contentsOf: triggers) + statements.append(contentsOf: triggerModes) + statements.append(contentsOf: comments) + return statements + } + + var caveats: [String] { + dependentViewCaveat + invalidIndexCaveat + [ + String(localized: """ + Grants, row-level security policies, publications, extended statistics, partitioning and \ + table inheritance are not carried over. + """), + String(localized: """ + An identity column keeps its value, but its sequence is recreated under a new name because \ + the old table still holds the original name when the new one is created. + """) + ] + } + + /// PostgreSQL binds a view to the table's OID, not its name, so a view follows the rename + /// onto the staging table and then refuses to let it be dropped. Measured: the rebuild + /// stops at `DROP TABLE` with "cannot drop table … because other objects depend on it" and + /// the whole transaction rolls back. Naming them here is what stops that being discovered + /// three quarters of the way through the script. + private var dependentViewCaveat: [String] { + guard !dependentViews.isEmpty else { return [] } + return [ + String( + format: String( + localized: "Drop and recreate these views first, or the script stops when it drops the old table: %@." + ), + dependentViews.joined(separator: ", ") + ) + ] + } + + private var invalidIndexCaveat: [String] { + guard !invalidIndexes.isEmpty else { return [] } + return [ + String( + format: String(localized: "Invalid indexes are not recreated: %@."), + invalidIndexes.joined(separator: ", ") + ) + ] + } + + /// A new identity column starts its sequence at one, so it is wound forward to the rows the + /// copy just wrote. Without this the next insert collides with an existing key. + /// + /// `qualified` is already a quoted identifier pair, and `pg_get_serial_sequence` takes the + /// whole pair as one literal, so it is composed first and quoted once. A schema, table or + /// column name may legally contain an apostrophe or a backslash, and both land inside a + /// literal here. + private func identityResets(qualified: String, quote: (String) -> String) -> [String] { + let relationLiteral = PostgreSQLObjectQueries.quoteLiteral(qualified) + return identityColumns.map { column in + let columnLiteral = PostgreSQLObjectQueries.quoteLiteral(column) + return """ + SELECT setval( + pg_get_serial_sequence(\(relationLiteral), \(columnLiteral)), + GREATEST(COALESCE((SELECT MAX(\(quote(column))) FROM \(qualified)), 0), 1), + true + ) + """ + } + } +} diff --git a/Plugins/SQLExportPlugin/SQLExportPlugin.swift b/Plugins/SQLExportPlugin/SQLExportPlugin.swift index a4151b27c8..5b2b74f342 100644 --- a/Plugins/SQLExportPlugin/SQLExportPlugin.swift +++ b/Plugins/SQLExportPlugin/SQLExportPlugin.swift @@ -766,7 +766,8 @@ final class SQLExportPlugin: ObservableObject, ExportFormatPlugin, SettablePlugi to writer: SQLExportFileWriter, progress: PluginExportProgress ) async throws { - var emittedAnything = false + var emittedAnything = try await writeIndexPhase( + objects: sortedTables, dataSource: dataSource, to: writer, progress: progress) /// A driver that hands back the server's own CREATE statement has already declared these /// constraints inline, so adding them again names each one twice: MySQL and SQL Server /// reject the duplicate, and SQLite has no ADD CONSTRAINT to reject it with. The phase @@ -783,11 +784,6 @@ final class SQLExportPlugin: ObservableObject, ExportFormatPlugin, SettablePlugi } } - if try await writeIndexPhase( - objects: sortedTables, dataSource: dataSource, to: writer, progress: progress) { - emittedAnything = true - } - /// `setval` and `pg_get_serial_sequence` are PostgreSQL's own, so the sequence is only /// rewound on PostgreSQL. Every other engine reports its identity columns the same way and /// would take the statement as a syntax error. @@ -808,7 +804,7 @@ final class SQLExportPlugin: ObservableObject, ExportFormatPlugin, SettablePlugi } } - /// Writes each object's `CREATE INDEX` statements, after its rows and after the deferred + /// Writes each object's `CREATE INDEX` statements, after its rows and before the deferred /// foreign keys. /// /// That is where every engine's own dump tool puts them, and the reason is that a bulk load diff --git a/Plugins/TableProPluginKit/PluginIndexInfo.swift b/Plugins/TableProPluginKit/PluginIndexInfo.swift index 40da416732..96dfc6083a 100644 --- a/Plugins/TableProPluginKit/PluginIndexInfo.swift +++ b/Plugins/TableProPluginKit/PluginIndexInfo.swift @@ -33,6 +33,7 @@ public struct PluginIndexInfo: Codable, Sendable { /// `whereClause` as a `CREATE INDEX` on another schema has to write it, or nil to write /// `whereClause`. public let ddlWhereClause: String? + public let isValid: Bool? /// The signature published before key expressions, `INCLUDE` columns and the DDL spellings /// existed. Kept byte-identical and disfavoured so plugins built against an older PluginKit keep @@ -58,8 +59,10 @@ public struct PluginIndexInfo: Codable, Sendable { self.includedColumns = nil self.ddlMethodAndKeys = nil self.ddlWhereClause = nil + self.isValid = nil } + @_disfavoredOverload public init( name: String, columns: [String], @@ -84,5 +87,34 @@ public struct PluginIndexInfo: Codable, Sendable { self.includedColumns = includedColumns self.ddlMethodAndKeys = ddlMethodAndKeys self.ddlWhereClause = ddlWhereClause + self.isValid = nil + } + + public init( + name: String, + columns: [String], + isUnique: Bool = false, + isPrimary: Bool = false, + type: String = "BTREE", + columnPrefixes: [String: Int]? = nil, + whereClause: String? = nil, + expressions: [String]?, + includedColumns: [String]?, + ddlMethodAndKeys: String?, + ddlWhereClause: String?, + isValid: Bool? + ) { + self.name = name + self.columns = columns + self.isUnique = isUnique + self.isPrimary = isPrimary + self.type = type + self.columnPrefixes = columnPrefixes + self.whereClause = whereClause + self.expressions = expressions + self.includedColumns = includedColumns + self.ddlMethodAndKeys = ddlMethodAndKeys + self.ddlWhereClause = ddlWhereClause + self.isValid = isValid } } diff --git a/TablePro/Core/Compare/CompareMetadataService.swift b/TablePro/Core/Compare/CompareMetadataService.swift index 76be00236c..603509049c 100644 --- a/TablePro/Core/Compare/CompareMetadataService.swift +++ b/TablePro/Core/Compare/CompareMetadataService.swift @@ -32,6 +32,14 @@ internal struct TableStructureRead: Sendable { internal let failure: String? internal var snapshot: TableStructureSnapshot? { + snapshot(indexes: indexes) + } + + internal var sourceSnapshot: TableStructureSnapshot? { + snapshot(indexes: indexes.filter { $0.isValid != false }) + } + + private func snapshot(indexes: [PluginIndexInfo]) -> TableStructureSnapshot? { guard failure == nil else { return nil } return TableStructureSnapshot.from( table: table, columns: columns, indexes: indexes, foreignKeys: foreignKeys, metadata: metadata diff --git a/TablePro/Core/Compare/CompareRunner+Data.swift b/TablePro/Core/Compare/CompareRunner+Data.swift index dd594ab43e..1aaeb5a3b3 100644 --- a/TablePro/Core/Compare/CompareRunner+Data.swift +++ b/TablePro/Core/Compare/CompareRunner+Data.swift @@ -179,7 +179,7 @@ internal extension CompareRunner { session.dataPlans.map { ($0.id, $0) }, uniquingKeysWith: { first, _ in first } ) let sourceSnapshots = Dictionary( - sourceReads.compactMap { $0.snapshot }.map { ($0.qualifiedName, $0) }, + sourceReads.compactMap { $0.sourceSnapshot }.map { ($0.qualifiedName, $0) }, uniquingKeysWith: { first, _ in first } ) diff --git a/TablePro/Core/Compare/CompareRunner.swift b/TablePro/Core/Compare/CompareRunner.swift index aa10efc144..82f2a49693 100644 --- a/TablePro/Core/Compare/CompareRunner.swift +++ b/TablePro/Core/Compare/CompareRunner.swift @@ -299,7 +299,7 @@ internal struct CompareRunner { let targetTables = targetReads.filter { CompareTableKindClassifier.kind(of: $0.table) == .table } let sourceSnapshots = sourceTables.compactMap { - $0.snapshot?.droppingCatalogSpellings(ownSchema: context.source.schema) + $0.sourceSnapshot?.droppingCatalogSpellings(ownSchema: context.source.schema) } let targetSnapshots = targetTables.compactMap { $0.snapshot?.droppingCatalogSpellings(ownSchema: context.target.schema) diff --git a/TablePro/Core/MCP/MCPConnectionBridge+Schema.swift b/TablePro/Core/MCP/MCPConnectionBridge+Schema.swift index ed14adac40..6e8349ca2d 100644 --- a/TablePro/Core/MCP/MCPConnectionBridge+Schema.swift +++ b/TablePro/Core/MCP/MCPConnectionBridge+Schema.swift @@ -470,6 +470,7 @@ extension MCPConnectionBridge { "columns": .array(index.columns.map { .string($0) }), "is_unique": .bool(index.isUnique), "is_primary": .bool(index.isPrimary), + "is_valid": .bool(index.isValid), "type": .string(index.type) ] if let whereClause = index.whereClause, !whereClause.isEmpty { diff --git a/TablePro/Core/MCP/Protocol/Tools/MCPToolSchema.swift b/TablePro/Core/MCP/Protocol/Tools/MCPToolSchema.swift index 75fef39b23..9aa43dc52a 100644 --- a/TablePro/Core/MCP/Protocol/Tools/MCPToolSchema.swift +++ b/TablePro/Core/MCP/Protocol/Tools/MCPToolSchema.swift @@ -125,10 +125,11 @@ enum MCPToolSchema { "columns": array(String(localized: "Indexed columns in order"), of: stringItem), "is_unique": boolean(String(localized: "Whether the index enforces uniqueness")), "is_primary": boolean(String(localized: "Whether the index backs the primary key")), + "is_valid": boolean(String(localized: "False for an index the engine reports as invalid, which queries skip and exports leave out")), "type": string(String(localized: "Index type reported by the engine")), "where_clause": string(String(localized: "Partial index predicate")) ], - required: ["name", "columns", "is_unique", "is_primary", "type"], + required: ["name", "columns", "is_unique", "is_primary", "is_valid", "type"], allowsAdditional: true ) diff --git a/TablePro/Core/ObjectCopy/ObjectCopyPlanner.swift b/TablePro/Core/ObjectCopy/ObjectCopyPlanner.swift index 43a337d6f4..cdd1066a03 100644 --- a/TablePro/Core/ObjectCopy/ObjectCopyPlanner.swift +++ b/TablePro/Core/ObjectCopy/ObjectCopyPlanner.swift @@ -281,7 +281,7 @@ internal struct ObjectCopyPlanner { skipped.append(ObjectCopySkip(selection: selection, reason: Self.missingInSource)) continue } - guard read.snapshot != nil else { + guard read.sourceSnapshot != nil else { skipped.append(ObjectCopySkip(selection: selection, reason: read.failure ?? Self.unreadable)) continue } @@ -303,7 +303,7 @@ internal struct ObjectCopyPlanner { for selection in Self.orderedByDependency( scope.objects.filter { reads[$0] != nil }, reads: reads, effectiveSchema: sourceNamespace ) { - guard let read = reads[selection], let snapshot = read.snapshot else { continue } + guard let read = reads[selection], let snapshot = read.sourceSnapshot else { continue } let targetRead = match(selection, in: targetReads) let existsInTarget = targetRead != nil if existsInTarget, request.existingPolicy == .skip { diff --git a/TablePro/Core/Plugins/PluginManager.swift b/TablePro/Core/Plugins/PluginManager.swift index 25cf521337..5cffbe0e61 100644 --- a/TablePro/Core/Plugins/PluginManager.swift +++ b/TablePro/Core/Plugins/PluginManager.swift @@ -83,6 +83,9 @@ final class PluginManager: ObservableObject { /// the session already has open so nothing the app owns wraps a transaction the user opened. /// Both have defaults (nil and `.unknown`), so an already-built plugin keeps loading and /// answers them; the minimum stays where it is and no bulk re-release is needed. + /// + /// 33 also adds `isValid` to `PluginIndexInfo`, through an added initializer with the previous + /// full one disfavoured; nil means the driver does not report it. nonisolated static let currentPluginKitVersion = 33 /// Still 19, so every plugin already published for the previous release keeps loading. diff --git a/TablePro/Core/Plugins/PluginObjectMapping.swift b/TablePro/Core/Plugins/PluginObjectMapping.swift index c63586b328..3160f62264 100644 --- a/TablePro/Core/Plugins/PluginObjectMapping.swift +++ b/TablePro/Core/Plugins/PluginObjectMapping.swift @@ -48,7 +48,8 @@ extension IndexInfo { expressions: index.expressions, includedColumns: index.includedColumns, ddlMethodAndKeys: index.ddlMethodAndKeys, - ddlWhereClause: index.ddlWhereClause + ddlWhereClause: index.ddlWhereClause, + isValid: index.isValid ?? true ) } } diff --git a/TablePro/Models/Database/InvalidIndexNote.swift b/TablePro/Models/Database/InvalidIndexNote.swift new file mode 100644 index 0000000000..e2ab67fc48 --- /dev/null +++ b/TablePro/Models/Database/InvalidIndexNote.swift @@ -0,0 +1,21 @@ +// +// InvalidIndexNote.swift +// TablePro +// + +import Foundation + +internal struct InvalidIndexNote: Equatable { + internal let systemImage = "exclamationmark.triangle" + internal let text: String + + internal init?(indexes: [IndexInfo]) { + let names = indexes.filter { !$0.isValid }.map(\.name) + guard !names.isEmpty else { return nil } + let list = ListFormatter.localizedString(byJoining: names) + let format = names.count == 1 + ? String(localized: "%@ is invalid, so queries skip it and exports leave it out. Drop it, or rebuild it with REINDEX.") + : String(localized: "%@ are invalid, so queries skip them and exports leave them out. Drop them, or rebuild them with REINDEX.") + text = String(format: format, list) + } +} diff --git a/TablePro/Models/Query/QueryResult.swift b/TablePro/Models/Query/QueryResult.swift index b8c3deac6f..7732a8ae62 100644 --- a/TablePro/Models/Query/QueryResult.swift +++ b/TablePro/Models/Query/QueryResult.swift @@ -351,6 +351,7 @@ struct IndexInfo: Identifiable, Hashable { /// `PluginIndexInfo.ddlMethodAndKeys` says why they differ from the fields. let ddlMethodAndKeys: String? let ddlWhereClause: String? + let isValid: Bool init( name: String, @@ -363,7 +364,8 @@ struct IndexInfo: Identifiable, Hashable { expressions: [String]? = nil, includedColumns: [String]? = nil, ddlMethodAndKeys: String? = nil, - ddlWhereClause: String? = nil + ddlWhereClause: String? = nil, + isValid: Bool = true ) { self.name = name self.columns = columns @@ -376,6 +378,7 @@ struct IndexInfo: Identifiable, Hashable { self.includedColumns = includedColumns self.ddlMethodAndKeys = ddlMethodAndKeys self.ddlWhereClause = ddlWhereClause + self.isValid = isValid } } diff --git a/TablePro/Resources/Localizable.xcstrings b/TablePro/Resources/Localizable.xcstrings index efb0aa9aed..3b945184d8 100644 --- a/TablePro/Resources/Localizable.xcstrings +++ b/TablePro/Resources/Localizable.xcstrings @@ -182746,6 +182746,18 @@ }, "Concurrent refresh needs the view to be populated first. Refresh it once without that option." : { + }, + "%@ is invalid, so queries skip it and exports leave it out. Drop it, or rebuild it with REINDEX." : { + + }, + "%@ are invalid, so queries skip them and exports leave them out. Drop them, or rebuild them with REINDEX." : { + + }, + "Invalid indexes are not recreated: %@." : { + + }, + "False for an index the engine reports as invalid, which queries skip and exports leave out" : { + } }, "version" : "1.1" diff --git a/TablePro/Views/Structure/ConcurrentRefreshNoteView.swift b/TablePro/Views/Structure/StructureTabNoteView.swift similarity index 60% rename from TablePro/Views/Structure/ConcurrentRefreshNoteView.swift rename to TablePro/Views/Structure/StructureTabNoteView.swift index fa4c32cc28..e39455c4bd 100644 --- a/TablePro/Views/Structure/ConcurrentRefreshNoteView.swift +++ b/TablePro/Views/Structure/StructureTabNoteView.swift @@ -1,24 +1,26 @@ // -// ConcurrentRefreshNoteView.swift +// StructureTabNoteView.swift // TablePro // import SwiftUI -struct ConcurrentRefreshNoteView: View { - let note: MaterializedViewConcurrentRefreshNote +struct StructureTabNoteView: View { + let systemImage: String + let text: String + let identifier: String var body: some View { VStack(spacing: 0) { Divider() - Label(note.text, systemImage: note.systemImage) + Label(text, systemImage: systemImage) .font(.callout) .foregroundStyle(.secondary) .fixedSize(horizontal: false, vertical: true) .frame(maxWidth: .infinity, alignment: .leading) .padding(.horizontal, 8) .padding(.vertical, 6) - .accessibilityIdentifier("structure-concurrent-refresh-note") + .accessibilityIdentifier(identifier) } } } diff --git a/TablePro/Views/Structure/TableStructureView.swift b/TablePro/Views/Structure/TableStructureView.swift index d36071f83a..da1eca1c1c 100644 --- a/TablePro/Views/Structure/TableStructureView.swift +++ b/TablePro/Views/Structure/TableStructureView.swift @@ -367,10 +367,7 @@ struct TableStructureView: View { } } .safeAreaInset(edge: .bottom, spacing: 0) { - if objectKind == .materializedView, - let note = MaterializedViewConcurrentRefreshNote(state: session.concurrentRefresh) { - ConcurrentRefreshNoteView(note: note) - } + indexesTabNotes } case .foreignKeys: if shouldShowForeignKeysEmptyState { @@ -406,6 +403,26 @@ struct TableStructureView: View { } } + private var indexesTabNotes: some View { + VStack(spacing: 0) { + if let note = InvalidIndexNote(indexes: indexes) { + StructureTabNoteView( + systemImage: note.systemImage, + text: note.text, + identifier: "structure-invalid-index-note" + ) + } + if objectKind == .materializedView, + let note = MaterializedViewConcurrentRefreshNote(state: session.concurrentRefresh) { + StructureTabNoteView( + systemImage: note.systemImage, + text: note.text, + identifier: "structure-concurrent-refresh-note" + ) + } + } + } + /// Only offered where the add behind it can actually run. An engine that lists an object but /// cannot edit it shows the grid, so its real rows stay visible instead of being replaced by an /// empty state whose only affordance is disabled, and a view whose kind refuses the add never diff --git a/TableProTests/Core/Compare/TableStructureSnapshotIndexValidityTests.swift b/TableProTests/Core/Compare/TableStructureSnapshotIndexValidityTests.swift new file mode 100644 index 0000000000..f13686ecdf --- /dev/null +++ b/TableProTests/Core/Compare/TableStructureSnapshotIndexValidityTests.swift @@ -0,0 +1,135 @@ +// +// TableStructureSnapshotIndexValidityTests.swift +// TableProTests +// + +import Foundation +@testable import TablePro +import TableProPluginKit +import Testing + +@Suite("Invalid indexes in Compare and Object Copy") +struct TableStructureSnapshotIndexValidityTests { + private static let table = PluginTableInfo(name: "orders", type: "TABLE", schema: "public", comment: nil) + + private static func index(_ name: String, column: String = "code", valid: Bool?) -> PluginIndexInfo { + PluginIndexInfo( + name: name, columns: [column], isUnique: true, expressions: nil, includedColumns: nil, + ddlMethodAndKeys: nil, ddlWhereClause: nil, isValid: valid + ) + } + + private static func read(_ indexes: [PluginIndexInfo]) -> TableStructureRead { + TableStructureRead( + table: table, + columns: [ + PluginColumnInfo(name: "code", dataType: "integer"), + PluginColumnInfo(name: "day", dataType: "date") + ], + indexes: indexes, + foreignKeys: [], + metadata: nil, + failure: nil + ) + } + + private static func addedIndexes(_ changes: [SchemaChange]) -> [String] { + changes.compactMap { change in + guard case .addIndex(let index) = change else { return nil } + return index.name + } + } + + private static func deletedIndexes(_ changes: [SchemaChange]) -> [String] { + changes.compactMap { change in + guard case .deleteIndex(let index) = change else { return nil } + return index.name + } + } + + @Test("A source read leaves out an invalid index and keeps every other one") + func sourceSnapshotDropsInvalidIndexes() throws { + let read = Self.read([ + Self.index("orders_code_key", valid: false), + Self.index("orders_day_key", column: "day", valid: true), + Self.index("orders_legacy", column: "day", valid: nil) + ]) + let source = try #require(read.sourceSnapshot) + let whole = try #require(read.snapshot) + let sourceNames = source.indexes.map(\.name) + let wholeNames = whole.indexes.map(\.name) + #expect(sourceNames == ["orders_day_key", "orders_legacy"]) + #expect(wholeNames == ["orders_code_key", "orders_day_key", "orders_legacy"]) + } + + @Test("An invalid source index is not added to the target and not rendered in its definition") + func invalidSourceIndexIsNotSynced() throws { + let source = try #require(Self.read([Self.index("orders_code_key", valid: false)]).sourceSnapshot) + let target = try #require(Self.read([]).snapshot) + + let result = StructureDiffEngine().compareTable(source: source, target: target) + + let definition = TableDefinitionRenderer.lines(for: source) + #expect(Self.addedIndexes(result.changes).isEmpty) + #expect(!definition.contains { $0.contains("orders_code_key") }) + } + + @Test("A target's invalid twin of a source index is left alone") + func targetInvalidTwinIsNotReAdded() throws { + let source = try #require(Self.read([Self.index("orders_code_key", valid: true)]).sourceSnapshot) + let target = try #require(Self.read([Self.index("orders_code_key", valid: false)]).snapshot) + + let result = StructureDiffEngine().compareTable(source: source, target: target) + + #expect(Self.addedIndexes(result.changes).isEmpty) + #expect(Self.deletedIndexes(result.changes).isEmpty) + } + + @Test("A target's invalid index the source does not have is still offered for dropping") + func orphanTargetInvalidIndexIsDropped() throws { + let source = try #require(Self.read([]).sourceSnapshot) + let target = try #require(Self.read([Self.index("orders_code_key", valid: false)]).snapshot) + + let result = StructureDiffEngine().compareTable(source: source, target: target) + + #expect(Self.deletedIndexes(result.changes) == ["orders_code_key"]) + } + + @Test("Object Copy creates no invalid index on the target") + func objectCopyLeavesInvalidIndexOut() throws { + let read = Self.read([ + Self.index("orders_code_key", valid: false), + Self.index("orders_day_key", column: "day", valid: true) + ]) + let snapshot = try #require(read.sourceSnapshot) + let draft = ObjectCopyTableDraft( + selection: ObjectCopySelection(kind: .table, name: "orders", schema: "public"), + read: read, + snapshot: snapshot, + targetSnapshot: nil, + existsInTarget: false, + sourceSchema: "public", + targetSchema: "archive", + targetServerVersion: nil, + request: ObjectCopyRequest( + source: Self.endpoint(), + destination: .existing(Self.endpoint()), + objects: [], + content: .structure, + existingPolicy: .skip + ) + ) + let targetIndexes = draft.targetStructure.indexes.map(\.name) + #expect(targetIndexes == ["orders_day_key"]) + } + + private static func endpoint() -> DatabaseEndpoint { + DatabaseEndpoint( + scope: DatabaseScope(connectionId: UUID(), database: "shop", schema: "public"), + connectionName: "PostgreSQL", + databaseType: .postgresql, + safeModeLevel: .silent, + color: .blue + ) + } +} diff --git a/TableProTests/Core/MCP/Protocol/Tools/MCPIndexEncodingTests.swift b/TableProTests/Core/MCP/Protocol/Tools/MCPIndexEncodingTests.swift index abf350bab0..4c75e244fc 100644 --- a/TableProTests/Core/MCP/Protocol/Tools/MCPIndexEncodingTests.swift +++ b/TableProTests/Core/MCP/Protocol/Tools/MCPIndexEncodingTests.swift @@ -36,4 +36,24 @@ struct MCPIndexEncodingTests { #expect(encoded["included_columns"] == nil) #expect(encoded["columns"]?.arrayValue?.compactMap(\.stringValue) == ["email"]) } + + @Test("An invalid index says so, and every other index reads as valid") + func validityIsEncoded() { + let invalid = MCPConnectionBridge.encode(index: IndexInfo( + name: "users_email_key", columns: ["email"], isUnique: true, isPrimary: false, type: "BTREE", + isValid: false + )) + let valid = MCPConnectionBridge.encode(index: IndexInfo( + name: "users_email", columns: ["email"], isUnique: false, isPrimary: false, type: "BTREE" + )) + #expect(invalid["is_valid"] == .bool(false)) + #expect(valid["is_valid"] == .bool(true)) + } + + @Test("The published index schema declares is_valid as a required boolean") + func schemaDeclaresValidity() { + let properties = MCPToolSchema.indexDefinition["properties"] + #expect(properties?["is_valid"]?["type"] == .string("boolean")) + #expect(MCPToolSchema.indexDefinition["required"]?.arrayValue?.contains(.string("is_valid")) == true) + } } diff --git a/TableProTests/Core/Plugins/PluginIndexMappingCoverageTests.swift b/TableProTests/Core/Plugins/PluginIndexMappingCoverageTests.swift index dc9a26d75c..d397277b1a 100644 --- a/TableProTests/Core/Plugins/PluginIndexMappingCoverageTests.swift +++ b/TableProTests/Core/Plugins/PluginIndexMappingCoverageTests.swift @@ -37,4 +37,19 @@ struct PluginIndexMappingCoverageTests { #expect(problems.contains { $0.hasPrefix("ddlMethodAndKeys:") }) #expect(problems.contains { $0.hasPrefix("ddlWhereClause:") }) } + + @Test("A mapper that reads every index as valid is caught") + func droppedValidityIsCaught() { + let fixtures = PluginStructureFixtures.indexes + let mapped = fixtures.map { + IndexInfo( + name: $0.name, columns: $0.columns, isUnique: $0.isUnique, isPrimary: $0.isPrimary, type: $0.type, + columnPrefixes: $0.columnPrefixes, whereClause: $0.whereClause, expressions: $0.expressions, + includedColumns: $0.includedColumns, ddlMethodAndKeys: $0.ddlMethodAndKeys, + ddlWhereClause: $0.ddlWhereClause + ) + } + let problems = StructureMappingCoverage.carryProblems(from: fixtures, to: mapped, appOnly: ["id"]) + #expect(problems == ["isValid: PluginIndexInfo has false, IndexInfo has true"]) + } } diff --git a/TableProTests/Helpers/PluginStructureFixtures.swift b/TableProTests/Helpers/PluginStructureFixtures.swift index 7c0e870a5b..5071cc2d1a 100644 --- a/TableProTests/Helpers/PluginStructureFixtures.swift +++ b/TableProTests/Helpers/PluginStructureFixtures.swift @@ -17,9 +17,9 @@ enum PluginStructureFixtures { ] static let indexes: [PluginIndexInfo] = [ - index("a", unique: true, primary: false, prefix: 1), - index("b", unique: false, primary: true, prefix: 2), - index("c", unique: false, primary: false, prefix: 3) + index("a", unique: true, primary: false, valid: true, prefix: 1), + index("b", unique: false, primary: true, valid: true, prefix: 2), + index("c", unique: false, primary: false, valid: false, prefix: 3) ] static let foreignKeys: [PluginForeignKeyInfo] = ["a", "b", "c"].map(foreignKey) @@ -67,7 +67,13 @@ enum PluginStructureFixtures { ) } - private static func index(_ suffix: String, unique: Bool, primary: Bool, prefix: Int) -> PluginIndexInfo { + private static func index( + _ suffix: String, + unique: Bool, + primary: Bool, + valid: Bool, + prefix: Int + ) -> PluginIndexInfo { PluginIndexInfo( name: "name-\(suffix)", columns: ["columns-\(suffix)"], @@ -79,7 +85,8 @@ enum PluginStructureFixtures { expressions: ["expressions-\(suffix)"], includedColumns: ["includedColumns-\(suffix)"], ddlMethodAndKeys: "ddlMethodAndKeys-\(suffix)", - ddlWhereClause: "ddlWhereClause-\(suffix)" + ddlWhereClause: "ddlWhereClause-\(suffix)", + isValid: valid ) } diff --git a/TableProTests/Plugins/PluginIndexInfoCodableTests.swift b/TableProTests/Plugins/PluginIndexInfoCodableTests.swift index 709eceb356..00692e6548 100644 --- a/TableProTests/Plugins/PluginIndexInfoCodableTests.swift +++ b/TableProTests/Plugins/PluginIndexInfoCodableTests.swift @@ -26,6 +26,7 @@ struct PluginIndexInfoCodableTests { #expect(decoded.includedColumns == nil) #expect(decoded.ddlMethodAndKeys == nil) #expect(decoded.ddlWhereClause == nil) + #expect(decoded.isValid == nil) } @Test("The published initializer leaves the new fields nil") @@ -35,8 +36,16 @@ struct PluginIndexInfoCodableTests { #expect(info.includedColumns == nil) #expect(info.ddlMethodAndKeys == nil) #expect(info.ddlWhereClause == nil) + #expect(info.isValid == nil) #expect(info.whereClause == "(a > 0)") + let spelled = PluginIndexInfo( + name: "ix", columns: ["a"], expressions: nil, includedColumns: nil, + ddlMethodAndKeys: "USING btree (a)", ddlWhereClause: nil + ) + #expect(spelled.ddlMethodAndKeys == "USING btree (a)") + #expect(spelled.isValid == nil) + let definition = PluginIndexDefinition(name: "ix", columns: ["a"], indexType: "HASH") #expect(definition.expressions == nil) #expect(definition.includedColumns == nil) @@ -54,9 +63,11 @@ struct PluginIndexInfoCodableTests { expressions: ["lower(email)"], includedColumns: ["name"], ddlMethodAndKeys: "USING btree (tenant_id, lower(email)) INCLUDE (name)", - ddlWhereClause: "(m = 'a'::src.mood)" + ddlWhereClause: "(m = 'a'::src.mood)", + isValid: false ) let decoded = try JSONDecoder().decode(PluginIndexInfo.self, from: JSONEncoder().encode(original)) + #expect(decoded.isValid == false) #expect(decoded.expressions == ["lower(email)"]) #expect(decoded.includedColumns == ["name"]) #expect(decoded.ddlMethodAndKeys == "USING btree (tenant_id, lower(email)) INCLUDE (name)") diff --git a/TableProTests/Plugins/PostgreSQLIndexReplayTests.swift b/TableProTests/Plugins/PostgreSQLIndexReplayTests.swift index 3ad184f8bf..d467f2b4fc 100644 --- a/TableProTests/Plugins/PostgreSQLIndexReplayTests.swift +++ b/TableProTests/Plugins/PostgreSQLIndexReplayTests.swift @@ -24,14 +24,45 @@ struct PostgreSQLIndexKeyPartTests { type: String = "btree", predicate: String? = nil, expressions: String = "{}", - included: String = "{}" + included: String = "{}", + valid: String = "t" ) -> [PluginCellValue] { [ .text(table), .text(name), .text(columns), .text(unique ? "true" : "false"), .text("false"), - .text(type), predicate.map(PluginCellValue.text) ?? .null, .text(expressions), .text(included) + .text(type), predicate.map(PluginCellValue.text) ?? .null, .text(expressions), .text(included), + .text(valid) ] } + @Test("Validity is read with the rule a dump applies, so an index on a partitioned table counts as valid") + func validityUsesTheDumpRule() { + for table in ["users", nil] { + let sql = PostgreSQLIndexQueries.indexList(schema: "public", table: table, capabilities: Self.modern) + #expect(sql.contains("((ix.indisvalid OR t.relkind = 'p') AND ix.indisready) AS is_valid")) + #expect(sql.contains("JOIN pg_catalog.pg_class t ON t.oid = ix.indrelid")) + } + } + + @Test("An invalid index decodes as invalid and a valid one as valid") + func validityIsDecoded() throws { + let invalid = try #require(PostgreSQLIndexRow.index( + from: Self.row(name: "users_email_key", columns: "{email}", unique: true, valid: "f"), ddl: [:] + )) + let valid = try #require(PostgreSQLIndexRow.index( + from: Self.row(name: "users_email", columns: "{email}"), ddl: [:] + )) + #expect(invalid.index.isValid == false) + #expect(valid.index.isValid == true) + } + + @Test("A row with no validity column reports none") + func missingValidityIsNotReported() throws { + let decoded = try #require(PostgreSQLIndexRow.index( + from: Array(Self.row(name: "users_email", columns: "{email}").prefix(9)), ddl: [:] + )) + #expect(decoded.index.isValid == nil) + } + @Test("Key parts stop at indnkeyatts from PostgreSQL 11, so INCLUDE columns are read separately") func keyCountFollowsCoveringIndexes() { let modern = PostgreSQLIndexQueries.indexList(schema: "public", table: nil, capabilities: Self.modern) diff --git a/TableProTests/Plugins/PostgreSQLLegacyCatalogQueryTests.swift b/TableProTests/Plugins/PostgreSQLLegacyCatalogQueryTests.swift index 9339b63806..dce33ad3ec 100644 --- a/TableProTests/Plugins/PostgreSQLLegacyCatalogQueryTests.swift +++ b/TableProTests/Plugins/PostgreSQLLegacyCatalogQueryTests.swift @@ -30,6 +30,8 @@ struct PostgreSQLLegacyCatalogQueryTests { PostgreSQLIndexQueries.indexList(schema: "public", table: nil, capabilities: legacy), PostgreSQLIndexQueries.indexDDLQuery(schema: "public", table: "orders"), PostgreSQLIndexQueries.indexDDLQuery(schema: "public", table: nil), + PostgreSQLIndexQueries.standaloneIndexQuery(schema: "public", table: "orders"), + PostgreSQLSchemaQueries.tableDDLConstraintsQuery(schema: "public", table: "orders"), PostgreSQLObjectQueries.triggerList(schema: "public", table: nil), PostgreSQLObjectQueries.userDefinedTypeList(schema: "public", identity: nil, capabilities: legacy), PostgreSQLSchemaQueries.checkConstraintsQuery(schema: "public", table: "t"), @@ -55,6 +57,8 @@ struct PostgreSQLLegacyCatalogQueryTests { PostgreSQLObjectQueries.triggerList(schema: hostile, table: hostile), PostgreSQLObjectQueries.routineList(schema: hostile, capabilities: Self.legacy), PostgreSQLSchemaQueries.checkConstraintsQuery(schema: hostile, table: hostile), + PostgreSQLSchemaQueries.tableDDLConstraintsQuery(schema: hostile, table: hostile), + PostgreSQLIndexQueries.standaloneIndexQuery(schema: hostile, table: hostile), PostgreSQLSchemaQueries.fetchTables( schema: hostile, includeMaterializedViews: true, includeForeignTables: true ) diff --git a/TableProTests/Plugins/PostgreSQLLiteralQuotingTests.swift b/TableProTests/Plugins/PostgreSQLLiteralQuotingTests.swift index 308680033c..3723af7e0c 100644 --- a/TableProTests/Plugins/PostgreSQLLiteralQuotingTests.swift +++ b/TableProTests/Plugins/PostgreSQLLiteralQuotingTests.swift @@ -42,6 +42,8 @@ struct PostgreSQLLiteralQuotingTests { PostgreSQLObjectQueries.userDefinedTypeList(schema: schema, identity: nil, capabilities: caps), PostgreSQLIndexQueries.indexList(schema: schema, table: table, capabilities: caps), PostgreSQLIndexQueries.indexDDLQuery(schema: schema, table: table), + PostgreSQLIndexQueries.standaloneIndexQuery(schema: schema, table: table), + PostgreSQLSchemaQueries.tableDDLConstraintsQuery(schema: schema, table: table), PostgreSQLForeignKeyQueries.foreignKeyList(schema: schema, table: table, capabilities: caps), PostgreSQLSequenceQueries.sequenceList( schema: schema, dependentOnTable: table, source: .sequencesView diff --git a/TableProTests/Plugins/PostgreSQLStandaloneIndexQueryTests.swift b/TableProTests/Plugins/PostgreSQLStandaloneIndexQueryTests.swift new file mode 100644 index 0000000000..a6faa61522 --- /dev/null +++ b/TableProTests/Plugins/PostgreSQLStandaloneIndexQueryTests.swift @@ -0,0 +1,71 @@ +// +// PostgreSQLStandaloneIndexQueryTests.swift +// TableProTests +// + +import Foundation +import TableProPluginKit +import Testing + +@Suite("PostgreSQL standalone index read") +struct PostgreSQLStandaloneIndexQueryTests { + private static let sql = PostgreSQLIndexQueries.standaloneIndexQuery(schema: "shop", table: "orders") + + @Test("An index is restorable under pg_dump's rule: valid, or on a partitioned table, and ready") + func restorableFollowsPgDump() { + #expect(Self.sql.contains("((ix.indisvalid OR t.relkind = 'p') AND ix.indisready) AS is_restorable")) + } + + @Test("Only an index a primary key, unique or exclusion constraint of this table owns is left to the table DDL") + func constraintOwnershipNamesTheTableAndTheKind() { + #expect(Self.sql.contains("con.conrelid = ix.indrelid")) + #expect(Self.sql.contains("con.conindid = ix.indexrelid")) + #expect(Self.sql.contains("con.contype IN ('p', 'u', 'x')")) + } + + @Test("The read is scoped to one table in one schema and ordered by name") + func scopedToOneTable() { + #expect(Self.sql.contains("WHERE n.nspname = 'shop'")) + #expect(Self.sql.contains("AND t.relname = 'orders'")) + #expect(Self.sql.contains("pg_catalog.pg_get_indexdef(ix.indexrelid) AS definition")) + #expect(Self.sql.hasSuffix("ORDER BY i.relname")) + } + + @Test("Restorable definitions are kept in order and invalid indexes are named apart") + func rowsSplitByRestorability() { + let indexes = PostgreSQLIndexQueries.standaloneIndexes(rows: [ + [.text("orders_code_idx"), .text("CREATE INDEX orders_code_idx ON shop.orders USING btree (code)"), .text("t")], + [.text("orders_code_key"), .text("CREATE UNIQUE INDEX orders_code_key ON shop.orders USING btree (code)"), .text("f")], + [.text("orders_day_idx"), .text("CREATE INDEX orders_day_idx ON shop.orders USING btree (day)"), .text("t")], + [.text("orders_code_idx_ccnew"), .text("CREATE INDEX orders_code_idx_ccnew ON shop.orders USING btree (code)"), .text("f")] + ]) + #expect(indexes.definitions == [ + "CREATE INDEX orders_code_idx ON shop.orders USING btree (code)", + "CREATE INDEX orders_day_idx ON shop.orders USING btree (day)" + ]) + #expect(indexes.invalidNames == ["orders_code_key", "orders_code_idx_ccnew"]) + } + + @Test("A row with no name or no definition is skipped") + func incompleteRowsAreSkipped() { + let indexes = PostgreSQLIndexQueries.standaloneIndexes(rows: [ + [.null, .text("CREATE INDEX a ON shop.orders USING btree (a)"), .text("t")], + [.text("b"), .null, .text("f")], + [.text("c"), .text(""), .text("t")] + ]) + #expect(indexes.definitions.isEmpty) + #expect(indexes.invalidNames.isEmpty) + } +} + +@Suite("PostgreSQL table DDL constraints read") +struct PostgreSQLTableDDLConstraintsQueryTests { + @Test("Exclusion constraints are written with the table, beside primary key, unique and check constraints") + func exclusionConstraintsAreIncluded() { + let sql = PostgreSQLSchemaQueries.tableDDLConstraintsQuery(schema: "shop", table: "bookings") + #expect(sql.contains("con.contype IN ('p', 'u', 'c', 'x')")) + #expect(sql.contains("CASE con.contype WHEN 'p' THEN 0 WHEN 'u' THEN 1 WHEN 'c' THEN 2 ELSE 3 END")) + #expect(sql.contains("c.relname = 'bookings'")) + #expect(sql.contains("n.nspname = 'shop'")) + } +} diff --git a/TableProTests/Plugins/PostgreSQLTableRebuildTests.swift b/TableProTests/Plugins/PostgreSQLTableRebuildTests.swift new file mode 100644 index 0000000000..b4bbaef378 --- /dev/null +++ b/TableProTests/Plugins/PostgreSQLTableRebuildTests.swift @@ -0,0 +1,85 @@ +// +// PostgreSQLTableRebuildTests.swift +// TableProTests +// + +import Foundation +import Testing + +@Suite("PostgreSQL column reorder rebuild script") +struct PostgreSQLTableRebuildTests { + private static let capabilities = PostgreSQLCapabilities(serverVersion: 170_011) + + private static func quote(_ identifier: String) -> String { + "\"\(identifier.replacingOccurrences(of: "\"", with: "\"\""))\"" + } + + private static func rebuild() -> PostgreSQLTableRebuild { + var parts = PostgreSQLTableRebuild() + parts.columnNames = ["id", "code"] + parts.columnDefinitions = ["id": "id integer NOT NULL", "code": "code integer"] + parts.copyableColumns = ["id", "code"] + parts.tableConstraints = ["CONSTRAINT parent_pkey PRIMARY KEY (id)"] + parts.indexes = ["CREATE UNIQUE INDEX parent_code_idx ON shop.parent USING btree (code)"] + parts.outboundForeignKeys = ["CONSTRAINT parent_self_fkey FOREIGN KEY (id) REFERENCES shop.parent(code)"] + parts.inboundForeignKeyDrops = ["ALTER TABLE shop.child DROP CONSTRAINT child_code_fkey"] + parts.inboundForeignKeyAdds = [ + "ALTER TABLE shop.child ADD CONSTRAINT child_code_fkey FOREIGN KEY (code) REFERENCES shop.parent(code)" + ] + parts.triggers = ["CREATE TRIGGER parent_audit AFTER INSERT ON shop.parent FOR EACH ROW EXECUTE FUNCTION audit()"] + return parts + } + + private static func statements(_ parts: PostgreSQLTableRebuild) -> [String] { + parts.statements( + table: "parent", schema: "shop", desiredOrder: ["code", "id"], quote: quote, capabilities: capabilities + ) + } + + private static func position(of needle: String, in statements: [String]) throws -> Int { + try #require(statements.firstIndex { $0.contains(needle) }, "\(needle) missing from the script") + } + + @Test("Indexes come back before any foreign key, which may reference a unique index rather than a constraint") + func indexesPrecedeForeignKeys() throws { + let statements = Self.statements(Self.rebuild()) + let index = try Self.position(of: "CREATE UNIQUE INDEX parent_code_idx", in: statements) + let outbound = try Self.position(of: "ADD CONSTRAINT parent_self_fkey", in: statements) + let inbound = try Self.position(of: "ADD CONSTRAINT child_code_fkey", in: statements) + #expect(index < outbound) + #expect(index < inbound) + } + + @Test("Indexes come back after the old table is gone and after the table's own constraints") + func indexesFollowTheDropAndTheConstraints() throws { + let statements = Self.statements(Self.rebuild()) + let index = try Self.position(of: "CREATE UNIQUE INDEX parent_code_idx", in: statements) + let drop = try Self.position(of: #"DROP TABLE "shop"."parent_tablepro_reorder""#, in: statements) + let primaryKey = try Self.position(of: "ADD CONSTRAINT parent_pkey", in: statements) + let trigger = try Self.position(of: "CREATE TRIGGER parent_audit", in: statements) + #expect(drop < index) + #expect(primaryKey < index) + #expect(index < trigger) + } + + @Test("The rebuilt table declares its columns in the order asked for") + func columnsFollowTheDesiredOrder() throws { + let statements = Self.statements(Self.rebuild()) + let create = try #require(statements.first { $0.hasPrefix(#"CREATE TABLE "shop"."parent""#) }) + #expect(create == "CREATE TABLE \"shop\".\"parent\" (\n code integer,\n id integer NOT NULL\n)") + } + + @Test("Invalid indexes are named in the caveats and never recreated") + func invalidIndexesAreNamed() { + var parts = Self.rebuild() + parts.invalidIndexes = ["parent_code_key", "parent_code_idx_ccnew"] + #expect(parts.caveats.contains { $0.contains("parent_code_key, parent_code_idx_ccnew") }) + #expect(!Self.statements(parts).contains { $0.contains("parent_code_key") }) + } + + @Test("A table with no invalid index adds no caveat for them") + func noInvalidIndexNoCaveat() { + let caveats = Self.rebuild().caveats + #expect(caveats.count == 2) + } +} diff --git a/TableProTests/Plugins/SQLExportIndexPhaseTests.swift b/TableProTests/Plugins/SQLExportIndexPhaseTests.swift index 9388fddfe5..2e57a03b19 100644 --- a/TableProTests/Plugins/SQLExportIndexPhaseTests.swift +++ b/TableProTests/Plugins/SQLExportIndexPhaseTests.swift @@ -13,15 +13,18 @@ struct SQLExportIndexPhaseTests { let databaseTypeId: String let indexDDL: [String: [String]] let failingTables: Set + let foreignKeys: [String: [PluginForeignKeyInfo]] init( databaseTypeId: String = "PostgreSQL", indexDDL: [String: [String]] = [:], - failingTables: Set = [] + failingTables: Set = [], + foreignKeys: [String: [PluginForeignKeyInfo]] = [:] ) { self.databaseTypeId = databaseTypeId self.indexDDL = indexDDL self.failingTables = failingTables + self.foreignKeys = foreignKeys } func streamRows(table: String, databaseName: String) -> AsyncThrowingStream { @@ -56,6 +59,10 @@ struct SQLExportIndexPhaseTests { } func fetchApproximateRowCount(table: String, databaseName: String) async throws -> Int? { nil } + + func fetchAllForeignKeys(databaseName: String) async throws -> [String: [PluginForeignKeyInfo]] { + foreignKeys + } } private enum StubError: Error { @@ -101,8 +108,8 @@ struct SQLExportIndexPhaseTests { #expect(try offset(of: "INSERT INTO", in: dump) < offset(of: "CREATE INDEX", in: dump)) } - @Test("Index statements are written after the deferred foreign keys") - func indexesFollowDeferredConstraints() async throws { + @Test("Index statements are written after every table is created") + func indexesFollowTheTables() async throws { let source = StubExportDataSource( indexDDL: ["orders": ["CREATE INDEX idx_orders_day ON orders (day)"]]) @@ -111,6 +118,24 @@ struct SQLExportIndexPhaseTests { #expect(try offset(of: "CREATE TABLE orders", in: dump) < offset(of: "CREATE INDEX", in: dump)) } + @Test("A unique index is written before the deferred foreign key that references it, as pg_dump orders them") + func indexesPrecedeDeferredForeignKeys() async throws { + let source = StubExportDataSource( + indexDDL: ["parent": ["CREATE UNIQUE INDEX parent_code_idx ON parent (code)"]], + foreignKeys: ["child": [PluginForeignKeyInfo( + name: "child_code_fkey", column: "code", referencedTable: "parent", referencedColumn: "code" + )]] + ) + + let (dump, _) = try await runExport(tables: [table("child"), table("parent")], dataSource: source) + + let index = try offset(of: "CREATE UNIQUE INDEX parent_code_idx", in: dump) + let foreignKey = try offset(of: "ADD CONSTRAINT \"child_code_fkey\"", in: dump) + let lastRow = try offset(of: "INSERT INTO \"parent\"", in: dump) + #expect(lastRow < index) + #expect(index < foreignKey) + } + @Test("Only the statements the driver reported are written, in the order it reported them") func statementsAreWrittenVerbatim() async throws { let source = StubExportDataSource(indexDDL: ["orders": [ diff --git a/TableProTests/Views/Structure/InvalidIndexNoteTests.swift b/TableProTests/Views/Structure/InvalidIndexNoteTests.swift new file mode 100644 index 0000000000..4663f9e460 --- /dev/null +++ b/TableProTests/Views/Structure/InvalidIndexNoteTests.swift @@ -0,0 +1,46 @@ +// +// InvalidIndexNoteTests.swift +// TableProTests +// + +import Foundation +@testable import TablePro +import Testing + +@Suite("Invalid index note") +struct InvalidIndexNoteTests { + private static func index(_ name: String, valid: Bool = true) -> IndexInfo { + IndexInfo(name: name, columns: ["code"], isUnique: false, isPrimary: false, type: "BTREE", isValid: valid) + } + + @Test("No note when every index is valid") + func noNoteWhenAllValid() { + #expect(InvalidIndexNote(indexes: [Self.index("orders_pkey"), Self.index("orders_code_idx")]) == nil) + #expect(InvalidIndexNote(indexes: []) == nil) + } + + @Test("The note names the invalid index and none of the valid ones") + func namesOnlyTheInvalidIndex() throws { + let note = try #require(InvalidIndexNote(indexes: [ + Self.index("orders_code_idx"), + Self.index("orders_code_key", valid: false) + ])) + #expect(note.text.contains("orders_code_key")) + #expect(!note.text.contains("orders_code_idx")) + #expect(note.text.contains("orders_code_key is invalid")) + #expect(note.text.contains("REINDEX")) + #expect(note.systemImage == "exclamationmark.triangle") + } + + @Test("Several invalid indexes are listed in one note") + func listsEveryInvalidIndex() throws { + let note = try #require(InvalidIndexNote(indexes: [ + Self.index("orders_email_key", valid: false), + Self.index("orders_pkey"), + Self.index("orders_code_idx_ccnew", valid: false) + ])) + #expect(note.text.contains("orders_email_key")) + #expect(note.text.contains("orders_code_idx_ccnew are invalid")) + #expect(!note.text.contains("orders_pkey")) + } +} diff --git a/docs/databases/postgresql.mdx b/docs/databases/postgresql.mdx index e5a9bbb6c0..fc918078c4 100644 --- a/docs/databases/postgresql.mdx +++ b/docs/databases/postgresql.mdx @@ -114,6 +114,10 @@ An SQL export writes those statements back for tables, views and materialized vi The Structure tab of a view, a materialized view or a foreign table offers only the edits PostgreSQL takes on that kind of object, which is fewer than a table's and different for each. See [Table Structure](/features/table-structure#what-each-object-accepts). +## Invalid indexes + +A `CREATE INDEX CONCURRENTLY` or `REINDEX CONCURRENTLY` that fails or is cancelled leaves an invalid index on the table. The **Indexes** tab names it, and exports leave it out as `pg_dump` does. [Table Structure](/features/table-structure#invalid-indexes) covers dropping or rebuilding it. + ## Cross-database tabs PostgreSQL has no in-place `USE`, so a tab bound to a database other than the connection's active one runs on a second connection opened for that database. It shares no temp tables, session variables, or open transaction with the query editor on the main connection: keep a multi-statement transaction or a `CREATE TEMP TABLE` on tabs bound to one database. Binding itself is on [Tabs](/features/tabs#where-a-tab-points). diff --git a/docs/external-api/mcp-tools.mdx b/docs/external-api/mcp-tools.mdx index 56e03bf343..e7c49aad02 100644 --- a/docs/external-api/mcp-tools.mdx +++ b/docs/external-api/mcp-tools.mdx @@ -78,7 +78,7 @@ The two `switch_` tools move what the user sees in TablePro. To run one statemen | `get_table_statistics` | `connection_id`, `table` (`database`, `schema`) | `table` plus whatever the engine records: `data_size_bytes`, `index_size_bytes`, `total_size_bytes`, `average_row_length`, `row_count`, `comment`, `engine`, `collation`, `created_at`, `updated_at` | | `get_database_statistics` | `connection_id` (`database`) | `databases[]` (`name`, `table_count`, `size_bytes`, `is_system_database`), sorted by name | -`describe_table` is the one call to make before writing SQL against an unfamiliar table. A column always carries `name`, `data_type`, `is_nullable` and `is_primary_key`, and picks up `is_generated`, `default_value`, `extra`, `comment` and `allowed_values` where the engine reports them; indexes and foreign keys work the same way. +`describe_table` is the one call to make before writing SQL against an unfamiliar table. A column always carries `name`, `data_type`, `is_nullable` and `is_primary_key`, and picks up `is_generated`, `default_value`, `extra`, `comment` and `allowed_values` where the engine reports them; indexes and foreign keys work the same way. An index always carries `name`, `columns`, `is_unique`, `is_primary`, `is_valid` and `type`. `is_valid` is `false` for a PostgreSQL index whose build did not finish, such as one a failed `CREATE INDEX CONCURRENTLY` left behind: queries skip it and `get_table_ddl` leaves it out. `include_row_counts` defaults to `false`. Counts come from engine statistics rather than `COUNT(*)`, and are fetched one table at a time, so `list_tables` skips them when the schema holds more than 200 objects. diff --git a/docs/features/import-export.mdx b/docs/features/import-export.mdx index aa85b44cbd..6d15cda653 100644 --- a/docs/features/import-export.mdx +++ b/docs/features/import-export.mdx @@ -124,7 +124,7 @@ As SQL, a results export writes `INSERT` statements only. A result set is the ou Structure (CREATE TABLE), Drop (DROP TABLE IF EXISTS), and Data (INSERT statements) are per-table checkboxes, and a multi-table export can mix them. - Structure carries the table's indexes. They are written after the rows, next to the deferred foreign keys, which is where `pg_dump` and `sqlite3 .dump` put them: a bulk load into an indexed table pays to maintain an index the restore is about to build anyway. On MySQL, MariaDB, ClickHouse, Trino and CockroachDB the server writes them inside `CREATE TABLE`, so they arrive with the table instead. A materialized view's indexes follow the view. + Structure carries the table's indexes. They are written after the rows and before the deferred foreign keys, the order `pg_dump` uses, so the rows load without index upkeep and a foreign key that references a unique index finds it in place. On MySQL, MariaDB, ClickHouse, Trino and CockroachDB the server writes them inside `CREATE TABLE`, so they arrive with the table instead. A materialized view's indexes follow the view. An invalid PostgreSQL index, which a failed `CREATE INDEX CONCURRENTLY` leaves behind, is left out, as `pg_dump` leaves it out. On PostgreSQL, Structure carries comments as well. Each table, view and materialized view gets its own `COMMENT ON` and one `COMMENT ON COLUMN` per commented column, directly after its `CREATE`. A foreign table is the exception: its comments are dropped, because the dump writes `CREATE TABLE` for it and PostgreSQL then refuses `COMMENT ON FOREIGN TABLE`. Where the server's own `CREATE TABLE` already carries the comment, MySQL and MariaDB among them, it arrives with the table instead. diff --git a/docs/features/table-structure.mdx b/docs/features/table-structure.mdx index 0e82447934..e699c41a7a 100644 --- a/docs/features/table-structure.mdx +++ b/docs/features/table-structure.mdx @@ -107,6 +107,12 @@ Everything that runs goes to query history rather than the change queue. | **Unique** | Whether the index enforces uniqueness | | **Condition** | `WHERE` predicate for partial indexes (PostgreSQL, SQLite, libSQL, Cloudflare D1) | +### Invalid indexes + +A PostgreSQL `CREATE INDEX CONCURRENTLY` or `REINDEX CONCURRENTLY` that fails or is cancelled leaves an invalid index behind. It keeps its row in the list, and a line under the list names it. Queries skip it, but every write still updates it, and an invalid unique index still refuses duplicates. Delete the row and save to drop it, or run `REINDEX INDEX` on it in the SQL editor to build it again. + +The DDL tab, SQL exports and **Copy To** leave an invalid index out, the same as `pg_dump`, and [Compare & Sync](/features/compare-sync) never creates one on the target. An index on a partitioned table that is still waiting for a partition's index to be attached is not flagged, and exports keep it. + ### Materialized views A materialized view's indexes list, add and drop the same way a table's do. The line under the list says whether **Refresh Materialized View** can refresh it concurrently, which keeps other sessions reading the view while it runs: diff --git a/project.yml b/project.yml index b7422842dd..b2917646b4 100644 --- a/project.yml +++ b/project.yml @@ -592,6 +592,7 @@ targets: - Plugins/PostgreSQLDriverPlugin/PostgreSQLSequenceReference.swift - Plugins/PostgreSQLDriverPlugin/PostgreSQLSystemDatabases.swift - Plugins/PostgreSQLDriverPlugin/PostgreSQLTableListingLadder.swift + - Plugins/PostgreSQLDriverPlugin/PostgreSQLTableRebuild.swift - Plugins/PostgreSQLDriverPlugin/PostgreSQLTextArray.swift - Plugins/PostgreSQLDriverPlugin/PostgreSQLTransactionStatement.swift - Plugins/PostgreSQLDriverPlugin/PostgreSQLTypeDefinition.swift diff --git a/scripts/check-postgres-index-dump-parity.sh b/scripts/check-postgres-index-dump-parity.sh new file mode 100755 index 0000000000..b872e63c10 --- /dev/null +++ b/scripts/check-postgres-index-dump-parity.sh @@ -0,0 +1,203 @@ +#!/usr/bin/env bash +# +# Check the PostgreSQL table and index DDL against pg_dump on a real server. +# +# A PostgreSQL dump writes a table's constraints inside its CREATE TABLE and every other index as a +# CREATE INDEX of its own. Both halves are catalog predicates copied by hand from pg_dump's +# getIndexes and getConstraints, and they have to agree with it and with each other: an invalid +# index a failed CREATE INDEX CONCURRENTLY left behind made the restore fail on its duplicates, a +# unique index a foreign key depends on went missing, and an exclusion constraint was in neither +# half. +# +# This builds every one of those shapes, asks the same predicates the plugin uses, runs pg_dump -s +# on each table, and compares the index names and the constraint names on both sides. +# +# Usage: +# scripts/check-postgres-index-dump-parity.sh [host] [port] [user] +# +# Needs psql, pg_dump at least as new as the server, and a PostgreSQL 11 or newer the user may +# create a database on. Takes about ten seconds, most of it waiting out two cancelled concurrent +# builds. Exits non-zero on a disagreement. + +set -uo pipefail + +HOST="${1:-127.0.0.1}" +PORT="${2:-5432}" +USER_NAME="${3:-postgres}" +PLUGIN="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/Plugins/PostgreSQLDriverPlugin" +INDEX_SOURCE="$PLUGIN/PostgreSQLIndexQueries.swift" +CONSTRAINT_SOURCE="$PLUGIN/PostgreSQLSchemaQueries.swift" +DATABASE="tablepro_index_dump_parity_check" + +for tool in psql pg_dump; do + command -v "$tool" > /dev/null || { + echo "$tool not found" >&2 + exit 3 + } +done +for source in "$INDEX_SOURCE" "$CONSTRAINT_SOURCE"; do + [ -f "$source" ] || { + echo "not found: $source" >&2 + exit 3 + } +done + +export PGOPTIONS="-c client_min_messages=warning" + +psql_do() { + psql -X -q -h "$HOST" -p "$PORT" -U "$USER_NAME" -d "$1" -v ON_ERROR_STOP=1 "${@:2}" +} + +if ! psql_do postgres -Atc "SELECT 1" > /dev/null 2>&1; then + echo "no PostgreSQL at $HOST:$PORT as $USER_NAME" >&2 + exit 3 +fi + +# The predicates as the plugin builds them, read out of the source so the two cannot drift. The +# Swift side interpolates the schema and the table; here they are bound per table instead. +RESTORABLE="(ix.indisvalid OR t.relkind = 'p') AND ix.indisready" +check_fragment() { + grep -qF "$2" "$1" || { + echo "FAIL: $1 no longer holds $2; update this script with the predicate" >&2 + exit 1 + } +} +check_fragment "$INDEX_SOURCE" "$RESTORABLE" +check_fragment "$INDEX_SOURCE" "con.conrelid = ix.indrelid" +check_fragment "$INDEX_SOURCE" "con.conindid = ix.indexrelid" +check_fragment "$INDEX_SOURCE" "con.contype IN ('p', 'u', 'x')" +check_fragment "$CONSTRAINT_SOURCE" "con.contype IN ('p', 'u', 'c', 'x')" + +VERSION="$(psql_do postgres -Atc "SHOW server_version")" +echo "Checking table and index DDL against $(pg_dump --version) and PostgreSQL $VERSION at $HOST:$PORT" + +psql_do postgres -c "DROP DATABASE IF EXISTS $DATABASE" > /dev/null +psql_do postgres -c "CREATE DATABASE $DATABASE" > /dev/null +trap 'psql -X -q -h "$HOST" -p "$PORT" -U "$USER_NAME" -d postgres -c "DROP DATABASE IF EXISTS $DATABASE" > /dev/null 2>&1' EXIT + +psql_do "$DATABASE" > /dev/null <<'SQL' +CREATE TABLE t (id int PRIMARY KEY, email text, code int); +INSERT INTO t VALUES (1, 'a@x', 1), (2, 'a@x', 2), (3, 'b@x', 3); +CREATE INDEX t_code_idx ON t (code); + +CREATE TABLE parent (id int, code int); +CREATE UNIQUE INDEX parent_code_idx ON parent (code); +CREATE TABLE child (code int REFERENCES parent (code)); + +CREATE TABLE s (id int, v int CONSTRAINT s_v_idx CHECK (v > 0), w int UNIQUE); +CREATE INDEX s_v_idx ON s (v); + +CREATE TABLE ex (r int4range, EXCLUDE USING gist (r WITH &&)); + +CREATE TABLE p (a int, b int) PARTITION BY RANGE (a); +CREATE TABLE p1 PARTITION OF p FOR VALUES FROM (0) TO (10); +CREATE TABLE p2 PARTITION OF p FOR VALUES FROM (10) TO (20); +CREATE INDEX p_a_idx ON ONLY p (a); +CREATE INDEX p1_a_idx ON p1 (a); +ALTER INDEX p_a_idx ATTACH PARTITION p1_a_idx; +CREATE INDEX p_b_idx ON p (b); +SQL + +# A unique build over duplicate rows fails and leaves an index that is neither valid nor ready. +psql_do "$DATABASE" -c "CREATE UNIQUE INDEX CONCURRENTLY t_email_key ON t (email)" > /dev/null 2>&1 + +# A concurrent build or rebuild cancelled while it waits out an older snapshot leaves an index +# that is ready but not valid. +cancel_while_waiting() { + psql -X -q -h "$HOST" -p "$PORT" -U "$USER_NAME" -d "$DATABASE" \ + -c "BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; SELECT pg_sleep(4); COMMIT;" > /dev/null 2>&1 & + local holder=$! + sleep 1 + psql -X -q -h "$HOST" -p "$PORT" -U "$USER_NAME" -d "$DATABASE" \ + -c "SET statement_timeout = '1500ms'" -c "$1" > /dev/null 2>&1 + wait "$holder" +} +cancel_while_waiting "CREATE UNIQUE INDEX CONCURRENTLY t_code_key ON t (code)" +cancel_while_waiting "REINDEX INDEX CONCURRENTLY t_code_idx" + +INVALID="$(psql_do "$DATABASE" -Atc " + SELECT string_agg(i.relname, ' ' ORDER BY i.relname) + FROM pg_catalog.pg_index ix + JOIN pg_catalog.pg_class i ON i.oid = ix.indexrelid + WHERE NOT ix.indisvalid")" +for expected in t_email_key t_code_key t_code_idx_ccnew p_a_idx; do + case " $INVALID " in + *" $expected "*) ;; + *) + echo "setup did not leave $expected invalid (invalid: $INVALID), so this run proves nothing" >&2 + exit 2 + ;; + esac +done + +plugin_indexes() { + psql_do "$DATABASE" -Atc " + SELECT i.relname + FROM pg_catalog.pg_index ix + JOIN pg_catalog.pg_class i ON i.oid = ix.indexrelid + JOIN pg_catalog.pg_class t ON t.oid = ix.indrelid + JOIN pg_catalog.pg_namespace n ON n.oid = t.relnamespace + WHERE n.nspname = 'public' + AND t.relname = '$1' + AND NOT EXISTS ( + SELECT 1 FROM pg_catalog.pg_constraint con + WHERE con.conrelid = ix.indrelid + AND con.conindid = ix.indexrelid + AND con.contype IN ('p', 'u', 'x') + ) + AND ($RESTORABLE)" +} + +plugin_constraints() { + psql_do "$DATABASE" -Atc " + SELECT con.conname + FROM pg_constraint con + JOIN pg_class c ON c.oid = con.conrelid + JOIN pg_namespace n ON n.oid = c.relnamespace + WHERE c.relname = '$1' + AND n.nspname = 'public' + AND con.contype IN ('p', 'u', 'c', 'x')" +} + +dump_of() { + pg_dump -h "$HOST" -p "$PORT" -U "$USER_NAME" -d "$DATABASE" -s -t "public.$1" +} + +dump_indexes() { + dump_of "$1" | sed -nE 's/^CREATE (UNIQUE )?INDEX ([^ ]+) ON .*/\2/p' | sort +} + +dump_constraints() { + dump_of "$1" \ + | sed -nE '/FOREIGN KEY/d; s/^ +ADD CONSTRAINT ([^ ]+) .*/\1/p; s/^ +CONSTRAINT ([^ ]+) CHECK .*/\1/p' \ + | sort +} + +TABLES="$(psql_do "$DATABASE" -Atc " + SELECT c.relname + FROM pg_catalog.pg_class c + JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace + WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') + ORDER BY 1")" + +failures=0 +compare() { + local table="$1" kind="$2" plugin="$3" dump="$4" + if [ "$plugin" = "$dump" ]; then + printf 'ok %-7s %-11s %s\n' "$table" "$kind" "${plugin//$'\n'/ }" + else + printf 'FAIL %-7s %-11s plugin=[%s] pg_dump=[%s]\n' "$table" "$kind" "${plugin//$'\n'/ }" "${dump//$'\n'/ }" + failures=$((failures + 1)) + fi +} +for table in $TABLES; do + compare "$table" indexes "$(plugin_indexes "$table" | sort)" "$(dump_indexes "$table")" + compare "$table" constraints "$(plugin_constraints "$table" | sort)" "$(dump_constraints "$table")" +done + +if [ "$failures" -gt 0 ]; then + echo "$failures comparison(s) disagree with pg_dump" >&2 + exit 1 +fi + +echo "The table and index DDL agree with pg_dump on every shape." From fa70d61132bebf766ae740c4ad9b89f56566d795 Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Wed, 23 Sep 2026 19:03:33 +0700 Subject: [PATCH 4/5] feat(datagrid): type expression index keys and read them back on SQLite, MySQL and DuckDB --- CHANGELOG.md | 5 + .../CloudflareD1PluginDriver.swift | 65 +----- .../DuckDBIndexClauses.swift | 43 ++++ Plugins/DuckDBDriverPlugin/DuckDBPlugin.swift | 58 +---- .../LibSQLPluginDriver.swift | 65 +----- .../MySQLCreateTableSQL.swift | 78 +++++-- .../MySQLFunctionalKeyParts.swift | 45 ++++ .../MySQLIndexGrouping.swift | 102 ++++++-- .../MySQLPluginDriver+BulkMetadata.swift | 18 +- .../MySQLDriverPlugin/MySQLPluginDriver.swift | 23 +- .../SQLiteCreateTableDDL.swift | 13 -- Plugins/SQLiteDriverPlugin/SQLitePlugin.swift | 24 +- .../SQLitePluginDriver+BulkMetadata.swift | 78 +------ .../PluginDatabaseDriver.swift | 2 + .../TableProPluginKit/SQLFeatureLexer.swift | 2 +- .../TableProPluginKit/SQLIndexKeyList.swift | 214 +++++++++++++++++ .../SQLiteIndexCatalog.swift | 149 ++++++++++++ .../SchemaStatementGenerator.swift | 36 ++- .../Core/Utilities/SQL/SQLTokenCursor.swift | 2 + TablePro/Models/Schema/IndexDefinition.swift | 28 ++- TablePro/Models/Schema/IndexKeyDialect.swift | 26 +++ TablePro/Models/Schema/IndexKeyList.swift | 189 +++++++++++++++ TablePro/Resources/Localizable.xcstrings | 6 + .../Structure/CreateTableGridDelegate.swift | 7 +- .../Structure/StructureEditingSupport.swift | 90 +++---- .../Structure/StructureGridDelegate.swift | 7 +- .../SchemaStatementGeneratorPluginTests.swift | 49 ++++ ...ureChangeManagerIndexExpressionTests.swift | 41 +++- .../Utilities/SQL/SQLTokenCursorTests.swift | 11 + .../Helpers/IndexKeyContext+Testing.swift | 17 ++ .../IndexDefinitionCatalogSpellingTests.swift | 14 ++ .../Models/Schema/IndexKeyListTests.swift | 145 ++++++++++++ .../Schema/SQLiteIndexCatalogTests.swift | 221 ++++++++++++++++++ .../Plugins/DuckDBIndexClausesTests.swift | 61 +++++ .../MySQLFunctionalKeyPartsTests.swift | 70 ++++++ .../Plugins/MySQLIndexGroupingTests.swift | 74 +++++- .../Plugins/MySQLIndexKeyWriterTests.swift | 112 +++++++++ .../Plugins/SQLIndexKeyListTests.swift | 67 ++++++ .../Plugins/SQLiteCreateTableDDLTests.swift | 22 -- ...ureEditingSupportBooleanParsingTests.swift | 2 +- ...tructureEditingSupportFieldDiffTests.swift | 10 + ...StructureEditingSupportIndexKeyTests.swift | 99 ++++---- .../StructureIndexTypeMenuTests.swift | 4 +- docs/databases/mysql.mdx | 1 + docs/features/table-structure.mdx | 14 +- project.yml | 2 + 46 files changed, 1928 insertions(+), 483 deletions(-) create mode 100644 Plugins/DuckDBDriverPlugin/DuckDBIndexClauses.swift create mode 100644 Plugins/MySQLDriverPlugin/MySQLFunctionalKeyParts.swift create mode 100644 Plugins/TableProPluginKit/SQLIndexKeyList.swift create mode 100644 Plugins/TableProPluginKit/SQLiteIndexCatalog.swift create mode 100644 TablePro/Models/Schema/IndexKeyDialect.swift create mode 100644 TablePro/Models/Schema/IndexKeyList.swift create mode 100644 TableProTests/Helpers/IndexKeyContext+Testing.swift create mode 100644 TableProTests/Models/Schema/IndexKeyListTests.swift create mode 100644 TableProTests/Models/Schema/SQLiteIndexCatalogTests.swift create mode 100644 TableProTests/Plugins/DuckDBIndexClausesTests.swift create mode 100644 TableProTests/Plugins/MySQLFunctionalKeyPartsTests.swift create mode 100644 TableProTests/Plugins/MySQLIndexKeyWriterTests.swift create mode 100644 TableProTests/Plugins/SQLIndexKeyListTests.swift diff --git a/CHANGELOG.md b/CHANGELOG.md index b5e417a580..7dd249fbb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Global** on a saved query folder's menu, for a folder every connection shows. - Whether a materialized view can be refreshed concurrently, on its **Indexes** tab. (#2522) - Invalid PostgreSQL indexes named on the table's **Indexes** tab. +- Expression keys typed into an index's **Columns** cell, such as `lower(email)`. ### Changed @@ -333,6 +334,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - PostgreSQL exclusion constraints missing from exports and the DDL tab. - PostgreSQL column reorder script dropping an index named like one of the table's check constraints. - Invalid PostgreSQL index recreated on the target by Compare & Sync and **Copy To**. +- Expression key parts missing from SQLite, libSQL, Cloudflare D1, MySQL and DuckDB indexes. +- Condition missing from SQLite, libSQL and Cloudflare D1 partial indexes. +- Descending MySQL index keys recreated ascending by a rename. +- MySQL index dropped when the index replacing it failed to create. ### Security diff --git a/Plugins/CloudflareD1DriverPlugin/CloudflareD1PluginDriver.swift b/Plugins/CloudflareD1DriverPlugin/CloudflareD1PluginDriver.swift index a5f92e67d6..eae9b0271a 100644 --- a/Plugins/CloudflareD1DriverPlugin/CloudflareD1PluginDriver.swift +++ b/Plugins/CloudflareD1DriverPlugin/CloudflareD1PluginDriver.swift @@ -359,50 +359,8 @@ final class CloudflareD1PluginDriver: PluginDatabaseDriver, @unchecked Sendable } func fetchIndexes(table: String, schema: String?) async throws -> [PluginIndexInfo] { - let safeTable = escapeStringLiteral(table) - let query = """ - SELECT il.name, il."unique", il.origin, ii.name AS col_name - FROM pragma_index_list('\(safeTable)') il - LEFT JOIN pragma_index_info(il.name) ii ON 1=1 - ORDER BY il.seq, ii.seqno - """ - let result = try await execute(query: query) - - var indexMap: [(name: String, isUnique: Bool, isPrimary: Bool, columns: [String])] = [] - var indexLookup: [String: Int] = [:] - - for row in result.rows { - guard row.count >= 4, - let indexName = row[0].asText else { continue } - - let isUnique = row[1].asText == "1" - let origin = row[2].asText ?? "c" - - if let idx = indexLookup[indexName] { - if let colName = row[3].asText { - indexMap[idx].columns.append(colName) - } - } else { - let columns: [String] = row[3].asText.map { [$0] } ?? [] - indexLookup[indexName] = indexMap.count - indexMap.append(( - name: indexName, - isUnique: isUnique, - isPrimary: origin == "pk", - columns: columns - )) - } - } - - return indexMap.map { entry in - PluginIndexInfo( - name: entry.name, - columns: entry.columns, - isUnique: entry.isUnique, - isPrimary: entry.isPrimary, - type: "BTREE" - ) - }.sorted { $0.isPrimary && !$1.isPrimary } + let result = try await execute(query: SQLiteIndexCatalog.indexesQuery(table: table)) + return SQLiteIndexCatalog.indexes(fromRows: result.rows) } func fetchForeignKeys(table: String, schema: String?) async throws -> [PluginForeignKeyInfo] { @@ -782,14 +740,7 @@ final class CloudflareD1PluginDriver: PluginDatabaseDriver, @unchecked Sendable } func generateAddIndexSQL(table: String, index: PluginIndexDefinition) -> String? { - let uniqueStr = index.isUnique ? "UNIQUE " : "" - let cols = index.columns.map { quoteIdentifier($0) }.joined(separator: ", ") - var statement = "CREATE \(uniqueStr)INDEX \(quoteIdentifier(index.name)) " - + "ON \(quoteIdentifier(table)) (\(cols))" - if let predicate = index.whereClause?.nilIfEmpty { - statement += " WHERE \(predicate)" - } - return statement + SQLiteIndexCatalog.createStatement(for: index, table: table, quote: quoteIdentifier) } func generateDropIndexSQL(table: String, indexName: String) -> String? { @@ -801,10 +752,12 @@ final class CloudflareD1PluginDriver: PluginDatabaseDriver, @unchecked Sendable } func generateIndexDefinitionSQL(index: PluginIndexDefinition, tableName: String?) -> String? { - let uniqueStr = index.isUnique ? "UNIQUE " : "" - let cols = index.columns.map { quoteIdentifier($0) }.joined(separator: ", ") - let onClause = tableName.map { " ON \(quoteIdentifier($0))" } ?? "" - return "CREATE \(uniqueStr)INDEX \(quoteIdentifier(index.name))\(onClause) (\(cols))" + guard let tableName else { + let unique = index.isUnique ? "UNIQUE " : "" + let keys = SQLiteIndexCatalog.keyList(for: index, quote: quoteIdentifier) + return "CREATE \(unique)INDEX \(quoteIdentifier(index.name)) \(keys)" + } + return SQLiteIndexCatalog.createStatement(for: index, table: tableName, quote: quoteIdentifier) } func generateForeignKeyDefinitionSQL(fk: PluginForeignKeyDefinition) -> String? { diff --git a/Plugins/DuckDBDriverPlugin/DuckDBIndexClauses.swift b/Plugins/DuckDBDriverPlugin/DuckDBIndexClauses.swift new file mode 100644 index 0000000000..d660720a3e --- /dev/null +++ b/Plugins/DuckDBDriverPlugin/DuckDBIndexClauses.swift @@ -0,0 +1,43 @@ +// +// DuckDBIndexClauses.swift +// DuckDBDriverPlugin +// + +import Foundation +import TableProPluginKit + +enum DuckDBIndexClauses { + struct KeyParts: Equatable { + let columns: [String] + let expressions: [String] + } + + static func keyParts(ofCreateIndex sql: String?) -> KeyParts { + let features = DuckDBLexicalFeatures.features + guard let sql, let statement = SQLIndexKeyList.statement(sql, lexicalFeatures: features) else { + return KeyParts(columns: [], expressions: []) + } + var expressions: [String] = [] + let columns = statement.keyParts.map { part -> String in + if let expression = SQLIndexKeyList.unwrapped(part, lexicalFeatures: features) { + expressions.append(expression) + return expression + } + return SQLIndexKeyList.quotedIdentifier(part, lexicalFeatures: features) ?? part + } + return KeyParts(columns: columns, expressions: expressions) + } + + static func createStatement( + for index: PluginIndexDefinition, + qualifiedTable: String, + quote: (String) -> String + ) -> String { + let expressions = Set(index.expressions ?? []) + let keys = index.columns + .map { expressions.contains($0) ? "(\($0))" : quote($0) } + .joined(separator: ", ") + let unique = index.isUnique ? "UNIQUE " : "" + return "CREATE \(unique)INDEX \(quote(index.name)) ON \(qualifiedTable) (\(keys))" + } +} diff --git a/Plugins/DuckDBDriverPlugin/DuckDBPlugin.swift b/Plugins/DuckDBDriverPlugin/DuckDBPlugin.swift index ceeb87e8f8..9dc8428e5e 100644 --- a/Plugins/DuckDBDriverPlugin/DuckDBPlugin.swift +++ b/Plugins/DuckDBDriverPlugin/DuckDBPlugin.swift @@ -699,16 +699,22 @@ final class DuckDBPluginDriver: PluginDatabaseDriver, @unchecked Sendable { guard let name = row[safe: 0]?.asText else { return nil } let sql = row[safe: 2]?.asText + let keys = DuckDBIndexClauses.keyParts(ofCreateIndex: sql) /// `duckdb_indexes()` lists user indexes only, so nothing here backs a primary key. /// Reading one out of the name matched any index called something like /// `idx_primary_contact`, which then reported as the table's primary key and as /// unique. return PluginIndexInfo( name: name, - columns: extractIndexColumns(from: sql), + columns: keys.columns, isUnique: (row[safe: 1]?.asText) == "true", isPrimary: false, - type: "ART" + type: "ART", + expressions: keys.expressions.isEmpty ? nil : keys.expressions, + includedColumns: nil, + ddlMethodAndKeys: nil, + ddlWhereClause: nil, + isValid: nil ) } } catch { @@ -1028,9 +1034,7 @@ final class DuckDBPluginDriver: PluginDatabaseDriver, @unchecked Sendable { } private func duckdbIndexDefinition(_ index: PluginIndexDefinition, qualifiedTable: String) -> String { - let cols = index.columns.map { quoteIdentifier($0) }.joined(separator: ", ") - let unique = index.isUnique ? "UNIQUE " : "" - return "CREATE \(unique)INDEX \(quoteIdentifier(index.name)) ON \(qualifiedTable) (\(cols))" + DuckDBIndexClauses.createStatement(for: index, qualifiedTable: qualifiedTable, quote: quoteIdentifier) } private func duckdbForeignKeyDefinition(_ fk: PluginForeignKeyDefinition) -> String { @@ -1124,48 +1128,4 @@ final class DuckDBPluginDriver: PluginDatabaseDriver, @unchecked Sendable { } return stmts.isEmpty ? nil : stmts } - - private static let indexColumnsRegex = try? NSRegularExpression( - pattern: #"ON\s+(?:(?:"[^"]*"|[^\s(]+)\s*\.\s*)*(?:"[^"]*"|[^\s(]+)\s*\("#, - options: .caseInsensitive - ) - - /// Splits an index's key list on the commas that separate its keys. - /// - /// A key can be an expression, so both the opening parenthesis and the commas inside it belong - /// to the key rather than to the list: `(lower(email))` is one key and `(coalesce(a, b))` is - /// one key with a comma in it. Matching the list with a regex that stops at the first closing - /// parenthesis produced `(lower(email` and `[(COALESCE(a, b]`, which the DDL then quoted as - /// column names. - private func extractIndexColumns(from sql: String?) -> [String] { - guard let sql, let regex = Self.indexColumnsRegex else { return [] } - - let range = NSRange(sql.startIndex..., in: sql) - guard let match = regex.firstMatch(in: sql, range: range), - let openParen = Range(match.range, in: sql) else { - return [] - } - - var depth = 1 - var current = "" - var keys: [String] = [] - for character in sql[openParen.upperBound...] { - if character == "(" { - depth += 1 - } else if character == ")" { - depth -= 1 - if depth == 0 { break } - } else if character == "," , depth == 1 { - keys.append(current) - current = "" - continue - } - current.append(character) - } - keys.append(current) - - return keys - .map { $0.trimmingCharacters(in: .whitespaces).replacingOccurrences(of: "\"", with: "") } - .filter { !$0.isEmpty } - } } diff --git a/Plugins/LibSQLDriverPlugin/LibSQLPluginDriver.swift b/Plugins/LibSQLDriverPlugin/LibSQLPluginDriver.swift index 106032aaaf..42b70153b1 100644 --- a/Plugins/LibSQLDriverPlugin/LibSQLPluginDriver.swift +++ b/Plugins/LibSQLDriverPlugin/LibSQLPluginDriver.swift @@ -433,50 +433,8 @@ final class LibSQLPluginDriver: PluginDatabaseDriver, @unchecked Sendable { } func fetchIndexes(table: String, schema: String?) async throws -> [PluginIndexInfo] { - let safeTable = escapeStringLiteral(table) - let query = """ - SELECT il.name, il."unique", il.origin, ii.name AS col_name - FROM pragma_index_list('\(safeTable)') il - LEFT JOIN pragma_index_info(il.name) ii ON 1=1 - ORDER BY il.seq, ii.seqno - """ - let result = try await execute(query: query) - - var indexMap: [(name: String, isUnique: Bool, isPrimary: Bool, columns: [String])] = [] - var indexLookup: [String: Int] = [:] - - for row in result.rows { - guard row.count >= 4, - let indexName = row[0].asText else { continue } - - let isUnique = row[1].asText == "1" - let origin = row[2].asText ?? "c" - - if let idx = indexLookup[indexName] { - if let colName = row[3].asText { - indexMap[idx].columns.append(colName) - } - } else { - let columns: [String] = row[3].asText.map { [$0] } ?? [] - indexLookup[indexName] = indexMap.count - indexMap.append(( - name: indexName, - isUnique: isUnique, - isPrimary: origin == "pk", - columns: columns - )) - } - } - - return indexMap.map { entry in - PluginIndexInfo( - name: entry.name, - columns: entry.columns, - isUnique: entry.isUnique, - isPrimary: entry.isPrimary, - type: "BTREE" - ) - }.sorted { $0.isPrimary && !$1.isPrimary } + let result = try await execute(query: SQLiteIndexCatalog.indexesQuery(table: table)) + return SQLiteIndexCatalog.indexes(fromRows: result.rows) } func fetchForeignKeys(table: String, schema: String?) async throws -> [PluginForeignKeyInfo] { @@ -802,14 +760,7 @@ final class LibSQLPluginDriver: PluginDatabaseDriver, @unchecked Sendable { } func generateAddIndexSQL(table: String, index: PluginIndexDefinition) -> String? { - let uniqueStr = index.isUnique ? "UNIQUE " : "" - let cols = index.columns.map { quoteIdentifier($0) }.joined(separator: ", ") - var statement = "CREATE \(uniqueStr)INDEX \(quoteIdentifier(index.name)) " - + "ON \(quoteIdentifier(table)) (\(cols))" - if let predicate = index.whereClause?.nilIfEmpty { - statement += " WHERE \(predicate)" - } - return statement + SQLiteIndexCatalog.createStatement(for: index, table: table, quote: quoteIdentifier) } func generateDropIndexSQL(table: String, indexName: String) -> String? { @@ -821,10 +772,12 @@ final class LibSQLPluginDriver: PluginDatabaseDriver, @unchecked Sendable { } func generateIndexDefinitionSQL(index: PluginIndexDefinition, tableName: String?) -> String? { - let uniqueStr = index.isUnique ? "UNIQUE " : "" - let cols = index.columns.map { quoteIdentifier($0) }.joined(separator: ", ") - let onClause = tableName.map { " ON \(quoteIdentifier($0))" } ?? "" - return "CREATE \(uniqueStr)INDEX \(quoteIdentifier(index.name))\(onClause) (\(cols))" + guard let tableName else { + let unique = index.isUnique ? "UNIQUE " : "" + let keys = SQLiteIndexCatalog.keyList(for: index, quote: quoteIdentifier) + return "CREATE \(unique)INDEX \(quoteIdentifier(index.name)) \(keys)" + } + return SQLiteIndexCatalog.createStatement(for: index, table: tableName, quote: quoteIdentifier) } func generateForeignKeyDefinitionSQL(fk: PluginForeignKeyDefinition) -> String? { diff --git a/Plugins/MySQLDriverPlugin/MySQLCreateTableSQL.swift b/Plugins/MySQLDriverPlugin/MySQLCreateTableSQL.swift index bb4c976861..be602eeb2b 100644 --- a/Plugins/MySQLDriverPlugin/MySQLCreateTableSQL.swift +++ b/Plugins/MySQLDriverPlugin/MySQLCreateTableSQL.swift @@ -56,30 +56,76 @@ internal func mysqlCreateTableSQL( return sql + ";" } -internal func mysqlIndexDefinitionSQL(_ index: PluginIndexDefinition) -> String { - let columns = index.columns.map { column -> String in - let quoted = mysqlQuoteIdentifier(column) - if let prefixes = index.columnPrefixes, let prefix = prefixes[column] { - return "\(quoted)(\(prefix))" +internal enum MySQLIndexKeyPart: Equatable { + case column(String, prefixLength: Int?) + case expression(String) + + var text: String { + switch self { + case .column(let name, _): return name + case .expression(let expression): return expression } - return quoted - }.joined(separator: ", ") + } - let upperType = index.indexType?.uppercased() ?? "" - var definition: String - switch upperType { - case "FULLTEXT": definition = "FULLTEXT INDEX" - case "SPATIAL": definition = "SPATIAL INDEX" - default: definition = index.isUnique ? "UNIQUE INDEX" : "INDEX" + var sql: String { + switch self { + case .column(let name, let prefixLength?): return "\(mysqlQuoteIdentifier(name))(\(prefixLength))" + case .column(let name, nil): return mysqlQuoteIdentifier(name) + case .expression(let expression): return "(\(expression))" + } } +} - definition += " \(mysqlQuoteIdentifier(index.name)) (\(columns))" +internal struct MySQLIndexKey: Equatable { + let part: MySQLIndexKeyPart + let isDescending: Bool + var sql: String { + isDescending ? "\(part.sql) DESC" : part.sql + } +} + +internal func mysqlIndexKeyClause(_ keys: [MySQLIndexKey], type: String?) -> String { + var clause = "(\(keys.map(\.sql).joined(separator: ", ")))" + let upperType = type?.uppercased() ?? "" if upperType == "BTREE" || upperType == "HASH" { - definition += " USING \(upperType)" + clause += " USING \(upperType)" } + return clause +} - return definition +internal func mysqlIndexKeys(of index: PluginIndexDefinition) -> [MySQLIndexKey] { + let expressions = Set(index.expressions ?? []) + return index.columns.map { column in + let part: MySQLIndexKeyPart = expressions.contains(column) + ? .expression(column) + : .column(column, prefixLength: index.columnPrefixes?[column]) + return MySQLIndexKey(part: part, isDescending: false) + } +} + +internal func mysqlIndexDefinitionSQL(_ index: PluginIndexDefinition) -> String { + let upperType = index.indexType?.uppercased() ?? "" + let kind: String + switch upperType { + case "FULLTEXT": kind = "FULLTEXT INDEX" + case "SPATIAL": kind = "SPATIAL INDEX" + default: kind = index.isUnique ? "UNIQUE INDEX" : "INDEX" + } + let keys = index.ddlMethodAndKeys?.nilIfEmpty + ?? mysqlIndexKeyClause(mysqlIndexKeys(of: index), type: upperType) + return "\(kind) \(mysqlQuoteIdentifier(index.name)) \(keys)" +} + +internal func mysqlModifyIndexSQL( + table: String, + oldIndexName: String, + newIndex: PluginIndexDefinition, + flavor: MySQLServerFlavor +) -> String? { + guard flavor == .mysql || flavor == .mariadb else { return nil } + return "ALTER TABLE \(mysqlQuoteIdentifier(table)) DROP INDEX \(mysqlQuoteIdentifier(oldIndexName)), " + + "ADD \(mysqlIndexDefinitionSQL(newIndex))" } /// `CONSTRAINT name` is optional in MySQL's grammar and the server invents one when it is left out, diff --git a/Plugins/MySQLDriverPlugin/MySQLFunctionalKeyParts.swift b/Plugins/MySQLDriverPlugin/MySQLFunctionalKeyParts.swift new file mode 100644 index 0000000000..ac86ab6b13 --- /dev/null +++ b/Plugins/MySQLDriverPlugin/MySQLFunctionalKeyParts.swift @@ -0,0 +1,45 @@ +// +// MySQLFunctionalKeyParts.swift +// MySQLDriverPlugin +// + +import Foundation +import TableProPluginKit + +internal enum MySQLFunctionalKeyParts { + private static let firstRelease = (8, 0, 13) + + static func catalogReportsExpressions(banner: String?, flavor: MySQLServerFlavor) -> Bool { + flavor == .mysql && MySQLServerVersion.isAtLeast(firstRelease, banner: banner) + } + + static func refusal(for index: PluginIndexDefinition, banner: String?, flavor: MySQLServerFlavor) -> String? { + guard let expressions = index.expressions, !expressions.isEmpty else { return nil } + switch flavor { + case .mariadb: + return String( + format: String(localized: "%@ cannot index an expression. Index a generated column instead."), + "MariaDB" + ) + case .mysql: + guard MySQLServerVersion.isKnownBelow(firstRelease, banner: banner) else { return nil } + return String(localized: "Indexing an expression needs MySQL 8.0.13 or later.") + case .tidb, .oceanbase, .databend: + return nil + } + } + + static func unescaped(_ catalogExpression: String) -> String { + var result = "" + var escaping = false + for character in catalogExpression { + if !escaping, character == "\\" { + escaping = true + continue + } + escaping = false + result.append(character) + } + return result + } +} diff --git a/Plugins/MySQLDriverPlugin/MySQLIndexGrouping.swift b/Plugins/MySQLDriverPlugin/MySQLIndexGrouping.swift index ba64c6d0ed..06e16f688f 100644 --- a/Plugins/MySQLDriverPlugin/MySQLIndexGrouping.swift +++ b/Plugins/MySQLDriverPlugin/MySQLIndexGrouping.swift @@ -10,13 +10,53 @@ import TableProPluginKit struct MySQLIndexRow { let table: String let index: String - let column: String + let key: MySQLIndexKey let isNonUnique: Bool let type: String - let prefixLength: Int? + + init(table: String, index: String, key: MySQLIndexKey, isNonUnique: Bool, type: String) { + self.table = table + self.index = index + self.key = key + self.isNonUnique = isNonUnique + self.type = type + } + + init?( + table: String, + index: String, + column: String?, + catalogExpression: String?, + prefixLength: Int?, + collation: String?, + isNonUnique: Bool, + type: String + ) { + let part: MySQLIndexKeyPart + if let column { + part = .column(column, prefixLength: prefixLength) + } else if let catalogExpression { + part = .expression(MySQLFunctionalKeyParts.unescaped(catalogExpression)) + } else { + return nil + } + self.init( + table: table, + index: index, + key: MySQLIndexKey(part: part, isDescending: collation == "D"), + isNonUnique: isNonUnique, + type: type + ) + } } enum MySQLIndexGrouping { + private struct Entry { + let isUnique: Bool + let type: String + var keys: [MySQLIndexKey] + } + /// Rows must arrive in index-position order: a composite index takes its column order from the /// order they are appended, which is what the caller's `ORDER BY … SEQ_IN_INDEX` provides. /// @@ -25,26 +65,15 @@ enum MySQLIndexGrouping { /// unchanged table disagree. static func group(_ rows: [MySQLIndexRow]) -> [String: [PluginIndexInfo]] { var order: [String: [String]] = [:] - var byTable: [String: [String: (columns: [String], isUnique: Bool, type: String, prefixes: [String: Int])]] = [:] + var byTable: [String: [String: Entry]] = [:] for row in rows { var indexes = byTable[row.table] ?? [:] - if var existing = indexes[row.index] { - existing.columns.append(row.column) - if let prefix = row.prefixLength { - existing.prefixes[row.column] = prefix - } - indexes[row.index] = existing - } else { - var prefixes: [String: Int] = [:] - if let prefix = row.prefixLength { - prefixes[row.column] = prefix - } - indexes[row.index] = ( - columns: [row.column], isUnique: !row.isNonUnique, type: row.type, prefixes: prefixes - ) + if indexes[row.index] == nil { + indexes[row.index] = Entry(isUnique: !row.isNonUnique, type: row.type, keys: []) order[row.table, default: []].append(row.index) } + indexes[row.index]?.keys.append(row.key) byTable[row.table] = indexes } @@ -53,15 +82,42 @@ enum MySQLIndexGrouping { let indexes = byTable[table] ?? [:] grouped[table] = names .compactMap { name -> PluginIndexInfo? in - guard let info = indexes[name] else { return nil } - return PluginIndexInfo( - name: name, columns: info.columns, isUnique: info.isUnique, - isPrimary: name == "PRIMARY", type: info.type, - columnPrefixes: info.prefixes.isEmpty ? nil : info.prefixes - ) + guard let entry = indexes[name] else { return nil } + return info(name: name, entry: entry) } .sorted { $0.isPrimary && !$1.isPrimary } } return grouped } + + private static func info(name: String, entry: Entry) -> PluginIndexInfo { + var prefixes: [String: Int] = [:] + var expressions: [String] = [] + for key in entry.keys { + switch key.part { + case .column(let column, let prefixLength?): + prefixes[column] = prefixLength + case .expression(let expression): + expressions.append(expression) + case .column: + break + } + } + let spelling = entry.keys.contains(where: \.isDescending) + ? mysqlIndexKeyClause(entry.keys, type: entry.type) + : nil + return PluginIndexInfo( + name: name, + columns: entry.keys.map(\.part.text), + isUnique: entry.isUnique, + isPrimary: name == "PRIMARY", + type: entry.type, + columnPrefixes: prefixes.isEmpty ? nil : prefixes, + expressions: expressions.isEmpty ? nil : expressions, + includedColumns: nil, + ddlMethodAndKeys: spelling, + ddlWhereClause: nil, + isValid: nil + ) + } } diff --git a/Plugins/MySQLDriverPlugin/MySQLPluginDriver+BulkMetadata.swift b/Plugins/MySQLDriverPlugin/MySQLPluginDriver+BulkMetadata.swift index 112a26d39d..13582ca372 100644 --- a/Plugins/MySQLDriverPlugin/MySQLPluginDriver+BulkMetadata.swift +++ b/Plugins/MySQLDriverPlugin/MySQLPluginDriver+BulkMetadata.swift @@ -38,10 +38,15 @@ extension MySQLPluginDriver { private func catalogIndexes(database: String) async throws -> [String: [PluginIndexInfo]] { let escapedDb = mysqlEscapeStringLiteral(database) + let identity = serverIdentity + let expression = MySQLFunctionalKeyParts.catalogReportsExpressions( + banner: identity.banner, flavor: identity.flavor + ) ? "EXPRESSION" : "NULL" let query = """ SELECT TABLE_NAME, INDEX_NAME, COLUMN_NAME, - CAST(NON_UNIQUE AS CHAR), INDEX_TYPE, CAST(SUB_PART AS CHAR) + CAST(NON_UNIQUE AS CHAR), INDEX_TYPE, CAST(SUB_PART AS CHAR), + COLLATION, \(expression) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = '\(escapedDb)' ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX @@ -50,16 +55,17 @@ extension MySQLPluginDriver { let result = try await execute(query: query) let rows = result.rows.compactMap { row -> MySQLIndexRow? in guard let table = row[safe: 0]?.asText, - let index = row[safe: 1]?.asText, - let column = row[safe: 2]?.asText + let index = row[safe: 1]?.asText else { return nil } return MySQLIndexRow( table: table, index: index, - column: column, + column: row[safe: 2]?.asText, + catalogExpression: row[safe: 7]?.asText, + prefixLength: (row[safe: 5]?.asText).flatMap { Int($0) }, + collation: row[safe: 6]?.asText, isNonUnique: (row[safe: 3]?.asText) == "1", - type: (row[safe: 4]?.asText) ?? "BTREE", - prefixLength: (row[safe: 5]?.asText).flatMap { Int($0) } + type: (row[safe: 4]?.asText) ?? "BTREE" ) } return MySQLIndexGrouping.group(rows) diff --git a/Plugins/MySQLDriverPlugin/MySQLPluginDriver.swift b/Plugins/MySQLDriverPlugin/MySQLPluginDriver.swift index 5a75170e26..b2f4abe43b 100644 --- a/Plugins/MySQLDriverPlugin/MySQLPluginDriver.swift +++ b/Plugins/MySQLDriverPlugin/MySQLPluginDriver.swift @@ -636,18 +636,19 @@ final class MySQLPluginDriver: PluginDatabaseDriver, @unchecked Sendable { func fetchIndexes(table: String, schema: String?) async throws -> [PluginIndexInfo] { guard !flavor.isDatabend else { return [] } let result = try await execute(query: "SHOW INDEX FROM \(qualifiedName(table, schema: schema))") + let expressionColumn = result.columns.firstIndex(of: "Expression") let rows = result.rows.compactMap { row -> MySQLIndexRow? in - guard let indexName = row[safe: 2]?.asText, - let columnName = row[safe: 4]?.asText - else { return nil } + guard let indexName = row[safe: 2]?.asText else { return nil } return MySQLIndexRow( table: table, index: indexName, - column: columnName, + column: row[safe: 4]?.asText, + catalogExpression: expressionColumn.flatMap { row[safe: $0]?.asText }, + prefixLength: (row[safe: 7]?.asText).flatMap { Int($0) }, + collation: row[safe: 5]?.asText, isNonUnique: (row[safe: 1]?.asText) == "1", - type: (row[safe: 10]?.asText) ?? "BTREE", - prefixLength: (row[safe: 7]?.asText).flatMap { Int($0) } + type: (row[safe: 10]?.asText) ?? "BTREE" ) } return MySQLIndexGrouping.group(rows)[table] ?? [] @@ -1033,6 +1034,16 @@ final class MySQLPluginDriver: PluginDatabaseDriver, @unchecked Sendable { return "ALTER TABLE \(quoteIdentifier(table)) DROP INDEX \(quoteIdentifier(indexName))" } + func generateModifyIndexSQL(table: String, oldIndexName: String, newIndex: PluginIndexDefinition) -> String? { + mysqlModifyIndexSQL(table: table, oldIndexName: oldIndexName, newIndex: newIndex, flavor: flavor) + } + + func schemaOperationRefusal(_ operation: PluginSchemaOperation) -> String? { + guard case .addIndex(let index) = operation else { return nil } + let identity = serverIdentity + return MySQLFunctionalKeyParts.refusal(for: index, banner: identity.banner, flavor: identity.flavor) + } + func generateAddForeignKeySQL(table: String, fk: PluginForeignKeyDefinition) -> String? { guard !flavor.isDatabend else { return nil } return "ALTER TABLE \(quoteIdentifier(table)) ADD \(mysqlForeignKeyDefinitionSQL(fk))" diff --git a/Plugins/SQLiteDriverPlugin/SQLiteCreateTableDDL.swift b/Plugins/SQLiteDriverPlugin/SQLiteCreateTableDDL.swift index d9166bd736..778231435f 100644 --- a/Plugins/SQLiteDriverPlugin/SQLiteCreateTableDDL.swift +++ b/Plugins/SQLiteDriverPlugin/SQLiteCreateTableDDL.swift @@ -94,16 +94,3 @@ internal func sqliteForeignKeyDefinitionSQL(_ foreignKey: PluginForeignKeyDefini } return definition } - -/// The `WHERE` predicate is written, because a partial index without it is a different index: a -/// unique partial index that loses its condition rejects the rows the user meant to exclude. -internal func sqliteAddIndexSQL(table: String, index: PluginIndexDefinition) -> String { - let columns = index.columns.map(sqliteQuoteIdentifier).joined(separator: ", ") - let unique = index.isUnique ? "UNIQUE " : "" - var statement = "CREATE \(unique)INDEX \(sqliteQuoteIdentifier(index.name)) " - + "ON \(sqliteQuoteIdentifier(table)) (\(columns))" - if let predicate = index.whereClause?.nilIfEmpty { - statement += " WHERE \(predicate)" - } - return statement -} diff --git a/Plugins/SQLiteDriverPlugin/SQLitePlugin.swift b/Plugins/SQLiteDriverPlugin/SQLitePlugin.swift index 335a142f39..0fc9faa597 100644 --- a/Plugins/SQLiteDriverPlugin/SQLitePlugin.swift +++ b/Plugins/SQLiteDriverPlugin/SQLitePlugin.swift @@ -501,26 +501,8 @@ final class SQLitePluginDriver: PluginDatabaseDriver, @unchecked Sendable { } func fetchIndexes(table: String, schema: String?) async throws -> [PluginIndexInfo] { - let safeTable = escapeStringLiteral(table) - let query = """ - SELECT il.name, il."unique", il.origin, ii.name AS col_name - FROM pragma_index_list('\(safeTable)') il - LEFT JOIN pragma_index_info(il.name) ii ON 1=1 - ORDER BY il.seq, ii.seqno - """ - let result = try await execute(query: query) - - let rows = result.rows.compactMap { row -> SQLiteIndexRow? in - guard row.count >= 4, let indexName = row[0].asText else { return nil } - return SQLiteIndexRow( - table: table, - index: indexName, - column: row[3].asText, - isUnique: row[1].asText == "1", - origin: row[2].asText ?? "c" - ) - } - return SQLiteIndexGrouping.group(rows)[table] ?? [] + let result = try await execute(query: SQLiteIndexCatalog.indexesQuery(table: table)) + return SQLiteIndexCatalog.indexes(fromRows: result.rows) } func fetchForeignKeys(table: String, schema: String?) async throws -> [PluginForeignKeyInfo] { @@ -806,7 +788,7 @@ final class SQLitePluginDriver: PluginDatabaseDriver, @unchecked Sendable { } func generateAddIndexSQL(table: String, index: PluginIndexDefinition) -> String? { - sqliteAddIndexSQL(table: table, index: index) + SQLiteIndexCatalog.createStatement(for: index, table: table, quote: sqliteQuoteIdentifier) } func generateDropIndexSQL(table: String, indexName: String) -> String? { diff --git a/Plugins/SQLiteDriverPlugin/SQLitePluginDriver+BulkMetadata.swift b/Plugins/SQLiteDriverPlugin/SQLitePluginDriver+BulkMetadata.swift index 5d347e5fa2..be64b86a8e 100644 --- a/Plugins/SQLiteDriverPlugin/SQLitePluginDriver+BulkMetadata.swift +++ b/Plugins/SQLiteDriverPlugin/SQLitePluginDriver+BulkMetadata.swift @@ -15,86 +15,12 @@ import Foundation import TableProPluginKit -/// One row of `pragma_index_list` joined to `pragma_index_info`, in the fields both forms carry. -struct SQLiteIndexRow { - let table: String - let index: String - let column: String? - let isUnique: Bool - let origin: String -} - -enum SQLiteIndexGrouping { - /// Rows must arrive in index-position order, which is what the caller's - /// `ORDER BY il.seq, ii.seqno` provides: a composite index takes its column order from the - /// order they are appended. - static func group(_ rows: [SQLiteIndexRow]) -> [String: [PluginIndexInfo]] { - var order: [String: [String]] = [:] - var entries: [String: [String: (isUnique: Bool, isPrimary: Bool, columns: [String])]] = [:] - - for row in rows { - var tableEntries = entries[row.table] ?? [:] - if var existing = tableEntries[row.index] { - if let column = row.column { - existing.columns.append(column) - } - tableEntries[row.index] = existing - } else { - tableEntries[row.index] = ( - isUnique: row.isUnique, - isPrimary: row.origin == "pk", - columns: row.column.map { [$0] } ?? [] - ) - order[row.table, default: []].append(row.index) - } - entries[row.table] = tableEntries - } - - var result: [String: [PluginIndexInfo]] = [:] - for (table, names) in order { - result[table] = names.compactMap { name -> PluginIndexInfo? in - guard let entry = entries[table]?[name] else { return nil } - return PluginIndexInfo( - name: name, - columns: entry.columns, - isUnique: entry.isUnique, - isPrimary: entry.isPrimary, - type: "BTREE" - ) - } - .sorted { $0.isPrimary && !$1.isPrimary } - } - return result - } -} - extension SQLitePluginDriver { var providesBulkIndexFetch: Bool { true } func fetchAllIndexes(schema: String?) async throws -> [String: [PluginIndexInfo]] { - let query = """ - SELECT m.name AS tbl, il.name, il."unique", il.origin, ii.name AS col_name - FROM sqlite_master m - JOIN pragma_index_list(m.name) il - LEFT JOIN pragma_index_info(il.name) ii ON 1=1 - WHERE m.type = 'table' AND m.name NOT LIKE 'sqlite_%' - ORDER BY m.name, il.seq, ii.seqno - """ - let result = try await execute(query: query) - - let rows = result.rows.compactMap { row -> SQLiteIndexRow? in - guard row.count >= 5, - let table = row[0].asText, - let index = row[1].asText else { return nil } - return SQLiteIndexRow( - table: table, - index: index, - column: row[4].asText, - isUnique: row[2].asText == "1", - origin: row[3].asText ?? "c" - ) - } - return SQLiteIndexGrouping.group(rows) + let result = try await execute(query: SQLiteIndexCatalog.schemaIndexesQuery) + return SQLiteIndexCatalog.indexesByTable(fromRows: result.rows) } var providesBulkTableMetadataFetch: Bool { true } diff --git a/Plugins/TableProPluginKit/PluginDatabaseDriver.swift b/Plugins/TableProPluginKit/PluginDatabaseDriver.swift index d6b2a0308e..3fd4def885 100644 --- a/Plugins/TableProPluginKit/PluginDatabaseDriver.swift +++ b/Plugins/TableProPluginKit/PluginDatabaseDriver.swift @@ -295,6 +295,7 @@ public protocol PluginDatabaseDriver: AnyObject, Sendable { func generateDropColumnSQL(table: String, columnName: String) -> String? func generateAddIndexSQL(table: String, index: PluginIndexDefinition) -> String? func generateDropIndexSQL(table: String, indexName: String) -> String? + func generateModifyIndexSQL(table: String, oldIndexName: String, newIndex: PluginIndexDefinition) -> String? func generateAddForeignKeySQL(table: String, fk: PluginForeignKeyDefinition) -> String? func generateDropForeignKeySQL(table: String, constraintName: String) -> String? func generateAddCheckConstraintSQL(table: String, constraint: PluginCheckConstraintDefinition) -> String? @@ -915,6 +916,7 @@ public extension PluginDatabaseDriver { func generateDropColumnSQL(table: String, columnName: String) -> String? { nil } func generateAddIndexSQL(table: String, index: PluginIndexDefinition) -> String? { nil } func generateDropIndexSQL(table: String, indexName: String) -> String? { nil } + func generateModifyIndexSQL(table: String, oldIndexName: String, newIndex: PluginIndexDefinition) -> String? { nil } func generateAddForeignKeySQL(table: String, fk: PluginForeignKeyDefinition) -> String? { nil } func generateDropForeignKeySQL(table: String, constraintName: String) -> String? { nil } func generateAddCheckConstraintSQL(table: String, constraint: PluginCheckConstraintDefinition) -> String? { nil } diff --git a/Plugins/TableProPluginKit/SQLFeatureLexer.swift b/Plugins/TableProPluginKit/SQLFeatureLexer.swift index 85ae597597..461999a892 100644 --- a/Plugins/TableProPluginKit/SQLFeatureLexer.swift +++ b/Plugins/TableProPluginKit/SQLFeatureLexer.swift @@ -330,7 +330,7 @@ struct SQLFeatureLexer { || unit == 0x5F } - private func isWordUnit(_ unit: UInt16) -> Bool { + func isWordUnit(_ unit: UInt16) -> Bool { unit < 0x80 ? isASCIIIdentifierPart(unit) : !isSeparating(unit) } diff --git a/Plugins/TableProPluginKit/SQLIndexKeyList.swift b/Plugins/TableProPluginKit/SQLIndexKeyList.swift new file mode 100644 index 0000000000..e6b2899b0d --- /dev/null +++ b/Plugins/TableProPluginKit/SQLIndexKeyList.swift @@ -0,0 +1,214 @@ +// +// SQLIndexKeyList.swift +// TableProPluginKit +// + +import Foundation + +public enum SQLIndexKeyList { + public struct Statement: Equatable, Sendable { + public let keyList: String + public let keyParts: [String] + public let predicate: String? + } + + private static let openParen = UInt16(UnicodeScalar("(").value) + private static let closeParen = UInt16(UnicodeScalar(")").value) + private static let comma = UInt16(UnicodeScalar(",").value) + private static let semicolon = UInt16(UnicodeScalar(";").value) + private static let doubleQuote = UInt16(UnicodeScalar("\"").value) + private static let backtick = UInt16(UnicodeScalar("`").value) + private static let openBracket = UInt16(UnicodeScalar("[").value) + private static let closeBracket = UInt16(UnicodeScalar("]").value) + private static let sortOrderWords: Set = ["ASC", "DESC"] + + public static func statement(_ createIndex: String, lexicalFeatures: SQLLexicalFeatures) -> Statement? { + let lexer = SQLFeatureLexer(createIndex, features: lexicalFeatures) + guard let open = firstOpenParen(in: lexer), + let close = matchingCloseParen(in: lexer, openingAt: open) else { return nil } + let keyList = text(of: lexer, from: open + 1, to: close) + return Statement( + keyList: keyList, + keyParts: parts(of: keyList, lexicalFeatures: lexicalFeatures), + predicate: predicate(in: lexer, after: close + 1) + ) + } + + public static func parts(of keyList: String, lexicalFeatures: SQLLexicalFeatures) -> [String] { + let lexer = SQLFeatureLexer(keyList, features: lexicalFeatures) + var parts: [String] = [] + var start = 0 + var depth = 0 + var index = 0 + while index < lexer.count { + if let span = lexer.span(at: index) { + index = max(span.end, index + 1) + continue + } + let unit = lexer.units[index] + if unit == openParen { + depth += 1 + } else if unit == closeParen { + depth = max(0, depth - 1) + } else if unit == comma, depth == 0 { + parts.append(text(of: lexer, from: start, to: index)) + start = index + 1 + } + index += 1 + } + parts.append(text(of: lexer, from: start, to: lexer.count)) + return parts.map(trimmed).filter { !$0.isEmpty } + } + + public static func withoutSortOrder(_ part: String, lexicalFeatures: SQLLexicalFeatures) -> String { + let lexer = SQLFeatureLexer(part, features: lexicalFeatures) + guard let word = lastCodeWord(in: lexer), sortOrderWords.contains(word.text.uppercased()) else { return part } + let head = trimmed(text(of: lexer, from: 0, to: word.start)) + return head.isEmpty ? part : head + } + + public static func unwrapped(_ part: String, lexicalFeatures: SQLLexicalFeatures) -> String? { + let body = trimmed(part) + let lexer = SQLFeatureLexer(body, features: lexicalFeatures) + guard lexer.count > 2, lexer.units[0] == openParen, + let close = matchingCloseParen(in: lexer, openingAt: 0), close == lexer.count - 1 else { return nil } + return trimmed(text(of: lexer, from: 1, to: close)) + } + + public static func quotedIdentifier(_ part: String, lexicalFeatures: SQLLexicalFeatures) -> String? { + let body = trimmed(part) + let lexer = SQLFeatureLexer(body, features: lexicalFeatures) + guard lexer.count >= 2, + let closer = identifierCloser(for: lexer.units[0], lexicalFeatures: lexicalFeatures), + let span = lexer.span(at: 0), span.end == lexer.count, + lexer.units[lexer.count - 1] == closer else { return nil } + let name = text(of: lexer, from: 1, to: lexer.count - 1) + guard closer != closeBracket else { return name } + let quote = String(decoding: [closer], as: UTF16.self) + return name.replacingOccurrences(of: quote + quote, with: quote) + } + + private static func identifierCloser(for opener: UInt16, lexicalFeatures: SQLLexicalFeatures) -> UInt16? { + if opener == doubleQuote { return doubleQuote } + if opener == backtick, lexicalFeatures.contains(.backtickQuotes) { return backtick } + if opener == openBracket, lexicalFeatures.contains(.bracketQuotedIdentifiers) { return closeBracket } + return nil + } + + private static func firstOpenParen(in lexer: SQLFeatureLexer) -> Int? { + var index = 0 + while index < lexer.count { + if let span = lexer.span(at: index) { + index = max(span.end, index + 1) + continue + } + if lexer.units[index] == openParen { return index } + index += 1 + } + return nil + } + + private static func matchingCloseParen(in lexer: SQLFeatureLexer, openingAt open: Int) -> Int? { + var depth = 0 + var index = open + while index < lexer.count { + if let span = lexer.span(at: index) { + index = max(span.end, index + 1) + continue + } + let unit = lexer.units[index] + if unit == openParen { + depth += 1 + } else if unit == closeParen { + depth -= 1 + if depth == 0 { return index } + } + index += 1 + } + return nil + } + + private static func predicate(in lexer: SQLFeatureLexer, after start: Int) -> String? { + guard let word = firstCodeWord(in: lexer, from: start), word.text.uppercased() == "WHERE" else { return nil } + var body = trimmed(text(of: lexer, from: word.end, to: lexer.count)) + while body.utf16.last == semicolon { + body = trimmed(String(body.dropLast())) + } + return body.isEmpty ? nil : body + } + + private struct Word { + let text: String + let start: Int + let end: Int + } + + private static func firstCodeWord(in lexer: SQLFeatureLexer, from start: Int) -> Word? { + var index = start + while index < lexer.count { + if let span = lexer.span(at: index) { + guard span.kind == .comment else { return nil } + index = max(span.end, index + 1) + continue + } + let unit = lexer.units[index] + if isBlank(unit) { + index += 1 + continue + } + guard lexer.isWordUnit(unit) else { return nil } + return word(in: lexer, startingAt: index) + } + return nil + } + + private static func lastCodeWord(in lexer: SQLFeatureLexer) -> Word? { + var last: Word? + var depth = 0 + var index = 0 + while index < lexer.count { + if let span = lexer.span(at: index) { + last = nil + index = max(span.end, index + 1) + continue + } + let unit = lexer.units[index] + if isBlank(unit) { + index += 1 + continue + } + if lexer.isWordUnit(unit) { + let found = word(in: lexer, startingAt: index) + last = depth == 0 ? found : nil + index = found.end + continue + } + if unit == openParen { depth += 1 } + if unit == closeParen { depth = max(0, depth - 1) } + last = nil + index += 1 + } + return last + } + + private static func word(in lexer: SQLFeatureLexer, startingAt start: Int) -> Word { + var end = start + while end < lexer.count, lexer.isWordUnit(lexer.units[end]) { + end += 1 + } + return Word(text: text(of: lexer, from: start, to: end), start: start, end: end) + } + + private static func isBlank(_ unit: UInt16) -> Bool { + unit == 0x20 || unit == 0x09 || unit == 0x0A || unit == 0x0D || unit == 0x0C || unit == 0x0B + } + + private static func text(of lexer: SQLFeatureLexer, from start: Int, to end: Int) -> String { + guard start < end else { return "" } + return String(decoding: lexer.units[start.. String { + text.trimmingCharacters(in: .whitespacesAndNewlines) + } +} diff --git a/Plugins/TableProPluginKit/SQLiteIndexCatalog.swift b/Plugins/TableProPluginKit/SQLiteIndexCatalog.swift new file mode 100644 index 0000000000..acf3d8d851 --- /dev/null +++ b/Plugins/TableProPluginKit/SQLiteIndexCatalog.swift @@ -0,0 +1,149 @@ +// +// SQLiteIndexCatalog.swift +// TableProPluginKit +// + +import Foundation + +public enum SQLiteIndexCatalog { + public static let lexicalFeatures: SQLLexicalFeatures = [ + .backtickQuotes, .bracketQuotedIdentifiers, .parenthesizedParameterNames, + ] + + private static let expressionColumnId = -2 + + public static func indexesQuery(table: String) -> String { + """ + SELECT il.name, il."unique", il.origin, ix.cid, ix.name, m.sql + FROM pragma_index_list('\(SQLiteMasterQueries.escapeLiteral(table))') il + LEFT JOIN pragma_index_xinfo(il.name) ix ON ix.key = 1 + LEFT JOIN sqlite_master m ON m.type = 'index' AND m.name = il.name + ORDER BY il.seq, ix.seqno + """ + } + + public static let schemaIndexesQuery = """ + SELECT t.name, il.name, il."unique", il.origin, ix.cid, ix.name, m.sql + FROM sqlite_master t + JOIN pragma_index_list(t.name) il + LEFT JOIN pragma_index_xinfo(il.name) ix ON ix.key = 1 + LEFT JOIN sqlite_master m ON m.type = 'index' AND m.name = il.name + WHERE t.type = 'table' AND t.name NOT LIKE 'sqlite_%' + ORDER BY t.name, il.seq, ix.seqno + """ + + public static func indexes(fromRows rows: [[PluginCellValue]]) -> [PluginIndexInfo] { + infos(grouping: rows.compactMap { Row($0, offset: 0) }) + } + + public static func indexesByTable(fromRows rows: [[PluginCellValue]]) -> [String: [PluginIndexInfo]] { + var order: [String] = [] + var rowsByTable: [String: [Row]] = [:] + for cells in rows { + guard let table = cells.first?.asText, let row = Row(cells, offset: 1) else { continue } + if rowsByTable[table] == nil { order.append(table) } + rowsByTable[table, default: []].append(row) + } + return order.reduce(into: [:]) { result, table in + result[table] = infos(grouping: rowsByTable[table] ?? []) + } + } + + public static func keyList(for index: PluginIndexDefinition, quote: (String) -> String) -> String { + if let spelling = index.ddlMethodAndKeys?.nilIfEmpty { + return spelling + } + let expressions = Set(index.expressions ?? []) + let keys = index.columns.map { expressions.contains($0) ? $0 : quote($0) } + return "(\(keys.joined(separator: ", ")))" + } + + public static func createStatement( + for index: PluginIndexDefinition, + table: String, + quote: (String) -> String + ) -> String { + let unique = index.isUnique ? "UNIQUE " : "" + var statement = "CREATE \(unique)INDEX \(quote(index.name)) ON \(quote(table)) " + + keyList(for: index, quote: quote) + if let predicate = index.whereClause?.nilIfEmpty { + statement += " WHERE \(predicate)" + } + return statement + } + + private struct Row { + let index: String + let isUnique: Bool + let origin: String + let columnId: Int? + let column: String? + let sql: String? + + init?(_ cells: [PluginCellValue], offset: Int) { + guard cells.count >= offset + 6, let index = cells[offset].asText else { return nil } + self.index = index + self.isUnique = cells[offset + 1].asText == "1" + self.origin = cells[offset + 2].asText ?? "c" + self.columnId = cells[offset + 3].asText.flatMap { Int($0) } + self.column = cells[offset + 4].asText + self.sql = cells[offset + 5].asText + } + } + + private struct Entry { + let name: String + let isUnique: Bool + let isPrimary: Bool + let sql: String? + var keys: [(columnId: Int?, column: String?)] + } + + private static func infos(grouping rows: [Row]) -> [PluginIndexInfo] { + var entries: [Entry] = [] + var positions: [String: Int] = [:] + for row in rows { + let key = (columnId: row.columnId, column: row.column) + let hasKey = row.columnId != nil + if let position = positions[row.index] { + if hasKey { entries[position].keys.append(key) } + continue + } + positions[row.index] = entries.count + entries.append(Entry( + name: row.index, + isUnique: row.isUnique, + isPrimary: row.origin == "pk", + sql: row.sql, + keys: hasKey ? [key] : [] + )) + } + return entries.map(info).sorted { $0.isPrimary && !$1.isPrimary } + } + + private static func info(for entry: Entry) -> PluginIndexInfo { + let statement = entry.sql.flatMap { SQLIndexKeyList.statement($0, lexicalFeatures: lexicalFeatures) } + let parts = statement.flatMap { $0.keyParts.count == entry.keys.count ? $0.keyParts : nil } + var expressions: [String] = [] + let columns = entry.keys.enumerated().compactMap { offset, key -> String? in + if let column = key.column { return column } + guard key.columnId == expressionColumnId, let parts else { return nil } + let expression = SQLIndexKeyList.withoutSortOrder(parts[offset], lexicalFeatures: lexicalFeatures) + expressions.append(expression) + return expression + } + return PluginIndexInfo( + name: entry.name, + columns: columns, + isUnique: entry.isUnique, + isPrimary: entry.isPrimary, + type: "BTREE", + whereClause: statement?.predicate, + expressions: expressions.isEmpty ? nil : expressions, + includedColumns: nil, + ddlMethodAndKeys: statement.map { "(\($0.keyList))" }, + ddlWhereClause: nil, + isValid: nil + ) + } +} diff --git a/TablePro/Core/SchemaTracking/SchemaStatementGenerator.swift b/TablePro/Core/SchemaTracking/SchemaStatementGenerator.swift index 3e9d8191d2..c2cdf64cb8 100644 --- a/TablePro/Core/SchemaTracking/SchemaStatementGenerator.swift +++ b/TablePro/Core/SchemaTracking/SchemaStatementGenerator.swift @@ -73,7 +73,8 @@ struct SchemaStatementGenerator { private func sortByDependency(_ changes: [SchemaChange]) -> [SchemaChange] { // Execution order for safety: // 1. Drop foreign keys first (includes modify FK, which requires drop+recreate) - // 2. Drop indexes (includes modify index, which requires drop+recreate) + // 2. Drop indexes (a modified index drops here and is added at 6, unless the driver + // replaces it in one statement and no column changes in the same save) // 3. Drop/modify columns // 4. Add columns // 5. Modify primary key @@ -91,6 +92,7 @@ struct SchemaStatementGenerator { var indexAdds: [SchemaChange] = [] var fkAdds: [SchemaChange] = [] var constraintAdds: [SchemaChange] = [] + let keepsIndexModifiesWhole = !changes.contains(where: Self.changesColumns) for change in changes { switch change { @@ -121,8 +123,12 @@ struct SchemaStatementGenerator { case .deleteIndex: indexDeletes.append(change) case .modifyIndex(let old, let new): - indexDeletes.append(.deleteIndex(old)) - indexAdds.append(.addIndex(new)) + if keepsIndexModifiesWhole, modifyIndexSQL(old: old, new: new) != nil { + indexAdds.append(change) + } else { + indexDeletes.append(.deleteIndex(old)) + indexAdds.append(.addIndex(new)) + } case .deleteColumn: columnDeletes.append(change) case .modifyColumn: @@ -142,6 +148,16 @@ struct SchemaStatementGenerator { + columnModifies + columnAdds + pkChanges + indexAdds + fkAdds + constraintAdds } + private static func changesColumns(_ change: SchemaChange) -> Bool { + switch change { + case .addColumn, .modifyColumn, .deleteColumn, .modifyPrimaryKey: + return true + case .addIndex, .modifyIndex, .deleteIndex, .addForeignKey, .modifyForeignKey, .deleteForeignKey, + .addCheckConstraint, .modifyCheckConstraint, .deleteCheckConstraint: + return false + } + } + // MARK: - Statement Generation private func generateStatements(for change: SchemaChange) throws -> [SchemaStatement] { @@ -216,14 +232,12 @@ struct SchemaStatementGenerator { } private func generateModifyIndex(old: EditableIndexDefinition, new: EditableIndexDefinition) -> [SchemaStatement] { - guard let dropSql = pluginDriver.generateDropIndexSQL(table: tableName, indexName: old.name), - let addSql = pluginDriver.generateAddIndexSQL(table: tableName, index: new.toPlugin()) else { - return [] - } - return [ - SchemaStatement(sql: dropSql, description: "Drop index '\(old.name)'", isDestructive: false), - SchemaStatement(sql: addSql, description: "Add index '\(new.name)'", isDestructive: false) - ] + guard let sql = modifyIndexSQL(old: old, new: new) else { return [] } + return [SchemaStatement(sql: sql, description: "Replace index '\(old.name)'", isDestructive: false)] + } + + private func modifyIndexSQL(old: EditableIndexDefinition, new: EditableIndexDefinition) -> String? { + pluginDriver.generateModifyIndexSQL(table: tableName, oldIndexName: old.name, newIndex: new.toPlugin()) } private func generateDeleteIndex(_ index: EditableIndexDefinition) -> SchemaStatement? { diff --git a/TablePro/Core/Utilities/SQL/SQLTokenCursor.swift b/TablePro/Core/Utilities/SQL/SQLTokenCursor.swift index cad161f52d..9e1319b97b 100644 --- a/TablePro/Core/Utilities/SQL/SQLTokenCursor.swift +++ b/TablePro/Core/Utilities/SQL/SQLTokenCursor.swift @@ -46,6 +46,8 @@ internal struct SQLTokenCursor { internal private(set) var parenDepth = 0 + internal var location: Int { index } + internal init(_ text: NSString, grammar: SQLLexicalGrammar) { self.text = text self.grammar = grammar diff --git a/TablePro/Models/Schema/IndexDefinition.swift b/TablePro/Models/Schema/IndexDefinition.swift index fb4f8df2a9..e3af900195 100644 --- a/TablePro/Models/Schema/IndexDefinition.swift +++ b/TablePro/Models/Schema/IndexDefinition.swift @@ -27,11 +27,12 @@ struct EditableIndexDefinition: Hashable, Codable, Identifiable { /// The server's own spellings of the method and key list and of `whereClause` for a /// `CREATE INDEX`, carried from the catalog read. /// - /// The method and key spelling applies only while `type`, `columns`, `expressions` and - /// `includedColumns` still hold what they were read with, and the predicate spelling only while - /// `whereClause` does. So a rename keeps both, an edit to the condition keeps the keys, and an - /// edit to the columns or the type writes the index from its fields. The pairs are stored rather - /// than cleared on edit, so changing a field and changing it back restores the spelling. + /// The method and key spelling applies only while `type`, `columns`, `columnPrefixes`, + /// `expressions` and `includedColumns` still hold what they were read with, and the predicate + /// spelling only while `whereClause` does. So a rename keeps both, an edit to the condition keeps + /// the keys, and an edit to the columns or the type writes the index from its fields. The pairs + /// are stored rather than cleared on edit, so changing a field and changing it back restores the + /// spelling. /// /// Not encoded. An index pasted from the clipboard can come from another connection, where /// `public.gin_trgm_ops` names a schema this one may not have. @@ -44,12 +45,19 @@ struct EditableIndexDefinition: Hashable, Codable, Identifiable { private struct KeyShape: Hashable { let type: IndexType let columns: [String] + let columnPrefixes: [String: Int] let expressions: [String] let includedColumns: [String] } private var keyShape: KeyShape { - KeyShape(type: type, columns: columns, expressions: expressions, includedColumns: includedColumns) + KeyShape( + type: type, + columns: columns, + columnPrefixes: columnPrefixes, + expressions: expressions, + includedColumns: includedColumns + ) } private enum CodingKeys: String, CodingKey { @@ -128,7 +136,13 @@ struct EditableIndexDefinition: Hashable, Codable, Identifiable { self.whereClause = whereClause self.expressions = expressions self.includedColumns = includedColumns - let shape = KeyShape(type: type, columns: columns, expressions: expressions, includedColumns: includedColumns) + let shape = KeyShape( + type: type, + columns: columns, + columnPrefixes: columnPrefixes, + expressions: expressions, + includedColumns: includedColumns + ) self.catalogKeys = ddlMethodAndKeys.map { CatalogSpelling(value: shape, spelling: $0) } if let whereClause, let ddlWhereClause { self.catalogPredicate = CatalogSpelling(value: whereClause, spelling: ddlWhereClause) diff --git a/TablePro/Models/Schema/IndexKeyDialect.swift b/TablePro/Models/Schema/IndexKeyDialect.swift new file mode 100644 index 0000000000..26bd85e841 --- /dev/null +++ b/TablePro/Models/Schema/IndexKeyDialect.swift @@ -0,0 +1,26 @@ +// +// IndexKeyDialect.swift +// TablePro +// + +import Foundation + +struct IndexKeyDialect: Equatable, Sendable { + let takesPrefixLengths: Bool + let takesExpressions: Bool + + static let columnsOnly = IndexKeyDialect(takesPrefixLengths: false, takesExpressions: false) + + static func forType(_ databaseType: DatabaseType) -> IndexKeyDialect { + switch databaseType { + case .mysql: + return IndexKeyDialect(takesPrefixLengths: true, takesExpressions: true) + case .mariadb, .tidb, .oceanbase: + return IndexKeyDialect(takesPrefixLengths: true, takesExpressions: false) + case .postgresql, .pglite, .sqlite, .libsql, .turso, .cloudflareD1, .duckdb: + return IndexKeyDialect(takesPrefixLengths: false, takesExpressions: true) + default: + return .columnsOnly + } + } +} diff --git a/TablePro/Models/Schema/IndexKeyList.swift b/TablePro/Models/Schema/IndexKeyList.swift new file mode 100644 index 0000000000..4179783898 --- /dev/null +++ b/TablePro/Models/Schema/IndexKeyList.swift @@ -0,0 +1,189 @@ +// +// IndexKeyList.swift +// TablePro +// + +import Foundation +import TableProSQLGrammar + +struct IndexKeyContext { + let columnNames: [String] + let dialect: IndexKeyDialect + let grammar: SQLLexicalGrammar + + func column(named name: String) -> String? { + columnNames.first { $0 == name } + ?? columnNames.first { $0.compare(name, options: .caseInsensitive) == .orderedSame } + } +} + +enum IndexKeyPart: Equatable { + case column(String) + case prefixedColumn(String, length: Int) + case expression(String) + + var entry: String { + switch self { + case .column(let name), .prefixedColumn(let name, _): + return name + case .expression(let text): + return text + } + } +} + +enum IndexKeyList { + private static let sortOrderWords: Set = ["ASC", "DESC"] + private static let nullsPlacementWords: Set = ["FIRST", "LAST"] + + static func parts(of text: String, keeping expressions: [String], in context: IndexKeyContext) -> [IndexKeyPart] { + entries(of: text, keeping: expressions, in: context).map { + classify($0, keeping: expressions, in: context) + } + } + + static func entries(of text: String, keeping expressions: [String], in context: IndexKeyContext) -> [String] { + let knownNames = self.knownNames(expressions: expressions, columns: context.columnNames) + var entries: [String] = [] + var remaining = text as NSString + while remaining.length > 0 { + let start = remaining.rangeOfCharacter(from: CharacterSet.whitespacesAndNewlines.inverted).location + guard start != NSNotFound else { break } + remaining = remaining.substring(from: start) as NSString + let length = knownEntryLength(in: remaining, knownNames: knownNames) + ?? codeEntryLength(in: remaining, grammar: context.grammar) + entries.append(remaining.substring(to: length).trimmingCharacters(in: .whitespacesAndNewlines)) + remaining = remaining.substring(from: min(length + 1, remaining.length)) as NSString + } + return entries.filter { !$0.isEmpty } + } + + private struct KnownName { + let text: String + let ignoresCase: Bool + } + + private static func knownNames(expressions: [String], columns: [String]) -> [KnownName] { + let names = expressions.filter { !$0.isEmpty }.map { KnownName(text: $0, ignoresCase: false) } + + columns.filter { !$0.isEmpty }.map { KnownName(text: $0, ignoresCase: true) } + return names.sorted { ($0.text as NSString).length > ($1.text as NSString).length } + } + + private static func knownEntryLength(in text: NSString, knownNames: [KnownName]) -> Int? { + for name in knownNames { + let options: NSString.CompareOptions = name.ignoresCase ? [.anchored, .caseInsensitive] : [.anchored] + let match = text.range(of: name.text, options: options) + guard match.location == 0 else { continue } + let tail = text.substring(from: match.length) as NSString + let next = tail.rangeOfCharacter(from: CharacterSet.whitespacesAndNewlines.inverted) + guard next.location != NSNotFound else { return text.length } + if tail.character(at: next.location) == SQLTokenCursor.comma { + return match.length + next.location + } + } + return nil + } + + private static func codeEntryLength(in text: NSString, grammar: SQLLexicalGrammar) -> Int { + var cursor = SQLTokenCursor(text, grammar: grammar) + while let token = cursor.next() { + if token.isSymbol(SQLTokenCursor.comma), cursor.parenDepth == 0 { + return cursor.location - 1 + } + } + return text.length + } + + private static func classify( + _ entry: String, + keeping expressions: [String], + in context: IndexKeyContext + ) -> IndexKeyPart { + if expressions.contains(entry) { return .expression(entry) } + if let column = context.column(named: entry) { return .column(column) } + let scan = Scan(entry, grammar: context.grammar) + if let name = scan.singleName { return .column(context.column(named: name) ?? name) } + if let name = scan.parenthesizedName(in: entry) { return .column(context.column(named: name) ?? name) } + if context.dialect.takesPrefixLengths, let prefix = scan.prefix(of: entry) { + return .prefixedColumn(context.column(named: prefix.name) ?? prefix.name, length: prefix.length) + } + guard context.dialect.takesExpressions, scan.isWritableExpression, + isPlainCode(entry, grammar: context.grammar) else { return .column(entry) } + return .expression(entry) + } + + private static func isPlainCode(_ entry: String, grammar: SQLLexicalGrammar) -> Bool { + let text = entry as NSString + var index = 0 + while index < text.length { + guard let span = SQLNonCodeSpan.span(at: index, in: text, grammar: grammar) else { + index += 1 + continue + } + guard span.kind == .quoted, span.isTerminated else { return false } + index = max(span.end, index + 1) + } + return true + } + + private struct Scan { + private(set) var tokens: [SQLTokenCursor.Token] = [] + private(set) var isBalanced = true + + init(_ entry: String, grammar: SQLLexicalGrammar) { + let text = entry as NSString + var cursor = SQLTokenCursor(text, grammar: grammar) + while true { + let depth = cursor.parenDepth + guard let token = cursor.next() else { break } + if token.isSymbol(SQLTokenCursor.closeParen), depth == 0 { isBalanced = false } + tokens.append(token) + } + isBalanced = isBalanced && cursor.parenDepth == 0 && cursor.location >= text.length + } + + var singleName: String? { + guard tokens.count == 1, case .quotedIdentifier(let name) = tokens[0] else { return nil } + return name + } + + func parenthesizedName(in entry: String) -> String? { + guard tokens.count == 3, tokens[0].isSymbol(SQLTokenCursor.openParen), + tokens[2].isSymbol(SQLTokenCursor.closeParen) else { return nil } + switch tokens[1] { + case .word: + return String(entry.dropFirst().dropLast()).trimmingCharacters(in: .whitespacesAndNewlines) + case .quotedIdentifier(let name): + return name + case .literal, .symbol: + return nil + } + } + + func prefix(of entry: String) -> (name: String, length: Int)? { + guard tokens.count == 4, tokens[1].isSymbol(SQLTokenCursor.openParen), + let digits = tokens[2].word, let length = Int(digits), length > 0, + tokens[3].isSymbol(SQLTokenCursor.closeParen) else { return nil } + switch tokens[0] { + case .quotedIdentifier(let name): + return (name, length) + case .word: + let name = entry.prefix { $0 != "(" }.trimmingCharacters(in: .whitespacesAndNewlines) + return (name, length) + case .literal, .symbol: + return nil + } + } + + var isWritableExpression: Bool { + isBalanced && tokens.count > 1 && !endsWithSortOrder + } + + private var endsWithSortOrder: Bool { + guard let last = tokens.last?.word else { return false } + if IndexKeyList.sortOrderWords.contains(last) { return true } + guard IndexKeyList.nullsPlacementWords.contains(last), tokens.count >= 2 else { return false } + return tokens[tokens.count - 2].word == "NULLS" + } + } +} diff --git a/TablePro/Resources/Localizable.xcstrings b/TablePro/Resources/Localizable.xcstrings index 3b945184d8..cae6e3c2d9 100644 --- a/TablePro/Resources/Localizable.xcstrings +++ b/TablePro/Resources/Localizable.xcstrings @@ -182758,6 +182758,12 @@ }, "False for an index the engine reports as invalid, which queries skip and exports leave out" : { + }, + "%@ cannot index an expression. Index a generated column instead." : { + + }, + "Indexing an expression needs MySQL 8.0.13 or later." : { + } }, "version" : "1.1" diff --git a/TablePro/Views/Structure/CreateTableGridDelegate.swift b/TablePro/Views/Structure/CreateTableGridDelegate.swift index 90443321ed..32c9344c22 100644 --- a/TablePro/Views/Structure/CreateTableGridDelegate.swift +++ b/TablePro/Views/Structure/CreateTableGridDelegate.swift @@ -71,7 +71,12 @@ final class CreateTableGridDelegate: DataGridViewDelegate { case .indexes: guard row < structureChangeManager.workingIndexes.count else { return } var idx = structureChangeManager.workingIndexes[row] - StructureEditingSupport.updateIndex(&idx, at: column, with: newValue ?? "") + StructureEditingSupport.updateIndex( + &idx, + at: column, + with: newValue ?? "", + keys: StructureEditingSupport.indexKeyContext(for: structureChangeManager, on: connection) + ) structureChangeManager.updateIndex(id: idx.id, with: idx) case .foreignKeys: diff --git a/TablePro/Views/Structure/StructureEditingSupport.swift b/TablePro/Views/Structure/StructureEditingSupport.swift index bdd3341a91..3487db858a 100644 --- a/TablePro/Views/Structure/StructureEditingSupport.swift +++ b/TablePro/Views/Structure/StructureEditingSupport.swift @@ -57,29 +57,15 @@ enum StructureEditingSupport { } } - static func updateIndex(_ index: inout EditableIndexDefinition, at colIndex: Int, with value: String) { + static func updateIndex( + _ index: inout EditableIndexDefinition, + at colIndex: Int, + with value: String, + keys: IndexKeyContext + ) { switch colIndex { case 0: index.name = value - case 1: - let previousExpressions = Set(index.expressions) - var prefixes: [String: Int] = [:] - var expressions: [String] = [] - index.columns = indexKeyParts(value, expressions: index.expressions).map { trimmed in - if previousExpressions.contains(trimmed) { - expressions.append(trimmed) - return trimmed - } - if let parenStart = trimmed.firstIndex(of: "("), - let parenEnd = trimmed.firstIndex(of: ")"), - let prefix = Int(trimmed[trimmed.index(after: parenStart).. [String] { - let longestFirst = expressions.filter { !$0.isEmpty }.sorted { $0.count > $1.count } - var parts: [String] = [] - var remaining = value[...] - while !remaining.isEmpty { - remaining = remaining.drop(while: isBlank) - if let expression = longestFirst.first(where: { entry(in: remaining, isWhole: $0) }) { - parts.append(expression) - remaining = remaining.dropFirst(expression.count).drop(while: isBlank).dropFirst() - continue - } - let entryEnd = remaining.firstIndex(of: ",") ?? remaining.endIndex - parts.append(remaining[.. Bool { - guard text.hasPrefix(expression) else { return false } - let rest = text.dropFirst(expression.count).drop(while: isBlank) - return rest.isEmpty || rest.first == "," + static func indexKeyContext( + for changeManager: StructureChangeManager, + on connection: DatabaseConnection + ) -> IndexKeyContext { + IndexKeyContext( + columnNames: changeManager.workingColumns.map(\.name), + dialect: .forType(connection.type), + grammar: SQLLexicalResolver.executionGrammar(for: connection.type, connectionId: connection.id) + ) } - nonisolated private static func isBlank(_ character: Character) -> Bool { - character.unicodeScalars.allSatisfy { CharacterSet.whitespaces.contains($0) } + private static func applyKeyParts(_ parts: [IndexKeyPart], to index: inout EditableIndexDefinition) { + index.columns = parts.map(\.entry) + index.columnPrefixes = parts.reduce(into: [:]) { prefixes, part in + if case .prefixedColumn(let name, let length) = part { prefixes[name] = length } + } + index.expressions = parts.compactMap { part in + guard case .expression(let text) = part else { return nil } + return text + } } static func updateForeignKey(_ fk: inout EditableForeignKeyDefinition, at index: Int, with value: String) { @@ -171,8 +140,8 @@ enum StructureEditingSupport { } /// Grid columns: 0 Name, 1 Columns, 2 Type, 3 Unique, 4 Condition. Index 1 - /// covers `columns` and `columnPrefixes` together because prefixes render - /// inline with the column list (`email(10)`). `isPrimary` and `comment` are + /// covers `columns`, `columnPrefixes` and `expressions` together because all three + /// render in the one column list (`email(10), lower(name)`). `isPrimary` and `comment` are /// intentionally excluded; neither has a grid column on the Indexes tab, /// so changes to them produce no tint. Matches the data-tab convention of /// only tinting fields the user can actually see. @@ -182,7 +151,10 @@ enum StructureEditingSupport { ) -> Set { var indices: Set = [] if old.name != new.name { indices.insert(0) } - if old.columns != new.columns || old.columnPrefixes != new.columnPrefixes { indices.insert(1) } + if old.columns != new.columns || old.columnPrefixes != new.columnPrefixes + || old.expressions != new.expressions { + indices.insert(1) + } if old.type != new.type { indices.insert(2) } if old.isUnique != new.isUnique { indices.insert(3) } if old.whereClause != new.whereClause { indices.insert(4) } diff --git a/TablePro/Views/Structure/StructureGridDelegate.swift b/TablePro/Views/Structure/StructureGridDelegate.swift index 1b1f1da630..5c722c05cc 100644 --- a/TablePro/Views/Structure/StructureGridDelegate.swift +++ b/TablePro/Views/Structure/StructureGridDelegate.swift @@ -179,7 +179,12 @@ final class StructureGridDelegate: DataGridViewDelegate { case .indexes: guard sourceRowIndex < structureChangeManager.workingIndexes.count else { return } var idx = structureChangeManager.workingIndexes[sourceRowIndex] - StructureEditingSupport.updateIndex(&idx, at: column, with: newValue ?? "") + StructureEditingSupport.updateIndex( + &idx, + at: column, + with: newValue ?? "", + keys: StructureEditingSupport.indexKeyContext(for: structureChangeManager, on: connection) + ) structureChangeManager.updateIndex(id: idx.id, with: idx) case .foreignKeys: diff --git a/TableProTests/Core/SchemaTracking/SchemaStatementGeneratorPluginTests.swift b/TableProTests/Core/SchemaTracking/SchemaStatementGeneratorPluginTests.swift index 2e6cf4aba1..024cc0514c 100644 --- a/TableProTests/Core/SchemaTracking/SchemaStatementGeneratorPluginTests.swift +++ b/TableProTests/Core/SchemaTracking/SchemaStatementGeneratorPluginTests.swift @@ -18,6 +18,7 @@ private final class MockPluginDriver: PluginDatabaseDriver, @unchecked Sendable var dropColumnHandler: ((String, String) -> String?)? var addIndexHandler: ((String, PluginIndexDefinition) -> String?)? var dropIndexHandler: ((String, String) -> String?)? + var modifyIndexHandler: ((String, String, PluginIndexDefinition) -> String?)? var addForeignKeyHandler: ((String, PluginForeignKeyDefinition) -> String?)? var dropForeignKeyHandler: ((String, String) -> String?)? var modifyPrimaryKeyHandler: ((String, [String], [String]) -> [String]?)? @@ -44,6 +45,10 @@ private final class MockPluginDriver: PluginDatabaseDriver, @unchecked Sendable dropIndexHandler?(table, indexName) } + func generateModifyIndexSQL(table: String, oldIndexName: String, newIndex: PluginIndexDefinition) -> String? { + modifyIndexHandler?(table, oldIndexName, newIndex) + } + func generateAddForeignKeySQL(table: String, fk: PluginForeignKeyDefinition) -> String? { addForeignKeyHandler?(table, fk) } @@ -363,6 +368,50 @@ struct SchemaStatementGeneratorPluginTests { } } + @Test("A modified index the driver replaces in one statement is written as that one statement") + func modifyIndexInOneStatement() throws { + let mock = MockPluginDriver() + mock.dropIndexHandler = { _, name in "DROP INDEX \(name)" } + mock.addIndexHandler = { table, idx in "CREATE INDEX \(idx.name) ON \(table)" } + mock.modifyIndexHandler = { table, oldName, idx in + "ALTER TABLE \(table) DROP INDEX \(oldName), ADD INDEX \(idx.name)" + } + + let generator = SchemaStatementGenerator(tableName: "users", pluginDriver: mock) + let stmts = try generator.generate(changes: [ + .modifyIndex(old: makeIndex(name: "idx_email"), new: makeIndex(name: "idx_email_name")), + .addIndex(makeIndex(name: "idx_other")) + ]) + + let sql = stmts.map { $0.sql } + #expect(sql == [ + "ALTER TABLE users DROP INDEX idx_email, ADD INDEX idx_email_name;", + "CREATE INDEX idx_other ON users;" + ]) + } + + @Test("A modified index is split around column changes even when the driver can replace it whole") + func modifyIndexSplitsAroundColumnWork() throws { + let mock = MockPluginDriver() + mock.addColumnHandler = { table, col in "ALTER TABLE \(table) ADD COLUMN \(col.name)" } + mock.dropIndexHandler = { _, name in "DROP INDEX \(name)" } + mock.addIndexHandler = { table, idx in "CREATE INDEX \(idx.name) ON \(table)" } + mock.modifyIndexHandler = { table, oldName, _ in "ALTER TABLE \(table) REPLACE \(oldName)" } + + let generator = SchemaStatementGenerator(tableName: "users", pluginDriver: mock) + let stmts = try generator.generate(changes: [ + .modifyIndex(old: makeIndex(name: "idx_name"), new: makeIndex(name: "idx_name", columns: ["name", "email"])), + .addColumn(makeColumn(name: "email")) + ]) + + let sql = stmts.map { $0.sql } + #expect(sql == [ + "DROP INDEX idx_name;", + "ALTER TABLE users ADD COLUMN email;", + "CREATE INDEX idx_name ON users;" + ]) + } + @Test("Modify foreign key generates drop and create via plugin") func modifyForeignKeyViaPlugin() throws { let mock = MockPluginDriver() diff --git a/TableProTests/Core/SchemaTracking/StructureChangeManagerIndexExpressionTests.swift b/TableProTests/Core/SchemaTracking/StructureChangeManagerIndexExpressionTests.swift index 388169d945..a105778320 100644 --- a/TableProTests/Core/SchemaTracking/StructureChangeManagerIndexExpressionTests.swift +++ b/TableProTests/Core/SchemaTracking/StructureChangeManagerIndexExpressionTests.swift @@ -46,6 +46,10 @@ struct StructureChangeManagerIndexExpressionTests { return new } + private func keys(_ manager: StructureChangeManager) -> IndexKeyContext { + .testing(.postgresql, columns: manager.workingColumns.map(\.name)) + } + @Test("Renaming an expression index raises no missing-column error and recreates it from its spelling") func renameKeepsTheExpression() throws { let manager = loadedManager() @@ -64,10 +68,10 @@ struct StructureChangeManagerIndexExpressionTests { func reenteredColumnsKeepTheExpression() throws { let manager = loadedManager() var edited = manager.workingIndexes[0] - StructureEditingSupport.updateIndex(&edited, at: 1, with: "tenant_id, lower(email)") + StructureEditingSupport.updateIndex(&edited, at: 1, with: "tenant_id, lower(email)", keys: keys(manager)) #expect(edited == manager.workingIndexes[0]) - StructureEditingSupport.updateIndex(&edited, at: 1, with: "lower(email), tenant_id") + StructureEditingSupport.updateIndex(&edited, at: 1, with: "lower(email), tenant_id", keys: keys(manager)) manager.updateIndex(id: edited.id, with: edited) #expect(manager.validationErrors.isEmpty) let new = try #require(stagedIndex(manager)) @@ -76,6 +80,39 @@ struct StructureChangeManagerIndexExpressionTests { #expect(sql == #"CREATE UNIQUE INDEX "users_tenant_lower_email" ON "public"."users" USING btree ((lower(email)), "tenant_id") INCLUDE ("name")"#) } + @Test("A new index typed with an expression validates and writes the expression in parentheses") + func typedExpressionOnANewIndex() throws { + let manager = loadedManager() + manager.addNewIndex() + var added = try #require(manager.workingIndexes.last) + StructureEditingSupport.updateIndex(&added, at: 0, with: "ix", keys: keys(manager)) + StructureEditingSupport.updateIndex(&added, at: 1, with: "tenant_id, lower(email)", keys: keys(manager)) + manager.updateIndex(id: added.id, with: added) + + #expect(manager.validationErrors.isEmpty) + #expect(manager.canCommit) + guard case .addIndex(let staged)? = manager.getChangesArray().last else { + Issue.record("Expected a staged index add") + return + } + let sql = PostgreSQLIndexClauses.createStatement(for: staged.toPlugin(), qualifiedTable: #""public"."users""#) + #expect(sql == #"CREATE INDEX "ix" ON "public"."users" USING btree ("tenant_id", (lower(email)))"#) + } + + @Test("An expression typed with a sort order is refused before anything runs") + func typedSortOrderIsRefused() throws { + let manager = loadedManager() + manager.addNewIndex() + var added = try #require(manager.workingIndexes.last) + StructureEditingSupport.updateIndex(&added, at: 0, with: "ix", keys: keys(manager)) + StructureEditingSupport.updateIndex(&added, at: 1, with: "lower(email) DESC", keys: keys(manager)) + manager.updateIndex(id: added.id, with: added) + + #expect(manager.validationErrors[.index(added.id)] + == "Index references a column that does not exist: lower(email) DESC") + #expect(!manager.canCommit) + } + @Test("An INCLUDE column the table does not have is reported") func missingIncludedColumnIsReported() { let manager = loadedManager() diff --git a/TableProTests/Core/Utilities/SQL/SQLTokenCursorTests.swift b/TableProTests/Core/Utilities/SQL/SQLTokenCursorTests.swift index 617c824549..5ad3cccffa 100644 --- a/TableProTests/Core/Utilities/SQL/SQLTokenCursorTests.swift +++ b/TableProTests/Core/Utilities/SQL/SQLTokenCursorTests.swift @@ -133,4 +133,15 @@ struct SQLTokenCursorTests { let tokens = Self.tokens("SELECT q'[it's; ok]' FROM dual", grammar: TestGrammar.oracle) #expect(tokens == [.word("SELECT"), .literal, .word("FROM"), .word("DUAL")]) } + + @Test("The location is just past the last token read, and stays on a depth-0 semicolon") + func locationFollowsTheTokens() { + var cursor = SQLTokenCursor("f(a, 'b,c'), d; e", grammar: TestGrammar.postgres) + var commas: [Int] = [] + while let token = cursor.next() { + if token.isSymbol(SQLTokenCursor.comma), cursor.parenDepth == 0 { commas.append(cursor.location - 1) } + } + #expect(commas == [11]) + #expect(cursor.location == 14) + } } diff --git a/TableProTests/Helpers/IndexKeyContext+Testing.swift b/TableProTests/Helpers/IndexKeyContext+Testing.swift new file mode 100644 index 0000000000..0a217eaa40 --- /dev/null +++ b/TableProTests/Helpers/IndexKeyContext+Testing.swift @@ -0,0 +1,17 @@ +// +// IndexKeyContext+Testing.swift +// TableProTests +// + +import Foundation +@testable import TablePro + +extension IndexKeyContext { + static func testing(_ databaseType: DatabaseType, columns: [String] = []) -> IndexKeyContext { + IndexKeyContext( + columnNames: columns, + dialect: .forType(databaseType), + grammar: databaseType.lexicalGrammar + ) + } +} diff --git a/TableProTests/Models/Schema/IndexDefinitionCatalogSpellingTests.swift b/TableProTests/Models/Schema/IndexDefinitionCatalogSpellingTests.swift index 4743e9af37..3a0caff547 100644 --- a/TableProTests/Models/Schema/IndexDefinitionCatalogSpellingTests.swift +++ b/TableProTests/Models/Schema/IndexDefinitionCatalogSpellingTests.swift @@ -77,6 +77,20 @@ struct IndexDefinitionCatalogSpellingTests { #expect(type.ddlMethodAndKeys == nil) } + @Test("A changed key prefix retires the key spelling") + func prefixEditRetiresTheKeySpelling() { + let keys = "(`v` DESC, `email`(20)) USING BTREE" + var index = EditableIndexDefinition.from(IndexInfo( + name: "i_desc", columns: ["v", "email"], isUnique: false, isPrimary: false, type: "BTREE", + columnPrefixes: ["email": 20], ddlMethodAndKeys: keys + )) + index.name = "i_desc_renamed" + #expect(index.ddlMethodAndKeys == keys) + + index.columnPrefixes = ["email": 30] + #expect(index.ddlMethodAndKeys == nil) + } + @Test("Changing a field and changing it back restores the spelling") func revertRestores() { var index = Self.loaded() diff --git a/TableProTests/Models/Schema/IndexKeyListTests.swift b/TableProTests/Models/Schema/IndexKeyListTests.swift new file mode 100644 index 0000000000..62c5d5d37b --- /dev/null +++ b/TableProTests/Models/Schema/IndexKeyListTests.swift @@ -0,0 +1,145 @@ +// +// IndexKeyListTests.swift +// TableProTests +// + +import Foundation +@testable import TablePro +import Testing + +@Suite("Index key list") +struct IndexKeyListTests { + private static let columns = ["id", "tenant_id", "email", "a", "b", "v", "Weird, Name", "owner's_id", "lower(v)"] + + private func parts( + _ text: String, + on databaseType: DatabaseType = .postgresql, + keeping expressions: [String] = [] + ) -> [IndexKeyPart] { + IndexKeyList.parts( + of: text, + keeping: expressions, + in: .testing(databaseType, columns: Self.columns) + ) + } + + @Test("A typed expression keeps the comma inside its call") + func typedExpressionKeepsItsComma() { + #expect(parts("id, coalesce(a, b)") == [.column("id"), .expression("coalesce(a, b)")]) + } + + @Test("PostgreSQL's own deparse splits at the commas between keys only") + func postgresDeparseSplits() { + #expect( + parts("((a || ', '::text) || b), id") + == [.expression("((a || ', '::text) || b)"), .column("id")] + ) + #expect(parts("(id + 1), (v)::character varying(10)") == [ + .expression("(id + 1)"), .expression("(v)::character varying(10)") + ]) + } + + @Test("A CASE spread over several lines is one key") + func multiLineCaseIsOneKey() { + let text = "CASE\n WHEN a IS NULL THEN b\n ELSE a\nEND, id" + #expect(parts(text) == [.expression("CASE\n WHEN a IS NULL THEN b\n ELSE a\nEND"), .column("id")]) + } + + @Test("A column whose name holds a comma or an apostrophe is matched whole") + func knownColumnsAreMatchedWhole() { + #expect(parts("Weird, Name, owner's_id") == [.column("Weird, Name"), .column("owner's_id")]) + #expect(parts("owner's_id, tenant_id") == [.column("owner's_id"), .column("tenant_id")]) + } + + @Test("A column name is found whatever its case, alone or in one pair of parentheses") + func columnsResolveToTheirSpelling() { + #expect(parts("EMAIL, (v), ( Tenant_ID )") == [.column("email"), .column("v"), .column("tenant_id")]) + #expect(parts("(nickname)") == [.column("nickname")]) + } + + @Test("A column named like an expression stays a column") + func columnNamedLikeAnExpression() { + #expect(parts("lower(v)") == [.column("lower(v)")]) + } + + @Test("A quoted identifier is a column, known or not") + func quotedIdentifierIsAColumn() { + #expect(parts(#""Weird, Name", "we ird""#) == [.column("Weird, Name"), .column("we ird")]) + #expect(parts("`email`", on: .mysql) == [.column("email")]) + } + + @Test("name(N) is a key prefix on MySQL and a function call on PostgreSQL") + func prefixDependsOnTheEngine() { + #expect(parts("email(20), id", on: .mysql) == [.prefixedColumn("email", length: 20), .column("id")]) + #expect(parts("EMAIL(20)", on: .mariadb) == [.prefixedColumn("email", length: 20)]) + #expect(parts("email(20)") == [.expression("email(20)")]) + } + + @Test("An engine that indexes no expression reads one as a column") + func columnsOnlyEngine() { + #expect(parts("lower(email)", on: .mssql) == [.column("lower(email)")]) + #expect(parts("email(20)", on: .oracle) == [.column("email(20)")]) + #expect(parts("lower(email)", on: .mariadb) == [.column("lower(email)")]) + } + + @Test("An expression the index already has stays an expression on any engine") + func existingExpressionIsKept() { + #expect(parts("f(20)", on: .mysql, keeping: ["f(20)"]) == [.expression("f(20)")]) + #expect(parts("UPPER([a]), id", on: .mssql, keeping: ["UPPER([a])"]) == [.expression("UPPER([a])"), .column("id")]) + } + + @Test("MySQL reads a backslash-escaped quote inside a string as part of it") + func mysqlBackslashStrings() { + #expect( + parts(#"concat(`a`,_utf8mb4'it\'s, ok'), id"#, on: .mysql) + == [.expression(#"concat(`a`,_utf8mb4'it\'s, ok')"#), .column("id")] + ) + } + + @Test("PostgreSQL's literal backslash, escape strings and dollar quotes end where the server ends them") + func postgresStrings() { + #expect(parts(#"concat(a, 'x\'), id"#) == [.expression(#"concat(a, 'x\')"#), .column("id")]) + #expect(parts(#"concat(a, E'x\', y'), id"#) == [.expression(#"concat(a, E'x\', y')"#), .column("id")]) + #expect(parts("concat(a, $$x, y$$), id") == [.expression("concat(a, $$x, y$$)"), .column("id")]) + } + + @Test("A sort order cannot be typed into the key") + func sortOrderIsNotAnExpression() { + #expect(parts("lower(v) DESC") == [.column("lower(v) DESC")]) + #expect(parts("v asc, id") == [.column("v asc"), .column("id")]) + #expect(parts("lower(v) NULLS LAST") == [.column("lower(v) NULLS LAST")]) + #expect(parts("lower(v) COLLATE NOCASE DESC", on: .sqlite) == [.column("lower(v) COLLATE NOCASE DESC")]) + #expect(parts("(lower(v)) DESC", on: .mysql) == [.column("(lower(v)) DESC")]) + } + + @Test("Text that is not whole SQL is read as a column, so the column check names it") + func brokenTextIsAColumn() { + #expect(parts("lower(v") == [.column("lower(v")]) + #expect(parts("v)") == [.column("v)")]) + #expect(parts("lower('v)") == [.column("lower('v)")]) + #expect(parts("lower(v) -- note") == [.column("lower(v) -- note")]) + #expect(parts("lower(v); DROP TABLE t") == [.column("lower(v); DROP TABLE t")]) + #expect(parts("emial, id") == [.column("emial"), .column("id")]) + } + + @Test("Empty entries are dropped") + func emptyEntriesAreDropped() { + #expect(parts("").isEmpty) + #expect(parts("a,,b,") == [.column("a"), .column("b")]) + #expect(parts(" , a , ") == [.column("a")]) + } + + @Test("Engines that write an expression key take one; the rest take column names") + func dialectPerEngine() { + for type in [DatabaseType.postgresql, .pglite, .sqlite, .libsql, .turso, .cloudflareD1, .duckdb] { + #expect(IndexKeyDialect.forType(type) == IndexKeyDialect(takesPrefixLengths: false, takesExpressions: true)) + } + #expect(IndexKeyDialect.forType(.mysql) == IndexKeyDialect(takesPrefixLengths: true, takesExpressions: true)) + for type in [DatabaseType.mariadb, .tidb, .oceanbase] { + #expect(IndexKeyDialect.forType(type) == IndexKeyDialect(takesPrefixLengths: true, takesExpressions: false)) + } + for type in [DatabaseType.cockroachdb, .redshift, .mssql, .oracle, DatabaseType(rawValue: "FutureDB")] { + #expect(IndexKeyDialect.forType(type) == .columnsOnly) + } + } +} diff --git a/TableProTests/Models/Schema/SQLiteIndexCatalogTests.swift b/TableProTests/Models/Schema/SQLiteIndexCatalogTests.swift new file mode 100644 index 0000000000..5ad9e8baae --- /dev/null +++ b/TableProTests/Models/Schema/SQLiteIndexCatalogTests.swift @@ -0,0 +1,221 @@ +// +// SQLiteIndexCatalogTests.swift +// TableProTests +// + +import Foundation +import SQLite3 +@testable import TablePro +import TableProPluginKit +import Testing + +private final class InMemorySQLite { + private var handle: OpaquePointer? + + init() throws { + guard sqlite3_open(":memory:", &handle) == SQLITE_OK else { throw SQLiteTestError(message: "open") } + } + + deinit { + sqlite3_close_v2(handle) + } + + func run(_ sql: String) throws { + var error: UnsafeMutablePointer? + guard sqlite3_exec(handle, sql, nil, nil, &error) == SQLITE_OK else { + let message = error.map { String(cString: $0) } ?? "exec" + sqlite3_free(error) + throw SQLiteTestError(message: message) + } + } + + func rows(_ sql: String) throws -> [[PluginCellValue]] { + var statement: OpaquePointer? + guard sqlite3_prepare_v2(handle, sql, -1, &statement, nil) == SQLITE_OK else { + throw SQLiteTestError(message: String(cString: sqlite3_errmsg(handle))) + } + defer { sqlite3_finalize(statement) } + var rows: [[PluginCellValue]] = [] + while sqlite3_step(statement) == SQLITE_ROW { + rows.append((0.. InMemorySQLite { + let database = try InMemorySQLite() + try database.run(Self.table) + for statement in Self.indexes { + try database.run(statement) + } + return database + } + + private func read(_ database: InMemorySQLite) throws -> [String: PluginIndexInfo] { + let indexes = SQLiteIndexCatalog.indexes(fromRows: try database.rows(SQLiteIndexCatalog.indexesQuery(table: "t"))) + return Dictionary(uniqueKeysWithValues: indexes.map { ($0.name, $0) }) + } + + private func quote(_ name: String) -> String { + "\"\(name.replacingOccurrences(of: "\"", with: "\"\""))\"" + } + + @Test("The measured rows give every key part, expression, predicate and spelling") + func measuredRowsGroup() throws { + let indexes = Dictionary( + uniqueKeysWithValues: SQLiteIndexCatalog.indexes(fromRows: Self.measuredRows).map { ($0.name, $0) } + ) + + let mixed = try #require(indexes["i_mix"]) + #expect(mixed.columns == ["id", "coalesce(a, b)"]) + #expect(mixed.expressions == ["coalesce(a, b)"]) + #expect(mixed.ddlMethodAndKeys == "(id, coalesce(a, b))") + + #expect(indexes["i_fn"]?.columns == ["lower(v)"]) + #expect(indexes["i_fn"]?.expressions == ["lower(v)"]) + + let descending = try #require(indexes["i_desc"]) + #expect(descending.columns == ["lower(v) COLLATE NOCASE", "v"]) + #expect(descending.expressions == ["lower(v) COLLATE NOCASE"]) + #expect(descending.ddlMethodAndKeys == "(lower(v) COLLATE NOCASE DESC, v DESC)") + + #expect(indexes["i_partial"]?.columns == ["a"]) + #expect(indexes["i_partial"]?.whereClause == "b IS NOT NULL") + + #expect(indexes["i_colnamed"]?.columns == ["lower(v)", "Weird, Name"]) + #expect(indexes["i_colnamed"]?.expressions == nil) + + #expect(indexes["i \"q\""]?.expressions == ["(lower(v))"]) + + let constraint = try #require(indexes["sqlite_autoindex_t_1"]) + #expect(constraint.columns == ["email"]) + #expect(constraint.isUnique) + #expect(constraint.ddlMethodAndKeys == nil) + } + + @Test("The catalog query against SQLite returns what was measured") + func liveQueryMatchesTheMeasurement() throws { + let live = try read(try database()) + let measured = SQLiteIndexCatalog.indexes(fromRows: Self.measuredRows) + for index in measured { + let read = try #require(live[index.name]) + #expect(read.columns == index.columns, "\(index.name)") + #expect(read.expressions == index.expressions, "\(index.name)") + #expect(read.whereClause == index.whereClause, "\(index.name)") + #expect(read.ddlMethodAndKeys == index.ddlMethodAndKeys, "\(index.name)") + } + } + + @Test("The schema-wide query groups each table's indexes") + func schemaWideQuery() throws { + let database = try database() + try database.run("CREATE TABLE u (x TEXT)") + try database.run("CREATE INDEX u_upper ON u (upper(x))") + + let byTable = SQLiteIndexCatalog.indexesByTable(fromRows: try database.rows(SQLiteIndexCatalog.schemaIndexesQuery)) + #expect(byTable["u"]?.map(\.columns) == [["upper(x)"]]) + #expect(byTable["t"]?.count == 7) + } + + @Test("Renaming an index recreates its sort order and collation") + func renameKeepsSortOrderAndCollation() throws { + let database = try database() + var index = EditableIndexDefinition.from(IndexInfo(try #require(try read(database)["i_desc"]))) + index.name = "i_desc_renamed" + + try database.run("DROP INDEX i_desc") + try database.run(SQLiteIndexCatalog.createStatement(for: index.toPlugin(), table: "t", quote: quote)) + + let renamed = try #require(try read(database)["i_desc_renamed"]) + #expect(renamed.columns == ["lower(v) COLLATE NOCASE", "v"]) + #expect(renamed.ddlMethodAndKeys == "(lower(v) COLLATE NOCASE DESC, v DESC)") + } + + @Test("Renaming a partial index keeps its condition") + func renameKeepsTheCondition() throws { + let database = try database() + var index = EditableIndexDefinition.from(IndexInfo(try #require(try read(database)["i_partial"]))) + index.name = "i_partial_renamed" + + try database.run("DROP INDEX i_partial") + try database.run(SQLiteIndexCatalog.createStatement(for: index.toPlugin(), table: "t", quote: quote)) + + #expect(try read(database)["i_partial_renamed"]?.whereClause == "b IS NOT NULL") + } + + @Test("A typed expression is written as typed and read back as an expression") + func typedExpressionRoundTrips() throws { + let database = try database() + var index = EditableIndexDefinition.placeholder() + let keys = IndexKeyContext.testing(.sqlite, columns: ["id", "v", "a", "b"]) + StructureEditingSupport.updateIndex(&index, at: 0, with: "i_typed", keys: keys) + StructureEditingSupport.updateIndex(&index, at: 1, with: "a || ', ' || b, id", keys: keys) + + let statement = SQLiteIndexCatalog.createStatement(for: index.toPlugin(), table: "t", quote: quote) + #expect(statement == #"CREATE INDEX "i_typed" ON "t" (a || ', ' || b, "id")"#) + try database.run(statement) + + let read = try #require(try read(database)["i_typed"]) + #expect(read.columns == ["a || ', ' || b", "id"]) + #expect(read.expressions == ["a || ', ' || b"]) + } + + @Test("A partial index keeps its WHERE predicate") + func partialIndexStatement() { + let index = PluginIndexDefinition( + name: "idx_open", columns: ["parent_id"], isUnique: true, whereClause: "deleted_at IS NULL" + ) + #expect( + SQLiteIndexCatalog.createStatement(for: index, table: "child", quote: { "`\($0)`" }) + == "CREATE UNIQUE INDEX `idx_open` ON `child` (`parent_id`) WHERE deleted_at IS NULL" + ) + } + + @Test("An index is its own statement") + func indexStatement() { + let index = PluginIndexDefinition(name: "idx_parent", columns: ["parent_id"], isUnique: true) + #expect( + SQLiteIndexCatalog.createStatement(for: index, table: "child", quote: { "`\($0)`" }) + == "CREATE UNIQUE INDEX `idx_parent` ON `child` (`parent_id`)" + ) + } +} diff --git a/TableProTests/Plugins/DuckDBIndexClausesTests.swift b/TableProTests/Plugins/DuckDBIndexClausesTests.swift new file mode 100644 index 0000000000..18208e434c --- /dev/null +++ b/TableProTests/Plugins/DuckDBIndexClausesTests.swift @@ -0,0 +1,61 @@ +// +// DuckDBIndexClausesTests.swift +// TableProTests +// + +import Foundation +import TableProPluginKit +import Testing + +@Suite("DuckDB index clauses") +struct DuckDBIndexClausesTests { + private func keys(_ sql: String?) -> DuckDBIndexClauses.KeyParts { + DuckDBIndexClauses.keyParts(ofCreateIndex: sql) + } + + @Test("A parenthesized key in duckdb_indexes().sql is an expression, the rest are columns") + func expressionKeysAreRead() { + #expect(keys("CREATE INDEX i_mix ON t(id, (COALESCE(a, b)));") == DuckDBIndexClauses.KeyParts( + columns: ["id", "COALESCE(a, b)"], expressions: ["COALESCE(a, b)"] + )) + #expect(keys("CREATE INDEX i_fn ON t((lower(v)));").expressions == ["lower(v)"]) + } + + @Test("DuckDB's own deparse keeps its inner parentheses and doubled quotes") + func deparsedExpressionsAreKept() { + #expect(keys("CREATE INDEX i_concat ON t((((a || ', ') || b)));").columns == ["((a || ', ') || b)"]) + #expect(keys("CREATE INDEX i_str ON t(((a || 'it''s')));").columns == ["(a || 'it''s')"]) + #expect( + keys("CREATE INDEX i_case ON t((CASE WHEN ((a IS NULL)) THEN (b) ELSE a END));").columns + == ["CASE WHEN ((a IS NULL)) THEN (b) ELSE a END"] + ) + } + + @Test("A quoted column name is read without its quotes, commas included") + func quotedColumnsAreUnquoted() { + #expect(keys(#"CREATE INDEX i_quoted ON t("we ird", "Weird, Name", "say ""hi""");"#) == DuckDBIndexClauses.KeyParts( + columns: ["we ird", "Weird, Name", #"say "hi""#], expressions: [] + )) + #expect(keys(#"CREATE INDEX "Mixed (Name)" ON main.t(id);"#).columns == ["id"]) + } + + @Test("An index with no statement has no key parts to read") + func missingStatement() { + #expect(keys(nil) == DuckDBIndexClauses.KeyParts(columns: [], expressions: [])) + } + + @Test("The writer parenthesizes an expression and quotes a column") + func writer() { + let index = PluginIndexDefinition( + name: "i_mix", + columns: ["id", "COALESCE(a, b)"], + isUnique: true, + expressions: ["COALESCE(a, b)"], + includedColumns: nil, + ddlMethodAndKeys: nil, + ddlWhereClause: nil + ) + let sql = DuckDBIndexClauses.createStatement(for: index, qualifiedTable: #""main"."t""#) { "\"\($0)\"" } + #expect(sql == #"CREATE UNIQUE INDEX "i_mix" ON "main"."t" ("id", (COALESCE(a, b)))"#) + } +} diff --git a/TableProTests/Plugins/MySQLFunctionalKeyPartsTests.swift b/TableProTests/Plugins/MySQLFunctionalKeyPartsTests.swift new file mode 100644 index 0000000000..03f524326d --- /dev/null +++ b/TableProTests/Plugins/MySQLFunctionalKeyPartsTests.swift @@ -0,0 +1,70 @@ +// +// MySQLFunctionalKeyPartsTests.swift +// TableProTests +// + +import Foundation +import TableProPluginKit +import Testing + +@Suite("MySQL functional key parts") +struct MySQLFunctionalKeyPartsTests { + private static let expressionIndex = PluginIndexDefinition( + name: "ix", + columns: ["lower(v)"], + expressions: ["lower(v)"], + includedColumns: nil, + ddlMethodAndKeys: nil, + ddlWhereClause: nil + ) + + private static let columnIndex = PluginIndexDefinition(name: "ix", columns: ["v"]) + + private func refusal(_ index: PluginIndexDefinition, banner: String?, flavor: MySQLServerFlavor) -> String? { + MySQLFunctionalKeyParts.refusal(for: index, banner: banner, flavor: flavor) + } + + @Test("MySQL before 8.0.13 is refused an expression key") + func oldMySQLIsRefused() { + #expect(refusal(Self.expressionIndex, banner: "8.0.12", flavor: .mysql) + == "Indexing an expression needs MySQL 8.0.13 or later.") + #expect(refusal(Self.expressionIndex, banner: "5.7.44-log", flavor: .mysql) != nil) + } + + @Test("MariaDB is refused an expression key") + func mariaDBIsRefused() { + #expect(refusal(Self.expressionIndex, banner: "13.0.2-MariaDB", flavor: .mariadb) + == "MariaDB cannot index an expression. Index a generated column instead.") + } + + @Test("MySQL 8.0.13 and later, an unknown version and the other engines are refused nothing") + func nothingElseIsRefused() { + #expect(refusal(Self.expressionIndex, banner: "8.0.13", flavor: .mysql) == nil) + #expect(refusal(Self.expressionIndex, banner: "8.4.11", flavor: .mysql) == nil) + #expect(refusal(Self.expressionIndex, banner: nil, flavor: .mysql) == nil) + #expect(refusal(Self.expressionIndex, banner: nil, flavor: .tidb(version: nil)) == nil) + #expect(refusal(Self.expressionIndex, banner: nil, flavor: .oceanbase(version: nil)) == nil) + } + + @Test("An index of plain columns is never refused") + func columnIndexIsNeverRefused() { + #expect(refusal(Self.columnIndex, banner: "8.0.12", flavor: .mysql) == nil) + #expect(refusal(Self.columnIndex, banner: "10.6.16-MariaDB", flavor: .mariadb) == nil) + } + + @Test("Only MySQL 8.0.13 and later has an EXPRESSION column in its statistics catalog") + func catalogExpressionColumn() { + #expect(MySQLFunctionalKeyParts.catalogReportsExpressions(banner: "8.0.13", flavor: .mysql)) + #expect(MySQLFunctionalKeyParts.catalogReportsExpressions(banner: "8.4.11", flavor: .mysql)) + #expect(!MySQLFunctionalKeyParts.catalogReportsExpressions(banner: "8.0.12", flavor: .mysql)) + #expect(!MySQLFunctionalKeyParts.catalogReportsExpressions(banner: nil, flavor: .mysql)) + #expect(!MySQLFunctionalKeyParts.catalogReportsExpressions(banner: "13.0.2-MariaDB", flavor: .mariadb)) + } + + @Test("One level of backslash escaping comes off a catalog expression") + func unescaping() { + #expect(MySQLFunctionalKeyParts.unescaped("lower(`v`)") == "lower(`v`)") + #expect(MySQLFunctionalKeyParts.unescaped(#"_utf8mb4\'x\\ny\'"#) == #"_utf8mb4'x\ny'"#) + #expect(MySQLFunctionalKeyParts.unescaped(#"_utf8mb4\', \'"#) == "_utf8mb4', '") + } +} diff --git a/TableProTests/Plugins/MySQLIndexGroupingTests.swift b/TableProTests/Plugins/MySQLIndexGroupingTests.swift index 1ba430c823..19d5db80b2 100644 --- a/TableProTests/Plugins/MySQLIndexGroupingTests.swift +++ b/TableProTests/Plugins/MySQLIndexGroupingTests.swift @@ -19,13 +19,36 @@ struct MySQLIndexGroupingTests { MySQLIndexRow( table: table, index: index, - column: column, + key: MySQLIndexKey(part: .column(column, prefixLength: prefixLength), isDescending: false), isNonUnique: isNonUnique, - type: "BTREE", - prefixLength: prefixLength + type: "BTREE" ) } + private func catalogRow( + _ index: String, + column: String?, + expression: String? = nil, + collation: String? = "A", + type: String = "BTREE" + ) -> MySQLIndexRow? { + MySQLIndexRow( + table: "t", + index: index, + column: column, + catalogExpression: expression, + prefixLength: nil, + collation: collation, + isNonUnique: index != "PRIMARY", + type: type + ) + } + + private func grouped(_ rows: [MySQLIndexRow?]) -> [String: PluginIndexInfo] { + let indexes = MySQLIndexGrouping.group(rows.compactMap { $0 })["t"] ?? [] + return Dictionary(uniqueKeysWithValues: indexes.map { ($0.name, $0) }) + } + /// Compare & Sync reads a table twice, once to compare and once before writing the script, and /// refuses the script when the two reads differ. A read that listed the same indexes in a new /// order every time refused a table nobody had touched. @@ -76,4 +99,49 @@ struct MySQLIndexGroupingTests { #expect(!index.isPrimary) #expect(grouped["regions"]?.map(\.name) == ["regions_name_idx"]) } + + @Test("A functional key part is read from its expression, beside the plain columns") + func functionalKeyPartsAreRead() throws { + let indexes = grouped([ + catalogRow("PRIMARY", column: "id"), + catalogRow("i_fn", column: nil, expression: "lower(`v`)", collation: "D"), + catalogRow("i_mix", column: "id"), + catalogRow("i_mix", column: nil, expression: "coalesce(`a`,`b`)") + ]) + + let function = try #require(indexes["i_fn"]) + #expect(function.columns == ["lower(`v`)"]) + #expect(function.expressions == ["lower(`v`)"]) + + let mixed = try #require(indexes["i_mix"]) + #expect(mixed.columns == ["id", "coalesce(`a`,`b`)"]) + #expect(mixed.expressions == ["coalesce(`a`,`b`)"]) + #expect(mixed.ddlMethodAndKeys == nil) + } + + @Test("The catalog's escaping is taken off an expression, which then reads as SHOW CREATE TABLE writes it") + func catalogEscapingIsRemoved() throws { + let raw = #"concat(`a`,_utf8mb4\'it\\\'s\',_utf8mb4\'\\\\n\',_utf8mb4\'x\\ny\')"# + let index = try #require(grouped([catalogRow("i_q", column: nil, expression: raw)])["i_q"]) + #expect(index.expressions == [#"concat(`a`,_utf8mb4'it\'s',_utf8mb4'\\n',_utf8mb4'x\ny')"#]) + } + + @Test("A row with neither a column nor an expression is not a key part") + func unreadableRowIsDropped() { + #expect(catalogRow("i_fn", column: nil, expression: nil) == nil) + } + + @Test("A descending key part is kept in the server's own key spelling") + func descendingKeysAreSpelled() throws { + let indexes = grouped([ + catalogRow("i_desc", column: "v", collation: "D"), + catalogRow("i_desc", column: "id"), + catalogRow("i_fn", column: nil, expression: "lower(`v`)", collation: "D"), + catalogRow("i_ft", column: "body", collation: nil, type: "FULLTEXT") + ]) + + #expect(indexes["i_desc"]?.ddlMethodAndKeys == "(`v` DESC, `id`) USING BTREE") + #expect(indexes["i_fn"]?.ddlMethodAndKeys == "((lower(`v`)) DESC) USING BTREE") + #expect(indexes["i_ft"]?.ddlMethodAndKeys == nil) + } } diff --git a/TableProTests/Plugins/MySQLIndexKeyWriterTests.swift b/TableProTests/Plugins/MySQLIndexKeyWriterTests.swift new file mode 100644 index 0000000000..c5858b65b9 --- /dev/null +++ b/TableProTests/Plugins/MySQLIndexKeyWriterTests.swift @@ -0,0 +1,112 @@ +// +// MySQLIndexKeyWriterTests.swift +// TableProTests +// + +import Foundation +@testable import TablePro +import TableProPluginKit +import Testing + +@Suite("MySQL index key writer") +@MainActor +struct MySQLIndexKeyWriterTests { + private func catalogRow( + _ index: String, + column: String?, + expression: String? = nil, + collation: String? = "A" + ) -> MySQLIndexRow? { + MySQLIndexRow( + table: "t", + index: index, + column: column, + catalogExpression: expression, + prefixLength: nil, + collation: collation, + isNonUnique: true, + type: "BTREE" + ) + } + + private func read(_ rows: [MySQLIndexRow?], named name: String) throws -> EditableIndexDefinition { + let indexes = MySQLIndexGrouping.group(rows.compactMap { $0 })["t"] ?? [] + let info = try #require(indexes.first { $0.name == name }) + return EditableIndexDefinition.from(IndexInfo(info)) + } + + @Test("Expression keys are written in parentheses beside quoted and prefixed columns") + func expressionKeysAreParenthesized() { + let index = PluginIndexDefinition( + name: "ix", + columns: ["id", "coalesce(a, b)", "email"], + indexType: "BTREE", + columnPrefixes: ["email": 20], + expressions: ["coalesce(a, b)"], + includedColumns: nil, + ddlMethodAndKeys: nil, + ddlWhereClause: nil + ) + #expect(mysqlIndexDefinitionSQL(index) == "INDEX `ix` (`id`, (coalesce(a, b)), `email`(20)) USING BTREE") + } + + @Test("Renaming a descending functional index recreates it descending") + func renameKeepsFunctionalDescending() throws { + var index = try read([catalogRow("i_fn", column: nil, expression: "lower(`v`)", collation: "D")], named: "i_fn") + index.name = "i_fn_lower" + + #expect( + mysqlModifyIndexSQL(table: "t", oldIndexName: "i_fn", newIndex: index.toPlugin(), flavor: .mysql) + == "ALTER TABLE `t` DROP INDEX `i_fn`, ADD INDEX `i_fn_lower` ((lower(`v`)) DESC) USING BTREE" + ) + } + + @Test("Renaming a descending column index recreates it descending") + func renameKeepsColumnDescending() throws { + var index = try read( + [catalogRow("i_desc", column: "v", collation: "D"), catalogRow("i_desc", column: "id")], + named: "i_desc" + ) + index.name = "i_v_desc" + + #expect( + mysqlModifyIndexSQL(table: "t", oldIndexName: "i_desc", newIndex: index.toPlugin(), flavor: .mysql) + == "ALTER TABLE `t` DROP INDEX `i_desc`, ADD INDEX `i_v_desc` (`v` DESC, `id`) USING BTREE" + ) + } + + @Test("Changing the key of a descending index writes it from the fields") + func keyEditWritesFromTheFields() throws { + var index = try read([catalogRow("i_fn", column: nil, expression: "lower(`v`)", collation: "D")], named: "i_fn") + StructureEditingSupport.updateIndex( + &index, at: 1, with: "lower(`v`), id", keys: .testing(.mysql, columns: ["id", "v"]) + ) + + #expect(index.expressions == ["lower(`v`)"]) + #expect(mysqlIndexDefinitionSQL(index.toPlugin()) == "INDEX `i_fn` ((lower(`v`)), `id`) USING BTREE") + } + + @Test("A typed expression reaches the statement as an expression") + func typedExpressionIsWritten() { + var index = EditableIndexDefinition.placeholder() + let keys = IndexKeyContext.testing(.mysql, columns: ["id", "a", "b"]) + StructureEditingSupport.updateIndex(&index, at: 0, with: "ix", keys: keys) + StructureEditingSupport.updateIndex(&index, at: 1, with: "id, coalesce(a, b)", keys: keys) + + #expect(mysqlIndexDefinitionSQL(index.toPlugin()) == "INDEX `ix` (`id`, (coalesce(a, b))) USING BTREE") + } + + @Test("Only MySQL and MariaDB replace an index in one ALTER TABLE") + func oneStatementModifyByFlavor() { + let index = PluginIndexDefinition(name: "ix", columns: ["a"], indexType: "BTREE") + #expect( + mysqlModifyIndexSQL(table: "t", oldIndexName: "ix", newIndex: index, flavor: .mariadb) + == "ALTER TABLE `t` DROP INDEX `ix`, ADD INDEX `ix` (`a`) USING BTREE" + ) + #expect(mysqlModifyIndexSQL(table: "t", oldIndexName: "ix", newIndex: index, flavor: .tidb(version: nil)) == nil) + #expect( + mysqlModifyIndexSQL(table: "t", oldIndexName: "ix", newIndex: index, flavor: .oceanbase(version: nil)) == nil + ) + #expect(mysqlModifyIndexSQL(table: "t", oldIndexName: "ix", newIndex: index, flavor: .databend) == nil) + } +} diff --git a/TableProTests/Plugins/SQLIndexKeyListTests.swift b/TableProTests/Plugins/SQLIndexKeyListTests.swift new file mode 100644 index 0000000000..9b38e89d94 --- /dev/null +++ b/TableProTests/Plugins/SQLIndexKeyListTests.swift @@ -0,0 +1,67 @@ +// +// SQLIndexKeyListTests.swift +// TableProTests +// + +import Foundation +import TableProPluginKit +import Testing + +@Suite("SQL index key list") +struct SQLIndexKeyListTests { + private static let sqlite = SQLiteIndexCatalog.lexicalFeatures + + @Test("A stored CREATE INDEX gives its key list, its keys and its predicate") + func statementParts() throws { + let statement = try #require(SQLIndexKeyList.statement( + "CREATE UNIQUE INDEX [i (x)] ON \"t (y)\" (a, coalesce(b, ')'), [c,d]) WHERE a > ',' ;", + lexicalFeatures: Self.sqlite + )) + #expect(statement.keyList == "a, coalesce(b, ')'), [c,d]") + #expect(statement.keyParts == ["a", "coalesce(b, ')')", "[c,d]"]) + #expect(statement.predicate == "a > ','") + } + + @Test("A statement with no key list reads as nothing") + func noKeyList() { + #expect(SQLIndexKeyList.statement("CREATE INDEX i ON t", lexicalFeatures: Self.sqlite) == nil) + #expect(SQLIndexKeyList.statement("CREATE INDEX i ON t (a", lexicalFeatures: Self.sqlite) == nil) + } + + @Test("Comments and strings never end a key") + func commentsAndStrings() { + #expect( + SQLIndexKeyList.parts(of: "a /* x, y */, 'p,q' || b, -- c, d\n e", lexicalFeatures: Self.sqlite) + == ["a /* x, y */", "'p,q' || b", "-- c, d\n e"] + ) + } + + @Test("A trailing sort order comes off a key; one inside a string or a call does not") + func sortOrder() { + let strip = { SQLIndexKeyList.withoutSortOrder($0, lexicalFeatures: Self.sqlite) } + #expect(strip("lower(v) COLLATE NOCASE DESC") == "lower(v) COLLATE NOCASE") + #expect(strip("v asc") == "v") + #expect(strip("'DESC'") == "'DESC'") + #expect(strip("f(DESC)") == "f(DESC)") + #expect(strip("DESC") == "DESC") + } + + @Test("One pair of wrapping parentheses comes off, and only a pair that wraps the whole key") + func unwrapping() { + let unwrap = { SQLIndexKeyList.unwrapped($0, lexicalFeatures: Self.sqlite) } + #expect(unwrap("((a || b))") == "(a || b)") + #expect(unwrap("(a) + (b)") == nil) + #expect(unwrap("a") == nil) + #expect(unwrap("(')')") == "')'") + } + + @Test("A key that is one quoted identifier is read as its name") + func quotedIdentifiers() { + let name = { SQLIndexKeyList.quotedIdentifier($0, lexicalFeatures: Self.sqlite) } + #expect(name(#""a ""b""""#) == #"a "b""#) + #expect(name("`a``b`") == "a`b") + #expect(name("[a b]") == "a b") + #expect(name("'a'") == nil) + #expect(name(#""a" || b"#) == nil) + } +} diff --git a/TableProTests/Plugins/SQLiteCreateTableDDLTests.swift b/TableProTests/Plugins/SQLiteCreateTableDDLTests.swift index d83d63bf73..05624eb711 100644 --- a/TableProTests/Plugins/SQLiteCreateTableDDLTests.swift +++ b/TableProTests/Plugins/SQLiteCreateTableDDLTests.swift @@ -123,26 +123,4 @@ struct SQLiteCreateTableDDLTests { let sql = try #require(sqliteCreateTableSQL(definition: definition(columns: columns))) #expect(sql.contains("`we``ird`")) } - - /// A unique partial index that loses its predicate rejects rows the user meant to exclude, so - /// the condition is part of the index rather than decoration. - @Test("a partial index keeps its WHERE predicate") - func partialIndex() { - let index = PluginIndexDefinition( - name: "idx_open", columns: ["parent_id"], isUnique: true, whereClause: "deleted_at IS NULL" - ) - #expect( - sqliteAddIndexSQL(table: "child", index: index) - == "CREATE UNIQUE INDEX `idx_open` ON `child` (`parent_id`) WHERE deleted_at IS NULL" - ) - } - - @Test("an index is its own statement") - func addIndex() { - let index = PluginIndexDefinition(name: "idx_parent", columns: ["parent_id"], isUnique: true) - #expect( - sqliteAddIndexSQL(table: "child", index: index) - == "CREATE UNIQUE INDEX `idx_parent` ON `child` (`parent_id`)" - ) - } } diff --git a/TableProTests/Views/Structure/StructureEditingSupportBooleanParsingTests.swift b/TableProTests/Views/Structure/StructureEditingSupportBooleanParsingTests.swift index 5eb81465b6..9151dfbe7d 100644 --- a/TableProTests/Views/Structure/StructureEditingSupportBooleanParsingTests.swift +++ b/TableProTests/Views/Structure/StructureEditingSupportBooleanParsingTests.swift @@ -199,7 +199,7 @@ struct StructureEditingSupportBooleanParsingTests { var definition = EditableIndexDefinition.placeholder() definition.name = "idx" definition.columns = ["id"] - StructureEditingSupport.updateIndex(&definition, at: 3, with: token) + StructureEditingSupport.updateIndex(&definition, at: 3, with: token, keys: .testing(.postgresql)) #expect(definition.isUnique) } } diff --git a/TableProTests/Views/Structure/StructureEditingSupportFieldDiffTests.swift b/TableProTests/Views/Structure/StructureEditingSupportFieldDiffTests.swift index d243e75b1e..050a02671f 100644 --- a/TableProTests/Views/Structure/StructureEditingSupportFieldDiffTests.swift +++ b/TableProTests/Views/Structure/StructureEditingSupportFieldDiffTests.swift @@ -174,6 +174,16 @@ struct StructureEditingSupportFieldDiffTests { #expect(result == [1]) } + @Test("A key that turns from a column into an expression flags the columns index") + func indexExpressionsChanged() { + var original = makeIndex() + original.columns = ["lower(email)"] + var changed = original + changed.expressions = ["lower(email)"] + + #expect(StructureEditingSupport.indexModifiedIndices(old: original, new: changed) == [1]) + } + @Test("Toggling unique flags only the unique index") func indexUniqueChanged() { let original = makeIndex() diff --git a/TableProTests/Views/Structure/StructureEditingSupportIndexKeyTests.swift b/TableProTests/Views/Structure/StructureEditingSupportIndexKeyTests.swift index 4f8eaa485a..bcf2a509ac 100644 --- a/TableProTests/Views/Structure/StructureEditingSupportIndexKeyTests.swift +++ b/TableProTests/Views/Structure/StructureEditingSupportIndexKeyTests.swift @@ -12,6 +12,8 @@ import Testing @Suite("Structure editing index key parts") @MainActor struct StructureEditingSupportIndexKeyTests { + private static let columns = ["owner's_id", "created_at", "tenant_id", "a", "b", "c", "email", "name", "created"] + private func index(columns: [String], expressions: [String] = []) -> EditableIndexDefinition { EditableIndexDefinition( id: UUID(), name: "ix", columns: columns, type: .btree, isUnique: false, isPrimary: false, @@ -19,58 +21,20 @@ struct StructureEditingSupportIndexKeyTests { ) } - @Test("An expression from the index is taken whole, commas and quotes included") - func expressionIsTakenWhole() { - #expect( - StructureEditingSupport.indexKeyParts("tenant_id, coalesce(a, b)", expressions: ["coalesce(a, b)"]) - == ["tenant_id", "coalesce(a, b)"] - ) - #expect( - StructureEditingSupport.indexKeyParts("(a || ', ' || b), c", expressions: ["(a || ', ' || b)"]) - == ["(a || ', ' || b)", "c"] - ) - #expect( - StructureEditingSupport.indexKeyParts(" lower(email) , b ", expressions: ["lower(email)"]) - == ["lower(email)", "b"] - ) - } - - @Test("A column name holding a quote or a parenthesis is split at every comma") - func columnNamesAreSplitAtEveryComma() { - #expect( - StructureEditingSupport.indexKeyParts("owner's_id, created_at", expressions: []) - == ["owner's_id", "created_at"] + private func edit( + _ index: inout EditableIndexDefinition, + to text: String, + on databaseType: DatabaseType = .postgresql + ) { + StructureEditingSupport.updateIndex( + &index, at: 1, with: text, keys: .testing(databaseType, columns: Self.columns) ) - #expect(StructureEditingSupport.indexKeyParts(#"size"in, id"#, expressions: []) == [#"size"in"#, "id"]) - #expect( - StructureEditingSupport.indexKeyParts("O'Brien, lower(email)", expressions: ["lower(email)"]) - == ["O'Brien", "lower(email)"] - ) - } - - @Test("Text that only begins with an expression, or edits one, is read as column names") - func textThatIsNotTheExpressionIsColumnNames() { - #expect( - StructureEditingSupport.indexKeyParts("lower(email)x, b", expressions: ["lower(email)"]) - == ["lower(email)x", "b"] - ) - #expect( - StructureEditingSupport.indexKeyParts("coalesce(a, c)", expressions: ["coalesce(a, b)"]) - == ["coalesce(a", "c)"] - ) - } - - @Test("Empty entries are dropped") - func emptyEntriesAreDropped() { - #expect(StructureEditingSupport.indexKeyParts("", expressions: []).isEmpty) - #expect(StructureEditingSupport.indexKeyParts("a,,b", expressions: []) == ["a", "b"]) - #expect(StructureEditingSupport.indexKeyParts("a, ,b,", expressions: []) == ["a", "b"]) } @Test("Adding a column to an index over a name with an apostrophe keeps every column") func apostropheColumnSurvivesTheEdit() { var edited = index(columns: ["owner's_id", "created_at"]) - StructureEditingSupport.updateIndex(&edited, at: 1, with: "owner's_id, created_at, tenant_id") + edit(&edited, to: "owner's_id, created_at, tenant_id", on: .mysql) #expect(edited.columns == ["owner's_id", "created_at", "tenant_id"]) #expect(edited.expressions.isEmpty) #expect(edited.columnPrefixes.isEmpty) @@ -79,16 +43,32 @@ struct StructureEditingSupportIndexKeyTests { @Test("An expression keeps its commas and stays an expression across the edit") func expressionSurvivesTheEdit() { var edited = index(columns: ["tenant_id", "coalesce(a, b)"], expressions: ["coalesce(a, b)"]) - StructureEditingSupport.updateIndex(&edited, at: 1, with: "tenant_id, coalesce(a, b), created") + edit(&edited, to: "tenant_id, coalesce(a, b), created") #expect(edited.columns == ["tenant_id", "coalesce(a, b)", "created"]) #expect(edited.expressions == ["coalesce(a, b)"]) #expect(edited.columnPrefixes.isEmpty) } + @Test("An expression typed into the cell is an expression, commas and all") + func typedExpressionIsAnExpression() { + var edited = index(columns: ["tenant_id"]) + edit(&edited, to: "tenant_id, coalesce(a, c)") + #expect(edited.columns == ["tenant_id", "coalesce(a, c)"]) + #expect(edited.expressions == ["coalesce(a, c)"]) + } + + @Test("An expression edited by hand replaces the one the index had") + func editedExpressionReplacesTheOld() { + var edited = index(columns: ["coalesce(a, b)"], expressions: ["coalesce(a, b)"]) + edit(&edited, to: "coalesce(a, c)") + #expect(edited.columns == ["coalesce(a, c)"]) + #expect(edited.expressions == ["coalesce(a, c)"]) + } + @Test("An expression removed from the cell leaves the expression list") func removedExpressionLeavesTheList() { var edited = index(columns: ["tenant_id", "lower(email)"], expressions: ["lower(email)"]) - StructureEditingSupport.updateIndex(&edited, at: 1, with: "tenant_id") + edit(&edited, to: "tenant_id") #expect(edited.columns == ["tenant_id"]) #expect(edited.expressions.isEmpty) } @@ -96,7 +76,7 @@ struct StructureEditingSupportIndexKeyTests { @Test("A MySQL key prefix is still read as a prefix") func mysqlPrefixIsStillAPrefix() { var edited = index(columns: ["email"]) - StructureEditingSupport.updateIndex(&edited, at: 1, with: "email(20), name") + edit(&edited, to: "email(20), name", on: .mysql) #expect(edited.columns == ["email", "name"]) #expect(edited.columnPrefixes == ["email": 20]) #expect(edited.expressions.isEmpty) @@ -105,9 +85,28 @@ struct StructureEditingSupportIndexKeyTests { @Test("An expression that looks like a prefix is not read as one") func expressionShapedLikeAPrefix() { var edited = index(columns: ["f(20)"], expressions: ["f(20)"]) - StructureEditingSupport.updateIndex(&edited, at: 1, with: "f(20)") + edit(&edited, to: "f(20)", on: .mysql) #expect(edited.columns == ["f(20)"]) #expect(edited.columnPrefixes.isEmpty) #expect(edited.expressions == ["f(20)"]) } + + @Test("An engine without expression keys reads a call as a column name, which the column check names") + func columnsOnlyEngineKeepsTheText() { + var edited = index(columns: ["email"]) + edit(&edited, to: "lower(email)", on: .mssql) + #expect(edited.columns == ["lower(email)"]) + #expect(edited.expressions.isEmpty) + #expect(edited.referencedColumnNames == ["lower(email)"]) + } + + @Test("Only the Columns cell reads key parts") + func otherCellsIgnoreTheKeyContext() { + var edited = index(columns: ["email"]) + StructureEditingSupport.updateIndex(&edited, at: 0, with: "ix_email", keys: .testing(.postgresql)) + StructureEditingSupport.updateIndex(&edited, at: 4, with: "email IS NOT NULL", keys: .testing(.postgresql)) + #expect(edited.name == "ix_email") + #expect(edited.whereClause == "email IS NOT NULL") + #expect(edited.columns == ["email"]) + } } diff --git a/TableProTests/Views/Structure/StructureIndexTypeMenuTests.swift b/TableProTests/Views/Structure/StructureIndexTypeMenuTests.swift index 7b5a9cf5d6..c174641206 100644 --- a/TableProTests/Views/Structure/StructureIndexTypeMenuTests.swift +++ b/TableProTests/Views/Structure/StructureIndexTypeMenuTests.swift @@ -88,9 +88,9 @@ struct StructureIndexTypeMenuTests { )) let typeColumn = StructureRowProvider.indexTypeColumn - StructureEditingSupport.updateIndex(&index, at: typeColumn, with: "hnsw USING btree") + StructureEditingSupport.updateIndex(&index, at: typeColumn, with: "hnsw USING btree", keys: .testing(.postgresql)) #expect(index.type.rawValue == "BLOOM") - StructureEditingSupport.updateIndex(&index, at: typeColumn, with: "spgist") + StructureEditingSupport.updateIndex(&index, at: typeColumn, with: "spgist", keys: .testing(.postgresql)) #expect(index.type == .spgist) } } diff --git a/docs/databases/mysql.mdx b/docs/databases/mysql.mdx index 52aaf37b50..3e73d58aaf 100644 --- a/docs/databases/mysql.mdx +++ b/docs/databases/mysql.mdx @@ -141,6 +141,7 @@ New connections default to **Preferred**: TLS first, dropping to plain text only - No Unix socket connections. Give the connection a host and a port, and leave networking on in the server. - `LOAD DATA LOCAL INFILE` is refused by the driver. Load the file with **File > Import > Import Data…** instead. +- An index key over an expression, such as `lower(email)`, needs MySQL 8.0.13 or later. MariaDB has none, so index a generated column instead. The **Indexes** tab stops the save on either server before anything runs. ## Troubleshooting diff --git a/docs/features/table-structure.mdx b/docs/features/table-structure.mdx index e699c41a7a..58b8c8f954 100644 --- a/docs/features/table-structure.mdx +++ b/docs/features/table-structure.mdx @@ -102,11 +102,23 @@ Everything that runs goes to query history rather than the change queue. | Field | Description | |-------|-------------| -| **Columns** | Key columns and expressions in key order, such as `tenant_id, lower(email)`. MySQL prefix lengths are written as `email(20)`. A PostgreSQL index's `INCLUDE` columns are not listed, and editing the index keeps them. An expression typed here is read as a column name, so create a new expression index in the SQL editor. Pasted into a MySQL, SQLite or other non-PostgreSQL table, an index leaves its `INCLUDE` columns behind and each expression becomes a column name the row flags until you replace it | +| **Columns** | Key columns and expressions in key order, such as `tenant_id, lower(email)`. MySQL prefix lengths are written as `email(20)`. A PostgreSQL index's `INCLUDE` columns are not listed, and editing the index keeps them. Pasted into a table on another engine, an index leaves its `INCLUDE` columns behind and each expression becomes a column name the row flags until you replace it | | **Type** | The type the server reports, such as `HNSW` from pgvector or `CLUSTERED` on SQL Server. The menu lists that type beside BTREE, HASH, FULLTEXT and SPATIAL (MySQL), GIN, GIST, SPGIST (PostgreSQL 9.2 and later) and BRIN (PostgreSQL 9.5 and later). On SQL Server, a duplicated or pasted `CLUSTERED` index becomes `NONCLUSTERED` when the table already has a clustered index. Pasted into a table on another database type, a FULLTEXT or SPATIAL index is refused by PostgreSQL before anything runs, and any other type that engine has no index of is written as its default index | | **Unique** | Whether the index enforces uniqueness | | **Condition** | `WHERE` predicate for partial indexes (PostgreSQL, SQLite, libSQL, Cloudflare D1) | +### Expression keys + +Type an expression into **Columns** as `CREATE INDEX` writes it, such as `lower(email)` or `coalesce(first_name, last_name)`. A comma inside parentheses or a string stays part of its key. Text that names one of the table's columns is that column, in any case and with or without parentheses around it. + +| Engine | Typed expression | +|--------|------------------| +| PostgreSQL, PGlite, SQLite, libSQL, Turso, Cloudflare D1, DuckDB | Indexed as written | +| MySQL | Needs 8.0.13 or later. On an older server, or a MariaDB server, the save stops before anything runs | +| MariaDB, TiDB, OceanBase, CockroachDB and every other engine | Read as a column name, which the row flags | + +A sort order is not typed here: `lower(email) DESC` is flagged as a column that does not exist. A descending key, a collation or an operator class the index already has stays through a rename or a new condition, and goes when you edit **Columns** or **Type**. On MySQL and MariaDB, a changed index in a save with no column changes is replaced in one `ALTER TABLE`, so a replacement the server rejects leaves the original index in place. + ### Invalid indexes A PostgreSQL `CREATE INDEX CONCURRENTLY` or `REINDEX CONCURRENTLY` that fails or is cancelled leaves an invalid index behind. It keeps its row in the list, and a line under the list names it. Queries skip it, but every write still updates it, and an invalid unique index still refuses duplicates. Delete the row and save to drop it, or run `REINDEX INDEX` on it in the SQL editor to build it again. diff --git a/project.yml b/project.yml index b2917646b4..f680184462 100644 --- a/project.yml +++ b/project.yml @@ -432,6 +432,7 @@ targets: - Plugins/DamengDriverPlugin/DamengSystemSchemas.swift - Plugins/DuckDBDriverPlugin/DuckDBAccessMode.swift - Plugins/DuckDBDriverPlugin/DuckDBFileKinds.swift + - Plugins/DuckDBDriverPlugin/DuckDBIndexClauses.swift - Plugins/DuckDBDriverPlugin/DuckDBIdleRelease.swift - Plugins/DuckDBDriverPlugin/DuckDBLexicalFeatures.swift - Plugins/DuckDBDriverPlugin/DuckDBLockConflict.swift @@ -541,6 +542,7 @@ targets: - Plugins/MySQLDriverPlugin/MySQLForeignKeyCatalog.swift - Plugins/MySQLDriverPlugin/MySQLForeignKeyClause.swift - Plugins/MySQLDriverPlugin/MySQLIndexGrouping.swift + - Plugins/MySQLDriverPlugin/MySQLFunctionalKeyParts.swift - Plugins/MySQLDriverPlugin/OceanBaseColumnDefaults.swift - Plugins/SQLiteDriverPlugin/SQLiteCheckConstraintParser.swift - Plugins/SQLiteDriverPlugin/SQLiteCreateTableDDL.swift From a383a783cf1b991f4a8b5cce31a7eeb2d8795b7f Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Wed, 23 Sep 2026 21:23:09 +0700 Subject: [PATCH 5/5] docs(plugins): list the kit 33 index key additions beside the version they ship in --- TablePro/Core/Plugins/PluginManager.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/TablePro/Core/Plugins/PluginManager.swift b/TablePro/Core/Plugins/PluginManager.swift index 5cffbe0e61..38e01c04be 100644 --- a/TablePro/Core/Plugins/PluginManager.swift +++ b/TablePro/Core/Plugins/PluginManager.swift @@ -86,6 +86,13 @@ final class PluginManager: ObservableObject { /// /// 33 also adds `isValid` to `PluginIndexInfo`, through an added initializer with the previous /// full one disfavoured; nil means the driver does not report it. + /// + /// 33 also adds `generateModifyIndexSQL(table:oldIndexName:newIndex:)`, which replaces an index + /// in one statement where the engine's DDL is not transactional, the public `SQLiteIndexCatalog` + /// that SQLite, libSQL and Cloudflare D1 read and write indexes through, and the public + /// `SQLIndexKeyList` it and DuckDB read a stored `CREATE INDEX` with. The requirement defaults + /// to nil, so an already-built plugin keeps loading and the app splits the change into a drop + /// and an add as before. nonisolated static let currentPluginKitVersion = 33 /// Still 19, so every plugin already published for the previous release keeps loading.