@payloadcms/db-postgres 0.3.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/connect.d.ts.map +1 -1
- package/dist/connect.js +7 -5
- package/dist/createMigration.js +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/migrate.js +2 -2
- package/dist/migrateDown.js +4 -2
- package/dist/migrateFresh.d.ts +3 -1
- package/dist/migrateFresh.d.ts.map +1 -1
- package/dist/migrateFresh.js +14 -12
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +3 -8
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +9 -1
- package/dist/schema/validateExistingBlockIsIdentical.d.ts.map +1 -1
- package/dist/schema/validateExistingBlockIsIdentical.js +25 -22
- package/dist/transform/read/traverseFields.d.ts +5 -5
- package/dist/transform/read/traverseFields.d.ts.map +1 -1
- package/dist/transform/read/traverseFields.js +38 -23
- package/dist/types.d.ts +12 -7
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/reference.d.ts +0 -2
- package/dist/reference.d.ts.map +0 -1
- package/dist/reference.js +0 -77
package/dist/types.d.ts
CHANGED
@@ -1,11 +1,13 @@
|
|
1
|
-
import type { ColumnBaseConfig, ColumnDataType, ExtractTablesWithRelations, Relation, Relations } from 'drizzle-orm';
|
1
|
+
import type { ColumnBaseConfig, ColumnDataType, DrizzleConfig, ExtractTablesWithRelations, Relation, Relations } from 'drizzle-orm';
|
2
2
|
import type { NodePgDatabase, NodePgQueryResultHKT } from 'drizzle-orm/node-postgres';
|
3
3
|
import type { PgColumn, PgEnum, PgTableWithColumns, PgTransaction } from 'drizzle-orm/pg-core';
|
4
4
|
import type { Payload } from 'payload';
|
5
5
|
import type { BaseDatabaseAdapter } from 'payload/database';
|
6
|
+
import type { PayloadRequest } from 'payload/types';
|
6
7
|
import type { Pool, PoolConfig } from 'pg';
|
7
8
|
export type DrizzleDB = NodePgDatabase<Record<string, unknown>>;
|
8
9
|
export type Args = {
|
10
|
+
logger?: DrizzleConfig['logger'];
|
9
11
|
migrationDir?: string;
|
10
12
|
pool: PoolConfig;
|
11
13
|
push?: boolean;
|
@@ -26,6 +28,12 @@ export type DrizzleTransaction = PgTransaction<NodePgQueryResultHKT, Record<stri
|
|
26
28
|
export type PostgresAdapter = BaseDatabaseAdapter & {
|
27
29
|
drizzle: DrizzleDB;
|
28
30
|
enums: Record<string, GenericEnum>;
|
31
|
+
/**
|
32
|
+
* An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name
|
33
|
+
* Used for returning properly formed errors from unique fields
|
34
|
+
*/
|
35
|
+
fieldConstraints: Record<string, Record<string, string>>;
|
36
|
+
logger: DrizzleConfig['logger'];
|
29
37
|
pool: Pool;
|
30
38
|
poolOptions: Args['pool'];
|
31
39
|
push: boolean;
|
@@ -39,25 +47,23 @@ export type PostgresAdapter = BaseDatabaseAdapter & {
|
|
39
47
|
};
|
40
48
|
};
|
41
49
|
tables: Record<string, GenericTable>;
|
42
|
-
/**
|
43
|
-
* An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name
|
44
|
-
* Used for returning properly formed errors from unique fields
|
45
|
-
*/
|
46
|
-
fieldConstraints: Record<string, Record<string, string>>;
|
47
50
|
};
|
48
51
|
export type PostgresAdapterResult = (args: {
|
49
52
|
payload: Payload;
|
50
53
|
}) => PostgresAdapter;
|
51
54
|
export type MigrateUpArgs = {
|
52
55
|
payload: Payload;
|
56
|
+
req?: Partial<PayloadRequest>;
|
53
57
|
};
|
54
58
|
export type MigrateDownArgs = {
|
55
59
|
payload: Payload;
|
60
|
+
req?: Partial<PayloadRequest>;
|
56
61
|
};
|
57
62
|
declare module 'payload' {
|
58
63
|
interface DatabaseAdapter extends Omit<Args, 'migrationDir' | 'pool'>, BaseDatabaseAdapter {
|
59
64
|
drizzle: DrizzleDB;
|
60
65
|
enums: Record<string, GenericEnum>;
|
66
|
+
fieldConstraints: Record<string, Record<string, string>>;
|
61
67
|
pool: Pool;
|
62
68
|
push: boolean;
|
63
69
|
relations: Record<string, GenericRelation>;
|
@@ -70,7 +76,6 @@ declare module 'payload' {
|
|
70
76
|
};
|
71
77
|
};
|
72
78
|
tables: Record<string, GenericTable>;
|
73
|
-
fieldConstraints: Record<string, Record<string, string>>;
|
74
79
|
}
|
75
80
|
}
|
76
81
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,QAAQ,EACR,SAAS,EACV,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAE1C,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAE/D,MAAM,MAAM,IAAI,GAAG;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,CAClC,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,EACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,CAAA;CAClB,CAAC,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAA;AAEvD,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAEjF,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAC5C,oBAAoB,EACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,0BAA0B,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CACpD,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG;IAClD,OAAO,EAAE,SAAS,CAAA;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAClC,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACzB,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,YAAY,CAAC,CAAA;IACpE,QAAQ,EAAE;QACR,CAAC,EAAE,EAAE,MAAM,GAAG;YACZ,EAAE,EAAE,kBAAkB,CAAA;YACtB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;YAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;SAC7B,CAAA;KACF,CAAA;IACD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@payloadcms/db-postgres",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.5.0",
|
4
4
|
"description": "The officially supported Postgres database adapter for Payload",
|
5
5
|
"repository": "https://github.com/payloadcms/payload",
|
6
6
|
"license": "MIT",
|
@@ -15,8 +15,8 @@
|
|
15
15
|
"dependencies": {
|
16
16
|
"@libsql/client": "^0.3.1",
|
17
17
|
"console-table-printer": "2.11.2",
|
18
|
-
"drizzle-kit": "0.
|
19
|
-
"drizzle-orm": "0.
|
18
|
+
"drizzle-kit": "0.20.5-608ae62",
|
19
|
+
"drizzle-orm": "0.29.3",
|
20
20
|
"pg": "8.11.3",
|
21
21
|
"prompts": "2.4.2",
|
22
22
|
"to-snake-case": "1.0.0",
|
@@ -25,8 +25,8 @@
|
|
25
25
|
"devDependencies": {
|
26
26
|
"@types/pg": "8.10.2",
|
27
27
|
"@types/to-snake-case": "1.0.0",
|
28
|
-
"
|
29
|
-
"
|
28
|
+
"@payloadcms/eslint-config": "1.1.1",
|
29
|
+
"payload": "2.9.0"
|
30
30
|
},
|
31
31
|
"peerDependencies": {
|
32
32
|
"payload": "^2.0.0"
|
package/dist/reference.d.ts
DELETED
package/dist/reference.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":""}
|
package/dist/reference.js
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
// type GenerateMigration = (before: DrizzleSnapshotJSON, after: DrizzleSnapshotJSON) => string[]
|
2
|
-
// type GenerateDrizzleJSON = (schema: DrizzleSchemaExports) => DrizzleSnapshotJSON
|
3
|
-
// type PushDiff = (schema: DrizzleSchemaExports) => Promise<{ warnings: string[], apply: () => Promise<void> }>
|
4
|
-
// drizzle-kit@utils
|
5
|
-
"use strict";
|
6
|
-
Object.defineProperty(exports, "__esModule", {
|
7
|
-
value: true
|
8
|
-
});
|
9
|
-
const _nodepostgres = require("drizzle-orm/node-postgres");
|
10
|
-
const _pg = require("pg");
|
11
|
-
function _getRequireWildcardCache(nodeInterop) {
|
12
|
-
if (typeof WeakMap !== "function") return null;
|
13
|
-
var cacheBabelInterop = new WeakMap();
|
14
|
-
var cacheNodeInterop = new WeakMap();
|
15
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
16
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
17
|
-
})(nodeInterop);
|
18
|
-
}
|
19
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
20
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
21
|
-
return obj;
|
22
|
-
}
|
23
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
24
|
-
return {
|
25
|
-
default: obj
|
26
|
-
};
|
27
|
-
}
|
28
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
29
|
-
if (cache && cache.has(obj)) {
|
30
|
-
return cache.get(obj);
|
31
|
-
}
|
32
|
-
var newObj = {};
|
33
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
34
|
-
for(var key in obj){
|
35
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
36
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
37
|
-
if (desc && (desc.get || desc.set)) {
|
38
|
-
Object.defineProperty(newObj, key, desc);
|
39
|
-
} else {
|
40
|
-
newObj[key] = obj[key];
|
41
|
-
}
|
42
|
-
}
|
43
|
-
}
|
44
|
-
newObj.default = obj;
|
45
|
-
if (cache) {
|
46
|
-
cache.set(obj, newObj);
|
47
|
-
}
|
48
|
-
return newObj;
|
49
|
-
}
|
50
|
-
async function generateUsage() {
|
51
|
-
const { generateDrizzleJson, generateMigration } = require('drizzle-kit/utils');
|
52
|
-
// @ts-expect-error Just TypeScript being broken // TODO: Open TypeScript issue
|
53
|
-
const schema = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./data/users")));
|
54
|
-
// @ts-expect-error Just TypeScript being broken // TODO: Open TypeScript issue
|
55
|
-
const schemaAfter = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./data/users-after")));
|
56
|
-
const drizzleJsonBefore = generateDrizzleJson(schema);
|
57
|
-
const drizzleJsonAfter = generateDrizzleJson(schemaAfter);
|
58
|
-
const sqlStatements = await generateMigration(drizzleJsonBefore, drizzleJsonAfter);
|
59
|
-
console.log(sqlStatements);
|
60
|
-
}
|
61
|
-
async function pushUsage() {
|
62
|
-
const { pushSchema } = require('drizzle-kit/utils');
|
63
|
-
// @ts-expect-error Just TypeScript being broken // TODO: Open TypeScript issue
|
64
|
-
const schemaAfter = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./data/users-after")));
|
65
|
-
const db = (0, _nodepostgres.drizzle)(new _pg.Pool({
|
66
|
-
connectionString: ''
|
67
|
-
}));
|
68
|
-
const response = await pushSchema(schemaAfter, db);
|
69
|
-
console.log('\n');
|
70
|
-
console.log('hasDataLoss: ', response.hasDataLoss);
|
71
|
-
console.log('warnings: ', response.warnings);
|
72
|
-
console.log('statements: ', response.statementsToExecute);
|
73
|
-
await response.apply();
|
74
|
-
process.exit(0);
|
75
|
-
}
|
76
|
-
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWZlcmVuY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gdHlwZSBHZW5lcmF0ZU1pZ3JhdGlvbiA9IChiZWZvcmU6IERyaXp6bGVTbmFwc2hvdEpTT04sIGFmdGVyOiBEcml6emxlU25hcHNob3RKU09OKSA9PiBzdHJpbmdbXVxuXG4vLyB0eXBlIEdlbmVyYXRlRHJpenpsZUpTT04gPSAoc2NoZW1hOiBEcml6emxlU2NoZW1hRXhwb3J0cykgPT4gRHJpenpsZVNuYXBzaG90SlNPTlxuXG4vLyB0eXBlIFB1c2hEaWZmID0gKHNjaGVtYTogRHJpenpsZVNjaGVtYUV4cG9ydHMpID0+IFByb21pc2U8eyB3YXJuaW5nczogc3RyaW5nW10sIGFwcGx5OiAoKSA9PiBQcm9taXNlPHZvaWQ+IH0+XG5cbi8vIGRyaXp6bGUta2l0QHV0aWxzXG5cbmltcG9ydCB7IGRyaXp6bGUgfSBmcm9tICdkcml6emxlLW9ybS9ub2RlLXBvc3RncmVzJ1xuaW1wb3J0IHsgUG9vbCB9IGZyb20gJ3BnJ1xuXG5hc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVVzYWdlKCkge1xuICBjb25zdCB7IGdlbmVyYXRlRHJpenpsZUpzb24sIGdlbmVyYXRlTWlncmF0aW9uIH0gPSByZXF1aXJlKCdkcml6emxlLWtpdC91dGlscycpXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBKdXN0IFR5cGVTY3JpcHQgYmVpbmcgYnJva2VuIC8vIFRPRE86IE9wZW4gVHlwZVNjcmlwdCBpc3N1ZVxuICBjb25zdCBzY2hlbWEgPSBhd2FpdCBpbXBvcnQoJy4vZGF0YS91c2VycycpXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgSnVzdCBUeXBlU2NyaXB0IGJlaW5nIGJyb2tlbiAvLyBUT0RPOiBPcGVuIFR5cGVTY3JpcHQgaXNzdWVcbiAgY29uc3Qgc2NoZW1hQWZ0ZXIgPSBhd2FpdCBpbXBvcnQoJy4vZGF0YS91c2Vycy1hZnRlcicpXG5cbiAgY29uc3QgZHJpenpsZUpzb25CZWZvcmUgPSBnZW5lcmF0ZURyaXp6bGVKc29uKHNjaGVtYSlcbiAgY29uc3QgZHJpenpsZUpzb25BZnRlciA9IGdlbmVyYXRlRHJpenpsZUpzb24oc2NoZW1hQWZ0ZXIpXG5cbiAgY29uc3Qgc3FsU3RhdGVtZW50cyA9IGF3YWl0IGdlbmVyYXRlTWlncmF0aW9uKGRyaXp6bGVKc29uQmVmb3JlLCBkcml6emxlSnNvbkFmdGVyKVxuXG4gIGNvbnNvbGUubG9nKHNxbFN0YXRlbWVudHMpXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHB1c2hVc2FnZSgpIHtcbiAgY29uc3QgeyBwdXNoU2NoZW1hIH0gPSByZXF1aXJlKCdkcml6emxlLWtpdC91dGlscycpXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBKdXN0IFR5cGVTY3JpcHQgYmVpbmcgYnJva2VuIC8vIFRPRE86IE9wZW4gVHlwZVNjcmlwdCBpc3N1ZVxuICBjb25zdCBzY2hlbWFBZnRlciA9IGF3YWl0IGltcG9ydCgnLi9kYXRhL3VzZXJzLWFmdGVyJylcblxuICBjb25zdCBkYiA9IGRyaXp6bGUobmV3IFBvb2woeyBjb25uZWN0aW9uU3RyaW5nOiAnJyB9KSlcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHB1c2hTY2hlbWEoc2NoZW1hQWZ0ZXIsIGRiKVxuXG4gIGNvbnNvbGUubG9nKCdcXG4nKVxuICBjb25zb2xlLmxvZygnaGFzRGF0YUxvc3M6ICcsIHJlc3BvbnNlLmhhc0RhdGFMb3NzKVxuICBjb25zb2xlLmxvZygnd2FybmluZ3M6ICcsIHJlc3BvbnNlLndhcm5pbmdzKVxuICBjb25zb2xlLmxvZygnc3RhdGVtZW50czogJywgcmVzcG9uc2Uuc3RhdGVtZW50c1RvRXhlY3V0ZSlcblxuICBhd2FpdCByZXNwb25zZS5hcHBseSgpXG5cbiAgcHJvY2Vzcy5leGl0KDApXG59XG4iXSwibmFtZXMiOlsiZ2VuZXJhdGVVc2FnZSIsImdlbmVyYXRlRHJpenpsZUpzb24iLCJnZW5lcmF0ZU1pZ3JhdGlvbiIsInJlcXVpcmUiLCJzY2hlbWEiLCJzY2hlbWFBZnRlciIsImRyaXp6bGVKc29uQmVmb3JlIiwiZHJpenpsZUpzb25BZnRlciIsInNxbFN0YXRlbWVudHMiLCJjb25zb2xlIiwibG9nIiwicHVzaFVzYWdlIiwicHVzaFNjaGVtYSIsImRiIiwiZHJpenpsZSIsIlBvb2wiLCJjb25uZWN0aW9uU3RyaW5nIiwicmVzcG9uc2UiLCJoYXNEYXRhTG9zcyIsIndhcm5pbmdzIiwic3RhdGVtZW50c1RvRXhlY3V0ZSIsImFwcGx5IiwicHJvY2VzcyIsImV4aXQiXSwibWFwcGluZ3MiOiJBQUFBLGlHQUFpRztBQUVqRyxtRkFBbUY7QUFFbkYsZ0hBQWdIO0FBRWhILG9CQUFvQjs7Ozs7OEJBRUk7b0JBQ0g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFckIsZUFBZUE7SUFDYixNQUFNLEVBQUVDLG1CQUFtQixFQUFFQyxpQkFBaUIsRUFBRSxHQUFHQyxRQUFRO0lBRTNELCtFQUErRTtJQUMvRSxNQUFNQyxTQUFTLE1BQU0sbUVBQUEsUUFBTztJQUM1QiwrRUFBK0U7SUFDL0UsTUFBTUMsY0FBYyxNQUFNLG1FQUFBLFFBQU87SUFFakMsTUFBTUMsb0JBQW9CTCxvQkFBb0JHO0lBQzlDLE1BQU1HLG1CQUFtQk4sb0JBQW9CSTtJQUU3QyxNQUFNRyxnQkFBZ0IsTUFBTU4sa0JBQWtCSSxtQkFBbUJDO0lBRWpFRSxRQUFRQyxHQUFHLENBQUNGO0FBQ2Q7QUFFQSxlQUFlRztJQUNiLE1BQU0sRUFBRUMsVUFBVSxFQUFFLEdBQUdULFFBQVE7SUFFL0IsK0VBQStFO0lBQy9FLE1BQU1FLGNBQWMsTUFBTSxtRUFBQSxRQUFPO0lBRWpDLE1BQU1RLEtBQUtDLElBQUFBLHFCQUFPLEVBQUMsSUFBSUMsUUFBSSxDQUFDO1FBQUVDLGtCQUFrQjtJQUFHO0lBRW5ELE1BQU1DLFdBQVcsTUFBTUwsV0FBV1AsYUFBYVE7SUFFL0NKLFFBQVFDLEdBQUcsQ0FBQztJQUNaRCxRQUFRQyxHQUFHLENBQUMsaUJBQWlCTyxTQUFTQyxXQUFXO0lBQ2pEVCxRQUFRQyxHQUFHLENBQUMsY0FBY08sU0FBU0UsUUFBUTtJQUMzQ1YsUUFBUUMsR0FBRyxDQUFDLGdCQUFnQk8sU0FBU0csbUJBQW1CO0lBRXhELE1BQU1ILFNBQVNJLEtBQUs7SUFFcEJDLFFBQVFDLElBQUksQ0FBQztBQUNmIn0=
|