@gannochenko/staticstripes 0.0.12 → 0.0.14
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.
- package/Makefile +20 -0
- package/dist/asset-manager.d.ts +1 -0
- package/dist/asset-manager.d.ts.map +1 -1
- package/dist/asset-manager.js +3 -0
- package/dist/asset-manager.js.map +1 -1
- package/dist/cli/ai-generation-strategy-factory.d.ts +23 -0
- package/dist/cli/ai-generation-strategy-factory.d.ts.map +1 -0
- package/dist/cli/ai-generation-strategy-factory.js +44 -0
- package/dist/cli/ai-generation-strategy-factory.js.map +1 -0
- package/dist/cli/ai-generation-strategy.d.ts +33 -0
- package/dist/cli/ai-generation-strategy.d.ts.map +1 -0
- package/dist/cli/ai-generation-strategy.js +3 -0
- package/dist/cli/ai-generation-strategy.js.map +1 -0
- package/dist/cli/ai-music-api-ai/ai-music-api-ai-generation-strategy.d.ts +38 -0
- package/dist/cli/ai-music-api-ai/ai-music-api-ai-generation-strategy.d.ts.map +1 -0
- package/dist/cli/ai-music-api-ai/ai-music-api-ai-generation-strategy.js +174 -0
- package/dist/cli/ai-music-api-ai/ai-music-api-ai-generation-strategy.js.map +1 -0
- package/dist/cli/auth-strategy-factory.d.ts +31 -0
- package/dist/cli/auth-strategy-factory.d.ts.map +1 -0
- package/dist/cli/auth-strategy-factory.js +61 -0
- package/dist/cli/auth-strategy-factory.js.map +1 -0
- package/dist/cli/auth-strategy.d.ts +31 -0
- package/dist/cli/auth-strategy.d.ts.map +1 -0
- package/dist/cli/auth-strategy.js +3 -0
- package/dist/cli/auth-strategy.js.map +1 -0
- package/dist/cli/commands/auth.d.ts +6 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +103 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +69 -2
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/instagram/instagram-auth-strategy.d.ts +31 -0
- package/dist/cli/instagram/instagram-auth-strategy.d.ts.map +1 -0
- package/dist/cli/instagram/instagram-auth-strategy.js +505 -0
- package/dist/cli/instagram/instagram-auth-strategy.js.map +1 -0
- package/dist/cli/instagram/instagram-upload-strategy.d.ts +45 -0
- package/dist/cli/instagram/instagram-upload-strategy.d.ts.map +1 -0
- package/dist/cli/instagram/instagram-upload-strategy.js +303 -0
- package/dist/cli/instagram/instagram-upload-strategy.js.map +1 -0
- package/dist/cli/s3/s3-upload-strategy.d.ts.map +1 -1
- package/dist/cli/s3/s3-upload-strategy.js +7 -3
- package/dist/cli/s3/s3-upload-strategy.js.map +1 -1
- package/dist/cli/upload-strategy-factory.d.ts +1 -1
- package/dist/cli/upload-strategy-factory.d.ts.map +1 -1
- package/dist/cli/upload-strategy-factory.js +5 -5
- package/dist/cli/upload-strategy-factory.js.map +1 -1
- package/dist/cli/youtube/youtube-auth-strategy.d.ts +11 -0
- package/dist/cli/youtube/youtube-auth-strategy.d.ts.map +1 -0
- package/dist/cli/youtube/youtube-auth-strategy.js +320 -0
- package/dist/cli/youtube/youtube-auth-strategy.js.map +1 -0
- package/dist/cli/youtube/youtube-upload-strategy.d.ts +10 -3
- package/dist/cli/youtube/youtube-upload-strategy.d.ts.map +1 -1
- package/dist/cli/youtube/youtube-upload-strategy.js +96 -16
- package/dist/cli/youtube/youtube-upload-strategy.js.map +1 -1
- package/dist/cli.js +2 -3
- package/dist/cli.js.map +1 -1
- package/dist/html-project-parser.d.ts +40 -1
- package/dist/html-project-parser.d.ts.map +1 -1
- package/dist/html-project-parser.js +343 -9
- package/dist/html-project-parser.js.map +1 -1
- package/dist/lib/file.d.ts +2 -0
- package/dist/lib/file.d.ts.map +1 -0
- package/dist/lib/file.js +13 -0
- package/dist/lib/file.js.map +1 -0
- package/dist/lib/net.d.ts +19 -0
- package/dist/lib/net.d.ts.map +1 -0
- package/dist/lib/net.js +101 -0
- package/dist/lib/net.js.map +1 -0
- package/dist/project.d.ts +5 -2
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +9 -1
- package/dist/project.js.map +1 -1
- package/dist/type.d.ts +17 -0
- package/dist/type.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/asset-manager.ts +4 -0
- package/src/cli/ai-generation-strategy-factory.ts +48 -0
- package/src/cli/ai-generation-strategy.ts +35 -0
- package/src/cli/ai-music-api-ai/ai-music-api-ai-generation-strategy.ts +266 -0
- package/src/cli/auth-strategy-factory.ts +67 -0
- package/src/cli/auth-strategy.ts +37 -0
- package/src/cli/commands/auth.ts +120 -0
- package/src/cli/commands/generate.ts +55 -2
- package/src/cli/instagram/instagram-auth-strategy.ts +569 -0
- package/src/cli/instagram/instagram-upload-strategy.ts +398 -0
- package/src/cli/s3/s3-upload-strategy.ts +7 -3
- package/src/cli/upload-strategy-factory.ts +6 -9
- package/src/cli/youtube/youtube-auth-strategy.ts +323 -0
- package/src/cli/youtube/youtube-upload-strategy.ts +147 -16
- package/src/cli.ts +2 -4
- package/src/html-project-parser.ts +429 -8
- package/src/lib/file.ts +11 -0
- package/src/lib/net.ts +120 -0
- package/src/project.ts +10 -0
- package/src/type.ts +19 -0
- package/dist/cli/youtube/auth-commands.d.ts +0 -3
- package/dist/cli/youtube/auth-commands.d.ts.map +0 -1
- package/dist/cli/youtube/auth-commands.js +0 -273
- package/dist/cli/youtube/auth-commands.js.map +0 -1
- package/dist/cli/youtube/cli.d.ts +0 -7
- package/dist/cli/youtube/cli.d.ts.map +0 -1
- package/dist/cli/youtube/cli.js +0 -13
- package/dist/cli/youtube/cli.js.map +0 -1
- package/dist/cli/youtube/upload-handler.d.ts +0 -12
- package/dist/cli/youtube/upload-handler.d.ts.map +0 -1
- package/dist/cli/youtube/upload-handler.js +0 -66
- package/dist/cli/youtube/upload-handler.js.map +0 -1
- package/src/cli/youtube/auth-commands.ts +0 -312
- package/src/cli/youtube/cli.ts +0 -11
- package/src/cli/youtube/upload-handler.ts +0 -101
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerAuthCommand = registerAuthCommand;
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const html_parser_js_1 = require("../../html-parser.js");
|
|
7
|
+
const html_project_parser_js_1 = require("../../html-project-parser.js");
|
|
8
|
+
const auth_strategy_factory_js_1 = require("../auth-strategy-factory.js");
|
|
9
|
+
/**
|
|
10
|
+
* Registers the generic auth command that works with any upload provider
|
|
11
|
+
*/
|
|
12
|
+
function registerAuthCommand(program, handleError) {
|
|
13
|
+
program
|
|
14
|
+
.command('auth')
|
|
15
|
+
.description('Authenticate with upload provider (YouTube, Instagram, etc.)')
|
|
16
|
+
.option('-p, --project <path>', 'Path to project directory', '.')
|
|
17
|
+
.requiredOption('--upload-name <name>', 'Name of the upload configuration')
|
|
18
|
+
.option('--oauth-redirect-url <url>', 'OAuth redirect URL (e.g., https://your-ngrok-url.ngrok-free.app/oauth2callback). ' +
|
|
19
|
+
'Required for Instagram if using ngrok/Cloudflare. Defaults to http://localhost:3000/oauth2callback')
|
|
20
|
+
.action(async (options) => {
|
|
21
|
+
try {
|
|
22
|
+
// Resolve project path
|
|
23
|
+
const projectPath = (0, path_1.resolve)(process.cwd(), options.project);
|
|
24
|
+
const projectFilePath = (0, path_1.resolve)(projectPath, 'project.html');
|
|
25
|
+
// Validate project.html exists
|
|
26
|
+
if (!(0, fs_1.existsSync)(projectFilePath)) {
|
|
27
|
+
console.error(`❌ Error: project.html not found in ${projectPath}`);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
console.log(`📁 Project: ${projectPath}\n`);
|
|
31
|
+
// Parse the project HTML file
|
|
32
|
+
const parser = new html_project_parser_js_1.HTMLProjectParser(await new html_parser_js_1.HTMLParser().parseFile(projectFilePath), projectFilePath);
|
|
33
|
+
const project = await parser.parse();
|
|
34
|
+
// Get the upload configuration
|
|
35
|
+
const upload = project.getUpload(options.uploadName);
|
|
36
|
+
if (!upload) {
|
|
37
|
+
const availableUploads = Array.from(project.getUploads().keys());
|
|
38
|
+
console.error(`❌ Upload "${options.uploadName}" not found in project.html\n`);
|
|
39
|
+
if (availableUploads.length > 0) {
|
|
40
|
+
console.error(`Available uploads: ${availableUploads.join(', ')}`);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
console.error('No uploads defined in project.html');
|
|
44
|
+
}
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
// Get the appropriate strategy for this upload tag
|
|
48
|
+
const factory = auth_strategy_factory_js_1.AuthStrategyFactory.createDefault();
|
|
49
|
+
try {
|
|
50
|
+
const strategy = factory.getStrategy(upload.tag);
|
|
51
|
+
// Execute the authentication with options
|
|
52
|
+
await strategy.execute(options.uploadName, projectPath, {
|
|
53
|
+
oauthRedirectUrl: options.oauthRedirectUrl,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
// If strategy not found, show available options and setup instructions
|
|
58
|
+
if (error.message.includes('No authentication strategy')) {
|
|
59
|
+
console.error(`\n${error.message}\n`);
|
|
60
|
+
// Show setup instructions if available
|
|
61
|
+
const instructions = factory.getSetupInstructions(upload.tag);
|
|
62
|
+
if (instructions) {
|
|
63
|
+
console.error('📋 Setup Instructions:');
|
|
64
|
+
console.error(instructions);
|
|
65
|
+
}
|
|
66
|
+
console.error('\n💡 Tip: Make sure required environment variables are set\n');
|
|
67
|
+
}
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
handleError(error, 'Authentication');
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
// Add auth-help command to show setup instructions
|
|
77
|
+
program
|
|
78
|
+
.command('auth-help')
|
|
79
|
+
.description('Show authentication setup instructions for a provider')
|
|
80
|
+
.argument('<provider>', 'Provider name (youtube, instagram, etc.)')
|
|
81
|
+
.action((provider) => {
|
|
82
|
+
try {
|
|
83
|
+
const factory = auth_strategy_factory_js_1.AuthStrategyFactory.createDefault();
|
|
84
|
+
const instructions = factory.getSetupInstructions(provider);
|
|
85
|
+
if (instructions) {
|
|
86
|
+
console.log(instructions);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const availableProviders = factory.listProviders();
|
|
90
|
+
console.error(`❌ No setup instructions available for "${provider}"\n`);
|
|
91
|
+
if (availableProviders.length > 0) {
|
|
92
|
+
console.error(`Available providers: ${availableProviders.join(', ')}\n`);
|
|
93
|
+
}
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.error(`\n❌ Error: ${error.message}\n`);
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,OAAO,EAC1B,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,GACnD,IAAI,
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,OAAO,EAC1B,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,GACnD,IAAI,CAgON"}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.registerGenerateCommand = registerGenerateCommand;
|
|
4
37
|
const path_1 = require("path");
|
|
@@ -31,7 +64,41 @@ function registerGenerateCommand(program, isDebugMode, handleError) {
|
|
|
31
64
|
}
|
|
32
65
|
console.log(`📁 Project: ${projectPath}`);
|
|
33
66
|
console.log(`📄 Loading: ${projectFilePath}\n`);
|
|
34
|
-
//
|
|
67
|
+
// Step 1: Light parse to extract AI generation requirements
|
|
68
|
+
const lightParser = new html_project_parser_js_1.HTMLProjectParser(await new html_parser_js_1.HTMLParser().parseFile(projectFilePath), projectFilePath);
|
|
69
|
+
const aiRequirements = lightParser.extractAIGenerationRequirements();
|
|
70
|
+
// Step 2: Generate AI assets if needed
|
|
71
|
+
if (aiRequirements.assetsToGenerate.length > 0) {
|
|
72
|
+
console.log('\n=== Generating AI Assets ===\n');
|
|
73
|
+
const { AIGenerationStrategyFactory } = await Promise.resolve().then(() => __importStar(require('../../cli/ai-generation-strategy-factory.js')));
|
|
74
|
+
const factory = AIGenerationStrategyFactory.createDefault();
|
|
75
|
+
for (const assetReq of aiRequirements.assetsToGenerate) {
|
|
76
|
+
const provider = aiRequirements.providers.get(assetReq.integrationName);
|
|
77
|
+
if (!provider) {
|
|
78
|
+
throw new Error(`AI provider "${assetReq.integrationName}" not found for asset "${assetReq.name}"`);
|
|
79
|
+
}
|
|
80
|
+
const strategy = factory.getStrategy(provider.tag);
|
|
81
|
+
console.log(`Generating asset "${assetReq.name}" using provider "${provider.name}" (${provider.tag})...`);
|
|
82
|
+
const config = {
|
|
83
|
+
assetName: assetReq.name,
|
|
84
|
+
assetPath: assetReq.path,
|
|
85
|
+
integrationName: provider.name,
|
|
86
|
+
prompt: assetReq.prompt,
|
|
87
|
+
model: provider.model,
|
|
88
|
+
duration: assetReq.duration,
|
|
89
|
+
};
|
|
90
|
+
try {
|
|
91
|
+
strategy.validate();
|
|
92
|
+
await strategy.generate(config, projectPath);
|
|
93
|
+
console.log(`✓ Generated asset "${assetReq.name}"`);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
throw new Error(`Failed to generate asset "${assetReq.name}": ${error instanceof Error ? error.message : String(error)}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
console.log('\n');
|
|
100
|
+
}
|
|
101
|
+
// Step 3: Full parse to get outputs (now all AI assets exist)
|
|
35
102
|
const initialParser = new html_project_parser_js_1.HTMLProjectParser(await new html_parser_js_1.HTMLParser().parseFile(projectFilePath), projectFilePath);
|
|
36
103
|
const initialProject = await initialParser.parse();
|
|
37
104
|
// Determine which outputs to render
|
|
@@ -51,7 +118,7 @@ function registerGenerateCommand(program, isDebugMode, handleError) {
|
|
|
51
118
|
console.log(`🎬 Rendering outputs: ${outputsToRender.join(', ')}\n`);
|
|
52
119
|
// Create a shared cache key store for all outputs
|
|
53
120
|
const activeCacheKeys = new Set();
|
|
54
|
-
// Render each output
|
|
121
|
+
// Step 4: Render each output
|
|
55
122
|
for (const outputName of outputsToRender) {
|
|
56
123
|
// Re-parse the project for each output to ensure clean state
|
|
57
124
|
const parser = new html_project_parser_js_1.HTMLProjectParser(await new html_parser_js_1.HTMLParser().parseFile(projectFilePath), projectFilePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { AuthStrategy, AuthOptions } from '../auth-strategy';
|
|
2
|
+
/**
|
|
3
|
+
* Instagram authentication strategy
|
|
4
|
+
* Automatic OAuth flow with browser redirect (like YouTube)
|
|
5
|
+
*/
|
|
6
|
+
export declare class InstagramAuthStrategy implements AuthStrategy {
|
|
7
|
+
getTag(): string;
|
|
8
|
+
execute(uploadName: string, projectPath: string, options?: AuthOptions): Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* Generates Instagram OAuth authorization URL
|
|
11
|
+
*/
|
|
12
|
+
private getAuthUrl;
|
|
13
|
+
/**
|
|
14
|
+
* Starts local HTTP server and waits for OAuth callback
|
|
15
|
+
*/
|
|
16
|
+
private waitForAuthCode;
|
|
17
|
+
/**
|
|
18
|
+
* Exchanges authorization code for short-lived access token
|
|
19
|
+
*/
|
|
20
|
+
private exchangeCodeForToken;
|
|
21
|
+
/**
|
|
22
|
+
* Exchanges short-lived token for long-lived token (60 days)
|
|
23
|
+
*/
|
|
24
|
+
private exchangeForLongLivedToken;
|
|
25
|
+
/**
|
|
26
|
+
* Gets the Instagram user ID and username from the /me endpoint
|
|
27
|
+
*/
|
|
28
|
+
private getInstagramUserId;
|
|
29
|
+
getSetupInstructions(): string;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=instagram-auth-strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instagram-auth-strategy.d.ts","sourceRoot":"","sources":["../../../src/cli/instagram/instagram-auth-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQ7D;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACxD,MAAM,IAAI,MAAM;IAIV,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC;IAuHhB;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;OAEG;YACW,eAAe;IA0G7B;;OAEG;YACW,oBAAoB;IAsClC;;OAEG;YACW,yBAAyB;IA8BvC;;OAEG;YACW,kBAAkB;IA4BhC,oBAAoB,IAAI,MAAM;CAuM/B"}
|