cross-seed 5.9.1 → 6.0.0-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 (64) hide show
  1. package/README.md +1 -1
  2. package/dist/Result.js +2 -0
  3. package/dist/Result.js.map +1 -1
  4. package/dist/action.js +117 -57
  5. package/dist/action.js.map +1 -1
  6. package/dist/auth.js +5 -5
  7. package/dist/auth.js.map +1 -1
  8. package/dist/clients/Deluge.js +68 -36
  9. package/dist/clients/Deluge.js.map +1 -1
  10. package/dist/clients/QBittorrent.js +40 -30
  11. package/dist/clients/QBittorrent.js.map +1 -1
  12. package/dist/clients/RTorrent.js +61 -23
  13. package/dist/clients/RTorrent.js.map +1 -1
  14. package/dist/clients/TorrentClient.js.map +1 -1
  15. package/dist/clients/Transmission.js +18 -8
  16. package/dist/clients/Transmission.js.map +1 -1
  17. package/dist/cmd.js +76 -75
  18. package/dist/cmd.js.map +1 -1
  19. package/dist/config.template.cjs +226 -142
  20. package/dist/config.template.cjs.map +1 -1
  21. package/dist/configSchema.js +184 -0
  22. package/dist/configSchema.js.map +1 -0
  23. package/dist/configuration.js +35 -9
  24. package/dist/configuration.js.map +1 -1
  25. package/dist/constants.js +27 -11
  26. package/dist/constants.js.map +1 -1
  27. package/dist/dataFiles.js +17 -8
  28. package/dist/dataFiles.js.map +1 -1
  29. package/dist/decide.js +100 -20
  30. package/dist/decide.js.map +1 -1
  31. package/dist/diff.js.map +1 -1
  32. package/dist/errors.js.map +1 -1
  33. package/dist/indexers.js +3 -3
  34. package/dist/indexers.js.map +1 -1
  35. package/dist/jobs.js +15 -7
  36. package/dist/jobs.js.map +1 -1
  37. package/dist/logger.js +9 -9
  38. package/dist/logger.js.map +1 -1
  39. package/dist/migrations/00-initialSchema.js.map +1 -1
  40. package/dist/migrations/02-timestamps.js +3 -1
  41. package/dist/migrations/02-timestamps.js.map +1 -1
  42. package/dist/parseTorrent.js +11 -2
  43. package/dist/parseTorrent.js.map +1 -1
  44. package/dist/pipeline.js +34 -25
  45. package/dist/pipeline.js.map +1 -1
  46. package/dist/preFilter.js +17 -6
  47. package/dist/preFilter.js.map +1 -1
  48. package/dist/pushNotifier.js +29 -10
  49. package/dist/pushNotifier.js.map +1 -1
  50. package/dist/runtimeConfig.js.map +1 -1
  51. package/dist/searchee.js +8 -1
  52. package/dist/searchee.js.map +1 -1
  53. package/dist/server.js.map +1 -1
  54. package/dist/startup.js +62 -23
  55. package/dist/startup.js.map +1 -1
  56. package/dist/torrent.js +14 -29
  57. package/dist/torrent.js.map +1 -1
  58. package/dist/torznab.js +56 -32
  59. package/dist/torznab.js.map +1 -1
  60. package/dist/utils.js +32 -5
  61. package/dist/utils.js.map +1 -1
  62. package/package.json +23 -13
  63. package/dist/config.template.docker.cjs +0 -236
  64. package/dist/config.template.docker.cjs.map +0 -1
package/dist/cmd.js CHANGED
@@ -1,16 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import chalk from "chalk";
3
3
  import { Option, program } from "commander";
4
- import ms from "ms";
5
- import { inspect } from "util";
6
- import { getApiKeyFromDatabase, resetApiKey } from "./auth.js";
4
+ import { getApiKey, resetApiKey } from "./auth.js";
5
+ import { VALIDATION_SCHEMA, customizeErrorMessage } from "./configSchema.js";
7
6
  import { generateConfig, getFileConfig } from "./configuration.js";
8
7
  import { Action, LinkType, MatchMode, PROGRAM_NAME, PROGRAM_VERSION, } from "./constants.js";
9
8
  import { db } from "./db.js";
10
9
  import { diffCmd } from "./diff.js";
11
- import { exitOnCrossSeedErrors } from "./errors.js";
10
+ import { CrossSeedError, exitOnCrossSeedErrors } from "./errors.js";
12
11
  import { jobsLoop } from "./jobs.js";
13
- import { initializeLogger, Label, logger } from "./logger.js";
12
+ import { Label, initializeLogger, logger } from "./logger.js";
14
13
  import { main, scanRssFeeds } from "./pipeline.js";
15
14
  import { initializePushNotifier, sendTestNotification, } from "./pushNotifier.js";
16
15
  import { setRuntimeConfig } from "./runtimeConfig.js";
@@ -20,32 +19,54 @@ import "./signalHandlers.js";
20
19
  import { doStartupValidation } from "./startup.js";
21
20
  import { parseTorrentFromFilename } from "./torrent.js";
22
21
  import { fallback } from "./utils.js";
23
- function processOptions(options) {
24
- if (options.rssCadence) {
25
- options.rssCadence = Math.max(ms(options.rssCadence), ms("10 minutes"));
26
- }
27
- if (options.searchCadence) {
28
- options.searchCadence = ms(options.searchCadence);
29
- // Set a minimum cadence of once a day if excludeRecentSearch hasn't been set to avoid flooding requests
30
- if (!options.excludeRecentSearch) {
31
- options.searchCadence = Math.max(options.searchCadence, ms("1 day"));
32
- }
33
- }
34
- if (options.excludeOlder) {
35
- options.excludeOlder = ms(options.excludeOlder);
36
- }
37
- if (options.excludeRecentSearch) {
38
- options.excludeRecentSearch = ms(options.excludeRecentSearch);
22
+ import { inspect } from "util";
23
+ let fileConfig;
24
+ try {
25
+ fileConfig = await getFileConfig();
26
+ }
27
+ catch (e) {
28
+ if (e instanceof CrossSeedError) {
29
+ console.error(e.message);
30
+ process.exit(1);
39
31
  }
40
- if (options.snatchTimeout) {
41
- options.snatchTimeout = ms(options.snatchTimeout);
32
+ throw e;
33
+ }
34
+ const apiKeyOption = new Option("--api-key <key>", "Provide your own API key to override the autogenerated one.").default(fileConfig.apiKey);
35
+ /**
36
+ * validates and sets RuntimeConfig
37
+ * @return (the number of errors Zod encountered in the configuration)
38
+ */
39
+ export async function validateAndSetRuntimeConfig(options) {
40
+ initializeLogger(options);
41
+ logger.info(`${PROGRAM_NAME} v${PROGRAM_VERSION}`);
42
+ logger.info("Validating your configuration...");
43
+ try {
44
+ options = VALIDATION_SCHEMA.parse(options, {
45
+ errorMap: customizeErrorMessage,
46
+ });
42
47
  }
43
- if (options.searchTimeout) {
44
- options.searchTimeout = ms(options.searchTimeout);
48
+ catch ({ errors }) {
49
+ logger.verbose({
50
+ label: Label.CONFIGDUMP,
51
+ message: inspect(options),
52
+ });
53
+ errors?.forEach(({ path, message }) => {
54
+ const urlPath = path[0];
55
+ const optionLine = path.length === 2
56
+ ? `${path[0]} (position #${path[1] + 1})`
57
+ : path;
58
+ logger.error(`${path.length > 0 ? `Option: ${optionLine}` : "Configuration:"}\n\t\t\t\t${message}\n\t\t\t\t(https://www.cross-seed.org/docs/basics/options${urlPath ? `#${urlPath}` : ""})\n`);
59
+ });
60
+ if (errors?.length > 0) {
61
+ throw new CrossSeedError(`Your configuration is invalid, please see the ${errors.length > 1 ? "errors" : "error"} above for details.`);
62
+ }
45
63
  }
46
- return options;
64
+ setRuntimeConfig(options);
65
+ initializePushNotifier();
47
66
  }
48
- const fileConfig = await getFileConfig();
67
+ /**
68
+ * parsing and processing of CLI and config file
69
+ */
49
70
  function createCommandWithSharedOptions(name, description) {
50
71
  return program
51
72
  .command(name)
@@ -56,54 +77,55 @@ function createCommandWithSharedOptions(name, description) {
56
77
  .option("--data-dirs <dirs...>", "Directories to use if searching by data instead of torrents (separated by spaces)",
57
78
  // @ts-expect-error commander supports non-string defaults
58
79
  fallback(fileConfig.dataDirs))
59
- .addOption(new Option("--match-mode <mode>", "Safe will only download torrents with perfect matches. Risky will allow for renames and more matches, but might cause false positives")
80
+ .addOption(new Option("--match-mode <mode>", "Safe will only download torrents with perfect matches. Risky will allow for renames and more matches, but might cause false positives. Partial is like risky but it ignores small files like .nfo/.srt if missing.")
60
81
  .default(fallback(fileConfig.matchMode, MatchMode.SAFE))
61
82
  .choices(Object.values(MatchMode))
62
83
  .makeOptionMandatory())
63
84
  .option("--data-category <cat>", "Category to assign torrents from data-based matching", fallback(fileConfig.dataCategory, "cross-seed-data"))
64
85
  .option("--link-dir <dir>", "Directory to output data-matched hardlinks to", fileConfig.linkDir)
86
+ .option("--legacy-linking", "Use flat linking directory structure (without individual tracker folders)", fallback(fileConfig.legacyLinking, false))
65
87
  .addOption(new Option("--link-type <type>", "Use links of this type to inject data-based matches into your client")
66
88
  .default(fallback(fileConfig.linkType, LinkType.SYMLINK))
67
89
  .choices(Object.values(LinkType))
68
90
  .makeOptionMandatory())
69
91
  .option("--skip-recheck", "Skips torrent recheck upon adding to QBittorrent", fallback(fileConfig.skipRecheck, false))
70
- .requiredOption("--max-data-depth <depth>", "Max depth to look for searchees in dataDirs", (n) => parseInt(n), fallback(fileConfig.maxDataDepth, 2))
71
- .requiredOption("-i, --torrent-dir <dir>", "Directory with torrent files", fileConfig.torrentDir)
72
- .requiredOption("-s, --output-dir <dir>", "Directory to save results in", fileConfig.outputDir)
73
- .requiredOption("--include-non-videos", "Include torrents which contain non-video files", fallback(fileConfig.includeNonVideos, false))
92
+ .option("--max-data-depth <depth>", "Max depth to look for searchees in dataDirs", (n) => parseInt(n), fallback(fileConfig.maxDataDepth, 2))
93
+ .option("-i, --torrent-dir <dir>", "Directory with torrent files", fileConfig.torrentDir)
94
+ .option("-s, --output-dir <dir>", "Directory to save results in", fileConfig.outputDir)
95
+ .option("--include-non-videos", "Include torrents which contain non-video files", fallback(fileConfig.includeNonVideos, false))
74
96
  .option("-e, --include-episodes", "Include all episode torrents in the search (including from season packs)", fallback(fileConfig.includeEpisodes, false))
75
97
  .option("--include-single-episodes", "Include single episode torrents in the search", fallback(fileConfig.includeSingleEpisodes, false))
76
98
  .option("--no-include-non-videos", "Don't include torrents which contain non-videos")
77
99
  .option("--no-include-episodes", "Don't include episode torrents")
78
- .requiredOption("--fuzzy-size-threshold <decimal>", "The size difference allowed to be considered a match.", parseFloat, fallback(fileConfig.fuzzySizeThreshold, 0.02))
100
+ .option("--fuzzy-size-threshold <decimal>", "The size difference allowed to be considered a match.", parseFloat, fallback(fileConfig.fuzzySizeThreshold, 0.02))
79
101
  .option("-x, --exclude-older <cutoff>", "Exclude torrents first seen more than n minutes ago. Bypasses the -a flag.", fileConfig.excludeOlder)
80
102
  .option("-r, --exclude-recent-search <cutoff>", "Exclude torrents which have been searched more recently than n minutes ago. Bypasses the -a flag.", fileConfig.excludeRecentSearch)
81
- .requiredOption("-v, --verbose", "Log verbose output", false)
103
+ .option("-v, --verbose", "Log verbose output", false)
82
104
  .addOption(new Option("-A, --action <action>", "If set to 'inject', cross-seed will attempt to add the found torrents to your torrent client.")
83
105
  .default(fallback(fileConfig.action, Action.SAVE))
84
- .choices(Object.values(Action))
85
- .makeOptionMandatory())
106
+ .choices(Object.values(Action)))
86
107
  .option("--rtorrent-rpc-url <url>", "The url of your rtorrent XMLRPC interface. Requires '-A inject'. See the docs for more information.", fileConfig.rtorrentRpcUrl)
87
108
  .option("--qbittorrent-url <url>", "The url of your qBittorrent webui. Requires '-A inject'. See the docs for more information.", fileConfig.qbittorrentUrl)
88
109
  .option("--transmission-rpc-url <url>", "The url of your Transmission RPC interface. Requires '-A inject'. See the docs for more information.", fileConfig.transmissionRpcUrl)
89
110
  .option("--deluge-rpc-url <url>", "The url of your Deluge JSON-RPC interface. Requires '-A inject'. See the docs for more information.", fileConfig.delugeRpcUrl)
90
- .option("--duplicate-categories", "Create and inject using categories with the same save paths as your normal categories", fileConfig.duplicateCategories)
111
+ .option("--duplicate-categories", "Create and inject using categories with the same save paths as your normal categories", fallback(fileConfig.duplicateCategories, false))
91
112
  .option("--notification-webhook-url <url>", "cross-seed will send POST requests to this url with a JSON payload of { title, body }", fileConfig.notificationWebhookUrl)
92
- .requiredOption("-d, --delay <delay>", "Pause duration (seconds) between searches", parseFloat, fallback(fileConfig.delay, 10))
93
- .requiredOption("--snatch-timeout <timeout>", "Timeout for unresponsive snatches", fallback(fileConfig.snatchTimeout, "30 seconds"))
94
- .requiredOption("--search-timeout <timeout>", "Timeout for unresponsive searches", fallback(fileConfig.searchTimeout, "30 seconds"))
95
- .option("--search-limit <number>", "The number of searches before stops", parseInt, fallback(fileConfig.searchLimit, 0));
113
+ .option("-d, --delay <delay>", "Pause duration (seconds) between searches", parseFloat, fallback(fileConfig.delay, 10))
114
+ .option("--snatch-timeout <timeout>", "Timeout for unresponsive snatches", fallback(fileConfig.snatchTimeout, "30 seconds"))
115
+ .option("--search-timeout <timeout>", "Timeout for unresponsive searches", fallback(fileConfig.searchTimeout, "30 seconds"))
116
+ .option("--search-limit <number>", "The number of searches before stops", parseInt, fallback(fileConfig.searchLimit, 0))
117
+ .option("--block-list <strings>", "The infohashes and/or strings in torrent name to block from cross-seed",
118
+ // @ts-expect-error commander supports non-string defaults
119
+ fallback(fileConfig.blockList, []));
96
120
  }
97
121
  program.name(PROGRAM_NAME);
98
- program.description(chalk.yellow.bold("cross-seed"));
122
+ program.description(chalk.yellow.bold(`${PROGRAM_NAME} v${PROGRAM_VERSION}`));
99
123
  program.version(PROGRAM_VERSION, "-V, --version", "output the current version");
100
124
  program
101
125
  .command("gen-config")
102
126
  .description("Generate a config file")
103
127
  .option("-d, --docker", "Generate the docker config instead of the normal one")
104
- .action((options) => {
105
- generateConfig(options);
106
- });
128
+ .action(() => void generateConfig());
107
129
  program
108
130
  .command("clear-cache")
109
131
  .description("Clear the cache of downloaded-and-rejected torrents")
@@ -124,7 +146,7 @@ program
124
146
  .requiredOption("--notification-webhook-url <url>", "cross-seed will send POST requests to this url with a JSON payload of { title, body }", fileConfig.notificationWebhookUrl)
125
147
  .action((options) => {
126
148
  setRuntimeConfig(options);
127
- initializeLogger();
149
+ initializeLogger(options);
128
150
  initializePushNotifier();
129
151
  sendTestNotification();
130
152
  });
@@ -144,9 +166,11 @@ program
144
166
  program
145
167
  .command("api-key")
146
168
  .description("Show the api key")
147
- .action(async () => {
169
+ .addOption(apiKeyOption)
170
+ .action(async (options) => {
171
+ setRuntimeConfig(options);
148
172
  await db.migrate.latest();
149
- console.log(await getApiKeyFromDatabase());
173
+ console.log(await getApiKey());
150
174
  await db.destroy();
151
175
  });
152
176
  program
@@ -160,22 +184,13 @@ program
160
184
  createCommandWithSharedOptions("daemon", "Start the cross-seed daemon")
161
185
  .option("-p, --port <port>", "Listen on a custom port", (n) => parseInt(n), fallback(fileConfig.port, 2468))
162
186
  .option("--host <host>", "Bind to a specific IP address", fileConfig.host)
163
- .option("--api-auth", "Require API auth via API key", fallback(fileConfig.apiAuth, false))
164
- .option("--no-api-auth", "Don't require API auth")
165
187
  .option("--no-port", "Do not listen on any port")
166
188
  .option("--search-cadence <cadence>", "Run searches on a schedule. Format: https://github.com/vercel/ms", fileConfig.searchCadence)
167
189
  .option("--rss-cadence <cadence>", "Run an rss scan on a schedule. Format: https://github.com/vercel/ms", fileConfig.rssCadence)
190
+ .addOption(apiKeyOption)
168
191
  .action(async (options) => {
169
192
  try {
170
- const runtimeConfig = processOptions(options);
171
- setRuntimeConfig(runtimeConfig);
172
- initializeLogger();
173
- initializePushNotifier();
174
- logger.info(`${PROGRAM_NAME} v${PROGRAM_VERSION}`);
175
- logger.verbose({
176
- label: Label.CONFIGDUMP,
177
- message: inspect(runtimeConfig),
178
- });
193
+ await validateAndSetRuntimeConfig(options);
179
194
  await db.migrate.latest();
180
195
  await doStartupValidation();
181
196
  serve(options.port, options.host);
@@ -188,14 +203,7 @@ createCommandWithSharedOptions("daemon", "Start the cross-seed daemon")
188
203
  });
189
204
  createCommandWithSharedOptions("rss", "Run an rss scan").action(async (options) => {
190
205
  try {
191
- const runtimeConfig = processOptions(options);
192
- setRuntimeConfig(runtimeConfig);
193
- initializeLogger();
194
- initializePushNotifier();
195
- logger.verbose({
196
- label: Label.CONFIGDUMP,
197
- message: inspect(runtimeConfig),
198
- });
206
+ await validateAndSetRuntimeConfig(options);
199
207
  await db.migrate.latest();
200
208
  await doStartupValidation();
201
209
  await scanRssFeeds();
@@ -210,14 +218,7 @@ createCommandWithSharedOptions("search", "Search for cross-seeds")
210
218
  .addOption(new Option("--torrents <torrents...>", "torrent files separated by spaces").hideHelp())
211
219
  .action(async (options) => {
212
220
  try {
213
- const runtimeConfig = processOptions(options);
214
- setRuntimeConfig(runtimeConfig);
215
- initializeLogger();
216
- initializePushNotifier();
217
- logger.verbose({
218
- label: Label.CONFIGDUMP,
219
- message: inspect(runtimeConfig),
220
- });
221
+ await validateAndSetRuntimeConfig(options);
221
222
  await db.migrate.latest();
222
223
  await doStartupValidation();
223
224
  await main();
package/dist/cmd.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cmd.js","sourceRoot":"","sources":["../src/cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmd.js","sourceRoot":"","sources":["../src/cmd.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAc,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACN,sBAAsB,EACtB,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAiB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,IAAI,UAAsB,CAAC;AAC3B,IAAI,CAAC;IACJ,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;AACpC,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACZ,IAAI,CAAC,YAAY,cAAc,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,MAAM,CAAC,CAAC;AACT,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,MAAM,CAC9B,iBAAiB,EACjB,6DAA6D,CAC7D,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAE7B;;;GAGG;AAEH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,OAAsB;IACvE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,KAAK,eAAe,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAChD,IAAI,CAAC;QACJ,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE;YAC1C,QAAQ,EAAE,qBAAqB;SAC/B,CAAkB,CAAC;IACrB,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC;YACd,KAAK,EAAE,KAAK,CAAC,UAAU;YACvB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;SACzB,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,UAAU,GACf,IAAI,CAAC,MAAM,KAAK,CAAC;gBAChB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG;gBACzC,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,CAAC,KAAK,CACX,GACC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC,CAAC,gBAC7C,aAAa,OAAO,4DACnB,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAC3B,KAAK,CACL,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,cAAc,CACvB,iDACC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAChC,qBAAqB,CACrB,CAAC;QACH,CAAC;IACF,CAAC;IAED,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,sBAAsB,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AAEH,SAAS,8BAA8B,CAAC,IAAY,EAAE,WAAmB;IACxE,OAAO,OAAO;SACZ,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,WAAW,CAAC;SACxB,MAAM,CACN,yBAAyB,EACzB,yDAAyD;IACzD,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAC5B;SACA,MAAM,CACN,uBAAuB,EACvB,mFAAmF;IACnF,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC7B;SACA,SAAS,CACT,IAAI,MAAM,CACT,qBAAqB,EACrB,oNAAoN,CACpN;SACC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;SACvD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACjC,mBAAmB,EAAE,CACvB;SACA,MAAM,CACN,uBAAuB,EACvB,sDAAsD,EACtD,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,iBAAiB,CAAC,CACpD;SACA,MAAM,CACN,kBAAkB,EAClB,+CAA+C,EAC/C,UAAU,CAAC,OAAO,CAClB;SACA,MAAM,CACN,kBAAkB,EAClB,2EAA2E,EAC3E,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,CACzC;SACA,SAAS,CACT,IAAI,MAAM,CACT,oBAAoB,EACpB,sEAAsE,CACtE;SACC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;SACxD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAChC,mBAAmB,EAAE,CACvB;SACA,MAAM,CACN,gBAAgB,EAChB,kDAAkD,EAClD,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CACvC;SACA,MAAM,CACN,0BAA0B,EAC1B,6CAA6C,EAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAClB,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CACpC;SACA,MAAM,CACN,yBAAyB,EACzB,8BAA8B,EAC9B,UAAU,CAAC,UAAU,CACrB;SACA,MAAM,CACN,wBAAwB,EACxB,8BAA8B,EAC9B,UAAU,CAAC,SAAS,CACpB;SACA,MAAM,CACN,sBAAsB,EACtB,gDAAgD,EAChD,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAC5C;SACA,MAAM,CACN,wBAAwB,EACxB,0EAA0E,EAC1E,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,KAAK,CAAC,CAC3C;SACA,MAAM,CACN,2BAA2B,EAC3B,+CAA+C,EAC/C,QAAQ,CAAC,UAAU,CAAC,qBAAqB,EAAE,KAAK,CAAC,CACjD;SACA,MAAM,CACN,yBAAyB,EACzB,iDAAiD,CACjD;SACA,MAAM,CAAC,uBAAuB,EAAE,gCAAgC,CAAC;SACjE,MAAM,CACN,kCAAkC,EAClC,uDAAuD,EACvD,UAAU,EACV,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAC7C;SACA,MAAM,CACN,8BAA8B,EAC9B,4EAA4E,EAC5E,UAAU,CAAC,YAAY,CACvB;SACA,MAAM,CACN,sCAAsC,EACtC,mGAAmG,EACnG,UAAU,CAAC,mBAAmB,CAC9B;SACA,MAAM,CAAC,eAAe,EAAE,oBAAoB,EAAE,KAAK,CAAC;SACpD,SAAS,CACT,IAAI,MAAM,CACT,uBAAuB,EACvB,+FAA+F,CAC/F;SACC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;SACjD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAChC;SACA,MAAM,CACN,0BAA0B,EAC1B,qGAAqG,EACrG,UAAU,CAAC,cAAc,CACzB;SACA,MAAM,CACN,yBAAyB,EACzB,6FAA6F,EAC7F,UAAU,CAAC,cAAc,CACzB;SACA,MAAM,CACN,8BAA8B,EAC9B,sGAAsG,EACtG,UAAU,CAAC,kBAAkB,CAC7B;SACA,MAAM,CACN,wBAAwB,EACxB,qGAAqG,EACrG,UAAU,CAAC,YAAY,CACvB;SACA,MAAM,CACN,wBAAwB,EACxB,uFAAuF,EACvF,QAAQ,CAAC,UAAU,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAC/C;SACA,MAAM,CACN,kCAAkC,EAClC,uFAAuF,EACvF,UAAU,CAAC,sBAAsB,CACjC;SACA,MAAM,CACN,qBAAqB,EACrB,2CAA2C,EAC3C,UAAU,EACV,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAC9B;SACA,MAAM,CACN,4BAA4B,EAC5B,mCAAmC,EACnC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,YAAY,CAAC,CAChD;SACA,MAAM,CACN,4BAA4B,EAC5B,mCAAmC,EACnC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,YAAY,CAAC,CAChD;SACA,MAAM,CACN,yBAAyB,EACzB,qCAAqC,EACrC,QAAQ,EACR,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CACnC;SACA,MAAM,CACN,wBAAwB,EACxB,wEAAwE;IACxE,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAClC,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3B,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,KAAK,eAAe,EAAE,CAAC,CAAC,CAAC;AAC9E,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,eAAe,EAAE,4BAA4B,CAAC,CAAC;AAEhF,OAAO;KACL,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CACN,cAAc,EACd,sDAAsD,CACtD;KACA,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,cAAc,EAAE,CAAC,CAAC;AAEtC,OAAO;KACL,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,KAAK,IAAI,EAAE;IAClB,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAC1B,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;AACpB,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,0BAA0B,CAAC;KACvC,cAAc,CACd,kCAAkC,EAClC,uFAAuF,EACvF,UAAU,CAAC,sBAAsB,CACjC;KACA,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IACnB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,sBAAsB,EAAE,CAAC;IACzB,oBAAoB,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wDAAwD,CAAC;KACrE,QAAQ,CAAC,UAAU,CAAC;KACpB,QAAQ,CAAC,WAAW,CAAC;KACrB,MAAM,CAAC,OAAO,CAAC,CAAC;AAElB,OAAO;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6BAA6B,CAAC;KAC1C,QAAQ,CAAC,SAAS,CAAC;KACnB,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;IACpB,OAAO,CAAC,GAAG,CACV,0BAA0B,CAAC,MAAM,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAC9D,CAAC;AACH,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,kBAAkB,CAAC;KAC/B,SAAS,CAAC,YAAY,CAAC;KACvB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC;IAC/B,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;AACpB,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,KAAK,IAAI,EAAE;IAClB,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;AACpB,CAAC,CAAC,CAAC;AAEJ,8BAA8B,CAAC,QAAQ,EAAE,6BAA6B,CAAC;KACrE,MAAM,CACN,mBAAmB,EACnB,yBAAyB,EACzB,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAClB,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAC/B;KACA,MAAM,CAAC,eAAe,EAAE,+BAA+B,EAAE,UAAU,CAAC,IAAI,CAAC;KACzE,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;KAChD,MAAM,CACN,4BAA4B,EAC5B,kEAAkE,EAClE,UAAU,CAAC,aAAa,CACxB;KACA,MAAM,CACN,yBAAyB,EACzB,qEAAqE,EACrE,UAAU,CAAC,UAAU,CACrB;KACA,SAAS,CAAC,YAAY,CAAC;KACvB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzB,IAAI,CAAC;QACJ,MAAM,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,mBAAmB,EAAE,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,QAAQ,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;AACF,CAAC,CAAC,CAAC;AAEJ,8BAA8B,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,MAAM,CAC9D,KAAK,EAAE,OAAO,EAAE,EAAE;IACjB,IAAI,CAAC;QACJ,MAAM,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,mBAAmB,EAAE,CAAC;QAC5B,MAAM,YAAY,EAAE,CAAC;QACrB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;AACF,CAAC,CACD,CAAC;AAEF,8BAA8B,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAChE,SAAS,CACT,IAAI,MAAM,CACT,0BAA0B,EAC1B,mCAAmC,CACnC,CAAC,QAAQ,EAAE,CACZ;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzB,IAAI,CAAC;QACJ,MAAM,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,mBAAmB,EAAE,CAAC;QAC5B,MAAM,IAAI,EAAE,CAAC;QACb,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;AACF,CAAC,CAAC,CAAC;AAEJ,OAAO,CAAC,kBAAkB,CAAC,yCAAyC,CAAC,CAAC;AAEtE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC"}