ac6502 1.11.0 → 1.13.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
@@ -118,9 +112,9 @@ ac6502 [options]
118
112
 
119
113
  - `-c, --cart <path>` - Load a cartridge ROM file
120
114
  - `-r, --rom <path>` - Load a system ROM file
115
+ - `-g, --program <path>` - Load a program binary file into RAM ($0800-$7FFF)
121
116
  - `-f, --freq <frequency>` - Set CPU frequency in Hz (default: 1000000)
122
117
  - `-s, --scale <factor>` - Set display scale factor (default: 1)
123
- - `-T, --target <target>` - System target: cob, vcs, kim, dev (default: cob)
124
118
  - `-p, --port <device>` - Serial port device path
125
119
  - `-b, --baudrate <rate>` - Serial baud rate (default: 9600)
126
120
  - `-a, --parity <type>` - Serial parity: none, even, odd (default: none)
@@ -135,99 +129,35 @@ ac6502 [options]
135
129
  Load a cartridge:
136
130
 
137
131
  ```bash
138
- ac6502 --cart /path/to/game.bin
132
+ ac6502 --rom /path/to/rom.bin --cart /path/to/cart.bin
139
133
  ```
140
134
 
141
- Connect to serial hardware:
135
+ Load a program into RAM:
142
136
 
143
137
  ```bash
144
- ac6502 --port /dev/ttyUSB0 --baudrate 9600 --rom /path/to/monitor.bin
138
+ ac6502 --rom /path/to/rom.bin --program /path/to/program.bin
145
139
  ```
146
140
 
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:
141
+ Connect to serial hardware:
154
142
 
155
143
  ```bash
156
- ac6502 --target dev --cart /path/to/program.bin
144
+ ac6502 --port /dev/ttyUSB0 --baudrate 9600 --rom /path/to/rom.bin
157
145
  ```
158
146
 
159
147
  Set custom CPU frequency and storage:
160
148
 
161
149
  ```bash
162
- ac6502 --freq 2000000 --storage ./disk.img --cart /path/to/program.bin
150
+ ac6502 --freq 2000000 --storage ./disk.img --rom /path/to/rom.bin --cart /path/to/cart.bin
163
151
  ```
164
152
 
165
153
  ## Architecture
166
154
 
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)
193
-
194
- Minimal system focused on video and sound:
195
-
196
- ```
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)
155
+ ### System Configuration
209
156
 
210
- Single-board computer with LCD and keypad:
157
+ The emulator implements a full-featured 65C02 system with all peripherals:
211
158
 
212
159
  ```
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)
160
+ Machine
231
161
  ├── CPU (65C02)
232
162
  ├── RAM (System Memory)
233
163
  ├── ROM (System BIOS/Monitor)
@@ -245,17 +175,12 @@ Machine (DEV)
245
175
 
246
176
  ### VIA (GPIO) Attachments
247
177
 
248
- The VIA card supports multiple attachment types depending on the target:
178
+ The VIA card supports multiple attachment types:
249
179
 
250
- #### Standard Attachments (COB/DEV/VCS)
251
180
  - **Keyboard Matrix**: PS/2-style keyboard matrix scanning
252
181
  - **Keyboard Encoder**: Parallel keyboard encoder
253
182
  - **Joystick A/B**: Game controllers with 8 buttons and directional input
254
183
 
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
184
  ### Memory Map
260
185
 
261
186
  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 +213,7 @@ src/
288
213
  │ ├── Attachment.ts
289
214
  │ ├── JoystickAttachment.ts
290
215
  │ ├── KeyboardEncoderAttachment.ts
291
- ├── KeyboardMatrixAttachment.ts
292
- │ ├── KeypadAttachment.ts
293
- │ └── LCDAttachment.ts
216
+ └── KeyboardMatrixAttachment.ts
294
217
  └── tests/ # Comprehensive test suite
295
218
  ```
296
219
 
@@ -337,11 +260,10 @@ The emulator targets 1 MHz operation by default (configurable) and attempts to m
337
260
 
338
261
  ## Supported Input Devices
339
262
 
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
263
+ - **Keyboard**: Full keyboard support via SDL
264
+ - **Game Controllers**: Dual controller support (Player A and Player B)
342
265
  - D-pad and analog stick support
343
266
  - 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
267
 
346
268
  ## Credits
347
269
 
@@ -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":"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"}
1
+ {"version":3,"file":"Machine.js","sourceRoot":"","sources":["../../src/components/Machine.ts"],"names":[],"mappings":"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"}