ac6502 1.11.0 → 1.12.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.
package/README.md CHANGED
@@ -4,7 +4,7 @@ A comprehensive, cycle-accurate emulator for the [A.C. Wright 6502](https://gith
4
4
 
5
5
  ## Overview
6
6
 
7
- This emulator provides a complete software implementation of a 65C02-based computer system, designed to run the same code as the hardware implementation. It features full I/O peripheral support, including video, sound, serial communication, storage, and GPIO interfaces. The emulator supports four different system configurations (targets) to accommodate various use cases from full-featured systems to minimal development boards.
7
+ This emulator provides a complete software implementation of a 65C02-based computer system, designed to run the same code as the hardware implementation. It features full I/O peripheral support, including video, sound, serial communication, storage, and GPIO interfaces.
8
8
 
9
9
  ## Features
10
10
 
@@ -42,7 +42,6 @@ This emulator provides a complete software implementation of a 65C02-based compu
42
42
  - **Input Devices**
43
43
  - Keyboard support (matrix and encoder modes)
44
44
  - Joystick/gamepad support with button mapping (dual controller support)
45
- - Keypad support (KIM mode)
46
45
  - SDL input handling
47
46
 
48
47
  - **Development Features**
@@ -59,16 +58,11 @@ Get up and running in seconds:
59
58
  # Install globally
60
59
  npm install -g ac6502
61
60
 
62
- # Run the emulator (default COB target)
61
+ # Run the emulator
63
62
  ac6502
64
63
 
65
64
  # Load a ROM
66
65
  ac6502 --rom /path/to/rom.bin
67
-
68
- # Run in different system configurations
69
- ac6502 --target kim --rom /path/to/kim.bin
70
- ac6502 --target dev --cart /path/to/program.bin
71
- ac6502 --target vcs --cart /path/to/game.bin
72
66
  ```
73
67
 
74
68
  ## Installation
@@ -120,7 +114,6 @@ ac6502 [options]
120
114
  - `-r, --rom <path>` - Load a system ROM file
121
115
  - `-f, --freq <frequency>` - Set CPU frequency in Hz (default: 1000000)
122
116
  - `-s, --scale <factor>` - Set display scale factor (default: 1)
123
- - `-T, --target <target>` - System target: cob, vcs, kim, dev (default: cob)
124
117
  - `-p, --port <device>` - Serial port device path
125
118
  - `-b, --baudrate <rate>` - Serial baud rate (default: 9600)
126
119
  - `-a, --parity <type>` - Serial parity: none, even, odd (default: none)
@@ -135,99 +128,29 @@ ac6502 [options]
135
128
  Load a cartridge:
136
129
 
137
130
  ```bash
138
- ac6502 --cart /path/to/game.bin
131
+ ac6502 --rom /path/to/rom.bin --cart /path/to/cart.bin
139
132
  ```
140
133
 
141
134
  Connect to serial hardware:
142
135
 
143
136
  ```bash
144
- ac6502 --port /dev/ttyUSB0 --baudrate 9600 --rom /path/to/monitor.bin
145
- ```
146
-
147
- Run in KIM mode with LCD and keypad:
148
-
149
- ```bash
150
- ac6502 --target kim --rom /path/to/kim.bin --scale 2
151
- ```
152
-
153
- Run in development mode with terminal:
154
-
155
- ```bash
156
- ac6502 --target dev --cart /path/to/program.bin
137
+ ac6502 --port /dev/ttyUSB0 --baudrate 9600 --rom /path/to/rom.bin
157
138
  ```
158
139
 
159
140
  Set custom CPU frequency and storage:
160
141
 
161
142
  ```bash
162
- ac6502 --freq 2000000 --storage ./disk.img --cart /path/to/program.bin
143
+ ac6502 --freq 2000000 --storage ./disk.img --rom /path/to/rom.bin --cart /path/to/cart.bin
163
144
  ```
164
145
 
165
146
  ## Architecture
166
147
 
167
- ### System Targets
168
-
169
- The emulator supports four different system configurations via the `--target` option:
170
-
171
- #### COB (Complete On-Board) - Default
172
-
173
- Full-featured system with all peripherals:
174
-
175
- ```
176
- Machine (COB)
177
- ├── CPU (65C02)
178
- ├── RAM (System Memory)
179
- ├── ROM (System BIOS/Monitor)
180
- ├── Cart (Optional Cartridge)
181
- └── I/O Cards (8 slots)
182
- ├── IO1: RAM Card (Expansion)
183
- ├── IO2: RAM Card (Expansion)
184
- ├── IO3: RTC Card (DS1511Y+ Real-Time Clock)
185
- ├── IO4: Storage Card (Compact Flash 8-bit IDE Mode)
186
- ├── IO5: Serial Card (6551 ACIA)
187
- ├── IO6: VIA Card (6522 GPIO)
188
- ├── IO7: Sound Card (6581 SID)
189
- └── IO8: Video Card (TMS9918)
190
- ```
191
-
192
- #### VCS (Video Computer System)
148
+ ### System Configuration
193
149
 
194
- Minimal system focused on video and sound:
150
+ The emulator implements a full-featured 65C02 system with all peripherals:
195
151
 
196
152
  ```
197
- Machine (VCS)
198
- ├── CPU (65C02)
199
- ├── RAM (System Memory)
200
- ├── ROM (System BIOS/Monitor)
201
- ├── Cart (Optional Cartridge)
202
- └── I/O Cards (8 slots)
203
- ├── IO6: VIA Card (6522 GPIO)
204
- ├── IO7: Sound Card (6581 SID)
205
- └── IO8: Video Card (TMS9918)
206
- ```
207
-
208
- #### KIM (Keyboard Input Monitor)
209
-
210
- Single-board computer with LCD and keypad:
211
-
212
- ```
213
- Machine (KIM)
214
- ├── CPU (65C02)
215
- ├── RAM (System Memory)
216
- ├── ROM (System BIOS/Monitor)
217
- ├── Cart (Optional Cartridge)
218
- └── I/O Cards (8 slots)
219
- ├── IO5: Serial Card (6551 ACIA)
220
- └── IO8: VIA Card (6522 GPIO)
221
- ├── LCD Attachment (HD44780 16×2 character display)
222
- └── Keypad Attachment (4×6 matrix keypad)
223
- ```
224
-
225
- #### DEV (Development)
226
-
227
- System for software development with terminal interface:
228
-
229
- ```
230
- Machine (DEV)
153
+ Machine
231
154
  ├── CPU (65C02)
232
155
  ├── RAM (System Memory)
233
156
  ├── ROM (System BIOS/Monitor)
@@ -245,17 +168,12 @@ Machine (DEV)
245
168
 
246
169
  ### VIA (GPIO) Attachments
247
170
 
248
- The VIA card supports multiple attachment types depending on the target:
171
+ The VIA card supports multiple attachment types:
249
172
 
250
- #### Standard Attachments (COB/DEV/VCS)
251
173
  - **Keyboard Matrix**: PS/2-style keyboard matrix scanning
252
174
  - **Keyboard Encoder**: Parallel keyboard encoder
253
175
  - **Joystick A/B**: Game controllers with 8 buttons and directional input
254
176
 
255
- #### KIM Attachments
256
- - **LCD Display**: HD44780-compatible 16×2 character LCD with 5×8 pixel characters
257
- - **Keypad**: 4×6 matrix keypad with 24-key layout
258
-
259
177
  ### Memory Map
260
178
 
261
179
  The system uses a standard 6502 memory layout with I/O cards mapped into the address space. Each I/O card occupies a dedicated region accessible via memory-mapped registers.
@@ -288,9 +206,7 @@ src/
288
206
  │ ├── Attachment.ts
289
207
  │ ├── JoystickAttachment.ts
290
208
  │ ├── KeyboardEncoderAttachment.ts
291
- ├── KeyboardMatrixAttachment.ts
292
- │ ├── KeypadAttachment.ts
293
- │ └── LCDAttachment.ts
209
+ └── KeyboardMatrixAttachment.ts
294
210
  └── tests/ # Comprehensive test suite
295
211
  ```
296
212
 
@@ -337,11 +253,10 @@ The emulator targets 1 MHz operation by default (configurable) and attempts to m
337
253
 
338
254
  ## Supported Input Devices
339
255
 
340
- - **Keyboard**: Full keyboard support via SDL for all targets
341
- - **Game Controllers**: Dual controller support (Player A and Player B) for VCS and COB targets
256
+ - **Keyboard**: Full keyboard support via SDL
257
+ - **Game Controllers**: Dual controller support (Player A and Player B)
342
258
  - D-pad and analog stick support
343
259
  - 8 buttons: Up, Down, Left, Right, A, B, Select, Start
344
- - **Keypad**: 4×6 matrix keypad for KIM target (24 keys including arrows, numbers, and function keys)
345
260
 
346
261
  ## Credits
347
262
 
@@ -5,8 +5,6 @@ import { Cart } from './Cart';
5
5
  import { KeyboardMatrixAttachment } from './IO/Attachments/KeyboardMatrixAttachment';
6
6
  import { KeyboardEncoderAttachment } from './IO/Attachments/KeyboardEncoderAttachment';
7
7
  import { JoystickAttachment } from './IO/Attachments/JoystickAttachment';
8
- import { LCDAttachment } from './IO/Attachments/LCDAttachment';
9
- import { KeypadAttachment } from './IO/Attachments/KeypadAttachment';
10
8
  import { IO } from './IO';
11
9
  export declare class Machine {
12
10
  static MAX_FPS: number;
@@ -28,9 +26,6 @@ export declare class Machine {
28
26
  keyboardEncoderAttachment?: KeyboardEncoderAttachment;
29
27
  joystickAttachmentA?: JoystickAttachment;
30
28
  joystickAttachmentB?: JoystickAttachment;
31
- lcdAttachment?: LCDAttachment;
32
- keypadAttachment?: KeypadAttachment;
33
- target: string;
34
29
  isRunning: boolean;
35
30
  frequency: number;
36
31
  scale: number;
@@ -40,8 +35,8 @@ export declare class Machine {
40
35
  transmit?: (data: number) => void;
41
36
  render?: () => void;
42
37
  play?: (samples: Float32Array) => void;
43
- constructor(target: string);
44
- configureTarget(target: string): void;
38
+ constructor();
39
+ private configure;
45
40
  loadROM: (data: Uint8Array | number[] | ArrayBuffer) => void;
46
41
  loadCart: (data: Uint8Array | number[] | ArrayBuffer) => void;
47
42
  run(): void;
@@ -15,14 +15,11 @@ const Video_1 = require("./IO/Video");
15
15
  const KeyboardMatrixAttachment_1 = require("./IO/Attachments/KeyboardMatrixAttachment");
16
16
  const KeyboardEncoderAttachment_1 = require("./IO/Attachments/KeyboardEncoderAttachment");
17
17
  const JoystickAttachment_1 = require("./IO/Attachments/JoystickAttachment");
18
- const LCDAttachment_1 = require("./IO/Attachments/LCDAttachment");
19
- const KeypadAttachment_1 = require("./IO/Attachments/KeypadAttachment");
20
- const Empty_1 = require("./IO/Empty");
21
18
  class Machine {
22
19
  //
23
20
  // Initialization
24
21
  //
25
- constructor(target) {
22
+ constructor() {
26
23
  this.isRunning = false;
27
24
  this.frequency = 1000000; // 1 MHz
28
25
  this.scale = 2;
@@ -58,170 +55,52 @@ class Machine {
58
55
  cart.load(dataArray);
59
56
  this.cart = cart;
60
57
  };
61
- this.target = target;
62
58
  this.cpu = new CPU_1.CPU(this.read.bind(this), this.write.bind(this));
63
59
  this.ram = new RAM_1.RAM();
64
60
  this.rom = new ROM_1.ROM();
65
- this.io1 = new Empty_1.Empty();
66
- this.io2 = new Empty_1.Empty();
67
- this.io3 = new Empty_1.Empty();
68
- this.io4 = new Empty_1.Empty();
69
- this.io5 = new Empty_1.Empty();
70
- this.io6 = new Empty_1.Empty();
71
- this.io7 = new Empty_1.Empty();
72
- this.io8 = new Empty_1.Empty();
73
- this.configureTarget(target);
61
+ this.configure();
74
62
  this.startTime = Date.now();
75
63
  this.cpu.reset();
76
64
  }
77
- configureTarget(target) {
78
- if (target === 'kim') {
79
- const acia = new ACIA_1.ACIA();
80
- this.io5 = acia;
81
- // Connect ACIA transmit callback
82
- acia.transmit = (data) => {
83
- if (this.transmit) {
84
- this.transmit(data);
85
- }
86
- };
87
- this.io1 = new Empty_1.Empty();
88
- this.io2 = new Empty_1.Empty();
89
- this.io3 = new Empty_1.Empty();
90
- this.io4 = new Empty_1.Empty();
91
- this.io6 = new Empty_1.Empty();
92
- this.io7 = new Empty_1.Empty();
93
- const via = new VIA_1.VIA();
94
- this.io8 = via;
95
- // Create KIM GPIO Attachments
96
- this.lcdAttachment = new LCDAttachment_1.LCDAttachment(16, 2, 10);
97
- this.keypadAttachment = new KeypadAttachment_1.KeypadAttachment(true, 20);
98
- // Attach LCD to Port A (control: RS/RW/E on bits 5-7) and Port B (data bus)
99
- via.attachToPortA(this.lcdAttachment);
100
- via.attachToPortB(this.lcdAttachment);
101
- // Attach keypad to Port A (bits 0-4)
102
- via.attachToPortA(this.keypadAttachment);
103
- }
104
- else if (target === 'dev') {
105
- const acia = new ACIA_1.ACIA();
106
- this.io5 = acia;
107
- // Connect ACIA transmit callback
108
- acia.transmit = (data) => {
109
- if (this.transmit) {
110
- this.transmit(data);
111
- }
112
- };
113
- const rtc = new RTC_1.RTC();
114
- const storage = new Storage_1.Storage();
115
- const via = new VIA_1.VIA();
116
- const sound = new Sound_1.Sound();
117
- const video = new Video_1.Video();
118
- this.io1 = new RAMBank_1.RAMBank();
119
- this.io2 = new RAMBank_1.RAMBank();
120
- this.io3 = rtc;
121
- this.io4 = storage;
122
- this.io6 = via;
123
- this.io7 = sound;
124
- this.io8 = video;
125
- // Connect Sound pushSamples callback
126
- sound.pushSamples = (samples) => {
127
- if (this.play) {
128
- this.play(samples);
129
- }
130
- };
131
- // Create standard GPIO attachments
132
- this.keyboardMatrixAttachment = new KeyboardMatrixAttachment_1.KeyboardMatrixAttachment(10);
133
- this.keyboardEncoderAttachment = new KeyboardEncoderAttachment_1.KeyboardEncoderAttachment(20);
134
- this.joystickAttachmentA = new JoystickAttachment_1.JoystickAttachment(false, 100);
135
- this.joystickAttachmentB = new JoystickAttachment_1.JoystickAttachment(false, 100);
136
- // Attach peripherals to GPIO Card
137
- via.attachToPortA(this.keyboardMatrixAttachment);
138
- via.attachToPortB(this.keyboardMatrixAttachment);
139
- via.attachToPortA(this.keyboardEncoderAttachment);
140
- via.attachToPortB(this.keyboardEncoderAttachment);
141
- via.attachToPortA(this.joystickAttachmentA);
142
- via.attachToPortB(this.joystickAttachmentB);
143
- }
144
- else if (target === 'vcs') {
145
- this.io5 = new Empty_1.Empty();
146
- const via = new VIA_1.VIA();
147
- const sound = new Sound_1.Sound();
148
- const video = new Video_1.Video();
149
- this.io1 = new Empty_1.Empty();
150
- this.io2 = new Empty_1.Empty();
151
- this.io3 = new Empty_1.Empty();
152
- this.io4 = new Empty_1.Empty();
153
- this.io6 = via;
154
- this.io7 = sound;
155
- this.io8 = video;
156
- // Connect Sound pushSamples callback
157
- sound.pushSamples = (samples) => {
158
- if (this.play) {
159
- this.play(samples);
160
- }
161
- };
162
- // Create standard GPIO attachments
163
- this.keyboardMatrixAttachment = new KeyboardMatrixAttachment_1.KeyboardMatrixAttachment(10);
164
- this.keyboardEncoderAttachment = new KeyboardEncoderAttachment_1.KeyboardEncoderAttachment(20);
165
- this.joystickAttachmentA = new JoystickAttachment_1.JoystickAttachment(false, 100);
166
- this.joystickAttachmentB = new JoystickAttachment_1.JoystickAttachment(false, 100);
167
- // Attach peripherals to GPIO Card
168
- via.attachToPortA(this.keyboardMatrixAttachment);
169
- via.attachToPortB(this.keyboardMatrixAttachment);
170
- via.attachToPortA(this.keyboardEncoderAttachment);
171
- via.attachToPortB(this.keyboardEncoderAttachment);
172
- via.attachToPortA(this.joystickAttachmentA);
173
- via.attachToPortB(this.joystickAttachmentB);
174
- }
175
- else if (target === 'cob') {
176
- const acia = new ACIA_1.ACIA();
177
- this.io5 = acia;
178
- // Connect ACIA transmit callback
179
- acia.transmit = (data) => {
180
- if (this.transmit) {
181
- this.transmit(data);
182
- }
183
- };
184
- const rtc = new RTC_1.RTC();
185
- const storage = new Storage_1.Storage();
186
- const via = new VIA_1.VIA();
187
- const sound = new Sound_1.Sound();
188
- const video = new Video_1.Video();
189
- this.io1 = new RAMBank_1.RAMBank();
190
- this.io2 = new RAMBank_1.RAMBank();
191
- this.io3 = rtc;
192
- this.io4 = storage;
193
- this.io6 = via;
194
- this.io7 = sound;
195
- this.io8 = video;
196
- // Connect Sound pushSamples callback
197
- sound.pushSamples = (samples) => {
198
- if (this.play) {
199
- this.play(samples);
200
- }
201
- };
202
- // Create standard GPIO attachments
203
- this.keyboardMatrixAttachment = new KeyboardMatrixAttachment_1.KeyboardMatrixAttachment(10);
204
- this.keyboardEncoderAttachment = new KeyboardEncoderAttachment_1.KeyboardEncoderAttachment(20);
205
- this.joystickAttachmentA = new JoystickAttachment_1.JoystickAttachment(false, 100);
206
- this.joystickAttachmentB = new JoystickAttachment_1.JoystickAttachment(false, 100);
207
- // Attach peripherals to GPIO Card
208
- via.attachToPortA(this.keyboardMatrixAttachment);
209
- via.attachToPortB(this.keyboardMatrixAttachment);
210
- via.attachToPortA(this.keyboardEncoderAttachment);
211
- via.attachToPortB(this.keyboardEncoderAttachment);
212
- via.attachToPortA(this.joystickAttachmentA);
213
- via.attachToPortB(this.joystickAttachmentB);
214
- }
215
- else {
216
- this.io1 = new Empty_1.Empty();
217
- this.io2 = new Empty_1.Empty();
218
- this.io3 = new Empty_1.Empty();
219
- this.io4 = new Empty_1.Empty();
220
- this.io5 = new Empty_1.Empty();
221
- this.io6 = new Empty_1.Empty();
222
- this.io7 = new Empty_1.Empty();
223
- this.io8 = new Empty_1.Empty();
224
- }
65
+ configure() {
66
+ const acia = new ACIA_1.ACIA();
67
+ this.io5 = acia;
68
+ // Connect ACIA transmit callback
69
+ acia.transmit = (data) => {
70
+ if (this.transmit) {
71
+ this.transmit(data);
72
+ }
73
+ };
74
+ const rtc = new RTC_1.RTC();
75
+ const storage = new Storage_1.Storage();
76
+ const via = new VIA_1.VIA();
77
+ const sound = new Sound_1.Sound();
78
+ const video = new Video_1.Video();
79
+ this.io1 = new RAMBank_1.RAMBank();
80
+ this.io2 = new RAMBank_1.RAMBank();
81
+ this.io3 = rtc;
82
+ this.io4 = storage;
83
+ this.io6 = via;
84
+ this.io7 = sound;
85
+ this.io8 = video;
86
+ // Connect Sound pushSamples callback
87
+ sound.pushSamples = (samples) => {
88
+ if (this.play) {
89
+ this.play(samples);
90
+ }
91
+ };
92
+ // Create standard GPIO attachments
93
+ this.keyboardMatrixAttachment = new KeyboardMatrixAttachment_1.KeyboardMatrixAttachment(10);
94
+ this.keyboardEncoderAttachment = new KeyboardEncoderAttachment_1.KeyboardEncoderAttachment(20);
95
+ this.joystickAttachmentA = new JoystickAttachment_1.JoystickAttachment(false, 100);
96
+ this.joystickAttachmentB = new JoystickAttachment_1.JoystickAttachment(false, 100);
97
+ // Attach peripherals to GPIO Card
98
+ via.attachToPortA(this.keyboardMatrixAttachment);
99
+ via.attachToPortB(this.keyboardMatrixAttachment);
100
+ via.attachToPortA(this.keyboardEncoderAttachment);
101
+ via.attachToPortB(this.keyboardEncoderAttachment);
102
+ via.attachToPortA(this.joystickAttachmentA);
103
+ via.attachToPortB(this.joystickAttachmentB);
225
104
  }
226
105
  run() {
227
106
  this.isRunning = true;
@@ -284,26 +163,17 @@ class Machine {
284
163
  }
285
164
  }
286
165
  onReceive(data) {
287
- if (this.target !== 'vcs') {
288
- this.io5.onData(data); // Pass data to Serial card
289
- }
166
+ this.io5.onData(data); // Pass data to Serial card
290
167
  }
291
168
  onKeyDown(scancode) {
292
- var _a, _b, _c;
293
- if (this.target === 'kim') {
294
- (_a = this.keypadAttachment) === null || _a === void 0 ? void 0 : _a.updateKey(scancode, true);
295
- }
296
- else {
297
- (_b = this.keyboardMatrixAttachment) === null || _b === void 0 ? void 0 : _b.updateKey(scancode, true);
298
- (_c = this.keyboardEncoderAttachment) === null || _c === void 0 ? void 0 : _c.updateKey(scancode, true);
299
- }
169
+ var _a, _b;
170
+ (_a = this.keyboardMatrixAttachment) === null || _a === void 0 ? void 0 : _a.updateKey(scancode, true);
171
+ (_b = this.keyboardEncoderAttachment) === null || _b === void 0 ? void 0 : _b.updateKey(scancode, true);
300
172
  }
301
173
  onKeyUp(scancode) {
302
174
  var _a, _b;
303
- if (this.target !== 'kim') {
304
- (_a = this.keyboardMatrixAttachment) === null || _a === void 0 ? void 0 : _a.updateKey(scancode, false);
305
- (_b = this.keyboardEncoderAttachment) === null || _b === void 0 ? void 0 : _b.updateKey(scancode, false);
306
- }
175
+ (_a = this.keyboardMatrixAttachment) === null || _a === void 0 ? void 0 : _a.updateKey(scancode, false);
176
+ (_b = this.keyboardEncoderAttachment) === null || _b === void 0 ? void 0 : _b.updateKey(scancode, false);
307
177
  }
308
178
  onJoystickA(buttons) {
309
179
  var _a;
@@ -338,14 +208,10 @@ class Machine {
338
208
  }
339
209
  this._accumulatorMs = accumulator;
340
210
  }
341
- if (this.render && (this.target === 'kim' || this.target === 'dev')) {
342
- this.render();
343
- this.frames += 1;
344
- }
345
- else if (this.render && (this.target === 'cob' || this.target === 'vcs')) {
346
- const Video = this.io8;
347
- if (Video.frameReady) {
348
- Video.frameReady = false;
211
+ if (this.render) {
212
+ const video = this.io8;
213
+ if (video.frameReady) {
214
+ video.frameReady = false;
349
215
  this.render();
350
216
  this.frames += 1;
351
217
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Machine.js","sourceRoot":"","sources":["../../src/components/Machine.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAC3B,+BAA2B;AAC3B,+BAA2B;AAC3B,iCAA6B;AAC7B,kCAA8B;AAC9B,0CAAsC;AACtC,kCAA8B;AAC9B,oCAAgC;AAChC,sCAAkC;AAClC,0CAAsC;AACtC,sCAAkC;AAClC,wFAAoF;AACpF,0FAAsF;AACtF,4EAAwE;AACxE,kEAA8D;AAC9D,wEAAoE;AACpE,sCAAkC;AAGlC,MAAa,OAAO;IA2ClB,EAAE;IACF,iBAAiB;IACjB,EAAE;IAEF,YAAY,MAAc;QAf1B,cAAS,GAAY,KAAK,CAAA;QAC1B,cAAS,GAAW,OAAO,CAAA,CAAC,QAAQ;QACpC,UAAK,GAAW,CAAC,CAAA;QACjB,WAAM,GAAW,CAAC,CAAA;QAClB,cAAS,GAAW,IAAI,CAAC,GAAG,EAAE,CAAA;QAC9B,iBAAY,GAAW,WAAW,CAAC,GAAG,EAAE,CAAA;QAwMxC,EAAE;QACF,UAAU;QACV,EAAE;QAEF,YAAO,GAAG,CAAC,IAAyC,EAAE,EAAE;YACtD,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjD,CAAC;iBAAM,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC;QACH,CAAC,CAAA;QAED,aAAQ,GAAG,CAAC,IAAyC,EAAE,EAAE;YACvD,IAAI,SAAmB,CAAA;YACvB,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;gBAChC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9C,CAAC;iBAAM,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;gBACtC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9B,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,IAAI,CAAA;YAClB,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,WAAI,EAAE,CAAA;YACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,CAAC,CAAA;QAvNC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,SAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/D,IAAI,CAAC,GAAG,GAAG,IAAI,SAAG,EAAE,CAAA;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,SAAG,EAAE,CAAA;QAEpB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;QAEtB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAE5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;IAED,eAAe,CAAC,MAAc;QAC5B,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,WAAI,EAAE,CAAA;YACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;YAEf,iCAAiC;YACjC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;gBAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACrB,CAAC;YACH,CAAC,CAAA;YAED,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YAEtB,MAAM,GAAG,GAAG,IAAI,SAAG,EAAE,CAAA;YACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;YAEd,8BAA8B;YAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,6BAAa,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;YACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,mCAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YAEtD,4EAA4E;YAC5E,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACrC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAErC,qCAAqC;YACrC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC1C,CAAC;aAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,WAAI,EAAE,CAAA;YACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;YAEf,iCAAiC;YACjC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;gBAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACrB,CAAC;YACH,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,IAAI,SAAG,EAAE,CAAA;YACrB,MAAM,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAA;YAC7B,MAAM,GAAG,GAAG,IAAI,SAAG,EAAE,CAAA;YACrB,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAA;YACzB,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAA;YAEzB,IAAI,CAAC,GAAG,GAAG,IAAI,iBAAO,EAAE,CAAA;YACxB,IAAI,CAAC,GAAG,GAAG,IAAI,iBAAO,EAAE,CAAA;YACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;YACd,IAAI,CAAC,GAAG,GAAG,OAAO,CAAA;YAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;YACd,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;YAChB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;YAEhB,qCAAqC;YACrC,KAAK,CAAC,WAAW,GAAG,CAAC,OAAqB,EAAE,EAAE;gBAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC,CAAA;YAED,mCAAmC;YACnC,IAAI,CAAC,wBAAwB,GAAG,IAAI,mDAAwB,CAAC,EAAE,CAAC,CAAA;YAChE,IAAI,CAAC,yBAAyB,GAAG,IAAI,qDAAyB,CAAC,EAAE,CAAC,CAAA;YAClE,IAAI,CAAC,mBAAmB,GAAG,IAAI,uCAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,uCAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAE7D,kCAAkC;YAClC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;YAChD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;YAChD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;YACjD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;YACjD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAC3C,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAC7C,CAAC;aAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YAEtB,MAAM,GAAG,GAAG,IAAI,SAAG,EAAE,CAAA;YACrB,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAA;YACzB,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAA;YAEzB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;YACd,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;YAChB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;YAEhB,qCAAqC;YACrC,KAAK,CAAC,WAAW,GAAG,CAAC,OAAqB,EAAE,EAAE;gBAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC,CAAA;YAED,mCAAmC;YACnC,IAAI,CAAC,wBAAwB,GAAG,IAAI,mDAAwB,CAAC,EAAE,CAAC,CAAA;YAChE,IAAI,CAAC,yBAAyB,GAAG,IAAI,qDAAyB,CAAC,EAAE,CAAC,CAAA;YAClE,IAAI,CAAC,mBAAmB,GAAG,IAAI,uCAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,uCAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAE7D,kCAAkC;YAClC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;YAChD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;YAChD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;YACjD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;YACjD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAC3C,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAC7C,CAAC;aAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,WAAI,EAAE,CAAA;YACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;YAEf,iCAAiC;YACjC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;gBAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACrB,CAAC;YACH,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,IAAI,SAAG,EAAE,CAAA;YACrB,MAAM,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAA;YAC7B,MAAM,GAAG,GAAG,IAAI,SAAG,EAAE,CAAA;YACrB,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAA;YACzB,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAA;YAEzB,IAAI,CAAC,GAAG,GAAG,IAAI,iBAAO,EAAE,CAAA;YACxB,IAAI,CAAC,GAAG,GAAG,IAAI,iBAAO,EAAE,CAAA;YACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;YACd,IAAI,CAAC,GAAG,GAAG,OAAO,CAAA;YAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;YACd,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;YAChB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;YAEhB,qCAAqC;YACrC,KAAK,CAAC,WAAW,GAAG,CAAC,OAAqB,EAAE,EAAE;gBAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC,CAAA;YAED,mCAAmC;YACnC,IAAI,CAAC,wBAAwB,GAAG,IAAI,mDAAwB,CAAC,EAAE,CAAC,CAAA;YAChE,IAAI,CAAC,yBAAyB,GAAG,IAAI,qDAAyB,CAAC,EAAE,CAAC,CAAA;YAClE,IAAI,CAAC,mBAAmB,GAAG,IAAI,uCAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,uCAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAE7D,kCAAkC;YAClC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;YAChD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;YAChD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;YACjD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;YACjD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAC3C,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;QACxB,CAAC;IACH,CAAC;IA8BD,GAAG;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,CAAC,IAAI,EAAE,CAAA;IACb,CAAC;IAED,IAAI;QACF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;gBAC1C,cAAc,CAAC,IAAI,CAAC,UAAiB,CAAC,CAAA;YACxC,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,IAAI,CAAC,UAAiB,CAAC,CAAA;YACtC,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,IAAI;QACF,wCAAwC;QACxC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAEtC,kDAAkD;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE,CAAA;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAkB;QACtB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;QAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI;QACF,8BAA8B;QAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAEf,0DAA0D;QAC1D,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;IAEO,MAAM;QACZ,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1C,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1C,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1C,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1C,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1C,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAE1C,IAAI,SAAS,GAAG,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACrB,CAAC;QACD,IAAI,SAAS,GAAG,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QAChB,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,GAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,2BAA2B;QAC7D,CAAC;IACH,CAAC;IAED,SAAS,CAAC,QAAgB;;QACxB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC1B,MAAA,IAAI,CAAC,gBAAgB,0CAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,MAAA,IAAI,CAAC,wBAAwB,0CAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YACxD,MAAA,IAAI,CAAC,yBAAyB,0CAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,CAAC,QAAgB;;QACtB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC1B,MAAA,IAAI,CAAC,wBAAwB,0CAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YACzD,MAAA,IAAI,CAAC,yBAAyB,0CAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAED,WAAW,CAAC,OAAe;;QACzB,MAAA,IAAI,CAAC,mBAAmB,0CAAE,cAAc,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAED,WAAW,CAAC,OAAe;;QACzB,MAAA,IAAI,CAAC,mBAAmB,0CAAE,cAAc,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAED,EAAE;IACF,kBAAkB;IAClB,EAAE;IAEM,IAAI;;QACV,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC7B,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAA;QACzC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;QAEvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YACxC,IAAI,WAAW,GAAG,MAAC,IAAY,CAAC,cAAc,mCAAI,CAAC,CAAA;YACnD,WAAW,IAAI,SAAS,CAAA;YAExB,MAAM,YAAY,GAAG,GAAG,CAAA;YACxB,IAAI,WAAW,GAAG,YAAY;gBAAE,WAAW,GAAG,YAAY,CAAA;YAE1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC,CAAA;YACvD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;oBACf,IAAI,CAAC,MAAM,EAAE,CAAA;gBACf,CAAC;gBACD,WAAW,IAAI,UAAU,GAAG,UAAU,CAAA;YACxC,CAAC;YAEA,IAAY,CAAC,cAAc,GAAG,WAAW,CAAA;QAC5C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,MAAM,EAAE,CAAA;YACb,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;QAClB,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,EAAE,CAAC;YAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAY,CAAA;YAC/B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAA;gBACxB,IAAI,CAAC,MAAM,EAAE,CAAA;gBACb,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YACnD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,EAAE;IACF,iBAAiB;IACjB,EAAE;IAEF,IAAI,CAAC,OAAe;QAClB,QAAO,IAAI,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,WAAI,CAAC,IAAI,IAAI,OAAO,IAAI,WAAI,CAAC,GAAG,CAAC;gBAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,WAAI,CAAC,KAAK,CAAC,CAAA;YAC7C,KAAK,CAAC,OAAO,IAAI,SAAG,CAAC,IAAI,IAAI,OAAO,IAAI,SAAG,CAAC,GAAG,CAAC;gBAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,SAAG,CAAC,KAAK,CAAC,CAAA;YAC3C,KAAK,CAAC,OAAO,IAAI,SAAG,CAAC,KAAK,IAAI,OAAO,IAAI,SAAG,CAAC,GAAG,CAAC;gBAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC/B,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC7C,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC7C,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC7C,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC7C,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC7C,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC7C,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC7C,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC7C;gBACE,OAAO,CAAC,CAAA;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAY;QACjC,QAAO,IAAI,EAAE,CAAC;YACZ,KAAK,CAAC,OAAO,IAAI,SAAG,CAAC,KAAK,IAAI,OAAO,IAAI,SAAG,CAAC,GAAG,CAAC;gBAC/C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBAC7B,OAAM;YACR,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,CAAA;gBACtC,OAAM;YACR,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,CAAA;gBACtC,OAAM;YACR,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,CAAA;gBACtC,OAAM;YACR,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,CAAA;gBACtC,OAAM;YACR,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,CAAA;gBACtC,OAAM;YACR,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,CAAA;gBACtC,OAAM;YACR,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,CAAA;gBACtC,OAAM;YACR,KAAK,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,CAAA;gBACtC,OAAM;YACR;gBACE,OAAM;QACV,CAAC;IACH,CAAC;;AA7dH,0BA+dC;AA7dQ,eAAO,GAAW,EAAE,AAAb,CAAa;AACpB,yBAAiB,GAAW,IAAI,GAAG,OAAO,CAAC,OAAO,AAAjC,CAAiC"}
1
+ {"version":3,"file":"Machine.js","sourceRoot":"","sources":["../../src/components/Machine.ts"],"names":[],"mappings":"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"}