@igstack/app-catalog-backend-core 4.0.0-alpha-20260920000636 → 4.0.0-alpha-20260920010622

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/db/syncAppCatalog.d.mts.map +1 -1
  2. package/dist/db/syncAppCatalog.mjs +19 -2
  3. package/dist/db/syncAppCatalog.mjs.map +1 -1
  4. package/dist/generated/prisma/internal/class.mjs +4 -4
  5. package/dist/generated/prisma/internal/class.mjs.map +1 -1
  6. package/dist/generated/prisma/internal/prismaNamespace.d.mts +5 -0
  7. package/dist/generated/prisma/internal/prismaNamespace.d.mts.map +1 -1
  8. package/dist/generated/prisma/models/SourceReference.d.mts +207 -3
  9. package/dist/generated/prisma/models/SourceReference.d.mts.map +1 -1
  10. package/dist/index.d.mts +2 -2
  11. package/dist/modules/appCatalog/freshness.mjs +1 -1
  12. package/dist/modules/appCatalog/service.d.mts.map +1 -1
  13. package/dist/modules/appCatalog/service.mjs +9 -1
  14. package/dist/modules/appCatalog/service.mjs.map +1 -1
  15. package/dist/modules/appCatalog/sourcePulse.mjs +66 -0
  16. package/dist/modules/appCatalog/sourcePulse.mjs.map +1 -0
  17. package/dist/types/common/appCatalogTypes.d.mts +61 -3
  18. package/dist/types/common/appCatalogTypes.d.mts.map +1 -1
  19. package/package.json +4 -4
  20. package/prisma/migrations/20260919000000_add_source_schedule/migration.sql +6 -0
  21. package/prisma/schema.prisma +10 -0
  22. package/src/__tests__/sourcePulse.test.ts +155 -0
  23. package/src/db/syncAppCatalog.ts +20 -0
  24. package/src/generated/prisma/internal/class.ts +4 -4
  25. package/src/generated/prisma/internal/prismaNamespace.ts +6 -1
  26. package/src/generated/prisma/internal/prismaNamespaceBrowser.ts +6 -1
  27. package/src/generated/prisma/models/SourceReference.ts +209 -1
  28. package/src/modules/appCatalog/service.ts +11 -0
  29. package/src/modules/appCatalog/sourcePulse.ts +95 -0
  30. package/src/types/common/appCatalogTypes.ts +70 -2
@@ -1 +1 @@
1
- {"version":3,"file":"syncAppCatalog.d.mts","names":[],"sources":["../../src/db/syncAppCatalog.ts"],"mappings":";;;;;UAeiB,oBAAA;EACf,OAAA;EACA,OAAA;EACA,OAAA;EACA,KAAA;AAAA;;;;UAuJe,qBAAA;EACf,OAAA,GAAU,MAAA;EACV,MAAA,GAAS,KAAA;AAAA;AAFX;;;;;;AAAA,iBAWsB,cAAA,CACpB,SAAA,EAAW,QAAA,IACX,eAAA,EAAiB,qBAAA,IACjB,eAAA,EAAiB,cAAA,IACjB,eAAA,WACA,OAAA,GAAU,qBAAA,GACT,OAAA,CAAQ,oBAAA"}
1
+ {"version":3,"file":"syncAppCatalog.d.mts","names":[],"sources":["../../src/db/syncAppCatalog.ts"],"mappings":";;;;;UAeiB,oBAAA;EACf,OAAA;EACA,OAAA;EACA,OAAA;EACA,KAAA;AAAA;;;;UAkKe,qBAAA;EACf,OAAA,GAAU,MAAA;EACV,MAAA,GAAS,KAAA;AAAA;AAFX;;;;;;AAAA,iBAWsB,cAAA,CACpB,SAAA,EAAW,QAAA,IACX,eAAA,EAAiB,qBAAA,IACjB,eAAA,EAAiB,cAAA,IACjB,eAAA,WACA,OAAA,GAAU,qBAAA,GACT,OAAA,CAAQ,oBAAA"}
@@ -8,6 +8,16 @@ import { group } from "radashi";
8
8
  import { readFile, readdir, stat } from "node:fs/promises";
9
9
 
10
10
  //#region src/db/syncAppCatalog.ts
11
+ /**
12
+ * ISO string to Date, tolerating junk. The per-source schedule comes from a file
13
+ * an agent writes, so a malformed date must drop that one field rather than fail
14
+ * the whole catalog sync on `Invalid Date`.
15
+ */
16
+ function asDate(iso) {
17
+ if (!iso) return null;
18
+ const t = Date.parse(iso);
19
+ return Number.isNaN(t) ? null : new Date(t);
20
+ }
11
21
  function isFileNotFoundError(error) {
12
22
  return error instanceof Error && "code" in error && error.code === "ENOENT";
13
23
  }
@@ -197,13 +207,20 @@ async function syncAppCatalog(resources, tagsDefinitions, approvalMethods, scree
197
207
  if (!resourceId) throw new Error(`Resource '${resourceSlug}' has no id after sync. Existing slugs: ${Object.keys(slugToId).join(", ")}`);
198
208
  return (resource.sources ?? []).map((source) => {
199
209
  const url = typeof source === "string" ? source : source.url;
210
+ const sourceSlug = parseSourceSlug(url);
211
+ const schedule = typeof source === "string" ? {} : source.schedule ?? {};
200
212
  return {
201
213
  resourceId,
202
- sourceSlug: parseSourceSlug(url),
214
+ sourceSlug,
203
215
  url,
204
216
  parseDate: null,
205
217
  excerpts: [],
206
- userPrompt: null
218
+ userPrompt: null,
219
+ lastCheckedAt: asDate(schedule.lastCheckedAt),
220
+ nextCheckAfter: asDate(schedule.nextCheckAfter),
221
+ lastContentChangeAt: asDate(schedule.lastContentChangeAt),
222
+ checkIntervalHours: schedule.checkIntervalHours ?? null,
223
+ changeHistory: schedule.changeHistory ?? null
207
224
  };
208
225
  });
209
226
  });
@@ -1 +1 @@
1
- {"version":3,"file":"syncAppCatalog.mjs","names":[],"sources":["../../src/db/syncAppCatalog.ts"],"sourcesContent":["import type {\n GroupingTagDefinition,\n Resource,\n} from '../types/common/appCatalogTypes'\nimport { getDbClient } from './client'\nimport { TABLE_SYNC_MAGAZINE } from './tableSyncMagazine'\nimport { tableSyncPrisma } from './tableSyncPrismaAdapter'\nimport { readFile, readdir, stat } from 'node:fs/promises'\nimport { group } from 'radashi'\nimport { upsertAsset } from '../modules/assets/upsertAsset'\nimport type { ApprovalMethod, Group, Person } from '../types'\nimport type { PrismaClient } from '../generated/prisma/client'\nimport { naturalSort } from '../utils/naturalSort'\nimport { parseSourceSlug } from '../utils/parseSourceSlug'\n\nexport interface SyncAppCatalogResult {\n created: number\n updated: number\n deleted: number\n total: number\n}\n\ninterface AssetSyncResult {\n screenshotIds: string[]\n iconName: string | null\n}\n\nfunction isFileNotFoundError(error: unknown): boolean {\n return (\n error instanceof Error &&\n 'code' in error &&\n (error as NodeJS.ErrnoException).code === 'ENOENT'\n )\n}\n\nasync function processAssetDirectory(\n dirPath: string,\n appSlug: string,\n assetType: 'screenshot' | 'icon',\n prisma: PrismaClient,\n): Promise<string[]> {\n try {\n const files = await readdir(dirPath)\n const sortedFiles = naturalSort(files)\n const assetIds: string[] = []\n\n for (let i = 0; i < sortedFiles.length; i++) {\n const fileName = sortedFiles[i]\n if (!fileName) continue\n\n const assetName =\n assetType === 'screenshot'\n ? `${appSlug}-screenshot-${i + 1}`\n : `${appSlug}-icon`\n\n const id = await upsertAsset({\n prisma,\n buffer: await readFile(`${dirPath}/${fileName}`),\n originalFilename: fileName,\n name: assetName,\n assetType,\n })\n assetIds.push(id)\n\n // For icons, only process the first file\n if (assetType === 'icon') {\n break\n }\n }\n\n return assetIds\n } catch (error: unknown) {\n if (isFileNotFoundError(error)) {\n return []\n }\n throw error\n }\n}\n\nasync function syncAppAssets(\n appSlug: string,\n appPath: string,\n prisma: PrismaClient,\n): Promise<AssetSyncResult> {\n const screenshotIds = await processAssetDirectory(\n `${appPath}/screenshots`,\n appSlug,\n 'screenshot',\n prisma,\n )\n\n const iconIds = await processAssetDirectory(\n `${appPath}/icons`,\n appSlug,\n 'icon',\n prisma,\n )\n\n return {\n screenshotIds,\n iconName: iconIds.length > 0 ? `${appSlug}-icon` : null,\n }\n}\n\nasync function syncAssetsFromFileSystem(\n resources: Resource[],\n allAppsAssetsPath: string,\n) {\n const appDirectories = await readdir(allAppsAssetsPath)\n const prisma = getDbClient()\n const bySlug = group(resources, (a) => a.slug)\n\n for (const appDirName of appDirectories) {\n try {\n const stats = await stat(`${allAppsAssetsPath}/${appDirName}`)\n if (!stats.isDirectory()) {\n continue\n }\n } catch (error: unknown) {\n if (isFileNotFoundError(error)) {\n continue\n }\n throw error\n }\n\n const appSlug = appDirName\n if (!bySlug[appSlug]) {\n throw new Error(\n `App '${appSlug}' does not exist in the app catalog. Existing apps: ${Object.keys(bySlug).join(', ')}`,\n )\n }\n\n try {\n const { screenshotIds, iconName } = await syncAppAssets(\n appSlug,\n `${allAppsAssetsPath}/${appDirName}`,\n prisma,\n )\n\n const updateData: {\n screenshotIds?: string[]\n iconName?: string | null\n } = {}\n\n if (screenshotIds.length > 0) {\n updateData.screenshotIds = screenshotIds\n }\n if (iconName !== null) {\n updateData.iconName = iconName\n }\n\n if (Object.keys(updateData).length > 0) {\n await prisma.dbResource.update({\n where: { slug: appSlug },\n data: updateData,\n })\n }\n } catch (error: unknown) {\n const errorMessage =\n error instanceof Error ? error.message : String(error)\n throw new Error(\n `Error while upserting assets for app '${appSlug}': ${errorMessage}`,\n )\n }\n }\n}\n\n/**\n * Optional data to sync alongside the core app catalog.\n */\nexport interface SyncAppCatalogOptions {\n persons?: Person[]\n groups?: Group[]\n}\n\n/**\n * Syncs app catalog data to the database using table sync.\n * This will create new resources, update existing ones, and delete any that are no longer in the input.\n *\n * Note: Call connectDb() before and disconnectDb() after if running in a script.\n */\nexport async function syncAppCatalog(\n resources: Resource[],\n tagsDefinitions: GroupingTagDefinition[],\n approvalMethods: ApprovalMethod[],\n screenshotsPath?: string,\n options?: SyncAppCatalogOptions,\n): Promise<SyncAppCatalogResult> {\n try {\n const prisma = getDbClient()\n\n // Sync Persons first (groups depend on persons via memberships)\n if (options?.persons) {\n const dbPersons = options.persons.map((p) => ({\n slug: p.slug,\n firstName: p.firstName,\n lastName: p.lastName,\n email: p.email ?? null,\n }))\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.DbPerson,\n }).sync(dbPersons)\n }\n\n // Sync Groups (without memberships first)\n if (options?.groups) {\n const dbGroups = options.groups.map((g) => ({\n slug: g.slug,\n displayName: g.displayName ?? null,\n email: g.email ?? null,\n }))\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.DbGroup,\n }).sync(dbGroups)\n\n // Now sync GroupMemberships\n const allMemberships = options.groups.flatMap((g) =>\n g.memberSlugs.map((personSlug) => ({\n groupSlug: g.slug,\n personSlug,\n })),\n )\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.DbGroupMembership,\n }).sync(allMemberships)\n }\n\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.DbApprovalMethod,\n }).sync(approvalMethods)\n\n const sync = tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.DbResource,\n })\n\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.DbAppTagDefinition,\n }).sync(tagsDefinitions)\n\n // Collect all unique source slugs for sync\n const uniqueSourceSlugs = new Set<string>()\n for (const resource of resources) {\n for (const source of resource.sources ?? []) {\n const url = typeof source === 'string' ? source : source.url\n const sourceSlug = parseSourceSlug(url)\n uniqueSourceSlugs.add(sourceSlug)\n }\n }\n\n // Sync Source entries using tableSyncPrisma\n const sources = Array.from(uniqueSourceSlugs).map((slug) => ({\n slug,\n userPrompt: null,\n }))\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.Source,\n }).sync(sources)\n\n // Sort resources: parents first (no parentSlug), then children — for FK integrity\n const sortedResources = [...resources].sort((a, b) => {\n const aIsChild = a.parentSlug ? 1 : 0\n const bIsChild = b.parentSlug ? 1 : 0\n return aIsChild - bIsChild\n })\n\n // Transform Resource to DbResource format (scalar fields only)\n const dbResources = sortedResources.map((resource) => {\n const slug =\n resource.slug ||\n resource.displayName\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n\n return {\n slug,\n type: resource.type ?? 'application',\n displayName: resource.displayName,\n abbreviation: resource.abbreviation ?? null,\n nicknames: resource.nicknames ?? [],\n description: resource.description,\n teams: resource.teams ?? [],\n accessRequest: resource.accessRequest ?? null,\n notes: resource.notes ?? null,\n tags: resource.tags ?? [],\n appUrl: resource.appUrl ?? null,\n links: resource.links ?? null,\n iconName: resource.iconName ?? null,\n screenshotIds: resource.screenshotIds ?? [],\n deprecated: resource.deprecated ?? null,\n aiPrompt: resource.aiPrompt ?? null,\n // aiMemory intentionally excluded from bulk sync — it is AI-owned and\n // preserved across restarts. Static-config values are seeded below (if DB is null).\n urlIssues: resource.urlIssues ?? [],\n tiers: resource.tiers ?? null,\n quickJumps: resource.quickJumps ?? null,\n // Fields from former SubResource\n parentSlug: resource.parentSlug ?? null,\n tier: resource.tier ?? null,\n aliases: resource.aliases ?? [],\n ownerPersonSlug: resource.ownerPersonSlug ?? null,\n approverSlugs: resource.approverSlugs ?? [],\n accessComments: resource.accessComments ?? null,\n extra: resource.extra ?? null,\n lastCheckedAt: resource.lastCheckedAt\n ? new Date(resource.lastCheckedAt)\n : null,\n nextCheckAfter: resource.nextCheckAfter\n ? new Date(resource.nextCheckAfter)\n : null,\n lastContentChangeAt: resource.lastContentChangeAt\n ? new Date(resource.lastContentChangeAt)\n : null,\n createdAt: resource.catalogAddedAt\n ? new Date(resource.catalogAddedAt)\n : undefined,\n }\n })\n\n // Sync resources\n const result = await sync.sync(dbResources)\n\n // Backfill catalogAddedAt → DB createdAt. Uses $executeRaw (not updateMany)\n // because Prisma's new client engine may treat @default(now()) fields as\n // server-managed and silently omit them from the SET clause. Raw SQL is the\n // only reliable path. The WHERE guard makes it idempotent: fires only when\n // the DB date is newer than catalogAddedAt (e.g. after a DB rebuild).\n for (const resource of resources) {\n if (!resource.catalogAddedAt) continue\n const addedAt = new Date(resource.catalogAddedAt)\n const slug =\n resource.slug ||\n resource.displayName\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n await prisma.$executeRaw`\n UPDATE \"DbResource\"\n SET \"createdAt\" = ${addedAt}\n WHERE \"slug\" = ${slug} AND \"createdAt\" > ${addedAt}\n `\n }\n\n // Resolve slug -> id for synced resources so SourceReference can reference by resourceId\n const slugs = dbResources.map((a) => a.slug)\n const resourceRows = await prisma.dbResource.findMany({\n where: { slug: { in: slugs } },\n select: { slug: true, id: true },\n })\n const slugToId = Object.fromEntries(resourceRows.map((r) => [r.slug, r.id]))\n\n // Build allSourceRefs with resourceId (slug already resolved to id)\n const allSourceRefs = sortedResources.flatMap((resource) => {\n const resourceSlug =\n resource.slug ||\n resource.displayName\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n const resourceId = slugToId[resourceSlug]\n if (!resourceId) {\n throw new Error(\n `Resource '${resourceSlug}' has no id after sync. Existing slugs: ${Object.keys(slugToId).join(', ')}`,\n )\n }\n\n return (resource.sources ?? []).map((source) => {\n const url = typeof source === 'string' ? source : source.url\n const sourceSlug = parseSourceSlug(url)\n return {\n resourceId,\n sourceSlug,\n url,\n parseDate: null,\n excerpts: [],\n userPrompt: null,\n }\n })\n })\n\n // Then sync all SourceReferences (with set semantics: old ones deleted, new ones created)\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.SourceReference,\n }).sync(allSourceRefs)\n\n // Seed aiMemory only for resources where the static config provides an initial value\n // and the DB currently has none. This preserves AI-written updates across restarts.\n const resourcesWithAiMemorySeed = sortedResources.filter(\n (r) => r.aiMemory != null && r.aiMemory.trim() !== '',\n )\n if (resourcesWithAiMemorySeed.length > 0) {\n for (const resource of resourcesWithAiMemorySeed) {\n const slug =\n resource.slug ||\n resource.displayName\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n await prisma.dbResource.updateMany({\n where: { slug, aiMemory: null },\n data: { aiMemory: resource.aiMemory },\n })\n }\n }\n\n // Get actual synced data to calculate stats\n const actual = result.getActual()\n\n if (screenshotsPath) {\n await syncAssetsFromFileSystem(resources, screenshotsPath)\n } else {\n console.warn('Do not sync screenhots')\n }\n\n return {\n created:\n actual.length - resources.length + (resources.length - actual.length),\n updated: 0, // TableSync doesn't expose this directly\n deleted: 0, // TableSync doesn't expose this directly\n total: actual.length,\n }\n } catch (error) {\n // Wrap error with context\n const errorMessage = error instanceof Error ? error.message : String(error)\n const errorStack = error instanceof Error ? error.stack : undefined\n\n throw new Error(\n `Error syncing app catalog: ${errorMessage}\\n\\nDetails:\\n${errorStack || 'No stack trace available'}`,\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"syncAppCatalog.mjs","names":[],"sources":["../../src/db/syncAppCatalog.ts"],"sourcesContent":["import type {\n GroupingTagDefinition,\n Resource,\n} from '../types/common/appCatalogTypes'\nimport { getDbClient } from './client'\nimport { TABLE_SYNC_MAGAZINE } from './tableSyncMagazine'\nimport { tableSyncPrisma } from './tableSyncPrismaAdapter'\nimport { readFile, readdir, stat } from 'node:fs/promises'\nimport { group } from 'radashi'\nimport { upsertAsset } from '../modules/assets/upsertAsset'\nimport type { ApprovalMethod, Group, Person } from '../types'\nimport type { PrismaClient } from '../generated/prisma/client'\nimport { naturalSort } from '../utils/naturalSort'\nimport { parseSourceSlug } from '../utils/parseSourceSlug'\n\nexport interface SyncAppCatalogResult {\n created: number\n updated: number\n deleted: number\n total: number\n}\n\ninterface AssetSyncResult {\n screenshotIds: string[]\n iconName: string | null\n}\n\n/**\n * ISO string to Date, tolerating junk. The per-source schedule comes from a file\n * an agent writes, so a malformed date must drop that one field rather than fail\n * the whole catalog sync on `Invalid Date`.\n */\nfunction asDate(iso: string | null | undefined): Date | null {\n if (!iso) return null\n const t = Date.parse(iso)\n return Number.isNaN(t) ? null : new Date(t)\n}\n\nfunction isFileNotFoundError(error: unknown): boolean {\n return (\n error instanceof Error &&\n 'code' in error &&\n (error as NodeJS.ErrnoException).code === 'ENOENT'\n )\n}\n\nasync function processAssetDirectory(\n dirPath: string,\n appSlug: string,\n assetType: 'screenshot' | 'icon',\n prisma: PrismaClient,\n): Promise<string[]> {\n try {\n const files = await readdir(dirPath)\n const sortedFiles = naturalSort(files)\n const assetIds: string[] = []\n\n for (let i = 0; i < sortedFiles.length; i++) {\n const fileName = sortedFiles[i]\n if (!fileName) continue\n\n const assetName =\n assetType === 'screenshot'\n ? `${appSlug}-screenshot-${i + 1}`\n : `${appSlug}-icon`\n\n const id = await upsertAsset({\n prisma,\n buffer: await readFile(`${dirPath}/${fileName}`),\n originalFilename: fileName,\n name: assetName,\n assetType,\n })\n assetIds.push(id)\n\n // For icons, only process the first file\n if (assetType === 'icon') {\n break\n }\n }\n\n return assetIds\n } catch (error: unknown) {\n if (isFileNotFoundError(error)) {\n return []\n }\n throw error\n }\n}\n\nasync function syncAppAssets(\n appSlug: string,\n appPath: string,\n prisma: PrismaClient,\n): Promise<AssetSyncResult> {\n const screenshotIds = await processAssetDirectory(\n `${appPath}/screenshots`,\n appSlug,\n 'screenshot',\n prisma,\n )\n\n const iconIds = await processAssetDirectory(\n `${appPath}/icons`,\n appSlug,\n 'icon',\n prisma,\n )\n\n return {\n screenshotIds,\n iconName: iconIds.length > 0 ? `${appSlug}-icon` : null,\n }\n}\n\nasync function syncAssetsFromFileSystem(\n resources: Resource[],\n allAppsAssetsPath: string,\n) {\n const appDirectories = await readdir(allAppsAssetsPath)\n const prisma = getDbClient()\n const bySlug = group(resources, (a) => a.slug)\n\n for (const appDirName of appDirectories) {\n try {\n const stats = await stat(`${allAppsAssetsPath}/${appDirName}`)\n if (!stats.isDirectory()) {\n continue\n }\n } catch (error: unknown) {\n if (isFileNotFoundError(error)) {\n continue\n }\n throw error\n }\n\n const appSlug = appDirName\n if (!bySlug[appSlug]) {\n throw new Error(\n `App '${appSlug}' does not exist in the app catalog. Existing apps: ${Object.keys(bySlug).join(', ')}`,\n )\n }\n\n try {\n const { screenshotIds, iconName } = await syncAppAssets(\n appSlug,\n `${allAppsAssetsPath}/${appDirName}`,\n prisma,\n )\n\n const updateData: {\n screenshotIds?: string[]\n iconName?: string | null\n } = {}\n\n if (screenshotIds.length > 0) {\n updateData.screenshotIds = screenshotIds\n }\n if (iconName !== null) {\n updateData.iconName = iconName\n }\n\n if (Object.keys(updateData).length > 0) {\n await prisma.dbResource.update({\n where: { slug: appSlug },\n data: updateData,\n })\n }\n } catch (error: unknown) {\n const errorMessage =\n error instanceof Error ? error.message : String(error)\n throw new Error(\n `Error while upserting assets for app '${appSlug}': ${errorMessage}`,\n )\n }\n }\n}\n\n/**\n * Optional data to sync alongside the core app catalog.\n */\nexport interface SyncAppCatalogOptions {\n persons?: Person[]\n groups?: Group[]\n}\n\n/**\n * Syncs app catalog data to the database using table sync.\n * This will create new resources, update existing ones, and delete any that are no longer in the input.\n *\n * Note: Call connectDb() before and disconnectDb() after if running in a script.\n */\nexport async function syncAppCatalog(\n resources: Resource[],\n tagsDefinitions: GroupingTagDefinition[],\n approvalMethods: ApprovalMethod[],\n screenshotsPath?: string,\n options?: SyncAppCatalogOptions,\n): Promise<SyncAppCatalogResult> {\n try {\n const prisma = getDbClient()\n\n // Sync Persons first (groups depend on persons via memberships)\n if (options?.persons) {\n const dbPersons = options.persons.map((p) => ({\n slug: p.slug,\n firstName: p.firstName,\n lastName: p.lastName,\n email: p.email ?? null,\n }))\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.DbPerson,\n }).sync(dbPersons)\n }\n\n // Sync Groups (without memberships first)\n if (options?.groups) {\n const dbGroups = options.groups.map((g) => ({\n slug: g.slug,\n displayName: g.displayName ?? null,\n email: g.email ?? null,\n }))\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.DbGroup,\n }).sync(dbGroups)\n\n // Now sync GroupMemberships\n const allMemberships = options.groups.flatMap((g) =>\n g.memberSlugs.map((personSlug) => ({\n groupSlug: g.slug,\n personSlug,\n })),\n )\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.DbGroupMembership,\n }).sync(allMemberships)\n }\n\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.DbApprovalMethod,\n }).sync(approvalMethods)\n\n const sync = tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.DbResource,\n })\n\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.DbAppTagDefinition,\n }).sync(tagsDefinitions)\n\n // Collect all unique source slugs for sync\n const uniqueSourceSlugs = new Set<string>()\n for (const resource of resources) {\n for (const source of resource.sources ?? []) {\n const url = typeof source === 'string' ? source : source.url\n const sourceSlug = parseSourceSlug(url)\n uniqueSourceSlugs.add(sourceSlug)\n }\n }\n\n // Sync Source entries using tableSyncPrisma\n const sources = Array.from(uniqueSourceSlugs).map((slug) => ({\n slug,\n userPrompt: null,\n }))\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.Source,\n }).sync(sources)\n\n // Sort resources: parents first (no parentSlug), then children — for FK integrity\n const sortedResources = [...resources].sort((a, b) => {\n const aIsChild = a.parentSlug ? 1 : 0\n const bIsChild = b.parentSlug ? 1 : 0\n return aIsChild - bIsChild\n })\n\n // Transform Resource to DbResource format (scalar fields only)\n const dbResources = sortedResources.map((resource) => {\n const slug =\n resource.slug ||\n resource.displayName\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n\n return {\n slug,\n type: resource.type ?? 'application',\n displayName: resource.displayName,\n abbreviation: resource.abbreviation ?? null,\n nicknames: resource.nicknames ?? [],\n description: resource.description,\n teams: resource.teams ?? [],\n accessRequest: resource.accessRequest ?? null,\n notes: resource.notes ?? null,\n tags: resource.tags ?? [],\n appUrl: resource.appUrl ?? null,\n links: resource.links ?? null,\n iconName: resource.iconName ?? null,\n screenshotIds: resource.screenshotIds ?? [],\n deprecated: resource.deprecated ?? null,\n aiPrompt: resource.aiPrompt ?? null,\n // aiMemory intentionally excluded from bulk sync — it is AI-owned and\n // preserved across restarts. Static-config values are seeded below (if DB is null).\n urlIssues: resource.urlIssues ?? [],\n tiers: resource.tiers ?? null,\n quickJumps: resource.quickJumps ?? null,\n // Fields from former SubResource\n parentSlug: resource.parentSlug ?? null,\n tier: resource.tier ?? null,\n aliases: resource.aliases ?? [],\n ownerPersonSlug: resource.ownerPersonSlug ?? null,\n approverSlugs: resource.approverSlugs ?? [],\n accessComments: resource.accessComments ?? null,\n extra: resource.extra ?? null,\n lastCheckedAt: resource.lastCheckedAt\n ? new Date(resource.lastCheckedAt)\n : null,\n nextCheckAfter: resource.nextCheckAfter\n ? new Date(resource.nextCheckAfter)\n : null,\n lastContentChangeAt: resource.lastContentChangeAt\n ? new Date(resource.lastContentChangeAt)\n : null,\n createdAt: resource.catalogAddedAt\n ? new Date(resource.catalogAddedAt)\n : undefined,\n }\n })\n\n // Sync resources\n const result = await sync.sync(dbResources)\n\n // Backfill catalogAddedAt → DB createdAt. Uses $executeRaw (not updateMany)\n // because Prisma's new client engine may treat @default(now()) fields as\n // server-managed and silently omit them from the SET clause. Raw SQL is the\n // only reliable path. The WHERE guard makes it idempotent: fires only when\n // the DB date is newer than catalogAddedAt (e.g. after a DB rebuild).\n for (const resource of resources) {\n if (!resource.catalogAddedAt) continue\n const addedAt = new Date(resource.catalogAddedAt)\n const slug =\n resource.slug ||\n resource.displayName\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n await prisma.$executeRaw`\n UPDATE \"DbResource\"\n SET \"createdAt\" = ${addedAt}\n WHERE \"slug\" = ${slug} AND \"createdAt\" > ${addedAt}\n `\n }\n\n // Resolve slug -> id for synced resources so SourceReference can reference by resourceId\n const slugs = dbResources.map((a) => a.slug)\n const resourceRows = await prisma.dbResource.findMany({\n where: { slug: { in: slugs } },\n select: { slug: true, id: true },\n })\n const slugToId = Object.fromEntries(resourceRows.map((r) => [r.slug, r.id]))\n\n // Build allSourceRefs with resourceId (slug already resolved to id)\n const allSourceRefs = sortedResources.flatMap((resource) => {\n const resourceSlug =\n resource.slug ||\n resource.displayName\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n const resourceId = slugToId[resourceSlug]\n if (!resourceId) {\n throw new Error(\n `Resource '${resourceSlug}' has no id after sync. Existing slugs: ${Object.keys(slugToId).join(', ')}`,\n )\n }\n\n return (resource.sources ?? []).map((source) => {\n const url = typeof source === 'string' ? source : source.url\n const sourceSlug = parseSourceSlug(url)\n // A bare URL from config carries no schedule; an enriched source does,\n // and it is the autoupdate registry's copy that wins on every sync.\n const schedule =\n typeof source === 'string' ? {} : (source.schedule ?? {})\n return {\n resourceId,\n sourceSlug,\n url,\n parseDate: null,\n excerpts: [],\n userPrompt: null,\n lastCheckedAt: asDate(schedule.lastCheckedAt),\n nextCheckAfter: asDate(schedule.nextCheckAfter),\n lastContentChangeAt: asDate(schedule.lastContentChangeAt),\n checkIntervalHours: schedule.checkIntervalHours ?? null,\n changeHistory: schedule.changeHistory ?? null,\n }\n })\n })\n\n // Then sync all SourceReferences (with set semantics: old ones deleted, new ones created)\n await tableSyncPrisma({\n prisma,\n ...TABLE_SYNC_MAGAZINE.SourceReference,\n }).sync(allSourceRefs)\n\n // Seed aiMemory only for resources where the static config provides an initial value\n // and the DB currently has none. This preserves AI-written updates across restarts.\n const resourcesWithAiMemorySeed = sortedResources.filter(\n (r) => r.aiMemory != null && r.aiMemory.trim() !== '',\n )\n if (resourcesWithAiMemorySeed.length > 0) {\n for (const resource of resourcesWithAiMemorySeed) {\n const slug =\n resource.slug ||\n resource.displayName\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n await prisma.dbResource.updateMany({\n where: { slug, aiMemory: null },\n data: { aiMemory: resource.aiMemory },\n })\n }\n }\n\n // Get actual synced data to calculate stats\n const actual = result.getActual()\n\n if (screenshotsPath) {\n await syncAssetsFromFileSystem(resources, screenshotsPath)\n } else {\n console.warn('Do not sync screenhots')\n }\n\n return {\n created:\n actual.length - resources.length + (resources.length - actual.length),\n updated: 0, // TableSync doesn't expose this directly\n deleted: 0, // TableSync doesn't expose this directly\n total: actual.length,\n }\n } catch (error) {\n // Wrap error with context\n const errorMessage = error instanceof Error ? error.message : String(error)\n const errorStack = error instanceof Error ? error.stack : undefined\n\n throw new Error(\n `Error syncing app catalog: ${errorMessage}\\n\\nDetails:\\n${errorStack || 'No stack trace available'}`,\n )\n }\n}\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ const config = {
6
6
  "clientVersion": "7.4.2",
7
7
  "engineVersion": "94a226be1cf2967af2541cca5529f0f7ba866919",
8
8
  "activeProvider": "postgresql",
9
- "inlineSchema": "// Prisma schema for backend-core library\n// Uses AC_CORE_DATABASE_URL environment variable\n\ndatasource db {\n provider = \"postgresql\"\n}\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../src/generated/prisma\"\n}\n\ngenerator json {\n provider = \"prisma-json-types-generator\"\n}\n\n// ========== Better Auth Models ==========\nmodel user {\n id String @id\n name String?\n email String? @unique\n emailVerified Boolean @default(false)\n image String?\n role String @default(\"user\") // 'user' | 'admin'\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n accounts account[]\n sessions session[]\n}\n\nmodel session {\n id String @id\n token String @unique\n userId String\n user user @relation(fields: [userId], references: [id], onDelete: Cascade)\n expiresAt DateTime\n ipAddress String?\n userAgent String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel account {\n id String @id\n userId String\n user user @relation(fields: [userId], references: [id], onDelete: Cascade)\n accountId String\n providerId String\n refreshToken String?\n accessToken String?\n accessTokenExpiresAt DateTime?\n refreshTokenExpiresAt DateTime?\n idToken String?\n scope String?\n password String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([providerId, accountId])\n}\n\nmodel verification {\n id String @id\n identifier String\n value String\n expiresAt DateTime\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([identifier, value])\n}\n\n// ========== EnvHopper Models ==========\n\nenum ApprovalMethodType {\n service\n personTeam\n custom\n noAccessRequired\n unknown\n}\n\n// ========== Person & Group Models ==========\n\nmodel DbPerson {\n slug String @id // email or synthetic\n firstName String\n lastName String\n email String? @unique\n memberships DbGroupMembership[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel DbGroup {\n slug String @id\n displayName String?\n email String? // team alias\n memberships DbGroupMembership[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel DbGroupMembership {\n id Int @id @default(autoincrement())\n groupSlug String\n group DbGroup @relation(fields: [groupSlug], references: [slug], onDelete: Cascade)\n personSlug String\n person DbPerson @relation(fields: [personSlug], references: [slug], onDelete: Cascade)\n\n @@unique([groupSlug, personSlug])\n}\n\nmodel DbApprovalMethod {\n slug String @id\n type ApprovalMethodType\n displayName String\n /// [ApprovalMethodConfig] - Type-specific configuration\n config Json?\n deprecatedAliases String[] @default([]) // Old URLs that should redirect to this method\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([type, displayName])\n}\n\nmodel DbResource {\n id String @id @default(cuid())\n slug String @unique // URL-friendly identifier for navigation\n type String @default(\"application\") // \"application\" | \"sub-resource\" | etc.\n displayName String\n abbreviation String? // Optional short abbreviation (e.g. K8s, ECR, LV)\n nicknames String[] @default([]) // Alternative names / AKA\n description String\n /// [AccessMethod]\n access Json?\n teams String[] @default([])\n /// [AccessRequest] - Per-resource approval configuration linking to ApprovalMethod\n accessRequest Json?\n notes String?\n tags String[] @default([])\n appUrl String?\n /// [AppLink[]]\n links Json? // Array of {displayName?: string, url: string}\n iconName String? // Optional icon identifier matching DbAsset.name\n screenshotIds String[] @default([]) // Ordered array of DbAsset IDs\n /// [AppDeprecation] - Deprecation info with optional replacement slug\n deprecated Json?\n aiPrompt String?\n aiMemory String?\n urlIssues String[] @default([])\n /// [TierVariant[]]\n tiers Json?\n /// [QuickJump[]]\n quickJumps Json?\n sourceRefs SourceReference[]\n comments DbComment[]\n // Self-referential tree: sub-resources point to their parent\n parentSlug String?\n parent DbResource? @relation(\"ResourceTree\", fields: [parentSlug], references: [slug])\n children DbResource[] @relation(\"ResourceTree\")\n // Fields merged from former DbSubResource\n tier String? // e.g. \"prod\", \"dev\"\n aliases String[] @default([])\n ownerPersonSlug String?\n approverSlugs String[] @default([]) // Person or Group slugs\n\n accessComments String?\n /// [SubResourceExtra]\n extra Json?\n // Freshness (autoupdate scan): when sources were last verified, when the next\n // check is due, and when the source content last actually changed (what the UI\n // shows as \"Updated\" — a source can be re-read without changing).\n // Nullable — apps that have never been scanned carry null.\n lastCheckedAt DateTime?\n nextCheckAfter DateTime?\n lastContentChangeAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([displayName])\n @@index([slug])\n @@index([tags])\n @@index([parentSlug])\n}\n\n/// A visitor's comment on one resource.\n///\n/// The catalog is browsable without logging in, so a comment carries no user id.\n/// Instead the server issues an opaque visitor token in an httpOnly cookie and\n/// stores its hash: enough to let an author edit or delete their own comment for\n/// a short window, and nothing a reader can forge.\nmodel DbComment {\n id String @id @default(cuid())\n // The resource's id, not its slug — a slug is user-facing and gets renamed.\n resourceId String\n resource DbResource @relation(fields: [resourceId], references: [id], onDelete: Cascade)\n // sha256 of the visitor token. Authorises edit/delete; never sent to a client.\n authorHash String\n // The pseudonym shown next to the comment, stored rather than derived at render\n // time so editing the wordlist later cannot rename everybody's history.\n authorAlias String\n body String\n // Set on a later edit, so the UI can mark a comment as edited. Null when never edited.\n editedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([resourceId, createdAt])\n @@index([authorHash])\n}\n\nmodel DbAppTagDefinition {\n id String @id @default(cuid())\n prefix String @unique\n displayName String\n description String\n /// [GroupingTagValue[]]\n values Json\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nenum AssetType {\n icon\n screenshot\n}\n\nmodel DbAsset {\n id String @id @default(cuid())\n name String @unique // Name with extension (e.g., \"jira.svg\", \"github.png\")\n assetType AssetType @default(icon)\n content Bytes // Binary storage for all asset types (SVG, PNG, etc)\n checksum String // SHA-256 of content for deduplication\n mimeType String // e.g., \"image/svg+xml\", \"image/png\", \"image/jpeg\"\n fileSize Int // Size in bytes\n width Int? // Image width in pixels\n height Int? // Image height in pixels\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([name])\n @@index([assetType])\n}\n\nmodel Source {\n slug String @id\n userPrompt String?\n references SourceReference[]\n}\n\nmodel SourceReference {\n id Int @id @default(autoincrement())\n sourceSlug String\n source Source @relation(fields: [sourceSlug], references: [slug], onDelete: Cascade)\n resourceId String\n resource DbResource @relation(fields: [resourceId], references: [id], onDelete: Cascade)\n url String\n parseDate DateTime?\n excerpts String[] @default([])\n userPrompt String?\n\n @@unique([resourceId, url])\n}\n",
9
+ "inlineSchema": "// Prisma schema for backend-core library\n// Uses AC_CORE_DATABASE_URL environment variable\n\ndatasource db {\n provider = \"postgresql\"\n}\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../src/generated/prisma\"\n}\n\ngenerator json {\n provider = \"prisma-json-types-generator\"\n}\n\n// ========== Better Auth Models ==========\nmodel user {\n id String @id\n name String?\n email String? @unique\n emailVerified Boolean @default(false)\n image String?\n role String @default(\"user\") // 'user' | 'admin'\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n accounts account[]\n sessions session[]\n}\n\nmodel session {\n id String @id\n token String @unique\n userId String\n user user @relation(fields: [userId], references: [id], onDelete: Cascade)\n expiresAt DateTime\n ipAddress String?\n userAgent String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel account {\n id String @id\n userId String\n user user @relation(fields: [userId], references: [id], onDelete: Cascade)\n accountId String\n providerId String\n refreshToken String?\n accessToken String?\n accessTokenExpiresAt DateTime?\n refreshTokenExpiresAt DateTime?\n idToken String?\n scope String?\n password String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([providerId, accountId])\n}\n\nmodel verification {\n id String @id\n identifier String\n value String\n expiresAt DateTime\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([identifier, value])\n}\n\n// ========== EnvHopper Models ==========\n\nenum ApprovalMethodType {\n service\n personTeam\n custom\n noAccessRequired\n unknown\n}\n\n// ========== Person & Group Models ==========\n\nmodel DbPerson {\n slug String @id // email or synthetic\n firstName String\n lastName String\n email String? @unique\n memberships DbGroupMembership[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel DbGroup {\n slug String @id\n displayName String?\n email String? // team alias\n memberships DbGroupMembership[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel DbGroupMembership {\n id Int @id @default(autoincrement())\n groupSlug String\n group DbGroup @relation(fields: [groupSlug], references: [slug], onDelete: Cascade)\n personSlug String\n person DbPerson @relation(fields: [personSlug], references: [slug], onDelete: Cascade)\n\n @@unique([groupSlug, personSlug])\n}\n\nmodel DbApprovalMethod {\n slug String @id\n type ApprovalMethodType\n displayName String\n /// [ApprovalMethodConfig] - Type-specific configuration\n config Json?\n deprecatedAliases String[] @default([]) // Old URLs that should redirect to this method\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([type, displayName])\n}\n\nmodel DbResource {\n id String @id @default(cuid())\n slug String @unique // URL-friendly identifier for navigation\n type String @default(\"application\") // \"application\" | \"sub-resource\" | etc.\n displayName String\n abbreviation String? // Optional short abbreviation (e.g. K8s, ECR, LV)\n nicknames String[] @default([]) // Alternative names / AKA\n description String\n /// [AccessMethod]\n access Json?\n teams String[] @default([])\n /// [AccessRequest] - Per-resource approval configuration linking to ApprovalMethod\n accessRequest Json?\n notes String?\n tags String[] @default([])\n appUrl String?\n /// [AppLink[]]\n links Json? // Array of {displayName?: string, url: string}\n iconName String? // Optional icon identifier matching DbAsset.name\n screenshotIds String[] @default([]) // Ordered array of DbAsset IDs\n /// [AppDeprecation] - Deprecation info with optional replacement slug\n deprecated Json?\n aiPrompt String?\n aiMemory String?\n urlIssues String[] @default([])\n /// [TierVariant[]]\n tiers Json?\n /// [QuickJump[]]\n quickJumps Json?\n sourceRefs SourceReference[]\n comments DbComment[]\n // Self-referential tree: sub-resources point to their parent\n parentSlug String?\n parent DbResource? @relation(\"ResourceTree\", fields: [parentSlug], references: [slug])\n children DbResource[] @relation(\"ResourceTree\")\n // Fields merged from former DbSubResource\n tier String? // e.g. \"prod\", \"dev\"\n aliases String[] @default([])\n ownerPersonSlug String?\n approverSlugs String[] @default([]) // Person or Group slugs\n\n accessComments String?\n /// [SubResourceExtra]\n extra Json?\n // Freshness (autoupdate scan): when sources were last verified, when the next\n // check is due, and when the source content last actually changed (what the UI\n // shows as \"Updated\" — a source can be re-read without changing).\n // Nullable — apps that have never been scanned carry null.\n lastCheckedAt DateTime?\n nextCheckAfter DateTime?\n lastContentChangeAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([displayName])\n @@index([slug])\n @@index([tags])\n @@index([parentSlug])\n}\n\n/// A visitor's comment on one resource.\n///\n/// The catalog is browsable without logging in, so a comment carries no user id.\n/// Instead the server issues an opaque visitor token in an httpOnly cookie and\n/// stores its hash: enough to let an author edit or delete their own comment for\n/// a short window, and nothing a reader can forge.\nmodel DbComment {\n id String @id @default(cuid())\n // The resource's id, not its slug — a slug is user-facing and gets renamed.\n resourceId String\n resource DbResource @relation(fields: [resourceId], references: [id], onDelete: Cascade)\n // sha256 of the visitor token. Authorises edit/delete; never sent to a client.\n authorHash String\n // The pseudonym shown next to the comment, stored rather than derived at render\n // time so editing the wordlist later cannot rename everybody's history.\n authorAlias String\n body String\n // Set on a later edit, so the UI can mark a comment as edited. Null when never edited.\n editedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([resourceId, createdAt])\n @@index([authorHash])\n}\n\nmodel DbAppTagDefinition {\n id String @id @default(cuid())\n prefix String @unique\n displayName String\n description String\n /// [GroupingTagValue[]]\n values Json\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nenum AssetType {\n icon\n screenshot\n}\n\nmodel DbAsset {\n id String @id @default(cuid())\n name String @unique // Name with extension (e.g., \"jira.svg\", \"github.png\")\n assetType AssetType @default(icon)\n content Bytes // Binary storage for all asset types (SVG, PNG, etc)\n checksum String // SHA-256 of content for deduplication\n mimeType String // e.g., \"image/svg+xml\", \"image/png\", \"image/jpeg\"\n fileSize Int // Size in bytes\n width Int? // Image width in pixels\n height Int? // Image height in pixels\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([name])\n @@index([assetType])\n}\n\nmodel Source {\n slug String @id\n userPrompt String?\n references SourceReference[]\n}\n\nmodel SourceReference {\n id Int @id @default(autoincrement())\n sourceSlug String\n source Source @relation(fields: [sourceSlug], references: [slug], onDelete: Cascade)\n resourceId String\n resource DbResource @relation(fields: [resourceId], references: [id], onDelete: Cascade)\n url String\n parseDate DateTime?\n excerpts String[] @default([])\n userPrompt String?\n\n // Per-source schedule from the autoupdate loop — the same three dates\n // DbResource carries for the whole entry, plus what only a source has: its own\n // adaptive interval and its own recent check results. Drives the pulse mark.\n lastCheckedAt DateTime?\n nextCheckAfter DateTime?\n lastContentChangeAt DateTime?\n checkIntervalHours Int?\n /// Newest-first [{date, changed}], capped by the producer.\n changeHistory Json?\n\n @@unique([resourceId, url])\n}\n",
10
10
  "runtimeDataModel": {
11
11
  "models": {},
12
12
  "enums": {},
@@ -17,10 +17,10 @@ const config = {
17
17
  "graph": ""
18
18
  }
19
19
  };
20
- config.runtimeDataModel = JSON.parse("{\"models\":{\"user\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"account\",\"relationName\":\"accountTouser\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"session\",\"relationName\":\"sessionTouser\"}],\"dbName\":null},\"session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"user\",\"relationName\":\"sessionTouser\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"ipAddress\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"user\",\"relationName\":\"accountTouser\"},{\"name\":\"accountId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refreshToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accessToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accessTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"refreshTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"idToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"verification\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbPerson\":{\"fields\":[{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"firstName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"memberships\",\"kind\":\"object\",\"type\":\"DbGroupMembership\",\"relationName\":\"DbGroupMembershipToDbPerson\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbGroup\":{\"fields\":[{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"memberships\",\"kind\":\"object\",\"type\":\"DbGroupMembership\",\"relationName\":\"DbGroupToDbGroupMembership\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbGroupMembership\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"groupSlug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"DbGroup\",\"relationName\":\"DbGroupToDbGroupMembership\"},{\"name\":\"personSlug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"person\",\"kind\":\"object\",\"type\":\"DbPerson\",\"relationName\":\"DbGroupMembershipToDbPerson\"}],\"dbName\":null},\"DbApprovalMethod\":{\"fields\":[{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"ApprovalMethodType\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"config\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"deprecatedAliases\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbResource\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"abbreviation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"nicknames\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"teams\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accessRequest\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"tags\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"appUrl\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"links\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"iconName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"screenshotIds\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"deprecated\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"aiPrompt\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"aiMemory\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"urlIssues\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"tiers\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"quickJumps\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"sourceRefs\",\"kind\":\"object\",\"type\":\"SourceReference\",\"relationName\":\"DbResourceToSourceReference\"},{\"name\":\"comments\",\"kind\":\"object\",\"type\":\"DbComment\",\"relationName\":\"DbCommentToDbResource\"},{\"name\":\"parentSlug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parent\",\"kind\":\"object\",\"type\":\"DbResource\",\"relationName\":\"ResourceTree\"},{\"name\":\"children\",\"kind\":\"object\",\"type\":\"DbResource\",\"relationName\":\"ResourceTree\"},{\"name\":\"tier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"aliases\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ownerPersonSlug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"approverSlugs\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accessComments\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"extra\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"lastCheckedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"nextCheckAfter\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"lastContentChangeAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbComment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resourceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resource\",\"kind\":\"object\",\"type\":\"DbResource\",\"relationName\":\"DbCommentToDbResource\"},{\"name\":\"authorHash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"authorAlias\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"body\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"editedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbAppTagDefinition\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"prefix\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"values\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbAsset\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assetType\",\"kind\":\"enum\",\"type\":\"AssetType\"},{\"name\":\"content\",\"kind\":\"scalar\",\"type\":\"Bytes\"},{\"name\":\"checksum\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fileSize\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"width\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"height\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Source\":{\"fields\":[{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userPrompt\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"references\",\"kind\":\"object\",\"type\":\"SourceReference\",\"relationName\":\"SourceToSourceReference\"}],\"dbName\":null},\"SourceReference\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"sourceSlug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source\",\"kind\":\"object\",\"type\":\"Source\",\"relationName\":\"SourceToSourceReference\"},{\"name\":\"resourceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resource\",\"kind\":\"object\",\"type\":\"DbResource\",\"relationName\":\"DbResourceToSourceReference\"},{\"name\":\"url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parseDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"excerpts\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userPrompt\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}");
20
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"user\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"account\",\"relationName\":\"accountTouser\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"session\",\"relationName\":\"sessionTouser\"}],\"dbName\":null},\"session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"user\",\"relationName\":\"sessionTouser\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"ipAddress\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"user\",\"relationName\":\"accountTouser\"},{\"name\":\"accountId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refreshToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accessToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accessTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"refreshTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"idToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"verification\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbPerson\":{\"fields\":[{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"firstName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"memberships\",\"kind\":\"object\",\"type\":\"DbGroupMembership\",\"relationName\":\"DbGroupMembershipToDbPerson\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbGroup\":{\"fields\":[{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"memberships\",\"kind\":\"object\",\"type\":\"DbGroupMembership\",\"relationName\":\"DbGroupToDbGroupMembership\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbGroupMembership\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"groupSlug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"DbGroup\",\"relationName\":\"DbGroupToDbGroupMembership\"},{\"name\":\"personSlug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"person\",\"kind\":\"object\",\"type\":\"DbPerson\",\"relationName\":\"DbGroupMembershipToDbPerson\"}],\"dbName\":null},\"DbApprovalMethod\":{\"fields\":[{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"ApprovalMethodType\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"config\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"deprecatedAliases\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbResource\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"abbreviation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"nicknames\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"teams\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accessRequest\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"tags\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"appUrl\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"links\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"iconName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"screenshotIds\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"deprecated\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"aiPrompt\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"aiMemory\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"urlIssues\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"tiers\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"quickJumps\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"sourceRefs\",\"kind\":\"object\",\"type\":\"SourceReference\",\"relationName\":\"DbResourceToSourceReference\"},{\"name\":\"comments\",\"kind\":\"object\",\"type\":\"DbComment\",\"relationName\":\"DbCommentToDbResource\"},{\"name\":\"parentSlug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parent\",\"kind\":\"object\",\"type\":\"DbResource\",\"relationName\":\"ResourceTree\"},{\"name\":\"children\",\"kind\":\"object\",\"type\":\"DbResource\",\"relationName\":\"ResourceTree\"},{\"name\":\"tier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"aliases\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ownerPersonSlug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"approverSlugs\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accessComments\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"extra\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"lastCheckedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"nextCheckAfter\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"lastContentChangeAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbComment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resourceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resource\",\"kind\":\"object\",\"type\":\"DbResource\",\"relationName\":\"DbCommentToDbResource\"},{\"name\":\"authorHash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"authorAlias\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"body\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"editedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbAppTagDefinition\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"prefix\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"values\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"DbAsset\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assetType\",\"kind\":\"enum\",\"type\":\"AssetType\"},{\"name\":\"content\",\"kind\":\"scalar\",\"type\":\"Bytes\"},{\"name\":\"checksum\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fileSize\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"width\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"height\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Source\":{\"fields\":[{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userPrompt\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"references\",\"kind\":\"object\",\"type\":\"SourceReference\",\"relationName\":\"SourceToSourceReference\"}],\"dbName\":null},\"SourceReference\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"sourceSlug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source\",\"kind\":\"object\",\"type\":\"Source\",\"relationName\":\"SourceToSourceReference\"},{\"name\":\"resourceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resource\",\"kind\":\"object\",\"type\":\"DbResource\",\"relationName\":\"DbResourceToSourceReference\"},{\"name\":\"url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parseDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"excerpts\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userPrompt\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastCheckedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"nextCheckAfter\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"lastContentChangeAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"checkIntervalHours\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"changeHistory\",\"kind\":\"scalar\",\"type\":\"Json\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}");
21
21
  config.parameterizationSchema = {
22
- strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"accounts\",\"sessions\",\"_count\",\"user.findUnique\",\"user.findUniqueOrThrow\",\"user.findFirst\",\"user.findFirstOrThrow\",\"user.findMany\",\"data\",\"user.createOne\",\"user.createMany\",\"user.createManyAndReturn\",\"user.updateOne\",\"user.updateMany\",\"user.updateManyAndReturn\",\"create\",\"update\",\"user.upsertOne\",\"user.deleteOne\",\"user.deleteMany\",\"having\",\"_min\",\"_max\",\"user.groupBy\",\"user.aggregate\",\"session.findUnique\",\"session.findUniqueOrThrow\",\"session.findFirst\",\"session.findFirstOrThrow\",\"session.findMany\",\"session.createOne\",\"session.createMany\",\"session.createManyAndReturn\",\"session.updateOne\",\"session.updateMany\",\"session.updateManyAndReturn\",\"session.upsertOne\",\"session.deleteOne\",\"session.deleteMany\",\"session.groupBy\",\"session.aggregate\",\"account.findUnique\",\"account.findUniqueOrThrow\",\"account.findFirst\",\"account.findFirstOrThrow\",\"account.findMany\",\"account.createOne\",\"account.createMany\",\"account.createManyAndReturn\",\"account.updateOne\",\"account.updateMany\",\"account.updateManyAndReturn\",\"account.upsertOne\",\"account.deleteOne\",\"account.deleteMany\",\"account.groupBy\",\"account.aggregate\",\"verification.findUnique\",\"verification.findUniqueOrThrow\",\"verification.findFirst\",\"verification.findFirstOrThrow\",\"verification.findMany\",\"verification.createOne\",\"verification.createMany\",\"verification.createManyAndReturn\",\"verification.updateOne\",\"verification.updateMany\",\"verification.updateManyAndReturn\",\"verification.upsertOne\",\"verification.deleteOne\",\"verification.deleteMany\",\"verification.groupBy\",\"verification.aggregate\",\"memberships\",\"group\",\"person\",\"DbPerson.findUnique\",\"DbPerson.findUniqueOrThrow\",\"DbPerson.findFirst\",\"DbPerson.findFirstOrThrow\",\"DbPerson.findMany\",\"DbPerson.createOne\",\"DbPerson.createMany\",\"DbPerson.createManyAndReturn\",\"DbPerson.updateOne\",\"DbPerson.updateMany\",\"DbPerson.updateManyAndReturn\",\"DbPerson.upsertOne\",\"DbPerson.deleteOne\",\"DbPerson.deleteMany\",\"DbPerson.groupBy\",\"DbPerson.aggregate\",\"DbGroup.findUnique\",\"DbGroup.findUniqueOrThrow\",\"DbGroup.findFirst\",\"DbGroup.findFirstOrThrow\",\"DbGroup.findMany\",\"DbGroup.createOne\",\"DbGroup.createMany\",\"DbGroup.createManyAndReturn\",\"DbGroup.updateOne\",\"DbGroup.updateMany\",\"DbGroup.updateManyAndReturn\",\"DbGroup.upsertOne\",\"DbGroup.deleteOne\",\"DbGroup.deleteMany\",\"DbGroup.groupBy\",\"DbGroup.aggregate\",\"DbGroupMembership.findUnique\",\"DbGroupMembership.findUniqueOrThrow\",\"DbGroupMembership.findFirst\",\"DbGroupMembership.findFirstOrThrow\",\"DbGroupMembership.findMany\",\"DbGroupMembership.createOne\",\"DbGroupMembership.createMany\",\"DbGroupMembership.createManyAndReturn\",\"DbGroupMembership.updateOne\",\"DbGroupMembership.updateMany\",\"DbGroupMembership.updateManyAndReturn\",\"DbGroupMembership.upsertOne\",\"DbGroupMembership.deleteOne\",\"DbGroupMembership.deleteMany\",\"_avg\",\"_sum\",\"DbGroupMembership.groupBy\",\"DbGroupMembership.aggregate\",\"DbApprovalMethod.findUnique\",\"DbApprovalMethod.findUniqueOrThrow\",\"DbApprovalMethod.findFirst\",\"DbApprovalMethod.findFirstOrThrow\",\"DbApprovalMethod.findMany\",\"DbApprovalMethod.createOne\",\"DbApprovalMethod.createMany\",\"DbApprovalMethod.createManyAndReturn\",\"DbApprovalMethod.updateOne\",\"DbApprovalMethod.updateMany\",\"DbApprovalMethod.updateManyAndReturn\",\"DbApprovalMethod.upsertOne\",\"DbApprovalMethod.deleteOne\",\"DbApprovalMethod.deleteMany\",\"DbApprovalMethod.groupBy\",\"DbApprovalMethod.aggregate\",\"references\",\"source\",\"resource\",\"sourceRefs\",\"comments\",\"parent\",\"children\",\"DbResource.findUnique\",\"DbResource.findUniqueOrThrow\",\"DbResource.findFirst\",\"DbResource.findFirstOrThrow\",\"DbResource.findMany\",\"DbResource.createOne\",\"DbResource.createMany\",\"DbResource.createManyAndReturn\",\"DbResource.updateOne\",\"DbResource.updateMany\",\"DbResource.updateManyAndReturn\",\"DbResource.upsertOne\",\"DbResource.deleteOne\",\"DbResource.deleteMany\",\"DbResource.groupBy\",\"DbResource.aggregate\",\"DbComment.findUnique\",\"DbComment.findUniqueOrThrow\",\"DbComment.findFirst\",\"DbComment.findFirstOrThrow\",\"DbComment.findMany\",\"DbComment.createOne\",\"DbComment.createMany\",\"DbComment.createManyAndReturn\",\"DbComment.updateOne\",\"DbComment.updateMany\",\"DbComment.updateManyAndReturn\",\"DbComment.upsertOne\",\"DbComment.deleteOne\",\"DbComment.deleteMany\",\"DbComment.groupBy\",\"DbComment.aggregate\",\"DbAppTagDefinition.findUnique\",\"DbAppTagDefinition.findUniqueOrThrow\",\"DbAppTagDefinition.findFirst\",\"DbAppTagDefinition.findFirstOrThrow\",\"DbAppTagDefinition.findMany\",\"DbAppTagDefinition.createOne\",\"DbAppTagDefinition.createMany\",\"DbAppTagDefinition.createManyAndReturn\",\"DbAppTagDefinition.updateOne\",\"DbAppTagDefinition.updateMany\",\"DbAppTagDefinition.updateManyAndReturn\",\"DbAppTagDefinition.upsertOne\",\"DbAppTagDefinition.deleteOne\",\"DbAppTagDefinition.deleteMany\",\"DbAppTagDefinition.groupBy\",\"DbAppTagDefinition.aggregate\",\"DbAsset.findUnique\",\"DbAsset.findUniqueOrThrow\",\"DbAsset.findFirst\",\"DbAsset.findFirstOrThrow\",\"DbAsset.findMany\",\"DbAsset.createOne\",\"DbAsset.createMany\",\"DbAsset.createManyAndReturn\",\"DbAsset.updateOne\",\"DbAsset.updateMany\",\"DbAsset.updateManyAndReturn\",\"DbAsset.upsertOne\",\"DbAsset.deleteOne\",\"DbAsset.deleteMany\",\"DbAsset.groupBy\",\"DbAsset.aggregate\",\"Source.findUnique\",\"Source.findUniqueOrThrow\",\"Source.findFirst\",\"Source.findFirstOrThrow\",\"Source.findMany\",\"Source.createOne\",\"Source.createMany\",\"Source.createManyAndReturn\",\"Source.updateOne\",\"Source.updateMany\",\"Source.updateManyAndReturn\",\"Source.upsertOne\",\"Source.deleteOne\",\"Source.deleteMany\",\"Source.groupBy\",\"Source.aggregate\",\"SourceReference.findUnique\",\"SourceReference.findUniqueOrThrow\",\"SourceReference.findFirst\",\"SourceReference.findFirstOrThrow\",\"SourceReference.findMany\",\"SourceReference.createOne\",\"SourceReference.createMany\",\"SourceReference.createManyAndReturn\",\"SourceReference.updateOne\",\"SourceReference.updateMany\",\"SourceReference.updateManyAndReturn\",\"SourceReference.upsertOne\",\"SourceReference.deleteOne\",\"SourceReference.deleteMany\",\"SourceReference.groupBy\",\"SourceReference.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"sourceSlug\",\"resourceId\",\"url\",\"parseDate\",\"excerpts\",\"userPrompt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"contains\",\"startsWith\",\"endsWith\",\"not\",\"has\",\"hasEvery\",\"hasSome\",\"slug\",\"every\",\"some\",\"none\",\"name\",\"AssetType\",\"assetType\",\"content\",\"checksum\",\"mimeType\",\"fileSize\",\"width\",\"height\",\"createdAt\",\"updatedAt\",\"prefix\",\"displayName\",\"description\",\"values\",\"string_contains\",\"string_starts_with\",\"string_ends_with\",\"array_starts_with\",\"array_ends_with\",\"array_contains\",\"authorHash\",\"authorAlias\",\"body\",\"editedAt\",\"type\",\"abbreviation\",\"nicknames\",\"access\",\"teams\",\"accessRequest\",\"notes\",\"tags\",\"appUrl\",\"links\",\"iconName\",\"screenshotIds\",\"deprecated\",\"aiPrompt\",\"aiMemory\",\"urlIssues\",\"tiers\",\"quickJumps\",\"parentSlug\",\"tier\",\"aliases\",\"ownerPersonSlug\",\"approverSlugs\",\"accessComments\",\"extra\",\"lastCheckedAt\",\"nextCheckAfter\",\"lastContentChangeAt\",\"resourceId_url\",\"ApprovalMethodType\",\"config\",\"deprecatedAliases\",\"type_displayName\",\"groupSlug\",\"personSlug\",\"email\",\"firstName\",\"lastName\",\"groupSlug_personSlug\",\"identifier\",\"value\",\"expiresAt\",\"identifier_value\",\"userId\",\"accountId\",\"providerId\",\"refreshToken\",\"accessToken\",\"accessTokenExpiresAt\",\"refreshTokenExpiresAt\",\"idToken\",\"scope\",\"password\",\"token\",\"ipAddress\",\"userAgent\",\"emailVerified\",\"image\",\"role\",\"providerId_accountId\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"push\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
23
- graph: "0QV84AENBAAAygMAIAUAAMsDACD5AQAAyAMAMPoBAAAOABD7AQAAyAMAMPwBAQAAAAGVAgEAhQMAIZ4CQACZAwAhnwJAAJkDACHRAgEAAAAB5gIgAMkDACHnAgEAhQMAIegCAQCEAwAhAQAAAAEAIBEDAADNAwAg-QEAAM8DADD6AQAAAwAQ-wEAAM8DADD8AQEAhAMAIZ4CQACZAwAhnwJAAJkDACHZAgEAhAMAIdoCAQCEAwAh2wIBAIQDACHcAgEAhQMAId0CAQCFAwAh3gJAAKUDACHfAkAApQMAIeACAQCFAwAh4QIBAIUDACHiAgEAhQMAIQgDAAChBQAg3AIAANADACDdAgAA0AMAIN4CAADQAwAg3wIAANADACDgAgAA0AMAIOECAADQAwAg4gIAANADACASAwAAzQMAIPkBAADPAwAw-gEAAAMAEPsBAADPAwAw_AEBAAAAAZ4CQACZAwAhnwJAAJkDACHZAgEAhAMAIdoCAQCEAwAh2wIBAIQDACHcAgEAhQMAId0CAQCFAwAh3gJAAKUDACHfAkAApQMAIeACAQCFAwAh4QIBAIUDACHiAgEAhQMAIekCAADOAwAgAwAAAAMAIAEAAAQAMAIAAAUAIAwDAADNAwAg-QEAAMwDADD6AQAABwAQ-wEAAMwDADD8AQEAhAMAIZ4CQACZAwAhnwJAAJkDACHXAkAAmQMAIdkCAQCEAwAh4wIBAIQDACHkAgEAhQMAIeUCAQCFAwAhAwMAAKEFACDkAgAA0AMAIOUCAADQAwAgDAMAAM0DACD5AQAAzAMAMPoBAAAHABD7AQAAzAMAMPwBAQAAAAGeAkAAmQMAIZ8CQACZAwAh1wJAAJkDACHZAgEAhAMAIeMCAQAAAAHkAgEAhQMAIeUCAQCFAwAhAwAAAAcAIAEAAAgAMAIAAAkAIAEAAAADACABAAAABwAgAQAAAAEAIA0EAADKAwAgBQAAywMAIPkBAADIAwAw-gEAAA4AEPsBAADIAwAw_AEBAIQDACGVAgEAhQMAIZ4CQACZAwAhnwJAAJkDACHRAgEAhQMAIeYCIADJAwAh5wIBAIUDACHoAgEAhAMAIQUEAACfBQAgBQAAoAUAIJUCAADQAwAg0QIAANADACDnAgAA0AMAIAMAAAAOACABAAAPADACAAABACADAAAADgAgAQAADwAwAgAAAQAgAwAAAA4AIAEAAA8AMAIAAAEAIAoEAACdBQAgBQAAngUAIPwBAQAAAAGVAgEAAAABngJAAAAAAZ8CQAAAAAHRAgEAAAAB5gIgAAAAAecCAQAAAAHoAgEAAAABAQwAABMAIAj8AQEAAAABlQIBAAAAAZ4CQAAAAAGfAkAAAAAB0QIBAAAAAeYCIAAAAAHnAgEAAAAB6AIBAAAAAQEMAAAVADABDAAAFQAwCgQAAIMFACAFAACEBQAg_AEBANYDACGVAgEA2QMAIZ4CQAD6AwAhnwJAAPoDACHRAgEA2QMAIeYCIACCBQAh5wIBANkDACHoAgEA1gMAIQIAAAABACAMAAAYACAI_AEBANYDACGVAgEA2QMAIZ4CQAD6AwAhnwJAAPoDACHRAgEA2QMAIeYCIACCBQAh5wIBANkDACHoAgEA1gMAIQIAAAAOACAMAAAaACACAAAADgAgDAAAGgAgAwAAAAEAIBMAABMAIBQAABgAIAEAAAABACABAAAADgAgBgYAAP8EACAZAACBBQAgGgAAgAUAIJUCAADQAwAg0QIAANADACDnAgAA0AMAIAv5AQAAxAMAMPoBAAAhABD7AQAAxAMAMPwBAQD0AgAhlQIBAPcCACGeAkAAiwMAIZ8CQACLAwAh0QIBAPcCACHmAiAAxQMAIecCAQD3AgAh6AIBAPQCACEDAAAADgAgAQAAIAAwGAAAIQAgAwAAAA4AIAEAAA8AMAIAAAEAIAEAAAAJACABAAAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIAMAAAAHACABAAAIADACAAAJACADAAAABwAgAQAACAAwAgAACQAgCQMAAP4EACD8AQEAAAABngJAAAAAAZ8CQAAAAAHXAkAAAAAB2QIBAAAAAeMCAQAAAAHkAgEAAAAB5QIBAAAAAQEMAAApACAI_AEBAAAAAZ4CQAAAAAGfAkAAAAAB1wJAAAAAAdkCAQAAAAHjAgEAAAAB5AIBAAAAAeUCAQAAAAEBDAAAKwAwAQwAACsAMAkDAAD9BAAg_AEBANYDACGeAkAA-gMAIZ8CQAD6AwAh1wJAAPoDACHZAgEA1gMAIeMCAQDWAwAh5AIBANkDACHlAgEA2QMAIQIAAAAJACAMAAAuACAI_AEBANYDACGeAkAA-gMAIZ8CQAD6AwAh1wJAAPoDACHZAgEA1gMAIeMCAQDWAwAh5AIBANkDACHlAgEA2QMAIQIAAAAHACAMAAAwACACAAAABwAgDAAAMAAgAwAAAAkAIBMAACkAIBQAAC4AIAEAAAAJACABAAAABwAgBQYAAPoEACAZAAD8BAAgGgAA-wQAIOQCAADQAwAg5QIAANADACAL-QEAAMMDADD6AQAANwAQ-wEAAMMDADD8AQEA9AIAIZ4CQACLAwAhnwJAAIsDACHXAkAAiwMAIdkCAQD0AgAh4wIBAPQCACHkAgEA9wIAIeUCAQD3AgAhAwAAAAcAIAEAADYAMBgAADcAIAMAAAAHACABAAAIADACAAAJACABAAAABQAgAQAAAAUAIAMAAAADACABAAAEADACAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIA4DAAD5BAAg_AEBAAAAAZ4CQAAAAAGfAkAAAAAB2QIBAAAAAdoCAQAAAAHbAgEAAAAB3AIBAAAAAd0CAQAAAAHeAkAAAAAB3wJAAAAAAeACAQAAAAHhAgEAAAAB4gIBAAAAAQEMAAA_ACAN_AEBAAAAAZ4CQAAAAAGfAkAAAAAB2QIBAAAAAdoCAQAAAAHbAgEAAAAB3AIBAAAAAd0CAQAAAAHeAkAAAAAB3wJAAAAAAeACAQAAAAHhAgEAAAAB4gIBAAAAAQEMAABBADABDAAAQQAwDgMAAPgEACD8AQEA1gMAIZ4CQAD6AwAhnwJAAPoDACHZAgEA1gMAIdoCAQDWAwAh2wIBANYDACHcAgEA2QMAId0CAQDZAwAh3gJAANcDACHfAkAA1wMAIeACAQDZAwAh4QIBANkDACHiAgEA2QMAIQIAAAAFACAMAABEACAN_AEBANYDACGeAkAA-gMAIZ8CQAD6AwAh2QIBANYDACHaAgEA1gMAIdsCAQDWAwAh3AIBANkDACHdAgEA2QMAId4CQADXAwAh3wJAANcDACHgAgEA2QMAIeECAQDZAwAh4gIBANkDACECAAAAAwAgDAAARgAgAgAAAAMAIAwAAEYAIAMAAAAFACATAAA_ACAUAABEACABAAAABQAgAQAAAAMAIAoGAAD1BAAgGQAA9wQAIBoAAPYEACDcAgAA0AMAIN0CAADQAwAg3gIAANADACDfAgAA0AMAIOACAADQAwAg4QIAANADACDiAgAA0AMAIBD5AQAAwgMAMPoBAABNABD7AQAAwgMAMPwBAQD0AgAhngJAAIsDACGfAkAAiwMAIdkCAQD0AgAh2gIBAPQCACHbAgEA9AIAIdwCAQD3AgAh3QIBAPcCACHeAkAA9QIAId8CQAD1AgAh4AIBAPcCACHhAgEA9wIAIeICAQD3AgAhAwAAAAMAIAEAAEwAMBgAAE0AIAMAAAADACABAAAEADACAAAFACAK-QEAAMADADD6AQAAUwAQ-wEAAMADADD8AQEAAAABngJAAJkDACGfAkAAmQMAIdUCAQCEAwAh1gIBAIQDACHXAkAAmQMAIdgCAADBAwAgAQAAAFAAIAEAAABQACAJ-QEAAMADADD6AQAAUwAQ-wEAAMADADD8AQEAhAMAIZ4CQACZAwAhnwJAAJkDACHVAgEAhAMAIdYCAQCEAwAh1wJAAJkDACEAAwAAAFMAIAEAAFQAMAIAAFAAIAMAAABTACABAABUADACAABQACADAAAAUwAgAQAAVAAwAgAAUAAgBvwBAQAAAAGeAkAAAAABnwJAAAAAAdUCAQAAAAHWAgEAAAAB1wJAAAAAAQEMAABYACAG_AEBAAAAAZ4CQAAAAAGfAkAAAAAB1QIBAAAAAdYCAQAAAAHXAkAAAAABAQwAAFoAMAEMAABaADAG_AEBANYDACGeAkAA-gMAIZ8CQAD6AwAh1QIBANYDACHWAgEA1gMAIdcCQAD6AwAhAgAAAFAAIAwAAF0AIAb8AQEA1gMAIZ4CQAD6AwAhnwJAAPoDACHVAgEA1gMAIdYCAQDWAwAh1wJAAPoDACECAAAAUwAgDAAAXwAgAgAAAFMAIAwAAF8AIAMAAABQACATAABYACAUAABdACABAAAAUAAgAQAAAFMAIAMGAADyBAAgGQAA9AQAIBoAAPMEACAJ-QEAAL8DADD6AQAAZgAQ-wEAAL8DADD8AQEA9AIAIZ4CQACLAwAhnwJAAIsDACHVAgEA9AIAIdYCAQD0AgAh1wJAAIsDACEDAAAAUwAgAQAAZQAwGAAAZgAgAwAAAFMAIAEAAFQAMAIAAFAAIApNAAC4AwAg-QEAALoDADD6AQAAcwAQ-wEAALoDADCRAgEAAAABngJAAJkDACGfAkAAmQMAIdECAQAAAAHSAgEAhAMAIdMCAQCEAwAhAQAAAGkAIAhOAAC9AwAgTwAAvgMAIPkBAAC8AwAw-gEAAGsAEPsBAAC8AwAw_AECAJcDACHPAgEAhAMAIdACAQCEAwAhAk4AAPAEACBPAADxBAAgCU4AAL0DACBPAAC-AwAg-QEAALwDADD6AQAAawAQ-wEAALwDADD8AQIAAAABzwIBAIQDACHQAgEAhAMAIdQCAAC7AwAgAwAAAGsAIAEAAGwAMAIAAG0AIAMAAABrACABAABsADACAABtACABAAAAawAgAQAAAGsAIAEAAABpACAKTQAAuAMAIPkBAAC6AwAw-gEAAHMAEPsBAAC6AwAwkQIBAIQDACGeAkAAmQMAIZ8CQACZAwAh0QIBAIUDACHSAgEAhAMAIdMCAQCEAwAhAk0AAOEEACDRAgAA0AMAIAMAAABzACABAAB0ADACAABpACADAAAAcwAgAQAAdAAwAgAAaQAgAwAAAHMAIAEAAHQAMAIAAGkAIAdNAADvBAAgkQIBAAAAAZ4CQAAAAAGfAkAAAAAB0QIBAAAAAdICAQAAAAHTAgEAAAABAQwAAHgAIAaRAgEAAAABngJAAAAAAZ8CQAAAAAHRAgEAAAAB0gIBAAAAAdMCAQAAAAEBDAAAegAwAQwAAHoAMAdNAADlBAAgkQIBANYDACGeAkAA-gMAIZ8CQAD6AwAh0QIBANkDACHSAgEA1gMAIdMCAQDWAwAhAgAAAGkAIAwAAH0AIAaRAgEA1gMAIZ4CQAD6AwAhnwJAAPoDACHRAgEA2QMAIdICAQDWAwAh0wIBANYDACECAAAAcwAgDAAAfwAgAgAAAHMAIAwAAH8AIAMAAABpACATAAB4ACAUAAB9ACABAAAAaQAgAQAAAHMAIAQGAADiBAAgGQAA5AQAIBoAAOMEACDRAgAA0AMAIAn5AQAAuQMAMPoBAACGAQAQ-wEAALkDADCRAgEA9AIAIZ4CQACLAwAhnwJAAIsDACHRAgEA9wIAIdICAQD0AgAh0wIBAPQCACEDAAAAcwAgAQAAhQEAMBgAAIYBACADAAAAcwAgAQAAdAAwAgAAaQAgCU0AALgDACD5AQAAtwMAMPoBAACMAQAQ-wEAALcDADCRAgEAAAABngJAAJkDACGfAkAAmQMAIaECAQCFAwAh0QIBAIUDACEBAAAAiQEAIAEAAACJAQAgCU0AALgDACD5AQAAtwMAMPoBAACMAQAQ-wEAALcDADCRAgEAhAMAIZ4CQACZAwAhnwJAAJkDACGhAgEAhQMAIdECAQCFAwAhA00AAOEEACChAgAA0AMAINECAADQAwAgAwAAAIwBACABAACNAQAwAgAAiQEAIAMAAACMAQAgAQAAjQEAMAIAAIkBACADAAAAjAEAIAEAAI0BADACAACJAQAgBk0AAOAEACCRAgEAAAABngJAAAAAAZ8CQAAAAAGhAgEAAAAB0QIBAAAAAQEMAACRAQAgBZECAQAAAAGeAkAAAAABnwJAAAAAAaECAQAAAAHRAgEAAAABAQwAAJMBADABDAAAkwEAMAZNAADTBAAgkQIBANYDACGeAkAA-gMAIZ8CQAD6AwAhoQIBANkDACHRAgEA2QMAIQIAAACJAQAgDAAAlgEAIAWRAgEA1gMAIZ4CQAD6AwAhnwJAAPoDACGhAgEA2QMAIdECAQDZAwAhAgAAAIwBACAMAACYAQAgAgAAAIwBACAMAACYAQAgAwAAAIkBACATAACRAQAgFAAAlgEAIAEAAACJAQAgAQAAAIwBACAFBgAA0AQAIBkAANIEACAaAADRBAAgoQIAANADACDRAgAA0AMAIAj5AQAAtgMAMPoBAACfAQAQ-wEAALYDADCRAgEA9AIAIZ4CQACLAwAhnwJAAIsDACGhAgEA9wIAIdECAQD3AgAhAwAAAIwBACABAACeAQAwGAAAnwEAIAMAAACMAQAgAQAAjQEAMAIAAIkBACABAAAAbQAgAQAAAG0AIAMAAABrACABAABsADACAABtACADAAAAawAgAQAAbAAwAgAAbQAgAwAAAGsAIAEAAGwAMAIAAG0AIAVOAADOBAAgTwAAzwQAIPwBAgAAAAHPAgEAAAAB0AIBAAAAAQEMAACnAQAgA_wBAgAAAAHPAgEAAAAB0AIBAAAAAQEMAACpAQAwAQwAAKkBADAFTgAAzAQAIE8AAM0EACD8AQIA2gMAIc8CAQDWAwAh0AIBANYDACECAAAAbQAgDAAArAEAIAP8AQIA2gMAIc8CAQDWAwAh0AIBANYDACECAAAAawAgDAAArgEAIAIAAABrACAMAACuAQAgAwAAAG0AIBMAAKcBACAUAACsAQAgAQAAAG0AIAEAAABrACAFBgAAxwQAIBkAAMoEACAaAADJBAAgfgAAyAQAIH8AAMsEACAG-QEAALUDADD6AQAAtQEAEPsBAAC1AwAw_AECAPMCACHPAgEA9AIAIdACAQD0AgAhAwAAAGsAIAEAALQBADAYAAC1AQAgAwAAAGsAIAEAAGwAMAIAAG0AIAv5AQAAsgMAMPoBAAC7AQAQ-wEAALIDADCRAgEAAAABngJAAJkDACGfAkAAmQMAIaECAQCEAwAhrgIAALMDzAIizAIAAKQDACDNAgAA9gIAIM4CAAC0AwAgAQAAALgBACABAAAAuAEAIAr5AQAAsgMAMPoBAAC7AQAQ-wEAALIDADCRAgEAhAMAIZ4CQACZAwAhnwJAAJkDACGhAgEAhAMAIa4CAACzA8wCIswCAACkAwAgzQIAAPYCACABzAIAANADACADAAAAuwEAIAEAALwBADACAAC4AQAgAwAAALsBACABAAC8AQAwAgAAuAEAIAMAAAC7AQAgAQAAvAEAMAIAALgBACAHkQIBAAAAAZ4CQAAAAAGfAkAAAAABoQIBAAAAAa4CAAAAzAICzAKAAAAAAc0CAADGBAAgAQwAAMABACAHkQIBAAAAAZ4CQAAAAAGfAkAAAAABoQIBAAAAAa4CAAAAzAICzAKAAAAAAc0CAADGBAAgAQwAAMIBADABDAAAwgEAMAeRAgEA1gMAIZ4CQAD6AwAhnwJAAPoDACGhAgEA1gMAIa4CAADEBMwCIswCgAAAAAHNAgAAxQQAIAIAAAC4AQAgDAAAxQEAIAeRAgEA1gMAIZ4CQAD6AwAhnwJAAPoDACGhAgEA1gMAIa4CAADEBMwCIswCgAAAAAHNAgAAxQQAIAIAAAC7AQAgDAAAxwEAIAIAAAC7AQAgDAAAxwEAIAMAAAC4AQAgEwAAwAEAIBQAAMUBACABAAAAuAEAIAEAAAC7AQAgBAYAAMEEACAZAADDBAAgGgAAwgQAIMwCAADQAwAgCvkBAACuAwAw-gEAAM4BABD7AQAArgMAMJECAQD0AgAhngJAAIsDACGfAkAAiwMAIaECAQD0AgAhrgIAAK8DzAIizAIAAKEDACDNAgAA9gIAIAMAAAC7AQAgAQAAzQEAMBgAAM4BACADAAAAuwEAIAEAALwBADACAAC4AQAgKZUBAACGAwAglgEAAKYDACCXAQAApwMAIJgBAACoAwAg-QEAAKMDADD6AQAA3QEAEPsBAACjAwAw_AEBAAAAAZECAQAAAAGeAkAAmQMAIZ8CQACZAwAhoQIBAIQDACGiAgEAhAMAIa4CAQCEAwAhrwIBAIUDACGwAgAA9gIAILECAACkAwAgsgIAAPYCACCzAgAApAMAILQCAQCFAwAhtQIAAPYCACC2AgEAhQMAIbcCAACkAwAguAIBAIUDACG5AgAA9gIAILoCAACkAwAguwIBAIUDACG8AgEAhQMAIb0CAAD2AgAgvgIAAKQDACC_AgAApAMAIMACAQCFAwAhwQIBAIUDACHCAgAA9gIAIMMCAQCFAwAhxAIAAPYCACDFAgEAhQMAIcYCAACkAwAgxwJAAKUDACHIAkAApQMAIckCQAClAwAhAQAAANEBACAMkwEAAK0DACCUAQAAqgMAIPkBAACsAwAw-gEAANMBABD7AQAArAMAMPwBAgCXAwAh_QEBAIQDACH-AQEAhAMAIf8BAQCEAwAhgAJAAKUDACGBAgAA9gIAIIICAQCFAwAhBJMBAADABAAglAEAAL4EACCAAgAA0AMAIIICAADQAwAgDZMBAACtAwAglAEAAKoDACD5AQAArAMAMPoBAADTAQAQ-wEAAKwDADD8AQIAAAAB_QEBAIQDACH-AQEAhAMAIf8BAQCEAwAhgAJAAKUDACGBAgAA9gIAIIICAQCFAwAhygIAAKsDACADAAAA0wEAIAEAANQBADACAADVAQAgAwAAANMBACABAADUAQAwAgAA1QEAIAEAAADTAQAgDJQBAACqAwAg-QEAAKkDADD6AQAA2QEAEPsBAACpAwAw_AEBAIQDACH-AQEAhAMAIZ4CQACZAwAhnwJAAJkDACGqAgEAhAMAIasCAQCEAwAhrAIBAIQDACGtAkAApQMAIQKUAQAAvgQAIK0CAADQAwAgDJQBAACqAwAg-QEAAKkDADD6AQAA2QEAEPsBAACpAwAw_AEBAAAAAf4BAQCEAwAhngJAAJkDACGfAkAAmQMAIaoCAQCEAwAhqwIBAIQDACGsAgEAhAMAIa0CQAClAwAhAwAAANkBACABAADaAQAwAgAA2wEAICmVAQAAhgMAIJYBAACmAwAglwEAAKcDACCYAQAAqAMAIPkBAACjAwAw-gEAAN0BABD7AQAAowMAMPwBAQCEAwAhkQIBAIQDACGeAkAAmQMAIZ8CQACZAwAhoQIBAIQDACGiAgEAhAMAIa4CAQCEAwAhrwIBAIUDACGwAgAA9gIAILECAACkAwAgsgIAAPYCACCzAgAApAMAILQCAQCFAwAhtQIAAPYCACC2AgEAhQMAIbcCAACkAwAguAIBAIUDACG5AgAA9gIAILoCAACkAwAguwIBAIUDACG8AgEAhQMAIb0CAAD2AgAgvgIAAKQDACC_AgAApAMAIMACAQCFAwAhwQIBAIUDACHCAgAA9gIAIMMCAQCFAwAhxAIAAPYCACDFAgEAhQMAIcYCAACkAwAgxwJAAKUDACHIAkAApQMAIckCQAClAwAhAQAAAN0BACAYlQEAAPEDACCWAQAAvQQAIJcBAAC-BAAgmAEAAL8EACCvAgAA0AMAILECAADQAwAgswIAANADACC0AgAA0AMAILYCAADQAwAgtwIAANADACC4AgAA0AMAILoCAADQAwAguwIAANADACC8AgAA0AMAIL4CAADQAwAgvwIAANADACDAAgAA0AMAIMECAADQAwAgwwIAANADACDFAgAA0AMAIMYCAADQAwAgxwIAANADACDIAgAA0AMAIMkCAADQAwAgAwAAAN0BACABAADfAQAwAgAA0QEAIAEAAADTAQAgAQAAANkBACABAAAA3QEAIAEAAADRAQAgAwAAAN0BACABAADfAQAwAgAA0QEAIAMAAADdAQAgAQAA3wEAMAIAANEBACADAAAA3QEAIAEAAN8BADACAADRAQAgJpUBAACkBAAglgEAAKUEACCXAQAAvAQAIJgBAACmBAAg_AEBAAAAAZECAQAAAAGeAkAAAAABnwJAAAAAAaECAQAAAAGiAgEAAAABrgIBAAAAAa8CAQAAAAGwAgAAnQQAILECgAAAAAGyAgAAngQAILMCgAAAAAG0AgEAAAABtQIAAJ8EACC2AgEAAAABtwKAAAAAAbgCAQAAAAG5AgAAoAQAILoCgAAAAAG7AgEAAAABvAIBAAAAAb0CAAChBAAgvgKAAAAAAb8CgAAAAAHAAgEAAAABwQIBAAAAAcICAACiBAAgwwIBAAAAAcQCAACjBAAgxQIBAAAAAcYCgAAAAAHHAkAAAAAByAJAAAAAAckCQAAAAAEBDAAA6AEAICL8AQEAAAABkQIBAAAAAZ4CQAAAAAGfAkAAAAABoQIBAAAAAaICAQAAAAGuAgEAAAABrwIBAAAAAbACAACdBAAgsQKAAAAAAbICAACeBAAgswKAAAAAAbQCAQAAAAG1AgAAnwQAILYCAQAAAAG3AoAAAAABuAIBAAAAAbkCAACgBAAgugKAAAAAAbsCAQAAAAG8AgEAAAABvQIAAKEEACC-AoAAAAABvwKAAAAAAcACAQAAAAHBAgEAAAABwgIAAKIEACDDAgEAAAABxAIAAKMEACDFAgEAAAABxgKAAAAAAccCQAAAAAHIAkAAAAAByQJAAAAAAQEMAADqAQAwAQwAAOoBADABAAAA3QEAICaVAQAAjQQAIJYBAACOBAAglwEAAI8EACCYAQAAkAQAIPwBAQDWAwAhkQIBANYDACGeAkAA-gMAIZ8CQAD6AwAhoQIBANYDACGiAgEA1gMAIa4CAQDWAwAhrwIBANkDACGwAgAAhgQAILECgAAAAAGyAgAAhwQAILMCgAAAAAG0AgEA2QMAIbUCAACIBAAgtgIBANkDACG3AoAAAAABuAIBANkDACG5AgAAiQQAILoCgAAAAAG7AgEA2QMAIbwCAQDZAwAhvQIAAIoEACC-AoAAAAABvwKAAAAAAcACAQDZAwAhwQIBANkDACHCAgAAiwQAIMMCAQDZAwAhxAIAAIwEACDFAgEA2QMAIcYCgAAAAAHHAkAA1wMAIcgCQADXAwAhyQJAANcDACECAAAA0QEAIAwAAO4BACAi_AEBANYDACGRAgEA1gMAIZ4CQAD6AwAhnwJAAPoDACGhAgEA1gMAIaICAQDWAwAhrgIBANYDACGvAgEA2QMAIbACAACGBAAgsQKAAAAAAbICAACHBAAgswKAAAAAAbQCAQDZAwAhtQIAAIgEACC2AgEA2QMAIbcCgAAAAAG4AgEA2QMAIbkCAACJBAAgugKAAAAAAbsCAQDZAwAhvAIBANkDACG9AgAAigQAIL4CgAAAAAG_AoAAAAABwAIBANkDACHBAgEA2QMAIcICAACLBAAgwwIBANkDACHEAgAAjAQAIMUCAQDZAwAhxgKAAAAAAccCQADXAwAhyAJAANcDACHJAkAA1wMAIQIAAADdAQAgDAAA8AEAIAIAAADdAQAgDAAA8AEAIAEAAADdAQAgAwAAANEBACATAADoAQAgFAAA7gEAIAEAAADRAQAgAQAAAN0BACAXBgAAgwQAIBkAAIUEACAaAACEBAAgrwIAANADACCxAgAA0AMAILMCAADQAwAgtAIAANADACC2AgAA0AMAILcCAADQAwAguAIAANADACC6AgAA0AMAILsCAADQAwAgvAIAANADACC-AgAA0AMAIL8CAADQAwAgwAIAANADACDBAgAA0AMAIMMCAADQAwAgxQIAANADACDGAgAA0AMAIMcCAADQAwAgyAIAANADACDJAgAA0AMAICX5AQAAoAMAMPoBAAD4AQAQ-wEAAKADADD8AQEA9AIAIZECAQD0AgAhngJAAIsDACGfAkAAiwMAIaECAQD0AgAhogIBAPQCACGuAgEA9AIAIa8CAQD3AgAhsAIAAPYCACCxAgAAoQMAILICAAD2AgAgswIAAKEDACC0AgEA9wIAIbUCAAD2AgAgtgIBAPcCACG3AgAAoQMAILgCAQD3AgAhuQIAAPYCACC6AgAAoQMAILsCAQD3AgAhvAIBAPcCACG9AgAA9gIAIL4CAAChAwAgvwIAAKEDACDAAgEA9wIAIcECAQD3AgAhwgIAAPYCACDDAgEA9wIAIcQCAAD2AgAgxQIBAPcCACHGAgAAoQMAIMcCQAD1AgAhyAJAAPUCACHJAkAA9QIAIQMAAADdAQAgAQAA9wEAMBgAAPgBACADAAAA3QEAIAEAAN8BADACAADRAQAgAQAAANsBACABAAAA2wEAIAMAAADZAQAgAQAA2gEAMAIAANsBACADAAAA2QEAIAEAANoBADACAADbAQAgAwAAANkBACABAADaAQAwAgAA2wEAIAmUAQAAggQAIPwBAQAAAAH-AQEAAAABngJAAAAAAZ8CQAAAAAGqAgEAAAABqwIBAAAAAawCAQAAAAGtAkAAAAABAQwAAIACACAI_AEBAAAAAf4BAQAAAAGeAkAAAAABnwJAAAAAAaoCAQAAAAGrAgEAAAABrAIBAAAAAa0CQAAAAAEBDAAAggIAMAEMAACCAgAwCZQBAACBBAAg_AEBANYDACH-AQEA1gMAIZ4CQAD6AwAhnwJAAPoDACGqAgEA1gMAIasCAQDWAwAhrAIBANYDACGtAkAA1wMAIQIAAADbAQAgDAAAhQIAIAj8AQEA1gMAIf4BAQDWAwAhngJAAPoDACGfAkAA-gMAIaoCAQDWAwAhqwIBANYDACGsAgEA1gMAIa0CQADXAwAhAgAAANkBACAMAACHAgAgAgAAANkBACAMAACHAgAgAwAAANsBACATAACAAgAgFAAAhQIAIAEAAADbAQAgAQAAANkBACAEBgAA_gMAIBkAAIAEACAaAAD_AwAgrQIAANADACAL-QEAAJ8DADD6AQAAjgIAEPsBAACfAwAw_AEBAPQCACH-AQEA9AIAIZ4CQACLAwAhnwJAAIsDACGqAgEA9AIAIasCAQD0AgAhrAIBAPQCACGtAkAA9QIAIQMAAADZAQAgAQAAjQIAMBgAAI4CACADAAAA2QEAIAEAANoBADACAADbAQAgCvkBAACdAwAw-gEAAJQCABD7AQAAnQMAMPwBAQAAAAGeAkAAmQMAIZ8CQACZAwAhoAIBAAAAAaECAQCEAwAhogIBAIQDACGjAgAAngMAIAEAAACRAgAgAQAAAJECACAK-QEAAJ0DADD6AQAAlAIAEPsBAACdAwAw_AEBAIQDACGeAkAAmQMAIZ8CQACZAwAhoAIBAIQDACGhAgEAhAMAIaICAQCEAwAhowIAAJ4DACAAAwAAAJQCACABAACVAgAwAgAAkQIAIAMAAACUAgAgAQAAlQIAMAIAAJECACADAAAAlAIAIAEAAJUCADACAACRAgAgB_wBAQAAAAGeAkAAAAABnwJAAAAAAaACAQAAAAGhAgEAAAABogIBAAAAAaMCgAAAAAEBDAAAmQIAIAf8AQEAAAABngJAAAAAAZ8CQAAAAAGgAgEAAAABoQIBAAAAAaICAQAAAAGjAoAAAAABAQwAAJsCADABDAAAmwIAMAf8AQEA1gMAIZ4CQAD6AwAhnwJAAPoDACGgAgEA1gMAIaECAQDWAwAhogIBANYDACGjAoAAAAABAgAAAJECACAMAACeAgAgB_wBAQDWAwAhngJAAPoDACGfAkAA-gMAIaACAQDWAwAhoQIBANYDACGiAgEA1gMAIaMCgAAAAAECAAAAlAIAIAwAAKACACACAAAAlAIAIAwAAKACACADAAAAkQIAIBMAAJkCACAUAACeAgAgAQAAAJECACABAAAAlAIAIAMGAAD7AwAgGQAA_QMAIBoAAPwDACAK-QEAAJoDADD6AQAApwIAEPsBAACaAwAw_AEBAPQCACGeAkAAiwMAIZ8CQACLAwAhoAIBAPQCACGhAgEA9AIAIaICAQD0AgAhowIAAJsDACADAAAAlAIAIAEAAKYCADAYAACnAgAgAwAAAJQCACABAACVAgAwAgAAkQIAIA75AQAAlAMAMPoBAACtAgAQ-wEAAJQDADD8AQEAAAABlQIBAAAAAZcCAACVA5cCIpgCAAGWAwAhmQIBAIQDACGaAgEAhAMAIZsCAgCXAwAhnAICAJgDACGdAgIAmAMAIZ4CQACZAwAhnwJAAJkDACEBAAAAqgIAIAEAAACqAgAgDvkBAACUAwAw-gEAAK0CABD7AQAAlAMAMPwBAQCEAwAhlQIBAIQDACGXAgAAlQOXAiKYAgABlgMAIZkCAQCEAwAhmgIBAIQDACGbAgIAlwMAIZwCAgCYAwAhnQICAJgDACGeAkAAmQMAIZ8CQACZAwAhApwCAADQAwAgnQIAANADACADAAAArQIAIAEAAK4CADACAACqAgAgAwAAAK0CACABAACuAgAwAgAAqgIAIAMAAACtAgAgAQAArgIAMAIAAKoCACAL_AEBAAAAAZUCAQAAAAGXAgAAAJcCApgCAAEAAAGZAgEAAAABmgIBAAAAAZsCAgAAAAGcAgIAAAABnQICAAAAAZ4CQAAAAAGfAkAAAAABAQwAALICACAL_AEBAAAAAZUCAQAAAAGXAgAAAJcCApgCAAEAAAGZAgEAAAABmgIBAAAAAZsCAgAAAAGcAgIAAAABnQICAAAAAZ4CQAAAAAGfAkAAAAABAQwAALQCADABDAAAtAIAMAv8AQEA1gMAIZUCAQDWAwAhlwIAAPcDlwIimAIAAfgDACGZAgEA1gMAIZoCAQDWAwAhmwICANoDACGcAgIA-QMAIZ0CAgD5AwAhngJAAPoDACGfAkAA-gMAIQIAAACqAgAgDAAAtwIAIAv8AQEA1gMAIZUCAQDWAwAhlwIAAPcDlwIimAIAAfgDACGZAgEA1gMAIZoCAQDWAwAhmwICANoDACGcAgIA-QMAIZ0CAgD5AwAhngJAAPoDACGfAkAA-gMAIQIAAACtAgAgDAAAuQIAIAIAAACtAgAgDAAAuQIAIAMAAACqAgAgEwAAsgIAIBQAALcCACABAAAAqgIAIAEAAACtAgAgBwYAAPIDACAZAAD1AwAgGgAA9AMAIH4AAPMDACB_AAD2AwAgnAIAANADACCdAgAA0AMAIA75AQAAhwMAMPoBAADAAgAQ-wEAAIcDADD8AQEA9AIAIZUCAQD0AgAhlwIAAIgDlwIimAIAAYkDACGZAgEA9AIAIZoCAQD0AgAhmwICAPMCACGcAgIAigMAIZ0CAgCKAwAhngJAAIsDACGfAkAAiwMAIQMAAACtAgAgAQAAvwIAMBgAAMACACADAAAArQIAIAEAAK4CADACAACqAgAgBpIBAACGAwAg-QEAAIMDADD6AQAAxgIAEPsBAACDAwAwggIBAIUDACGRAgEAAAABAQAAAMMCACABAAAAwwIAIAaSAQAAhgMAIPkBAACDAwAw-gEAAMYCABD7AQAAgwMAMIICAQCFAwAhkQIBAIQDACECkgEAAPEDACCCAgAA0AMAIAMAAADGAgAgAQAAxwIAMAIAAMMCACADAAAAxgIAIAEAAMcCADACAADDAgAgAwAAAMYCACABAADHAgAwAgAAwwIAIAOSAQAA8AMAIIICAQAAAAGRAgEAAAABAQwAAMsCACACggIBAAAAAZECAQAAAAEBDAAAzQIAMAEMAADNAgAwA5IBAADjAwAgggIBANkDACGRAgEA1gMAIQIAAADDAgAgDAAA0AIAIAKCAgEA2QMAIZECAQDWAwAhAgAAAMYCACAMAADSAgAgAgAAAMYCACAMAADSAgAgAwAAAMMCACATAADLAgAgFAAA0AIAIAEAAADDAgAgAQAAAMYCACAEBgAA4AMAIBkAAOIDACAaAADhAwAgggIAANADACAF-QEAAIIDADD6AQAA2QIAEPsBAACCAwAwggIBAPcCACGRAgEA9AIAIQMAAADGAgAgAQAA2AIAMBgAANkCACADAAAAxgIAIAEAAMcCADACAADDAgAgAQAAANUBACABAAAA1QEAIAMAAADTAQAgAQAA1AEAMAIAANUBACADAAAA0wEAIAEAANQBADACAADVAQAgAwAAANMBACABAADUAQAwAgAA1QEAIAmTAQAA3gMAIJQBAADfAwAg_AECAAAAAf0BAQAAAAH-AQEAAAAB_wEBAAAAAYACQAAAAAGBAgAA3QMAIIICAQAAAAEBDAAA4QIAIAf8AQIAAAAB_QEBAAAAAf4BAQAAAAH_AQEAAAABgAJAAAAAAYECAADdAwAgggIBAAAAAQEMAADjAgAwAQwAAOMCADAJkwEAANsDACCUAQAA3AMAIPwBAgDaAwAh_QEBANYDACH-AQEA1gMAIf8BAQDWAwAhgAJAANcDACGBAgAA2AMAIIICAQDZAwAhAgAAANUBACAMAADmAgAgB_wBAgDaAwAh_QEBANYDACH-AQEA1gMAIf8BAQDWAwAhgAJAANcDACGBAgAA2AMAIIICAQDZAwAhAgAAANMBACAMAADoAgAgAgAAANMBACAMAADoAgAgAwAAANUBACATAADhAgAgFAAA5gIAIAEAAADVAQAgAQAAANMBACAHBgAA0QMAIBkAANQDACAaAADTAwAgfgAA0gMAIH8AANUDACCAAgAA0AMAIIICAADQAwAgCvkBAADyAgAw-gEAAO8CABD7AQAA8gIAMPwBAgDzAgAh_QEBAPQCACH-AQEA9AIAIf8BAQD0AgAhgAJAAPUCACGBAgAA9gIAIIICAQD3AgAhAwAAANMBACABAADuAgAwGAAA7wIAIAMAAADTAQAgAQAA1AEAMAIAANUBACAK-QEAAPICADD6AQAA7wIAEPsBAADyAgAw_AECAPMCACH9AQEA9AIAIf4BAQD0AgAh_wEBAPQCACGAAkAA9QIAIYECAAD2AgAgggIBAPcCACENBgAA_gIAIBkAAP4CACAaAAD-AgAgfgAAgQMAIH8AAP4CACCDAgIAAAABhAICAAAABIUCAgAAAASGAgIAAAABhwICAAAAAYgCAgAAAAGJAgIAAAABjQICAIADACEOBgAA_gIAIBkAAP8CACAaAAD_AgAggwIBAAAAAYQCAQAAAASFAgEAAAAEhgIBAAAAAYcCAQAAAAGIAgEAAAABiQIBAAAAAYoCAQAAAAGLAgEAAAABjAIBAAAAAY0CAQD9AgAhCwYAAPkCACAZAAD8AgAgGgAA_AIAIIMCQAAAAAGEAkAAAAAFhQJAAAAABYYCQAAAAAGHAkAAAAABiAJAAAAAAYkCQAAAAAGNAkAA-wIAIQSDAgEAAAAFjgIBAAAAAY8CAQAAAASQAgEAAAAEDgYAAPkCACAZAAD6AgAgGgAA-gIAIIMCAQAAAAGEAgEAAAAFhQIBAAAABYYCAQAAAAGHAgEAAAABiAIBAAAAAYkCAQAAAAGKAgEAAAABiwIBAAAAAYwCAQAAAAGNAgEA-AIAIQ4GAAD5AgAgGQAA-gIAIBoAAPoCACCDAgEAAAABhAIBAAAABYUCAQAAAAWGAgEAAAABhwIBAAAAAYgCAQAAAAGJAgEAAAABigIBAAAAAYsCAQAAAAGMAgEAAAABjQIBAPgCACEIgwICAAAAAYQCAgAAAAWFAgIAAAAFhgICAAAAAYcCAgAAAAGIAgIAAAABiQICAAAAAY0CAgD5AgAhC4MCAQAAAAGEAgEAAAAFhQIBAAAABYYCAQAAAAGHAgEAAAABiAIBAAAAAYkCAQAAAAGKAgEAAAABiwIBAAAAAYwCAQAAAAGNAgEA-gIAIQsGAAD5AgAgGQAA_AIAIBoAAPwCACCDAkAAAAABhAJAAAAABYUCQAAAAAWGAkAAAAABhwJAAAAAAYgCQAAAAAGJAkAAAAABjQJAAPsCACEIgwJAAAAAAYQCQAAAAAWFAkAAAAAFhgJAAAAAAYcCQAAAAAGIAkAAAAABiQJAAAAAAY0CQAD8AgAhDgYAAP4CACAZAAD_AgAgGgAA_wIAIIMCAQAAAAGEAgEAAAAEhQIBAAAABIYCAQAAAAGHAgEAAAABiAIBAAAAAYkCAQAAAAGKAgEAAAABiwIBAAAAAYwCAQAAAAGNAgEA_QIAIQiDAgIAAAABhAICAAAABIUCAgAAAASGAgIAAAABhwICAAAAAYgCAgAAAAGJAgIAAAABjQICAP4CACELgwIBAAAAAYQCAQAAAASFAgEAAAAEhgIBAAAAAYcCAQAAAAGIAgEAAAABiQIBAAAAAYoCAQAAAAGLAgEAAAABjAIBAAAAAY0CAQD_AgAhDQYAAP4CACAZAAD-AgAgGgAA_gIAIH4AAIEDACB_AAD-AgAggwICAAAAAYQCAgAAAASFAgIAAAAEhgICAAAAAYcCAgAAAAGIAgIAAAABiQICAAAAAY0CAgCAAwAhCIMCCAAAAAGEAggAAAAEhQIIAAAABIYCCAAAAAGHAggAAAABiAIIAAAAAYkCCAAAAAGNAggAgQMAIQX5AQAAggMAMPoBAADZAgAQ-wEAAIIDADCCAgEA9wIAIZECAQD0AgAhBpIBAACGAwAg-QEAAIMDADD6AQAAxgIAEPsBAACDAwAwggIBAIUDACGRAgEAhAMAIQuDAgEAAAABhAIBAAAABIUCAQAAAASGAgEAAAABhwIBAAAAAYgCAQAAAAGJAgEAAAABigIBAAAAAYsCAQAAAAGMAgEAAAABjQIBAP8CACELgwIBAAAAAYQCAQAAAAWFAgEAAAAFhgIBAAAAAYcCAQAAAAGIAgEAAAABiQIBAAAAAYoCAQAAAAGLAgEAAAABjAIBAAAAAY0CAQD6AgAhA5ICAADTAQAgkwIAANMBACCUAgAA0wEAIA75AQAAhwMAMPoBAADAAgAQ-wEAAIcDADD8AQEA9AIAIZUCAQD0AgAhlwIAAIgDlwIimAIAAYkDACGZAgEA9AIAIZoCAQD0AgAhmwICAPMCACGcAgIAigMAIZ0CAgCKAwAhngJAAIsDACGfAkAAiwMAIQcGAAD-AgAgGQAAkwMAIBoAAJMDACCDAgAAAJcCAoQCAAAAlwIIhQIAAACXAgiNAgAAkgOXAiIHBgAA_gIAIBkAAJEDACAaAACRAwAggwIAAQAAAYQCAAEAAASFAgABAAAEjQIAAZADACENBgAA-QIAIBkAAPkCACAaAAD5AgAgfgAAjwMAIH8AAPkCACCDAgIAAAABhAICAAAABYUCAgAAAAWGAgIAAAABhwICAAAAAYgCAgAAAAGJAgIAAAABjQICAI4DACELBgAA_gIAIBkAAI0DACAaAACNAwAggwJAAAAAAYQCQAAAAASFAkAAAAAEhgJAAAAAAYcCQAAAAAGIAkAAAAABiQJAAAAAAY0CQACMAwAhCwYAAP4CACAZAACNAwAgGgAAjQMAIIMCQAAAAAGEAkAAAAAEhQJAAAAABIYCQAAAAAGHAkAAAAABiAJAAAAAAYkCQAAAAAGNAkAAjAMAIQiDAkAAAAABhAJAAAAABIUCQAAAAASGAkAAAAABhwJAAAAAAYgCQAAAAAGJAkAAAAABjQJAAI0DACENBgAA-QIAIBkAAPkCACAaAAD5AgAgfgAAjwMAIH8AAPkCACCDAgIAAAABhAICAAAABYUCAgAAAAWGAgIAAAABhwICAAAAAYgCAgAAAAGJAgIAAAABjQICAI4DACEIgwIIAAAAAYQCCAAAAAWFAggAAAAFhgIIAAAAAYcCCAAAAAGIAggAAAABiQIIAAAAAY0CCACPAwAhBwYAAP4CACAZAACRAwAgGgAAkQMAIIMCAAEAAAGEAgABAAAEhQIAAQAABI0CAAGQAwAhBIMCAAEAAAGEAgABAAAEhQIAAQAABI0CAAGRAwAhBwYAAP4CACAZAACTAwAgGgAAkwMAIIMCAAAAlwIChAIAAACXAgiFAgAAAJcCCI0CAACSA5cCIgSDAgAAAJcCAoQCAAAAlwIIhQIAAACXAgiNAgAAkwOXAiIO-QEAAJQDADD6AQAArQIAEPsBAACUAwAw_AEBAIQDACGVAgEAhAMAIZcCAACVA5cCIpgCAAGWAwAhmQIBAIQDACGaAgEAhAMAIZsCAgCXAwAhnAICAJgDACGdAgIAmAMAIZ4CQACZAwAhnwJAAJkDACEEgwIAAACXAgKEAgAAAJcCCIUCAAAAlwIIjQIAAJMDlwIiBIMCAAEAAAGEAgABAAAEhQIAAQAABI0CAAGRAwAhCIMCAgAAAAGEAgIAAAAEhQICAAAABIYCAgAAAAGHAgIAAAABiAICAAAAAYkCAgAAAAGNAgIA_gIAIQiDAgIAAAABhAICAAAABYUCAgAAAAWGAgIAAAABhwICAAAAAYgCAgAAAAGJAgIAAAABjQICAPkCACEIgwJAAAAAAYQCQAAAAASFAkAAAAAEhgJAAAAAAYcCQAAAAAGIAkAAAAABiQJAAAAAAY0CQACNAwAhCvkBAACaAwAw-gEAAKcCABD7AQAAmgMAMPwBAQD0AgAhngJAAIsDACGfAkAAiwMAIaACAQD0AgAhoQIBAPQCACGiAgEA9AIAIaMCAACbAwAgDwYAAP4CACAZAACcAwAgGgAAnAMAIIMCgAAAAAGGAoAAAAABhwKAAAAAAYgCgAAAAAGJAoAAAAABjQKAAAAAAaQCAQAAAAGlAgEAAAABpgIBAAAAAacCgAAAAAGoAoAAAAABqQKAAAAAAQyDAoAAAAABhgKAAAAAAYcCgAAAAAGIAoAAAAABiQKAAAAAAY0CgAAAAAGkAgEAAAABpQIBAAAAAaYCAQAAAAGnAoAAAAABqAKAAAAAAakCgAAAAAEK-QEAAJ0DADD6AQAAlAIAEPsBAACdAwAw_AEBAIQDACGeAkAAmQMAIZ8CQACZAwAhoAIBAIQDACGhAgEAhAMAIaICAQCEAwAhowIAAJ4DACAMgwKAAAAAAYYCgAAAAAGHAoAAAAABiAKAAAAAAYkCgAAAAAGNAoAAAAABpAIBAAAAAaUCAQAAAAGmAgEAAAABpwKAAAAAAagCgAAAAAGpAoAAAAABC_kBAACfAwAw-gEAAI4CABD7AQAAnwMAMPwBAQD0AgAh_gEBAPQCACGeAkAAiwMAIZ8CQACLAwAhqgIBAPQCACGrAgEA9AIAIawCAQD0AgAhrQJAAPUCACEl-QEAAKADADD6AQAA-AEAEPsBAACgAwAw_AEBAPQCACGRAgEA9AIAIZ4CQACLAwAhnwJAAIsDACGhAgEA9AIAIaICAQD0AgAhrgIBAPQCACGvAgEA9wIAIbACAAD2AgAgsQIAAKEDACCyAgAA9gIAILMCAAChAwAgtAIBAPcCACG1AgAA9gIAILYCAQD3AgAhtwIAAKEDACC4AgEA9wIAIbkCAAD2AgAgugIAAKEDACC7AgEA9wIAIbwCAQD3AgAhvQIAAPYCACC-AgAAoQMAIL8CAAChAwAgwAIBAPcCACHBAgEA9wIAIcICAAD2AgAgwwIBAPcCACHEAgAA9gIAIMUCAQD3AgAhxgIAAKEDACDHAkAA9QIAIcgCQAD1AgAhyQJAAPUCACEPBgAA-QIAIBkAAKIDACAaAACiAwAggwKAAAAAAYYCgAAAAAGHAoAAAAABiAKAAAAAAYkCgAAAAAGNAoAAAAABpAIBAAAAAaUCAQAAAAGmAgEAAAABpwKAAAAAAagCgAAAAAGpAoAAAAABDIMCgAAAAAGGAoAAAAABhwKAAAAAAYgCgAAAAAGJAoAAAAABjQKAAAAAAaQCAQAAAAGlAgEAAAABpgIBAAAAAacCgAAAAAGoAoAAAAABqQKAAAAAASmVAQAAhgMAIJYBAACmAwAglwEAAKcDACCYAQAAqAMAIPkBAACjAwAw-gEAAN0BABD7AQAAowMAMPwBAQCEAwAhkQIBAIQDACGeAkAAmQMAIZ8CQACZAwAhoQIBAIQDACGiAgEAhAMAIa4CAQCEAwAhrwIBAIUDACGwAgAA9gIAILECAACkAwAgsgIAAPYCACCzAgAApAMAILQCAQCFAwAhtQIAAPYCACC2AgEAhQMAIbcCAACkAwAguAIBAIUDACG5AgAA9gIAILoCAACkAwAguwIBAIUDACG8AgEAhQMAIb0CAAD2AgAgvgIAAKQDACC_AgAApAMAIMACAQCFAwAhwQIBAIUDACHCAgAA9gIAIMMCAQCFAwAhxAIAAPYCACDFAgEAhQMAIcYCAACkAwAgxwJAAKUDACHIAkAApQMAIckCQAClAwAhDIMCgAAAAAGGAoAAAAABhwKAAAAAAYgCgAAAAAGJAoAAAAABjQKAAAAAAaQCAQAAAAGlAgEAAAABpgIBAAAAAacCgAAAAAGoAoAAAAABqQKAAAAAAQiDAkAAAAABhAJAAAAABYUCQAAAAAWGAkAAAAABhwJAAAAAAYgCQAAAAAGJAkAAAAABjQJAAPwCACEDkgIAANkBACCTAgAA2QEAIJQCAADZAQAgK5UBAACGAwAglgEAAKYDACCXAQAApwMAIJgBAACoAwAg-QEAAKMDADD6AQAA3QEAEPsBAACjAwAw_AEBAIQDACGRAgEAhAMAIZ4CQACZAwAhnwJAAJkDACGhAgEAhAMAIaICAQCEAwAhrgIBAIQDACGvAgEAhQMAIbACAAD2AgAgsQIAAKQDACCyAgAA9gIAILMCAACkAwAgtAIBAIUDACG1AgAA9gIAILYCAQCFAwAhtwIAAKQDACC4AgEAhQMAIbkCAAD2AgAgugIAAKQDACC7AgEAhQMAIbwCAQCFAwAhvQIAAPYCACC-AgAApAMAIL8CAACkAwAgwAIBAIUDACHBAgEAhQMAIcICAAD2AgAgwwIBAIUDACHEAgAA9gIAIMUCAQCFAwAhxgIAAKQDACDHAkAApQMAIcgCQAClAwAhyQJAAKUDACHqAgAA3QEAIOsCAADdAQAgA5ICAADdAQAgkwIAAN0BACCUAgAA3QEAIAyUAQAAqgMAIPkBAACpAwAw-gEAANkBABD7AQAAqQMAMPwBAQCEAwAh_gEBAIQDACGeAkAAmQMAIZ8CQACZAwAhqgIBAIQDACGrAgEAhAMAIawCAQCEAwAhrQJAAKUDACErlQEAAIYDACCWAQAApgMAIJcBAACnAwAgmAEAAKgDACD5AQAAowMAMPoBAADdAQAQ-wEAAKMDADD8AQEAhAMAIZECAQCEAwAhngJAAJkDACGfAkAAmQMAIaECAQCEAwAhogIBAIQDACGuAgEAhAMAIa8CAQCFAwAhsAIAAPYCACCxAgAApAMAILICAAD2AgAgswIAAKQDACC0AgEAhQMAIbUCAAD2AgAgtgIBAIUDACG3AgAApAMAILgCAQCFAwAhuQIAAPYCACC6AgAApAMAILsCAQCFAwAhvAIBAIUDACG9AgAA9gIAIL4CAACkAwAgvwIAAKQDACDAAgEAhQMAIcECAQCFAwAhwgIAAPYCACDDAgEAhQMAIcQCAAD2AgAgxQIBAIUDACHGAgAApAMAIMcCQAClAwAhyAJAAKUDACHJAkAApQMAIeoCAADdAQAg6wIAAN0BACAC_gEBAAAAAf8BAQAAAAEMkwEAAK0DACCUAQAAqgMAIPkBAACsAwAw-gEAANMBABD7AQAArAMAMPwBAgCXAwAh_QEBAIQDACH-AQEAhAMAIf8BAQCEAwAhgAJAAKUDACGBAgAA9gIAIIICAQCFAwAhCJIBAACGAwAg-QEAAIMDADD6AQAAxgIAEPsBAACDAwAwggIBAIUDACGRAgEAhAMAIeoCAADGAgAg6wIAAMYCACAK-QEAAK4DADD6AQAAzgEAEPsBAACuAwAwkQIBAPQCACGeAkAAiwMAIZ8CQACLAwAhoQIBAPQCACGuAgAArwPMAiLMAgAAoQMAIM0CAAD2AgAgBwYAAP4CACAZAACxAwAgGgAAsQMAIIMCAAAAzAIChAIAAADMAgiFAgAAAMwCCI0CAACwA8wCIgcGAAD-AgAgGQAAsQMAIBoAALEDACCDAgAAAMwCAoQCAAAAzAIIhQIAAADMAgiNAgAAsAPMAiIEgwIAAADMAgKEAgAAAMwCCIUCAAAAzAIIjQIAALEDzAIiCvkBAACyAwAw-gEAALsBABD7AQAAsgMAMJECAQCEAwAhngJAAJkDACGfAkAAmQMAIaECAQCEAwAhrgIAALMDzAIizAIAAKQDACDNAgAA9gIAIASDAgAAAMwCAoQCAAAAzAIIhQIAAADMAgiNAgAAsQPMAiICoQIBAAAAAa4CAAAAzAICBvkBAAC1AwAw-gEAALUBABD7AQAAtQMAMPwBAgDzAgAhzwIBAPQCACHQAgEA9AIAIQj5AQAAtgMAMPoBAACfAQAQ-wEAALYDADCRAgEA9AIAIZ4CQACLAwAhnwJAAIsDACGhAgEA9wIAIdECAQD3AgAhCU0AALgDACD5AQAAtwMAMPoBAACMAQAQ-wEAALcDADCRAgEAhAMAIZ4CQACZAwAhnwJAAJkDACGhAgEAhQMAIdECAQCFAwAhA5ICAABrACCTAgAAawAglAIAAGsAIAn5AQAAuQMAMPoBAACGAQAQ-wEAALkDADCRAgEA9AIAIZ4CQACLAwAhnwJAAIsDACHRAgEA9wIAIdICAQD0AgAh0wIBAPQCACEKTQAAuAMAIPkBAAC6AwAw-gEAAHMAEPsBAAC6AwAwkQIBAIQDACGeAkAAmQMAIZ8CQACZAwAh0QIBAIUDACHSAgEAhAMAIdMCAQCEAwAhAs8CAQAAAAHQAgEAAAABCE4AAL0DACBPAAC-AwAg-QEAALwDADD6AQAAawAQ-wEAALwDADD8AQIAlwMAIc8CAQCEAwAh0AIBAIQDACELTQAAuAMAIPkBAAC3AwAw-gEAAIwBABD7AQAAtwMAMJECAQCEAwAhngJAAJkDACGfAkAAmQMAIaECAQCFAwAh0QIBAIUDACHqAgAAjAEAIOsCAACMAQAgDE0AALgDACD5AQAAugMAMPoBAABzABD7AQAAugMAMJECAQCEAwAhngJAAJkDACGfAkAAmQMAIdECAQCFAwAh0gIBAIQDACHTAgEAhAMAIeoCAABzACDrAgAAcwAgCfkBAAC_AwAw-gEAAGYAEPsBAAC_AwAw_AEBAPQCACGeAkAAiwMAIZ8CQACLAwAh1QIBAPQCACHWAgEA9AIAIdcCQACLAwAhCfkBAADAAwAw-gEAAFMAEPsBAADAAwAw_AEBAIQDACGeAkAAmQMAIZ8CQACZAwAh1QIBAIQDACHWAgEAhAMAIdcCQACZAwAhAtUCAQAAAAHWAgEAAAABEPkBAADCAwAw-gEAAE0AEPsBAADCAwAw_AEBAPQCACGeAkAAiwMAIZ8CQACLAwAh2QIBAPQCACHaAgEA9AIAIdsCAQD0AgAh3AIBAPcCACHdAgEA9wIAId4CQAD1AgAh3wJAAPUCACHgAgEA9wIAIeECAQD3AgAh4gIBAPcCACEL-QEAAMMDADD6AQAANwAQ-wEAAMMDADD8AQEA9AIAIZ4CQACLAwAhnwJAAIsDACHXAkAAiwMAIdkCAQD0AgAh4wIBAPQCACHkAgEA9wIAIeUCAQD3AgAhC_kBAADEAwAw-gEAACEAEPsBAADEAwAw_AEBAPQCACGVAgEA9wIAIZ4CQACLAwAhnwJAAIsDACHRAgEA9wIAIeYCIADFAwAh5wIBAPcCACHoAgEA9AIAIQUGAAD-AgAgGQAAxwMAIBoAAMcDACCDAiAAAAABjQIgAMYDACEFBgAA_gIAIBkAAMcDACAaAADHAwAggwIgAAAAAY0CIADGAwAhAoMCIAAAAAGNAiAAxwMAIQ0EAADKAwAgBQAAywMAIPkBAADIAwAw-gEAAA4AEPsBAADIAwAw_AEBAIQDACGVAgEAhQMAIZ4CQACZAwAhnwJAAJkDACHRAgEAhQMAIeYCIADJAwAh5wIBAIUDACHoAgEAhAMAIQKDAiAAAAABjQIgAMcDACEDkgIAAAMAIJMCAAADACCUAgAAAwAgA5ICAAAHACCTAgAABwAglAIAAAcAIAwDAADNAwAg-QEAAMwDADD6AQAABwAQ-wEAAMwDADD8AQEAhAMAIZ4CQACZAwAhnwJAAJkDACHXAkAAmQMAIdkCAQCEAwAh4wIBAIQDACHkAgEAhQMAIeUCAQCFAwAhDwQAAMoDACAFAADLAwAg-QEAAMgDADD6AQAADgAQ-wEAAMgDADD8AQEAhAMAIZUCAQCFAwAhngJAAJkDACGfAkAAmQMAIdECAQCFAwAh5gIgAMkDACHnAgEAhQMAIegCAQCEAwAh6gIAAA4AIOsCAAAOACAC2gIBAAAAAdsCAQAAAAERAwAAzQMAIPkBAADPAwAw-gEAAAMAEPsBAADPAwAw_AEBAIQDACGeAkAAmQMAIZ8CQACZAwAh2QIBAIQDACHaAgEAhAMAIdsCAQCEAwAh3AIBAIUDACHdAgEAhQMAId4CQAClAwAh3wJAAKUDACHgAgEAhQMAIeECAQCFAwAh4gIBAIUDACEAAAAAAAAB7wIBAAAAAQHvAkAAAAABAu8CAQAAAAT1AgEAAAAFAe8CAQAAAAEF7wICAAAAAfYCAgAAAAH3AgIAAAAB-AICAAAAAfkCAgAAAAEFEwAAygUAIBQAANAFACDsAgAAywUAIO0CAADPBQAg8gIAAMMCACAFEwAAyAUAIBQAAM0FACDsAgAAyQUAIO0CAADMBQAg8gIAANEBACAB7wIBAAAABAMTAADKBQAg7AIAAMsFACDyAgAAwwIAIAMTAADIBQAg7AIAAMkFACDyAgAA0QEAIAAAAAsTAADkAwAwFAAA6QMAMOwCAADlAwAw7QIAAOYDADDuAgAA5wMAIO8CAADoAwAw8AIAAOgDADDxAgAA6AMAMPICAADoAwAw8wIAAOoDADD0AgAA6wMAMAeUAQAA3wMAIPwBAgAAAAH-AQEAAAAB_wEBAAAAAYACQAAAAAGBAgAA3QMAIIICAQAAAAECAAAA1QEAIBMAAO8DACADAAAA1QEAIBMAAO8DACAUAADuAwAgAQwAAMcFADANkwEAAK0DACCUAQAAqgMAIPkBAACsAwAw-gEAANMBABD7AQAArAMAMPwBAgAAAAH9AQEAhAMAIf4BAQCEAwAh_wEBAIQDACGAAkAApQMAIYECAAD2AgAgggIBAIUDACHKAgAAqwMAIAIAAADVAQAgDAAA7gMAIAIAAADsAwAgDAAA7QMAIAr5AQAA6wMAMPoBAADsAwAQ-wEAAOsDADD8AQIAlwMAIf0BAQCEAwAh_gEBAIQDACH_AQEAhAMAIYACQAClAwAhgQIAAPYCACCCAgEAhQMAIQr5AQAA6wMAMPoBAADsAwAQ-wEAAOsDADD8AQIAlwMAIf0BAQCEAwAh_gEBAIQDACH_AQEAhAMAIYACQAClAwAhgQIAAPYCACCCAgEAhQMAIQb8AQIA2gMAIf4BAQDWAwAh_wEBANYDACGAAkAA1wMAIYECAADYAwAgggIBANkDACEHlAEAANwDACD8AQIA2gMAIf4BAQDWAwAh_wEBANYDACGAAkAA1wMAIYECAADYAwAgggIBANkDACEHlAEAAN8DACD8AQIAAAAB_gEBAAAAAf8BAQAAAAGAAkAAAAABgQIAAN0DACCCAgEAAAABBBMAAOQDADDsAgAA5QMAMO4CAADnAwAg8gIAAOgDADAAAAAAAAAB7wIAAACXAgIB7wIAAQAAAQXvAgIAAAAB9gICAAAAAfcCAgAAAAH4AgIAAAAB-QICAAAAAQHvAkAAAAABAAAAAAAABRMAAMIFACAUAADFBQAg7AIAAMMFACDtAgAAxAUAIPICAADRAQAgAxMAAMIFACDsAgAAwwUAIPICAADRAQAgAAAAAu8CAQAAAAT1AgEAAAAFAu8CAQAAAAT1AgEAAAAFAu8CAQAAAAT1AgEAAAAFAu8CAQAAAAT1AgEAAAAFAu8CAQAAAAT1AgEAAAAFAu8CAQAAAAT1AgEAAAAFAu8CAQAAAAT1AgEAAAAFCxMAAKwEADAUAAC4BAAw7AIAAK0EADDtAgAAtwQAMO4CAACuBAAg7wIAAOgDADDwAgAA6AMAMPECAADoAwAw8gIAAOgDADDzAgAAuQQAMPQCAADrAwAwCxMAAKcEADAUAACxBAAw7AIAAKgEADDtAgAAsAQAMO4CAACpBAAg7wIAAKoEADDwAgAAqgQAMPECAACqBAAw8gIAAKoEADDzAgAAsgQAMPQCAACzBAAwBxMAALoFACAUAADABQAg7AIAALsFACDtAgAAvwUAIPACAADdAQAg8QIAAN0BACDyAgAA0QEAIAsTAACRBAAwFAAAlgQAMOwCAACSBAAw7QIAAJMEADDuAgAAlAQAIO8CAACVBAAw8AIAAJUEADDxAgAAlQQAMPICAACVBAAw8wIAAJcEADD0AgAAmAQAMCSVAQAApAQAIJYBAAClBAAgmAEAAKYEACD8AQEAAAABkQIBAAAAAZ4CQAAAAAGfAkAAAAABoQIBAAAAAaICAQAAAAGuAgEAAAABrwIBAAAAAbACAACdBAAgsQKAAAAAAbICAACeBAAgswKAAAAAAbQCAQAAAAG1AgAAnwQAILYCAQAAAAG3AoAAAAABuAIBAAAAAbkCAACgBAAgugKAAAAAAbsCAQAAAAG8AgEAAAABvQIAAKEEACC-AoAAAAABvwKAAAAAAcECAQAAAAHCAgAAogQAIMMCAQAAAAHEAgAAowQAIMUCAQAAAAHGAoAAAAABxwJAAAAAAcgCQAAAAAHJAkAAAAABAgAAANEBACATAACcBAAgAwAAANEBACATAACcBAAgFAAAmwQAIAEMAAC-BQAwKZUBAACGAwAglgEAAKYDACCXAQAApwMAIJgBAACoAwAg-QEAAKMDADD6AQAA3QEAEPsBAACjAwAw_AEBAAAAAZECAQAAAAGeAkAAmQMAIZ8CQACZAwAhoQIBAIQDACGiAgEAhAMAIa4CAQCEAwAhrwIBAIUDACGwAgAA9gIAILECAACkAwAgsgIAAPYCACCzAgAApAMAILQCAQCFAwAhtQIAAPYCACC2AgEAhQMAIbcCAACkAwAguAIBAIUDACG5AgAA9gIAILoCAACkAwAguwIBAIUDACG8AgEAhQMAIb0CAAD2AgAgvgIAAKQDACC_AgAApAMAIMACAQCFAwAhwQIBAIUDACHCAgAA9gIAIMMCAQCFAwAhxAIAAPYCACDFAgEAhQMAIcYCAACkAwAgxwJAAKUDACHIAkAApQMAIckCQAClAwAhAgAAANEBACAMAACbBAAgAgAAAJkEACAMAACaBAAgJfkBAACYBAAw-gEAAJkEABD7AQAAmAQAMPwBAQCEAwAhkQIBAIQDACGeAkAAmQMAIZ8CQACZAwAhoQIBAIQDACGiAgEAhAMAIa4CAQCEAwAhrwIBAIUDACGwAgAA9gIAILECAACkAwAgsgIAAPYCACCzAgAApAMAILQCAQCFAwAhtQIAAPYCACC2AgEAhQMAIbcCAACkAwAguAIBAIUDACG5AgAA9gIAILoCAACkAwAguwIBAIUDACG8AgEAhQMAIb0CAAD2AgAgvgIAAKQDACC_AgAApAMAIMACAQCFAwAhwQIBAIUDACHCAgAA9gIAIMMCAQCFAwAhxAIAAPYCACDFAgEAhQMAIcYCAACkAwAgxwJAAKUDACHIAkAApQMAIckCQAClAwAhJfkBAACYBAAw-gEAAJkEABD7AQAAmAQAMPwBAQCEAwAhkQIBAIQDACGeAkAAmQMAIZ8CQACZAwAhoQIBAIQDACGiAgEAhAMAIa4CAQCEAwAhrwIBAIUDACGwAgAA9gIAILECAACkAwAgsgIAAPYCACCzAgAApAMAILQCAQCFAwAhtQIAAPYCACC2AgEAhQMAIbcCAACkAwAguAIBAIUDACG5AgAA9gIAILoCAACkAwAguwIBAIUDACG8AgEAhQMAIb0CAAD2AgAgvgIAAKQDACC_AgAApAMAIMACAQCFAwAhwQIBAIUDACHCAgAA9gIAIMMCAQCFAwAhxAIAAPYCACDFAgEAhQMAIcYCAACkAwAgxwJAAKUDACHIAkAApQMAIckCQAClAwAhIfwBAQDWAwAhkQIBANYDACGeAkAA-gMAIZ8CQAD6AwAhoQIBANYDACGiAgEA1gMAIa4CAQDWAwAhrwIBANkDACGwAgAAhgQAILECgAAAAAGyAgAAhwQAILMCgAAAAAG0AgEA2QMAIbUCAACIBAAgtgIBANkDACG3AoAAAAABuAIBANkDACG5AgAAiQQAILoCgAAAAAG7AgEA2QMAIbwCAQDZAwAhvQIAAIoEACC-AoAAAAABvwKAAAAAAcECAQDZAwAhwgIAAIsEACDDAgEA2QMAIcQCAACMBAAgxQIBANkDACHGAoAAAAABxwJAANcDACHIAkAA1wMAIckCQADXAwAhJJUBAACNBAAglgEAAI4EACCYAQAAkAQAIPwBAQDWAwAhkQIBANYDACGeAkAA-gMAIZ8CQAD6AwAhoQIBANYDACGiAgEA1gMAIa4CAQDWAwAhrwIBANkDACGwAgAAhgQAILECgAAAAAGyAgAAhwQAILMCgAAAAAG0AgEA2QMAIbUCAACIBAAgtgIBANkDACG3AoAAAAABuAIBANkDACG5AgAAiQQAILoCgAAAAAG7AgEA2QMAIbwCAQDZAwAhvQIAAIoEACC-AoAAAAABvwKAAAAAAcECAQDZAwAhwgIAAIsEACDDAgEA2QMAIcQCAACMBAAgxQIBANkDACHGAoAAAAABxwJAANcDACHIAkAA1wMAIckCQADXAwAhJJUBAACkBAAglgEAAKUEACCYAQAApgQAIPwBAQAAAAGRAgEAAAABngJAAAAAAZ8CQAAAAAGhAgEAAAABogIBAAAAAa4CAQAAAAGvAgEAAAABsAIAAJ0EACCxAoAAAAABsgIAAJ4EACCzAoAAAAABtAIBAAAAAbUCAACfBAAgtgIBAAAAAbcCgAAAAAG4AgEAAAABuQIAAKAEACC6AoAAAAABuwIBAAAAAbwCAQAAAAG9AgAAoQQAIL4CgAAAAAG_AoAAAAABwQIBAAAAAcICAACiBAAgwwIBAAAAAcQCAACjBAAgxQIBAAAAAcYCgAAAAAHHAkAAAAAByAJAAAAAAckCQAAAAAEB7wIBAAAABAHvAgEAAAAEAe8CAQAAAAQB7wIBAAAABAHvAgEAAAAEAe8CAQAAAAQB7wIBAAAABAQTAACsBAAw7AIAAK0EADDuAgAArgQAIPICAADoAwAwBBMAAKcEADDsAgAAqAQAMO4CAACpBAAg8gIAAKoEADAEEwAAkQQAMOwCAACSBAAw7gIAAJQEACDyAgAAlQQAMAf8AQEAAAABngJAAAAAAZ8CQAAAAAGqAgEAAAABqwIBAAAAAawCAQAAAAGtAkAAAAABAgAAANsBACATAACrBAAgAQwAAL0FADAMlAEAAKoDACD5AQAAqQMAMPoBAADZAQAQ-wEAAKkDADD8AQEAAAAB_gEBAIQDACGeAkAAmQMAIZ8CQACZAwAhqgIBAIQDACGrAgEAhAMAIawCAQCEAwAhrQJAAKUDACEH_AEBAAAAAZ4CQAAAAAGfAkAAAAABqgIBAAAAAasCAQAAAAGsAgEAAAABrQJAAAAAAQeTAQAA3gMAIPwBAgAAAAH9AQEAAAAB_wEBAAAAAYACQAAAAAGBAgAA3QMAIIICAQAAAAECAAAA1QEAIBMAAK8EACABDAAAvAUAMAeTAQAA3gMAIPwBAgAAAAH9AQEAAAAB_wEBAAAAAYACQAAAAAGBAgAA3QMAIIICAQAAAAEDAAAA2wEAIBMAAKsEACAUAAC2BAAgAgAAANsBACAMAAC2BAAgAgAAALQEACAMAAC1BAAgC_kBAACzBAAw-gEAALQEABD7AQAAswQAMPwBAQCEAwAh_gEBAIQDACGeAkAAmQMAIZ8CQACZAwAhqgIBAIQDACGrAgEAhAMAIawCAQCEAwAhrQJAAKUDACEL-QEAALMEADD6AQAAtAQAEPsBAACzBAAw_AEBAIQDACH-AQEAhAMAIZ4CQACZAwAhnwJAAJkDACGqAgEAhAMAIasCAQCEAwAhrAIBAIQDACGtAkAApQMAIQf8AQEA1gMAIZ4CQAD6AwAhnwJAAPoDACGqAgEA1gMAIasCAQDWAwAhrAIBANYDACGtAkAA1wMAIQf8AQEA1gMAIZ4CQAD6AwAhnwJAAPoDACGqAgEA1gMAIasCAQDWAwAhrAIBANYDACGtAkAA1wMAIQMAAADVAQAgEwAArwQAIBQAALsEACACAAAA1QEAIAwAALsEACACAAAA7AMAIAwAALoEACAG_AECANoDACH9AQEA1gMAIf8BAQDWAwAhgAJAANcDACGBAgAA2AMAIIICAQDZAwAhB5MBAADbAwAg_AECANoDACH9AQEA1gMAIf8BAQDWAwAhgAJAANcDACGBAgAA2AMAIIICAQDZAwAhAxMAALoFACDsAgAAuwUAIPICAADRAQAgABiVAQAA8QMAIJYBAAC9BAAglwEAAL4EACCYAQAAvwQAIK8CAADQAwAgsQIAANADACCzAgAA0AMAILQCAADQAwAgtgIAANADACC3AgAA0AMAILgCAADQAwAgugIAANADACC7AgAA0AMAILwCAADQAwAgvgIAANADACC_AgAA0AMAIMACAADQAwAgwQIAANADACDDAgAA0AMAIMUCAADQAwAgxgIAANADACDHAgAA0AMAIMgCAADQAwAgyQIAANADACAAApIBAADxAwAgggIAANADACAAAAAB7wIAAADMAgIC7wIBAAAABPUCAQAAAAUB7wIBAAAABAAAAAAABRMAALIFACAUAAC4BQAg7AIAALMFACDtAgAAtwUAIPICAACJAQAgBRMAALAFACAUAAC1BQAg7AIAALEFACDtAgAAtAUAIPICAABpACADEwAAsgUAIOwCAACzBQAg8gIAAIkBACADEwAAsAUAIOwCAACxBQAg8gIAAGkAIAAAAAsTAADUBAAwFAAA2QQAMOwCAADVBAAw7QIAANYEADDuAgAA1wQAIO8CAADYBAAw8AIAANgEADDxAgAA2AQAMPICAADYBAAw8wIAANoEADD0AgAA2wQAMANPAADPBAAg_AECAAAAAdACAQAAAAECAAAAbQAgEwAA3wQAIAMAAABtACATAADfBAAgFAAA3gQAIAEMAACvBQAwCU4AAL0DACBPAAC-AwAg-QEAALwDADD6AQAAawAQ-wEAALwDADD8AQIAAAABzwIBAIQDACHQAgEAhAMAIdQCAAC7AwAgAgAAAG0AIAwAAN4EACACAAAA3AQAIAwAAN0EACAG-QEAANsEADD6AQAA3AQAEPsBAADbBAAw_AECAJcDACHPAgEAhAMAIdACAQCEAwAhBvkBAADbBAAw-gEAANwEABD7AQAA2wQAMPwBAgCXAwAhzwIBAIQDACHQAgEAhAMAIQL8AQIA2gMAIdACAQDWAwAhA08AAM0EACD8AQIA2gMAIdACAQDWAwAhA08AAM8EACD8AQIAAAAB0AIBAAAAAQQTAADUBAAw7AIAANUEADDuAgAA1wQAIPICAADYBAAwAAAAAAsTAADmBAAwFAAA6gQAMOwCAADnBAAw7QIAAOgEADDuAgAA6QQAIO8CAADYBAAw8AIAANgEADDxAgAA2AQAMPICAADYBAAw8wIAAOsEADD0AgAA2wQAMANOAADOBAAg_AECAAAAAc8CAQAAAAECAAAAbQAgEwAA7gQAIAMAAABtACATAADuBAAgFAAA7QQAIAEMAACuBQAwAgAAAG0AIAwAAO0EACACAAAA3AQAIAwAAOwEACAC_AECANoDACHPAgEA1gMAIQNOAADMBAAg_AECANoDACHPAgEA1gMAIQNOAADOBAAg_AECAAAAAc8CAQAAAAEEEwAA5gQAMOwCAADnBAAw7gIAAOkEACDyAgAA2AQAMANNAADhBAAgoQIAANADACDRAgAA0AMAIAJNAADhBAAg0QIAANADACAAAAAAAAAFEwAAqQUAIBQAAKwFACDsAgAAqgUAIO0CAACrBQAg8gIAAAEAIAMTAACpBQAg7AIAAKoFACDyAgAAAQAgAAAABRMAAKQFACAUAACnBQAg7AIAAKUFACDtAgAApgUAIPICAAABACADEwAApAUAIOwCAAClBQAg8gIAAAEAIAAAAAHvAiAAAAABCxMAAJEFADAUAACWBQAw7AIAAJIFADDtAgAAkwUAMO4CAACUBQAg7wIAAJUFADDwAgAAlQUAMPECAACVBQAw8gIAAJUFADDzAgAAlwUAMPQCAACYBQAwCxMAAIUFADAUAACKBQAw7AIAAIYFADDtAgAAhwUAMO4CAACIBQAg7wIAAIkFADDwAgAAiQUAMPECAACJBQAw8gIAAIkFADDzAgAAiwUAMPQCAACMBQAwB_wBAQAAAAGeAkAAAAABnwJAAAAAAdcCQAAAAAHjAgEAAAAB5AIBAAAAAeUCAQAAAAECAAAACQAgEwAAkAUAIAMAAAAJACATAACQBQAgFAAAjwUAIAEMAACjBQAwDAMAAM0DACD5AQAAzAMAMPoBAAAHABD7AQAAzAMAMPwBAQAAAAGeAkAAmQMAIZ8CQACZAwAh1wJAAJkDACHZAgEAhAMAIeMCAQAAAAHkAgEAhQMAIeUCAQCFAwAhAgAAAAkAIAwAAI8FACACAAAAjQUAIAwAAI4FACAL-QEAAIwFADD6AQAAjQUAEPsBAACMBQAw_AEBAIQDACGeAkAAmQMAIZ8CQACZAwAh1wJAAJkDACHZAgEAhAMAIeMCAQCEAwAh5AIBAIUDACHlAgEAhQMAIQv5AQAAjAUAMPoBAACNBQAQ-wEAAIwFADD8AQEAhAMAIZ4CQACZAwAhnwJAAJkDACHXAkAAmQMAIdkCAQCEAwAh4wIBAIQDACHkAgEAhQMAIeUCAQCFAwAhB_wBAQDWAwAhngJAAPoDACGfAkAA-gMAIdcCQAD6AwAh4wIBANYDACHkAgEA2QMAIeUCAQDZAwAhB_wBAQDWAwAhngJAAPoDACGfAkAA-gMAIdcCQAD6AwAh4wIBANYDACHkAgEA2QMAIeUCAQDZAwAhB_wBAQAAAAGeAkAAAAABnwJAAAAAAdcCQAAAAAHjAgEAAAAB5AIBAAAAAeUCAQAAAAEM_AEBAAAAAZ4CQAAAAAGfAkAAAAAB2gIBAAAAAdsCAQAAAAHcAgEAAAAB3QIBAAAAAd4CQAAAAAHfAkAAAAAB4AIBAAAAAeECAQAAAAHiAgEAAAABAgAAAAUAIBMAAJwFACADAAAABQAgEwAAnAUAIBQAAJsFACABDAAAogUAMBIDAADNAwAg-QEAAM8DADD6AQAAAwAQ-wEAAM8DADD8AQEAAAABngJAAJkDACGfAkAAmQMAIdkCAQCEAwAh2gIBAIQDACHbAgEAhAMAIdwCAQCFAwAh3QIBAIUDACHeAkAApQMAId8CQAClAwAh4AIBAIUDACHhAgEAhQMAIeICAQCFAwAh6QIAAM4DACACAAAABQAgDAAAmwUAIAIAAACZBQAgDAAAmgUAIBD5AQAAmAUAMPoBAACZBQAQ-wEAAJgFADD8AQEAhAMAIZ4CQACZAwAhnwJAAJkDACHZAgEAhAMAIdoCAQCEAwAh2wIBAIQDACHcAgEAhQMAId0CAQCFAwAh3gJAAKUDACHfAkAApQMAIeACAQCFAwAh4QIBAIUDACHiAgEAhQMAIRD5AQAAmAUAMPoBAACZBQAQ-wEAAJgFADD8AQEAhAMAIZ4CQACZAwAhnwJAAJkDACHZAgEAhAMAIdoCAQCEAwAh2wIBAIQDACHcAgEAhQMAId0CAQCFAwAh3gJAAKUDACHfAkAApQMAIeACAQCFAwAh4QIBAIUDACHiAgEAhQMAIQz8AQEA1gMAIZ4CQAD6AwAhnwJAAPoDACHaAgEA1gMAIdsCAQDWAwAh3AIBANkDACHdAgEA2QMAId4CQADXAwAh3wJAANcDACHgAgEA2QMAIeECAQDZAwAh4gIBANkDACEM_AEBANYDACGeAkAA-gMAIZ8CQAD6AwAh2gIBANYDACHbAgEA1gMAIdwCAQDZAwAh3QIBANkDACHeAkAA1wMAId8CQADXAwAh4AIBANkDACHhAgEA2QMAIeICAQDZAwAhDPwBAQAAAAGeAkAAAAABnwJAAAAAAdoCAQAAAAHbAgEAAAAB3AIBAAAAAd0CAQAAAAHeAkAAAAAB3wJAAAAAAeACAQAAAAHhAgEAAAAB4gIBAAAAAQQTAACRBQAw7AIAAJIFADDuAgAAlAUAIPICAACVBQAwBBMAAIUFADDsAgAAhgUAMO4CAACIBQAg8gIAAIkFADAAAAUEAACfBQAgBQAAoAUAIJUCAADQAwAg0QIAANADACDnAgAA0AMAIAz8AQEAAAABngJAAAAAAZ8CQAAAAAHaAgEAAAAB2wIBAAAAAdwCAQAAAAHdAgEAAAAB3gJAAAAAAd8CQAAAAAHgAgEAAAAB4QIBAAAAAeICAQAAAAEH_AEBAAAAAZ4CQAAAAAGfAkAAAAAB1wJAAAAAAeMCAQAAAAHkAgEAAAAB5QIBAAAAAQkEAACdBQAg_AEBAAAAAZUCAQAAAAGeAkAAAAABnwJAAAAAAdECAQAAAAHmAiAAAAAB5wIBAAAAAegCAQAAAAECAAAAAQAgEwAApAUAIAMAAAAOACATAACkBQAgFAAAqAUAIAsAAAAOACAEAACDBQAgDAAAqAUAIPwBAQDWAwAhlQIBANkDACGeAkAA-gMAIZ8CQAD6AwAh0QIBANkDACHmAiAAggUAIecCAQDZAwAh6AIBANYDACEJBAAAgwUAIPwBAQDWAwAhlQIBANkDACGeAkAA-gMAIZ8CQAD6AwAh0QIBANkDACHmAiAAggUAIecCAQDZAwAh6AIBANYDACEJBQAAngUAIPwBAQAAAAGVAgEAAAABngJAAAAAAZ8CQAAAAAHRAgEAAAAB5gIgAAAAAecCAQAAAAHoAgEAAAABAgAAAAEAIBMAAKkFACADAAAADgAgEwAAqQUAIBQAAK0FACALAAAADgAgBQAAhAUAIAwAAK0FACD8AQEA1gMAIZUCAQDZAwAhngJAAPoDACGfAkAA-gMAIdECAQDZAwAh5gIgAIIFACHnAgEA2QMAIegCAQDWAwAhCQUAAIQFACD8AQEA1gMAIZUCAQDZAwAhngJAAPoDACGfAkAA-gMAIdECAQDZAwAh5gIgAIIFACHnAgEA2QMAIegCAQDWAwAhAvwBAgAAAAHPAgEAAAABAvwBAgAAAAHQAgEAAAABBpECAQAAAAGeAkAAAAABnwJAAAAAAdECAQAAAAHSAgEAAAAB0wIBAAAAAQIAAABpACATAACwBQAgBZECAQAAAAGeAkAAAAABnwJAAAAAAaECAQAAAAHRAgEAAAABAgAAAIkBACATAACyBQAgAwAAAHMAIBMAALAFACAUAAC2BQAgCAAAAHMAIAwAALYFACCRAgEA1gMAIZ4CQAD6AwAhnwJAAPoDACHRAgEA2QMAIdICAQDWAwAh0wIBANYDACEGkQIBANYDACGeAkAA-gMAIZ8CQAD6AwAh0QIBANkDACHSAgEA1gMAIdMCAQDWAwAhAwAAAIwBACATAACyBQAgFAAAuQUAIAcAAACMAQAgDAAAuQUAIJECAQDWAwAhngJAAPoDACGfAkAA-gMAIaECAQDZAwAh0QIBANkDACEFkQIBANYDACGeAkAA-gMAIZ8CQAD6AwAhoQIBANkDACHRAgEA2QMAISWVAQAApAQAIJYBAAClBAAglwEAALwEACD8AQEAAAABkQIBAAAAAZ4CQAAAAAGfAkAAAAABoQIBAAAAAaICAQAAAAGuAgEAAAABrwIBAAAAAbACAACdBAAgsQKAAAAAAbICAACeBAAgswKAAAAAAbQCAQAAAAG1AgAAnwQAILYCAQAAAAG3AoAAAAABuAIBAAAAAbkCAACgBAAgugKAAAAAAbsCAQAAAAG8AgEAAAABvQIAAKEEACC-AoAAAAABvwKAAAAAAcACAQAAAAHBAgEAAAABwgIAAKIEACDDAgEAAAABxAIAAKMEACDFAgEAAAABxgKAAAAAAccCQAAAAAHIAkAAAAAByQJAAAAAAQIAAADRAQAgEwAAugUAIAb8AQIAAAAB_QEBAAAAAf8BAQAAAAGAAkAAAAABgQIAAN0DACCCAgEAAAABB_wBAQAAAAGeAkAAAAABnwJAAAAAAaoCAQAAAAGrAgEAAAABrAIBAAAAAa0CQAAAAAEh_AEBAAAAAZECAQAAAAGeAkAAAAABnwJAAAAAAaECAQAAAAGiAgEAAAABrgIBAAAAAa8CAQAAAAGwAgAAnQQAILECgAAAAAGyAgAAngQAILMCgAAAAAG0AgEAAAABtQIAAJ8EACC2AgEAAAABtwKAAAAAAbgCAQAAAAG5AgAAoAQAILoCgAAAAAG7AgEAAAABvAIBAAAAAb0CAAChBAAgvgKAAAAAAb8CgAAAAAHBAgEAAAABwgIAAKIEACDDAgEAAAABxAIAAKMEACDFAgEAAAABxgKAAAAAAccCQAAAAAHIAkAAAAAByQJAAAAAAQMAAADdAQAgEwAAugUAIBQAAMEFACAnAAAA3QEAIAwAAMEFACCVAQAAjQQAIJYBAACOBAAglwEAAI8EACD8AQEA1gMAIZECAQDWAwAhngJAAPoDACGfAkAA-gMAIaECAQDWAwAhogIBANYDACGuAgEA1gMAIa8CAQDZAwAhsAIAAIYEACCxAoAAAAABsgIAAIcEACCzAoAAAAABtAIBANkDACG1AgAAiAQAILYCAQDZAwAhtwKAAAAAAbgCAQDZAwAhuQIAAIkEACC6AoAAAAABuwIBANkDACG8AgEA2QMAIb0CAACKBAAgvgKAAAAAAb8CgAAAAAHAAgEA2QMAIcECAQDZAwAhwgIAAIsEACDDAgEA2QMAIcQCAACMBAAgxQIBANkDACHGAoAAAAABxwJAANcDACHIAkAA1wMAIckCQADXAwAhJZUBAACNBAAglgEAAI4EACCXAQAAjwQAIPwBAQDWAwAhkQIBANYDACGeAkAA-gMAIZ8CQAD6AwAhoQIBANYDACGiAgEA1gMAIa4CAQDWAwAhrwIBANkDACGwAgAAhgQAILECgAAAAAGyAgAAhwQAILMCgAAAAAG0AgEA2QMAIbUCAACIBAAgtgIBANkDACG3AoAAAAABuAIBANkDACG5AgAAiQQAILoCgAAAAAG7AgEA2QMAIbwCAQDZAwAhvQIAAIoEACC-AoAAAAABvwKAAAAAAcACAQDZAwAhwQIBANkDACHCAgAAiwQAIMMCAQDZAwAhxAIAAIwEACDFAgEA2QMAIcYCgAAAAAHHAkAA1wMAIcgCQADXAwAhyQJAANcDACEllQEAAKQEACCXAQAAvAQAIJgBAACmBAAg_AEBAAAAAZECAQAAAAGeAkAAAAABnwJAAAAAAaECAQAAAAGiAgEAAAABrgIBAAAAAa8CAQAAAAGwAgAAnQQAILECgAAAAAGyAgAAngQAILMCgAAAAAG0AgEAAAABtQIAAJ8EACC2AgEAAAABtwKAAAAAAbgCAQAAAAG5AgAAoAQAILoCgAAAAAG7AgEAAAABvAIBAAAAAb0CAAChBAAgvgKAAAAAAb8CgAAAAAHAAgEAAAABwQIBAAAAAcICAACiBAAgwwIBAAAAAcQCAACjBAAgxQIBAAAAAcYCgAAAAAHHAkAAAAAByAJAAAAAAckCQAAAAAECAAAA0QEAIBMAAMIFACADAAAA3QEAIBMAAMIFACAUAADGBQAgJwAAAN0BACAMAADGBQAglQEAAI0EACCXAQAAjwQAIJgBAACQBAAg_AEBANYDACGRAgEA1gMAIZ4CQAD6AwAhnwJAAPoDACGhAgEA1gMAIaICAQDWAwAhrgIBANYDACGvAgEA2QMAIbACAACGBAAgsQKAAAAAAbICAACHBAAgswKAAAAAAbQCAQDZAwAhtQIAAIgEACC2AgEA2QMAIbcCgAAAAAG4AgEA2QMAIbkCAACJBAAgugKAAAAAAbsCAQDZAwAhvAIBANkDACG9AgAAigQAIL4CgAAAAAG_AoAAAAABwAIBANkDACHBAgEA2QMAIcICAACLBAAgwwIBANkDACHEAgAAjAQAIMUCAQDZAwAhxgKAAAAAAccCQADXAwAhyAJAANcDACHJAkAA1wMAISWVAQAAjQQAIJcBAACPBAAgmAEAAJAEACD8AQEA1gMAIZECAQDWAwAhngJAAPoDACGfAkAA-gMAIaECAQDWAwAhogIBANYDACGuAgEA1gMAIa8CAQDZAwAhsAIAAIYEACCxAoAAAAABsgIAAIcEACCzAoAAAAABtAIBANkDACG1AgAAiAQAILYCAQDZAwAhtwKAAAAAAbgCAQDZAwAhuQIAAIkEACC6AoAAAAABuwIBANkDACG8AgEA2QMAIb0CAACKBAAgvgKAAAAAAb8CgAAAAAHAAgEA2QMAIcECAQDZAwAhwgIAAIsEACDDAgEA2QMAIcQCAACMBAAgxQIBANkDACHGAoAAAAABxwJAANcDACHIAkAA1wMAIckCQADXAwAhBvwBAgAAAAH-AQEAAAAB_wEBAAAAAYACQAAAAAGBAgAA3QMAIIICAQAAAAEllgEAAKUEACCXAQAAvAQAIJgBAACmBAAg_AEBAAAAAZECAQAAAAGeAkAAAAABnwJAAAAAAaECAQAAAAGiAgEAAAABrgIBAAAAAa8CAQAAAAGwAgAAnQQAILECgAAAAAGyAgAAngQAILMCgAAAAAG0AgEAAAABtQIAAJ8EACC2AgEAAAABtwKAAAAAAbgCAQAAAAG5AgAAoAQAILoCgAAAAAG7AgEAAAABvAIBAAAAAb0CAAChBAAgvgKAAAAAAb8CgAAAAAHAAgEAAAABwQIBAAAAAcICAACiBAAgwwIBAAAAAcQCAACjBAAgxQIBAAAAAcYCgAAAAAHHAkAAAAAByAJAAAAAAckCQAAAAAECAAAA0QEAIBMAAMgFACACggIBAAAAAZECAQAAAAECAAAAwwIAIBMAAMoFACADAAAA3QEAIBMAAMgFACAUAADOBQAgJwAAAN0BACAMAADOBQAglgEAAI4EACCXAQAAjwQAIJgBAACQBAAg_AEBANYDACGRAgEA1gMAIZ4CQAD6AwAhnwJAAPoDACGhAgEA1gMAIaICAQDWAwAhrgIBANYDACGvAgEA2QMAIbACAACGBAAgsQKAAAAAAbICAACHBAAgswKAAAAAAbQCAQDZAwAhtQIAAIgEACC2AgEA2QMAIbcCgAAAAAG4AgEA2QMAIbkCAACJBAAgugKAAAAAAbsCAQDZAwAhvAIBANkDACG9AgAAigQAIL4CgAAAAAG_AoAAAAABwAIBANkDACHBAgEA2QMAIcICAACLBAAgwwIBANkDACHEAgAAjAQAIMUCAQDZAwAhxgKAAAAAAccCQADXAwAhyAJAANcDACHJAkAA1wMAISWWAQAAjgQAIJcBAACPBAAgmAEAAJAEACD8AQEA1gMAIZECAQDWAwAhngJAAPoDACGfAkAA-gMAIaECAQDWAwAhogIBANYDACGuAgEA1gMAIa8CAQDZAwAhsAIAAIYEACCxAoAAAAABsgIAAIcEACCzAoAAAAABtAIBANkDACG1AgAAiAQAILYCAQDZAwAhtwKAAAAAAbgCAQDZAwAhuQIAAIkEACC6AoAAAAABuwIBANkDACG8AgEA2QMAIb0CAACKBAAgvgKAAAAAAb8CgAAAAAHAAgEA2QMAIcECAQDZAwAhwgIAAIsEACDDAgEA2QMAIcQCAACMBAAgxQIBANkDACHGAoAAAAABxwJAANcDACHIAkAA1wMAIckCQADXAwAhAwAAAMYCACATAADKBQAgFAAA0QUAIAQAAADGAgAgDAAA0QUAIIICAQDZAwAhkQIBANYDACECggIBANkDACGRAgEA1gMAIQMEBgIFCgMGAAQBAwABAQMAAQIECwAFDAAAAAADBgAJGQAKGgALAAAAAwYACRkAChoACwEDAAEBAwABAwYAEBkAERoAEgAAAAMGABAZABEaABIBAwABAQMAAQMGABcZABgaABkAAAADBgAXGQAYGgAZAAAAAwYAHxkAIBoAIQAAAAMGAB8ZACAaACECBgAnTW4kAk4AJU8AIwIGACZNbyQBTXAAAU1xAAAAAwYAKxkALBoALQAAAAMGACsZACwaAC0AAAMGADIZADMaADQAAAADBgAyGQAzGgA0Ak4AJU8AIwJOACVPACMFBgA5GQA8GgA9fgA6fwA7AAAAAAAFBgA5GQA8GgA9fgA6fwA7AAAAAwYAQxkARBoARQAAAAMGAEMZAEQaAEUFBgBMlQHWAUiWAdwBS5cB3gFHmAHgAUcCkwEASZQBAEcCBgBKkgHXAUgBkgHYAQABlAEARwOVAeEBAJYB4gEAmAHjAQABlwHtAUcBlwHzAUcDBgBQGQBRGgBSAAAAAwYAUBkAURoAUgGUAQBHAZQBAEcDBgBXGQBYGgBZAAAAAwYAVxkAWBoAWQAAAAMGAF8ZAGAaAGEAAAADBgBfGQBgGgBhAAAABQYAZxkAahoAa34AaH8AaQAAAAAABQYAZxkAahoAa34AaH8AaQAAAwYAcBkAcRoAcgAAAAMGAHAZAHEaAHICkwEASZQBAEcCkwEASZQBAEcFBgB3GQB6GgB7fgB4fwB5AAAAAAAFBgB3GQB6GgB7fgB4fwB5BwIBCA0BCRABChEBCxIBDRQBDhYFDxcGEBkBERsFEhwHFR0BFh4BFx8FGyIIHCMMHSQDHiUDHyYDICcDISgDIioDIywFJC0NJS8DJjEFJzIOKDMDKTQDKjUFKzgPLDkTLToCLjsCLzwCMD0CMT4CMkACM0IFNEMUNUUCNkcFN0gVOEkCOUoCOksFO04WPE8aPVEbPlIbP1UbQFYbQVcbQlkbQ1sFRFwcRV4bRmAFR2EdSGIbSWMbSmQFS2ceTGgiUGojUXIjUnUjU3YjVHcjVXkjVnsFV3woWH4jWYABBVqBASlbggEjXIMBI12EAQVehwEqX4gBLmCKASVhiwElYo4BJWOPASVkkAElZZIBJWaUAQVnlQEvaJcBJWmZAQVqmgEwa5sBJWycASVtnQEFbqABMW-hATVwogEkcaMBJHKkASRzpQEkdKYBJHWoASR2qgEFd6sBNnitASR5rwEFerABN3uxASR8sgEkfbMBBYABtgE4gQG3AT6CAbkBP4MBugE_hAG9AT-FAb4BP4YBvwE_hwHBAT-IAcMBBYkBxAFAigHGAT-LAcgBBYwByQFBjQHKAT-OAcsBP48BzAEFkAHPAUKRAdABRpkB0gFHmgHkAUebAeUBR5wB5gFHnQHnAUeeAekBR58B6wEFoAHsAU2hAe8BR6IB8QEFowHyAU6kAfQBR6UB9QFHpgH2AQWnAfkBT6gB-gFTqQH7AUuqAfwBS6sB_QFLrAH-AUutAf8BS64BgQJLrwGDAgWwAYQCVLEBhgJLsgGIAgWzAYkCVbQBigJLtQGLAku2AYwCBbcBjwJWuAGQAlq5AZICW7oBkwJbuwGWAlu8AZcCW70BmAJbvgGaAlu_AZwCBcABnQJcwQGfAlvCAaECBcMBogJdxAGjAlvFAaQCW8YBpQIFxwGoAl7IAakCYskBqwJjygGsAmPLAa8CY8wBsAJjzQGxAmPOAbMCY88BtQIF0AG2AmTRAbgCY9IBugIF0wG7AmXUAbwCY9UBvQJj1gG-AgXXAcECZtgBwgJs2QHEAknaAcUCSdsByAJJ3AHJAkndAcoCSd4BzAJJ3wHOAgXgAc8CbeEB0QJJ4gHTAgXjAdQCbuQB1QJJ5QHWAknmAdcCBecB2gJv6AHbAnPpAdwCSOoB3QJI6wHeAkjsAd8CSO0B4AJI7gHiAkjvAeQCBfAB5QJ08QHnAkjyAekCBfMB6gJ19AHrAkj1AewCSPYB7QIF9wHwAnb4AfECfA"
22
+ strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"accounts\",\"sessions\",\"_count\",\"user.findUnique\",\"user.findUniqueOrThrow\",\"user.findFirst\",\"user.findFirstOrThrow\",\"user.findMany\",\"data\",\"user.createOne\",\"user.createMany\",\"user.createManyAndReturn\",\"user.updateOne\",\"user.updateMany\",\"user.updateManyAndReturn\",\"create\",\"update\",\"user.upsertOne\",\"user.deleteOne\",\"user.deleteMany\",\"having\",\"_min\",\"_max\",\"user.groupBy\",\"user.aggregate\",\"session.findUnique\",\"session.findUniqueOrThrow\",\"session.findFirst\",\"session.findFirstOrThrow\",\"session.findMany\",\"session.createOne\",\"session.createMany\",\"session.createManyAndReturn\",\"session.updateOne\",\"session.updateMany\",\"session.updateManyAndReturn\",\"session.upsertOne\",\"session.deleteOne\",\"session.deleteMany\",\"session.groupBy\",\"session.aggregate\",\"account.findUnique\",\"account.findUniqueOrThrow\",\"account.findFirst\",\"account.findFirstOrThrow\",\"account.findMany\",\"account.createOne\",\"account.createMany\",\"account.createManyAndReturn\",\"account.updateOne\",\"account.updateMany\",\"account.updateManyAndReturn\",\"account.upsertOne\",\"account.deleteOne\",\"account.deleteMany\",\"account.groupBy\",\"account.aggregate\",\"verification.findUnique\",\"verification.findUniqueOrThrow\",\"verification.findFirst\",\"verification.findFirstOrThrow\",\"verification.findMany\",\"verification.createOne\",\"verification.createMany\",\"verification.createManyAndReturn\",\"verification.updateOne\",\"verification.updateMany\",\"verification.updateManyAndReturn\",\"verification.upsertOne\",\"verification.deleteOne\",\"verification.deleteMany\",\"verification.groupBy\",\"verification.aggregate\",\"memberships\",\"group\",\"person\",\"DbPerson.findUnique\",\"DbPerson.findUniqueOrThrow\",\"DbPerson.findFirst\",\"DbPerson.findFirstOrThrow\",\"DbPerson.findMany\",\"DbPerson.createOne\",\"DbPerson.createMany\",\"DbPerson.createManyAndReturn\",\"DbPerson.updateOne\",\"DbPerson.updateMany\",\"DbPerson.updateManyAndReturn\",\"DbPerson.upsertOne\",\"DbPerson.deleteOne\",\"DbPerson.deleteMany\",\"DbPerson.groupBy\",\"DbPerson.aggregate\",\"DbGroup.findUnique\",\"DbGroup.findUniqueOrThrow\",\"DbGroup.findFirst\",\"DbGroup.findFirstOrThrow\",\"DbGroup.findMany\",\"DbGroup.createOne\",\"DbGroup.createMany\",\"DbGroup.createManyAndReturn\",\"DbGroup.updateOne\",\"DbGroup.updateMany\",\"DbGroup.updateManyAndReturn\",\"DbGroup.upsertOne\",\"DbGroup.deleteOne\",\"DbGroup.deleteMany\",\"DbGroup.groupBy\",\"DbGroup.aggregate\",\"DbGroupMembership.findUnique\",\"DbGroupMembership.findUniqueOrThrow\",\"DbGroupMembership.findFirst\",\"DbGroupMembership.findFirstOrThrow\",\"DbGroupMembership.findMany\",\"DbGroupMembership.createOne\",\"DbGroupMembership.createMany\",\"DbGroupMembership.createManyAndReturn\",\"DbGroupMembership.updateOne\",\"DbGroupMembership.updateMany\",\"DbGroupMembership.updateManyAndReturn\",\"DbGroupMembership.upsertOne\",\"DbGroupMembership.deleteOne\",\"DbGroupMembership.deleteMany\",\"_avg\",\"_sum\",\"DbGroupMembership.groupBy\",\"DbGroupMembership.aggregate\",\"DbApprovalMethod.findUnique\",\"DbApprovalMethod.findUniqueOrThrow\",\"DbApprovalMethod.findFirst\",\"DbApprovalMethod.findFirstOrThrow\",\"DbApprovalMethod.findMany\",\"DbApprovalMethod.createOne\",\"DbApprovalMethod.createMany\",\"DbApprovalMethod.createManyAndReturn\",\"DbApprovalMethod.updateOne\",\"DbApprovalMethod.updateMany\",\"DbApprovalMethod.updateManyAndReturn\",\"DbApprovalMethod.upsertOne\",\"DbApprovalMethod.deleteOne\",\"DbApprovalMethod.deleteMany\",\"DbApprovalMethod.groupBy\",\"DbApprovalMethod.aggregate\",\"references\",\"source\",\"resource\",\"sourceRefs\",\"comments\",\"parent\",\"children\",\"DbResource.findUnique\",\"DbResource.findUniqueOrThrow\",\"DbResource.findFirst\",\"DbResource.findFirstOrThrow\",\"DbResource.findMany\",\"DbResource.createOne\",\"DbResource.createMany\",\"DbResource.createManyAndReturn\",\"DbResource.updateOne\",\"DbResource.updateMany\",\"DbResource.updateManyAndReturn\",\"DbResource.upsertOne\",\"DbResource.deleteOne\",\"DbResource.deleteMany\",\"DbResource.groupBy\",\"DbResource.aggregate\",\"DbComment.findUnique\",\"DbComment.findUniqueOrThrow\",\"DbComment.findFirst\",\"DbComment.findFirstOrThrow\",\"DbComment.findMany\",\"DbComment.createOne\",\"DbComment.createMany\",\"DbComment.createManyAndReturn\",\"DbComment.updateOne\",\"DbComment.updateMany\",\"DbComment.updateManyAndReturn\",\"DbComment.upsertOne\",\"DbComment.deleteOne\",\"DbComment.deleteMany\",\"DbComment.groupBy\",\"DbComment.aggregate\",\"DbAppTagDefinition.findUnique\",\"DbAppTagDefinition.findUniqueOrThrow\",\"DbAppTagDefinition.findFirst\",\"DbAppTagDefinition.findFirstOrThrow\",\"DbAppTagDefinition.findMany\",\"DbAppTagDefinition.createOne\",\"DbAppTagDefinition.createMany\",\"DbAppTagDefinition.createManyAndReturn\",\"DbAppTagDefinition.updateOne\",\"DbAppTagDefinition.updateMany\",\"DbAppTagDefinition.updateManyAndReturn\",\"DbAppTagDefinition.upsertOne\",\"DbAppTagDefinition.deleteOne\",\"DbAppTagDefinition.deleteMany\",\"DbAppTagDefinition.groupBy\",\"DbAppTagDefinition.aggregate\",\"DbAsset.findUnique\",\"DbAsset.findUniqueOrThrow\",\"DbAsset.findFirst\",\"DbAsset.findFirstOrThrow\",\"DbAsset.findMany\",\"DbAsset.createOne\",\"DbAsset.createMany\",\"DbAsset.createManyAndReturn\",\"DbAsset.updateOne\",\"DbAsset.updateMany\",\"DbAsset.updateManyAndReturn\",\"DbAsset.upsertOne\",\"DbAsset.deleteOne\",\"DbAsset.deleteMany\",\"DbAsset.groupBy\",\"DbAsset.aggregate\",\"Source.findUnique\",\"Source.findUniqueOrThrow\",\"Source.findFirst\",\"Source.findFirstOrThrow\",\"Source.findMany\",\"Source.createOne\",\"Source.createMany\",\"Source.createManyAndReturn\",\"Source.updateOne\",\"Source.updateMany\",\"Source.updateManyAndReturn\",\"Source.upsertOne\",\"Source.deleteOne\",\"Source.deleteMany\",\"Source.groupBy\",\"Source.aggregate\",\"SourceReference.findUnique\",\"SourceReference.findUniqueOrThrow\",\"SourceReference.findFirst\",\"SourceReference.findFirstOrThrow\",\"SourceReference.findMany\",\"SourceReference.createOne\",\"SourceReference.createMany\",\"SourceReference.createManyAndReturn\",\"SourceReference.updateOne\",\"SourceReference.updateMany\",\"SourceReference.updateManyAndReturn\",\"SourceReference.upsertOne\",\"SourceReference.deleteOne\",\"SourceReference.deleteMany\",\"SourceReference.groupBy\",\"SourceReference.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"sourceSlug\",\"resourceId\",\"url\",\"parseDate\",\"excerpts\",\"userPrompt\",\"lastCheckedAt\",\"nextCheckAfter\",\"lastContentChangeAt\",\"checkIntervalHours\",\"changeHistory\",\"equals\",\"string_contains\",\"string_starts_with\",\"string_ends_with\",\"array_starts_with\",\"array_ends_with\",\"array_contains\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"in\",\"notIn\",\"contains\",\"startsWith\",\"endsWith\",\"has\",\"hasEvery\",\"hasSome\",\"slug\",\"every\",\"some\",\"none\",\"name\",\"AssetType\",\"assetType\",\"content\",\"checksum\",\"mimeType\",\"fileSize\",\"width\",\"height\",\"createdAt\",\"updatedAt\",\"prefix\",\"displayName\",\"description\",\"values\",\"authorHash\",\"authorAlias\",\"body\",\"editedAt\",\"type\",\"abbreviation\",\"nicknames\",\"access\",\"teams\",\"accessRequest\",\"notes\",\"tags\",\"appUrl\",\"links\",\"iconName\",\"screenshotIds\",\"deprecated\",\"aiPrompt\",\"aiMemory\",\"urlIssues\",\"tiers\",\"quickJumps\",\"parentSlug\",\"tier\",\"aliases\",\"ownerPersonSlug\",\"approverSlugs\",\"accessComments\",\"extra\",\"resourceId_url\",\"ApprovalMethodType\",\"config\",\"deprecatedAliases\",\"type_displayName\",\"groupSlug\",\"personSlug\",\"email\",\"firstName\",\"lastName\",\"groupSlug_personSlug\",\"identifier\",\"value\",\"expiresAt\",\"identifier_value\",\"userId\",\"accountId\",\"providerId\",\"refreshToken\",\"accessToken\",\"accessTokenExpiresAt\",\"refreshTokenExpiresAt\",\"idToken\",\"scope\",\"password\",\"token\",\"ipAddress\",\"userAgent\",\"emailVerified\",\"image\",\"role\",\"providerId_accountId\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"push\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
23
+ graph: "0QV84AENBAAAygMAIAUAAMsDACD5AQAAyAMAMPoBAAAOABD7AQAAyAMAMPwBAQAAAAGgAgEAigMAIakCQACbAwAhqgJAAJsDACHTAgEAAAAB6AIgAMkDACHpAgEAigMAIeoCAQCJAwAhAQAAAAEAIBEDAADNAwAg-QEAAM8DADD6AQAAAwAQ-wEAAM8DADD8AQEAiQMAIakCQACbAwAhqgJAAJsDACHbAgEAiQMAIdwCAQCJAwAh3QIBAIkDACHeAgEAigMAId8CAQCKAwAh4AJAAKUDACHhAkAApQMAIeICAQCKAwAh4wIBAIoDACHkAgEAigMAIQgDAAChBQAg3gIAANADACDfAgAA0AMAIOACAADQAwAg4QIAANADACDiAgAA0AMAIOMCAADQAwAg5AIAANADACASAwAAzQMAIPkBAADPAwAw-gEAAAMAEPsBAADPAwAw_AEBAAAAAakCQACbAwAhqgJAAJsDACHbAgEAiQMAIdwCAQCJAwAh3QIBAIkDACHeAgEAigMAId8CAQCKAwAh4AJAAKUDACHhAkAApQMAIeICAQCKAwAh4wIBAIoDACHkAgEAigMAIesCAADOAwAgAwAAAAMAIAEAAAQAMAIAAAUAIAwDAADNAwAg-QEAAMwDADD6AQAABwAQ-wEAAMwDADD8AQEAiQMAIakCQACbAwAhqgJAAJsDACHZAkAAmwMAIdsCAQCJAwAh5QIBAIkDACHmAgEAigMAIecCAQCKAwAhAwMAAKEFACDmAgAA0AMAIOcCAADQAwAgDAMAAM0DACD5AQAAzAMAMPoBAAAHABD7AQAAzAMAMPwBAQAAAAGpAkAAmwMAIaoCQACbAwAh2QJAAJsDACHbAgEAiQMAIeUCAQAAAAHmAgEAigMAIecCAQCKAwAhAwAAAAcAIAEAAAgAMAIAAAkAIAEAAAADACABAAAABwAgAQAAAAEAIA0EAADKAwAgBQAAywMAIPkBAADIAwAw-gEAAA4AEPsBAADIAwAw_AEBAIkDACGgAgEAigMAIakCQACbAwAhqgJAAJsDACHTAgEAigMAIegCIADJAwAh6QIBAIoDACHqAgEAiQMAIQUEAACfBQAgBQAAoAUAIKACAADQAwAg0wIAANADACDpAgAA0AMAIAMAAAAOACABAAAPADACAAABACADAAAADgAgAQAADwAwAgAAAQAgAwAAAA4AIAEAAA8AMAIAAAEAIAoEAACdBQAgBQAAngUAIPwBAQAAAAGgAgEAAAABqQJAAAAAAaoCQAAAAAHTAgEAAAAB6AIgAAAAAekCAQAAAAHqAgEAAAABAQwAABMAIAj8AQEAAAABoAIBAAAAAakCQAAAAAGqAkAAAAAB0wIBAAAAAegCIAAAAAHpAgEAAAAB6gIBAAAAAQEMAAAVADABDAAAFQAwCgQAAIMFACAFAACEBQAg_AEBANYDACGgAgEA2QMAIakCQAD6AwAhqgJAAPoDACHTAgEA2QMAIegCIACCBQAh6QIBANkDACHqAgEA1gMAIQIAAAABACAMAAAYACAI_AEBANYDACGgAgEA2QMAIakCQAD6AwAhqgJAAPoDACHTAgEA2QMAIegCIACCBQAh6QIBANkDACHqAgEA1gMAIQIAAAAOACAMAAAaACACAAAADgAgDAAAGgAgAwAAAAEAIBMAABMAIBQAABgAIAEAAAABACABAAAADgAgBgYAAP8EACAZAACBBQAgGgAAgAUAIKACAADQAwAg0wIAANADACDpAgAA0AMAIAv5AQAAxAMAMPoBAAAhABD7AQAAxAMAMPwBAQD0AgAhoAIBAPcCACGpAkAAjwMAIaoCQACPAwAh0wIBAPcCACHoAiAAxQMAIekCAQD3AgAh6gIBAPQCACEDAAAADgAgAQAAIAAwGAAAIQAgAwAAAA4AIAEAAA8AMAIAAAEAIAEAAAAJACABAAAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIAMAAAAHACABAAAIADACAAAJACADAAAABwAgAQAACAAwAgAACQAgCQMAAP4EACD8AQEAAAABqQJAAAAAAaoCQAAAAAHZAkAAAAAB2wIBAAAAAeUCAQAAAAHmAgEAAAAB5wIBAAAAAQEMAAApACAI_AEBAAAAAakCQAAAAAGqAkAAAAAB2QJAAAAAAdsCAQAAAAHlAgEAAAAB5gIBAAAAAecCAQAAAAEBDAAAKwAwAQwAACsAMAkDAAD9BAAg_AEBANYDACGpAkAA-gMAIaoCQAD6AwAh2QJAAPoDACHbAgEA1gMAIeUCAQDWAwAh5gIBANkDACHnAgEA2QMAIQIAAAAJACAMAAAuACAI_AEBANYDACGpAkAA-gMAIaoCQAD6AwAh2QJAAPoDACHbAgEA1gMAIeUCAQDWAwAh5gIBANkDACHnAgEA2QMAIQIAAAAHACAMAAAwACACAAAABwAgDAAAMAAgAwAAAAkAIBMAACkAIBQAAC4AIAEAAAAJACABAAAABwAgBQYAAPoEACAZAAD8BAAgGgAA-wQAIOYCAADQAwAg5wIAANADACAL-QEAAMMDADD6AQAANwAQ-wEAAMMDADD8AQEA9AIAIakCQACPAwAhqgJAAI8DACHZAkAAjwMAIdsCAQD0AgAh5QIBAPQCACHmAgEA9wIAIecCAQD3AgAhAwAAAAcAIAEAADYAMBgAADcAIAMAAAAHACABAAAIADACAAAJACABAAAABQAgAQAAAAUAIAMAAAADACABAAAEADACAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIA4DAAD5BAAg_AEBAAAAAakCQAAAAAGqAkAAAAAB2wIBAAAAAdwCAQAAAAHdAgEAAAAB3gIBAAAAAd8CAQAAAAHgAkAAAAAB4QJAAAAAAeICAQAAAAHjAgEAAAAB5AIBAAAAAQEMAAA_ACAN_AEBAAAAAakCQAAAAAGqAkAAAAAB2wIBAAAAAdwCAQAAAAHdAgEAAAAB3gIBAAAAAd8CAQAAAAHgAkAAAAAB4QJAAAAAAeICAQAAAAHjAgEAAAAB5AIBAAAAAQEMAABBADABDAAAQQAwDgMAAPgEACD8AQEA1gMAIakCQAD6AwAhqgJAAPoDACHbAgEA1gMAIdwCAQDWAwAh3QIBANYDACHeAgEA2QMAId8CAQDZAwAh4AJAANcDACHhAkAA1wMAIeICAQDZAwAh4wIBANkDACHkAgEA2QMAIQIAAAAFACAMAABEACAN_AEBANYDACGpAkAA-gMAIaoCQAD6AwAh2wIBANYDACHcAgEA1gMAId0CAQDWAwAh3gIBANkDACHfAgEA2QMAIeACQADXAwAh4QJAANcDACHiAgEA2QMAIeMCAQDZAwAh5AIBANkDACECAAAAAwAgDAAARgAgAgAAAAMAIAwAAEYAIAMAAAAFACATAAA_ACAUAABEACABAAAABQAgAQAAAAMAIAoGAAD1BAAgGQAA9wQAIBoAAPYEACDeAgAA0AMAIN8CAADQAwAg4AIAANADACDhAgAA0AMAIOICAADQAwAg4wIAANADACDkAgAA0AMAIBD5AQAAwgMAMPoBAABNABD7AQAAwgMAMPwBAQD0AgAhqQJAAI8DACGqAkAAjwMAIdsCAQD0AgAh3AIBAPQCACHdAgEA9AIAId4CAQD3AgAh3wIBAPcCACHgAkAA9QIAIeECQAD1AgAh4gIBAPcCACHjAgEA9wIAIeQCAQD3AgAhAwAAAAMAIAEAAEwAMBgAAE0AIAMAAAADACABAAAEADACAAAFACAK-QEAAMADADD6AQAAUwAQ-wEAAMADADD8AQEAAAABqQJAAJsDACGqAkAAmwMAIdcCAQCJAwAh2AIBAIkDACHZAkAAmwMAIdoCAADBAwAgAQAAAFAAIAEAAABQACAJ-QEAAMADADD6AQAAUwAQ-wEAAMADADD8AQEAiQMAIakCQACbAwAhqgJAAJsDACHXAgEAiQMAIdgCAQCJAwAh2QJAAJsDACEAAwAAAFMAIAEAAFQAMAIAAFAAIAMAAABTACABAABUADACAABQACADAAAAUwAgAQAAVAAwAgAAUAAgBvwBAQAAAAGpAkAAAAABqgJAAAAAAdcCAQAAAAHYAgEAAAAB2QJAAAAAAQEMAABYACAG_AEBAAAAAakCQAAAAAGqAkAAAAAB1wIBAAAAAdgCAQAAAAHZAkAAAAABAQwAAFoAMAEMAABaADAG_AEBANYDACGpAkAA-gMAIaoCQAD6AwAh1wIBANYDACHYAgEA1gMAIdkCQAD6AwAhAgAAAFAAIAwAAF0AIAb8AQEA1gMAIakCQAD6AwAhqgJAAPoDACHXAgEA1gMAIdgCAQDWAwAh2QJAAPoDACECAAAAUwAgDAAAXwAgAgAAAFMAIAwAAF8AIAMAAABQACATAABYACAUAABdACABAAAAUAAgAQAAAFMAIAMGAADyBAAgGQAA9AQAIBoAAPMEACAJ-QEAAL8DADD6AQAAZgAQ-wEAAL8DADD8AQEA9AIAIakCQACPAwAhqgJAAI8DACHXAgEA9AIAIdgCAQD0AgAh2QJAAI8DACEDAAAAUwAgAQAAZQAwGAAAZgAgAwAAAFMAIAEAAFQAMAIAAFAAIApNAAC4AwAg-QEAALoDADD6AQAAcwAQ-wEAALoDADCcAgEAAAABqQJAAJsDACGqAkAAmwMAIdMCAQAAAAHUAgEAiQMAIdUCAQCJAwAhAQAAAGkAIAhOAAC9AwAgTwAAvgMAIPkBAAC8AwAw-gEAAGsAEPsBAAC8AwAw_AECAJkDACHRAgEAiQMAIdICAQCJAwAhAk4AAPAEACBPAADxBAAgCU4AAL0DACBPAAC-AwAg-QEAALwDADD6AQAAawAQ-wEAALwDADD8AQIAAAAB0QIBAIkDACHSAgEAiQMAIdYCAAC7AwAgAwAAAGsAIAEAAGwAMAIAAG0AIAMAAABrACABAABsADACAABtACABAAAAawAgAQAAAGsAIAEAAABpACAKTQAAuAMAIPkBAAC6AwAw-gEAAHMAEPsBAAC6AwAwnAIBAIkDACGpAkAAmwMAIaoCQACbAwAh0wIBAIoDACHUAgEAiQMAIdUCAQCJAwAhAk0AAOEEACDTAgAA0AMAIAMAAABzACABAAB0ADACAABpACADAAAAcwAgAQAAdAAwAgAAaQAgAwAAAHMAIAEAAHQAMAIAAGkAIAdNAADvBAAgnAIBAAAAAakCQAAAAAGqAkAAAAAB0wIBAAAAAdQCAQAAAAHVAgEAAAABAQwAAHgAIAacAgEAAAABqQJAAAAAAaoCQAAAAAHTAgEAAAAB1AIBAAAAAdUCAQAAAAEBDAAAegAwAQwAAHoAMAdNAADlBAAgnAIBANYDACGpAkAA-gMAIaoCQAD6AwAh0wIBANkDACHUAgEA1gMAIdUCAQDWAwAhAgAAAGkAIAwAAH0AIAacAgEA1gMAIakCQAD6AwAhqgJAAPoDACHTAgEA2QMAIdQCAQDWAwAh1QIBANYDACECAAAAcwAgDAAAfwAgAgAAAHMAIAwAAH8AIAMAAABpACATAAB4ACAUAAB9ACABAAAAaQAgAQAAAHMAIAQGAADiBAAgGQAA5AQAIBoAAOMEACDTAgAA0AMAIAn5AQAAuQMAMPoBAACGAQAQ-wEAALkDADCcAgEA9AIAIakCQACPAwAhqgJAAI8DACHTAgEA9wIAIdQCAQD0AgAh1QIBAPQCACEDAAAAcwAgAQAAhQEAMBgAAIYBACADAAAAcwAgAQAAdAAwAgAAaQAgCU0AALgDACD5AQAAtwMAMPoBAACMAQAQ-wEAALcDADCcAgEAAAABqQJAAJsDACGqAkAAmwMAIawCAQCKAwAh0wIBAIoDACEBAAAAiQEAIAEAAACJAQAgCU0AALgDACD5AQAAtwMAMPoBAACMAQAQ-wEAALcDADCcAgEAiQMAIakCQACbAwAhqgJAAJsDACGsAgEAigMAIdMCAQCKAwAhA00AAOEEACCsAgAA0AMAINMCAADQAwAgAwAAAIwBACABAACNAQAwAgAAiQEAIAMAAACMAQAgAQAAjQEAMAIAAIkBACADAAAAjAEAIAEAAI0BADACAACJAQAgBk0AAOAEACCcAgEAAAABqQJAAAAAAaoCQAAAAAGsAgEAAAAB0wIBAAAAAQEMAACRAQAgBZwCAQAAAAGpAkAAAAABqgJAAAAAAawCAQAAAAHTAgEAAAABAQwAAJMBADABDAAAkwEAMAZNAADTBAAgnAIBANYDACGpAkAA-gMAIaoCQAD6AwAhrAIBANkDACHTAgEA2QMAIQIAAACJAQAgDAAAlgEAIAWcAgEA1gMAIakCQAD6AwAhqgJAAPoDACGsAgEA2QMAIdMCAQDZAwAhAgAAAIwBACAMAACYAQAgAgAAAIwBACAMAACYAQAgAwAAAIkBACATAACRAQAgFAAAlgEAIAEAAACJAQAgAQAAAIwBACAFBgAA0AQAIBkAANIEACAaAADRBAAgrAIAANADACDTAgAA0AMAIAj5AQAAtgMAMPoBAACfAQAQ-wEAALYDADCcAgEA9AIAIakCQACPAwAhqgJAAI8DACGsAgEA9wIAIdMCAQD3AgAhAwAAAIwBACABAACeAQAwGAAAnwEAIAMAAACMAQAgAQAAjQEAMAIAAIkBACABAAAAbQAgAQAAAG0AIAMAAABrACABAABsADACAABtACADAAAAawAgAQAAbAAwAgAAbQAgAwAAAGsAIAEAAGwAMAIAAG0AIAVOAADOBAAgTwAAzwQAIPwBAgAAAAHRAgEAAAAB0gIBAAAAAQEMAACnAQAgA_wBAgAAAAHRAgEAAAAB0gIBAAAAAQEMAACpAQAwAQwAAKkBADAFTgAAzAQAIE8AAM0EACD8AQIA2wMAIdECAQDWAwAh0gIBANYDACECAAAAbQAgDAAArAEAIAP8AQIA2wMAIdECAQDWAwAh0gIBANYDACECAAAAawAgDAAArgEAIAIAAABrACAMAACuAQAgAwAAAG0AIBMAAKcBACAUAACsAQAgAQAAAG0AIAEAAABrACAFBgAAxwQAIBkAAMoEACAaAADJBAAgfgAAyAQAIH8AAMsEACAG-QEAALUDADD6AQAAtQEAEPsBAAC1AwAw_AECAPMCACHRAgEA9AIAIdICAQD0AgAhAwAAAGsAIAEAALQBADAYAAC1AQAgAwAAAGsAIAEAAGwAMAIAAG0AIAv5AQAAsgMAMPoBAAC7AQAQ-wEAALIDADCcAgEAAAABqQJAAJsDACGqAkAAmwMAIawCAQCJAwAhswIAALMDzgIizgIAAKQDACDPAgAA9gIAINACAAC0AwAgAQAAALgBACABAAAAuAEAIAr5AQAAsgMAMPoBAAC7AQAQ-wEAALIDADCcAgEAiQMAIakCQACbAwAhqgJAAJsDACGsAgEAiQMAIbMCAACzA84CIs4CAACkAwAgzwIAAPYCACABzgIAANADACADAAAAuwEAIAEAALwBADACAAC4AQAgAwAAALsBACABAAC8AQAwAgAAuAEAIAMAAAC7AQAgAQAAvAEAMAIAALgBACAHnAIBAAAAAakCQAAAAAGqAkAAAAABrAIBAAAAAbMCAAAAzgICzgKAAAAAAc8CAADGBAAgAQwAAMABACAHnAIBAAAAAakCQAAAAAGqAkAAAAABrAIBAAAAAbMCAAAAzgICzgKAAAAAAc8CAADGBAAgAQwAAMIBADABDAAAwgEAMAecAgEA1gMAIakCQAD6AwAhqgJAAPoDACGsAgEA1gMAIbMCAADEBM4CIs4CgAAAAAHPAgAAxQQAIAIAAAC4AQAgDAAAxQEAIAecAgEA1gMAIakCQAD6AwAhqgJAAPoDACGsAgEA1gMAIbMCAADEBM4CIs4CgAAAAAHPAgAAxQQAIAIAAAC7AQAgDAAAxwEAIAIAAAC7AQAgDAAAxwEAIAMAAAC4AQAgEwAAwAEAIBQAAMUBACABAAAAuAEAIAEAAAC7AQAgBAYAAMEEACAZAADDBAAgGgAAwgQAIM4CAADQAwAgCvkBAACuAwAw-gEAAM4BABD7AQAArgMAMJwCAQD0AgAhqQJAAI8DACGqAkAAjwMAIawCAQD0AgAhswIAAK8DzgIizgIAAPkCACDPAgAA9gIAIAMAAAC7AQAgAQAAzQEAMBgAAM4BACADAAAAuwEAIAEAALwBADACAAC4AQAgKZUBAACLAwAglgEAAKYDACCXAQAApwMAIJgBAACoAwAg-QEAAKMDADD6AQAA3QEAEPsBAACjAwAw_AEBAAAAAYMCQAClAwAhhAJAAKUDACGFAkAApQMAIZwCAQAAAAGpAkAAmwMAIaoCQACbAwAhrAIBAIkDACGtAgEAiQMAIbMCAQCJAwAhtAIBAIoDACG1AgAA9gIAILYCAACkAwAgtwIAAPYCACC4AgAApAMAILkCAQCKAwAhugIAAPYCACC7AgEAigMAIbwCAACkAwAgvQIBAIoDACG-AgAA9gIAIL8CAACkAwAgwAIBAIoDACHBAgEAigMAIcICAAD2AgAgwwIAAKQDACDEAgAApAMAIMUCAQCKAwAhxgIBAIoDACHHAgAA9gIAIMgCAQCKAwAhyQIAAPYCACDKAgEAigMAIcsCAACkAwAgAQAAANEBACARkwEAAK0DACCUAQAAqgMAIPkBAACsAwAw-gEAANMBABD7AQAArAMAMPwBAgCZAwAh_QEBAIkDACH-AQEAiQMAIf8BAQCJAwAhgAJAAKUDACGBAgAA9gIAIIICAQCKAwAhgwJAAKUDACGEAkAApQMAIYUCQAClAwAhhgICAJoDACGHAgAApAMAIAmTAQAAwAQAIJQBAAC-BAAggAIAANADACCCAgAA0AMAIIMCAADQAwAghAIAANADACCFAgAA0AMAIIYCAADQAwAghwIAANADACASkwEAAK0DACCUAQAAqgMAIPkBAACsAwAw-gEAANMBABD7AQAArAMAMPwBAgAAAAH9AQEAiQMAIf4BAQCJAwAh_wEBAIkDACGAAkAApQMAIYECAAD2AgAgggIBAIoDACGDAkAApQMAIYQCQAClAwAhhQJAAKUDACGGAgIAmgMAIYcCAACkAwAgzAIAAKsDACADAAAA0wEAIAEAANQBADACAADVAQAgAwAAANMBACABAADUAQAwAgAA1QEAIAEAAADTAQAgDJQBAACqAwAg-QEAAKkDADD6AQAA2QEAEPsBAACpAwAw_AEBAIkDACH-AQEAiQMAIakCQACbAwAhqgJAAJsDACGvAgEAiQMAIbACAQCJAwAhsQIBAIkDACGyAkAApQMAIQKUAQAAvgQAILICAADQAwAgDJQBAACqAwAg-QEAAKkDADD6AQAA2QEAEPsBAACpAwAw_AEBAAAAAf4BAQCJAwAhqQJAAJsDACGqAkAAmwMAIa8CAQCJAwAhsAIBAIkDACGxAgEAiQMAIbICQAClAwAhAwAAANkBACABAADaAQAwAgAA2wEAICmVAQAAiwMAIJYBAACmAwAglwEAAKcDACCYAQAAqAMAIPkBAACjAwAw-gEAAN0BABD7AQAAowMAMPwBAQCJAwAhgwJAAKUDACGEAkAApQMAIYUCQAClAwAhnAIBAIkDACGpAkAAmwMAIaoCQACbAwAhrAIBAIkDACGtAgEAiQMAIbMCAQCJAwAhtAIBAIoDACG1AgAA9gIAILYCAACkAwAgtwIAAPYCACC4AgAApAMAILkCAQCKAwAhugIAAPYCACC7AgEAigMAIbwCAACkAwAgvQIBAIoDACG-AgAA9gIAIL8CAACkAwAgwAIBAIoDACHBAgEAigMAIcICAAD2AgAgwwIAAKQDACDEAgAApAMAIMUCAQCKAwAhxgIBAIoDACHHAgAA9gIAIMgCAQCKAwAhyQIAAPYCACDKAgEAigMAIcsCAACkAwAgAQAAAN0BACAYlQEAAPIDACCWAQAAvQQAIJcBAAC-BAAgmAEAAL8EACCDAgAA0AMAIIQCAADQAwAghQIAANADACC0AgAA0AMAILYCAADQAwAguAIAANADACC5AgAA0AMAILsCAADQAwAgvAIAANADACC9AgAA0AMAIL8CAADQAwAgwAIAANADACDBAgAA0AMAIMMCAADQAwAgxAIAANADACDFAgAA0AMAIMYCAADQAwAgyAIAANADACDKAgAA0AMAIMsCAADQAwAgAwAAAN0BACABAADfAQAwAgAA0QEAIAEAAADTAQAgAQAAANkBACABAAAA3QEAIAEAAADRAQAgAwAAAN0BACABAADfAQAwAgAA0QEAIAMAAADdAQAgAQAA3wEAMAIAANEBACADAAAA3QEAIAEAAN8BADACAADRAQAgJpUBAACkBAAglgEAAKUEACCXAQAAvAQAIJgBAACmBAAg_AEBAAAAAYMCQAAAAAGEAkAAAAABhQJAAAAAAZwCAQAAAAGpAkAAAAABqgJAAAAAAawCAQAAAAGtAgEAAAABswIBAAAAAbQCAQAAAAG1AgAAnQQAILYCgAAAAAG3AgAAngQAILgCgAAAAAG5AgEAAAABugIAAJ8EACC7AgEAAAABvAKAAAAAAb0CAQAAAAG-AgAAoAQAIL8CgAAAAAHAAgEAAAABwQIBAAAAAcICAAChBAAgwwKAAAAAAcQCgAAAAAHFAgEAAAABxgIBAAAAAccCAACiBAAgyAIBAAAAAckCAACjBAAgygIBAAAAAcsCgAAAAAEBDAAA6AEAICL8AQEAAAABgwJAAAAAAYQCQAAAAAGFAkAAAAABnAIBAAAAAakCQAAAAAGqAkAAAAABrAIBAAAAAa0CAQAAAAGzAgEAAAABtAIBAAAAAbUCAACdBAAgtgKAAAAAAbcCAACeBAAguAKAAAAAAbkCAQAAAAG6AgAAnwQAILsCAQAAAAG8AoAAAAABvQIBAAAAAb4CAACgBAAgvwKAAAAAAcACAQAAAAHBAgEAAAABwgIAAKEEACDDAoAAAAABxAKAAAAAAcUCAQAAAAHGAgEAAAABxwIAAKIEACDIAgEAAAAByQIAAKMEACDKAgEAAAABywKAAAAAAQEMAADqAQAwAQwAAOoBADABAAAA3QEAICaVAQAAjQQAIJYBAACOBAAglwEAAI8EACCYAQAAkAQAIPwBAQDWAwAhgwJAANcDACGEAkAA1wMAIYUCQADXAwAhnAIBANYDACGpAkAA-gMAIaoCQAD6AwAhrAIBANYDACGtAgEA1gMAIbMCAQDWAwAhtAIBANkDACG1AgAAhgQAILYCgAAAAAG3AgAAhwQAILgCgAAAAAG5AgEA2QMAIboCAACIBAAguwIBANkDACG8AoAAAAABvQIBANkDACG-AgAAiQQAIL8CgAAAAAHAAgEA2QMAIcECAQDZAwAhwgIAAIoEACDDAoAAAAABxAKAAAAAAcUCAQDZAwAhxgIBANkDACHHAgAAiwQAIMgCAQDZAwAhyQIAAIwEACDKAgEA2QMAIcsCgAAAAAECAAAA0QEAIAwAAO4BACAi_AEBANYDACGDAkAA1wMAIYQCQADXAwAhhQJAANcDACGcAgEA1gMAIakCQAD6AwAhqgJAAPoDACGsAgEA1gMAIa0CAQDWAwAhswIBANYDACG0AgEA2QMAIbUCAACGBAAgtgKAAAAAAbcCAACHBAAguAKAAAAAAbkCAQDZAwAhugIAAIgEACC7AgEA2QMAIbwCgAAAAAG9AgEA2QMAIb4CAACJBAAgvwKAAAAAAcACAQDZAwAhwQIBANkDACHCAgAAigQAIMMCgAAAAAHEAoAAAAABxQIBANkDACHGAgEA2QMAIccCAACLBAAgyAIBANkDACHJAgAAjAQAIMoCAQDZAwAhywKAAAAAAQIAAADdAQAgDAAA8AEAIAIAAADdAQAgDAAA8AEAIAEAAADdAQAgAwAAANEBACATAADoAQAgFAAA7gEAIAEAAADRAQAgAQAAAN0BACAXBgAAgwQAIBkAAIUEACAaAACEBAAggwIAANADACCEAgAA0AMAIIUCAADQAwAgtAIAANADACC2AgAA0AMAILgCAADQAwAguQIAANADACC7AgAA0AMAILwCAADQAwAgvQIAANADACC_AgAA0AMAIMACAADQAwAgwQIAANADACDDAgAA0AMAIMQCAADQAwAgxQIAANADACDGAgAA0AMAIMgCAADQAwAgygIAANADACDLAgAA0AMAICX5AQAAogMAMPoBAAD4AQAQ-wEAAKIDADD8AQEA9AIAIYMCQAD1AgAhhAJAAPUCACGFAkAA9QIAIZwCAQD0AgAhqQJAAI8DACGqAkAAjwMAIawCAQD0AgAhrQIBAPQCACGzAgEA9AIAIbQCAQD3AgAhtQIAAPYCACC2AgAA-QIAILcCAAD2AgAguAIAAPkCACC5AgEA9wIAIboCAAD2AgAguwIBAPcCACG8AgAA-QIAIL0CAQD3AgAhvgIAAPYCACC_AgAA-QIAIMACAQD3AgAhwQIBAPcCACHCAgAA9gIAIMMCAAD5AgAgxAIAAPkCACDFAgEA9wIAIcYCAQD3AgAhxwIAAPYCACDIAgEA9wIAIckCAAD2AgAgygIBAPcCACHLAgAA-QIAIAMAAADdAQAgAQAA9wEAMBgAAPgBACADAAAA3QEAIAEAAN8BADACAADRAQAgAQAAANsBACABAAAA2wEAIAMAAADZAQAgAQAA2gEAMAIAANsBACADAAAA2QEAIAEAANoBADACAADbAQAgAwAAANkBACABAADaAQAwAgAA2wEAIAmUAQAAggQAIPwBAQAAAAH-AQEAAAABqQJAAAAAAaoCQAAAAAGvAgEAAAABsAIBAAAAAbECAQAAAAGyAkAAAAABAQwAAIACACAI_AEBAAAAAf4BAQAAAAGpAkAAAAABqgJAAAAAAa8CAQAAAAGwAgEAAAABsQIBAAAAAbICQAAAAAEBDAAAggIAMAEMAACCAgAwCZQBAACBBAAg_AEBANYDACH-AQEA1gMAIakCQAD6AwAhqgJAAPoDACGvAgEA1gMAIbACAQDWAwAhsQIBANYDACGyAkAA1wMAIQIAAADbAQAgDAAAhQIAIAj8AQEA1gMAIf4BAQDWAwAhqQJAAPoDACGqAkAA-gMAIa8CAQDWAwAhsAIBANYDACGxAgEA1gMAIbICQADXAwAhAgAAANkBACAMAACHAgAgAgAAANkBACAMAACHAgAgAwAAANsBACATAACAAgAgFAAAhQIAIAEAAADbAQAgAQAAANkBACAEBgAA_gMAIBkAAIAEACAaAAD_AwAgsgIAANADACAL-QEAAKEDADD6AQAAjgIAEPsBAAChAwAw_AEBAPQCACH-AQEA9AIAIakCQACPAwAhqgJAAI8DACGvAgEA9AIAIbACAQD0AgAhsQIBAPQCACGyAkAA9QIAIQMAAADZAQAgAQAAjQIAMBgAAI4CACADAAAA2QEAIAEAANoBADACAADbAQAgCvkBAACfAwAw-gEAAJQCABD7AQAAnwMAMPwBAQAAAAGpAkAAmwMAIaoCQACbAwAhqwIBAAAAAawCAQCJAwAhrQIBAIkDACGuAgAAoAMAIAEAAACRAgAgAQAAAJECACAK-QEAAJ8DADD6AQAAlAIAEPsBAACfAwAw_AEBAIkDACGpAkAAmwMAIaoCQACbAwAhqwIBAIkDACGsAgEAiQMAIa0CAQCJAwAhrgIAAKADACAAAwAAAJQCACABAACVAgAwAgAAkQIAIAMAAACUAgAgAQAAlQIAMAIAAJECACADAAAAlAIAIAEAAJUCADACAACRAgAgB_wBAQAAAAGpAkAAAAABqgJAAAAAAasCAQAAAAGsAgEAAAABrQIBAAAAAa4CgAAAAAEBDAAAmQIAIAf8AQEAAAABqQJAAAAAAaoCQAAAAAGrAgEAAAABrAIBAAAAAa0CAQAAAAGuAoAAAAABAQwAAJsCADABDAAAmwIAMAf8AQEA1gMAIakCQAD6AwAhqgJAAPoDACGrAgEA1gMAIawCAQDWAwAhrQIBANYDACGuAoAAAAABAgAAAJECACAMAACeAgAgB_wBAQDWAwAhqQJAAPoDACGqAkAA-gMAIasCAQDWAwAhrAIBANYDACGtAgEA1gMAIa4CgAAAAAECAAAAlAIAIAwAAKACACACAAAAlAIAIAwAAKACACADAAAAkQIAIBMAAJkCACAUAACeAgAgAQAAAJECACABAAAAlAIAIAMGAAD7AwAgGQAA_QMAIBoAAPwDACAK-QEAAJwDADD6AQAApwIAEPsBAACcAwAw_AEBAPQCACGpAkAAjwMAIaoCQACPAwAhqwIBAPQCACGsAgEA9AIAIa0CAQD0AgAhrgIAAJ0DACADAAAAlAIAIAEAAKYCADAYAACnAgAgAwAAAJQCACABAACVAgAwAgAAkQIAIA75AQAAlgMAMPoBAACtAgAQ-wEAAJYDADD8AQEAAAABoAIBAAAAAaICAACXA6ICIqMCAAGYAwAhpAIBAIkDACGlAgEAiQMAIaYCAgCZAwAhpwICAJoDACGoAgIAmgMAIakCQACbAwAhqgJAAJsDACEBAAAAqgIAIAEAAACqAgAgDvkBAACWAwAw-gEAAK0CABD7AQAAlgMAMPwBAQCJAwAhoAIBAIkDACGiAgAAlwOiAiKjAgABmAMAIaQCAQCJAwAhpQIBAIkDACGmAgIAmQMAIacCAgCaAwAhqAICAJoDACGpAkAAmwMAIaoCQACbAwAhAqcCAADQAwAgqAIAANADACADAAAArQIAIAEAAK4CADACAACqAgAgAwAAAK0CACABAACuAgAwAgAAqgIAIAMAAACtAgAgAQAArgIAMAIAAKoCACAL_AEBAAAAAaACAQAAAAGiAgAAAKICAqMCAAEAAAGkAgEAAAABpQIBAAAAAaYCAgAAAAGnAgIAAAABqAICAAAAAakCQAAAAAGqAkAAAAABAQwAALICACAL_AEBAAAAAaACAQAAAAGiAgAAAKICAqMCAAEAAAGkAgEAAAABpQIBAAAAAaYCAgAAAAGnAgIAAAABqAICAAAAAakCQAAAAAGqAkAAAAABAQwAALQCADABDAAAtAIAMAv8AQEA1gMAIaACAQDWAwAhogIAAPgDogIiowIAAfkDACGkAgEA1gMAIaUCAQDWAwAhpgICANsDACGnAgIA2gMAIagCAgDaAwAhqQJAAPoDACGqAkAA-gMAIQIAAACqAgAgDAAAtwIAIAv8AQEA1gMAIaACAQDWAwAhogIAAPgDogIiowIAAfkDACGkAgEA1gMAIaUCAQDWAwAhpgICANsDACGnAgIA2gMAIagCAgDaAwAhqQJAAPoDACGqAkAA-gMAIQIAAACtAgAgDAAAuQIAIAIAAACtAgAgDAAAuQIAIAMAAACqAgAgEwAAsgIAIBQAALcCACABAAAAqgIAIAEAAACtAgAgBwYAAPMDACAZAAD2AwAgGgAA9QMAIH4AAPQDACB_AAD3AwAgpwIAANADACCoAgAA0AMAIA75AQAAjAMAMPoBAADAAgAQ-wEAAIwDADD8AQEA9AIAIaACAQD0AgAhogIAAI0DogIiowIAAY4DACGkAgEA9AIAIaUCAQD0AgAhpgICAPMCACGnAgIA-AIAIagCAgD4AgAhqQJAAI8DACGqAkAAjwMAIQMAAACtAgAgAQAAvwIAMBgAAMACACADAAAArQIAIAEAAK4CADACAACqAgAgBpIBAACLAwAg-QEAAIgDADD6AQAAxgIAEPsBAACIAwAwggIBAIoDACGcAgEAAAABAQAAAMMCACABAAAAwwIAIAaSAQAAiwMAIPkBAACIAwAw-gEAAMYCABD7AQAAiAMAMIICAQCKAwAhnAIBAIkDACECkgEAAPIDACCCAgAA0AMAIAMAAADGAgAgAQAAxwIAMAIAAMMCACADAAAAxgIAIAEAAMcCADACAADDAgAgAwAAAMYCACABAADHAgAwAgAAwwIAIAOSAQAA8QMAIIICAQAAAAGcAgEAAAABAQwAAMsCACACggIBAAAAAZwCAQAAAAEBDAAAzQIAMAEMAADNAgAwA5IBAADkAwAgggIBANkDACGcAgEA1gMAIQIAAADDAgAgDAAA0AIAIAKCAgEA2QMAIZwCAQDWAwAhAgAAAMYCACAMAADSAgAgAgAAAMYCACAMAADSAgAgAwAAAMMCACATAADLAgAgFAAA0AIAIAEAAADDAgAgAQAAAMYCACAEBgAA4QMAIBkAAOMDACAaAADiAwAgggIAANADACAF-QEAAIcDADD6AQAA2QIAEPsBAACHAwAwggIBAPcCACGcAgEA9AIAIQMAAADGAgAgAQAA2AIAMBgAANkCACADAAAAxgIAIAEAAMcCADACAADDAgAgAQAAANUBACABAAAA1QEAIAMAAADTAQAgAQAA1AEAMAIAANUBACADAAAA0wEAIAEAANQBADACAADVAQAgAwAAANMBACABAADUAQAwAgAA1QEAIA6TAQAA3wMAIJQBAADgAwAg_AECAAAAAf0BAQAAAAH-AQEAAAAB_wEBAAAAAYACQAAAAAGBAgAA3gMAIIICAQAAAAGDAkAAAAABhAJAAAAAAYUCQAAAAAGGAgIAAAABhwKAAAAAAQEMAADhAgAgDPwBAgAAAAH9AQEAAAAB_gEBAAAAAf8BAQAAAAGAAkAAAAABgQIAAN4DACCCAgEAAAABgwJAAAAAAYQCQAAAAAGFAkAAAAABhgICAAAAAYcCgAAAAAEBDAAA4wIAMAEMAADjAgAwDpMBAADcAwAglAEAAN0DACD8AQIA2wMAIf0BAQDWAwAh_gEBANYDACH_AQEA1gMAIYACQADXAwAhgQIAANgDACCCAgEA2QMAIYMCQADXAwAhhAJAANcDACGFAkAA1wMAIYYCAgDaAwAhhwKAAAAAAQIAAADVAQAgDAAA5gIAIAz8AQIA2wMAIf0BAQDWAwAh_gEBANYDACH_AQEA1gMAIYACQADXAwAhgQIAANgDACCCAgEA2QMAIYMCQADXAwAhhAJAANcDACGFAkAA1wMAIYYCAgDaAwAhhwKAAAAAAQIAAADTAQAgDAAA6AIAIAIAAADTAQAgDAAA6AIAIAMAAADVAQAgEwAA4QIAIBQAAOYCACABAAAA1QEAIAEAAADTAQAgDAYAANEDACAZAADUAwAgGgAA0wMAIH4AANIDACB_AADVAwAggAIAANADACCCAgAA0AMAIIMCAADQAwAghAIAANADACCFAgAA0AMAIIYCAADQAwAghwIAANADACAP-QEAAPICADD6AQAA7wIAEPsBAADyAgAw_AECAPMCACH9AQEA9AIAIf4BAQD0AgAh_wEBAPQCACGAAkAA9QIAIYECAAD2AgAgggIBAPcCACGDAkAA9QIAIYQCQAD1AgAhhQJAAPUCACGGAgIA-AIAIYcCAAD5AgAgAwAAANMBACABAADuAgAwGAAA7wIAIAMAAADTAQAgAQAA1AEAMAIAANUBACAP-QEAAPICADD6AQAA7wIAEPsBAADyAgAw_AECAPMCACH9AQEA9AIAIf4BAQD0AgAh_wEBAPQCACGAAkAA9QIAIYECAAD2AgAgggIBAPcCACGDAkAA9QIAIYQCQAD1AgAhhQJAAPUCACGGAgIA-AIAIYcCAAD5AgAgDQYAAIMDACAZAACDAwAgGgAAgwMAIH4AAIYDACB_AACDAwAgiAICAAAAAY8CAgAAAAGQAgIAAAABkQICAAAAAZICAgAAAAGTAgIAhQMAIZQCAgAAAASVAgIAAAAEDgYAAIMDACAZAACEAwAgGgAAhAMAIIgCAQAAAAGPAgEAAAABkAIBAAAAAZECAQAAAAGSAgEAAAABkwIBAIIDACGUAgEAAAAElQIBAAAABJYCAQAAAAGXAgEAAAABmAIBAAAAAQsGAAD6AgAgGQAAgQMAIBoAAIEDACCIAkAAAAABjwJAAAAAAZACQAAAAAGRAkAAAAABkgJAAAAAAZMCQACAAwAhlAJAAAAABZUCQAAAAAUEiAIBAAAABZkCAQAAAAGaAgEAAAAEmwIBAAAABA4GAAD6AgAgGQAA_wIAIBoAAP8CACCIAgEAAAABjwIBAAAAAZACAQAAAAGRAgEAAAABkgIBAAAAAZMCAQD-AgAhlAIBAAAABZUCAQAAAAWWAgEAAAABlwIBAAAAAZgCAQAAAAENBgAA-gIAIBkAAPoCACAaAAD6AgAgfgAA_QIAIH8AAPoCACCIAgIAAAABjwICAAAAAZACAgAAAAGRAgIAAAABkgICAAAAAZMCAgD8AgAhlAICAAAABZUCAgAAAAUPBgAA-gIAIBkAAPsCACAaAAD7AgAgiAKAAAAAAYkCAQAAAAGKAgEAAAABiwIBAAAAAYwCgAAAAAGNAoAAAAABjgKAAAAAAY8CgAAAAAGQAoAAAAABkQKAAAAAAZICgAAAAAGTAoAAAAABCIgCAgAAAAGPAgIAAAABkAICAAAAAZECAgAAAAGSAgIAAAABkwICAPoCACGUAgIAAAAFlQICAAAABQyIAoAAAAABiQIBAAAAAYoCAQAAAAGLAgEAAAABjAKAAAAAAY0CgAAAAAGOAoAAAAABjwKAAAAAAZACgAAAAAGRAoAAAAABkgKAAAAAAZMCgAAAAAENBgAA-gIAIBkAAPoCACAaAAD6AgAgfgAA_QIAIH8AAPoCACCIAgIAAAABjwICAAAAAZACAgAAAAGRAgIAAAABkgICAAAAAZMCAgD8AgAhlAICAAAABZUCAgAAAAUIiAIIAAAAAY8CCAAAAAGQAggAAAABkQIIAAAAAZICCAAAAAGTAggA_QIAIZQCCAAAAAWVAggAAAAFDgYAAPoCACAZAAD_AgAgGgAA_wIAIIgCAQAAAAGPAgEAAAABkAIBAAAAAZECAQAAAAGSAgEAAAABkwIBAP4CACGUAgEAAAAFlQIBAAAABZYCAQAAAAGXAgEAAAABmAIBAAAAAQuIAgEAAAABjwIBAAAAAZACAQAAAAGRAgEAAAABkgIBAAAAAZMCAQD_AgAhlAIBAAAABZUCAQAAAAWWAgEAAAABlwIBAAAAAZgCAQAAAAELBgAA-gIAIBkAAIEDACAaAACBAwAgiAJAAAAAAY8CQAAAAAGQAkAAAAABkQJAAAAAAZICQAAAAAGTAkAAgAMAIZQCQAAAAAWVAkAAAAAFCIgCQAAAAAGPAkAAAAABkAJAAAAAAZECQAAAAAGSAkAAAAABkwJAAIEDACGUAkAAAAAFlQJAAAAABQ4GAACDAwAgGQAAhAMAIBoAAIQDACCIAgEAAAABjwIBAAAAAZACAQAAAAGRAgEAAAABkgIBAAAAAZMCAQCCAwAhlAIBAAAABJUCAQAAAASWAgEAAAABlwIBAAAAAZgCAQAAAAEIiAICAAAAAY8CAgAAAAGQAgIAAAABkQICAAAAAZICAgAAAAGTAgIAgwMAIZQCAgAAAASVAgIAAAAEC4gCAQAAAAGPAgEAAAABkAIBAAAAAZECAQAAAAGSAgEAAAABkwIBAIQDACGUAgEAAAAElQIBAAAABJYCAQAAAAGXAgEAAAABmAIBAAAAAQ0GAACDAwAgGQAAgwMAIBoAAIMDACB-AACGAwAgfwAAgwMAIIgCAgAAAAGPAgIAAAABkAICAAAAAZECAgAAAAGSAgIAAAABkwICAIUDACGUAgIAAAAElQICAAAABAiIAggAAAABjwIIAAAAAZACCAAAAAGRAggAAAABkgIIAAAAAZMCCACGAwAhlAIIAAAABJUCCAAAAAQF-QEAAIcDADD6AQAA2QIAEPsBAACHAwAwggIBAPcCACGcAgEA9AIAIQaSAQAAiwMAIPkBAACIAwAw-gEAAMYCABD7AQAAiAMAMIICAQCKAwAhnAIBAIkDACELiAIBAAAAAY8CAQAAAAGQAgEAAAABkQIBAAAAAZICAQAAAAGTAgEAhAMAIZQCAQAAAASVAgEAAAAElgIBAAAAAZcCAQAAAAGYAgEAAAABC4gCAQAAAAGPAgEAAAABkAIBAAAAAZECAQAAAAGSAgEAAAABkwIBAP8CACGUAgEAAAAFlQIBAAAABZYCAQAAAAGXAgEAAAABmAIBAAAAAQOdAgAA0wEAIJ4CAADTAQAgnwIAANMBACAO-QEAAIwDADD6AQAAwAIAEPsBAACMAwAw_AEBAPQCACGgAgEA9AIAIaICAACNA6ICIqMCAAGOAwAhpAIBAPQCACGlAgEA9AIAIaYCAgDzAgAhpwICAPgCACGoAgIA-AIAIakCQACPAwAhqgJAAI8DACEHBgAAgwMAIBkAAJUDACAaAACVAwAgiAIAAACiAgKTAgAAlAOiAiKUAgAAAKICCJUCAAAAogIIBwYAAIMDACAZAACTAwAgGgAAkwMAIIgCAAEAAAGTAgABkgMAIZQCAAEAAASVAgABAAAECwYAAIMDACAZAACRAwAgGgAAkQMAIIgCQAAAAAGPAkAAAAABkAJAAAAAAZECQAAAAAGSAkAAAAABkwJAAJADACGUAkAAAAAElQJAAAAABAsGAACDAwAgGQAAkQMAIBoAAJEDACCIAkAAAAABjwJAAAAAAZACQAAAAAGRAkAAAAABkgJAAAAAAZMCQACQAwAhlAJAAAAABJUCQAAAAAQIiAJAAAAAAY8CQAAAAAGQAkAAAAABkQJAAAAAAZICQAAAAAGTAkAAkQMAIZQCQAAAAASVAkAAAAAEBwYAAIMDACAZAACTAwAgGgAAkwMAIIgCAAEAAAGTAgABkgMAIZQCAAEAAASVAgABAAAEBIgCAAEAAAGTAgABkwMAIZQCAAEAAASVAgABAAAEBwYAAIMDACAZAACVAwAgGgAAlQMAIIgCAAAAogICkwIAAJQDogIilAIAAACiAgiVAgAAAKICCASIAgAAAKICApMCAACVA6ICIpQCAAAAogIIlQIAAACiAggO-QEAAJYDADD6AQAArQIAEPsBAACWAwAw_AEBAIkDACGgAgEAiQMAIaICAACXA6ICIqMCAAGYAwAhpAIBAIkDACGlAgEAiQMAIaYCAgCZAwAhpwICAJoDACGoAgIAmgMAIakCQACbAwAhqgJAAJsDACEEiAIAAACiAgKTAgAAlQOiAiKUAgAAAKICCJUCAAAAogIIBIgCAAEAAAGTAgABkwMAIZQCAAEAAASVAgABAAAECIgCAgAAAAGPAgIAAAABkAICAAAAAZECAgAAAAGSAgIAAAABkwICAIMDACGUAgIAAAAElQICAAAABAiIAgIAAAABjwICAAAAAZACAgAAAAGRAgIAAAABkgICAAAAAZMCAgD6AgAhlAICAAAABZUCAgAAAAUIiAJAAAAAAY8CQAAAAAGQAkAAAAABkQJAAAAAAZICQAAAAAGTAkAAkQMAIZQCQAAAAASVAkAAAAAECvkBAACcAwAw-gEAAKcCABD7AQAAnAMAMPwBAQD0AgAhqQJAAI8DACGqAkAAjwMAIasCAQD0AgAhrAIBAPQCACGtAgEA9AIAIa4CAACdAwAgDwYAAIMDACAZAACeAwAgGgAAngMAIIgCgAAAAAGJAgEAAAABigIBAAAAAYsCAQAAAAGMAoAAAAABjQKAAAAAAY4CgAAAAAGPAoAAAAABkAKAAAAAAZECgAAAAAGSAoAAAAABkwKAAAAAAQyIAoAAAAABiQIBAAAAAYoCAQAAAAGLAgEAAAABjAKAAAAAAY0CgAAAAAGOAoAAAAABjwKAAAAAAZACgAAAAAGRAoAAAAABkgKAAAAAAZMCgAAAAAEK-QEAAJ8DADD6AQAAlAIAEPsBAACfAwAw_AEBAIkDACGpAkAAmwMAIaoCQACbAwAhqwIBAIkDACGsAgEAiQMAIa0CAQCJAwAhrgIAAKADACAMiAKAAAAAAYkCAQAAAAGKAgEAAAABiwIBAAAAAYwCgAAAAAGNAoAAAAABjgKAAAAAAY8CgAAAAAGQAoAAAAABkQKAAAAAAZICgAAAAAGTAoAAAAABC_kBAAChAwAw-gEAAI4CABD7AQAAoQMAMPwBAQD0AgAh_gEBAPQCACGpAkAAjwMAIaoCQACPAwAhrwIBAPQCACGwAgEA9AIAIbECAQD0AgAhsgJAAPUCACEl-QEAAKIDADD6AQAA-AEAEPsBAACiAwAw_AEBAPQCACGDAkAA9QIAIYQCQAD1AgAhhQJAAPUCACGcAgEA9AIAIakCQACPAwAhqgJAAI8DACGsAgEA9AIAIa0CAQD0AgAhswIBAPQCACG0AgEA9wIAIbUCAAD2AgAgtgIAAPkCACC3AgAA9gIAILgCAAD5AgAguQIBAPcCACG6AgAA9gIAILsCAQD3AgAhvAIAAPkCACC9AgEA9wIAIb4CAAD2AgAgvwIAAPkCACDAAgEA9wIAIcECAQD3AgAhwgIAAPYCACDDAgAA-QIAIMQCAAD5AgAgxQIBAPcCACHGAgEA9wIAIccCAAD2AgAgyAIBAPcCACHJAgAA9gIAIMoCAQD3AgAhywIAAPkCACAplQEAAIsDACCWAQAApgMAIJcBAACnAwAgmAEAAKgDACD5AQAAowMAMPoBAADdAQAQ-wEAAKMDADD8AQEAiQMAIYMCQAClAwAhhAJAAKUDACGFAkAApQMAIZwCAQCJAwAhqQJAAJsDACGqAkAAmwMAIawCAQCJAwAhrQIBAIkDACGzAgEAiQMAIbQCAQCKAwAhtQIAAPYCACC2AgAApAMAILcCAAD2AgAguAIAAKQDACC5AgEAigMAIboCAAD2AgAguwIBAIoDACG8AgAApAMAIL0CAQCKAwAhvgIAAPYCACC_AgAApAMAIMACAQCKAwAhwQIBAIoDACHCAgAA9gIAIMMCAACkAwAgxAIAAKQDACDFAgEAigMAIcYCAQCKAwAhxwIAAPYCACDIAgEAigMAIckCAAD2AgAgygIBAIoDACHLAgAApAMAIAyIAoAAAAABiQIBAAAAAYoCAQAAAAGLAgEAAAABjAKAAAAAAY0CgAAAAAGOAoAAAAABjwKAAAAAAZACgAAAAAGRAoAAAAABkgKAAAAAAZMCgAAAAAEIiAJAAAAAAY8CQAAAAAGQAkAAAAABkQJAAAAAAZICQAAAAAGTAkAAgQMAIZQCQAAAAAWVAkAAAAAFA50CAADZAQAgngIAANkBACCfAgAA2QEAICuVAQAAiwMAIJYBAACmAwAglwEAAKcDACCYAQAAqAMAIPkBAACjAwAw-gEAAN0BABD7AQAAowMAMPwBAQCJAwAhgwJAAKUDACGEAkAApQMAIYUCQAClAwAhnAIBAIkDACGpAkAAmwMAIaoCQACbAwAhrAIBAIkDACGtAgEAiQMAIbMCAQCJAwAhtAIBAIoDACG1AgAA9gIAILYCAACkAwAgtwIAAPYCACC4AgAApAMAILkCAQCKAwAhugIAAPYCACC7AgEAigMAIbwCAACkAwAgvQIBAIoDACG-AgAA9gIAIL8CAACkAwAgwAIBAIoDACHBAgEAigMAIcICAAD2AgAgwwIAAKQDACDEAgAApAMAIMUCAQCKAwAhxgIBAIoDACHHAgAA9gIAIMgCAQCKAwAhyQIAAPYCACDKAgEAigMAIcsCAACkAwAg7AIAAN0BACDtAgAA3QEAIAOdAgAA3QEAIJ4CAADdAQAgnwIAAN0BACAMlAEAAKoDACD5AQAAqQMAMPoBAADZAQAQ-wEAAKkDADD8AQEAiQMAIf4BAQCJAwAhqQJAAJsDACGqAkAAmwMAIa8CAQCJAwAhsAIBAIkDACGxAgEAiQMAIbICQAClAwAhK5UBAACLAwAglgEAAKYDACCXAQAApwMAIJgBAACoAwAg-QEAAKMDADD6AQAA3QEAEPsBAACjAwAw_AEBAIkDACGDAkAApQMAIYQCQAClAwAhhQJAAKUDACGcAgEAiQMAIakCQACbAwAhqgJAAJsDACGsAgEAiQMAIa0CAQCJAwAhswIBAIkDACG0AgEAigMAIbUCAAD2AgAgtgIAAKQDACC3AgAA9gIAILgCAACkAwAguQIBAIoDACG6AgAA9gIAILsCAQCKAwAhvAIAAKQDACC9AgEAigMAIb4CAAD2AgAgvwIAAKQDACDAAgEAigMAIcECAQCKAwAhwgIAAPYCACDDAgAApAMAIMQCAACkAwAgxQIBAIoDACHGAgEAigMAIccCAAD2AgAgyAIBAIoDACHJAgAA9gIAIMoCAQCKAwAhywIAAKQDACDsAgAA3QEAIO0CAADdAQAgAv4BAQAAAAH_AQEAAAABEZMBAACtAwAglAEAAKoDACD5AQAArAMAMPoBAADTAQAQ-wEAAKwDADD8AQIAmQMAIf0BAQCJAwAh_gEBAIkDACH_AQEAiQMAIYACQAClAwAhgQIAAPYCACCCAgEAigMAIYMCQAClAwAhhAJAAKUDACGFAkAApQMAIYYCAgCaAwAhhwIAAKQDACAIkgEAAIsDACD5AQAAiAMAMPoBAADGAgAQ-wEAAIgDADCCAgEAigMAIZwCAQCJAwAh7AIAAMYCACDtAgAAxgIAIAr5AQAArgMAMPoBAADOAQAQ-wEAAK4DADCcAgEA9AIAIakCQACPAwAhqgJAAI8DACGsAgEA9AIAIbMCAACvA84CIs4CAAD5AgAgzwIAAPYCACAHBgAAgwMAIBkAALEDACAaAACxAwAgiAIAAADOAgKTAgAAsAPOAiKUAgAAAM4CCJUCAAAAzgIIBwYAAIMDACAZAACxAwAgGgAAsQMAIIgCAAAAzgICkwIAALADzgIilAIAAADOAgiVAgAAAM4CCASIAgAAAM4CApMCAACxA84CIpQCAAAAzgIIlQIAAADOAggK-QEAALIDADD6AQAAuwEAEPsBAACyAwAwnAIBAIkDACGpAkAAmwMAIaoCQACbAwAhrAIBAIkDACGzAgAAswPOAiLOAgAApAMAIM8CAAD2AgAgBIgCAAAAzgICkwIAALEDzgIilAIAAADOAgiVAgAAAM4CCAKsAgEAAAABswIAAADOAgIG-QEAALUDADD6AQAAtQEAEPsBAAC1AwAw_AECAPMCACHRAgEA9AIAIdICAQD0AgAhCPkBAAC2AwAw-gEAAJ8BABD7AQAAtgMAMJwCAQD0AgAhqQJAAI8DACGqAkAAjwMAIawCAQD3AgAh0wIBAPcCACEJTQAAuAMAIPkBAAC3AwAw-gEAAIwBABD7AQAAtwMAMJwCAQCJAwAhqQJAAJsDACGqAkAAmwMAIawCAQCKAwAh0wIBAIoDACEDnQIAAGsAIJ4CAABrACCfAgAAawAgCfkBAAC5AwAw-gEAAIYBABD7AQAAuQMAMJwCAQD0AgAhqQJAAI8DACGqAkAAjwMAIdMCAQD3AgAh1AIBAPQCACHVAgEA9AIAIQpNAAC4AwAg-QEAALoDADD6AQAAcwAQ-wEAALoDADCcAgEAiQMAIakCQACbAwAhqgJAAJsDACHTAgEAigMAIdQCAQCJAwAh1QIBAIkDACEC0QIBAAAAAdICAQAAAAEITgAAvQMAIE8AAL4DACD5AQAAvAMAMPoBAABrABD7AQAAvAMAMPwBAgCZAwAh0QIBAIkDACHSAgEAiQMAIQtNAAC4AwAg-QEAALcDADD6AQAAjAEAEPsBAAC3AwAwnAIBAIkDACGpAkAAmwMAIaoCQACbAwAhrAIBAIoDACHTAgEAigMAIewCAACMAQAg7QIAAIwBACAMTQAAuAMAIPkBAAC6AwAw-gEAAHMAEPsBAAC6AwAwnAIBAIkDACGpAkAAmwMAIaoCQACbAwAh0wIBAIoDACHUAgEAiQMAIdUCAQCJAwAh7AIAAHMAIO0CAABzACAJ-QEAAL8DADD6AQAAZgAQ-wEAAL8DADD8AQEA9AIAIakCQACPAwAhqgJAAI8DACHXAgEA9AIAIdgCAQD0AgAh2QJAAI8DACEJ-QEAAMADADD6AQAAUwAQ-wEAAMADADD8AQEAiQMAIakCQACbAwAhqgJAAJsDACHXAgEAiQMAIdgCAQCJAwAh2QJAAJsDACEC1wIBAAAAAdgCAQAAAAEQ-QEAAMIDADD6AQAATQAQ-wEAAMIDADD8AQEA9AIAIakCQACPAwAhqgJAAI8DACHbAgEA9AIAIdwCAQD0AgAh3QIBAPQCACHeAgEA9wIAId8CAQD3AgAh4AJAAPUCACHhAkAA9QIAIeICAQD3AgAh4wIBAPcCACHkAgEA9wIAIQv5AQAAwwMAMPoBAAA3ABD7AQAAwwMAMPwBAQD0AgAhqQJAAI8DACGqAkAAjwMAIdkCQACPAwAh2wIBAPQCACHlAgEA9AIAIeYCAQD3AgAh5wIBAPcCACEL-QEAAMQDADD6AQAAIQAQ-wEAAMQDADD8AQEA9AIAIaACAQD3AgAhqQJAAI8DACGqAkAAjwMAIdMCAQD3AgAh6AIgAMUDACHpAgEA9wIAIeoCAQD0AgAhBQYAAIMDACAZAADHAwAgGgAAxwMAIIgCIAAAAAGTAiAAxgMAIQUGAACDAwAgGQAAxwMAIBoAAMcDACCIAiAAAAABkwIgAMYDACECiAIgAAAAAZMCIADHAwAhDQQAAMoDACAFAADLAwAg-QEAAMgDADD6AQAADgAQ-wEAAMgDADD8AQEAiQMAIaACAQCKAwAhqQJAAJsDACGqAkAAmwMAIdMCAQCKAwAh6AIgAMkDACHpAgEAigMAIeoCAQCJAwAhAogCIAAAAAGTAiAAxwMAIQOdAgAAAwAgngIAAAMAIJ8CAAADACADnQIAAAcAIJ4CAAAHACCfAgAABwAgDAMAAM0DACD5AQAAzAMAMPoBAAAHABD7AQAAzAMAMPwBAQCJAwAhqQJAAJsDACGqAkAAmwMAIdkCQACbAwAh2wIBAIkDACHlAgEAiQMAIeYCAQCKAwAh5wIBAIoDACEPBAAAygMAIAUAAMsDACD5AQAAyAMAMPoBAAAOABD7AQAAyAMAMPwBAQCJAwAhoAIBAIoDACGpAkAAmwMAIaoCQACbAwAh0wIBAIoDACHoAiAAyQMAIekCAQCKAwAh6gIBAIkDACHsAgAADgAg7QIAAA4AIALcAgEAAAAB3QIBAAAAAREDAADNAwAg-QEAAM8DADD6AQAAAwAQ-wEAAM8DADD8AQEAiQMAIakCQACbAwAhqgJAAJsDACHbAgEAiQMAIdwCAQCJAwAh3QIBAIkDACHeAgEAigMAId8CAQCKAwAh4AJAAKUDACHhAkAApQMAIeICAQCKAwAh4wIBAIoDACHkAgEAigMAIQAAAAAAAAHxAgEAAAABAfECQAAAAAEC8QIBAAAABPcCAQAAAAUB8QIBAAAAAQXxAgIAAAAB-AICAAAAAfkCAgAAAAH6AgIAAAAB-wICAAAAAQXxAgIAAAAB-AICAAAAAfkCAgAAAAH6AgIAAAAB-wICAAAAAQUTAADKBQAgFAAA0AUAIO4CAADLBQAg7wIAAM8FACD0AgAAwwIAIAUTAADIBQAgFAAAzQUAIO4CAADJBQAg7wIAAMwFACD0AgAA0QEAIAHxAgEAAAAEAxMAAMoFACDuAgAAywUAIPQCAADDAgAgAxMAAMgFACDuAgAAyQUAIPQCAADRAQAgAAAACxMAAOUDADAUAADqAwAw7gIAAOYDADDvAgAA5wMAMPACAADoAwAg8QIAAOkDADDyAgAA6QMAMPMCAADpAwAw9AIAAOkDADD1AgAA6wMAMPYCAADsAwAwDJQBAADgAwAg_AECAAAAAf4BAQAAAAH_AQEAAAABgAJAAAAAAYECAADeAwAgggIBAAAAAYMCQAAAAAGEAkAAAAABhQJAAAAAAYYCAgAAAAGHAoAAAAABAgAAANUBACATAADwAwAgAwAAANUBACATAADwAwAgFAAA7wMAIAEMAADHBQAwEpMBAACtAwAglAEAAKoDACD5AQAArAMAMPoBAADTAQAQ-wEAAKwDADD8AQIAAAAB_QEBAIkDACH-AQEAiQMAIf8BAQCJAwAhgAJAAKUDACGBAgAA9gIAIIICAQCKAwAhgwJAAKUDACGEAkAApQMAIYUCQAClAwAhhgICAJoDACGHAgAApAMAIMwCAACrAwAgAgAAANUBACAMAADvAwAgAgAAAO0DACAMAADuAwAgD_kBAADsAwAw-gEAAO0DABD7AQAA7AMAMPwBAgCZAwAh_QEBAIkDACH-AQEAiQMAIf8BAQCJAwAhgAJAAKUDACGBAgAA9gIAIIICAQCKAwAhgwJAAKUDACGEAkAApQMAIYUCQAClAwAhhgICAJoDACGHAgAApAMAIA_5AQAA7AMAMPoBAADtAwAQ-wEAAOwDADD8AQIAmQMAIf0BAQCJAwAh_gEBAIkDACH_AQEAiQMAIYACQAClAwAhgQIAAPYCACCCAgEAigMAIYMCQAClAwAhhAJAAKUDACGFAkAApQMAIYYCAgCaAwAhhwIAAKQDACAL_AECANsDACH-AQEA1gMAIf8BAQDWAwAhgAJAANcDACGBAgAA2AMAIIICAQDZAwAhgwJAANcDACGEAkAA1wMAIYUCQADXAwAhhgICANoDACGHAoAAAAABDJQBAADdAwAg_AECANsDACH-AQEA1gMAIf8BAQDWAwAhgAJAANcDACGBAgAA2AMAIIICAQDZAwAhgwJAANcDACGEAkAA1wMAIYUCQADXAwAhhgICANoDACGHAoAAAAABDJQBAADgAwAg_AECAAAAAf4BAQAAAAH_AQEAAAABgAJAAAAAAYECAADeAwAgggIBAAAAAYMCQAAAAAGEAkAAAAABhQJAAAAAAYYCAgAAAAGHAoAAAAABBBMAAOUDADDuAgAA5gMAMPACAADoAwAg9AIAAOkDADAAAAAAAAAB8QIAAACiAgIB8QIAAQAAAQHxAkAAAAABAAAAAAAABRMAAMIFACAUAADFBQAg7gIAAMMFACDvAgAAxAUAIPQCAADRAQAgAxMAAMIFACDuAgAAwwUAIPQCAADRAQAgAAAAAvECAQAAAAT3AgEAAAAFAvECAQAAAAT3AgEAAAAFAvECAQAAAAT3AgEAAAAFAvECAQAAAAT3AgEAAAAFAvECAQAAAAT3AgEAAAAFAvECAQAAAAT3AgEAAAAFAvECAQAAAAT3AgEAAAAFCxMAAKwEADAUAAC4BAAw7gIAAK0EADDvAgAAtwQAMPACAACuBAAg8QIAAOkDADDyAgAA6QMAMPMCAADpAwAw9AIAAOkDADD1AgAAuQQAMPYCAADsAwAwCxMAAKcEADAUAACxBAAw7gIAAKgEADDvAgAAsAQAMPACAACpBAAg8QIAAKoEADDyAgAAqgQAMPMCAACqBAAw9AIAAKoEADD1AgAAsgQAMPYCAACzBAAwBxMAALoFACAUAADABQAg7gIAALsFACDvAgAAvwUAIPICAADdAQAg8wIAAN0BACD0AgAA0QEAIAsTAACRBAAwFAAAlgQAMO4CAACSBAAw7wIAAJMEADDwAgAAlAQAIPECAACVBAAw8gIAAJUEADDzAgAAlQQAMPQCAACVBAAw9QIAAJcEADD2AgAAmAQAMCSVAQAApAQAIJYBAAClBAAgmAEAAKYEACD8AQEAAAABgwJAAAAAAYQCQAAAAAGFAkAAAAABnAIBAAAAAakCQAAAAAGqAkAAAAABrAIBAAAAAa0CAQAAAAGzAgEAAAABtAIBAAAAAbUCAACdBAAgtgKAAAAAAbcCAACeBAAguAKAAAAAAbkCAQAAAAG6AgAAnwQAILsCAQAAAAG8AoAAAAABvQIBAAAAAb4CAACgBAAgvwKAAAAAAcACAQAAAAHBAgEAAAABwgIAAKEEACDDAoAAAAABxAKAAAAAAcYCAQAAAAHHAgAAogQAIMgCAQAAAAHJAgAAowQAIMoCAQAAAAHLAoAAAAABAgAAANEBACATAACcBAAgAwAAANEBACATAACcBAAgFAAAmwQAIAEMAAC-BQAwKZUBAACLAwAglgEAAKYDACCXAQAApwMAIJgBAACoAwAg-QEAAKMDADD6AQAA3QEAEPsBAACjAwAw_AEBAAAAAYMCQAClAwAhhAJAAKUDACGFAkAApQMAIZwCAQAAAAGpAkAAmwMAIaoCQACbAwAhrAIBAIkDACGtAgEAiQMAIbMCAQCJAwAhtAIBAIoDACG1AgAA9gIAILYCAACkAwAgtwIAAPYCACC4AgAApAMAILkCAQCKAwAhugIAAPYCACC7AgEAigMAIbwCAACkAwAgvQIBAIoDACG-AgAA9gIAIL8CAACkAwAgwAIBAIoDACHBAgEAigMAIcICAAD2AgAgwwIAAKQDACDEAgAApAMAIMUCAQCKAwAhxgIBAIoDACHHAgAA9gIAIMgCAQCKAwAhyQIAAPYCACDKAgEAigMAIcsCAACkAwAgAgAAANEBACAMAACbBAAgAgAAAJkEACAMAACaBAAgJfkBAACYBAAw-gEAAJkEABD7AQAAmAQAMPwBAQCJAwAhgwJAAKUDACGEAkAApQMAIYUCQAClAwAhnAIBAIkDACGpAkAAmwMAIaoCQACbAwAhrAIBAIkDACGtAgEAiQMAIbMCAQCJAwAhtAIBAIoDACG1AgAA9gIAILYCAACkAwAgtwIAAPYCACC4AgAApAMAILkCAQCKAwAhugIAAPYCACC7AgEAigMAIbwCAACkAwAgvQIBAIoDACG-AgAA9gIAIL8CAACkAwAgwAIBAIoDACHBAgEAigMAIcICAAD2AgAgwwIAAKQDACDEAgAApAMAIMUCAQCKAwAhxgIBAIoDACHHAgAA9gIAIMgCAQCKAwAhyQIAAPYCACDKAgEAigMAIcsCAACkAwAgJfkBAACYBAAw-gEAAJkEABD7AQAAmAQAMPwBAQCJAwAhgwJAAKUDACGEAkAApQMAIYUCQAClAwAhnAIBAIkDACGpAkAAmwMAIaoCQACbAwAhrAIBAIkDACGtAgEAiQMAIbMCAQCJAwAhtAIBAIoDACG1AgAA9gIAILYCAACkAwAgtwIAAPYCACC4AgAApAMAILkCAQCKAwAhugIAAPYCACC7AgEAigMAIbwCAACkAwAgvQIBAIoDACG-AgAA9gIAIL8CAACkAwAgwAIBAIoDACHBAgEAigMAIcICAAD2AgAgwwIAAKQDACDEAgAApAMAIMUCAQCKAwAhxgIBAIoDACHHAgAA9gIAIMgCAQCKAwAhyQIAAPYCACDKAgEAigMAIcsCAACkAwAgIfwBAQDWAwAhgwJAANcDACGEAkAA1wMAIYUCQADXAwAhnAIBANYDACGpAkAA-gMAIaoCQAD6AwAhrAIBANYDACGtAgEA1gMAIbMCAQDWAwAhtAIBANkDACG1AgAAhgQAILYCgAAAAAG3AgAAhwQAILgCgAAAAAG5AgEA2QMAIboCAACIBAAguwIBANkDACG8AoAAAAABvQIBANkDACG-AgAAiQQAIL8CgAAAAAHAAgEA2QMAIcECAQDZAwAhwgIAAIoEACDDAoAAAAABxAKAAAAAAcYCAQDZAwAhxwIAAIsEACDIAgEA2QMAIckCAACMBAAgygIBANkDACHLAoAAAAABJJUBAACNBAAglgEAAI4EACCYAQAAkAQAIPwBAQDWAwAhgwJAANcDACGEAkAA1wMAIYUCQADXAwAhnAIBANYDACGpAkAA-gMAIaoCQAD6AwAhrAIBANYDACGtAgEA1gMAIbMCAQDWAwAhtAIBANkDACG1AgAAhgQAILYCgAAAAAG3AgAAhwQAILgCgAAAAAG5AgEA2QMAIboCAACIBAAguwIBANkDACG8AoAAAAABvQIBANkDACG-AgAAiQQAIL8CgAAAAAHAAgEA2QMAIcECAQDZAwAhwgIAAIoEACDDAoAAAAABxAKAAAAAAcYCAQDZAwAhxwIAAIsEACDIAgEA2QMAIckCAACMBAAgygIBANkDACHLAoAAAAABJJUBAACkBAAglgEAAKUEACCYAQAApgQAIPwBAQAAAAGDAkAAAAABhAJAAAAAAYUCQAAAAAGcAgEAAAABqQJAAAAAAaoCQAAAAAGsAgEAAAABrQIBAAAAAbMCAQAAAAG0AgEAAAABtQIAAJ0EACC2AoAAAAABtwIAAJ4EACC4AoAAAAABuQIBAAAAAboCAACfBAAguwIBAAAAAbwCgAAAAAG9AgEAAAABvgIAAKAEACC_AoAAAAABwAIBAAAAAcECAQAAAAHCAgAAoQQAIMMCgAAAAAHEAoAAAAABxgIBAAAAAccCAACiBAAgyAIBAAAAAckCAACjBAAgygIBAAAAAcsCgAAAAAEB8QIBAAAABAHxAgEAAAAEAfECAQAAAAQB8QIBAAAABAHxAgEAAAAEAfECAQAAAAQB8QIBAAAABAQTAACsBAAw7gIAAK0EADDwAgAArgQAIPQCAADpAwAwBBMAAKcEADDuAgAAqAQAMPACAACpBAAg9AIAAKoEADAEEwAAkQQAMO4CAACSBAAw8AIAAJQEACD0AgAAlQQAMAf8AQEAAAABqQJAAAAAAaoCQAAAAAGvAgEAAAABsAIBAAAAAbECAQAAAAGyAkAAAAABAgAAANsBACATAACrBAAgAQwAAL0FADAMlAEAAKoDACD5AQAAqQMAMPoBAADZAQAQ-wEAAKkDADD8AQEAAAAB_gEBAIkDACGpAkAAmwMAIaoCQACbAwAhrwIBAIkDACGwAgEAiQMAIbECAQCJAwAhsgJAAKUDACEH_AEBAAAAAakCQAAAAAGqAkAAAAABrwIBAAAAAbACAQAAAAGxAgEAAAABsgJAAAAAAQyTAQAA3wMAIPwBAgAAAAH9AQEAAAAB_wEBAAAAAYACQAAAAAGBAgAA3gMAIIICAQAAAAGDAkAAAAABhAJAAAAAAYUCQAAAAAGGAgIAAAABhwKAAAAAAQIAAADVAQAgEwAArwQAIAEMAAC8BQAwDJMBAADfAwAg_AECAAAAAf0BAQAAAAH_AQEAAAABgAJAAAAAAYECAADeAwAgggIBAAAAAYMCQAAAAAGEAkAAAAABhQJAAAAAAYYCAgAAAAGHAoAAAAABAwAAANsBACATAACrBAAgFAAAtgQAIAIAAADbAQAgDAAAtgQAIAIAAAC0BAAgDAAAtQQAIAv5AQAAswQAMPoBAAC0BAAQ-wEAALMEADD8AQEAiQMAIf4BAQCJAwAhqQJAAJsDACGqAkAAmwMAIa8CAQCJAwAhsAIBAIkDACGxAgEAiQMAIbICQAClAwAhC_kBAACzBAAw-gEAALQEABD7AQAAswQAMPwBAQCJAwAh_gEBAIkDACGpAkAAmwMAIaoCQACbAwAhrwIBAIkDACGwAgEAiQMAIbECAQCJAwAhsgJAAKUDACEH_AEBANYDACGpAkAA-gMAIaoCQAD6AwAhrwIBANYDACGwAgEA1gMAIbECAQDWAwAhsgJAANcDACEH_AEBANYDACGpAkAA-gMAIaoCQAD6AwAhrwIBANYDACGwAgEA1gMAIbECAQDWAwAhsgJAANcDACEDAAAA1QEAIBMAAK8EACAUAAC7BAAgAgAAANUBACAMAAC7BAAgAgAAAO0DACAMAAC6BAAgC_wBAgDbAwAh_QEBANYDACH_AQEA1gMAIYACQADXAwAhgQIAANgDACCCAgEA2QMAIYMCQADXAwAhhAJAANcDACGFAkAA1wMAIYYCAgDaAwAhhwKAAAAAAQyTAQAA3AMAIPwBAgDbAwAh_QEBANYDACH_AQEA1gMAIYACQADXAwAhgQIAANgDACCCAgEA2QMAIYMCQADXAwAhhAJAANcDACGFAkAA1wMAIYYCAgDaAwAhhwKAAAAAAQMTAAC6BQAg7gIAALsFACD0AgAA0QEAIAAYlQEAAPIDACCWAQAAvQQAIJcBAAC-BAAgmAEAAL8EACCDAgAA0AMAIIQCAADQAwAghQIAANADACC0AgAA0AMAILYCAADQAwAguAIAANADACC5AgAA0AMAILsCAADQAwAgvAIAANADACC9AgAA0AMAIL8CAADQAwAgwAIAANADACDBAgAA0AMAIMMCAADQAwAgxAIAANADACDFAgAA0AMAIMYCAADQAwAgyAIAANADACDKAgAA0AMAIMsCAADQAwAgAAKSAQAA8gMAIIICAADQAwAgAAAAAfECAAAAzgICAvECAQAAAAT3AgEAAAAFAfECAQAAAAQAAAAAAAUTAACyBQAgFAAAuAUAIO4CAACzBQAg7wIAALcFACD0AgAAiQEAIAUTAACwBQAgFAAAtQUAIO4CAACxBQAg7wIAALQFACD0AgAAaQAgAxMAALIFACDuAgAAswUAIPQCAACJAQAgAxMAALAFACDuAgAAsQUAIPQCAABpACAAAAALEwAA1AQAMBQAANkEADDuAgAA1QQAMO8CAADWBAAw8AIAANcEACDxAgAA2AQAMPICAADYBAAw8wIAANgEADD0AgAA2AQAMPUCAADaBAAw9gIAANsEADADTwAAzwQAIPwBAgAAAAHSAgEAAAABAgAAAG0AIBMAAN8EACADAAAAbQAgEwAA3wQAIBQAAN4EACABDAAArwUAMAlOAAC9AwAgTwAAvgMAIPkBAAC8AwAw-gEAAGsAEPsBAAC8AwAw_AECAAAAAdECAQCJAwAh0gIBAIkDACHWAgAAuwMAIAIAAABtACAMAADeBAAgAgAAANwEACAMAADdBAAgBvkBAADbBAAw-gEAANwEABD7AQAA2wQAMPwBAgCZAwAh0QIBAIkDACHSAgEAiQMAIQb5AQAA2wQAMPoBAADcBAAQ-wEAANsEADD8AQIAmQMAIdECAQCJAwAh0gIBAIkDACEC_AECANsDACHSAgEA1gMAIQNPAADNBAAg_AECANsDACHSAgEA1gMAIQNPAADPBAAg_AECAAAAAdICAQAAAAEEEwAA1AQAMO4CAADVBAAw8AIAANcEACD0AgAA2AQAMAAAAAALEwAA5gQAMBQAAOoEADDuAgAA5wQAMO8CAADoBAAw8AIAAOkEACDxAgAA2AQAMPICAADYBAAw8wIAANgEADD0AgAA2AQAMPUCAADrBAAw9gIAANsEADADTgAAzgQAIPwBAgAAAAHRAgEAAAABAgAAAG0AIBMAAO4EACADAAAAbQAgEwAA7gQAIBQAAO0EACABDAAArgUAMAIAAABtACAMAADtBAAgAgAAANwEACAMAADsBAAgAvwBAgDbAwAh0QIBANYDACEDTgAAzAQAIPwBAgDbAwAh0QIBANYDACEDTgAAzgQAIPwBAgAAAAHRAgEAAAABBBMAAOYEADDuAgAA5wQAMPACAADpBAAg9AIAANgEADADTQAA4QQAIKwCAADQAwAg0wIAANADACACTQAA4QQAINMCAADQAwAgAAAAAAAABRMAAKkFACAUAACsBQAg7gIAAKoFACDvAgAAqwUAIPQCAAABACADEwAAqQUAIO4CAACqBQAg9AIAAAEAIAAAAAUTAACkBQAgFAAApwUAIO4CAAClBQAg7wIAAKYFACD0AgAAAQAgAxMAAKQFACDuAgAApQUAIPQCAAABACAAAAAB8QIgAAAAAQsTAACRBQAwFAAAlgUAMO4CAACSBQAw7wIAAJMFADDwAgAAlAUAIPECAACVBQAw8gIAAJUFADDzAgAAlQUAMPQCAACVBQAw9QIAAJcFADD2AgAAmAUAMAsTAACFBQAwFAAAigUAMO4CAACGBQAw7wIAAIcFADDwAgAAiAUAIPECAACJBQAw8gIAAIkFADDzAgAAiQUAMPQCAACJBQAw9QIAAIsFADD2AgAAjAUAMAf8AQEAAAABqQJAAAAAAaoCQAAAAAHZAkAAAAAB5QIBAAAAAeYCAQAAAAHnAgEAAAABAgAAAAkAIBMAAJAFACADAAAACQAgEwAAkAUAIBQAAI8FACABDAAAowUAMAwDAADNAwAg-QEAAMwDADD6AQAABwAQ-wEAAMwDADD8AQEAAAABqQJAAJsDACGqAkAAmwMAIdkCQACbAwAh2wIBAIkDACHlAgEAAAAB5gIBAIoDACHnAgEAigMAIQIAAAAJACAMAACPBQAgAgAAAI0FACAMAACOBQAgC_kBAACMBQAw-gEAAI0FABD7AQAAjAUAMPwBAQCJAwAhqQJAAJsDACGqAkAAmwMAIdkCQACbAwAh2wIBAIkDACHlAgEAiQMAIeYCAQCKAwAh5wIBAIoDACEL-QEAAIwFADD6AQAAjQUAEPsBAACMBQAw_AEBAIkDACGpAkAAmwMAIaoCQACbAwAh2QJAAJsDACHbAgEAiQMAIeUCAQCJAwAh5gIBAIoDACHnAgEAigMAIQf8AQEA1gMAIakCQAD6AwAhqgJAAPoDACHZAkAA-gMAIeUCAQDWAwAh5gIBANkDACHnAgEA2QMAIQf8AQEA1gMAIakCQAD6AwAhqgJAAPoDACHZAkAA-gMAIeUCAQDWAwAh5gIBANkDACHnAgEA2QMAIQf8AQEAAAABqQJAAAAAAaoCQAAAAAHZAkAAAAAB5QIBAAAAAeYCAQAAAAHnAgEAAAABDPwBAQAAAAGpAkAAAAABqgJAAAAAAdwCAQAAAAHdAgEAAAAB3gIBAAAAAd8CAQAAAAHgAkAAAAAB4QJAAAAAAeICAQAAAAHjAgEAAAAB5AIBAAAAAQIAAAAFACATAACcBQAgAwAAAAUAIBMAAJwFACAUAACbBQAgAQwAAKIFADASAwAAzQMAIPkBAADPAwAw-gEAAAMAEPsBAADPAwAw_AEBAAAAAakCQACbAwAhqgJAAJsDACHbAgEAiQMAIdwCAQCJAwAh3QIBAIkDACHeAgEAigMAId8CAQCKAwAh4AJAAKUDACHhAkAApQMAIeICAQCKAwAh4wIBAIoDACHkAgEAigMAIesCAADOAwAgAgAAAAUAIAwAAJsFACACAAAAmQUAIAwAAJoFACAQ-QEAAJgFADD6AQAAmQUAEPsBAACYBQAw_AEBAIkDACGpAkAAmwMAIaoCQACbAwAh2wIBAIkDACHcAgEAiQMAId0CAQCJAwAh3gIBAIoDACHfAgEAigMAIeACQAClAwAh4QJAAKUDACHiAgEAigMAIeMCAQCKAwAh5AIBAIoDACEQ-QEAAJgFADD6AQAAmQUAEPsBAACYBQAw_AEBAIkDACGpAkAAmwMAIaoCQACbAwAh2wIBAIkDACHcAgEAiQMAId0CAQCJAwAh3gIBAIoDACHfAgEAigMAIeACQAClAwAh4QJAAKUDACHiAgEAigMAIeMCAQCKAwAh5AIBAIoDACEM_AEBANYDACGpAkAA-gMAIaoCQAD6AwAh3AIBANYDACHdAgEA1gMAId4CAQDZAwAh3wIBANkDACHgAkAA1wMAIeECQADXAwAh4gIBANkDACHjAgEA2QMAIeQCAQDZAwAhDPwBAQDWAwAhqQJAAPoDACGqAkAA-gMAIdwCAQDWAwAh3QIBANYDACHeAgEA2QMAId8CAQDZAwAh4AJAANcDACHhAkAA1wMAIeICAQDZAwAh4wIBANkDACHkAgEA2QMAIQz8AQEAAAABqQJAAAAAAaoCQAAAAAHcAgEAAAAB3QIBAAAAAd4CAQAAAAHfAgEAAAAB4AJAAAAAAeECQAAAAAHiAgEAAAAB4wIBAAAAAeQCAQAAAAEEEwAAkQUAMO4CAACSBQAw8AIAAJQFACD0AgAAlQUAMAQTAACFBQAw7gIAAIYFADDwAgAAiAUAIPQCAACJBQAwAAAFBAAAnwUAIAUAAKAFACCgAgAA0AMAINMCAADQAwAg6QIAANADACAM_AEBAAAAAakCQAAAAAGqAkAAAAAB3AIBAAAAAd0CAQAAAAHeAgEAAAAB3wIBAAAAAeACQAAAAAHhAkAAAAAB4gIBAAAAAeMCAQAAAAHkAgEAAAABB_wBAQAAAAGpAkAAAAABqgJAAAAAAdkCQAAAAAHlAgEAAAAB5gIBAAAAAecCAQAAAAEJBAAAnQUAIPwBAQAAAAGgAgEAAAABqQJAAAAAAaoCQAAAAAHTAgEAAAAB6AIgAAAAAekCAQAAAAHqAgEAAAABAgAAAAEAIBMAAKQFACADAAAADgAgEwAApAUAIBQAAKgFACALAAAADgAgBAAAgwUAIAwAAKgFACD8AQEA1gMAIaACAQDZAwAhqQJAAPoDACGqAkAA-gMAIdMCAQDZAwAh6AIgAIIFACHpAgEA2QMAIeoCAQDWAwAhCQQAAIMFACD8AQEA1gMAIaACAQDZAwAhqQJAAPoDACGqAkAA-gMAIdMCAQDZAwAh6AIgAIIFACHpAgEA2QMAIeoCAQDWAwAhCQUAAJ4FACD8AQEAAAABoAIBAAAAAakCQAAAAAGqAkAAAAAB0wIBAAAAAegCIAAAAAHpAgEAAAAB6gIBAAAAAQIAAAABACATAACpBQAgAwAAAA4AIBMAAKkFACAUAACtBQAgCwAAAA4AIAUAAIQFACAMAACtBQAg_AEBANYDACGgAgEA2QMAIakCQAD6AwAhqgJAAPoDACHTAgEA2QMAIegCIACCBQAh6QIBANkDACHqAgEA1gMAIQkFAACEBQAg_AEBANYDACGgAgEA2QMAIakCQAD6AwAhqgJAAPoDACHTAgEA2QMAIegCIACCBQAh6QIBANkDACHqAgEA1gMAIQL8AQIAAAAB0QIBAAAAAQL8AQIAAAAB0gIBAAAAAQacAgEAAAABqQJAAAAAAaoCQAAAAAHTAgEAAAAB1AIBAAAAAdUCAQAAAAECAAAAaQAgEwAAsAUAIAWcAgEAAAABqQJAAAAAAaoCQAAAAAGsAgEAAAAB0wIBAAAAAQIAAACJAQAgEwAAsgUAIAMAAABzACATAACwBQAgFAAAtgUAIAgAAABzACAMAAC2BQAgnAIBANYDACGpAkAA-gMAIaoCQAD6AwAh0wIBANkDACHUAgEA1gMAIdUCAQDWAwAhBpwCAQDWAwAhqQJAAPoDACGqAkAA-gMAIdMCAQDZAwAh1AIBANYDACHVAgEA1gMAIQMAAACMAQAgEwAAsgUAIBQAALkFACAHAAAAjAEAIAwAALkFACCcAgEA1gMAIakCQAD6AwAhqgJAAPoDACGsAgEA2QMAIdMCAQDZAwAhBZwCAQDWAwAhqQJAAPoDACGqAkAA-gMAIawCAQDZAwAh0wIBANkDACEllQEAAKQEACCWAQAApQQAIJcBAAC8BAAg_AEBAAAAAYMCQAAAAAGEAkAAAAABhQJAAAAAAZwCAQAAAAGpAkAAAAABqgJAAAAAAawCAQAAAAGtAgEAAAABswIBAAAAAbQCAQAAAAG1AgAAnQQAILYCgAAAAAG3AgAAngQAILgCgAAAAAG5AgEAAAABugIAAJ8EACC7AgEAAAABvAKAAAAAAb0CAQAAAAG-AgAAoAQAIL8CgAAAAAHAAgEAAAABwQIBAAAAAcICAAChBAAgwwKAAAAAAcQCgAAAAAHFAgEAAAABxgIBAAAAAccCAACiBAAgyAIBAAAAAckCAACjBAAgygIBAAAAAcsCgAAAAAECAAAA0QEAIBMAALoFACAL_AECAAAAAf0BAQAAAAH_AQEAAAABgAJAAAAAAYECAADeAwAgggIBAAAAAYMCQAAAAAGEAkAAAAABhQJAAAAAAYYCAgAAAAGHAoAAAAABB_wBAQAAAAGpAkAAAAABqgJAAAAAAa8CAQAAAAGwAgEAAAABsQIBAAAAAbICQAAAAAEh_AEBAAAAAYMCQAAAAAGEAkAAAAABhQJAAAAAAZwCAQAAAAGpAkAAAAABqgJAAAAAAawCAQAAAAGtAgEAAAABswIBAAAAAbQCAQAAAAG1AgAAnQQAILYCgAAAAAG3AgAAngQAILgCgAAAAAG5AgEAAAABugIAAJ8EACC7AgEAAAABvAKAAAAAAb0CAQAAAAG-AgAAoAQAIL8CgAAAAAHAAgEAAAABwQIBAAAAAcICAAChBAAgwwKAAAAAAcQCgAAAAAHGAgEAAAABxwIAAKIEACDIAgEAAAAByQIAAKMEACDKAgEAAAABywKAAAAAAQMAAADdAQAgEwAAugUAIBQAAMEFACAnAAAA3QEAIAwAAMEFACCVAQAAjQQAIJYBAACOBAAglwEAAI8EACD8AQEA1gMAIYMCQADXAwAhhAJAANcDACGFAkAA1wMAIZwCAQDWAwAhqQJAAPoDACGqAkAA-gMAIawCAQDWAwAhrQIBANYDACGzAgEA1gMAIbQCAQDZAwAhtQIAAIYEACC2AoAAAAABtwIAAIcEACC4AoAAAAABuQIBANkDACG6AgAAiAQAILsCAQDZAwAhvAKAAAAAAb0CAQDZAwAhvgIAAIkEACC_AoAAAAABwAIBANkDACHBAgEA2QMAIcICAACKBAAgwwKAAAAAAcQCgAAAAAHFAgEA2QMAIcYCAQDZAwAhxwIAAIsEACDIAgEA2QMAIckCAACMBAAgygIBANkDACHLAoAAAAABJZUBAACNBAAglgEAAI4EACCXAQAAjwQAIPwBAQDWAwAhgwJAANcDACGEAkAA1wMAIYUCQADXAwAhnAIBANYDACGpAkAA-gMAIaoCQAD6AwAhrAIBANYDACGtAgEA1gMAIbMCAQDWAwAhtAIBANkDACG1AgAAhgQAILYCgAAAAAG3AgAAhwQAILgCgAAAAAG5AgEA2QMAIboCAACIBAAguwIBANkDACG8AoAAAAABvQIBANkDACG-AgAAiQQAIL8CgAAAAAHAAgEA2QMAIcECAQDZAwAhwgIAAIoEACDDAoAAAAABxAKAAAAAAcUCAQDZAwAhxgIBANkDACHHAgAAiwQAIMgCAQDZAwAhyQIAAIwEACDKAgEA2QMAIcsCgAAAAAEllQEAAKQEACCXAQAAvAQAIJgBAACmBAAg_AEBAAAAAYMCQAAAAAGEAkAAAAABhQJAAAAAAZwCAQAAAAGpAkAAAAABqgJAAAAAAawCAQAAAAGtAgEAAAABswIBAAAAAbQCAQAAAAG1AgAAnQQAILYCgAAAAAG3AgAAngQAILgCgAAAAAG5AgEAAAABugIAAJ8EACC7AgEAAAABvAKAAAAAAb0CAQAAAAG-AgAAoAQAIL8CgAAAAAHAAgEAAAABwQIBAAAAAcICAAChBAAgwwKAAAAAAcQCgAAAAAHFAgEAAAABxgIBAAAAAccCAACiBAAgyAIBAAAAAckCAACjBAAgygIBAAAAAcsCgAAAAAECAAAA0QEAIBMAAMIFACADAAAA3QEAIBMAAMIFACAUAADGBQAgJwAAAN0BACAMAADGBQAglQEAAI0EACCXAQAAjwQAIJgBAACQBAAg_AEBANYDACGDAkAA1wMAIYQCQADXAwAhhQJAANcDACGcAgEA1gMAIakCQAD6AwAhqgJAAPoDACGsAgEA1gMAIa0CAQDWAwAhswIBANYDACG0AgEA2QMAIbUCAACGBAAgtgKAAAAAAbcCAACHBAAguAKAAAAAAbkCAQDZAwAhugIAAIgEACC7AgEA2QMAIbwCgAAAAAG9AgEA2QMAIb4CAACJBAAgvwKAAAAAAcACAQDZAwAhwQIBANkDACHCAgAAigQAIMMCgAAAAAHEAoAAAAABxQIBANkDACHGAgEA2QMAIccCAACLBAAgyAIBANkDACHJAgAAjAQAIMoCAQDZAwAhywKAAAAAASWVAQAAjQQAIJcBAACPBAAgmAEAAJAEACD8AQEA1gMAIYMCQADXAwAhhAJAANcDACGFAkAA1wMAIZwCAQDWAwAhqQJAAPoDACGqAkAA-gMAIawCAQDWAwAhrQIBANYDACGzAgEA1gMAIbQCAQDZAwAhtQIAAIYEACC2AoAAAAABtwIAAIcEACC4AoAAAAABuQIBANkDACG6AgAAiAQAILsCAQDZAwAhvAKAAAAAAb0CAQDZAwAhvgIAAIkEACC_AoAAAAABwAIBANkDACHBAgEA2QMAIcICAACKBAAgwwKAAAAAAcQCgAAAAAHFAgEA2QMAIcYCAQDZAwAhxwIAAIsEACDIAgEA2QMAIckCAACMBAAgygIBANkDACHLAoAAAAABC_wBAgAAAAH-AQEAAAAB_wEBAAAAAYACQAAAAAGBAgAA3gMAIIICAQAAAAGDAkAAAAABhAJAAAAAAYUCQAAAAAGGAgIAAAABhwKAAAAAASWWAQAApQQAIJcBAAC8BAAgmAEAAKYEACD8AQEAAAABgwJAAAAAAYQCQAAAAAGFAkAAAAABnAIBAAAAAakCQAAAAAGqAkAAAAABrAIBAAAAAa0CAQAAAAGzAgEAAAABtAIBAAAAAbUCAACdBAAgtgKAAAAAAbcCAACeBAAguAKAAAAAAbkCAQAAAAG6AgAAnwQAILsCAQAAAAG8AoAAAAABvQIBAAAAAb4CAACgBAAgvwKAAAAAAcACAQAAAAHBAgEAAAABwgIAAKEEACDDAoAAAAABxAKAAAAAAcUCAQAAAAHGAgEAAAABxwIAAKIEACDIAgEAAAAByQIAAKMEACDKAgEAAAABywKAAAAAAQIAAADRAQAgEwAAyAUAIAKCAgEAAAABnAIBAAAAAQIAAADDAgAgEwAAygUAIAMAAADdAQAgEwAAyAUAIBQAAM4FACAnAAAA3QEAIAwAAM4FACCWAQAAjgQAIJcBAACPBAAgmAEAAJAEACD8AQEA1gMAIYMCQADXAwAhhAJAANcDACGFAkAA1wMAIZwCAQDWAwAhqQJAAPoDACGqAkAA-gMAIawCAQDWAwAhrQIBANYDACGzAgEA1gMAIbQCAQDZAwAhtQIAAIYEACC2AoAAAAABtwIAAIcEACC4AoAAAAABuQIBANkDACG6AgAAiAQAILsCAQDZAwAhvAKAAAAAAb0CAQDZAwAhvgIAAIkEACC_AoAAAAABwAIBANkDACHBAgEA2QMAIcICAACKBAAgwwKAAAAAAcQCgAAAAAHFAgEA2QMAIcYCAQDZAwAhxwIAAIsEACDIAgEA2QMAIckCAACMBAAgygIBANkDACHLAoAAAAABJZYBAACOBAAglwEAAI8EACCYAQAAkAQAIPwBAQDWAwAhgwJAANcDACGEAkAA1wMAIYUCQADXAwAhnAIBANYDACGpAkAA-gMAIaoCQAD6AwAhrAIBANYDACGtAgEA1gMAIbMCAQDWAwAhtAIBANkDACG1AgAAhgQAILYCgAAAAAG3AgAAhwQAILgCgAAAAAG5AgEA2QMAIboCAACIBAAguwIBANkDACG8AoAAAAABvQIBANkDACG-AgAAiQQAIL8CgAAAAAHAAgEA2QMAIcECAQDZAwAhwgIAAIoEACDDAoAAAAABxAKAAAAAAcUCAQDZAwAhxgIBANkDACHHAgAAiwQAIMgCAQDZAwAhyQIAAIwEACDKAgEA2QMAIcsCgAAAAAEDAAAAxgIAIBMAAMoFACAUAADRBQAgBAAAAMYCACAMAADRBQAgggIBANkDACGcAgEA1gMAIQKCAgEA2QMAIZwCAQDWAwAhAwQGAgUKAwYABAEDAAEBAwABAgQLAAUMAAAAAAMGAAkZAAoaAAsAAAADBgAJGQAKGgALAQMAAQEDAAEDBgAQGQARGgASAAAAAwYAEBkAERoAEgEDAAEBAwABAwYAFxkAGBoAGQAAAAMGABcZABgaABkAAAADBgAfGQAgGgAhAAAAAwYAHxkAIBoAIQIGACdNbiQCTgAlTwAjAgYAJk1vJAFNcAABTXEAAAADBgArGQAsGgAtAAAAAwYAKxkALBoALQAAAwYAMhkAMxoANAAAAAMGADIZADMaADQCTgAlTwAjAk4AJU8AIwUGADkZADwaAD1-ADp_ADsAAAAAAAUGADkZADwaAD1-ADp_ADsAAAADBgBDGQBEGgBFAAAAAwYAQxkARBoARQUGAEyVAdYBSJYB3AFLlwHeAUeYAeABRwKTAQBJlAEARwIGAEqSAdcBSAGSAdgBAAGUAQBHA5UB4QEAlgHiAQCYAeMBAAGXAe0BRwGXAfMBRwMGAFAZAFEaAFIAAAADBgBQGQBRGgBSAZQBAEcBlAEARwMGAFcZAFgaAFkAAAADBgBXGQBYGgBZAAAAAwYAXxkAYBoAYQAAAAMGAF8ZAGAaAGEAAAAFBgBnGQBqGgBrfgBofwBpAAAAAAAFBgBnGQBqGgBrfgBofwBpAAADBgBwGQBxGgByAAAAAwYAcBkAcRoAcgKTAQBJlAEARwKTAQBJlAEARwUGAHcZAHoaAHt-AHh_AHkAAAAAAAUGAHcZAHoaAHt-AHh_AHkHAgEIDQEJEAEKEQELEgENFAEOFgUPFwYQGQERGwUSHAcVHQEWHgEXHwUbIggcIwwdJAMeJQMfJgMgJwMhKAMiKgMjLAUkLQ0lLwMmMQUnMg4oMwMpNAMqNQUrOA8sORMtOgIuOwIvPAIwPQIxPgIyQAIzQgU0QxQ1RQI2RwU3SBU4SQI5SgI6SwU7ThY8Txo9URs-Uhs_VRtAVhtBVxtCWRtDWwVEXBxFXhtGYAVHYR1IYhtJYxtKZAVLZx5MaCJQaiNRciNSdSNTdiNUdyNVeSNWewVXfChYfiNZgAEFWoEBKVuCASNcgwEjXYQBBV6HASpfiAEuYIoBJWGLASVijgElY48BJWSQASVlkgElZpQBBWeVAS9olwElaZkBBWqaATBrmwElbJwBJW2dAQVuoAExb6EBNXCiASRxowEkcqQBJHOlASR0pgEkdagBJHaqAQV3qwE2eK0BJHmvAQV6sAE3e7EBJHyyASR9swEFgAG2ATiBAbcBPoIBuQE_gwG6AT-EAb0BP4UBvgE_hgG_AT-HAcEBP4gBwwEFiQHEAUCKAcYBP4sByAEFjAHJAUGNAcoBP44BywE_jwHMAQWQAc8BQpEB0AFGmQHSAUeaAeQBR5sB5QFHnAHmAUedAecBR54B6QFHnwHrAQWgAewBTaEB7wFHogHxAQWjAfIBTqQB9AFHpQH1AUemAfYBBacB-QFPqAH6AVOpAfsBS6oB_AFLqwH9AUusAf4BS60B_wFLrgGBAkuvAYMCBbABhAJUsQGGAkuyAYgCBbMBiQJVtAGKAku1AYsCS7YBjAIFtwGPAla4AZACWrkBkgJbugGTAlu7AZYCW7wBlwJbvQGYAlu-AZoCW78BnAIFwAGdAlzBAZ8CW8IBoQIFwwGiAl3EAaMCW8UBpAJbxgGlAgXHAagCXsgBqQJiyQGrAmPKAawCY8sBrwJjzAGwAmPNAbECY84BswJjzwG1AgXQAbYCZNEBuAJj0gG6AgXTAbsCZdQBvAJj1QG9AmPWAb4CBdcBwQJm2AHCAmzZAcQCSdoBxQJJ2wHIAkncAckCSd0BygJJ3gHMAknfAc4CBeABzwJt4QHRAkniAdMCBeMB1AJu5AHVAknlAdYCSeYB1wIF5wHaAm_oAdsCc-kB3AJI6gHdAkjrAd4CSOwB3wJI7QHgAkjuAeICSO8B5AIF8AHlAnTxAecCSPIB6QIF8wHqAnX0AesCSPUB7AJI9gHtAgX3AfACdvgB8QJ8"
24
24
  };
25
25
  async function decodeBase64AsWasm(wasmBase64) {
26
26
  const { Buffer } = await import("node:buffer");