@farmslot/adapter-rn 0.22.7 → 0.22.9

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/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@ All notable changes to `@farmslot/adapter-rn` (published as `@farmslot/expo-reci
6
6
 
7
7
  - Active-development baseline; add user-facing changes here before release or package publication.
8
8
 
9
+ ## 0.22.9 - 2026-10-15
10
+
11
+ - Align the installed dependency closure with protocol 0.45.0 and retained-run stack attachment.
12
+
13
+ ## 0.22.8 - 2026-10-15
14
+
15
+ - Rotate Android capture at 180 seconds, retain ordered original segments and stop owned recorder processes on interruption.
16
+
9
17
  ## 0.22.7 - 2026-10-15
10
18
 
11
19
  - Use the coordinated window screenshot engine dependency closure.
@@ -1 +1 @@
1
- {"version":3,"file":"video-recorder.d.ts","sourceRoot":"","sources":["../src/video-recorder.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,yBAAyB,CAAC;AAMjC,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAQpE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAOxE"}
1
+ {"version":3,"file":"video-recorder.d.ts","sourceRoot":"","sources":["../src/video-recorder.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,aAAa,EAGnB,MAAM,yBAAyB,CAAC;AAQjC,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAQpE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAOxE"}
@@ -1,10 +1,13 @@
1
1
  import { spawn, spawnSync } from 'node:child_process';
2
+ import { randomUUID } from 'node:crypto';
2
3
  import fs from 'node:fs';
3
4
  import path from 'node:path';
4
- import { optionalVideoTiming, } from '@farmslot/recipe-runner';
5
+ import { optionalVideoTiming, RecipeExecutionError, } from '@farmslot/recipe-runner';
5
6
  const RECORDING_START_TIMEOUT_MS = 5_000;
6
7
  const RECORDING_STOP_TIMEOUT_MS = 10_000;
7
- const RECORDING_TIME_LIMIT_SECONDS = 0;
8
+ const RECORDING_TIME_LIMIT_SECONDS = 180;
9
+ const START_GRACE_MS = 1_000;
10
+ const HOST_SIGNALS = ['SIGINT', 'SIGTERM', 'SIGHUP'];
8
11
  export function androidScreenrecordArgs(remotePath) {
9
12
  return [
10
13
  'shell',
@@ -48,115 +51,299 @@ function doctorAndroidRecorder(serial) {
48
51
  };
49
52
  }
50
53
  async function startAndroidRecording(serial, request) {
51
- const targetSerial = androidTargetSerial(request);
52
- if (targetSerial !== serial) {
53
- throw new Error(`Android recording target ${targetSerial ?? '<missing>'} does not match selected device ${serial}.`);
54
+ if (request.target.kind !== 'android-device' || request.target.serial !== serial) {
55
+ throw new Error('Android recording target does not match the selected device.');
54
56
  }
55
- const existingPid = screenrecordPid(serial);
56
- if (existingPid) {
57
- throw new Error(`Android screenrecord is already running on ${serial} (pid ${existingPid}). Stop that recording before retrying.`);
57
+ const adb = (args) => runAdb(serial, args);
58
+ const pollMs = 100;
59
+ const host = process;
60
+ const running = screenrecordPids(adb);
61
+ if (running.length > 0) {
62
+ throw new Error(`Android screenrecord is already running on ${serial} (pid ${running.join(', ')}). Stop that recording before retrying.`);
63
+ }
64
+ const prefix = `/sdcard/Download/recipe-video-${randomUUID()}`;
65
+ const segments = [];
66
+ let stopping = false;
67
+ let interruption;
68
+ let chain = Promise.resolve();
69
+ const localFiles = new Set();
70
+ const segmentFailure = (segment) => `screenrecord on ${serial} stopped with exit ${segment.exitCode ?? 'error'}: ${segment.output.trim() || 'no recorder output'}`;
71
+ const startSegment = async () => {
72
+ const remotePath = `${prefix}-${segments.length}.mp4`;
73
+ const startedAtUnixMs = Date.now();
74
+ const child = spawn('adb', ['-s', serial, ...androidScreenrecordArgs(remotePath)], {
75
+ stdio: ['ignore', 'ignore', 'pipe'],
76
+ });
77
+ const exited = new Promise((resolve) => {
78
+ child.once('error', (error) => {
79
+ segment.output = error.message;
80
+ resolve(null);
81
+ });
82
+ child.once('exit', (code) => resolve(code));
83
+ });
84
+ const segment = { remotePath, child, output: '', startedAtUnixMs, exited };
85
+ child.stderr?.setEncoding('utf8');
86
+ child.stderr?.on('data', (chunk) => {
87
+ segment.output = (segment.output + chunk).slice(-2000);
88
+ });
89
+ segments.push(segment);
90
+ void exited.then((code) => {
91
+ segment.stoppedAtUnixMs = Date.now();
92
+ segment.exitCode = code;
93
+ // stop() decides about the file it stopped.
94
+ if (!segment.pid || segment.killed || interruption || stopping)
95
+ return;
96
+ if (code !== 0) {
97
+ interruption = segmentFailure(segment);
98
+ return;
99
+ }
100
+ chain = startSegment().catch((error) => {
101
+ interruption ??= error instanceof Error ? error.message : String(error);
102
+ });
103
+ });
104
+ const deadline = Date.now() + RECORDING_START_TIMEOUT_MS;
105
+ while (Date.now() < deadline) {
106
+ if (segment.stoppedAtUnixMs !== undefined) {
107
+ throw new Error(`Android screenrecord exited before capture started on ${serial}: ${segment.output.trim() || 'no recorder output'}`);
108
+ }
109
+ const pid = screenrecordPids(adb, remotePath)[0];
110
+ if (pid) {
111
+ segment.pid = pid;
112
+ return;
113
+ }
114
+ await sleep(pollMs);
115
+ }
116
+ child.kill('SIGTERM');
117
+ throw new Error(`Android screenrecord did not start on ${serial} within ${RECORDING_START_TIMEOUT_MS}ms.`);
118
+ };
119
+ // Synchronous, so it also runs from a process 'exit' listener. A device file
120
+ // is removed only once its screenrecord has exited: one still starting would
121
+ // create it again. A unique output path identifies each owned process even
122
+ // when a capture starts before its PID is observed.
123
+ const stopOwnedRecorders = (terminateHostClients = false) => {
124
+ const live = segments.filter((segment) => segment.stoppedAtUnixMs === undefined);
125
+ for (const segment of live)
126
+ segment.killed = true;
127
+ if (live.length > 0) {
128
+ const starting = live.some((segment) => !segment.pid);
129
+ const graceUntil = Date.now() + (starting ? START_GRACE_MS : 0);
130
+ const giveUpAt = Date.now() + RECORDING_STOP_TIMEOUT_MS;
131
+ const signaled = new Set();
132
+ while (Date.now() < giveUpAt) {
133
+ const pids = live.flatMap((segment) => screenrecordPids(adb, segment.remotePath));
134
+ if (pids.length === 0 && Date.now() >= graceUntil)
135
+ break;
136
+ for (const pid of pids) {
137
+ if (!signaled.has(pid))
138
+ adb(['shell', 'kill', '-2', pid]);
139
+ signaled.add(pid);
140
+ }
141
+ sleepSync(pollMs);
142
+ }
143
+ if (terminateHostClients)
144
+ for (const segment of live)
145
+ segment.child.kill('SIGTERM');
146
+ }
147
+ };
148
+ const abandon = () => {
149
+ stopOwnedRecorders(true);
150
+ if (segments.length > 0)
151
+ adb(['shell', 'rm', '-f', ...segments.map((segment) => segment.remotePath)]);
152
+ for (const localPath of localFiles)
153
+ fs.rmSync(localPath, { force: true });
154
+ };
155
+ const onExit = () => abandon();
156
+ const interrupt = (signal) => {
157
+ stopping = true;
158
+ interruption = `Android recording interrupted by ${signal}.`;
159
+ removeSignalGuards();
160
+ if (host.listenerCount(signal) > 0) {
161
+ // The CLI owns cancellation and calls stop() to retain partial evidence.
162
+ stopOwnedRecorders();
163
+ }
164
+ else {
165
+ abandon();
166
+ removeGuards();
167
+ host.kill(host.pid, signal);
168
+ }
169
+ };
170
+ const signalHandlers = {
171
+ SIGINT: () => interrupt('SIGINT'),
172
+ SIGTERM: () => interrupt('SIGTERM'),
173
+ SIGHUP: () => interrupt('SIGHUP'),
174
+ };
175
+ const removeSignalGuards = () => {
176
+ for (const signal of HOST_SIGNALS)
177
+ host.removeListener(signal, signalHandlers[signal]);
178
+ };
179
+ const removeGuards = () => {
180
+ host.removeListener('exit', onExit);
181
+ removeSignalGuards();
182
+ };
183
+ host.once('exit', onExit);
184
+ for (const signal of HOST_SIGNALS)
185
+ host.once(signal, signalHandlers[signal]);
186
+ try {
187
+ await startSegment();
188
+ }
189
+ catch (error) {
190
+ stopping = true;
191
+ abandon();
192
+ removeGuards();
193
+ throw error;
58
194
  }
59
- const remotePath = `/sdcard/Download/recipe-video-${Date.now()}-${process.pid}.mp4`;
60
- const startedAtUnixMs = Date.now();
61
- const child = spawn('adb', ['-s', serial, ...androidScreenrecordArgs(remotePath)], {
62
- stdio: ['ignore', 'pipe', 'pipe'],
63
- });
64
- const stderr = [];
65
- child.stderr?.setEncoding('utf8');
66
- child.stderr?.on('data', (chunk) => stderr.push(String(chunk)));
67
- child.stdout?.resume();
68
- const recorderPid = await waitForScreenrecordStart(serial, child, stderr);
69
195
  let stopped = false;
70
196
  return {
71
197
  async stop() {
72
- if (stopped) {
198
+ if (stopped)
73
199
  throw new Error(`Android screen recording on ${serial} was already stopped.`);
74
- }
75
200
  stopped = true;
201
+ stopping = true;
202
+ const stagingDir = path.dirname(request.outputPath);
76
203
  try {
77
- stopRemoteScreenrecord(serial, recorderPid);
78
- await waitForChildExit(child, RECORDING_STOP_TIMEOUT_MS, 'Android screenrecord');
79
- const stoppedAtUnixMs = Date.now();
80
- fs.mkdirSync(path.dirname(request.outputPath), { recursive: true });
81
- const pull = runAdb(serial, ['pull', remotePath, request.outputPath]);
82
- if (pull.status !== 0) {
83
- throw new Error(`Could not pull Android recording from ${serial}: ${commandFailure(pull)}`);
204
+ await chain;
205
+ const tail = segments.at(-1);
206
+ if (tail.stoppedAtUnixMs === undefined)
207
+ for (const pid of screenrecordPids(adb, tail.remotePath))
208
+ adb(['shell', 'kill', '-2', pid]);
209
+ if (!(await settles(tail.exited, RECORDING_STOP_TIMEOUT_MS))) {
210
+ tail.killed = true;
211
+ tail.child.kill('SIGKILL');
212
+ throw new Error(`Android screenrecord on ${serial} did not stop within ${RECORDING_STOP_TIMEOUT_MS}ms.`);
84
213
  }
85
- const output = fs.statSync(request.outputPath);
86
- if (!output.isFile() || output.size <= 0) {
87
- throw new Error(`Android recording output is empty: ${request.outputPath}`);
214
+ // After a mid-run failure only the files that ended normally are kept.
215
+ // Without one, a file stopped while screenrecord was still starting
216
+ // can fail; the files before it still cover the run up to that restart.
217
+ if (tail.exitCode !== 0)
218
+ interruption ??= segmentFailure(tail);
219
+ const kept = interruption
220
+ ? segments.filter((segment) => segment.exitCode === 0)
221
+ : tail.exitCode === 0
222
+ ? segments
223
+ : segments.slice(0, -1);
224
+ if (kept.length === 0) {
225
+ throw recordingFailure(interruption ? 'RECORDER_INTERRUPTED' : 'RECORDING_FAILED', interruption ?? segmentFailure(tail));
88
226
  }
227
+ fs.mkdirSync(stagingDir, { recursive: true });
228
+ const recorded = [];
229
+ for (const [index, segment] of kept.entries()) {
230
+ const localPath = index === 0
231
+ ? request.outputPath
232
+ : path.join(stagingDir, `${path.parse(request.outputPath).name}.segment-${index}.mp4`);
233
+ localFiles.add(localPath);
234
+ const pull = adb(['pull', segment.remotePath, localPath]);
235
+ if (pull.status !== 0) {
236
+ interruption ??= `Could not pull Android recording from ${serial}: ${commandFailure(pull)}`;
237
+ break;
238
+ }
239
+ const bytes = fs.statSync(localPath).size;
240
+ if (bytes > 0)
241
+ recorded.push({ ...segment, localPath, bytes });
242
+ else
243
+ interruption ??= `Android recording output is empty: ${localPath}`;
244
+ }
245
+ if (recorded.length === 0)
246
+ throw recordingFailure(interruption ? 'RECORDER_INTERRUPTED' : 'RECORDING_FAILED', interruption ?? `Android recording output is empty: ${request.outputPath}`);
247
+ const startedAtUnixMs = recorded[0].startedAtUnixMs;
248
+ const placed = recorded.map((segment) => ({
249
+ ...segment,
250
+ offsetMs: segment.startedAtUnixMs - startedAtUnixMs,
251
+ }));
252
+ const timingEvidencePath = `${path.basename(request.outputPath)}.segments.json`;
253
+ const timingEvidenceFile = path.join(stagingDir, timingEvidencePath);
254
+ localFiles.add(timingEvidenceFile);
255
+ fs.writeFileSync(timingEvidenceFile, `${JSON.stringify({
256
+ recorder: 'adb-screenrecord',
257
+ serial,
258
+ segments: placed.map(({ offsetMs, startedAtUnixMs, stoppedAtUnixMs, bytes }) => ({
259
+ offsetMs,
260
+ startedAtUnixMs,
261
+ stoppedAtUnixMs,
262
+ bytes,
263
+ })),
264
+ })}\n`);
265
+ const recorder = {
266
+ name: 'adb-screenrecord',
267
+ platform: 'android',
268
+ target: { selector: 'adb-serial', value: serial },
269
+ };
270
+ const originals = await Promise.all(recorded.map(async (segment, index) => ({
271
+ path: path.basename(segment.localPath),
272
+ ...(index > 0 ? { gapBefore: true } : {}),
273
+ ...(await optionalVideoTiming(segment.localPath, {
274
+ startedAtUnixMs: segment.startedAtUnixMs,
275
+ stoppedAtUnixMs: segment.stoppedAtUnixMs,
276
+ })),
277
+ timingEvidencePath,
278
+ recorder,
279
+ })));
280
+ // Returned originals belong to the shared runner's publication lifecycle.
281
+ for (const segment of recorded)
282
+ localFiles.delete(segment.localPath);
283
+ localFiles.delete(timingEvidenceFile);
89
284
  return {
90
- segments: [
91
- {
92
- path: path.basename(request.outputPath),
93
- ...(await optionalVideoTiming(request.outputPath, {
94
- startedAtUnixMs,
95
- stoppedAtUnixMs,
96
- })),
97
- recorder: {
98
- name: 'adb-screenrecord',
99
- platform: 'android',
100
- target: { selector: 'adb-serial', value: serial },
285
+ segments: originals,
286
+ ...(interruption
287
+ ? {
288
+ interruption: {
289
+ frames: originals.reduce((sum, segment) => sum + (segment.timing?.framesMs.length ?? 0), 0),
290
+ mediaTimeMs: placed.at(-1).offsetMs + (originals.at(-1).timing?.framesMs.at(-1) ?? 0),
291
+ cause: interruption,
101
292
  },
102
- },
103
- ],
293
+ }
294
+ : {}),
104
295
  };
105
296
  }
106
297
  finally {
107
- runAdb(serial, ['shell', 'rm', '-f', remotePath]);
298
+ abandon();
299
+ removeGuards();
108
300
  }
109
301
  },
110
302
  };
111
303
  }
112
- function androidTargetSerial(request) {
113
- return request.target.kind === 'android-device' ? request.target.serial : undefined;
114
- }
115
- async function waitForScreenrecordStart(serial, child, stderr) {
116
- const deadline = Date.now() + RECORDING_START_TIMEOUT_MS;
117
- while (Date.now() < deadline) {
118
- if (child.exitCode !== null) {
119
- throw new Error(`Android screenrecord exited before capture started (exit ${child.exitCode}): ${stderr.join('').trim() || 'no recorder output'}`);
304
+ function screenrecordPids(adb, remotePath) {
305
+ const result = adb(['shell', 'pidof', 'screenrecord']);
306
+ if (result.status !== 0)
307
+ return [];
308
+ const pids = result.stdout.trim().split(/\s+/u).filter(Boolean);
309
+ if (!remotePath)
310
+ return pids;
311
+ return pids.filter((pid) => {
312
+ if (!/^\d+$/u.test(pid))
313
+ throw new Error(`Invalid Android screenrecord pid: ${pid}`);
314
+ const command = adb(['shell', 'cat', `/proc/${pid}/cmdline`]);
315
+ if (command.status !== 0) {
316
+ // The recorder can exit between pidof and the ownership read.
317
+ if (!screenrecordPids(adb).includes(pid))
318
+ return false;
319
+ throw new Error(`Could not verify Android recorder ownership: ${commandFailure(command)}`);
120
320
  }
121
- const pid = screenrecordPid(serial);
122
- if (pid)
123
- return pid;
124
- await sleep(100);
125
- }
126
- child.kill('SIGTERM');
127
- throw new Error(`Android screenrecord did not start on ${serial} within ${RECORDING_START_TIMEOUT_MS}ms.`);
128
- }
129
- function stopRemoteScreenrecord(serial, pid) {
130
- const stop = runAdb(serial, ['shell', 'kill', '-2', pid]);
131
- if (stop.status !== 0 && screenrecordPid(serial) === pid) {
132
- throw new Error(`Could not stop Android screenrecord pid ${pid}: ${commandFailure(stop)}`);
133
- }
321
+ return command.stdout.split('\0').includes(remotePath);
322
+ });
134
323
  }
135
- async function waitForChildExit(child, timeoutMs, recorderName) {
136
- if (child.exitCode !== null)
137
- return;
138
- await new Promise((resolve, reject) => {
139
- const timeout = setTimeout(() => {
140
- child.kill('SIGTERM');
141
- reject(new Error(`${recorderName} did not stop within ${timeoutMs}ms.`));
142
- }, timeoutMs);
143
- child.once('exit', () => {
144
- clearTimeout(timeout);
145
- resolve();
324
+ function settles(promise, ms) {
325
+ return new Promise((resolve) => {
326
+ const timer = setTimeout(() => resolve(false), ms);
327
+ void promise.then(() => {
328
+ clearTimeout(timer);
329
+ resolve(true);
146
330
  });
147
331
  });
148
332
  }
149
- function screenrecordPid(serial) {
150
- const result = runAdb(serial, ['shell', 'pidof', 'screenrecord']);
151
- if (result.status !== 0)
152
- return undefined;
153
- return result.stdout.trim().split(/\s+/u).find(Boolean);
333
+ function sleepSync(ms) {
334
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
335
+ }
336
+ function recordingFailure(code, cause) {
337
+ return new RecipeExecutionError('environment', `${code}: ${cause}`, { code, details: { cause } });
154
338
  }
155
339
  function runAdb(serial, args) {
156
- return spawnSync('adb', ['-s', serial, ...args], { encoding: 'utf8' });
340
+ return spawnSync('adb', ['-s', serial, ...args], { encoding: 'utf8', timeout: 60_000 });
157
341
  }
158
342
  function commandFailure(result) {
159
- return result.stderr.trim() || result.stdout.trim() || `exit ${result.status ?? 'unknown'}`;
343
+ return (result.error?.message ||
344
+ result.stderr?.trim() ||
345
+ result.stdout?.trim() ||
346
+ `exit ${result.status ?? 'unknown'}`);
160
347
  }
161
348
  function sleep(durationMs) {
162
349
  return new Promise((resolve) => setTimeout(resolve, durationMs));
@@ -1 +1 @@
1
- {"version":3,"file":"video-recorder.js","sourceRoot":"","sources":["../src/video-recorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video-recorder.js","sourceRoot":"","sources":["../src/video-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAEL,mBAAmB,EACnB,oBAAoB,GAIrB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AACzC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AACzC,MAAM,4BAA4B,GAAG,GAAG,CAAC;AACzC,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC;AAE9D,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACxD,OAAO;QACL,OAAO;QACP,cAAc;QACd,cAAc;QACd,MAAM,CAAC,4BAA4B,CAAC;QACpC,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAc;IACvD,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC;QACjD,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,kBAAkB,MAAM,kBAAkB,cAAc,CAAC,KAAK,CAAC,EAAE;YAC1E,YAAY,EAAE,cAAc,MAAM,gDAAgD;SACnF,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,kCAAkC;YACxC,OAAO,EAAE,0CAA0C,MAAM,KAAK,cAAc,CAAC,YAAY,CAAC,EAAE;YAC5F,YAAY,EAAE,cAAc,MAAM,6BAA6B;SAChE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,wCAAwC,MAAM,GAAG;KAC3D,CAAC;AACJ,CAAC;AAcD,KAAK,UAAU,qBAAqB,CAClC,MAAc,EACd,OAAkC;IAElC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,GAAG,CAAC;IACnB,MAAM,IAAI,GAAG,OAAO,CAAC;IACrB,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,8CAA8C,MAAM,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yCAAyC,CACzH,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,iCAAiC,UAAU,EAAE,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,YAAgC,CAAC;IACrC,IAAI,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,EAAE,CAC1C,mBAAmB,MAAM,sBAAsB,OAAO,CAAC,QAAQ,IAAI,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,oBAAoB,EAAE,CAAC;IAEjI,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;QAC9B,MAAM,UAAU,GAAG,GAAG,MAAM,IAAI,QAAQ,CAAC,MAAM,MAAM,CAAC;QACtD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC,EAAE;YACjF,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE;YACpD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5B,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAY,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;QACpF,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,4CAA4C;YAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,YAAY,IAAI,QAAQ;gBAAE,OAAO;YACvE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;YACD,KAAK,GAAG,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBAC9C,YAAY,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,0BAA0B,CAAC;QACzD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CACb,yDAAyD,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,oBAAoB,EAAE,CACpH,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,yCAAyC,MAAM,WAAW,0BAA0B,KAAK,CAC1F,CAAC;IACJ,CAAC,CAAC;IAEF,6EAA6E;IAC7E,6EAA6E;IAC7E,2EAA2E;IAC3E,oDAAoD;IACpD,MAAM,kBAAkB,GAAG,CAAC,oBAAoB,GAAG,KAAK,EAAE,EAAE;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC;QACjF,KAAK,MAAM,OAAO,IAAI,IAAI;YAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,yBAAyB,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;YACnC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,UAAU;oBAAE,MAAM;gBACzD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC1D,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACD,SAAS,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;YACD,IAAI,oBAAoB;gBAAE,KAAK,MAAM,OAAO,IAAI,IAAI;oBAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YACrB,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/E,KAAK,MAAM,SAAS,IAAI,UAAU;YAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,CAAC,MAAqC,EAAE,EAAE;QAC1D,QAAQ,GAAG,IAAI,CAAC;QAChB,YAAY,GAAG,oCAAoC,MAAM,GAAG,CAAC;QAC7D,kBAAkB,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,yEAAyE;YACzE,kBAAkB,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;YACV,YAAY,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC;QACnC,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;KAClC,CAAC;IACF,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,KAAK,MAAM,MAAM,IAAI,YAAY;YAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,kBAAkB,EAAE,CAAC;IACvB,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,KAAK,MAAM,MAAM,IAAI,YAAY;QAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,YAAY,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,GAAG,IAAI,CAAC;QAChB,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,CAAC;QACf,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,OAAO;QACL,KAAK,CAAC,IAAI;YACR,IAAI,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,uBAAuB,CAAC,CAAC;YAC3F,OAAO,GAAG,IAAI,CAAC;YACf,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC;gBACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;oBACpC,KAAK,MAAM,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;wBACtD,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,EAAE,CAAC;oBAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC3B,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,wBAAwB,yBAAyB,KAAK,CACxF,CAAC;gBACJ,CAAC;gBACD,uEAAuE;gBACvE,oEAAoE;gBACpE,wEAAwE;gBACxE,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;oBAAE,YAAY,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC/D,MAAM,IAAI,GAAG,YAAY;oBACvB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC;oBACtD,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC;wBACnB,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,MAAM,gBAAgB,CACpB,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,kBAAkB,EAC1D,YAAY,IAAI,cAAc,CAAC,IAAI,CAAC,CACrC,CAAC;gBACJ,CAAC;gBAED,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,MAAM,QAAQ,GAA0D,EAAE,CAAC;gBAC3E,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC9C,MAAM,SAAS,GACb,KAAK,KAAK,CAAC;wBACT,CAAC,CAAC,OAAO,CAAC,UAAU;wBACpB,CAAC,CAAC,IAAI,CAAC,IAAI,CACP,UAAU,EACV,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,YAAY,KAAK,MAAM,CAC9D,CAAC;oBACR,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;oBAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACtB,YAAY,KAAK,yCAAyC,MAAM,KAAK,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC5F,MAAM;oBACR,CAAC;oBACD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;oBAC1C,IAAI,KAAK,GAAG,CAAC;wBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;;wBAC1D,YAAY,KAAK,sCAAsC,SAAS,EAAE,CAAC;gBAC1E,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBACvB,MAAM,gBAAgB,CACpB,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,kBAAkB,EAC1D,YAAY,IAAI,sCAAsC,OAAO,CAAC,UAAU,EAAE,CAC3E,CAAC;gBACJ,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;gBACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACxC,GAAG,OAAO;oBACV,QAAQ,EAAE,OAAO,CAAC,eAAe,GAAG,eAAe;iBACpD,CAAC,CAAC,CAAC;gBACJ,MAAM,kBAAkB,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC;gBAChF,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;gBACrE,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBACnC,EAAE,CAAC,aAAa,CACd,kBAAkB,EAClB,GAAG,IAAI,CAAC,SAAS,CAAC;oBAChB,QAAQ,EAAE,kBAAkB;oBAC5B,MAAM;oBACN,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC/E,QAAQ;wBACR,eAAe;wBACf,eAAe;wBACf,KAAK;qBACN,CAAC,CAAC;iBACJ,CAAC,IAAI,CACP,CAAC;gBACF,MAAM,QAAQ,GAAG;oBACf,IAAI,EAAE,kBAAkB;oBACxB,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;iBAClD,CAAC;gBACF,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;oBACtC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;oBACtC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,GAAG,CAAC,MAAM,mBAAmB,CAAC,OAAO,CAAC,SAAS,EAAE;wBAC/C,eAAe,EAAE,OAAO,CAAC,eAAe;wBACxC,eAAe,EAAE,OAAO,CAAC,eAAgB;qBAC1C,CAAC,CAAC;oBACH,kBAAkB;oBAClB,QAAQ;iBACT,CAAC,CAAC,CACJ,CAAC;gBACF,0EAA0E;gBAC1E,KAAK,MAAM,OAAO,IAAI,QAAQ;oBAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrE,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBACtC,OAAO;oBACL,QAAQ,EAAE,SAAS;oBACnB,GAAG,CAAC,YAAY;wBACd,CAAC,CAAC;4BACE,YAAY,EAAE;gCACZ,MAAM,EAAE,SAAS,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,EAC9D,CAAC,CACF;gCACD,WAAW,EACT,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gCAC5E,KAAK,EAAE,YAAY;6BACpB;yBACF;wBACH,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,OAAO,EAAE,CAAC;gBACV,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAkD,EAClD,UAAmB;IAEnB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,8DAA8D;YAC9D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,gDAAgD,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,OAAyB,EAAE,EAAU;IACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACrB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,EAAU;IAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAiD,EACjD,KAAa;IAEb,OAAO,IAAI,oBAAoB,CAAC,aAAa,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,MAAM,CAAC,MAAc,EAAE,IAAc;IAC5C,OAAO,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,cAAc,CAAC,MAAiC;IACvD,OAAO,CACL,MAAM,CAAC,KAAK,EAAE,OAAO;QACrB,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE;QACrB,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE;QACrB,QAAQ,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CACrC,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,UAAkB;IAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farmslot/adapter-rn",
3
- "version": "0.22.7",
3
+ "version": "0.22.9",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -46,9 +46,9 @@
46
46
  "prepublishOnly": "node ../../scripts/quality/check-farmslot-package-readiness.mjs --publish --packages @farmslot/adapter-rn"
47
47
  },
48
48
  "dependencies": {
49
- "@farmslot/agent-runtime": "0.22.2",
50
- "@farmslot/protocol": "0.44.0",
51
- "@farmslot/recipe-runner": "0.35.0",
49
+ "@farmslot/agent-runtime": "0.22.4",
50
+ "@farmslot/protocol": "0.45.0",
51
+ "@farmslot/recipe-runner": "0.36.0",
52
52
  "pngjs": "^7.0.0",
53
53
  "ws": "^8.18.0"
54
54
  },