@dyyz1993/agent-browser 0.26.3 → 0.26.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"scrape.d.ts","sourceRoot":"","sources":["../../src/actions/scrape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI3D,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;CACtC;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAmDjC"}
1
+ {"version":3,"file":"scrape.d.ts","sourceRoot":"","sources":["../../src/actions/scrape.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI3D,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACrC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAgIjC"}
@@ -1,7 +1,8 @@
1
+ import fs from 'fs';
1
2
  import { successResponse } from '../protocol.js';
2
3
  import { extractContentFromPage, waitForSPAContent } from './utils.js';
3
4
  export async function handleScrape(command, browser) {
4
- const page = browser.getPage();
5
+ let page = browser.getPage();
5
6
  if (!page) {
6
7
  return {
7
8
  id: command.id,
@@ -11,6 +12,28 @@ export async function handleScrape(command, browser) {
11
12
  }
12
13
  const timeout = (command.timeout ?? 15) * 1000;
13
14
  try {
15
+ if (command.javaScriptEnabled === false) {
16
+ const browserInstance = browser.getBrowser();
17
+ if (browserInstance) {
18
+ page = await browserInstance.newPage({ javaScriptEnabled: false });
19
+ }
20
+ }
21
+ if (command.cookies && command.cookies.length > 0) {
22
+ await page.context().addCookies(command.cookies);
23
+ }
24
+ const currentUrl = page.url();
25
+ if (currentUrl !== 'about:blank' && currentUrl !== command.url) {
26
+ try {
27
+ const currentHost = new URL(currentUrl).hostname;
28
+ const targetHost = new URL(command.url).hostname;
29
+ if (currentHost !== targetHost) {
30
+ await page.goto('about:blank').catch(() => { });
31
+ }
32
+ }
33
+ catch {
34
+ await page.goto('about:blank').catch(() => { });
35
+ }
36
+ }
14
37
  await page.goto(command.url, {
15
38
  timeout,
16
39
  waitUntil: 'domcontentloaded',
@@ -31,12 +54,56 @@ export async function handleScrape(command, browser) {
31
54
  }
32
55
  const format = command.format ?? 'markdown';
33
56
  const content = await extractContentFromPage(page, format, command.selector);
34
- return successResponse(command.id, {
57
+ let metadata;
58
+ if (command.includeMetadata) {
59
+ metadata = await page.evaluate(() => {
60
+ const getMeta = (name) => document.querySelector(`meta[name="${name}"]`)?.getAttribute('content') ||
61
+ document.querySelector(`meta[property="${name}"]`)?.getAttribute('content') ||
62
+ '';
63
+ const getLink = (rel) => document.querySelector(`link[rel="${rel}"]`)?.getAttribute('href') ||
64
+ document.querySelector(`link[rel*="${rel}"]`)?.getAttribute('href') ||
65
+ '';
66
+ const favicon = getLink('icon') || getLink('shortcut icon') || '/favicon.ico';
67
+ const resolvedFavicon = favicon && !favicon.startsWith('http')
68
+ ? new URL(favicon, window.location.href).href
69
+ : favicon;
70
+ return {
71
+ title: document.title || '',
72
+ description: getMeta('description'),
73
+ keywords: getMeta('keywords'),
74
+ author: getMeta('author'),
75
+ robots: getMeta('robots'),
76
+ canonical: document.querySelector('link[rel="canonical"]')?.getAttribute('href') || '',
77
+ favicon: resolvedFavicon,
78
+ lang: document.documentElement.lang || '',
79
+ ogTitle: getMeta('og:title'),
80
+ ogDescription: getMeta('og:description'),
81
+ ogImage: getMeta('og:image'),
82
+ ogUrl: getMeta('og:url'),
83
+ ogSiteName: getMeta('og:site_name'),
84
+ publishedTime: getMeta('article:published_time'),
85
+ modifiedTime: getMeta('article:modified_time'),
86
+ articleTag: getMeta('article:tag'),
87
+ articleSection: getMeta('article:section'),
88
+ };
89
+ });
90
+ }
91
+ const result = {
35
92
  url: page.url(),
36
93
  title: await page.title(),
37
94
  content,
38
95
  format,
39
- });
96
+ ...(metadata ? { metadata } : {}),
97
+ };
98
+ if (command.outputFile) {
99
+ const output = format === 'html' ? result.content : JSON.stringify(result, null, 2);
100
+ fs.writeFileSync(command.outputFile, output, 'utf-8');
101
+ return successResponse(command.id, {
102
+ ...result,
103
+ savedTo: command.outputFile,
104
+ });
105
+ }
106
+ return successResponse(command.id, result);
40
107
  }
41
108
  catch (error) {
42
109
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"scrape.js","sourceRoot":"","sources":["../../src/actions/scrape.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AASvE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAsB,EACtB,OAAuB;IAEvB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,8BAA8B;SACtC,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAC3B,OAAO;YACP,SAAS,EAAE,kBAAkB;SAC9B,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;SAC1B,CAAC,CAAC;QAEH,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEpC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,MAAM,IAAI;iBACP,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;iBAChC,KAAK,EAAE;iBACP,OAAO,CAAC;gBACP,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;aAClC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE7E,OAAO,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE;YACjC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;YACf,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE;YACzB,OAAO;YACP,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"scrape.js","sourceRoot":"","sources":["../../src/actions/scrape.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/actions/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAgB,MAAM,aAAa,CAAC;AA0FzF,wBAAsB,YAAY,CAChC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAwDnC"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/actions/search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAgB,MAAM,aAAa,CAAC;AAmIzF,wBAAsB,YAAY,CAChC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAgFnC"}
@@ -1,15 +1,49 @@
1
+ import fs from 'fs';
1
2
  import { successResponse } from '../protocol.js';
2
- const ENGINE_URLS = {
3
- google: 'https://www.google.com/search',
4
- bing: 'https://www.bing.com/search',
5
- duckduckgo: 'https://duckduckgo.com/',
6
- };
3
+ const STEALTH_USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36';
4
+ async function applyStealth(page) {
5
+ await page.addInitScript(() => {
6
+ Object.defineProperty(navigator, 'webdriver', { get: () => undefined });
7
+ });
8
+ await page.addInitScript(() => {
9
+ window.chrome = { runtime: {} };
10
+ });
11
+ await page.addInitScript(() => {
12
+ const originalQuery = window.navigator.permissions.query;
13
+ window.navigator.permissions.query = (parameters) => parameters.name === 'notifications'
14
+ ? Promise.resolve({ state: Notification.permission })
15
+ : originalQuery(parameters);
16
+ });
17
+ await page.addInitScript(() => {
18
+ Object.defineProperty(navigator, 'plugins', {
19
+ get: () => [1, 2, 3, 4, 5],
20
+ });
21
+ });
22
+ await page.addInitScript(() => {
23
+ Object.defineProperty(navigator, 'languages', {
24
+ get: () => ['en-US', 'en'],
25
+ });
26
+ });
27
+ }
28
+ function buildSearchUrl(engine, query) {
29
+ const encoded = encodeURIComponent(query);
30
+ switch (engine) {
31
+ case 'google':
32
+ return `https://www.google.com/search?q=${encoded}&udm=14`;
33
+ case 'bing':
34
+ return `https://www.bing.com/search?q=${encoded}`;
35
+ case 'duckduckgo':
36
+ return `https://html.duckduckgo.com/html/?q=${encoded}`;
37
+ default:
38
+ return `https://www.google.com/search?q=${encoded}&udm=14`;
39
+ }
40
+ }
7
41
  const SELECTORS = {
8
42
  google: {
9
43
  result: 'div.g, div[data-hveid]',
10
44
  title: 'h3',
11
45
  link: 'a[href]',
12
- snippet: 'div[data-sncf-ied="cf"] span, div.VwiC3b, div.st',
46
+ snippet: 'div[data-sncf-ied="cf"] span, div.VwiC3b, div.st, span[style]',
13
47
  },
14
48
  bing: {
15
49
  result: 'li.b_algo',
@@ -18,10 +52,10 @@ const SELECTORS = {
18
52
  snippet: 'p, div.b_caption p',
19
53
  },
20
54
  duckduckgo: {
21
- result: 'li[data-layout="organic"], div.result',
22
- title: 'h2, a.result__a',
23
- link: 'a[href]',
24
- snippet: 'a.result__snippet, p.result__snippet',
55
+ result: 'div.result',
56
+ title: 'a.result__a',
57
+ link: 'a.result__a',
58
+ snippet: 'a.result__snippet, td.result__snippet',
25
59
  },
26
60
  };
27
61
  async function parseGoogleResults(page, limit) {
@@ -63,9 +97,9 @@ async function parseDuckDuckGoResults(page, limit) {
63
97
  const elements = await page.locator(SELECTORS.duckduckgo.result).all();
64
98
  for (const el of elements.slice(0, limit)) {
65
99
  try {
66
- const title = await el.locator(SELECTORS.duckduckgo.title).textContent();
67
- const linkEl = el.locator(SELECTORS.duckduckgo.link).first();
68
- const url = await linkEl.getAttribute('href');
100
+ const titleEl = el.locator(SELECTORS.duckduckgo.title);
101
+ const title = await titleEl.textContent();
102
+ const url = await titleEl.getAttribute('href');
69
103
  const snippet = await el.locator(SELECTORS.duckduckgo.snippet).textContent();
70
104
  if (title && url && url.startsWith('http')) {
71
105
  results.push({ title: title.trim(), url, snippet: snippet?.trim() });
@@ -76,6 +110,8 @@ async function parseDuckDuckGoResults(page, limit) {
76
110
  return results;
77
111
  }
78
112
  export async function handleSearch(command, browser) {
113
+ const useStealth = command.stealth !== false;
114
+ const engine = command.engine ?? 'google';
79
115
  if (!browser.isLaunched()) {
80
116
  await browser.launch({
81
117
  id: 'auto',
@@ -84,19 +120,36 @@ export async function handleSearch(command, browser) {
84
120
  });
85
121
  }
86
122
  const page = browser.getPage();
87
- const engine = command.engine ?? 'google';
88
123
  const limit = command.limit ?? 10;
89
124
  const timeout = (command.timeout ?? 15) * 1000;
90
125
  try {
91
- const searchUrl = `${ENGINE_URLS[engine]}?q=${encodeURIComponent(command.query)}`;
126
+ if (useStealth && engine !== 'bing') {
127
+ await applyStealth(page);
128
+ try {
129
+ await page.context().setExtraHTTPHeaders({
130
+ 'User-Agent': STEALTH_USER_AGENT,
131
+ });
132
+ }
133
+ catch { }
134
+ try {
135
+ await page.setViewportSize({ width: 1920, height: 1080 });
136
+ }
137
+ catch { }
138
+ }
139
+ const searchUrl = buildSearchUrl(engine, command.query);
92
140
  await page.goto(searchUrl, {
93
141
  timeout,
94
142
  waitUntil: 'domcontentloaded',
95
143
  });
96
- await Promise.race([
97
- page.waitForLoadState('networkidle', { timeout: Math.min(timeout, 5000) }).catch(() => { }),
98
- page.waitForTimeout(3000),
99
- ]);
144
+ if (engine === 'duckduckgo') {
145
+ await page.waitForLoadState('domcontentloaded', { timeout });
146
+ }
147
+ else {
148
+ await Promise.race([
149
+ page.waitForLoadState('networkidle', { timeout: Math.min(timeout, 5000) }).catch(() => { }),
150
+ page.waitForTimeout(3000),
151
+ ]);
152
+ }
100
153
  let results;
101
154
  switch (engine) {
102
155
  case 'google':
@@ -111,12 +164,16 @@ export async function handleSearch(command, browser) {
111
164
  default:
112
165
  results = [];
113
166
  }
114
- return successResponse(command.id, {
167
+ const response = successResponse(command.id, {
115
168
  query: command.query,
116
169
  engine,
117
170
  results,
118
171
  total: results.length,
119
172
  });
173
+ if (command.outputFile && response.success) {
174
+ fs.writeFileSync(command.outputFile, JSON.stringify(response.data, null, 2), 'utf-8');
175
+ }
176
+ return response;
120
177
  }
121
178
  catch (error) {
122
179
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/actions/search.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,+BAA+B;IACvC,IAAI,EAAE,6BAA6B;IACnC,UAAU,EAAE,yBAAyB;CACtC,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,MAAM,EAAE;QACN,MAAM,EAAE,wBAAwB;QAChC,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,kDAAkD;KAC5D;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,oBAAoB;KAC9B;IACD,UAAU,EAAE;QACV,MAAM,EAAE,uCAAuC;QAC/C,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,sCAAsC;KAChD;CACF,CAAC;AAEF,KAAK,UAAU,kBAAkB,CAAC,IAAU,EAAE,KAAa;IACzD,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IAEnE,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAEzE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAU,EAAE,KAAa;IACvD,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IAEjE,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACvD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAEvE,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,IAAU,EAAE,KAAa;IAC7D,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IAEvE,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACzE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAE7E,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAsB,EACtB,OAAuB;IAEvB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QAC1B,MAAM,OAAO,CAAC,MAAM,CAAC;YACnB,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;SACnC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAElF,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACzB,OAAO;YACP,SAAS,EAAE,kBAAkB;SAC9B,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;SAC1B,CAAC,CAAC;QAEH,IAAI,OAAuB,CAAC;QAE5B,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,QAAQ;gBACX,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAChD,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC9C,MAAM;YACR,KAAK,YAAY;gBACf,OAAO,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACpD,MAAM;YACR;gBACE,OAAO,GAAG,EAAE,CAAC;QACjB,CAAC;QAED,OAAO,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE;YACjC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM;YACN,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/actions/search.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/actions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD;AAED,eAAO,MAAM,iBAAiB,UAkH7B,CAAC;AA6DF,eAAO,MAAM,uBAAuB,UAKnC,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,EACpC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAkFjB;AA2ED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAkEzE;AAaD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0EnD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/actions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD;AAED,eAAO,MAAM,iBAAiB,UAkH7B,CAAC;AA6DF,eAAO,MAAM,uBAAuB,UAKnC,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,EACpC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAkFjB;AA2FD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAkEzE;AAaD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpF;AAwED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYnD"}
@@ -264,8 +264,26 @@ async function findMainContentElement(page) {
264
264
  const best = await page.evaluate(([selWeights, excludeSelectors]) => {
265
265
  function cleanElement(el, excSels) {
266
266
  const clone = el.cloneNode(true);
267
+ const contentCheckSelectors = [
268
+ '.markdown-body',
269
+ '.article-content',
270
+ '.post-content',
271
+ 'article',
272
+ 'main',
273
+ ];
267
274
  for (const sel of excSels) {
268
- clone.querySelectorAll(sel).forEach((n) => n.remove());
275
+ clone.querySelectorAll(sel).forEach((n) => {
276
+ const hasContent = contentCheckSelectors.some((cs) => {
277
+ try {
278
+ return n.querySelector(cs) !== null;
279
+ }
280
+ catch {
281
+ return false;
282
+ }
283
+ });
284
+ if (!hasContent)
285
+ n.remove();
286
+ });
269
287
  }
270
288
  clone
271
289
  .querySelectorAll('[aria-hidden="true"], [role="navigation"], [role="banner"], [role="complementary"], [role="search"], [role="contentinfo"]')
@@ -392,60 +410,112 @@ export async function waitForSPAContent(page, timeoutMs) {
392
410
  // SPA content selectors may not match on non-SPA pages
393
411
  }
394
412
  }
413
+ import TurndownService from 'turndown';
414
+ import { gfm } from 'turndown-plugin-gfm';
415
+ const turndown = new TurndownService({
416
+ headingStyle: 'atx',
417
+ codeBlockStyle: 'fenced',
418
+ bulletListMarker: '-',
419
+ emDelimiter: '*',
420
+ strongDelimiter: '**',
421
+ });
422
+ turndown.use(gfm);
423
+ turndown.addRule('removeScripts', {
424
+ filter: (node) => {
425
+ const tag = node.nodeName.toLowerCase();
426
+ return ['script', 'style', 'noscript', 'svg', 'head', 'meta', 'link'].includes(tag);
427
+ },
428
+ replacement: () => '',
429
+ });
430
+ turndown.addRule('resolveSrcset', {
431
+ filter: 'img',
432
+ replacement: (_content, node) => {
433
+ const el = node;
434
+ let src = el.getAttribute?.('src') || '';
435
+ const alt = el.getAttribute?.('alt') || '';
436
+ const srcset = el.getAttribute?.('srcset') || '';
437
+ if (src.startsWith('data:image'))
438
+ return `![${alt}](<Base64-Image-Removed>)`;
439
+ if (!src && !srcset)
440
+ return '';
441
+ if (srcset) {
442
+ const sources = srcset.split(',').map((s) => {
443
+ const parts = s.trim().split(/\s+/);
444
+ const url = parts[0];
445
+ const sizeStr = parts[1] || '1x';
446
+ const size = parseFloat(sizeStr);
447
+ return { url, size };
448
+ });
449
+ if (src) {
450
+ sources.push({ url: src, size: 1 });
451
+ }
452
+ sources.sort((a, b) => b.size - a.size);
453
+ src = sources[0].url;
454
+ }
455
+ if (!src || src.startsWith('data:'))
456
+ return '';
457
+ return `![${alt}](${src})`;
458
+ },
459
+ });
460
+ turndown.addRule('codeBlocks', {
461
+ filter: (node) => {
462
+ return node.nodeName === 'PRE';
463
+ },
464
+ replacement: (_content, node) => {
465
+ const code = node.querySelector('code');
466
+ if (code) {
467
+ const lang = code.className?.replace('language-', '').replace('lang-', '') || '';
468
+ const text = code.textContent || '';
469
+ return `\n\`\`\`${lang}\n${text}\n\`\`\`\n`;
470
+ }
471
+ const text = node.textContent || '';
472
+ return `\n\`\`\`\n${text}\n\`\`\`\n`;
473
+ },
474
+ });
395
475
  export function htmlToMarkdown(html) {
396
- let md = html;
397
- md = md.replace(/<head[^>]*>[\s\S]*?<\/head>/gi, '');
398
- md = md.replace(/<meta[^>]*>/gi, '');
399
- md = md.replace(/<link[^>]*>/gi, '');
400
- md = md.replace(/<svg[^>]*>[\s\S]*?<\/svg>/gi, '');
401
- md = md.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '');
402
- md = md.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '');
403
- md = md.replace(/<noscript[^>]*>[\s\S]*?<\/noscript>/gi, '');
404
- md = md.replace(/<img[^>]*?(?:src|data-src)\s*=\s*["']?\s*data:image\/[^"'>]+["']?[^>]*\/?>/gi, '');
405
- md = md.replace(/<img[^>]*?(?:src|data-src)\s*=\s*["']data:[^"']+["'][^>]*\/?>/gi, '');
406
- md = md.replace(/<pre[^>]*><code[^>]*>([\s\S]*?)<\/code><\/pre>/gis, '\n```\n$1\n```\n');
407
- md = md.replace(/<pre[^>]*>([\s\S]*?)<\/pre>/gis, '\n```\n$1\n```\n');
408
- md = md.replace(/<code[^>]*>(.*?)<\/code>/gis, '`$1`');
409
- md = md.replace(/<h1[^>]*>(.*?)<\/h1>/gis, '\n# $1\n\n');
410
- md = md.replace(/<h2[^>]*>(.*?)<\/h2>/gis, '\n## $1\n\n');
411
- md = md.replace(/<h3[^>]*>(.*?)<\/h3>/gis, '\n### $1\n\n');
412
- md = md.replace(/<h4[^>]*>(.*?)<\/h4>/gis, '\n#### $1\n\n');
413
- md = md.replace(/<h5[^>]*>(.*?)<\/h5>/gis, '\n##### $1\n\n');
414
- md = md.replace(/<h6[^>]*>(.*?)<\/h6>/gis, '\n###### $1\n\n');
415
- md = md.replace(/<strong[^>]*>(.*?)<\/strong>/gis, '**$1**');
416
- md = md.replace(/<b[^>]*>(.*?)<\/b>/gis, '**$1**');
417
- md = md.replace(/<em[^>]*>(.*?)<\/em>/gis, '*$1*');
418
- md = md.replace(/<i[^>]*>(.*?)<\/i>/gis, '*$1*');
419
- md = md.replace(/<p[^>]*>(.*?)<\/p>/gis, '\n$1\n\n');
420
- md = md.replace(/<div[^>]*>(.*?)<\/div>/gis, '\n$1\n');
421
- md = md.replace(/<br\s*\/?>/gi, '\n');
422
- md = md.replace(/<ul[^>]*>([\s\S]*?)<\/ul>/gis, (_match, content) => {
423
- return '\n' + content.replace(/<li[^>]*>(.*?)<\/li>/gis, '- $1\n') + '\n';
424
- });
425
- md = md.replace(/<ol[^>]*>([\s\S]*?)<\/ol>/gis, (_match, content) => {
426
- let index = 1;
427
- return '\n' + content.replace(/<li[^>]*>(.*?)<\/li>/gis, () => `${index++}. $1\n`) + '\n';
476
+ if (!html || typeof html !== 'string')
477
+ return '';
478
+ let cleaned = html.replace(/&nbsp;/g, ' ');
479
+ let markdown = turndown.turndown(cleaned);
480
+ markdown = convertRemainingTables(markdown);
481
+ markdown = markdown.replace(/\n{3,}/g, '\n\n').trim();
482
+ return markdown;
483
+ }
484
+ function convertRemainingTables(markdown) {
485
+ return markdown.replace(/<table[^>]*>[\s\S]*?<\/table>/gi, (tableHtml) => {
486
+ const rows = [];
487
+ const trRegex = /<tr[^>]*>([\s\S]*?)<\/tr>/gi;
488
+ let trMatch;
489
+ while ((trMatch = trRegex.exec(tableHtml)) !== null) {
490
+ const cells = [];
491
+ const cellRegex = /<t[hd][^>]*>([\s\S]*?)<\/t[hd]>/gi;
492
+ let cellMatch;
493
+ while ((cellMatch = cellRegex.exec(trMatch[1])) !== null) {
494
+ const cellText = cellMatch[1]
495
+ .replace(/<[^>]+>/g, '')
496
+ .replace(/&amp;/g, '&')
497
+ .replace(/&lt;/g, '<')
498
+ .replace(/&gt;/g, '>')
499
+ .replace(/&quot;/g, '"')
500
+ .replace(/&#39;|&#x27;/g, "'")
501
+ .trim();
502
+ cells.push(cellText);
503
+ }
504
+ if (cells.length > 0)
505
+ rows.push(cells);
506
+ }
507
+ if (rows.length === 0)
508
+ return '';
509
+ const maxCols = Math.max(...rows.map((r) => r.length));
510
+ const normalizedRows = rows.map((r) => {
511
+ while (r.length < maxCols)
512
+ r.push('');
513
+ return r;
514
+ });
515
+ const header = '| ' + normalizedRows[0].join(' | ') + ' |';
516
+ const separator = '| ' + normalizedRows[0].map(() => '---').join(' | ') + ' |';
517
+ const body = normalizedRows.slice(1).map((r) => '| ' + r.join(' | ') + ' |');
518
+ return '\n\n' + [header, separator, ...body].join('\n') + '\n\n';
428
519
  });
429
- md = md.replace(/<a[^>]*href="([^"]*)"[^>]*>(.*?)<\/a>/gis, '[$2]($1)');
430
- md = md.replace(/<img[^>]*src="([^"]*)"[^>]*alt="([^"]*)"[^>]*>/gis, '![$2]($1)');
431
- md = md.replace(/<img[^>]*alt="([^"]*)"[^>]*src="([^"]*)"[^>]*>/gis, '![$1]($2)');
432
- md = md.replace(/<img[^>]*src="([^"]*)"[^>]*>/gis, '![]($1)');
433
- md = md.replace(/<blockquote[^>]*>(.*?)<\/blockquote>/gis, '\n> $1\n\n');
434
- md = md.replace(/<hr[^>]*>/gi, '\n---\n');
435
- md = md.replace(/<[^>]+>/g, '');
436
- md = md.replace(/!\[[^\]]*\]\([^)]*data:[^)]*\)/gi, '');
437
- md = md.replace(/!\[[^\]]*\]\(data:image[^)]*\)/gi, '');
438
- md = md.replace(/data:image\/[a-zA-Z+]+;base64,[A-Za-z0-9+/=]+/gi, '');
439
- md = md.replace(/(?<!!)\[\]\([^)]*\)/g, '');
440
- md = md.replace(/\[Skip to Content\]\(.*?\)/gi, '');
441
- md = md.replace(/\[([^\]]*?)\n([^\]]*?)\]\(/g, '[$1 $2](');
442
- md = md.replace(/&nbsp;/g, ' ');
443
- md = md.replace(/&amp;/g, '&');
444
- md = md.replace(/&lt;/g, '<');
445
- md = md.replace(/&gt;/g, '>');
446
- md = md.replace(/&quot;/g, '"');
447
- md = md.replace(/&#39;/g, "'");
448
- md = md.replace(/\n{3,}/g, '\n\n');
449
- return md.trim();
450
520
  }
451
521
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/actions/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/actions/utils.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;IACT,MAAM;IACN,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,OAAO;IACP,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,KAAK;IACL,MAAM;IACN,SAAS;IACT,KAAK;IACL,gBAAgB;IAChB,WAAW;IACX,oBAAoB;IACpB,SAAS;IACT,eAAe;IACf,eAAe;IACf,SAAS;IACT,OAAO;IACP,aAAa;IACb,MAAM;IACN,MAAM;IACN,cAAc;IACd,cAAc;IACd,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,gBAAgB;IAChB,gBAAgB;IAChB,WAAW;IACX,qBAAqB;IACrB,WAAW;IACX,SAAS;IACT,OAAO;IACP,iBAAiB;IACjB,QAAQ;IACR,OAAO;IACP,UAAU;IACV,QAAQ;IACR,KAAK;IACL,wBAAwB;IACxB,cAAc;IACd,SAAS;IACT,aAAa;IACb,aAAa;IACb,cAAc;IACd,UAAU;IACV,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,WAAW;IACX,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,wBAAwB;IACxB,cAAc;IACd,UAAU;IACV,iBAAiB;IACjB,mBAAmB;IACnB,UAAU;IACV,WAAW;IACX,eAAe;IACf,YAAY;IACZ,aAAa;IACb,cAAc;IACd,aAAa;IACb,qBAAqB;IACrB,iBAAiB;IACjB,sBAAsB;IACtB,YAAY;IACZ,aAAa;IACb,QAAQ;IACR,cAAc;IACd,qBAAqB;IACrB,kBAAkB;IAClB,YAAY;IACZ,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,mBAAmB;CACpB,CAAC;AAEF,MAAM,0BAA0B,GAAG;IACjC,gBAAgB;IAChB,mBAAmB;IACnB,cAAc;IACd,WAAW;IACX,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,SAAS;IACT,wBAAwB;IACxB,aAAa;CACd,CAAC;AAEF,MAAM,0BAA0B,GAAG;IACjC,sBAAsB;IACtB,cAAc;IACd,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,SAAS;IACT,MAAM;CACP,CAAC;AAEF,MAAM,yBAAyB,GAAG;IAChC,OAAO;IACP,UAAU;IACV,UAAU;IACV,OAAO;IACP,UAAU;IACV,UAAU;IACV,OAAO;CACR,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC9B,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,0BAA0B;IAC1B,yBAAyB;IACzB,6BAA6B;IAC7B,4BAA4B;IAC5B,4BAA4B;IAC5B,2BAA2B;IAC3B,yBAAyB;IACzB,wBAAwB;IACxB,yBAAyB;IACzB,wBAAwB;IACxB,sBAAsB;IACtB,qBAAqB;IACrB,uBAAuB;IACvB,sBAAsB;IACtB,uBAAuB;IACvB,sBAAsB;IACtB,6BAA6B;IAC7B,4BAA4B;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,GAAG,0BAA0B;IAC7B,GAAG,0BAA0B;IAC7B,GAAG,yBAAyB;IAC5B,GAAG,uBAAuB;CAC3B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAU,EACV,MAAoC,EACpC,QAAiB;IAEjB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,GAAG;aACrB,QAAQ,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;YAChD,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACnC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAqB,EAAE,EAAE;gBAC9D,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBAC1E,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC;oBAAE,GAAG,CAAC,MAAM,EAAE,CAAC;YACjD,CAAC,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;gBACrC,IAAI,EAAE,KAAK,CAAC,SAAS;aACtB,CAAC;QACJ,CAAC,EAAE,iBAAiB,CAAC;aACpB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,MAAM;oBACT,OAAO,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,MAAM;oBACT,OAAO,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,UAAU;oBACb,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,cAAc,EAAE,CAAC;QACnB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,cAAc,CAAC,IAAI,CAAC;YAC7B,KAAK,MAAM;gBACT,OAAO,cAAc,CAAC,IAAI,CAAC;YAC7B,KAAK,UAAU;gBACb,OAAO,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,gBAA0B,EAAE,EAAE;QACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;QAC3D,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACnC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAqB,EAAE,EAAE;YAC9D,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC1E,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC;gBAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;YACrC,IAAI,EAAE,KAAK,CAAC,SAAS;SACtB,CAAC;IACJ,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAEtB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC7B,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC,IAAI,CAAC;YACtB,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC,IAAI,CAAC;YACtB,KAAK,UAAU;gBACb,OAAO,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACnE,KAAK,MAAM;YACT,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC9E,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;YAClF,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,IAAU;IAC9C,MAAM,eAAe,GAAuB;QAC1C,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAC;QACpE,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAqB,CAAC;QACnE,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAqB,CAAC;QACtE,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAC;KACpE,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC9B,CAAC,CAAC,UAAU,EAAE,gBAAgB,CAAsC,EAAE,EAAE;QACtE,SAAS,YAAY,CAAC,EAAe,EAAE,OAAiB;YACtD,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;YAChD,MAAM,qBAAqB,GAAG;gBAC5B,gBAAgB;gBAChB,kBAAkB;gBAClB,eAAe;gBACf,SAAS;gBACT,MAAM;aACP,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAU,EAAE,EAAE;oBACjD,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;wBACnD,IAAI,CAAC;4BACH,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;wBACtC,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,KAAK,CAAC;wBACf,CAAC;oBACH,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,UAAU;wBAAE,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC9B,CAAC,CAAC,CAAC;YACL,CAAC;YACD,KAAK;iBACF,gBAAgB,CACf,2HAA2H,CAC5H;iBACA,OAAO,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACvC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACvE,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAU,EAAE,EAAE;gBACvD,MAAM,KAAK,GAAI,CAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC7D,IAAI,6CAA6C,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9D,CAAC,CAAC,MAAM,EAAE,CAAC;gBACb,CAAC;YACH,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAClE,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAqB,EAAE,EAAE;gBAC9D,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBAC1E,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,UAAU,GAAyD,IAAI,CAAC;QAE5E,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAuB,CAAC;YAC7D,IAAI,CAAC,EAAE;gBAAE,SAAS;YAElB,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAEjD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE;gBAAE,SAAS;YAEhC,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,CACxC,2DAA2D,CAC5D,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAErC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YACxD,MAAM,OAAO,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,OAAO,GAAG,CAAC;gBAAE,SAAS;YAE1B,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;YAE/E,IAAI,CAAC,UAAU,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC5C,UAAU,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;YACtD,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,CAAC,EACD,CAAC,eAAe,EAAE,iBAAiB,CAAwC,CAC5E,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAgB,EAChB,QAAgB,EAChB,KAAc;IAEd,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,gBAAgB,QAAQ,eAAe,GAAG,6CAA6C,CACxF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,gCAAgC,QAAQ,KAAK,GAAG,2CAA2C,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,QAAgB;IAChE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvE,IAAI,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAEtD,OAAO,IAAI,KAAK,CACd,aAAa,QAAQ,aAAa,KAAK,aAAa;YAClD,2EAA2E;YAC3E,8BAA8B,QAAQ,uCAAuC,CAChF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,KAAK,CACd,YAAY,QAAQ,+DAA+D;YACjF,kDAAkD;YAClD,kFAAkF,CACrF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,KAAK,CACd,YAAY,QAAQ,oBAAoB;YACtC,uBAAuB,QAAQ,6BAA6B;YAC5D,wBAAwB,QAAQ,gCAAgC,CACnE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,KAAK,CACd,cAAc,QAAQ,+EAA+E;YACnG,kDAAkD;YAClD,yEAAyE,CAC5E,CAAC;IACJ,CAAC;IAED,IACE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/B,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAClE,CAAC;QACD,OAAO,IAAI,KAAK,CACd,YAAY,QAAQ,8BAA8B;YAChD,iEAAiE;YACjE,wFAAwF,CAC3F,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC7F,OAAO,IAAI,KAAK,CACd,uDAAuD;YACrD,sDAAsD;YACtD,wEAAwE,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACrF,OAAO,IAAI,KAAK,CACd,qBAAqB,QAAQ,KAAK;YAChC,8DAA8D;YAC9D,iFAAiF,CACpF,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,qBAAqB,GAAG;IAC5B,mBAAmB;IACnB,wBAAwB;IACxB,WAAW;IACX,OAAO;IACP,UAAU;IACV,SAAS;IACT,aAAa;IACb,eAAe;CAChB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAU,EAAE,SAAiB;IACnE,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,eAAe,CACxB,CAAC,SAAS,EAAE,EAAE;YACZ,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBAC9D,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,EACD,qBAAqB,EACrB,EAAE,OAAO,EAAE,SAAS,EAAE,CACvB,CAAC;QACF,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;AACH,CAAC;AAED,OAAO,eAAe,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;IACnC,YAAY,EAAE,KAAK;IACnB,cAAc,EAAE,QAAQ;IACxB,gBAAgB,EAAE,GAAG;IACrB,WAAW,EAAE,GAAG;IAChB,eAAe,EAAE,IAAI;CACtB,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAElB,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE;IAChC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtF,CAAC;IACD,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;CACtB,CAAC,CAAC;AAEH,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE;IAChC,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,EAAE,GAAG,IAAW,CAAC;QACvB,IAAI,GAAG,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEjD,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,KAAK,GAAG,2BAA2B,CAAC;QAC7E,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAE/B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE;gBAClD,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACpC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;gBACjC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBACjC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5E,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QAC/C,OAAO,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC;AAEH,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE;IAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACf,OAAO,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC;IACjC,CAAC;IACD,WAAW,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YACjF,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;YACpC,OAAO,WAAW,IAAI,KAAK,IAAI,YAAY,CAAC;QAC9C,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QACpC,OAAO,aAAa,IAAI,YAAY,CAAC;IACvC,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEjD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAE3C,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE1C,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAE5C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAEtD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,OAAO,QAAQ,CAAC,OAAO,CAAC,iCAAiC,EAAE,CAAC,SAAS,EAAE,EAAE;QACvE,MAAM,IAAI,GAAe,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,6BAA6B,CAAC;QAC9C,IAAI,OAA+B,CAAC;QACpC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACpD,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,mCAAmC,CAAC;YACtD,IAAI,SAAiC,CAAC;YACtC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC;qBAC1B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;qBACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;qBACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;qBACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;qBACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;qBACvB,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;qBAC7B,IAAI,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACpC,OAAO,CAAC,CAAC,MAAM,GAAG,OAAO;gBAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC/E,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAE7E,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC"}