lpgp 0.2.0

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 (48) hide show
  1. package/LICENSE +52 -0
  2. package/README.md +218 -0
  3. package/dist/config.d.ts +17 -0
  4. package/dist/config.d.ts.map +1 -0
  5. package/dist/config.js +31 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/db.d.ts +80 -0
  8. package/dist/db.d.ts.map +1 -0
  9. package/dist/db.js +284 -0
  10. package/dist/db.js.map +1 -0
  11. package/dist/decrypt.d.ts +2 -0
  12. package/dist/decrypt.d.ts.map +1 -0
  13. package/dist/decrypt.js +25 -0
  14. package/dist/decrypt.js.map +1 -0
  15. package/dist/encrypt.d.ts +2 -0
  16. package/dist/encrypt.d.ts.map +1 -0
  17. package/dist/encrypt.js +18 -0
  18. package/dist/encrypt.js.map +1 -0
  19. package/dist/key-manager.d.ts +119 -0
  20. package/dist/key-manager.d.ts.map +1 -0
  21. package/dist/key-manager.js +1235 -0
  22. package/dist/key-manager.js.map +1 -0
  23. package/dist/key-utils.d.ts +47 -0
  24. package/dist/key-utils.d.ts.map +1 -0
  25. package/dist/key-utils.js +199 -0
  26. package/dist/key-utils.js.map +1 -0
  27. package/dist/keychain.d.ts +22 -0
  28. package/dist/keychain.d.ts.map +1 -0
  29. package/dist/keychain.js +73 -0
  30. package/dist/keychain.js.map +1 -0
  31. package/dist/pgp-tool.d.ts +3 -0
  32. package/dist/pgp-tool.d.ts.map +1 -0
  33. package/dist/pgp-tool.js +1061 -0
  34. package/dist/pgp-tool.js.map +1 -0
  35. package/dist/prompts.d.ts +11 -0
  36. package/dist/prompts.d.ts.map +1 -0
  37. package/dist/prompts.js +109 -0
  38. package/dist/prompts.js.map +1 -0
  39. package/dist/schema.sql +86 -0
  40. package/dist/system-keys.d.ts +32 -0
  41. package/dist/system-keys.d.ts.map +1 -0
  42. package/dist/system-keys.js +123 -0
  43. package/dist/system-keys.js.map +1 -0
  44. package/dist/ui.d.ts +94 -0
  45. package/dist/ui.d.ts.map +1 -0
  46. package/dist/ui.js +175 -0
  47. package/dist/ui.js.map +1 -0
  48. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pgp-tool.js","sourceRoot":"","sources":["../src/pgp-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare const BACK_VALUE = "__back__";
2
+ export declare const MAIN_MENU_VALUE = "__main__";
3
+ export declare const ESCAPE_VALUE = "__escape__";
4
+ export declare class EscapeError extends Error {
5
+ constructor();
6
+ }
7
+ export declare function enableGlobalEscape(): void;
8
+ export declare function disableGlobalEscape(): void;
9
+ export declare function checkAndResetEscape(): boolean;
10
+ export declare function escapeablePrompt<T = any>(questions: any): Promise<T>;
11
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,aAAa,CAAA;AACpC,eAAO,MAAM,eAAe,aAAa,CAAA;AACzC,eAAO,MAAM,YAAY,eAAe,CAAA;AASxC,qBAAa,WAAY,SAAQ,KAAK;;CAKrC;AAmCD,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC;AAGD,wBAAgB,mBAAmB,IAAI,IAAI,CAO1C;AAGD,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C;AAID,wBAAsB,gBAAgB,CAAC,CAAC,GAAG,GAAG,EAE5C,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,CAAC,CAAC,CAoCZ"}
@@ -0,0 +1,109 @@
1
+ import inquirer from 'inquirer';
2
+ import chalk from 'chalk';
3
+ // Navigation sentinel values for menu navigation
4
+ export const BACK_VALUE = '__back__';
5
+ export const MAIN_MENU_VALUE = '__main__';
6
+ export const ESCAPE_VALUE = '__escape__';
7
+ // Global escape handler state
8
+ let globalEscapeEnabled = false;
9
+ let escapeTriggered = false;
10
+ let escapeReject = null;
11
+ let currentPromptUi = null;
12
+ // Custom error class for escape key press
13
+ export class EscapeError extends Error {
14
+ constructor() {
15
+ super('Escape pressed');
16
+ this.name = 'EscapeError';
17
+ }
18
+ }
19
+ // Handler for escape key detection
20
+ function onEscapeData(data) {
21
+ // Ctrl+C is byte 3 - handle graceful exit
22
+ if (data.length === 1 && data[0] === 3) {
23
+ console.log(chalk.gray('\n Goodbye!\n'));
24
+ process.exit(0);
25
+ }
26
+ // Escape key is byte 27 (0x1b) by itself
27
+ // Arrow keys and other sequences start with 27 but have more bytes
28
+ if (data.length === 1 && data[0] === 27) {
29
+ escapeTriggered = true;
30
+ // First reject the escape promise to interrupt the prompt
31
+ if (escapeReject) {
32
+ const reject = escapeReject;
33
+ escapeReject = null;
34
+ reject(new EscapeError());
35
+ }
36
+ // Then close the prompt UI to stop it from rendering
37
+ if (currentPromptUi?.close) {
38
+ try {
39
+ currentPromptUi.close();
40
+ }
41
+ catch {
42
+ // Swallow errors from inquirer internals
43
+ }
44
+ currentPromptUi = null;
45
+ }
46
+ // Clear the screen
47
+ console.clear();
48
+ }
49
+ }
50
+ // Enable global escape key handling for the interactive menu
51
+ export function enableGlobalEscape() {
52
+ if (globalEscapeEnabled)
53
+ return;
54
+ globalEscapeEnabled = true;
55
+ process.stdin.on('data', onEscapeData);
56
+ }
57
+ // Disable global escape key handling and clean up state
58
+ export function disableGlobalEscape() {
59
+ if (!globalEscapeEnabled)
60
+ return;
61
+ process.stdin.off('data', onEscapeData);
62
+ globalEscapeEnabled = false;
63
+ escapeTriggered = false;
64
+ escapeReject = null;
65
+ currentPromptUi = null;
66
+ }
67
+ // Check if escape was triggered and reset the flag
68
+ export function checkAndResetEscape() {
69
+ const wasTriggered = escapeTriggered;
70
+ escapeTriggered = false;
71
+ return wasTriggered;
72
+ }
73
+ // Wrapper for inquirer.prompt that supports escape key
74
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
75
+ export async function escapeablePrompt(
76
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
77
+ questions) {
78
+ // Detect non-interactive mode
79
+ if (!process.stdin.isTTY) {
80
+ throw new Error('Cannot prompt in non-interactive mode.');
81
+ }
82
+ // Create a promise that rejects when escape is pressed
83
+ const escapePromise = new Promise((_, reject) => {
84
+ escapeReject = reject;
85
+ });
86
+ try {
87
+ const p = inquirer.prompt(questions);
88
+ // Register the prompt UI so we can close it on escape
89
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
+ const promptWithUi = p;
91
+ if (promptWithUi.ui &&
92
+ typeof promptWithUi.ui === 'object' &&
93
+ promptWithUi.ui !== null &&
94
+ typeof promptWithUi.ui.close === 'function') {
95
+ currentPromptUi = promptWithUi.ui;
96
+ }
97
+ else {
98
+ currentPromptUi = null;
99
+ }
100
+ // Race the prompt against the escape promise
101
+ const result = (await Promise.race([p, escapePromise]));
102
+ return result;
103
+ }
104
+ finally {
105
+ escapeReject = null;
106
+ currentPromptUi = null;
107
+ }
108
+ }
109
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ -- SQLite Schema for PGP Key Manager
2
+ -- This schema defines the database structure for managing PGP keypairs, contacts, and settings
3
+
4
+ -- Table: keypair
5
+ -- Stores your own keypairs (you have both public and private keys)
6
+ CREATE TABLE IF NOT EXISTS keypair (
7
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
8
+ name TEXT NOT NULL, -- e.g., "Work", "Personal"
9
+ email TEXT NOT NULL UNIQUE, -- Your email address
10
+ fingerprint TEXT NOT NULL UNIQUE, -- Unique identifier for the keypair
11
+ public_key TEXT NOT NULL, -- Armored public key
12
+ private_key TEXT NOT NULL, -- Armored private key
13
+ passphrase_protected INTEGER NOT NULL, -- Boolean: 1 if passphrase-protected, 0 otherwise
14
+
15
+ -- Key metadata
16
+ algorithm TEXT NOT NULL, -- e.g., "RSA", "EdDSA", "ECDSA"
17
+ key_size TEXT NOT NULL, -- e.g., "4096", "ed25519"
18
+
19
+ -- Key capabilities
20
+ can_sign INTEGER NOT NULL DEFAULT 1,
21
+ can_encrypt INTEGER NOT NULL DEFAULT 1,
22
+ can_certify INTEGER NOT NULL DEFAULT 0,
23
+ can_authenticate INTEGER NOT NULL DEFAULT 0,
24
+
25
+ -- Lifecycle tracking
26
+ expires_at TEXT, -- ISO 8601 date or NULL for no expiration
27
+ revoked INTEGER NOT NULL DEFAULT 0, -- Boolean: 1 if revoked, 0 otherwise
28
+ revocation_reason TEXT, -- Optional reason for revocation
29
+
30
+ -- Timestamps
31
+ created_at TEXT NOT NULL, -- ISO 8601 timestamp
32
+ updated_at TEXT NOT NULL, -- ISO 8601 timestamp
33
+ last_used_at TEXT, -- ISO 8601 timestamp, NULL if never used
34
+
35
+ -- Default keypair selection
36
+ is_default INTEGER NOT NULL DEFAULT 0 -- Boolean: 1 if default, 0 otherwise
37
+ );
38
+
39
+ -- Table: contact
40
+ -- Stores other people's public keys (for encrypting messages to them)
41
+ CREATE TABLE IF NOT EXISTS contact (
42
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
43
+ name TEXT NOT NULL, -- Contact's name
44
+ email TEXT NOT NULL, -- Contact's email
45
+ fingerprint TEXT NOT NULL UNIQUE, -- Unique identifier for the key
46
+ public_key TEXT NOT NULL, -- Armored public key
47
+
48
+ -- Key metadata
49
+ algorithm TEXT NOT NULL, -- e.g., "RSA", "EdDSA", "ECDSA"
50
+ key_size TEXT NOT NULL, -- e.g., "4096", "ed25519"
51
+
52
+ -- Trust and verification
53
+ trusted INTEGER NOT NULL DEFAULT 0, -- Boolean: 1 if verified, 0 otherwise
54
+ last_verified_at TEXT, -- ISO 8601 timestamp, NULL if never verified
55
+ notes TEXT, -- Optional notes about this contact
56
+
57
+ -- Lifecycle tracking
58
+ expires_at TEXT, -- ISO 8601 date or NULL for no expiration
59
+ revoked INTEGER NOT NULL DEFAULT 0, -- Boolean: 1 if revoked, 0 otherwise
60
+
61
+ -- Timestamps
62
+ created_at TEXT NOT NULL, -- ISO 8601 timestamp
63
+ updated_at TEXT NOT NULL -- ISO 8601 timestamp
64
+ );
65
+
66
+ -- Table: settings
67
+ -- Stores application settings (single row with typed fields)
68
+ CREATE TABLE IF NOT EXISTS settings (
69
+ id INTEGER PRIMARY KEY CHECK (id = 1), -- Ensure only one row exists
70
+ default_keypair_id INTEGER, -- References keypair.id
71
+ auto_sign_messages INTEGER NOT NULL DEFAULT 0,
72
+ prefer_inline_pgp INTEGER NOT NULL DEFAULT 1,
73
+ keyserver_url TEXT NOT NULL DEFAULT 'https://keys.openpgp.org',
74
+
75
+ FOREIGN KEY (default_keypair_id) REFERENCES keypair(id) ON DELETE SET NULL
76
+ );
77
+
78
+ -- Indexes for fast lookups
79
+ CREATE INDEX IF NOT EXISTS idx_keypair_email ON keypair(email);
80
+ CREATE INDEX IF NOT EXISTS idx_keypair_fingerprint ON keypair(fingerprint);
81
+ CREATE INDEX IF NOT EXISTS idx_contact_email ON contact(email);
82
+ CREATE INDEX IF NOT EXISTS idx_contact_fingerprint ON contact(fingerprint);
83
+
84
+ -- Initialize settings table with default values
85
+ INSERT OR IGNORE INTO settings (id, auto_sign_messages, prefer_inline_pgp, keyserver_url)
86
+ VALUES (1, 0, 1, 'https://keys.openpgp.org');
@@ -0,0 +1,32 @@
1
+ export interface SystemKey {
2
+ fingerprint: string;
3
+ uid: string;
4
+ email: string;
5
+ name: string;
6
+ keyId: string;
7
+ type: 'public' | 'secret';
8
+ }
9
+ /**
10
+ * Check if GPG is installed on the system
11
+ */
12
+ export declare function isGpgInstalled(): boolean;
13
+ /**
14
+ * List all GPG keys from the system keyring
15
+ */
16
+ export declare function listGpgKeys(): {
17
+ publicKeys: SystemKey[];
18
+ secretKeys: SystemKey[];
19
+ };
20
+ /**
21
+ * Export a GPG key by fingerprint or key ID
22
+ */
23
+ export declare function exportGpgPublicKey(keyId: string): string | null;
24
+ /**
25
+ * Export a GPG secret key by fingerprint or key ID
26
+ */
27
+ export declare function exportGpgSecretKey(keyId: string): string | null;
28
+ /**
29
+ * Check if a GPG home directory exists
30
+ */
31
+ export declare function getGpgHomeDir(): string | null;
32
+ //# sourceMappingURL=system-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-keys.d.ts","sourceRoot":"","sources":["../src/system-keys.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC1B;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAOxC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI;IAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAiBlF;AA2DD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO/D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAS7C"}
@@ -0,0 +1,123 @@
1
+ import { execSync } from 'child_process';
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ import * as os from 'os';
5
+ /**
6
+ * Check if GPG is installed on the system
7
+ */
8
+ export function isGpgInstalled() {
9
+ try {
10
+ execSync('gpg --version', { stdio: 'ignore' });
11
+ return true;
12
+ }
13
+ catch {
14
+ return false;
15
+ }
16
+ }
17
+ /**
18
+ * List all GPG keys from the system keyring
19
+ */
20
+ export function listGpgKeys() {
21
+ const publicKeys = [];
22
+ const secretKeys = [];
23
+ try {
24
+ // List public keys
25
+ const publicOutput = execSync('gpg --list-keys --with-colons', { encoding: 'utf-8' });
26
+ publicKeys.push(...parseGpgOutput(publicOutput, 'public'));
27
+ // List secret keys
28
+ const secretOutput = execSync('gpg --list-secret-keys --with-colons', { encoding: 'utf-8' });
29
+ secretKeys.push(...parseGpgOutput(secretOutput, 'secret'));
30
+ }
31
+ catch (error) {
32
+ // GPG might not be installed or have no keys
33
+ }
34
+ return { publicKeys, secretKeys };
35
+ }
36
+ /**
37
+ * Parse GPG --list-keys output
38
+ */
39
+ function parseGpgOutput(output, type) {
40
+ const keys = [];
41
+ const lines = output.split('\n');
42
+ let currentKey = null;
43
+ for (const line of lines) {
44
+ const fields = line.split(':');
45
+ const recordType = fields[0];
46
+ if (recordType === 'pub' || recordType === 'sec') {
47
+ // New key
48
+ if (currentKey && currentKey.fingerprint) {
49
+ keys.push(currentKey);
50
+ }
51
+ currentKey = {
52
+ type,
53
+ keyId: fields[4] || '',
54
+ };
55
+ }
56
+ else if (recordType === 'fpr' && currentKey) {
57
+ // Fingerprint
58
+ currentKey.fingerprint = fields[9] || '';
59
+ }
60
+ else if (recordType === 'uid' && currentKey) {
61
+ // User ID (name and email)
62
+ const uid = fields[9] || '';
63
+ currentKey.uid = uid;
64
+ // Parse email from uid (format: "Name <email@example.com>")
65
+ const emailMatch = uid.match(/<([^>]+)>/);
66
+ if (emailMatch && emailMatch[1]) {
67
+ currentKey.email = emailMatch[1];
68
+ }
69
+ else {
70
+ currentKey.email = '';
71
+ }
72
+ // Parse name from uid
73
+ const nameMatch = uid.match(/^([^<]+)/);
74
+ if (nameMatch && nameMatch[1]) {
75
+ currentKey.name = nameMatch[1].trim();
76
+ }
77
+ else {
78
+ currentKey.name = uid;
79
+ }
80
+ }
81
+ }
82
+ // Add the last key
83
+ if (currentKey && currentKey.fingerprint) {
84
+ keys.push(currentKey);
85
+ }
86
+ return keys;
87
+ }
88
+ /**
89
+ * Export a GPG key by fingerprint or key ID
90
+ */
91
+ export function exportGpgPublicKey(keyId) {
92
+ try {
93
+ const output = execSync(`gpg --armor --export ${keyId}`, { encoding: 'utf-8' });
94
+ return output.trim();
95
+ }
96
+ catch (error) {
97
+ return null;
98
+ }
99
+ }
100
+ /**
101
+ * Export a GPG secret key by fingerprint or key ID
102
+ */
103
+ export function exportGpgSecretKey(keyId) {
104
+ try {
105
+ const output = execSync(`gpg --armor --export-secret-keys ${keyId}`, { encoding: 'utf-8' });
106
+ return output.trim();
107
+ }
108
+ catch (error) {
109
+ return null;
110
+ }
111
+ }
112
+ /**
113
+ * Check if a GPG home directory exists
114
+ */
115
+ export function getGpgHomeDir() {
116
+ const homeDir = os.homedir();
117
+ const gpgDir = path.join(homeDir, '.gnupg');
118
+ if (fs.existsSync(gpgDir)) {
119
+ return gpgDir;
120
+ }
121
+ return null;
122
+ }
123
+ //# sourceMappingURL=system-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-keys.js","sourceRoot":"","sources":["../src/system-keys.ts"],"names":[],"mappings":"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"}
package/dist/ui.d.ts ADDED
@@ -0,0 +1,94 @@
1
+ export declare const colors: {
2
+ primary: import("chalk").ChalkInstance;
3
+ primaryBold: import("chalk").ChalkInstance;
4
+ success: import("chalk").ChalkInstance;
5
+ successBold: import("chalk").ChalkInstance;
6
+ warning: import("chalk").ChalkInstance;
7
+ warningBold: import("chalk").ChalkInstance;
8
+ error: import("chalk").ChalkInstance;
9
+ errorBold: import("chalk").ChalkInstance;
10
+ muted: import("chalk").ChalkInstance;
11
+ mutedDim: import("chalk").ChalkInstance;
12
+ accent: import("chalk").ChalkInstance;
13
+ accentBold: import("chalk").ChalkInstance;
14
+ info: import("chalk").ChalkInstance;
15
+ infoBold: import("chalk").ChalkInstance;
16
+ };
17
+ export declare const icons: {
18
+ encrypt: string;
19
+ decrypt: string;
20
+ add: string;
21
+ generate: string;
22
+ import: string;
23
+ export: string;
24
+ back: string;
25
+ home: string;
26
+ exit: string;
27
+ key: string;
28
+ contact: string;
29
+ clipboard: string;
30
+ editor: string;
31
+ inline: string;
32
+ gpg: string;
33
+ success: string;
34
+ error: string;
35
+ warning: string;
36
+ info: string;
37
+ loading: string;
38
+ locked: string;
39
+ unlocked: string;
40
+ default: string;
41
+ selected: string;
42
+ unselected: string;
43
+ edit: string;
44
+ notes: string;
45
+ trust: string;
46
+ copy: string;
47
+ view: string;
48
+ multiple: string;
49
+ loop: string;
50
+ };
51
+ export declare function printBanner(): void;
52
+ export declare function printSectionHeader(title: string): void;
53
+ export declare function printDivider(): void;
54
+ export declare function showSuccess(message: string): void;
55
+ export declare function showError(message: string): void;
56
+ export declare function showWarning(message: string): void;
57
+ export declare function showInfo(message: string): void;
58
+ export declare function showLoading(message: string): void;
59
+ /**
60
+ * Format a menu choice with icon and optional description
61
+ */
62
+ export declare function menuChoice(icon: string, label: string, description?: string): string;
63
+ /**
64
+ * Standard navigation choices for menus
65
+ */
66
+ export declare function backChoice(label?: string): {
67
+ name: string;
68
+ value: string;
69
+ };
70
+ export declare function mainMenuChoice(): {
71
+ name: string;
72
+ value: string;
73
+ };
74
+ export declare function exitChoice(): {
75
+ name: string;
76
+ value: string;
77
+ };
78
+ export declare function cancelChoice(): {
79
+ name: string;
80
+ value: string;
81
+ };
82
+ /**
83
+ * Display content in a bordered box
84
+ */
85
+ export declare function showContentBox(title: string, content: string): void;
86
+ /**
87
+ * Display a key-value pair
88
+ */
89
+ export declare function showKeyValue(key: string, value: string | number | boolean | null): void;
90
+ /**
91
+ * Format a prompt message consistently
92
+ */
93
+ export declare function promptMessage(message: string): string;
94
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CA0BlB,CAAA;AAMD,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CjB,CAAA;AASD,wBAAgB,WAAW,IAAI,IAAI,CAQlC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAOtD;AAED,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAMD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAMD;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,GAAE,MAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAElF;AAED,wBAAgB,cAAc,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAKhE;AAED,wBAAgB,UAAU,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAE5D;AAED,wBAAgB,YAAY,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAE9D;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAGvF;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD"}