sabre-client 0.4.1 → 0.5.1

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/dist/testing.js CHANGED
@@ -1,23 +1,74 @@
1
1
  // src/testing/queue-fake.ts
2
- import { XMLParser as XMLParser2 } from "fast-xml-parser";
2
+ import { XMLParser as XMLParser3 } from "fast-xml-parser";
3
3
 
4
4
  // src/queue/queue-access.ts
5
+ import { XMLParser as XMLParser2 } from "fast-xml-parser";
6
+
7
+ // src/http/soap-transport.ts
5
8
  import { XMLParser } from "fast-xml-parser";
9
+ var PARSER_OPTIONS = {
10
+ ignoreAttributes: false,
11
+ attributeNamePrefix: "@",
12
+ removeNSPrefix: true,
13
+ parseTagValue: false,
14
+ parseAttributeValue: false,
15
+ processEntities: true
16
+ };
17
+ var parser = new XMLParser(PARSER_OPTIONS);
18
+ var untrimmedParser = new XMLParser({ ...PARSER_OPTIONS, trimValues: false });
19
+ function parseEnvelope(text2, xmlParser = parser) {
20
+ if (text2.trim() === "") return void 0;
21
+ let parsed;
22
+ try {
23
+ parsed = xmlParser.parse(text2);
24
+ } catch {
25
+ return void 0;
26
+ }
27
+ const envelope2 = asNode(asNode(parsed)?.Envelope);
28
+ const body = asNode(envelope2?.Body);
29
+ if (envelope2 === void 0 || body === void 0) return void 0;
30
+ return { Header: envelope2.Header, Body: body };
31
+ }
32
+ function untrimmedPayload(raw) {
33
+ const document = parseEnvelope(raw, untrimmedParser);
34
+ return document === void 0 ? void 0 : asNode(firstElement(document.Body)[1]);
35
+ }
36
+ function firstElement(node3) {
37
+ for (const [key, value] of Object.entries(node3)) {
38
+ if (!key.startsWith("@") && key !== "#text") return [key, Array.isArray(value) ? value[0] : value];
39
+ }
40
+ return [void 0, void 0];
41
+ }
42
+ function asNode(value) {
43
+ if (Array.isArray(value)) return asNode(value[0]);
44
+ return typeof value === "object" && value !== null ? value : void 0;
45
+ }
46
+ function asArray(value) {
47
+ if (value === void 0 || value === null || value === "") return [];
48
+ return Array.isArray(value) ? value : [value];
49
+ }
50
+ function textOf(value) {
51
+ if (typeof value === "string") return value;
52
+ const node3 = asNode(value);
53
+ const text2 = node3?.["#text"];
54
+ return typeof text2 === "string" ? text2 : node3 === void 0 ? void 0 : "";
55
+ }
6
56
 
7
57
  // src/queue/queue-ref.ts
8
58
  var MIN_QUEUE_NUMBER = 0;
9
59
  var MAX_QUEUE_NUMBER = 511;
60
+ var MESSAGE_QUEUE = "S";
10
61
  function toQueueRef(value) {
11
62
  const text2 = value?.trim();
12
63
  if (text2 === void 0 || text2 === "") return void 0;
13
- return /^\d+$/.test(text2) ? Number(text2) : { name: text2 };
64
+ return /^\d+$/.test(text2) ? Number(text2) : text2;
14
65
  }
15
66
 
16
67
  // src/queue/queue-access.ts
17
68
  var END_OF_DISPLAY = "END OF DISPLAY FOR REQUESTED DATA";
18
69
  var QUEUE_EMPTY = "QUEUE SELECTED WAS EMPTY";
19
70
  var OFF_QUEUE = "CANNOT DO THIS IF OFF QUEUE";
20
- var paragraphParser = new XMLParser({
71
+ var paragraphParser = new XMLParser2({
21
72
  ignoreAttributes: true,
22
73
  removeNSPrefix: true,
23
74
  parseTagValue: false,
@@ -25,6 +76,55 @@ var paragraphParser = new XMLParser({
25
76
  processEntities: true,
26
77
  isArray: (name) => name === "Text"
27
78
  });
79
+ function node(value) {
80
+ if (Array.isArray(value)) return node(value[0]);
81
+ return typeof value === "object" && value !== null ? value : void 0;
82
+ }
83
+ function attribute(value, name) {
84
+ const text2 = node(value)?.[`@${name}`];
85
+ return typeof text2 === "string" && text2.trim() !== "" ? text2.trim() : void 0;
86
+ }
87
+ function element(value) {
88
+ const text2 = textOf(Array.isArray(value) ? value[0] : value)?.trim();
89
+ return text2 === void 0 || text2 === "" ? void 0 : text2;
90
+ }
91
+ function textLines(raw, payloadName) {
92
+ let parsed;
93
+ try {
94
+ parsed = paragraphParser.parse(raw);
95
+ } catch {
96
+ return [];
97
+ }
98
+ const payload = node(node(node(node(parsed)?.Envelope)?.Body)?.[payloadName]);
99
+ const container = payloadName === "QueueAccessRS" ? node(payload?.Paragraph) : payload;
100
+ return asArray(container?.Text).map((line) => typeof line === "string" ? line : textOf(line) ?? "");
101
+ }
102
+ function isEndOfDisplay(text2) {
103
+ return text2?.trim() === END_OF_DISPLAY;
104
+ }
105
+ function lineFields(value) {
106
+ const line = node(value);
107
+ const locator = attribute(line?.UniqueID, "ID");
108
+ if (line === void 0 || locator === void 0) return void 0;
109
+ const source = node(node(line.POS)?.Source);
110
+ const agentSine = attribute(source, "AgentSine");
111
+ const pseudoCityCode = attribute(source, "PseudoCityCode");
112
+ const placedAt = element(line.DateTime);
113
+ const primaryPassenger = element(line.PassengerName);
114
+ const group = element(line.Group);
115
+ return {
116
+ locator,
117
+ ...placedAt === void 0 ? {} : { placedAt },
118
+ ...agentSine === void 0 && pseudoCityCode === void 0 ? {} : {
119
+ placedBy: {
120
+ ...agentSine === void 0 ? {} : { agentSine },
121
+ ...pseudoCityCode === void 0 ? {} : { pseudoCityCode }
122
+ }
123
+ },
124
+ ...primaryPassenger === void 0 ? {} : { primaryPassenger },
125
+ ...group === void 0 ? {} : { group }
126
+ };
127
+ }
28
128
 
29
129
  // src/queue/queue-place.ts
30
130
  var SIGNATURE_LINE = /\s\d{4}\/\d{2}[A-Z]{3}\d{2}\s+([A-Z0-9]{6})\s+H\s*$/;
@@ -45,7 +145,7 @@ var NAVIGATION = { I: "ignore", QR: "remove", QXI: "exit" };
45
145
  function fail(message) {
46
146
  throw new TypeError(`sabre-client/testing: ${message}`);
47
147
  }
48
- var parser = new XMLParser2({
148
+ var parser2 = new XMLParser3({
49
149
  ignoreAttributes: false,
50
150
  attributeNamePrefix: "@",
51
151
  removeNSPrefix: true,
@@ -53,28 +153,44 @@ var parser = new XMLParser2({
53
153
  parseAttributeValue: false,
54
154
  isArray: (name) => name === "QueueIdentifier" || name === "UniqueID" || name === "Selection"
55
155
  });
56
- function node(value) {
57
- if (Array.isArray(value)) return node(value[0]);
156
+ function node2(value) {
157
+ if (Array.isArray(value)) return node2(value[0]);
58
158
  return typeof value === "object" && value !== null ? value : void 0;
59
159
  }
60
160
  function nodes(value) {
61
161
  if (value === void 0) return [];
62
- return (Array.isArray(value) ? value : [value]).filter((item) => node(item) !== void 0);
162
+ return (Array.isArray(value) ? value : [value]).filter((item) => node2(item) !== void 0);
63
163
  }
64
164
  function text(value) {
65
165
  if (typeof value === "string") return value.trim();
66
- const inner = node(value)?.["#text"];
166
+ const inner = node2(value)?.["#text"];
67
167
  return typeof inner === "string" ? inner.trim() : void 0;
68
168
  }
69
169
  function attr(value, name) {
70
- const found = node(value)?.[`@${name}`];
170
+ const found = node2(value)?.[`@${name}`];
71
171
  return typeof found === "string" ? found : void 0;
72
172
  }
73
173
  function escape(value) {
74
174
  return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
75
175
  }
76
176
  function queueKey(queue) {
77
- return typeof queue === "number" ? String(queue) : queue.name;
177
+ if (typeof queue === "number") return String(queue);
178
+ if (typeof queue === "string") return queue;
179
+ return `${NAME_PREFIX}${queue.name}`;
180
+ }
181
+ var NAME_PREFIX = "name:";
182
+ var ALPHA_KEY = /^[A-Z]{1,2}$/;
183
+ function optionKey(key) {
184
+ if (key.startsWith(NAME_PREFIX) || /^\d+$/.test(key) || ALPHA_KEY.test(key)) return key;
185
+ return `${NAME_PREFIX}${key}`;
186
+ }
187
+ function refOfKey(key) {
188
+ if (key.startsWith(NAME_PREFIX)) return { name: key.slice(NAME_PREFIX.length) };
189
+ return /^\d+$/.test(key) ? Number(key) : key;
190
+ }
191
+ function keyAttribute(key, pad = false) {
192
+ if (key.startsWith(NAME_PREFIX)) return `Name="${escape(key.slice(NAME_PREFIX.length))}"`;
193
+ return `Number="${escape(pad && /^\d+$/.test(key) ? key.padStart(4, "0") : key)}"`;
78
194
  }
79
195
  function validateKey(key) {
80
196
  if (/^\d+$/.test(key)) {
@@ -82,7 +198,9 @@ function validateKey(key) {
82
198
  if (number < MIN_QUEUE_NUMBER || number > MAX_QUEUE_NUMBER) fail(`la cola ${key} est\xE1 fuera de 0\u2013511`);
83
199
  return;
84
200
  }
85
- if (key.trim() === "") fail("el nombre de una cola no puede estar vac\xEDo");
201
+ if (key.startsWith(NAME_PREFIX) ? key.slice(NAME_PREFIX.length).trim() === "" : key.trim() === "") {
202
+ fail("el nombre de una cola no puede estar vac\xEDo");
203
+ }
86
204
  }
87
205
  function shortDate(date) {
88
206
  return date.toISOString().slice(5, 16);
@@ -90,6 +208,15 @@ function shortDate(date) {
90
208
  function longDate(date) {
91
209
  return date.toISOString().slice(0, 16);
92
210
  }
211
+ function toMessage(item, index) {
212
+ const label = `queues['${MESSAGE_QUEUE}'][${index}]`;
213
+ if (!Array.isArray(item) || item.some((line) => typeof line !== "string")) {
214
+ fail(`${label}: la S es la cola de mensajes; cada elemento es el texto de un mensaje (string[])`);
215
+ }
216
+ const lines = item;
217
+ if (!lines.some((line) => line.trim() !== "")) fail(`${label}: el mensaje no puede estar vac\xEDo`);
218
+ return [...lines];
219
+ }
93
220
  function toPnr(item, label) {
94
221
  if (Array.isArray(item)) {
95
222
  const lines2 = item;
@@ -132,15 +259,100 @@ var success = "<stl:Success/>";
132
259
  function hostResult(kind, message) {
133
260
  return `<stl:${kind} type="BusinessLogic"><stl:SystemSpecificResults><stl:Message>${escape(message)}</stl:Message><stl:ShortText>ERR.SWS.HOST.ERROR_IN_RESPONSE</stl:ShortText></stl:SystemSpecificResults></stl:${kind}>`;
134
261
  }
135
- function textLines(lines) {
262
+ function textLines2(lines) {
136
263
  return lines.map((line) => `<Text>${escape(line)}</Text>`).join("");
137
264
  }
138
- function queueIdentifier(queue) {
139
- return toQueueRef(queue) ?? { name: queue };
140
- }
141
265
  function requestedKey(identifier) {
142
- return attr(identifier, "Number") ?? attr(identifier, "Name");
266
+ const number = attr(identifier, "Number");
267
+ if (number !== void 0) {
268
+ const ref = toQueueRef(number);
269
+ return ref === void 0 ? void 0 : queueKey(ref);
270
+ }
271
+ const name = attr(identifier, "Name");
272
+ return name === void 0 ? void 0 : `${NAME_PREFIX}${name}`;
273
+ }
274
+ var ACTIVITY_COUNTERS = [
275
+ ["ended", "Ended"],
276
+ ["ignored", "Ignored"],
277
+ ["moved", "Moved"],
278
+ ["removed", "Removed"],
279
+ ["transferred", "Transferred"],
280
+ ["leftMessageToContact", "LeftMessageToContact"],
281
+ ["unableToReach", "UnableToReach"]
282
+ ];
283
+ function toActivity(value, label) {
284
+ if (typeof value !== "object" || value === null || Array.isArray(value)) fail(`${label} debe ser un objeto de contadores`);
285
+ const known = new Set(ACTIVITY_COUNTERS.map(([key]) => key));
286
+ const result = {};
287
+ for (const [key, count] of Object.entries(value)) {
288
+ if (key === "numMessages") fail(`${label}.numMessages sale de la cola del fake: no se siembra`);
289
+ if (!known.has(key)) fail(`${label}.${key} no es un contador de queue.activity`);
290
+ if (!Number.isInteger(count) || count < 0) fail(`${label}.${key} debe ser un entero de 0 en adelante`);
291
+ result[key] = count;
292
+ }
293
+ return result;
294
+ }
295
+ function toHistory(value, label) {
296
+ if (!Array.isArray(value)) fail(`${label} debe ser una lista de transacciones`);
297
+ return value.map((transaction, index) => {
298
+ const at = `${label}[${index}]`;
299
+ if (typeof transaction !== "object" || transaction === null) fail(`${at} debe ser un objeto`);
300
+ const t = transaction;
301
+ for (const [list, name] of [
302
+ [t.flightSegments, "flightSegments"],
303
+ [t.generalInfo, "generalInfo"],
304
+ [t.remarks, "remarks"]
305
+ ]) {
306
+ if (list === void 0) continue;
307
+ if (!Array.isArray(list)) fail(`${at}.${name} debe ser una lista`);
308
+ list.forEach((entry, position) => {
309
+ if (typeof entry?.action !== "string" || entry.action.trim() === "") fail(`${at}.${name}[${position}].action debe ser un string no vac\xEDo`);
310
+ });
311
+ }
312
+ if (t.accounting !== void 0 && !Array.isArray(t.accounting)) fail(`${at}.accounting debe ser una lista`);
313
+ return t;
314
+ });
143
315
  }
316
+ var attrs = (pairs) => pairs.map(([name, value]) => value === void 0 ? "" : ` ${name}="${escape(String(value))}"`).join("");
317
+ var historyText = (text2) => text2.split("\n").map((line) => `<Text>${escape(line)}</Text>`).join("");
318
+ function historicalInfo(t) {
319
+ const segments = (t.flightSegments ?? []).map(
320
+ (segment) => [
321
+ `<Item><FlightSegment${attrs([
322
+ ["Action", segment.action],
323
+ ["ArrivalDateTime", segment.arrivalDateTime],
324
+ ["DepartureDateTime", segment.departureDateTime],
325
+ ["FlightNumber", segment.flightNumber],
326
+ ["NumberInParty", segment.numberInParty],
327
+ ["ResBookDesigCode", segment.bookingClass],
328
+ ["Status", segment.status]
329
+ ])}>`,
330
+ segment.destination === void 0 ? "" : `<DestinationLocation${attrs([["LocationCode", segment.destination]])}/>`,
331
+ segment.marketingAirline === void 0 ? "" : `<MarketingAirline${attrs([["Code", segment.marketingAirline]])}/>`,
332
+ segment.origin === void 0 ? "" : `<OriginLocation${attrs([["LocationCode", segment.origin]])}/>`,
333
+ segment.supplierRef === void 0 ? "" : `<SupplierRef${attrs([["ID", segment.supplierRef]])}/>`,
334
+ "</FlightSegment></Item>"
335
+ ].join("")
336
+ );
337
+ return [
338
+ `<HistoricalInfo${attrs([["RPH", t.rph]])}>`,
339
+ ...(t.generalInfo ?? []).map((entry) => `<GeneralInfo${attrs([["Action", entry.action]])}>${historyText(entry.text)}</GeneralInfo>`),
340
+ segments.length === 0 ? "" : `<ItineraryInfo><ReservationItems>${segments.join("")}</ReservationItems></ItineraryInfo>`,
341
+ (t.remarks ?? []).length === 0 ? "" : `<RemarkInfo>${(t.remarks ?? []).map((entry) => `<Remark${attrs([["Action", entry.action]])}>${historyText(entry.text)}</Remark>`).join("")}</RemarkInfo>`,
342
+ ...(t.accounting ?? []).map((entry) => `<AccountingInfo${attrs([["Action", entry.action], ["Type", entry.type], ["LinkCode", entry.linkCode]])}/>`),
343
+ `<ItineraryRef><Source${attrs([
344
+ ["AAA_PseudoCityCode", t.aaaPcc],
345
+ ["CreateDateTime", t.createdAt],
346
+ ["CreationAgent", t.agent],
347
+ ["CreationAgentDutyCode", t.agentDutyCode],
348
+ ["CreationAgentFunctionCode", t.agentFunctionCode],
349
+ ["PseudoCityCode", t.pcc],
350
+ ["ReceivedFrom", t.receivedFrom]
351
+ ])}/></ItineraryRef>`,
352
+ "</HistoricalInfo>"
353
+ ].join("");
354
+ }
355
+ var NOT_ALLOWED_INSIDE_QUEUE = "NAK6 -NOT ALLOWED- FINISH OR IGNORE OTHER ACTIVITY";
144
356
  function createQueueFake(options = {}) {
145
357
  if (typeof options !== "object" || options === null) fail("options debe ser un objeto");
146
358
  const now = options.now ?? (() => /* @__PURE__ */ new Date());
@@ -161,9 +373,14 @@ function createQueueFake(options = {}) {
161
373
  }
162
374
  return pnr;
163
375
  };
164
- for (const [key, items] of Object.entries(options.queues ?? {})) {
376
+ for (const [optionName, items] of Object.entries(options.queues ?? {})) {
377
+ const key = optionKey(optionName);
165
378
  validateKey(key);
166
379
  if (!Array.isArray(items)) fail(`queues['${key}'] debe ser una lista`);
380
+ if (key === MESSAGE_QUEUE) {
381
+ queues.set(key, items.map((item, index) => ({ locator: "", placedAt: void 0, placedBy: void 0, message: toMessage(item, index) })));
382
+ continue;
383
+ }
167
384
  queues.set(
168
385
  key,
169
386
  items.map((item, index) => {
@@ -173,6 +390,17 @@ function createQueueFake(options = {}) {
173
390
  );
174
391
  }
175
392
  for (const [index, item] of (options.pnrs ?? []).entries()) register(item, `pnrs[${index}]`);
393
+ const activity = /* @__PURE__ */ new Map();
394
+ for (const [optionName, counters] of Object.entries(options.activity ?? {})) {
395
+ const key = optionKey(optionName);
396
+ validateKey(key);
397
+ activity.set(key, toActivity(counters, `activity['${key}']`));
398
+ }
399
+ const histories = /* @__PURE__ */ new Map();
400
+ for (const [locator, transactions] of Object.entries(options.histories ?? {})) {
401
+ if (!LOCATOR.test(locator)) fail(`histories['${locator}']: la clave debe ser un localizador de 6 caracteres alfanum\xE9ricos en may\xFAscula`);
402
+ histories.set(locator, toHistory(transactions, `histories['${locator}']`));
403
+ }
176
404
  const queue = (key) => {
177
405
  let entries = queues.get(key);
178
406
  if (entries === void 0) {
@@ -215,34 +443,37 @@ function createQueueFake(options = {}) {
215
443
  const entry = inside === void 0 ? void 0 : queue(inside.key)[inside.index];
216
444
  if (entry === void 0) {
217
445
  session.inside = void 0;
218
- return accessRS(`${results("Complete", success)}<Paragraph>${textLines([END_OF_DISPLAY])}</Paragraph>`);
446
+ return accessRS(`${results("Complete", success)}<Paragraph>${textLines2([END_OF_DISPLAY])}</Paragraph>`);
447
+ }
448
+ if (entry.message !== void 0) {
449
+ return accessRS(`${results("Complete", success)}<Paragraph>${textLines2(entry.message)}</Paragraph>`);
219
450
  }
220
451
  const pnr = pnrs.get(entry.locator);
221
- return accessRS(`${results("Complete", success)}${lineXml(entry)}<Paragraph>${textLines(pnr.paragraph)}</Paragraph>`);
452
+ return accessRS(`${results("Complete", success)}${lineXml(entry)}<Paragraph>${textLines2(pnr.paragraph)}</Paragraph>`);
222
453
  };
454
+ const waiting = (session, key, entries) => entries.length - (session.inside?.key === key && entries[session.inside.index] !== void 0 ? 1 : 0);
223
455
  const count = (session, rq) => {
224
- const pcc = attr(node(node(rq.QueueInfo)?.QueueIdentifier), "PseudoCityCode") ?? "";
456
+ const pcc = attr(node2(node2(rq.QueueInfo)?.QueueIdentifier), "PseudoCityCode") ?? "";
225
457
  let pnrsTotal = 0;
226
458
  let messages = 0;
227
459
  const identifiers = [];
228
460
  for (const [key, entries] of queues) {
229
- const open = session.inside?.key === key && entries[session.inside.index] !== void 0 ? 1 : 0;
230
- const total = entries.length - open;
461
+ const total = waiting(session, key, entries);
231
462
  if (total <= 0) continue;
232
- identifiers.push(`<QueueIdentifier Count="${total}" Number="${escape(key)}"/>`);
233
- if (/^\d+$/.test(key)) pnrsTotal += total;
234
- else messages += total;
463
+ identifiers.push(`<QueueIdentifier Count="${total}" ${keyAttribute(key)}/>`);
464
+ if (ALPHA_KEY.test(key)) messages += total;
465
+ else pnrsTotal += total;
235
466
  }
236
467
  return `<QueueCountRS xmlns="${SWS_NAMESPACE}" xmlns:stl="${STL_NAMESPACE}" Version="2.2.1">${results("Complete", success)}<QueueInfo DateTime="${shortDate(now())}" PseudoCityCode="${escape(pcc)}">${identifiers.join("")}</QueueInfo><Totals Count="${messages}" Type="MESSAGES"/><Totals Count="0" Type="SPECIALS"/><Totals Count="${pnrsTotal}" Type="PNRS"/></QueueCountRS>`;
237
468
  };
238
469
  const access = (session, rq) => {
239
470
  const navigation = attr(rq.Navigation, "Action");
240
471
  if (navigation !== void 0) return navigate(session, rq, navigation);
241
- const identifier = node(rq.QueueIdentifier);
472
+ const identifier = node2(rq.QueueIdentifier);
242
473
  const key = requestedKey(identifier);
243
474
  if (key === void 0) return accessError("sabre-client/testing: QueueIdentifier sin Number ni Name");
244
- const isList = node(identifier?.List) !== void 0;
245
- calls.push({ command: isList ? "list" : "access", queue: queueIdentifier(key) });
475
+ const isList = node2(identifier?.List) !== void 0;
476
+ calls.push({ command: isList ? "list" : "access", queue: refOfKey(key) });
246
477
  if (nodes(rq.Selection).length > 0) return accessError("sabre-client/testing: selection no est\xE1 simulado");
247
478
  const entries = queue(key);
248
479
  if (entries.length === 0) return accessError(QUEUE_EMPTY);
@@ -283,7 +514,7 @@ function createQueueFake(options = {}) {
283
514
  };
284
515
  const place = (session, rq) => {
285
516
  calls.push({ command: "place" });
286
- const info = node(rq.QueueInfo);
517
+ const info = node2(rq.QueueInfo);
287
518
  const targets = nodes(info?.QueueIdentifier).map((identifier) => ({
288
519
  key: requestedKey(identifier) ?? "",
289
520
  pcc: attr(identifier, "PseudoCityCode"),
@@ -296,6 +527,7 @@ function createQueueFake(options = {}) {
296
527
  return placeError(moving ? "NEED INSTRUCTION NUMBER" : "INSTRUCTION NUMBER NOT IN RANGE");
297
528
  }
298
529
  for (const target of targets) validateKey(target.key);
530
+ if (targets.some((target) => target.key === MESSAGE_QUEUE)) return placeError("sabre-client/testing: place a la cola S no est\xE1 simulado");
299
531
  const at = now();
300
532
  const add = (locator, target) => {
301
533
  const entries = queue(target.key);
@@ -316,7 +548,7 @@ function createQueueFake(options = {}) {
316
548
  session.inside = void 0;
317
549
  return placeRS(results("Complete", `${success}${hostResult("Warning", END_OF_DISPLAY)}`));
318
550
  }
319
- return placeRS(`${results("Complete", success)}${textLines(pnrs.get(next.locator).paragraph)}`);
551
+ return placeRS(`${results("Complete", success)}${textLines2(pnrs.get(next.locator).paragraph)}`);
320
552
  }
321
553
  if (locators.length === 0) return placeError("sabre-client/testing: place fuera de una cola necesita locators");
322
554
  if (locators.some((locator) => !pnrs.has(locator))) return placeError("BAD PNR LOCATOR");
@@ -324,28 +556,61 @@ function createQueueFake(options = {}) {
324
556
  for (const locator of locators) {
325
557
  for (const target of targets) {
326
558
  add(locator, target);
327
- const identifier = /^\d+$/.test(target.key) ? `Number="${target.key.padStart(4, "0")}"` : `Name="${escape(target.key)}"`;
559
+ const identifier = keyAttribute(target.key, true);
328
560
  const pcc = target.pcc === void 0 ? "" : ` PseudoCityCode="${escape(target.pcc)}"`;
329
561
  placements.push(`<QueueInfo DateTime="${shortDate(at)}"><QueueIdentifier ${identifier}${pcc}/><UniqueID ID="${escape(locator)}"/></QueueInfo>`);
330
562
  }
331
563
  }
332
564
  return placeRS(`${results("Complete", success)}${placements.join("")}`);
333
565
  };
566
+ const analyze = (session, rq) => {
567
+ calls.push({ command: "activity" });
568
+ const pcc = attr(node2(node2(rq.QueueInfo)?.QueueIdentifier), "PseudoCityCode") ?? "";
569
+ const totals = { NumMessages: 0 };
570
+ for (const [, element2] of ACTIVITY_COUNTERS) totals[element2] = 0;
571
+ const identifiers = [];
572
+ for (const key of /* @__PURE__ */ new Set([...queues.keys(), ...activity.keys()])) {
573
+ const seeded = activity.get(key) ?? {};
574
+ const counters = { NumMessages: waiting(session, key, queues.get(key) ?? []) };
575
+ for (const [name, element2] of ACTIVITY_COUNTERS) counters[element2] = seeded[name] ?? 0;
576
+ if (Object.values(counters).every((value) => value === 0)) continue;
577
+ for (const [element2, value] of Object.entries(counters)) totals[element2] = (totals[element2] ?? 0) + value;
578
+ identifiers.push(
579
+ `<QueueIdentifier ${keyAttribute(key)}>${Object.entries(counters).map(([element2, value]) => `<${element2} Count="${value}"/>`).join("")}</QueueIdentifier>`
580
+ );
581
+ }
582
+ const totalsXml = Object.entries(totals).map(([element2, value]) => `<${element2} Count="${value}"/>`).join("");
583
+ return `<QueueAnalysisRS xmlns="${SWS_NAMESPACE}" xmlns:stl="${STL_NAMESPACE}" Version="2.0.0">${results("Complete", success)}<QueueInfo DateTime="${shortDate(now())}" PseudoCityCode="${escape(pcc)}">${identifiers.join("")}</QueueInfo><Totals>${totalsXml}</Totals></QueueAnalysisRS>`;
584
+ };
585
+ const history = (session, rq) => {
586
+ const locator = attr(rq.UniqueID, "ID") ?? "";
587
+ calls.push({ command: "history", locator });
588
+ const historyRS = (inner) => `<TravelItineraryHistoryRS xmlns="${SWS_NAMESPACE}" xmlns:stl="${STL_NAMESPACE}" Version="2.4.0">${inner}</TravelItineraryHistoryRS>`;
589
+ const historyError = (message) => historyRS(results("NotProcessed", hostResult("Error", message)));
590
+ const inside = session.inside;
591
+ const current = inside === void 0 ? void 0 : queue(inside.key)[inside.index];
592
+ if (current !== void 0 && current.locator !== locator) return historyError(NOT_ALLOWED_INSIDE_QUEUE);
593
+ const seeded = histories.get(locator);
594
+ if (seeded !== void 0) return historyRS(`${results("Complete", success)}${seeded.map(historicalInfo).join("")}`);
595
+ if (!pnrs.has(locator)) return historyError(`sabre-client/testing: el PNR ${locator} no est\xE1 en el fake (qu\xE9 responde Sabre no est\xE1 simulado)`);
596
+ const created = { rph: 1, createdAt: longDate(now()), agent: "AAA", pcc: "XXXX", receivedFrom: "SABRE-CLIENT/TESTING" };
597
+ return historyRS(`${results("Complete", success)}${historicalInfo(created)}`);
598
+ };
334
599
  const handle = (raw) => {
335
600
  let document;
336
601
  try {
337
- document = node(node(parser.parse(raw))?.Envelope);
602
+ document = node2(node2(parser2.parse(raw))?.Envelope);
338
603
  } catch {
339
604
  document = void 0;
340
605
  }
341
- const header = node(document?.Header);
342
- const messageHeader = node(header?.MessageHeader);
606
+ const header = node2(document?.Header);
607
+ const messageHeader = node2(header?.MessageHeader);
343
608
  const action = text(messageHeader?.Action) ?? "";
344
609
  const conversationId = text(messageHeader?.ConversationId) ?? "";
345
- const token = text(node(header?.Security)?.BinarySecurityToken);
346
- const body = node(document?.Body);
610
+ const token = text(node2(header?.Security)?.BinarySecurityToken);
611
+ const body = node2(document?.Body);
347
612
  const [, payload] = Object.entries(body ?? {}).find(([name]) => !name.startsWith("@")) ?? [];
348
- const rq = node(payload) ?? {};
613
+ const rq = node2(payload) ?? {};
349
614
  if (action === "SessionCreateRQ") {
350
615
  calls.push({ command: "open" });
351
616
  tokens += 1;
@@ -386,6 +651,10 @@ function createQueueFake(options = {}) {
386
651
  return reply("QueueAccessLLSRS", session, token, access(session, rq));
387
652
  case "QueuePlaceLLSRQ":
388
653
  return reply("QueuePlaceLLSRS", session, token, place(session, rq));
654
+ case "QueueAnalysisLLSRQ":
655
+ return reply("QueueAnalysisLLSRS", session, token, analyze(session, rq));
656
+ case "TravelItineraryHistoryLLSRQ":
657
+ return reply("TravelItineraryHistoryLLSRS", session, token, history(session, rq));
389
658
  default:
390
659
  return {
391
660
  status: 500,
@@ -407,7 +676,8 @@ function createQueueFake(options = {}) {
407
676
  };
408
677
  return {
409
678
  fetch: fakeFetch,
410
- locators: (ref) => (queues.get(queueKey(ref)) ?? []).map((entry) => entry.locator),
679
+ locators: (ref) => (queues.get(queueKey(ref)) ?? []).filter((entry) => entry.message === void 0).map((entry) => entry.locator),
680
+ messages: () => (queues.get(MESSAGE_QUEUE) ?? []).map((entry) => [...entry.message ?? []]),
411
681
  get calls() {
412
682
  return [...calls];
413
683
  },
@@ -420,6 +690,149 @@ function createQueueFake(options = {}) {
420
690
  };
421
691
  }
422
692
 
693
+ // src/testing/anonymize.ts
694
+ var NAMES = ["UNO", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ"];
695
+ var SAFE_LINES = [
696
+ /^\s*$/,
697
+ // Aviso PIC: 011 SEE REMARKS. Sin dígitos después del número: una línea de `list`
698
+ // (`100 ABC123 PLT MAM 01JUN26 1948`) también empieza con 3 dígitos y trae el sine.
699
+ /^\s*\d{3}\s{2,}[A-Z][A-Z ,./-]*$/,
700
+ /^\s*END OF DISPLAY FOR REQUESTED DATA\s*$/,
701
+ /^\s*(TKT\/TIME LIMIT|PHONES|REMARKS|ADDRESS|INVOICED|GENERAL FACTS|[A-Z0-9]{2} FACTS|NO ITIN)\s*$/,
702
+ /^\s*PASSENGER EMAIL DATA EXISTS\s+\*PE TO DISPLAY ALL\s*$/
703
+ ];
704
+ function isSafeHostLine(line) {
705
+ return SAFE_LINES.some((pattern) => pattern.test(line));
706
+ }
707
+ var ENTITIES = { amp: "&", lt: "<", gt: ">", quot: '"', apos: "'" };
708
+ var decode = (text2) => text2.replace(/&(amp|lt|gt|quot|apos);/g, (_, entity) => ENTITIES[entity] ?? "");
709
+ var encode = (text2) => text2.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
710
+ var masked = (text2) => text2.replace(/\p{L}/gu, "X").replace(/\p{N}/gu, "9");
711
+ function createAnonymizer(options = {}) {
712
+ const secrets = (options.secrets ?? []).filter((value) => typeof value === "string" && value.length >= 3).sort((a, b) => b.length - a.length);
713
+ const redactSecrets = (text2) => secrets.reduce((value, secret) => value.split(secret).join("XXXX"), text2);
714
+ const locatorAliases = /* @__PURE__ */ new Map();
715
+ const realNames = /* @__PURE__ */ new Map();
716
+ const maskedLines = /* @__PURE__ */ new Set();
717
+ const aliasOf = (locator) => {
718
+ let alias = locatorAliases.get(locator);
719
+ if (alias === void 0) {
720
+ const n = locatorAliases.size;
721
+ const letters = [17576, 676, 26, 1].map((size) => String.fromCharCode(65 + Math.floor(n / size) % 26)).join("");
722
+ alias = `AA${letters}`;
723
+ locatorAliases.set(locator, alias);
724
+ }
725
+ return alias;
726
+ };
727
+ const fakeName = (name) => {
728
+ let fake = realNames.get(name);
729
+ if (fake === void 0) {
730
+ fake = `PASAJERO/${NAMES[realNames.size] ?? realNames.size + 1}`;
731
+ realNames.set(name, fake);
732
+ }
733
+ return fake;
734
+ };
735
+ function anonymizeLine(line) {
736
+ if (isSafeHostLine(line)) return line;
737
+ const header = /^(\s*QUEUE LIST FOR )\S+(\s+QUEUE )(\S+)\s*$/.exec(line);
738
+ if (header !== null) return `${header[1]}XXXX${header[2]}${header[3]}`;
739
+ const received = /^(\s*RECEIVED FROM - )(.*)$/.exec(line);
740
+ const signature = /^(.*\s)(\d{4}\/\d{2}[A-Z]{3}\d{2})(\s+)([A-Z0-9]{6})(\s+H\s*)$/.exec(line);
741
+ const aliases = new Set(locatorAliases.values());
742
+ let result;
743
+ if (received !== null) {
744
+ result = `${received[1]}${masked(received[2] ?? "")}`;
745
+ } else if (signature !== null) {
746
+ const [, before = "", stamp = "", gap = "", locator = "", end = ""] = signature;
747
+ result = `${masked(before)}${masked(stamp)}${gap}${aliases.has(locator) ? locator : masked(locator)}${end}`;
748
+ } else {
749
+ result = masked(line);
750
+ }
751
+ if (line.trim().length >= 4 && result.trim() !== line.trim()) maskedLines.add(line.trim());
752
+ return result;
753
+ }
754
+ function anonymize(body) {
755
+ let text2 = String(body).replace(
756
+ /(<(?:\w+:)?UniqueID\b[^>]*\bID=")([^"]+)(")/g,
757
+ (_, a, locator, b) => `${a}${aliasOf(locator)}${b}`
758
+ );
759
+ for (const [locator, alias] of locatorAliases) text2 = text2.split(locator).join(alias);
760
+ text2 = text2.replace(
761
+ /(<(?:\w+:)?PassengerName>)([^<]*)(<\/)/g,
762
+ (_, a, name, b) => `${a}${fakeName(decode(name))}${b}`
763
+ );
764
+ text2 = text2.replace(
765
+ /(<(?:\w+:)?Group>)([^<]*)(<\/)/g,
766
+ (_, a, value, b) => value === "" ? `${a}${b}` : `${a}GRUPO${b}`
767
+ );
768
+ text2 = text2.replace(
769
+ /(\bAgentSine=")([^"]*)(")/g,
770
+ (_, a, sine, b) => `${a}${sine === "SABRE" ? sine : "AAA"}${b}`
771
+ );
772
+ text2 = text2.replace(/(\bPseudoCityCode=")([^"]*)(")/g, "$1XXXX$3");
773
+ text2 = text2.replace(/(\bLNIATA=")([^"]*)(")/g, "$1XXXXXX$3");
774
+ text2 = text2.replace(
775
+ /(<(?:\w+:)?Text\b[^>/]*>)([\s\S]*?)(<\/(?:\w+:)?Text>)/g,
776
+ (_, a, line, b) => `${a}${encode(anonymizeLine(decode(line)))}${b}`
777
+ );
778
+ return redactSecrets(text2);
779
+ }
780
+ const maskLine = (line) => redactSecrets(anonymizeLine(line));
781
+ function leaks(text2) {
782
+ const found = [
783
+ ...secrets.filter((secret) => text2.includes(secret)).map(() => "secreto"),
784
+ ...[...locatorAliases.keys()].filter((locator) => text2.includes(locator)).map(() => "localizador"),
785
+ ...[...realNames.keys()].filter((realName) => realName.length >= 3 && text2.includes(realName)).map(() => "nombre"),
786
+ ...[...maskedLines].filter((line) => text2.includes(line)).map(() => "l\xEDnea del PNR"),
787
+ .../IceSess|Shared\/IDL/.test(text2) ? ["token"] : []
788
+ ];
789
+ return [...new Set(found)];
790
+ }
791
+ return {
792
+ anonymize,
793
+ maskLine,
794
+ maskParagraph: (lines) => lines.map(maskLine),
795
+ aliasOf,
796
+ leaks
797
+ };
798
+ }
799
+
800
+ // src/testing/fixture-pnrs.ts
801
+ var QUEUE_OPERATION = /^queue\.(list|access|ignore|remove|place)$/;
802
+ function queueFakePnrs(fixture2) {
803
+ const pnrs = /* @__PURE__ */ new Map();
804
+ const add = (locator, fields) => {
805
+ const current = pnrs.get(locator) ?? { locator };
806
+ pnrs.set(locator, { ...fields, ...current });
807
+ };
808
+ const responses = fixture2.responses.filter((response) => QUEUE_OPERATION.test(response.operation));
809
+ const ordered = [
810
+ ...responses.filter((response) => response.operation === "queue.list"),
811
+ ...responses.filter((response) => response.operation !== "queue.list")
812
+ ];
813
+ for (const response of ordered) {
814
+ const payload = untrimmedPayload(response.body);
815
+ const lines = asArray(payload?.Line).map(lineFields).filter((fields) => fields !== void 0);
816
+ for (const { locator: locator2, placedAt, placedBy, primaryPassenger } of lines) {
817
+ add(locator2, {
818
+ ...placedAt === void 0 ? {} : { placedAt },
819
+ ...placedBy === void 0 ? {} : { placedBy },
820
+ ...primaryPassenger === void 0 ? {} : { primaryPassenger }
821
+ });
822
+ }
823
+ if (response.operation === "queue.list") continue;
824
+ for (const info of asArray(payload?.QueueInfo)) {
825
+ const locator2 = attribute(info.UniqueID, "ID");
826
+ if (locator2 !== void 0) add(locator2, {});
827
+ }
828
+ const paragraph = textLines(response.body, /<(?:\w+:)?QueuePlaceRS\b/.test(response.body) ? "QueuePlaceRS" : "QueueAccessRS");
829
+ if (paragraph.length === 0 || isEndOfDisplay(paragraph.find((line) => line.trim() !== ""))) continue;
830
+ const locator = lines.length === 1 ? lines[0].locator : signatureLocator(paragraph);
831
+ if (locator !== void 0) add(locator, { paragraph });
832
+ }
833
+ return [...pnrs.values()];
834
+ }
835
+
423
836
  // test/fixtures/queue.production-place.json
424
837
  var queue_production_place_default = {
425
838
  recordedAt: "2026-11-02",
@@ -449,14 +862,14 @@ var queue_production_place_default = {
449
862
  step: "access 51",
450
863
  ok: true,
451
864
  done: false,
452
- locator: "AAAAAA",
865
+ locator: "AAAAAE",
453
866
  warnings: 0
454
867
  },
455
868
  {
456
869
  step: "place dentro de la cola a 52",
457
870
  ok: true,
458
871
  done: false,
459
- locator: "AAAAAB",
872
+ locator: "AAAAAF",
460
873
  warnings: 0
461
874
  },
462
875
  {
@@ -485,7 +898,7 @@ var queue_production_place_default = {
485
898
  step: "limpieza: access 52",
486
899
  ok: true,
487
900
  done: false,
488
- locator: "AAAAAA",
901
+ locator: "AAAAAE",
489
902
  warnings: 0
490
903
  },
491
904
  {
@@ -877,7 +1290,7 @@ var queue_production_place_default = {
877
1290
  operation: "queue.place",
878
1291
  status: 200,
879
1292
  attempts: 1,
880
- body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>ed11808f-94f9-42ce-ac49-402112b56868</eb:ConversationId><eb:Service>QueuePlaceLLSRQ</eb:Service><eb:Action>QueuePlaceLLSRS</eb:Action><eb:MessageData><eb:MessageId>1507184129117060520</eb:MessageId><eb:Timestamp>2026-11-02T03:35:12</eb:Timestamp><eb:RefToMessageId>mid:771bfafc-ba56-4f31-8861-c4f3e7e5d645</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueuePlaceRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.0.4">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:35:12Z"/>\n </stl:ApplicationResults>\n <QueueInfo DateTime="11-01T21:35">\n <QueueIdentifier Number="0051" PseudoCityCode="XXXX"/>\n <UniqueID ID="AAAAAA"/>\n </QueueInfo>\n <QueueInfo DateTime="11-01T21:35">\n <QueueIdentifier Number="0051" PseudoCityCode="XXXX"/>\n <UniqueID ID="AAAAAB"/>\n </QueueInfo>\n <Text>XXXXX XXXXXXXXX XXXXXXXXX</Text>\n</QueuePlaceRS></soap-env:Body></soap-env:Envelope>'
1293
+ body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>ed11808f-94f9-42ce-ac49-402112b56868</eb:ConversationId><eb:Service>QueuePlaceLLSRQ</eb:Service><eb:Action>QueuePlaceLLSRS</eb:Action><eb:MessageData><eb:MessageId>1507184129117060520</eb:MessageId><eb:Timestamp>2026-11-02T03:35:12</eb:Timestamp><eb:RefToMessageId>mid:771bfafc-ba56-4f31-8861-c4f3e7e5d645</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueuePlaceRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.0.4">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:35:12Z"/>\n </stl:ApplicationResults>\n <QueueInfo DateTime="11-01T21:35">\n <QueueIdentifier Number="0051" PseudoCityCode="XXXX"/>\n <UniqueID ID="AAAAAE"/>\n </QueueInfo>\n <QueueInfo DateTime="11-01T21:35">\n <QueueIdentifier Number="0051" PseudoCityCode="XXXX"/>\n <UniqueID ID="AAAAAF"/>\n </QueueInfo>\n <Text>XXXXX XXXXXXXXX XXXXXXXXX</Text>\n</QueuePlaceRS></soap-env:Body></soap-env:Envelope>'
881
1294
  },
882
1295
  {
883
1296
  operation: "queue.count",
@@ -889,13 +1302,13 @@ var queue_production_place_default = {
889
1302
  operation: "queue.access",
890
1303
  status: 200,
891
1304
  attempts: 1,
892
- body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>ed11808f-94f9-42ce-ac49-402112b56868</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1507398129130331410</eb:MessageId><eb:Timestamp>2026-11-02T03:35:13</eb:Timestamp><eb:RefToMessageId>mid:810a3899-608b-4bd1-a26f-ce426439654f</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:35:13Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-01-26T10:32</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAA"/>\n </Line>\n <Paragraph>\n <Text>011 SEE REMARKS</Text>\n <Text>9.9XXXXXX XXXXXXXXX/XXXXXX XXXXX XX</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>XXXXXXXX XX XXXXXXXXXXX XXX XXXXXXXXXX XXXXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX 999999999999-X</Text>\n <Text>XXXXXXXXX XXXXXX *XX XX XXXXXXX</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX 999</Text>\n <Text>XXXXXXX XXXX</Text>\n <Text>XXXXXX</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXX/XXXXXXXX XXXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 99X X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 9X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXX99XXX9XXX X</Text>\n <Text>XXXXXXXX XXX</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 999X</Text>\n <Text>REMARKS</Text>\n <Text>9..XX-XXX</Text>\n <Text>9..XXXXX-X99</Text>\n <Text>9..XXXXXXXXX-999</Text>\n <Text>9..XX99-XXXXXX XXXXXXXXXX X XX XXXXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXX XXXX/XXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXXXX XXXXXXX</Text>\n <Text>9.XXXXX/</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X-XXXX/9999999999999/9XXX*XXX/9XXX*XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X999/X99</Text>\n <Text>99/XXX/XX 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 9/X999/X9/XXX/XXX</Text>\n <Text>X9999999999999999 9.9XXXXXX XXXXXXXXX X/9/X/X-9999999999</Text>\n <Text>999/9999</Text>\n <Text>9. XX\x879999999999/ 9/ 999/ 9/X999/X9/XXX/</Text>\n <Text>XXXX9999999999999999 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX XX/</Text>\n <Text>9/X/XXX</Text>\n <Text>RECEIVED FROM - XX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 AAAAAA H</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
1305
+ body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>ed11808f-94f9-42ce-ac49-402112b56868</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1507398129130331410</eb:MessageId><eb:Timestamp>2026-11-02T03:35:13</eb:Timestamp><eb:RefToMessageId>mid:810a3899-608b-4bd1-a26f-ce426439654f</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:35:13Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-01-26T10:32</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAE"/>\n </Line>\n <Paragraph>\n <Text>011 SEE REMARKS</Text>\n <Text>9.9XXXXXX XXXXXXXXX/XXXXXX XXXXX XX</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>XXXXXXXX XX XXXXXXXXXXX XXX XXXXXXXXXX XXXXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX 999999999999-X</Text>\n <Text>XXXXXXXXX XXXXXX *XX XX XXXXXXX</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX 999</Text>\n <Text>XXXXXXX XXXX</Text>\n <Text>XXXXXX</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXX/XXXXXXXX XXXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 99X X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 9X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXX99XXX9XXX X</Text>\n <Text>XXXXXXXX XXX</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 999X</Text>\n <Text>REMARKS</Text>\n <Text>9..XX-XXX</Text>\n <Text>9..XXXXX-X99</Text>\n <Text>9..XXXXXXXXX-999</Text>\n <Text>9..XX99-XXXXXX XXXXXXXXXX X XX XXXXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXX XXXX/XXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXXXX XXXXXXX</Text>\n <Text>9.XXXXX/</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X-XXXX/9999999999999/9XXX*XXX/9XXX*XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X999/X99</Text>\n <Text>99/XXX/XX 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 9/X999/X9/XXX/XXX</Text>\n <Text>X9999999999999999 9.9XXXXXX XXXXXXXXX X/9/X/X-9999999999</Text>\n <Text>999/9999</Text>\n <Text>9. XX\x879999999999/ 9/ 999/ 9/X999/X9/XXX/</Text>\n <Text>XXXX9999999999999999 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX XX/</Text>\n <Text>9/X/XXX</Text>\n <Text>RECEIVED FROM - XX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 AAAAAE H</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
893
1306
  },
894
1307
  {
895
1308
  operation: "queue.place",
896
1309
  status: 200,
897
1310
  attempts: 1,
898
- body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>ed11808f-94f9-42ce-ac49-402112b56868</eb:ConversationId><eb:Service>QueuePlaceLLSRQ</eb:Service><eb:Action>QueuePlaceLLSRS</eb:Action><eb:MessageData><eb:MessageId>834244129133751160</eb:MessageId><eb:Timestamp>2026-11-02T03:35:14</eb:Timestamp><eb:RefToMessageId>mid:60d8dffe-5ad8-4995-a7fe-d1c88507fcfd</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueuePlaceRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.0.4">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:35:14Z"/>\n </stl:ApplicationResults>\n <Text>011 SEE REMARKS</Text>\n <Text>9.9XXXXX XXXX/XXXXXX</Text>\n <Text>9 XXX XX 99XXX X XX9 XXX/XXXX XXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX999 9999999-X</Text>\n <Text>XXXXXXXXX XXXXXX *XX XX XXXXXXX</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX XXXXXXXXXXXX XXXXX 99</Text>\n <Text>XXX. XXX XXXXXXX</Text>\n <Text>XXXXXXX, XXX X.X. 99999</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXXX XXXXXX -</Text>\n <Text>\xA4 XXXXXX XXXXXX</Text>\n <Text>XXXXXXXX XXXXXXXX XXXX XXXXXX *XX XX XXXXXXX XXX</Text>\n <Text>XXXXXXX,XXXXXX,XXX/XX XXXXXXXXXX XXXXX XXXX XXXXX</Text>\n <Text>*XX XX XXXXXXX XXX</Text>\n <Text>XXXXXXXX XXXX XXXXXX *X9X XX *X9X XX XXXXXXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX XX XX/XX9999999999999</Text>\n <Text>9.XXX 9X XXX XXXXXXXXX XXXXXXXX</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXXX XXX XXXX</Text>\n <Text>XXXX XXX XXX</Text>\n <Text>9.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>9.XXX 9X 99999999</Text>\n <Text>9.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X X/ XXXX XXX99 9999999999 X 99.99</Text>\n <Text>GENERAL FACTS</Text>\n <Text>9.XXX XX XXXX 99999999 XXXXXXXXXXX XXXXX XXX 9XXX</Text>\n <Text>9.XXX XX XXXX X999X</Text>\n <Text>REMARKS</Text>\n <Text>9..XX99XXXXXX</Text>\n <Text>9.\x87XX XXXXXX XXXXXXX XXX XXXXXXXXXX XXXXX XX XX XXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXX XXXXX XXX XXXXXXX XX XXX XX XXXXX</Text>\n <Text>9.\x879 XXXXX XXXXXXXXXXX X XX XXXXX XX XXXXXXX</Text>\n <Text>9.\x87XX XXXX XX XXX XX XXXX X XXXXXX, XX XX XXXXX XXXXXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXXXXXX X XX XXXXXXXXX XXXX XX XXXXXX</Text>\n <Text>9.\x87XX XXXXX XX XX XXXXXX</Text>\n <Text>9.\x87**XX XXXXXXXXX XXXXX XXXXX XX 99 XXX XXXXX XX XX XXXXXX**</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX XXXXX</Text>\n <Text>99.\x87XX XXXXXX XXXXXXXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX</Text>\n <Text>99.\x87XXXXX, XXXXXXXXXXX XXX XXXXXXXXXXXXXX XXXXXXX</Text>\n <Text>99.\x87XX XXXXXXXXXXX XXXXX XXXXXXXXXXX XX XXXXXXXXXXX</Text>\n <Text>99.\x87XXXXXXX</Text>\n <Text>99..XX-99</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.XXXXX/</Text>\n <Text>99..XX-XXX</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X999/X99</Text>\n <Text>99/XXX/XXXX9999999999999999 9.9XXXXX XXXX XXXXXX/9/X/X</Text>\n <Text>RECEIVED FROM - XXXXXX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 AAAAAB H</Text>\n</QueuePlaceRS></soap-env:Body></soap-env:Envelope>'
1311
+ body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>ed11808f-94f9-42ce-ac49-402112b56868</eb:ConversationId><eb:Service>QueuePlaceLLSRQ</eb:Service><eb:Action>QueuePlaceLLSRS</eb:Action><eb:MessageData><eb:MessageId>834244129133751160</eb:MessageId><eb:Timestamp>2026-11-02T03:35:14</eb:Timestamp><eb:RefToMessageId>mid:60d8dffe-5ad8-4995-a7fe-d1c88507fcfd</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueuePlaceRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.0.4">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:35:14Z"/>\n </stl:ApplicationResults>\n <Text>011 SEE REMARKS</Text>\n <Text>9.9XXXXX XXXX/XXXXXX</Text>\n <Text>9 XXX XX 99XXX X XX9 XXX/XXXX XXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX999 9999999-X</Text>\n <Text>XXXXXXXXX XXXXXX *XX XX XXXXXXX</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX XXXXXXXXXXXX XXXXX 99</Text>\n <Text>XXX. XXX XXXXXXX</Text>\n <Text>XXXXXXX, XXX X.X. 99999</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXXX XXXXXX -</Text>\n <Text>\xA4 XXXXXX XXXXXX</Text>\n <Text>XXXXXXXX XXXXXXXX XXXX XXXXXX *XX XX XXXXXXX XXX</Text>\n <Text>XXXXXXX,XXXXXX,XXX/XX XXXXXXXXXX XXXXX XXXX XXXXX</Text>\n <Text>*XX XX XXXXXXX XXX</Text>\n <Text>XXXXXXXX XXXX XXXXXX *X9X XX *X9X XX XXXXXXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX XX XX/XX9999999999999</Text>\n <Text>9.XXX 9X XXX XXXXXXXXX XXXXXXXX</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXXX XXX XXXX</Text>\n <Text>XXXX XXX XXX</Text>\n <Text>9.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>9.XXX 9X 99999999</Text>\n <Text>9.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X X/ XXXX XXX99 9999999999 X 99.99</Text>\n <Text>GENERAL FACTS</Text>\n <Text>9.XXX XX XXXX 99999999 XXXXXXXXXXX XXXXX XXX 9XXX</Text>\n <Text>9.XXX XX XXXX X999X</Text>\n <Text>REMARKS</Text>\n <Text>9..XX99XXXXXX</Text>\n <Text>9.\x87XX XXXXXX XXXXXXX XXX XXXXXXXXXX XXXXX XX XX XXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXX XXXXX XXX XXXXXXX XX XXX XX XXXXX</Text>\n <Text>9.\x879 XXXXX XXXXXXXXXXX X XX XXXXX XX XXXXXXX</Text>\n <Text>9.\x87XX XXXX XX XXX XX XXXX X XXXXXX, XX XX XXXXX XXXXXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXXXXXX X XX XXXXXXXXX XXXX XX XXXXXX</Text>\n <Text>9.\x87XX XXXXX XX XX XXXXXX</Text>\n <Text>9.\x87**XX XXXXXXXXX XXXXX XXXXX XX 99 XXX XXXXX XX XX XXXXXX**</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX XXXXX</Text>\n <Text>99.\x87XX XXXXXX XXXXXXXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX</Text>\n <Text>99.\x87XXXXX, XXXXXXXXXXX XXX XXXXXXXXXXXXXX XXXXXXX</Text>\n <Text>99.\x87XX XXXXXXXXXXX XXXXX XXXXXXXXXXX XX XXXXXXXXXXX</Text>\n <Text>99.\x87XXXXXXX</Text>\n <Text>99..XX-99</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.XXXXX/</Text>\n <Text>99..XX-XXX</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X999/X99</Text>\n <Text>99/XXX/XXXX9999999999999999 9.9XXXXX XXXX XXXXXX/9/X/X</Text>\n <Text>RECEIVED FROM - XXXXXX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 AAAAAF H</Text>\n</QueuePlaceRS></soap-env:Body></soap-env:Envelope>'
899
1312
  },
900
1313
  {
901
1314
  operation: "queue.remove",
@@ -919,7 +1332,7 @@ var queue_production_place_default = {
919
1332
  operation: "queue.access",
920
1333
  status: 200,
921
1334
  attempts: 1,
922
- body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>ed11808f-94f9-42ce-ac49-402112b56868</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1507586129152441040</eb:MessageId><eb:Timestamp>2026-11-02T03:35:15</eb:Timestamp><eb:RefToMessageId>mid:80821434-2a4c-463a-a90b-a19d39c995c3</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:35:15Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-01-26T10:32</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAA"/>\n </Line>\n <Paragraph>\n <Text>011 SEE REMARKS</Text>\n <Text>9.9XXXXXX XXXXXXXXX/XXXXXX XXXXX XX</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>XXXXXXXX XX XXXXXXXXXXX XXX XXXXXXXXXX XXXXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX 999999999999-X</Text>\n <Text>XXXXXXXXX XXXXXX *XX XX XXXXXXX</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX 999</Text>\n <Text>XXXXXXX XXXX</Text>\n <Text>XXXXXX</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXX/XXXXXXXX XXXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 99X X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 9X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXX99XXX9XXX X</Text>\n <Text>XXXXXXXX XXX</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 999X</Text>\n <Text>REMARKS</Text>\n <Text>9..XX-XXX</Text>\n <Text>9..XXXXX-X99</Text>\n <Text>9..XXXXXXXXX-999</Text>\n <Text>9..XX99-XXXXXX XXXXXXXXXX X XX XXXXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXX XXXX/XXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXXXX XXXXXXX</Text>\n <Text>9.XXXXX/</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X-XXXX/9999999999999/9XXX*XXX/9XXX*XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X999/X99</Text>\n <Text>99/XXX/XX 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 9/X999/X9/XXX/XXX</Text>\n <Text>X9999999999999999 9.9XXXXXX XXXXXXXXX X/9/X/X-9999999999</Text>\n <Text>999/9999</Text>\n <Text>9. XX\x879999999999/ 9/ 999/ 9/X999/X9/XXX/</Text>\n <Text>XXXX9999999999999999 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX XX/</Text>\n <Text>9/X/XXX</Text>\n <Text>RECEIVED FROM - XX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 AAAAAA H</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
1335
+ body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>ed11808f-94f9-42ce-ac49-402112b56868</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1507586129152441040</eb:MessageId><eb:Timestamp>2026-11-02T03:35:15</eb:Timestamp><eb:RefToMessageId>mid:80821434-2a4c-463a-a90b-a19d39c995c3</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:35:15Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-01-26T10:32</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAE"/>\n </Line>\n <Paragraph>\n <Text>011 SEE REMARKS</Text>\n <Text>9.9XXXXXX XXXXXXXXX/XXXXXX XXXXX XX</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>XXXXXXXX XX XXXXXXXXXXX XXX XXXXXXXXXX XXXXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX 999999999999-X</Text>\n <Text>XXXXXXXXX XXXXXX *XX XX XXXXXXX</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX 999</Text>\n <Text>XXXXXXX XXXX</Text>\n <Text>XXXXXX</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXX/XXXXXXXX XXXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 99X X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 9X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXX99XXX9XXX X</Text>\n <Text>XXXXXXXX XXX</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 999X</Text>\n <Text>REMARKS</Text>\n <Text>9..XX-XXX</Text>\n <Text>9..XXXXX-X99</Text>\n <Text>9..XXXXXXXXX-999</Text>\n <Text>9..XX99-XXXXXX XXXXXXXXXX X XX XXXXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXX XXXX/XXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXXXX XXXXXXX</Text>\n <Text>9.XXXXX/</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X-XXXX/9999999999999/9XXX*XXX/9XXX*XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X999/X99</Text>\n <Text>99/XXX/XX 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 9/X999/X9/XXX/XXX</Text>\n <Text>X9999999999999999 9.9XXXXXX XXXXXXXXX X/9/X/X-9999999999</Text>\n <Text>999/9999</Text>\n <Text>9. XX\x879999999999/ 9/ 999/ 9/X999/X9/XXX/</Text>\n <Text>XXXX9999999999999999 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX XX/</Text>\n <Text>9/X/XXX</Text>\n <Text>RECEIVED FROM - XX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 AAAAAE H</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
923
1336
  },
924
1337
  {
925
1338
  operation: "queue.remove",
@@ -940,7 +1353,7 @@ var queue_production_place_default = {
940
1353
  body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>ed11808f-94f9-42ce-ac49-402112b56868</eb:ConversationId><eb:Service eb:type="sabreXML">Session</eb:Service><eb:Action>SessionCloseRS</eb:Action><eb:MessageData><eb:MessageId>1507704129157870910</eb:MessageId><eb:Timestamp>2026-11-02T03:35:15</eb:Timestamp><eb:RefToMessageId>mid:f4eff23a-501b-403c-8deb-af875cd7441b</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><SessionCloseRS xmlns="http://www.opentravel.org/OTA/2002/11" version="1" status="Approved"/></soap-env:Body></soap-env:Envelope>'
941
1354
  }
942
1355
  ],
943
- postprocessed: "2026-11-01: la anonimizaci\xF3n de esta corrida enmascar\xF3 la l\xEDnea de firma entera. Se le devolvi\xF3 la forma (alias del localizador y la H final) con la regla que hoy aplica scripts/lib/legacy-recorder.mjs: el alias de cada sobre sale de su Line/UniqueID, y en el place dentro de la cola, del resultado registrado."
1356
+ postprocessed: "2026-11-01: la anonimizaci\xF3n de esta corrida enmascar\xF3 la l\xEDnea de firma entera. Se le devolvi\xF3 la forma (alias del localizador y la H final) con la regla que hoy aplica scripts/lib/legacy-recorder.mjs: el alias de cada sobre sale de su Line/UniqueID, y en el place dentro de la cola, del resultado registrado. 2026-11-06: los alias se renombraron (AAAAAA \u2192 AAAAAE, AAAAAB \u2192 AAAAAF) para no pisar los de las otras fixtures de queueFixtures: cada una usa los suyos (#166)."
944
1357
  };
945
1358
 
946
1359
  // test/fixtures/queue.production-place-sin-pic.json
@@ -1409,7 +1822,7 @@ var queue_production_place_sin_pic_adentro_default = {
1409
1822
  step: "access 51",
1410
1823
  ok: true,
1411
1824
  done: false,
1412
- locator: "AAAAAA",
1825
+ locator: "AAAAAG",
1413
1826
  warnings: 0
1414
1827
  },
1415
1828
  {
@@ -1436,7 +1849,7 @@ var queue_production_place_sin_pic_adentro_default = {
1436
1849
  step: "limpieza: access 51",
1437
1850
  ok: true,
1438
1851
  done: false,
1439
- locator: "AAAAAA",
1852
+ locator: "AAAAAG",
1440
1853
  warnings: 0
1441
1854
  },
1442
1855
  {
@@ -1839,7 +2252,7 @@ var queue_production_place_sin_pic_adentro_default = {
1839
2252
  operation: "queue.place",
1840
2253
  status: 200,
1841
2254
  attempts: 1,
1842
- body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>2ef4246e-a5b8-4112-b447-afff44cd9453</eb:ConversationId><eb:Service>QueuePlaceLLSRQ</eb:Service><eb:Action>QueuePlaceLLSRS</eb:Action><eb:MessageData><eb:MessageId>1447485123645400970</eb:MessageId><eb:Timestamp>2026-11-02T03:26:05</eb:Timestamp><eb:RefToMessageId>mid:a6b248de-8d0e-4c8a-96e5-9a69e3482cba</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueuePlaceRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.0.4">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:26:05Z"/>\n </stl:ApplicationResults>\n <QueueInfo DateTime="11-01T21:26">\n <QueueIdentifier Number="0051" PseudoCityCode="XXXX"/>\n <UniqueID ID="AAAAAA"/>\n </QueueInfo>\n <QueueInfo DateTime="11-01T21:26">\n <QueueIdentifier Number="0051" PseudoCityCode="XXXX"/>\n <UniqueID ID="AAAAAB"/>\n </QueueInfo>\n <Text>XXXXX XXXXXXXXX XXXXXXXXX</Text>\n</QueuePlaceRS></soap-env:Body></soap-env:Envelope>'
2255
+ body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>2ef4246e-a5b8-4112-b447-afff44cd9453</eb:ConversationId><eb:Service>QueuePlaceLLSRQ</eb:Service><eb:Action>QueuePlaceLLSRS</eb:Action><eb:MessageData><eb:MessageId>1447485123645400970</eb:MessageId><eb:Timestamp>2026-11-02T03:26:05</eb:Timestamp><eb:RefToMessageId>mid:a6b248de-8d0e-4c8a-96e5-9a69e3482cba</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueuePlaceRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.0.4">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:26:05Z"/>\n </stl:ApplicationResults>\n <QueueInfo DateTime="11-01T21:26">\n <QueueIdentifier Number="0051" PseudoCityCode="XXXX"/>\n <UniqueID ID="AAAAAG"/>\n </QueueInfo>\n <QueueInfo DateTime="11-01T21:26">\n <QueueIdentifier Number="0051" PseudoCityCode="XXXX"/>\n <UniqueID ID="AAAAAH"/>\n </QueueInfo>\n <Text>XXXXX XXXXXXXXX XXXXXXXXX</Text>\n</QueuePlaceRS></soap-env:Body></soap-env:Envelope>'
1843
2256
  },
1844
2257
  {
1845
2258
  operation: "queue.count",
@@ -1851,7 +2264,7 @@ var queue_production_place_sin_pic_adentro_default = {
1851
2264
  operation: "queue.access",
1852
2265
  status: 200,
1853
2266
  attempts: 1,
1854
- body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>2ef4246e-a5b8-4112-b447-afff44cd9453</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1447690123658680240</eb:MessageId><eb:Timestamp>2026-11-02T03:26:06</eb:Timestamp><eb:RefToMessageId>mid:e0868a8b-5dd7-4840-a597-9d1b9be82ef2</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:26:06Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-01-26T10:32</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAA"/>\n </Line>\n <Paragraph>\n <Text>011 SEE REMARKS</Text>\n <Text>9.9XXXXXX XXXXXXXXX/XXXXXX XXXXX XX</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>XXXXXXXX XX XXXXXXXXXXX XXX XXXXXXXXXX XXXXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX 999999999999-X</Text>\n <Text>XXXXXXXXX XXXXXX *XX XX XXXXXXX</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX 999</Text>\n <Text>XXXXXXX XXXX</Text>\n <Text>XXXXXX</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXX/XXXXXXXX XXXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 99X X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 9X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXX99XXX9XXX X</Text>\n <Text>XXXXXXXX XXX</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 999X</Text>\n <Text>REMARKS</Text>\n <Text>9..XX-XXX</Text>\n <Text>9..XXXXX-X99</Text>\n <Text>9..XXXXXXXXX-999</Text>\n <Text>9..XX99-XXXXXX XXXXXXXXXX X XX XXXXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXX XXXX/XXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXXXX XXXXXXX</Text>\n <Text>9.XXXXX/</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X-XXXX/9999999999999/9XXX*XXX/9XXX*XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X999/X99</Text>\n <Text>99/XXX/XX 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 9/X999/X9/XXX/XXX</Text>\n <Text>X9999999999999999 9.9XXXXXX XXXXXXXXX X/9/X/X-9999999999</Text>\n <Text>999/9999</Text>\n <Text>9. XX\x879999999999/ 9/ 999/ 9/X999/X9/XXX/</Text>\n <Text>XXXX9999999999999999 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX XX/</Text>\n <Text>9/X/XXX</Text>\n <Text>RECEIVED FROM - XX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 XXXXXX X</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
2267
+ body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>2ef4246e-a5b8-4112-b447-afff44cd9453</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1447690123658680240</eb:MessageId><eb:Timestamp>2026-11-02T03:26:06</eb:Timestamp><eb:RefToMessageId>mid:e0868a8b-5dd7-4840-a597-9d1b9be82ef2</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:26:06Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-01-26T10:32</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAG"/>\n </Line>\n <Paragraph>\n <Text>011 SEE REMARKS</Text>\n <Text>9.9XXXXXX XXXXXXXXX/XXXXXX XXXXX XX</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>XXXXXXXX XX XXXXXXXXXXX XXX XXXXXXXXXX XXXXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX 999999999999-X</Text>\n <Text>XXXXXXXXX XXXXXX *XX XX XXXXXXX</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX 999</Text>\n <Text>XXXXXXX XXXX</Text>\n <Text>XXXXXX</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXX/XXXXXXXX XXXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 99X X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 9X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXX99XXX9XXX X</Text>\n <Text>XXXXXXXX XXX</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 999X</Text>\n <Text>REMARKS</Text>\n <Text>9..XX-XXX</Text>\n <Text>9..XXXXX-X99</Text>\n <Text>9..XXXXXXXXX-999</Text>\n <Text>9..XX99-XXXXXX XXXXXXXXXX X XX XXXXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXX XXXX/XXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXXXX XXXXXXX</Text>\n <Text>9.XXXXX/</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X-XXXX/9999999999999/9XXX*XXX/9XXX*XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X999/X99</Text>\n <Text>99/XXX/XX 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 9/X999/X9/XXX/XXX</Text>\n <Text>X9999999999999999 9.9XXXXXX XXXXXXXXX X/9/X/X-9999999999</Text>\n <Text>999/9999</Text>\n <Text>9. XX\x879999999999/ 9/ 999/ 9/X999/X9/XXX/</Text>\n <Text>XXXX9999999999999999 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX XX/</Text>\n <Text>9/X/XXX</Text>\n <Text>RECEIVED FROM - XX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 AAAAAG H</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
1855
2268
  },
1856
2269
  {
1857
2270
  operation: "queue.place",
@@ -1875,7 +2288,7 @@ var queue_production_place_sin_pic_adentro_default = {
1875
2288
  operation: "queue.access",
1876
2289
  status: 200,
1877
2290
  attempts: 1,
1878
- body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>2ef4246e-a5b8-4112-b447-afff44cd9453</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1447869123677321200</eb:MessageId><eb:Timestamp>2026-11-02T03:26:08</eb:Timestamp><eb:RefToMessageId>mid:60b221e6-eac3-4280-b26c-96e4f757abc0</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:26:08Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-01-26T10:32</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAA"/>\n </Line>\n <Paragraph>\n <Text>011 SEE REMARKS</Text>\n <Text>9.9XXXXXX XXXXXXXXX/XXXXXX XXXXX XX</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>XXXXXXXX XX XXXXXXXXXXX XXX XXXXXXXXXX XXXXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX 999999999999-X</Text>\n <Text>XXXXXXXXX XXXXXX *XX XX XXXXXXX</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX 999</Text>\n <Text>XXXXXXX XXXX</Text>\n <Text>XXXXXX</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXX/XXXXXXXX XXXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 99X X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 9X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXX99XXX9XXX X</Text>\n <Text>XXXXXXXX XXX</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 999X</Text>\n <Text>REMARKS</Text>\n <Text>9..XX-XXX</Text>\n <Text>9..XXXXX-X99</Text>\n <Text>9..XXXXXXXXX-999</Text>\n <Text>9..XX99-XXXXXX XXXXXXXXXX X XX XXXXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXX XXXX/XXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXXXX XXXXXXX</Text>\n <Text>9.XXXXX/</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X-XXXX/9999999999999/9XXX*XXX/9XXX*XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X999/X99</Text>\n <Text>99/XXX/XX 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 9/X999/X9/XXX/XXX</Text>\n <Text>X9999999999999999 9.9XXXXXX XXXXXXXXX X/9/X/X-9999999999</Text>\n <Text>999/9999</Text>\n <Text>9. XX\x879999999999/ 9/ 999/ 9/X999/X9/XXX/</Text>\n <Text>XXXX9999999999999999 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX XX/</Text>\n <Text>9/X/XXX</Text>\n <Text>RECEIVED FROM - XX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 XXXXXX X</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
2291
+ body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>2ef4246e-a5b8-4112-b447-afff44cd9453</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1447869123677321200</eb:MessageId><eb:Timestamp>2026-11-02T03:26:08</eb:Timestamp><eb:RefToMessageId>mid:60b221e6-eac3-4280-b26c-96e4f757abc0</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T03:26:08Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-01-26T10:32</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAG"/>\n </Line>\n <Paragraph>\n <Text>011 SEE REMARKS</Text>\n <Text>9.9XXXXXX XXXXXXXXX/XXXXXX XXXXX XX</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 9999X 9999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X /XXXX*XXXXXX /X</Text>\n <Text>9 XX 999X 99XXX X XXXXXX XX9 999X 999X XXX /XXXX*XXXXXX /X</Text>\n <Text>XXXXXXXX XX XXXXXXXXXXX XXX XXXXXXXXXX XXXXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX 999999999999-X</Text>\n <Text>XXXXXXXXX XXXXXX *XX XX XXXXXXX</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX 999</Text>\n <Text>XXXXXXX XXXX</Text>\n <Text>XXXXXX</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXX/XXXXXXXX XXXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 99X X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>9 XX 999X 99XXX XXXXXX XX 9X X 9.9 XXXXXX XXXXXXXXX/XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXX99XXX9XXX X</Text>\n <Text>XXXXXXXX XXX</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX9999X 99XXX XXXXXX 999X 999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 9999X</Text>\n <Text>9.XXX 9X *** XXXX XXXX XXX XX 999X 99XXX XXXXXX 9999X 999X</Text>\n <Text>REMARKS</Text>\n <Text>9..XX-XXX</Text>\n <Text>9..XXXXX-X99</Text>\n <Text>9..XXXXXXXXX-999</Text>\n <Text>9..XX99-XXXXXX XXXXXXXXXX X XX XXXXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXX XXXX/XXXX</Text>\n <Text>9.XXXXXXX/9XXX*XXX 9999/99XXX99 XXXXXX</Text>\n <Text>9.X-XXXXX XX/999999/99XXX99 XXXXXX 99/99 99/99 XXXXXX XXXXXXX</Text>\n <Text>9.XXXXX/</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X-XXXX/9999999999999/9XXX*XXX/9XXX*XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X999/X99</Text>\n <Text>99/XXX/XX 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 9/X999/X9/XXX/XXX</Text>\n <Text>X9999999999999999 9.9XXXXXX XXXXXXXXX X/9/X/X-9999999999</Text>\n <Text>999/9999</Text>\n <Text>9. XX\x879999999999/ 9/ 999/ 9/X999/X9/XXX/</Text>\n <Text>XXXX9999999999999999 9.9XXXXXX XXXXXXXXX XXXXXX XXXXX XX/</Text>\n <Text>9/X/XXX</Text>\n <Text>RECEIVED FROM - XX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 AAAAAG H</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
1879
2292
  },
1880
2293
  {
1881
2294
  operation: "queue.exit",
@@ -1901,7 +2314,8 @@ var queue_production_place_sin_pic_adentro_default = {
1901
2314
  attempts: 1,
1902
2315
  body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>2ef4246e-a5b8-4112-b447-afff44cd9453</eb:ConversationId><eb:Service eb:type="sabreXML">Session</eb:Service><eb:Action>SessionCloseRS</eb:Action><eb:MessageData><eb:MessageId>1448022123685580350</eb:MessageId><eb:Timestamp>2026-11-02T03:26:08</eb:Timestamp><eb:RefToMessageId>mid:fb8eaff8-33f0-4e1b-8f64-7b14a7adf808</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><SessionCloseRS xmlns="http://www.opentravel.org/OTA/2002/11" version="1" status="Approved"/></soap-env:Body></soap-env:Envelope>'
1903
2316
  }
1904
- ]
2317
+ ],
2318
+ postprocessed: "2026-11-06 (#166): la anonimizaci\xF3n de esta corrida enmascar\xF3 la l\xEDnea de firma entera. Se le devolvi\xF3 la forma (alias del localizador y la H final) con la regla que hoy aplica createAnonymizer: el alias de cada sobre sale de su Line/UniqueID. Firmas corregidas: 2. 2026-11-06: los alias se renombraron (AAAAAA \u2192 AAAAAG, AAAAAB \u2192 AAAAAH) para no pisar los de las otras fixtures de queueFixtures: cada una usa los suyos (#166)."
1905
2319
  };
1906
2320
 
1907
2321
  // test/fixtures/queue.production-walk-empty-queue.json
@@ -2810,7 +3224,7 @@ var queue_production_walk_default = {
2810
3224
  operation: "queue.access",
2811
3225
  status: 200,
2812
3226
  attempts: 1,
2813
- body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>f72193ed-73f9-4fe8-9ed8-bdbec43a7259</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1247230105534071340</eb:MessageId><eb:Timestamp>2026-11-02T02:55:53</eb:Timestamp><eb:RefToMessageId>mid:f75d90ce-57e3-4f17-929d-4cbde2c49d14</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T02:55:53Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-08-04T17:28</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAA"/>\n </Line>\n <Paragraph>\n <Text>084 RATE/CONFIRMATION NUMBER RTND</Text>\n <Text>9.9XXXXXXXXX XXXXXXXX/XXXX XXXXXXX</Text>\n <Text>9.9XXXXXX XXXXXXX/XXXXXX XXXXXXX</Text>\n <Text>9 XXX XX 99XXX X XX9 XXX/XXXX XXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX999 9999999-X</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX XXXXXXXXXXXX XXXXX 99</Text>\n <Text>XXX. XXX XXXXXXX</Text>\n <Text>XXXXXXX, XXX X.X. 99999</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXXX XXXXXX -</Text>\n <Text>\xA4 XXXXXX XXXXXX</Text>\n <Text>XXXXXXX,XXXXXX,XXX/XX XXXXXXXXXX XXXXX XXXX XXXXX</Text>\n <Text>*XX XX XXXXXXX XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXX99XXX9XXX X</Text>\n <Text>XXXXXXXX XXX</Text>\n <Text>GENERAL FACTS</Text>\n <Text>9.XXX XX XXXX 99999999 XXXXXXXXXXX XXXXX XXX 9XXX</Text>\n <Text>REMARKS</Text>\n <Text>9.\x87XX XXXXXX XXXXXXX XXX XXXXXXXXXX XXXXX XX XX XXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXX XXXXX XXX XXXXXXX XX XXX XX XXXXX</Text>\n <Text>9.\x879 XXXXX XXXXXXXXXXX X XX XXXXX XX XXXXXXX</Text>\n <Text>9.\x87XX XXXX XX XXX XX XXXX X XXXXXX, XX XX XXXXX XXXXXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXXXXXX X XX XXXXXXXXX XXXX XX XXXXXX</Text>\n <Text>9.\x87XX XXXXX XX XX XXXXXX</Text>\n <Text>9.\x87**XX XXXXXXXXX XXXXX XXXXX XX 99 XXX XXXXX XX XX XXXXXX**</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX XXXXX</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX</Text>\n <Text>99.\x87XXXXX, XXXXXXXXXXX XXX XXXXXXXXXXXXXX XXXXXXX</Text>\n <Text>99.\x87XX XXXXXXXXXXX XXXXX XXXXXXXXXXX XX XXXXXXXXXXX</Text>\n <Text>99.\x87XXXXXXX</Text>\n <Text>99..XX99XXXXXXX XXXXXXX</Text>\n <Text>99..XX-99</Text>\n <Text>99.XXXXX/</Text>\n <Text>99..XXXXXXXXX</Text>\n <Text>99..XX-XXX</Text>\n <Text>99..XX99-XXXXX-999.99-XX XXXXXX</Text>\n <Text>99..XX99-XXXXX-999.99-XX XXXXXX</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X9999/X9</Text>\n <Text>999/XXX/XX 9.9XXXXXXXXX XXXXXXXX XXXX XXXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X9999/X9</Text>\n <Text>999/XXX/XX 9.9XXXXXX XXXXXXX XXXXXX XXXXXXX/9/X/X</Text>\n <Text>RECEIVED FROM - XXXXXXX XXXXXXX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 XXXXXX X</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
3227
+ body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>f72193ed-73f9-4fe8-9ed8-bdbec43a7259</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1247230105534071340</eb:MessageId><eb:Timestamp>2026-11-02T02:55:53</eb:Timestamp><eb:RefToMessageId>mid:f75d90ce-57e3-4f17-929d-4cbde2c49d14</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T02:55:53Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-08-04T17:28</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAA"/>\n </Line>\n <Paragraph>\n <Text>084 RATE/CONFIRMATION NUMBER RTND</Text>\n <Text>9.9XXXXXXXXX XXXXXXXX/XXXX XXXXXXX</Text>\n <Text>9.9XXXXXX XXXXXXX/XXXXXX XXXXXXX</Text>\n <Text>9 XXX XX 99XXX X XX9 XXX/XXXX XXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX999 9999999-X</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX XXXXXXXXXXXX XXXXX 99</Text>\n <Text>XXX. XXX XXXXXXX</Text>\n <Text>XXXXXXX, XXX X.X. 99999</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXXX XXXXXX -</Text>\n <Text>\xA4 XXXXXX XXXXXX</Text>\n <Text>XXXXXXX,XXXXXX,XXX/XX XXXXXXXXXX XXXXX XXXX XXXXX</Text>\n <Text>*XX XX XXXXXXX XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXX99XXX9XXX X</Text>\n <Text>XXXXXXXX XXX</Text>\n <Text>GENERAL FACTS</Text>\n <Text>9.XXX XX XXXX 99999999 XXXXXXXXXXX XXXXX XXX 9XXX</Text>\n <Text>REMARKS</Text>\n <Text>9.\x87XX XXXXXX XXXXXXX XXX XXXXXXXXXX XXXXX XX XX XXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXX XXXXX XXX XXXXXXX XX XXX XX XXXXX</Text>\n <Text>9.\x879 XXXXX XXXXXXXXXXX X XX XXXXX XX XXXXXXX</Text>\n <Text>9.\x87XX XXXX XX XXX XX XXXX X XXXXXX, XX XX XXXXX XXXXXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXXXXXX X XX XXXXXXXXX XXXX XX XXXXXX</Text>\n <Text>9.\x87XX XXXXX XX XX XXXXXX</Text>\n <Text>9.\x87**XX XXXXXXXXX XXXXX XXXXX XX 99 XXX XXXXX XX XX XXXXXX**</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX XXXXX</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX</Text>\n <Text>99.\x87XXXXX, XXXXXXXXXXX XXX XXXXXXXXXXXXXX XXXXXXX</Text>\n <Text>99.\x87XX XXXXXXXXXXX XXXXX XXXXXXXXXXX XX XXXXXXXXXXX</Text>\n <Text>99.\x87XXXXXXX</Text>\n <Text>99..XX99XXXXXXX XXXXXXX</Text>\n <Text>99..XX-99</Text>\n <Text>99.XXXXX/</Text>\n <Text>99..XXXXXXXXX</Text>\n <Text>99..XX-XXX</Text>\n <Text>99..XX99-XXXXX-999.99-XX XXXXXX</Text>\n <Text>99..XX99-XXXXX-999.99-XX XXXXXX</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X9999/X9</Text>\n <Text>999/XXX/XX 9.9XXXXXXXXX XXXXXXXX XXXX XXXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X9999/X9</Text>\n <Text>999/XXX/XX 9.9XXXXXX XXXXXXX XXXXXX XXXXXXX/9/X/X</Text>\n <Text>RECEIVED FROM - XXXXXXX XXXXXXX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 AAAAAA H</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
2814
3228
  },
2815
3229
  {
2816
3230
  operation: "queue.count",
@@ -2822,19 +3236,19 @@ var queue_production_walk_default = {
2822
3236
  operation: "queue.ignore",
2823
3237
  status: 200,
2824
3238
  attempts: 1,
2825
- body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>f72193ed-73f9-4fe8-9ed8-bdbec43a7259</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1247174105538621600</eb:MessageId><eb:Timestamp>2026-11-02T02:55:54</eb:Timestamp><eb:RefToMessageId>mid:497d87c0-3e42-4117-988a-ff70bf7e9806</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T02:55:54Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-09-01T19:49</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAB"/>\n </Line>\n <Paragraph>\n <Text>084 RATE/CONFIRMATION NUMBER RTND</Text>\n <Text>9.9XXXXX XXXXXX/XXXXX</Text>\n <Text>9 XXX XX 99XXX X XX9 XXX/XXXX XXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX999 9999999-X</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX XXXXXXXXXXXX XXXXX 99</Text>\n <Text>XXX. XXX XXXXXXX</Text>\n <Text>XXXXXXX, XXX X.X. 99999</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXXX XXXXXX -</Text>\n <Text>\xA4 XXXXXX XXXXXX</Text>\n <Text>XXXXXXX,XXXXXX,XXX/XX XXXXXXXXXX XXXXX XXXX XXXXX</Text>\n <Text>*XX XX XXXXXXX XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX XX XX/XX9999999999999</Text>\n <Text>9.XXX 9X XXX XXXXXXXXX XXXXXXXX</Text>\n <Text>9.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>9.XXX 9X 99999999</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-9XXXX XXX XXXX XX</Text>\n <Text>XX XXX XXX</Text>\n <Text>GENERAL FACTS</Text>\n <Text>9.XXX XX XXXX 99999999 XXXXXXXXXXX XXXXX XXX 9XXX</Text>\n <Text>9.XXX XX XXXX XX999</Text>\n <Text>9.XXX XX XXXX 999999999-</Text>\n <Text>REMARKS</Text>\n <Text>9.\x87XX XXXXXX XXXXXXX XXX XXXXXXXXXX XXXXX XX XX XXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXX XXXXX XXX XXXXXXX XX XXX XX XXXXX</Text>\n <Text>9.\x879 XXXXX XXXXXXXXXXX X XX XXXXX XX XXXXXXX</Text>\n <Text>9.\x87XX XXXX XX XXX XX XXXX X XXXXXX, XX XX XXXXX XXXXXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXXXXXX X XX XXXXXXXXX XXXX XX XXXXXX</Text>\n <Text>9.\x87XX XXXXX XX XX XXXXXX</Text>\n <Text>9.\x87**XX XXXXXXXXX XXXXX XXXXX XX 99 XXX XXXXX XX XX XXXXXX**</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX XXXXX</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX</Text>\n <Text>99.\x87XXXXX, XXXXXXXXXXX XXX XXXXXXXXXXXXXX XXXXXXX</Text>\n <Text>99.\x87XX XXXXXXXXXXX XXXXX XXXXXXXXXXX XX XXXXXXXXXXX</Text>\n <Text>99.\x87XXXXXXX</Text>\n <Text>99..XX99XXXXXXX XXXXXX</Text>\n <Text>99..XX-99</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.XXXXX/</Text>\n <Text>99..XX-XXX</Text>\n <Text>99..XX99-XXXXXX-999.99-9999</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 999/X999/X99</Text>\n <Text>9/XXX/XXXX9999999999999999 9.9XXXXX XXXXXX XXXXX/9/X/X</Text>\n <Text>RECEIVED FROM - XXXXXXX XXXXXX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 XXXXXX X</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
3239
+ body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>f72193ed-73f9-4fe8-9ed8-bdbec43a7259</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1247174105538621600</eb:MessageId><eb:Timestamp>2026-11-02T02:55:54</eb:Timestamp><eb:RefToMessageId>mid:497d87c0-3e42-4117-988a-ff70bf7e9806</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T02:55:54Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-09-01T19:49</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAB"/>\n </Line>\n <Paragraph>\n <Text>084 RATE/CONFIRMATION NUMBER RTND</Text>\n <Text>9.9XXXXX XXXXXX/XXXXX</Text>\n <Text>9 XXX XX 99XXX X XX9 XXX/XXXX XXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX999 9999999-X</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX XXXXXXXXXXXX XXXXX 99</Text>\n <Text>XXX. XXX XXXXXXX</Text>\n <Text>XXXXXXX, XXX X.X. 99999</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXXX XXXXXX -</Text>\n <Text>\xA4 XXXXXX XXXXXX</Text>\n <Text>XXXXXXX,XXXXXX,XXX/XX XXXXXXXXXX XXXXX XXXX XXXXX</Text>\n <Text>*XX XX XXXXXXX XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX XX XX/XX9999999999999</Text>\n <Text>9.XXX 9X XXX XXXXXXXXX XXXXXXXX</Text>\n <Text>9.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>9.XXX 9X 99999999</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-9XXXX XXX XXXX XX</Text>\n <Text>XX XXX XXX</Text>\n <Text>GENERAL FACTS</Text>\n <Text>9.XXX XX XXXX 99999999 XXXXXXXXXXX XXXXX XXX 9XXX</Text>\n <Text>9.XXX XX XXXX XX999</Text>\n <Text>9.XXX XX XXXX 999999999-</Text>\n <Text>REMARKS</Text>\n <Text>9.\x87XX XXXXXX XXXXXXX XXX XXXXXXXXXX XXXXX XX XX XXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXX XXXXX XXX XXXXXXX XX XXX XX XXXXX</Text>\n <Text>9.\x879 XXXXX XXXXXXXXXXX X XX XXXXX XX XXXXXXX</Text>\n <Text>9.\x87XX XXXX XX XXX XX XXXX X XXXXXX, XX XX XXXXX XXXXXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXXXXXX X XX XXXXXXXXX XXXX XX XXXXXX</Text>\n <Text>9.\x87XX XXXXX XX XX XXXXXX</Text>\n <Text>9.\x87**XX XXXXXXXXX XXXXX XXXXX XX 99 XXX XXXXX XX XX XXXXXX**</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX XXXXX</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX</Text>\n <Text>99.\x87XXXXX, XXXXXXXXXXX XXX XXXXXXXXXXXXXX XXXXXXX</Text>\n <Text>99.\x87XX XXXXXXXXXXX XXXXX XXXXXXXXXXX XX XXXXXXXXXXX</Text>\n <Text>99.\x87XXXXXXX</Text>\n <Text>99..XX99XXXXXXX XXXXXX</Text>\n <Text>99..XX-99</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.XXXXX/</Text>\n <Text>99..XX-XXX</Text>\n <Text>99..XX99-XXXXXX-999.99-9999</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 999/X999/X99</Text>\n <Text>9/XXX/XXXX9999999999999999 9.9XXXXX XXXXXX XXXXX/9/X/X</Text>\n <Text>RECEIVED FROM - XXXXXXX XXXXXX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 AAAAAB H</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
2826
3240
  },
2827
3241
  {
2828
3242
  operation: "queue.ignore",
2829
3243
  status: 200,
2830
3244
  attempts: 1,
2831
- body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>f72193ed-73f9-4fe8-9ed8-bdbec43a7259</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1247301105541361240</eb:MessageId><eb:Timestamp>2026-11-02T02:55:54</eb:Timestamp><eb:RefToMessageId>mid:31b11fbb-ef60-4a82-b41f-157edc016b8a</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T02:55:54Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-09-06T11:11</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAC"/>\n </Line>\n <Paragraph>\n <Text>084 RATE/CONFIRMATION NUMBER RTND</Text>\n <Text>9.9XXXXX XXXXXX/XXXXXX</Text>\n <Text>9 XXX XX 99XXX X XX9 XXX/XXXXX XXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX999 9999999-X</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX XXXXXXXXXXXX XXXXX 99</Text>\n <Text>XXX. XXX XXXXXXX</Text>\n <Text>XXXXXXX, XXX X.X. 99999</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX/XXXXXX</Text>\n <Text>XXXXXX XXXXXX -</Text>\n <Text>\xA4 XXXXXX XXXXXX</Text>\n <Text>XXXXXXXX XXXXXXXX XXXX XXXXXX *XX XX XXXXXXX XXX</Text>\n <Text>XXXXXXX,XXXXXX,XXX/XX XXXXXXXXXX XXXXX XXXX XXXXX</Text>\n <Text>*XX XX XXXXXXX XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXXX99XXX9XXX</Text>\n <Text>XXXXXXXXX XXX</Text>\n <Text>9.XXX XXXX 9X XXXXX XXXXXXXX XX XXXXXXX XX XXXXX XXXX</Text>\n <Text>9.XXX XXXX 9X XXX XXXXXXXX XXXXXXXX XXXXXXX XX 99XXX99 9999XX</Text>\n <Text>X</Text>\n <Text>9.XXX XXXX 9X 9999999999999 XXXX9 XXX 999 XX 999 XXX9</Text>\n <Text>9.XXX XXXX 9X XX XXXXXXXX XXX XX XXXXXX XX XXXXXXXXX XXXXXX</Text>\n <Text>9.XXX XXXX 9X XX XXXXXX XX XXXX XXXX XXX XX XXXX XXX XX XXXXX</Text>\n <Text>GENERAL FACTS</Text>\n <Text>9.XXX XX XXXX 99999999 XXXXXXXXXXX XXXXX XXX 9XXX</Text>\n <Text>REMARKS</Text>\n <Text>9.\x87XX XXXXXX XXXXXXX XXX XXXXXXXXXX XXXXX XX XX XXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXX XXXXX XXX XXXXXXX XX XXX XX XXXXX</Text>\n <Text>9.\x879 XXXXX XXXXXXXXXXX X XX XXXXX XX XXXXXXX</Text>\n <Text>9.\x87XX XXXX XX XXX XX XXXX X XXXXXX, XX XX XXXXX XXXXXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXXXXXX X XX XXXXXXXXX XXXX XX XXXXXX</Text>\n <Text>9.\x87XX XXXXX XX XX XXXXXX</Text>\n <Text>9.\x87**XX XXXXXXXXX XXXXX XXXXX XX 99 XXX XXXXX XX XX XXXXXX**</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX XXXXX</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX</Text>\n <Text>99.\x87XXXXX, XXXXXXXXXXX XXX XXXXXXXXXXXXXX XXXXXXX</Text>\n <Text>99.\x87XX XXXXXXXXXXX XXXXX XXXXXXXXXXX XX XXXXXXXXXXX</Text>\n <Text>99.\x87XXXXXXX</Text>\n <Text>99..XX-99</Text>\n <Text>99..XX99XXXXXXX XXXXXX</Text>\n <Text>99..XX99-XXXXX-999.99-9999</Text>\n <Text>99..XX-XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/999/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXXX/</Text>\n <Text>99.XXXXX/</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/999/XXX999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXXX/</Text>\n <Text>99.X-XXXX/9999999999999/9XXX*XXX/9XXX*XXX</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X9999/X9</Text>\n <Text>999/XXX/XXXX999999999999999 9.9XXXXX XXXXXX XXXXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 9/ 999/ 9/X99/X9/XXX/XXXX</Text>\n <Text>999999999999999 9.9XXXXX XXXXXX XXXXXX/9/X/X-99999999999</Text>\n <Text>99/99</Text>\n <Text>RECEIVED FROM - XXXXXXXXX XXXXXX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 XXXXXX X</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
3245
+ body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>f72193ed-73f9-4fe8-9ed8-bdbec43a7259</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1247301105541361240</eb:MessageId><eb:Timestamp>2026-11-02T02:55:54</eb:Timestamp><eb:RefToMessageId>mid:31b11fbb-ef60-4a82-b41f-157edc016b8a</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T02:55:54Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-09-06T11:11</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAC"/>\n </Line>\n <Paragraph>\n <Text>084 RATE/CONFIRMATION NUMBER RTND</Text>\n <Text>9.9XXXXX XXXXXX/XXXXXX</Text>\n <Text>9 XXX XX 99XXX X XX9 XXX/XXXXX XXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX999 9999999-X</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX XXXXXXXXXXXX XXXXX 99</Text>\n <Text>XXX. XXX XXXXXXX</Text>\n <Text>XXXXXXX, XXX X.X. 99999</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX/XXXXXX</Text>\n <Text>XXXXXX XXXXXX -</Text>\n <Text>\xA4 XXXXXX XXXXXX</Text>\n <Text>XXXXXXXX XXXXXXXX XXXX XXXXXX *XX XX XXXXXXX XXX</Text>\n <Text>XXXXXXX,XXXXXX,XXX/XX XXXXXXXXXX XXXXX XXXX XXXXX</Text>\n <Text>*XX XX XXXXXXX XXX</Text>\n <Text>AA FACTS</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXXX99XXX9XXX</Text>\n <Text>XXXXXXXXX XXX</Text>\n <Text>9.XXX XXXX 9X XXXXX XXXXXXXX XX XXXXXXX XX XXXXX XXXX</Text>\n <Text>9.XXX XXXX 9X XXX XXXXXXXX XXXXXXXX XXXXXXX XX 99XXX99 9999XX</Text>\n <Text>X</Text>\n <Text>9.XXX XXXX 9X 9999999999999 XXXX9 XXX 999 XX 999 XXX9</Text>\n <Text>9.XXX XXXX 9X XX XXXXXXXX XXX XX XXXXXX XX XXXXXXXXX XXXXXX</Text>\n <Text>9.XXX XXXX 9X XX XXXXXX XX XXXX XXXX XXX XX XXXX XXX XX XXXXX</Text>\n <Text>GENERAL FACTS</Text>\n <Text>9.XXX XX XXXX 99999999 XXXXXXXXXXX XXXXX XXX 9XXX</Text>\n <Text>REMARKS</Text>\n <Text>9.\x87XX XXXXXX XXXXXXX XXX XXXXXXXXXX XXXXX XX XX XXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXX XXXXX XXX XXXXXXX XX XXX XX XXXXX</Text>\n <Text>9.\x879 XXXXX XXXXXXXXXXX X XX XXXXX XX XXXXXXX</Text>\n <Text>9.\x87XX XXXX XX XXX XX XXXX X XXXXXX, XX XX XXXXX XXXXXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXXXXXX X XX XXXXXXXXX XXXX XX XXXXXX</Text>\n <Text>9.\x87XX XXXXX XX XX XXXXXX</Text>\n <Text>9.\x87**XX XXXXXXXXX XXXXX XXXXX XX 99 XXX XXXXX XX XX XXXXXX**</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX XXXXX</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX</Text>\n <Text>99.\x87XXXXX, XXXXXXXXXXX XXX XXXXXXXXXXXXXX XXXXXXX</Text>\n <Text>99.\x87XX XXXXXXXXXXX XXXXX XXXXXXXXXXX XX XXXXXXXXXXX</Text>\n <Text>99.\x87XXXXXXX</Text>\n <Text>99..XX-99</Text>\n <Text>99..XX99XXXXXXX XXXXXX</Text>\n <Text>99..XX99-XXXXX-999.99-9999</Text>\n <Text>99..XX-XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/999/XXX9999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXXX/</Text>\n <Text>99.XXXXX/</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/999/XXX999</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXXX/</Text>\n <Text>99.X-XXXX/9999999999999/9XXX*XXX/9XXX*XXX</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99/ 9999/ 99/X9999/X9</Text>\n <Text>999/XXX/XXXX999999999999999 9.9XXXXX XXXXXX XXXXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 9/ 999/ 9/X99/X9/XXX/XXXX</Text>\n <Text>999999999999999 9.9XXXXX XXXXXX XXXXXX/9/X/X-99999999999</Text>\n <Text>99/99</Text>\n <Text>RECEIVED FROM - XXXXXXXXX XXXXXX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 AAAAAC H</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
2832
3246
  },
2833
3247
  {
2834
3248
  operation: "queue.ignore",
2835
3249
  status: 200,
2836
3250
  attempts: 1,
2837
- body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>f72193ed-73f9-4fe8-9ed8-bdbec43a7259</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1247355105544140700</eb:MessageId><eb:Timestamp>2026-11-02T02:55:54</eb:Timestamp><eb:RefToMessageId>mid:44b2358f-b88b-47b5-bcf9-120cd2174325</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T02:55:54Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-10-09T12:42</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAD"/>\n </Line>\n <Paragraph>\n <Text>084 RATE/CONFIRMATION NUMBER RTND</Text>\n <Text>9.9XXXXX XXXXXXX/XXXXXXX</Text>\n <Text>9 XXX XX 99XXX X XX9 XXX/XXXX XXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX999 9999999-X</Text>\n <Text>XXXXXXXXX XXXXXX *XX XX XXXXXXX</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX XXXXXXXXXXXX XXXXX 99</Text>\n <Text>XXX. XXX XXXXXXX</Text>\n <Text>XXXXXXX, XXX X.X. 99999</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXXX XXXXXX -</Text>\n <Text>\xA4 XXXXXX XXXXXX</Text>\n <Text>XXXXXXXX XXXXXXXX XXXX XXXXXX *XX XX XXXXXXX XXX</Text>\n <Text>XXXXXXX,XXXXXX,XXX/XX XXXXXXXXXX XXXXX XXXX XXXXX</Text>\n <Text>*XX XX XXXXXXX XXX</Text>\n <Text>XXXXXXXX XXXX XXXXXX *X9X XX *X9X XX XXXXXXX</Text>\n <Text>AA FACTS</Text>\n <Text>XXXX XXXX XXXXXX - XXXXXX XXX *X9 XX XXXX</Text>\n <Text>9.XXX XXXX XX XX/XX9999999999999</Text>\n <Text>9.XXX 9X XXX XXXXXXXXX XXXXXXXX</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXXX XXX XXXX</Text>\n <Text>XXXX XXX XXX</Text>\n <Text>9.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>9.XXX 9X 99999999</Text>\n <Text>9.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>9.XXX 9X X/ XXXX XXX99 9999999999 X 99.99</Text>\n <Text>9.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>99.XXX 9X 99999999</Text>\n <Text>99.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>99.XXX XXXX 9X XXXX XXXXXXXXXXX XX XXXXXXX XXX</Text>\n <Text>99.XXX XXXX 9X XX XXXXXXXX XXX XX XXXXXX XX XXXXXXXXX XXXXXX</Text>\n <Text>99.XXX XXXX 9X XX XXXXXX XX XXXX XXXX XXX XX XXXX XXX XX XXXXX</Text>\n <Text>99.XXX XXXX 9X XXXX XXX XX XXX XXXXXXX</Text>\n <Text>GENERAL FACTS</Text>\n <Text>9.XXX XX XXXX 99999999 XXXXXXXXXXX XXXXX XXX 9XXX</Text>\n <Text>9.XXX XX XXXX XX999</Text>\n <Text>9.XXX XX XXXX 999999999-</Text>\n <Text>REMARKS</Text>\n <Text>9.\x87XX XXXXXX XXXXXXX XXX XXXXXXXXXX XXXXX XX XX XXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXX XXXXX XXX XXXXXXX XX XXX XX XXXXX</Text>\n <Text>9.\x879 XXXXX XXXXXXXXXXX X XX XXXXX XX XXXXXXX</Text>\n <Text>9.\x87XX XXXX XX XXX XX XXXX X XXXXXX, XX XX XXXXX XXXXXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXXXXXX X XX XXXXXXXXX XXXX XX XXXXXX</Text>\n <Text>9.\x87XX XXXXX XX XX XXXXXX</Text>\n <Text>9.\x87**XX XXXXXXXXX XXXXX XXXXX XX 99 XXX XXXXX XX XX XXXXXX**</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX XXXXX</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX</Text>\n <Text>99.\x87XXXXX, XXXXXXXXXXX XXX XXXXXXXXXXXXXX XXXXXXX</Text>\n <Text>99.\x87XX XXXXXXXXXXX XXXXX XXXXXXXXXXX XX XXXXXXXXXXX</Text>\n <Text>99.\x87XXXXXXX</Text>\n <Text>99..XX99XXXXXXX XXXXXX</Text>\n <Text>99..XX-99</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999.99</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.XXXXX/</Text>\n <Text>99..XX-XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999.99</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X-XXXX/9999999999999/9XXX*XXX/9XXX*XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX999.99</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99..XX99-XXXXXX-999.99-9999</Text>\n <Text>99.X-XXX</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99.99/ 9999.99/ 999.99/X999.99/</Text>\n <Text>X999.99/XXX/XXXX9999999999999999 9.9XXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 99.99/ 9999.99/ 9.99/X999.99/</Text>\n <Text>X999.99/XXX/XXXX9999999999999999 9.9XXXXX XXXXXXX XXXXXXX</Text>\n <Text>/9/X/X-9999999999999/99</Text>\n <Text>9. XX\x879999999999/ 9.99/ 999.99/ 9.99/X999.99/X9.9</Text>\n <Text>9/XXX/XXXX9999999999999999 9.9XXXXX XXXXXXX XXXXXXX/9/X/X</Text>\n <Text>XX</Text>\n <Text>RECEIVED FROM - XXXXXXX XXXXXX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 XXXXXX X</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
3251
+ body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>f72193ed-73f9-4fe8-9ed8-bdbec43a7259</eb:ConversationId><eb:Service>QueueAccessLLSRQ</eb:Service><eb:Action>QueueAccessLLSRS</eb:Action><eb:MessageData><eb:MessageId>1247355105544140700</eb:MessageId><eb:Timestamp>2026-11-02T02:55:54</eb:Timestamp><eb:RefToMessageId>mid:44b2358f-b88b-47b5-bcf9-120cd2174325</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><QueueAccessRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.1">\n <stl:ApplicationResults status="Complete">\n <stl:Success timeStamp="2026-11-02T02:55:54Z"/>\n </stl:ApplicationResults>\n <Line>\n <DateTime>2026-10-09T12:42</DateTime>\n <POS>\n <Source AgentSine="AAA" PseudoCityCode="XXXX"/>\n </POS>\n <UniqueID ID="AAAAAD"/>\n </Line>\n <Paragraph>\n <Text>084 RATE/CONFIRMATION NUMBER RTND</Text>\n <Text>9.9XXXXX XXXXXXX/XXXXXXX</Text>\n <Text>9 XXX XX 99XXX X XX9 XXX/XXXX XXXXX</Text>\n <Text>TKT/TIME LIMIT</Text>\n <Text>9.X-99XXX-9XXX*XXX</Text>\n <Text>PHONES</Text>\n <Text>9.XXX999 9999999-X</Text>\n <Text>XXXXXXXXX XXXXXX *XX XX XXXXXXX</Text>\n <Text>PASSENGER EMAIL DATA EXISTS *PE TO DISPLAY ALL</Text>\n <Text>XXXXXXXX XXXXXX - 999999</Text>\n <Text>INVOICED</Text>\n <Text>ADDRESS</Text>\n <Text>XXXXXXXXXXX XXXXX XX XX XX</Text>\n <Text>XXXXXXX XXXXXXXXXXXX XXXXX 99</Text>\n <Text>XXX. XXX XXXXXXX</Text>\n <Text>XXXXXXX, XXX X.X. 99999</Text>\n <Text>XXXXX XXXXX XXXXXX XXXXXX - XXXXXX</Text>\n <Text>XXXXXX XXXXXX -</Text>\n <Text>\xA4 XXXXXX XXXXXX</Text>\n <Text>XXXXXXXX XXXXXXXX XXXX XXXXXX *XX XX XXXXXXX XXX</Text>\n <Text>XXXXXXX,XXXXXX,XXX/XX XXXXXXXXXX XXXXX XXXX XXXXX</Text>\n <Text>*XX XX XXXXXXX XXX</Text>\n <Text>XXXXXXXX XXXX XXXXXX *X9X XX *X9X XX XXXXXXX</Text>\n <Text>AA FACTS</Text>\n <Text>XXXX XXXX XXXXXX - XXXXXX XXX *X9 XX XXXX</Text>\n <Text>9.XXX XXXX XX XX/XX9999999999999</Text>\n <Text>9.XXX 9X XXX XXXXXXXXX XXXXXXXX</Text>\n <Text>9.XXX XXXX 9X XXXX XX 99XXX99 9999XXX XXX 9-999XXXX XXX XXXX</Text>\n <Text>XXXX XXX XXX</Text>\n <Text>9.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>9.XXX 9X 99999999</Text>\n <Text>9.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>9.XXX 9X X/ XXXX XXX99 9999999999 X 99.99</Text>\n <Text>9.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>99.XXX 9X 99999999</Text>\n <Text>99.XXX 9X XXXXXX XX XXXXXXXXX XXXXXXXX 9999999999999 XXXXXX 99</Text>\n <Text>X</Text>\n <Text>99.XXX XXXX 9X XXXX XXXXXXXXXXX XX XXXXXXX XXX</Text>\n <Text>99.XXX XXXX 9X XX XXXXXXXX XXX XX XXXXXX XX XXXXXXXXX XXXXXX</Text>\n <Text>99.XXX XXXX 9X XX XXXXXX XX XXXX XXXX XXX XX XXXX XXX XX XXXXX</Text>\n <Text>99.XXX XXXX 9X XXXX XXX XX XXX XXXXXXX</Text>\n <Text>GENERAL FACTS</Text>\n <Text>9.XXX XX XXXX 99999999 XXXXXXXXXXX XXXXX XXX 9XXX</Text>\n <Text>9.XXX XX XXXX XX999</Text>\n <Text>9.XXX XX XXXX 999999999-</Text>\n <Text>REMARKS</Text>\n <Text>9.\x87XX XXXXXX XXXXXXX XXX XXXXXXXXXX XXXXX XX XX XXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXX XXXXX XXX XXXXXXX XX XXX XX XXXXX</Text>\n <Text>9.\x879 XXXXX XXXXXXXXXXX X XX XXXXX XX XXXXXXX</Text>\n <Text>9.\x87XX XXXX XX XXX XX XXXX X XXXXXX, XX XX XXXXX XXXXXXXX</Text>\n <Text>9.\x87XX XXXXXXXXX XXXXXXXX X XX XXXXXXXXX XXXX XX XXXXXX</Text>\n <Text>9.\x87XX XXXXX XX XX XXXXXX</Text>\n <Text>9.\x87**XX XXXXXXXXX XXXXX XXXXX XX 99 XXX XXXXX XX XX XXXXXX**</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX XXXXX</Text>\n <Text>9.\x87XX XXXXXX XXXXXXXXXXXXXXX XXXXX XX XXXXXXXXXXX 9 XXX</Text>\n <Text>99.\x87XXXXX, XXXXXXXXXXX XXX XXXXXXXXXXXXXX XXXXXXX</Text>\n <Text>99.\x87XX XXXXXXXXXXX XXXXX XXXXXXXXXXX XX XXXXXXXXXXX</Text>\n <Text>99.\x87XXXXXXX</Text>\n <Text>99..XX99XXXXXXX XXXXXX</Text>\n <Text>99..XX-99</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999.99</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.XXXXX/</Text>\n <Text>99..XX-XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX9999.99</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X-XXXX/9999999999999/9XXX*XXX/9XXX*XXX</Text>\n <Text>99.X-XXXX-XXXX/XX9999/99XXX/99999999999999999999</Text>\n <Text>99.X- XXXX-XXX/999999/99/XXX999.99</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99.X- XXXX-XXX XXX XXXXXXXX/</Text>\n <Text>99..XX99-XXXXXX-999.99-9999</Text>\n <Text>99.X-XXX</Text>\n <Text>XXXXXXXXXX XXXX</Text>\n <Text>9. XX\x879999999999/ 99.99/ 9999.99/ 999.99/X999.99/</Text>\n <Text>X999.99/XXX/XXXX9999999999999999 9.9XXXX/9/X/X</Text>\n <Text>9. XX\x879999999999/ 99.99/ 9999.99/ 9.99/X999.99/</Text>\n <Text>X999.99/XXX/XXXX9999999999999999 9.9XXXXX XXXXXXX XXXXXXX</Text>\n <Text>/9/X/X-9999999999999/99</Text>\n <Text>9. XX\x879999999999/ 9.99/ 999.99/ 9.99/X999.99/X9.9</Text>\n <Text>9/XXX/XXXX9999999999999999 9.9XXXXX XXXXXXX XXXXXXX/9/X/X</Text>\n <Text>XX</Text>\n <Text>RECEIVED FROM - XXXXXXX XXXXXX</Text>\n <Text>9XXX.9XXX*XXX 9999/99XXX99 AAAAAD H</Text>\n </Paragraph>\n</QueueAccessRS></soap-env:Body></soap-env:Envelope>'
2838
3252
  },
2839
3253
  {
2840
3254
  operation: "queue.ignore",
@@ -2848,7 +3262,8 @@ var queue_production_walk_default = {
2848
3262
  attempts: 1,
2849
3263
  body: '<?xml version="1.0" encoding="UTF-8"?>\n<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1"><eb:From><eb:PartyId eb:type="URI"/></eb:From><eb:To><eb:PartyId eb:type="URI"/></eb:To><eb:CPAId>XXXX</eb:CPAId><eb:ConversationId>f72193ed-73f9-4fe8-9ed8-bdbec43a7259</eb:ConversationId><eb:Service eb:type="sabreXML">Session</eb:Service><eb:Action>SessionCloseRS</eb:Action><eb:MessageData><eb:MessageId>1247386105549450300</eb:MessageId><eb:Timestamp>2026-11-02T02:55:54</eb:Timestamp><eb:RefToMessageId>mid:a8b7ba31-e1bb-4f9c-81c6-b9ff8dcea4c4</eb:RefToMessageId></eb:MessageData></eb:MessageHeader><wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">[REDACTED]</wsse:BinarySecurityToken></wsse:Security></soap-env:Header><soap-env:Body><SessionCloseRS xmlns="http://www.opentravel.org/OTA/2002/11" version="1" status="Approved"/></soap-env:Body></soap-env:Envelope>'
2850
3264
  }
2851
- ]
3265
+ ],
3266
+ postprocessed: "2026-11-06 (#166): la anonimizaci\xF3n de esta corrida enmascar\xF3 la l\xEDnea de firma entera. Se le devolvi\xF3 la forma (alias del localizador y la H final) con la regla que hoy aplica createAnonymizer: el alias de cada sobre sale de su Line/UniqueID. Firmas corregidas: 4."
2852
3267
  };
2853
3268
 
2854
3269
  // src/testing/fixtures.ts
@@ -2868,7 +3283,10 @@ var queueFixtures = Object.freeze({
2868
3283
  placeWithoutInstructionCodeInside: fixture(queue_production_place_sin_pic_adentro_default)
2869
3284
  });
2870
3285
  export {
3286
+ createAnonymizer,
2871
3287
  createQueueFake,
3288
+ isSafeHostLine,
3289
+ queueFakePnrs,
2872
3290
  queueFixtures
2873
3291
  };
2874
3292
  //# sourceMappingURL=testing.js.map