diff --git a/.gitignore b/.gitignore
index e0c520e..7f3551a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,6 +39,7 @@ Pods/
# APK files
apps/
+airlines/
# Claude
.claude/
diff --git a/AIRLINE_API_SPEC.md b/AIRLINE_API_SPEC.md
deleted file mode 100644
index df12197..0000000
--- a/AIRLINE_API_SPEC.md
+++ /dev/null
@@ -1,792 +0,0 @@
-# Airline Flight Load API Specification
-
-Integration-ready API reference for querying flight loads, standby lists, and seat availability across 7 airlines. All endpoints confirmed working as of April 2026.
-
----
-
-## Architecture Overview
-
-All airlines except Spirit require **Playwright** (headless browser) to bypass Akamai TLS fingerprinting. The pattern is:
-1. Navigate to the airline's domain to establish a browser session
-2. Use `page.evaluate(async () => { const r = await fetch(...); return r.json(); })` to call APIs from within the browser context
-
-Spirit works with plain HTTP requests (curl/fetch).
-
----
-
-## UNITED AIRLINES
-
-### Base Setup
-```
-Domain: https://www.united.com
-Auth: Anonymous token (no login required)
-Method: Playwright → navigate to united.com → page.evaluate(fetch)
-```
-
-### Step 1: Get Token
-```
-GET /api/auth/anonymous-token
-Headers: none required
-```
-**Response:**
-```json
-{
- "data": {
- "token": {
- "hash": "DAAAA...",
- "expiresAt": "2026-04-08T19:42:57Z"
- }
- }
-}
-```
-Token is valid ~30 minutes. Refresh as needed.
-
-### Step 2: Search Flights by Route
-```
-GET /api/flightstatus/status/{flightNumber}/{date}?carrierCode=UA&useLegDestDate=true
-
-Path params:
- flightNumber: "2238"
- date: "2026-04-08"
-
-Headers:
- x-authorization-api: bearer {token.hash}
- Accept: application/json
-```
-**Response:** Flight status with departure/arrival times, gates, terminals, aircraft type, tail number, delays.
-
-### Step 3: Get Flight Loads + Standby List
-```
-GET /api/flightstatus/upgradeListExtended?flightNumber={num}&flightDate={YYYY-MM-DD}&fromAirportCode={origin}
-
-Headers:
- x-authorization-api: bearer {token.hash}
- Accept: application/json
-```
-**Response:**
-```json
-{
- "segment": {
- "airlineCode": "UA",
- "flightNumber": 2238,
- "flightDate": "20260408",
- "departureAirportCode": "EWR",
- "arrivalAirportCode": "LAX",
- "equipmentDescriptionLong": "Boeing 777-200ER",
- "departed": false
- },
- "pbts": [
- {
- "cabin": "Front",
- "capacity": 50,
- "authorized": 50,
- "booked": 50,
- "held": 0,
- "reserved": 0,
- "revenueStandby": 0,
- "waitList": 0,
- "jump": 0,
- "group": 0,
- "ps": 1,
- "sa": 5
- },
- {
- "cabin": "Middle",
- "capacity": 24,
- "authorized": 24,
- "booked": 16,
- "held": 0,
- "reserved": 0,
- "revenueStandby": 0,
- "waitList": 0,
- "jump": 0,
- "group": 0,
- "ps": 0,
- "sa": 0
- },
- {
- "cabin": "Rear",
- "capacity": 202,
- "authorized": 202,
- "booked": 164,
- "held": 0,
- "reserved": 0,
- "revenueStandby": 2,
- "waitList": 0,
- "jump": 0,
- "group": 0,
- "ps": 0,
- "sa": 4
- }
- ],
- "checkInSummaries": [
- {
- "cabin": "Front",
- "capacity": 50,
- "total": 50,
- "etktPassengersCheckedIn": 50,
- "revStandbyCheckedInWithoutSeats": 0,
- "nonRevStandbyCheckedInWithoutSeats": 0,
- "children": 0,
- "infants": 0,
- "bags": 0
- }
- ],
- "numberOfCabins": 3,
- "front": {
- "cleared": [
- {
- "currentCabin": "Front",
- "bookedCabin": "Rear",
- "firstName": "T",
- "lastName": "JEN",
- "passengerName": "T/JEN",
- "seatNumber": "1G",
- "clearanceType": "Upgrade",
- "skipped": false
- }
- ],
- "standby": []
- }
-}
-```
-
-### Field Reference
-| Field | Description |
-|---|---|
-| `pbts[].cabin` | "Front" (First/Polaris), "Middle" (Premium+), "Rear" (Economy) |
-| `pbts[].capacity` | Total seats in cabin |
-| `pbts[].booked` | Seats sold/assigned |
-| `pbts[].revenueStandby` | Revenue standby passengers |
-| `pbts[].sa` | Space available (non-rev standby) |
-| `pbts[].ps` | Positive space |
-| `pbts[].waitList` | Waitlisted passengers |
-| `front.cleared[]` | Passengers cleared for upgrade |
-| `front.standby[]` | Passengers on standby |
-
-### Derived Values
-```
-availableSeats = capacity - booked
-loadFactor = booked / capacity
-```
-
----
-
-## AMERICAN AIRLINES
-
-### Base Setup
-```
-Domain: https://cdn.flyaa.aa.com
-Auth: None required
-Method: Playwright → set mobile UA headers → navigate to cdn.flyaa.aa.com → page.evaluate(fetch)
-
-Required context headers (set via page.context().setExtraHTTPHeaders):
- User-Agent: Android/2025.31 Pixel 7|14|1080|2400|1.0|AmericanAirlines
- x-clientid: MOBILE
- Accept: application/json
- Content-Type: application/json
- Device-ID: {any-uuid}
-```
-
-### Step 1: Search Flights by Route
-```
-GET /apiv2/mobile-flifo/flightSchedules/v1.0?origin={ORIG}&destination={DEST}&departureDay={D}&departureMonth={M}&searchType=schedule&noOfFlightsToDisplay=20
-```
-**Response:**
-```json
-{
- "flightSchedules": {
- "flights": [
- [{
- "flightKey": "AA:3390:2026-04-09:DFW:0",
- "operatingCarrierCode": "AA",
- "operatingCarrierName": "AMERICAN EAGLE",
- "marketingCarrierCode": "AA",
- "flightNumber": "3390",
- "originAirportCode": "DFW",
- "originCity": "Dallas/ Fort Worth",
- "destinationAirportCode": "IAH",
- "destinationCity": "Houston",
- "departDate": "2026-04-09T07:01:00.000-05:00",
- "arrivalDate": "2026-04-09T08:20:00.000-05:00",
- "showUpgradeStandbyList": false,
- "allowFSN": false
- }]
- ]
- }
-}
-```
-
-### Step 2: Get Waitlist + Available Seats
-```
-GET /api/mobile/loyalty/waitlist/v1.2?carrierCode=AA&flightNumber={NUM}&departureDate={YYYY-MM-DD}&originAirportCode={ORIG}&destinationAirportCode={DEST}
-
-Additional headers:
- x-referrer: fs
-```
-**Response:**
-```json
-{
- "relevantList": "First",
- "footer": [
- "If your upgrade has cleared or you clear the waitlist, please refresh your mobile boarding pass.",
- "The order of names may change as additional customers check in."
- ],
- "waitList": [
- {
- "listName": "First",
- "seatsAvailableLabel": "Available seats",
- "seatsAvailableValue": 1,
- "seatsAvailableSemanticColor": "failure",
- "passengers": [
- {"order": 1, "displayName": "BRI, K", "cleared": false, "seat": null, "highlighted": false},
- {"order": 2, "displayName": "MAT, R", "cleared": false, "seat": null, "highlighted": false}
- ]
- },
- {
- "listName": "Standby",
- "seatsAvailableLabel": "Available seats",
- "seatsAvailableValue": 45,
- "seatsAvailableSemanticColor": "success",
- "passengers": [
- {"order": 1, "displayName": "MIT, R", "cleared": false, "seat": null, "highlighted": false},
- {"order": 2, "displayName": "MAR, M", "cleared": false, "seat": null, "highlighted": false}
- ]
- }
- ]
-}
-```
-
-### Field Reference
-| Field | Description |
-|---|---|
-| `waitList[].listName` | "First", "Standby", etc. |
-| `waitList[].seatsAvailableValue` | Number of open seats for that class |
-| `waitList[].seatsAvailableSemanticColor` | "success" (green, many), "warning" (yellow, few), "failure" (red, <=1) |
-| `waitList[].passengers[].displayName` | Passenger name (LAST, F) |
-| `waitList[].passengers[].order` | Position on list (1-based) |
-| `waitList[].passengers[].cleared` | true if cleared from list |
-| `waitList[].passengers[].seat` | Seat number if cleared |
-
----
-
-## SPIRIT AIRLINES
-
-### Base Setup
-```
-Domain: https://api.spirit.com
-Auth: APIM subscription key (no login required)
-Method: Plain HTTP (curl/fetch) — no Playwright needed
-```
-
-### Step 1: Get Flight Status
-```
-POST https://api.spirit.com/customermobileprod/2.8.0/v3/GetFlightInfoBI
-
-Headers:
- Content-Type: application/json
- Ocp-Apim-Subscription-Key: c6567af50d544dfbb3bc5dd99c6bb177
- Platform: Android
-
-Body:
-{
- "departureStation": "FLL",
- "arrivalStation": "ATL",
- "departureDate": "2026-04-08"
-}
-```
-**Response:**
-```json
-{
- "getFlightInfoBIResult": [
- {
- "flightNumber": "NK204",
- "journeyID": 1,
- "departureStationCode": "FLL",
- "arrivalStationCode": "ATL",
- "departureGate": "F4",
- "arrivalGate": "C4",
- "departureTerminal": "4",
- "arrivalTerminal": "N",
- "legStatus": "Arrived",
- "departureTime": "8:57am",
- "arrivalTime": "11:04am",
- "scheduledDeparture": "scheduled at 8:24am",
- "scheduledArrival": "scheduled at 10:22am",
- "departureCity": "Fort Lauderdale, FL",
- "arrivalCity": "Atlanta, GA",
- "flightStatusColor": "#FF9500",
- "totalDurationMinutes": 127,
- "departureDateTime": "2026-04-08T08:57:00",
- "arrivalDateTime": "2026-04-08T11:04:00"
- }
- ]
-}
-```
-
-### Step 2: Get Station/Route Network
-```
-GET https://api.spirit.com/customermobileprod/2.8.0/v1/stations
-
-Headers:
- Ocp-Apim-Subscription-Key: c6567af50d544dfbb3bc5dd99c6bb177
-```
-Returns all Spirit stations with airport codes, coordinates, city names, and which routes connect to each station.
-
-### Notes
-- Spirit is a ULCC — no standby lists or upgrade waitlists
-- Seat-level availability requires a booking session + Akamai bypass (not publicly accessible)
-- The APIM key was decrypted from the native library in the Android APK
-
----
-
-## KOREAN AIR
-
-### Base Setup
-```
-Domain: https://www.koreanair.com
-Auth: None required for flight status; minimal headers
-Method: Playwright → navigate to koreanair.com → page.evaluate(fetch)
-```
-
-### Step 1: Search Flights
-```
-POST /api/fs/scheduleFlightSearch/flight/status/app
-
-Headers:
- Content-Type: application/json
- Accept: application/json
- channel: app
-
-Body (by flight number):
-{
- "departureDate": "20260408",
- "departureLocationCode": "",
- "arrivalLocationCode": "",
- "flightNumber": "017",
- "searchOption": "FLTNUM"
-}
-
-Body (by route):
-{
- "departureDate": "20260408",
- "departureLocationCode": "ICN",
- "arrivalLocationCode": "LAX",
- "flightNumber": "",
- "searchOption": "ROUTE"
-}
-```
-**Response:**
-```json
-{
- "scheduleInformation": {
- "flightInformation": {
- "flightDetailsList": [
- {
- "departureAirport": "ICN",
- "arrivalAirport": "LAX",
- "departureDate": "20260408",
- "departureTime": "1430",
- "arrivalTime": "0940",
- "flightNumber": "017",
- "flyingTime": "1110",
- "status": {"code": "ARV", "codeByUI": "ARV"},
- "cabinClassInfoList": [
- {"cabinClassOfService": "1"},
- {"cabinClassOfService": "2"},
- {"cabinClassOfService": "3"}
- ],
- "scheduleFlightUIInfoMsOutVo": {
- "flightStatus": "arrived",
- "departureUIInfo": {
- "scheduledTime": "14:30",
- "actualTime": "14:27"
- },
- "arrivalUIInfo": {
- "scheduledTime": "09:40",
- "actualTime": "09:47"
- }
- }
- }
- ]
- }
- }
-}
-```
-
-### Step 2: Get Seat Count
-```
-POST /api/et/ibeSupport/flightSeatCount
-
-Headers:
- Content-Type: application/json
- Accept: application/json
- channel: pc
-
-Body:
-{
- "carrierCode": "KE",
- "flightNumber": "017",
- "departureAirport": "ICN",
- "arrivalAirport": "LAX",
- "departureDate": "20260409"
-}
-```
-**Response:**
-```json
-{
- "seatCount": 0,
- "carrierCode": "KE",
- "flightNumber": "017"
-}
-```
-Note: `seatCount` returns available seats. Returns 0 for dates too far out — works best within 24-48 hours of departure.
-
-### Step 3: Get Availability
-```
-POST /api/fs/scheduleFlightSearch/sdcAirMultiAvailability
-
-Headers:
- Content-Type: application/json
- Accept: application/json
- channel: pc
-
-Body:
-{
- "departureDate": "20260409",
- "departureLocationCode": "ICN",
- "arrivalLocationCode": "LAX",
- "flightNumber": "001",
- "searchOption": "FLTNUM"
-}
-```
-
----
-
-## Playwright Integration Pattern
-
-All airlines except Spirit use the same Playwright wrapper pattern:
-
-```javascript
-const { chromium } = require('playwright');
-
-async function queryAirline(airlineDomain, setupHeaders, apiCall) {
- const browser = await chromium.launch({ headless: true });
- const context = await browser.newContext();
-
- if (setupHeaders) {
- await context.setExtraHTTPHeaders(setupHeaders);
- }
-
- const page = await context.newPage();
- await page.goto(airlineDomain);
- await page.waitForTimeout(5000);
-
- const result = await page.evaluate(apiCall);
-
- await browser.close();
- return result;
-}
-
-// UNITED example:
-const unitedLoads = await queryAirline(
- 'https://www.united.com/en/us/flightstatus',
- null,
- async () => {
- const tokenResp = await fetch('/api/auth/anonymous-token');
- const { data } = await tokenResp.json();
- const token = data.token.hash;
-
- const resp = await fetch(
- '/api/flightstatus/upgradeListExtended?flightNumber=2238&flightDate=2026-04-08&fromAirportCode=EWR',
- { headers: { 'Accept': 'application/json', 'x-authorization-api': 'bearer ' + token } }
- );
- return resp.json();
- }
-);
-
-// AMERICAN example:
-const aaLoads = await queryAirline(
- 'https://cdn.flyaa.aa.com/apiv2/mobile-flifo/flightSchedules/v1.0?origin=DFW&destination=IAH&departureDay=9&departureMonth=4&searchType=schedule&noOfFlightsToDisplay=20',
- {
- 'User-Agent': 'Android/2025.31 Pixel 7|14|1080|2400|1.0|AmericanAirlines',
- 'x-clientid': 'MOBILE',
- 'Accept': 'application/json',
- 'Device-ID': 'device-001'
- },
- async () => {
- const resp = await fetch(
- 'https://cdn.flyaa.aa.com/api/mobile/loyalty/waitlist/v1.2?carrierCode=AA&flightNumber=2209&departureDate=2026-04-08&originAirportCode=DFW&destinationAirportCode=IAH',
- { headers: { 'Accept': 'application/json', 'x-referrer': 'fs' } }
- );
- return resp.json();
- }
-);
-
-// KOREAN AIR example:
-const keStatus = await queryAirline(
- 'https://www.koreanair.com',
- null,
- async () => {
- const resp = await fetch('/api/fs/scheduleFlightSearch/flight/status/app', {
- method: 'POST',
- headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'channel': 'app' },
- body: JSON.stringify({
- departureDate: '20260408',
- flightNumber: '017',
- searchOption: 'FLTNUM',
- departureLocationCode: '',
- arrivalLocationCode: ''
- })
- });
- return resp.json();
- }
-);
-```
-
-### Spirit (plain HTTP, no Playwright):
-```javascript
-const spiritStatus = await fetch('https://api.spirit.com/customermobileprod/2.8.0/v3/GetFlightInfoBI', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- 'Ocp-Apim-Subscription-Key': 'c6567af50d544dfbb3bc5dd99c6bb177',
- 'Platform': 'Android'
- },
- body: JSON.stringify({
- departureStation: 'FLL',
- arrivalStation: 'ATL',
- departureDate: '2026-04-08'
- })
-}).then(r => r.json());
-```
-
----
-
-## EMIRATES
-
-### Base Setup
-```
-Domain: https://www.emirates.com
-Auth: None required for flight status
-Method: Plain HTTP (curl/fetch) — no Playwright needed
-```
-
-### Step 1: Flight Status
-```
-GET https://www.emirates.com/service/flight-status?departureDate={YYYY-MM-DD}&flight={flightNumber}
-
-Headers: none required
-```
-**Response:**
-```json
-{
- "results": [{
- "airlineDesignator": "EK",
- "flightNumber": "0221",
- "flightId": "2026040700221DXB",
- "flightDate": "2026-04-07",
- "flightRoute": [{
- "legNumber": "1",
- "originActualAirportCode": "DXB",
- "destinationActualAirportCode": "DFW",
- "originPlannedAirportCode": "DXB",
- "destinationPlannedAirportCode": "DFW",
- "statusCode": "ARVD",
- "flightPosition": 100,
- "totalTravelDuration": "17:30",
- "isIrregular": "false",
- "departureTime": {
- "schedule": "2026-04-08T01:10:00Z",
- "estimated": "2026-04-08T01:15:00Z",
- "actual": "2026-04-08T01:12:00Z"
- },
- "arrivalTime": {
- "schedule": "2026-04-08T09:40:00Z",
- "estimated": "2026-04-08T09:34:00Z",
- "actual": "2026-04-08T09:32:00Z"
- },
- "departureTerminal": "Terminal 3",
- "arrivalTerminal": "Terminal D",
- "flightOutageType": 0
- }]
- }],
- "metaLinks": []
-}
-```
-
-### Step 2: Flight Load / Staff Standby (requires PNR)
-```
-Mobile API base: https://mobileapp.emirates.com/
-
-GET /olci/v1/checkin/staffinformation/{pnr}/{lastName}
-```
-Returns `FlightLoadResponse` with:
-- `isStaffSubLoadTableAvl` - whether subload table is available
-- `staffPax.passengers[]` - staff passenger list with check-in status
-- `flights[]` - per-flight load data
-- Per passenger: `currentPriority`, `totalPriority`, `status`, `flightNumber`
-
-### Notes
-- Flight status works from **plain curl** with zero auth — simplest of all airlines
-- Staff standby/flight load data requires PNR + last name (mobile app only)
-- The app has a full staff travel system: standby priority tracking, class downgrade acceptance, subload questionnaires
-- Internal backend leaked in response: `business-services-cache-bex-prod.dub.prd01.digitalattract.aws.emirates.prd`
-
----
-
-## ALASKA AIRLINES
-
-### Base Setup
-```
-Domain: https://www.alaskaair.com
-Mobile API: /1/guestservices/customermobile/
-Auth: Requires booking confirmation code for load data
-Method: Playwright (website uses shadow DOM web components)
-```
-
-### Step 1: Flight Status
-```
-GET /1/guestservices/customermobile/flights/status/{airlineCode}/{flightNumber}/{departureDate}
-
-Example: /1/guestservices/customermobile/flights/status/AS/1084/2026-04-08
-```
-
-### Step 2: Flight Status v2 (by route)
-```
-POST /1/guestservices/customermobile/mobileservices/reservation/flights/status
-
-Body:
-{
- "airlineCode": "AS",
- "flightNumber": "1084",
- "departureDate": "2026-04-08",
- "departureCityCode": "SEA",
- "arrivalCityCode": "LAX"
-}
-```
-Response includes `showPriorityList` boolean indicating if standby list is available for that flight.
-
-### Step 3: Seat Availability / Remaining Seats (requires confirmation code)
-```
-POST /1/guestservices/customermobile/seats/SeatUpgradesByCabinRec/{confirmationCode}
-
-Body:
-{
- "adobeMarketingCloudVisitorID": "{visitor_id}"
-}
-```
-**Response:**
-```json
-[
- {
- "flightNumber": 1084,
- "origin": "SEA",
- "destination": "LAX",
- "cabinType": "First",
- "remainingSeats": 4,
- "upgradePrice": 149.00,
- "equipment": "Boeing 737-900ER"
- }
-]
-```
-
-### Notes
-- Flight status is public, but `remainingSeats` data requires a valid confirmation code
-- Mobile API paths start with `/1/guestservices/customermobile/`
-- Uses Ktor HTTP client (modern Kotlin)
-- Website uses deep shadow DOM -- Playwright automation is complex
-
----
-
-## JETBLUE
-
-### Base Setup
-```
-API Domain: https://az-api.jetblue.com
-Auth: API key (no login required)
-Method: Plain HTTP (curl/fetch) — no Playwright needed
-API Key: 49fc015f1ba44abf892d2b8961612378
-```
-
-### Step 1: Flight Status by Number
-```
-GET https://az-api.jetblue.com/flight-status/get-by-number?number={flightNumber}&date={YYYY-MM-DD}
-
-Headers:
- apikey: 49fc015f1ba44abf892d2b8961612378
- Accept: application/json
-```
-**Response:**
-```json
-{
- "flights": [{
- "tripOrigin": "LAX",
- "tripDestination": "JFK",
- "isConnecting": false,
- "isThroughFlight": false,
- "legs": [{
- "flightNo": "524",
- "flightStatus": "IN FLIGHT",
- "flightStatusGroup": "standardPostDeparture",
- "originAirport": "LAX",
- "originGate": "16",
- "originTerminal": "1",
- "actualDeparture": "2026-04-08T13:19:00-07:00",
- "scheduledDeparture": "2026-04-08T13:27:00-07:00",
- "doorCloseTime": "2026-04-08T13:12:00-07:00",
- "boardingTime": "2026-04-08T12:42:00-07:00",
- "destinationAirport": "JFK",
- "destinationGate": "518",
- "destinationTerminal": "5",
- "actualArrival": "2026-04-08T21:37:00-04:00",
- "scheduledArrival": "2026-04-08T21:55:00-04:00",
- "baggageClaim": "4",
- "equipmentType": "3NL",
- "tailNumber": "4074"
- }]
- }]
-}
-```
-
-### Step 2: Priority List (Standby/Upgrade - requires check-in session)
-The app has `retrievePriorityList` which returns `PriorityListPassenger`:
-```json
-{
- "shortLastName": "DOE",
- "shortFirstName": "J",
- "code": "SA",
- "order": 1,
- "hasSeat": false
-}
-```
-This requires an active check-in session (Cookie header). Accessible during check-in flow only.
-
-### Step 3: Crystal Blue Seat Map
-```
-POST https://az-api.jetblue.com/mobile_seatmap
-Headers:
- Ocp-Apim-Subscription-Key: a5ee654e981b4577a58264fed9b1669c
- Content-Type: application/json
-```
-
-### Notes
-- Flight status works from **plain curl** with just the API key
-- Priority list requires check-in session
-- Second APIM key `a5ee654e981b4577a58264fed9b1669c` used for seat map and logging
-
----
-
-## FRONTIER AIRLINES
-
-APK not available for download from any third-party source. Frontier is a ULCC like Spirit -- minimal standby/upgrade features expected. Not yet analyzed.
-
----
-
-## Rate Limits & Best Practices
-
-- **United**: Token expires in ~30min. Cache and refresh. No known rate limit.
-- **American**: No token needed. Akamai may throttle if too many requests from same browser session. Rotate browser contexts.
-- **Spirit**: APIM key is shared across all app users. No known rate limit but don't abuse.
-- **Korean Air**: No auth needed for status endpoints. `channel` header is required.
-- **All Playwright airlines**: Reuse browser context across multiple queries to avoid re-establishing sessions. Close and recreate if you get 403s.
diff --git a/AIRLINE_INTEGRATION_GUIDE.md b/AIRLINE_INTEGRATION_GUIDE.md
new file mode 100644
index 0000000..d424bbc
--- /dev/null
+++ b/AIRLINE_INTEGRATION_GUIDE.md
@@ -0,0 +1,398 @@
+# Airline API Integration Guide
+
+Drop-in reference for integrating flight load / seat availability data from 11 airlines. Each section tells you **what works today, how to call it, what you get back, and what's blocked**. Verified 2026-04-12.
+
+---
+
+## 1. United Airlines — WORKING (best US data)
+
+**What you get:** Per-cabin capacity, booked, available, revenue standby, space-available, upgrade/standby passenger lists with names.
+
+**Auth:** Anonymous token (~30 min lifetime), Playwright required (TLS fingerprinting blocks curl).
+
+**Flow:**
+```
+GET https://www.united.com/api/auth/anonymous-token
+→ { data: { token: { hash: "DAAAA..." } } }
+
+GET https://www.united.com/api/flightstatus/upgradeListExtended
+ ?flightNumber=2238&flightDate=2026-04-08&fromAirportCode=EWR
+Headers:
+ x-authorization-api: bearer {token.hash}
+ Accept: application/json
+```
+
+**Response shape:**
+```json
+{
+ "pbts": [
+ { "cabin": "Front", "capacity": 50, "booked": 50, "revenueStandby": 0, "sa": 5, "waitList": 0 },
+ { "cabin": "Middle", "capacity": 24, "booked": 16 },
+ { "cabin": "Rear", "capacity": 202, "booked": 164, "revenueStandby": 2, "sa": 4 }
+ ],
+ "front": { "cleared": [...], "standby": [...] }
+}
+```
+
+**Derived:** `availableSeats = capacity - booked`, `loadFactor = booked / capacity`.
+
+**Cabin mapping:** `Front` = Polaris/First, `Middle` = Premium Plus, `Rear` = Economy.
+
+**Other useful endpoints:**
+- `GET /api/flightstatus/status/{num}/{date}/{origin}/{dest}?carrierCode=UA` — gates, times, equipment
+- `GET /api/flightstatus/seatmap/{num}/{date}/{origin}/{dest}?carrierCode=UA` — seat map
+
+---
+
+## 2. American Airlines — WORKING
+
+**What you get:** Waitlist per class (First, Standby), seats available per class with semantic color, passenger names + order.
+
+**Auth:** None — but mobile User-Agent is mandatory. Direct curl blocked by TLS fingerprinting; use Playwright.
+
+**Required headers (on browser context):**
+```
+User-Agent: Android/2025.31 Pixel 7|14|1080|2400|1.0|AmericanAirlines
+x-clientid: MOBILE
+Device-ID: {any-uuid}
+Accept: application/json
+```
+
+**The UA format is strict.** Any deviation returns `{"error":["Invalid user-agent header"]}` from Akamai.
+
+**Flow:**
+```
+# Step 1 — find the flight
+GET https://cdn.flyaa.aa.com/apiv2/mobile-flifo/flightSchedules/v1.0
+ ?origin=DFW&destination=IAH&departureDay=9&departureMonth=4
+ &searchType=schedule&noOfFlightsToDisplay=20
+
+# Step 2 — get waitlist + seats
+GET https://cdn.flyaa.aa.com/api/mobile/loyalty/waitlist/v1.2
+ ?carrierCode=AA&flightNumber={num}&departureDate={YYYY-MM-DD}
+ &originAirportCode={origin}&destinationAirportCode={dest}
+Headers: x-referrer: fs
+```
+
+**Response shape:**
+```json
+{
+ "waitList": [
+ {
+ "listName": "First",
+ "seatsAvailableValue": 1,
+ "seatsAvailableSemanticColor": "failure",
+ "passengers": [
+ { "order": 1, "displayName": "BRI, K", "cleared": false, "seat": null }
+ ]
+ },
+ { "listName": "Standby", "seatsAvailableValue": 45, "seatsAvailableSemanticColor": "success", "passengers": [...] }
+ ]
+}
+```
+
+`seatsAvailableSemanticColor`: `success` (many), `warning` (few), `failure` (≤1).
+
+---
+
+## 3. Alaska Airlines — WORKING (easiest integration)
+
+**What you get:** Seat map with per-seat status + `AvailableSeats` per cabin, **full standby + upgrade waitlists with passenger names**, capacity, cabin configuration.
+
+**Auth:** Static APIM key (decrypted from APK). **Plain curl works — no Playwright needed.**
+
+**Key:** `de1d0ff837444468a5ea868945aab738`
+**Header:** `Ocp-Apim-Subscription-Key: de1d0ff837444468a5ea868945aab738`
+
+### Seat map (per-seat availability)
+```bash
+curl "https://apis.alaskaair.com/1/guestservices/customermobile/viewseatmap/seatmap\
+?flightnumber=308&departureairport=SEA&arrivalairport=PSP&departuredate=2026-04-13" \
+ -H "Ocp-Apim-Subscription-Key: de1d0ff837444468a5ea868945aab738"
+```
+Per-seat status: `OCCD` (occupied), `OPEN`, `PCLA` (premium class), `PREM` (premium). Returns `AvailableSeats` per cabin section.
+
+### Standby + upgrade waitlist (the prize — **no PNR needed**)
+```bash
+curl -X POST "https://apis.alaskaair.com/1/guestservices/customermobile/seats/waitlist" \
+ -H "Ocp-Apim-Subscription-Key: de1d0ff837444468a5ea868945aab738" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "marketedByAirlineCode":"AS",
+ "departureAirportCode":"SEA",
+ "departureLocalDate":"2026-04-12",
+ "flightNumber":"308",
+ "confirmationCode": null
+ }'
+```
+
+**Response includes:**
+- `StandbyList.FlightLoad.Authorized` — cabin capacity
+- `StandbyList.FlightLoad.PremiumClassConfigured` — first-class exists
+- `StandbyList.Passengers[]` — `DisplayName`, `Position`, `Seat`, `UpgradedToPC`
+- `UpgradeList.FlightLoad.Authorized` — first-class capacity
+- `UpgradeList.Passengers[]` — upgrade waitlist
+
+**Key insight:** `confirmationCode: null` is accepted. Works for past, current, and future flights (tested 2+ weeks out).
+
+### Flight status
+```
+GET /1/guestservices/customermobile/flights/status/AS/{num}/{YYYY-MM-DD}
+```
+
+---
+
+## 4. JSX — WORKING (per-flight seat counts)
+
+**What you get:** Per-flight `availableCount` per fare class, full schedule, route network.
+
+**Auth:** Anonymous JWT (15 min idle), Playwright required for the initial token call (Akamai).
+
+**Carrier code:** X2 (ICAO: XSR).
+
+### Step 1 — get token (Playwright)
+```javascript
+await page.goto('https://www.jsx.com');
+const { data } = await page.evaluate(async () => {
+ const r = await fetch('https://api.jsx.com/api/nsk/v2/token', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
+ body: JSON.stringify({ applicationName: 'IBE', credentials: { channelType: 'DigitalWeb' } })
+ });
+ return r.json();
+});
+const token = data.token; // raw JWT, no "Bearer " prefix
+```
+
+### Step 2 — per-flight availability (GraphQL)
+```
+POST https://api.jsx.com/api/v2/graph/searchAvailability
+Headers:
+ authorization: {token}
+ Content-Type: application/json
+
+Body:
+{
+ "cachedResults": false,
+ "query": "{ availabilityv5(request: { criteria: [{ dates: { beginDate: \"2026-04-15\", endDate: \"2026-04-15\" }, stations: { originStationCodes: [\"BUR\"], destinationStationCodes: [\"LAS\"] } }], passengers: { types: [{ count: 1, type: \"ADT\" }] }, codes: { currencyCode: \"USD\" } }) { results { trips { date journeysAvailableByMarket { key value { journeyKey stops designator { arrival departure destination origin } segments { identifier { identifier carrierCode } } fares { details { availableCount classOfService productClass passengerFares { fareAmount } } } } } } } } }"
+}
+```
+
+Returns per-flight seat counts per fare class (sample: BUR→LAS 6 flights, 1–2 seats each).
+
+### Step 3 — low fare calendar (REST, simpler)
+```
+GET https://api.jsx.com/api/nsk/v1/availability/lowfare/estimate
+ ?Origin=BUR&Destination=LAS&StartDate=2026-04-15&EndDate=2026-04-18
+ &IncludeTaxesAndFees=true&PassengerCount=1&CurrencyCode=USD
+Headers: authorization: {token}
+```
+
+### Route network (GraphQL)
+`POST /api/v2/graph/primaryResources` — returns all markets + station coords.
+
+Script ready at `scripts/jsx_availability.js`.
+
+---
+
+## 5. Spirit Airlines — PARTIAL (status only, no standby)
+
+**What you get:** Flight status, station/route data. **No standby — Spirit is a ULCC and doesn't run standby lists.**
+
+**Auth:** Static APIM key (decrypted). Plain curl for GETs; POSTs mostly blocked by Akamai CyberFend sensor.
+
+**Key:** `c6567af50d544dfbb3bc5dd99c6bb177`
+
+```bash
+curl -X POST "https://api.spirit.com/customermobileprod/2.8.0/v3/GetFlightInfoBI" \
+ -H "Ocp-Apim-Subscription-Key: c6567af50d544dfbb3bc5dd99c6bb177" \
+ -H "Content-Type: application/json" \
+ -H "Platform: Android" \
+ -d '{"departureStation":"FLL","arrivalStation":"ATL","departureDate":"2026-04-08"}'
+```
+
+Seat maps require JWT + CyberFend sensor data (real device + Frida hook only).
+
+---
+
+## 6. JetBlue — PARTIAL (status yes, loads need PNR)
+
+**What you get without PNR:** Flight status, full route database (12MB of origin/dest pairs, Mint/seasonal flags).
+
+**What you get with a PNR:** Per-cabin capacity, confirmed pax, authorized seats, standby/waitlist counts, passenger names.
+
+**Auth:** Static API key.
+
+**Keys:**
+- Main: `49fc015f1ba44abf892d2b8961612378`
+- Seat map: `a5ee654e981b4577a58264fed9b1669c`
+- MYB/PNR: `45804e33f26b44d1b144090af2788abf`
+
+### Flight status (no PNR)
+```bash
+curl "https://az-api.jetblue.com/flight-status/get-by-number?number=524&date=2026-04-08" \
+ -H "apikey: 49fc015f1ba44abf892d2b8961612378"
+```
+
+### Route database (no PNR)
+```
+GET https://azrest.jetblue.com/od/od-service/routes
+```
+
+### Priority list / loads (PNR required)
+```
+POST https://jbrest.jetblue.com/lookup/itinerary
+Body: { "fName":"JOHN", "lName":"DOE", "from":"LAX", "pnr":"ABC123", "channelID":"M" }
+→ returns jbSessionId
+
+POST https://jbrest.jetblue.com/prioritylist/getPriorityList?jbSessionId={id}
+→ numberOfCapacityJ/Y, numberOfAvailableSeatsJ/Y, numberOfAuthorizedSeatsJ/Y,
+ numberOfStandbyPassengers, numberOfWaitListedPassengers, priorityListPassengers[]
+```
+
+**No public load path exists without a real PNR.**
+
+---
+
+## 7. Korean Air — PARTIAL
+
+**What you get:** Flight status, route availability. `flightSeatCount` endpoint exists but returns 0 for far-out dates (works best within 24–48 hrs of departure).
+
+**Auth:** None. `channel` header required (`app` for flight search, `pc` for seat count).
+
+```
+POST https://www.koreanair.com/api/fs/scheduleFlightSearch/flight/status/app
+Headers: channel: app
+Body: {"departureDate":"20260408","flightNumber":"017","searchOption":"FLTNUM",
+ "departureLocationCode":"","arrivalLocationCode":""}
+
+POST https://www.koreanair.com/api/et/ibeSupport/flightSeatCount
+Headers: channel: pc
+Body: {"carrierCode":"KE","flightNumber":"017","departureAirport":"ICN",
+ "arrivalAirport":"LAX","departureDate":"20260409"}
+```
+
+---
+
+## 8. Emirates — PARTIAL (zero-auth status only)
+
+**What you get:** Flight status with gates, times, equipment — zero auth, zero headers.
+
+**Staff load tables exist but are staff-travel only (PNR + last name required).**
+
+```bash
+curl "https://www.emirates.com/service/flight-status?departureDate=2026-04-08&flight=221"
+```
+
+---
+
+## 9. Delta — BLOCKED (status only, no public load path)
+
+**What you get:** Rich flight status (gates, times, equipment, amenities per cabin). **Zero seat counts anywhere public.**
+
+**Auth:** Mobile User-Agent only for status. Shop/standby data requires SkyMiles auth + Akamai BMP sensor (blocked from scripts).
+
+**Mobile UA:** `FlyDelta/24.10.1 (Pixel 7; Android 14; Build/UQ1A.240205.004)`
+
+```bash
+curl -X POST "https://mobile-api.delta.com/flight-status-mobile/details" \
+ -H "Content-Type: application/json" \
+ -H "User-Agent: FlyDelta/24.10.1 (Pixel 7; Android 14; Build/UQ1A.240205.004)" \
+ -d '{"airlineCode":"DL","flightNumber":"996","flightOriginDate":"2026-04-12"}'
+```
+
+**Load data endpoints that exist but are blocked:**
+- `POST /mytrips/getUpgradeAndStandby` — needs PNR + name
+- `POST /offers/shop` — returns `seatsAvailableCount` per fare, needs SkyMiles auth + SPA session flow
+- `POST /mwsb/service/shop` — same data, same auth requirement
+
+The SkyMiles login alone is not enough — the SPA sets session state that the backend validates. Direct API calls fail even with valid auth.
+
+---
+
+## 10. British Airways — BLOCKED (no public load data)
+
+Flight availability search exists (`/sc4/baflt-paa/rs/v1/flightavailability/search`) but returns bookable fares, not load factors. Seat availability is SOAP and needs a booking reference.
+
+**Public OAuth:** `POST https://oauth.baplc.com/grant` with `client_id=baflt`
+**Legacy SOAP:** `Authorization: Basic cHVibGljOnB1YmxpYw==` (public:public)
+
+No standby/waitlist endpoint found.
+
+---
+
+## 11. Qantas — BLOCKED
+
+Seatmap endpoint returns `isSeatAvailable`/`isSeatOccupied` per seat, but requires a valid boarding pass (productId + surname). All upgrade endpoints require auth. Akamai BMP with native sensor SDK makes automation impractical.
+
+---
+
+## 12. Lufthansa — BLOCKED (developer API has maps, not occupancy)
+
+Main API behind Cloudflare WAF (403 from curl). Official developer API at `api.lufthansa.com/v1/` has seat map **layouts** but not occupancy. Seat recommendation API needs PNR.
+
+Register: https://developer.lufthansa.com/member/register (free, 6 req/sec, 1000/hr).
+
+Same backend powers Lufthansa, SWISS, Austrian, Brussels.
+
+---
+
+## Anti-bot & auth cheat sheet
+
+| Airline | Bypass | Effort |
+|------------|--------------------|---------|
+| Alaska | APIM key header | Lowest (curl works) |
+| Emirates | none | Lowest (curl works) |
+| Spirit | APIM key (GET only)| Low (curl works) |
+| JetBlue | apikey header | Low (curl works) |
+| Korean Air | `channel` header | Low (Playwright or curl) |
+| JSX | Playwright → JWT | Medium |
+| United | Playwright → token | Medium |
+| American | Playwright + mobile UA | Medium |
+| Delta | mobile UA for status; shop blocked | Low/High |
+| BA / Qantas / Lufthansa | — | N/A (no public load data) |
+
+---
+
+# Summary — what to build against
+
+## Tier 1: Plug-and-play (integrate today)
+
+| Airline | Data quality | Call pattern |
+|---------|--------------|--------------|
+| **Alaska** | ★★★★★ seat map + full standby/upgrade lists w/ names, no PNR | Plain `curl` with APIM key |
+| **United** | ★★★★★ per-cabin loads + cleared upgrades + standby list | Playwright token + API fetch |
+| **American** | ★★★★ waitlist + seats per class w/ pax names | Playwright w/ mobile UA |
+| **JSX** | ★★★★ per-flight seat counts per fare class | Playwright JWT + GraphQL |
+
+These four are the core of any flight-load product. Alaska is the easiest to integrate (pure HTTP), United returns the richest data, American is close behind, JSX is the only public source for per-flight counts on a Navitaire-hosted carrier.
+
+## Tier 2: Status only (useful, but no seat data)
+
+- **Spirit** — status/routes, no standby (ULCC)
+- **Emirates** — status, zero auth
+- **Korean Air** — status; `flightSeatCount` returns 0 far out
+- **JetBlue** — status + route DB; loads need PNR
+- **Delta** — rich status, no seat counts anywhere public
+
+## Tier 3: Blocked / not useful
+
+- **BA, Qantas, Lufthansa** — no public load data. Qantas/BA need booking ref; Lufthansa dev API is layouts only.
+
+## Recommended product shape
+
+1. Start with Alaska (easiest, 15 min to wire up).
+2. Add United for the standby/upgrade killer feature (needs Playwright worker).
+3. Layer in American for the third major US carrier.
+4. JSX as a bonus — only route pairs that JSX serves (private terminals).
+5. For Delta/JetBlue: show flight status only, note "seat data unavailable" unless you have a PNR.
+6. Use Emirates/Korean Air/Spirit for status on international/ULCC routes.
+
+## Shared integration notes
+
+- **Cache aggressively** — all four Tier 1 sources return stable data per flight-date; a 60-second cache dramatically cuts load.
+- **Token management** — United (30 min) and JSX (15 min idle) need refresh logic.
+- **Playwright workers** — run one persistent browser context per airline; reuse across requests.
+- **Alaska is the exception** — no browser, no token, just HTTP.
+
+Full endpoint-by-endpoint reference: `airlines_request.md` (1692 lines, same directory).
diff --git a/Flights/FlightsApp.swift b/Flights/FlightsApp.swift
index d6d40c1..0c1cbe2 100644
--- a/Flights/FlightsApp.swift
+++ b/Flights/FlightsApp.swift
@@ -3,12 +3,24 @@ import SwiftUI
@main
struct FlightsApp: App {
let service = FlightService()
- let database = AirportDatabase()
+ let database: AirportDatabase
let favoritesManager = FavoritesManager()
+ let loadService: AirlineLoadService
+
+ init() {
+ let db = AirportDatabase()
+ self.database = db
+ self.loadService = AirlineLoadService(airportDatabase: db)
+ }
var body: some Scene {
WindowGroup {
- ContentView(service: service, database: database, favoritesManager: favoritesManager)
+ ContentView(
+ service: service,
+ database: database,
+ loadService: loadService,
+ favoritesManager: favoritesManager
+ )
}
}
}
diff --git a/Flights/Services/AirlineLoadService.swift b/Flights/Services/AirlineLoadService.swift
index e5fef5e..17d3bb2 100644
--- a/Flights/Services/AirlineLoadService.swift
+++ b/Flights/Services/AirlineLoadService.swift
@@ -7,14 +7,16 @@ actor AirlineLoadService {
// MARK: - Properties
private let session: URLSession
+ private let airportDatabase: AirportDatabase?
private var unitedToken: (hash: String, expiresAt: Date)?
// MARK: - Init
- init() {
+ init(airportDatabase: AirportDatabase? = nil) {
let config = URLSessionConfiguration.default
config.timeoutIntervalForRequest = 15
session = URLSession(configuration: config)
+ self.airportDatabase = airportDatabase
}
// MARK: - Public Router
@@ -42,9 +44,9 @@ actor AirlineLoadService {
case "AA": return await fetchAmericanLoad(flightNumber: flightNumber, date: date, origin: origin, destination: destination)
case "NK": return await fetchSpiritStatus(origin: origin, destination: destination, date: date)
case "KE": return await fetchKoreanAirLoad(flightNumber: flightNumber, date: date, origin: origin, destination: destination)
- case "B6": return await fetchJetBlueStatus(flightNumber: flightNumber, date: date)
- case "AS": return await fetchAlaskaStatus(flightNumber: flightNumber, date: date)
- case "EK": return await fetchEmiratesStatus(flightNumber: flightNumber, date: date)
+ case "B6": return await fetchJetBlueStatus(flightNumber: flightNumber, date: date, origin: origin)
+ case "AS": return await fetchAlaskaLoad(flightNumber: flightNumber, date: date, origin: origin, destination: destination)
+ case "EK": return await fetchEmiratesStatus(flightNumber: flightNumber, date: date, origin: origin)
case "XE": return await fetchJSXLoad(flightNumber: flightNumber, date: date, origin: origin, destination: destination, departureTime: departureTime)
default:
print("[LoadService] Unsupported airline: \(code)")
@@ -64,15 +66,24 @@ actor AirlineLoadService {
do {
var request = URLRequest(url: url)
+ Self.applyUnitedBrowserHeaders(to: &request)
request.setValue("application/json", forHTTPHeaderField: "Accept")
let (data, response) = try await session.data(for: request)
- guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { return nil }
+ let http = response as? HTTPURLResponse
+ print("[UA] token HTTP status: \(http?.statusCode ?? -1), \(data.count) bytes")
+ guard http?.statusCode == 200 else {
+ if let bodyStr = String(data: data, encoding: .utf8) {
+ print("[UA] token body (first 500): \(bodyStr.prefix(500))")
+ }
+ return nil
+ }
guard let json = try JSONSerialization.jsonObject(with: data) as? [String: Any],
let dataObj = json["data"] as? [String: Any],
let tokenObj = dataObj["token"] as? [String: Any],
let hash = tokenObj["hash"] as? String else {
+ print("[UA] token JSON shape unexpected")
return nil
}
@@ -80,15 +91,32 @@ actor AirlineLoadService {
unitedToken = (hash: hash, expiresAt: Date().addingTimeInterval(25 * 60))
return hash
} catch {
+ print("[UA] token error: \(error)")
return nil
}
}
+ /// Browser-shaped headers for United. The guide notes that plain curl is
+ /// blocked by TLS fingerprinting; iOS `URLSession` has a different
+ /// fingerprint but United's Akamai rules still sniff `User-Agent` /
+ /// `Accept-Language`, so we mirror a desktop browser. Not a guarantee —
+ /// if this still fails we may need a WKWebView path like JSX.
+ private static func applyUnitedBrowserHeaders(to request: inout URLRequest) {
+ request.setValue(
+ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 "
+ + "(KHTML, like Gecko) Version/17.4 Safari/605.1.15",
+ forHTTPHeaderField: "User-Agent"
+ )
+ request.setValue("en-US,en;q=0.9", forHTTPHeaderField: "Accept-Language")
+ request.setValue("https://www.united.com/", forHTTPHeaderField: "Referer")
+ request.setValue("https://www.united.com", forHTTPHeaderField: "Origin")
+ }
+
private func fetchUnitedLoad(flightNumber: String, date: Date, origin: String) async -> FlightLoad? {
guard let token = await getUnitedToken() else { return nil }
let num = stripAirlinePrefix(flightNumber)
- let dateStr = Self.dashDateFormatter.string(from: date)
+ let dateStr = dayString(from: date, originIATA: origin)
guard let url = URL(string: "https://www.united.com/api/flightstatus/upgradeListExtended?flightNumber=\(num)&flightDate=\(dateStr)&fromAirportCode=\(origin.uppercased())") else {
return nil
@@ -96,6 +124,7 @@ actor AirlineLoadService {
do {
var request = URLRequest(url: url)
+ Self.applyUnitedBrowserHeaders(to: &request)
request.setValue("bearer \(token)", forHTTPHeaderField: "x-authorization-api")
request.setValue("application/json", forHTTPHeaderField: "Accept")
@@ -262,7 +291,7 @@ actor AirlineLoadService {
destination: String
) async -> FlightLoad? {
let num = stripAirlinePrefix(flightNumber)
- let dateStr = Self.dashDateFormatter.string(from: date)
+ let dateStr = dayString(from: date, originIATA: origin)
var components = URLComponents(string: "https://cdn.flyaa.aa.com/api/mobile/loyalty/waitlist/v1.2")
components?.queryItems = [
@@ -355,7 +384,7 @@ actor AirlineLoadService {
return nil
}
- let dateStr = Self.dashDateFormatter.string(from: date)
+ let dateStr = dayString(from: date, originIATA: origin)
let body: [String: String] = [
"departureStation": origin.uppercased(),
"arrivalStation": destination.uppercased(),
@@ -413,7 +442,7 @@ actor AirlineLoadService {
}
let num = stripAirlinePrefix(flightNumber)
- let dateStr = Self.compactDateFormatter.string(from: date)
+ let dateStr = compactDayString(from: date, originIATA: origin)
let body: [String: String] = [
"carrierCode": "KE",
@@ -423,6 +452,8 @@ actor AirlineLoadService {
"departureDate": dateStr
]
+ print("[KE] POST \(url) body: \(body)")
+
do {
var request = URLRequest(url: url)
request.httpMethod = "POST"
@@ -432,12 +463,36 @@ actor AirlineLoadService {
request.httpBody = try JSONSerialization.data(withJSONObject: body)
let (data, response) = try await session.data(for: request)
- guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { return nil }
+ let http = response as? HTTPURLResponse
+ print("[KE] HTTP status: \(http?.statusCode ?? -1), \(data.count) bytes")
- guard let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] else { return nil }
+ if let bodyStr = String(data: data, encoding: .utf8) {
+ print("[KE] body (first 1200): \(bodyStr.prefix(1200))")
+ }
- let seatCount = json["seatCount"] as? Int ?? 0
+ guard http?.statusCode == 200 else { return nil }
+ guard let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] else {
+ print("[KE] JSON parse failed")
+ return nil
+ }
+ // Guide doesn't document the response shape; try a few likely keys
+ // and fall back to scanning any top-level container for Int values
+ // named like "seatCount". Log what we see so the real shape is
+ // visible in the Xcode console on first run.
+ print("[KE] top-level keys: \(json.keys.sorted())")
+
+ let seatCount = (json["seatCount"] as? Int)
+ ?? (json["availableSeatCount"] as? Int)
+ ?? (json["totalSeatCount"] as? Int)
+ ?? ((json["data"] as? [String: Any])?["seatCount"] as? Int)
+ ?? 0
+
+ print("[KE] parsed seatCount=\(seatCount)")
+
+ // KE doesn't expose capacity/booked — report what we know as
+ // non-revenue-standby availability in an Economy-labeled cabin
+ // (matches how we presented this previously).
let cabin = CabinLoad(
name: "Economy",
capacity: 0,
@@ -455,15 +510,16 @@ actor AirlineLoadService {
seatAvailability: []
)
} catch {
+ print("[KE] error: \(error)")
return nil
}
}
// MARK: - JetBlue
- private func fetchJetBlueStatus(flightNumber: String, date: Date) async -> FlightLoad? {
+ private func fetchJetBlueStatus(flightNumber: String, date: Date, origin: String) async -> FlightLoad? {
let num = stripAirlinePrefix(flightNumber)
- let dateStr = Self.dashDateFormatter.string(from: date)
+ let dateStr = dayString(from: date, originIATA: origin)
guard let url = URL(string: "https://az-api.jetblue.com/flight-status/get-by-number?number=\(num)&date=\(dateStr)") else {
print("[B6] Invalid URL")
@@ -517,56 +573,255 @@ actor AirlineLoadService {
// MARK: - Alaska Airlines
- private func fetchAlaskaStatus(flightNumber: String, date: Date) async -> FlightLoad? {
- let num = stripAirlinePrefix(flightNumber)
- let dateStr = Self.dashDateFormatter.string(from: date)
+ /// Static APIM key extracted from the Alaska mobile app, per
+ /// AIRLINE_INTEGRATION_GUIDE.md. Accepts `confirmationCode: null` on the
+ /// `/seats/waitlist` POST, so we get standby + upgrade lists without a PNR.
+ private static let alaskaAPIMKey = "de1d0ff837444468a5ea868945aab738"
- guard let url = URL(string: "https://www.alaskaair.com/1/guestservices/customermobile/flights/status/AS/\(num)/\(dateStr)") else {
- print("[AS] Invalid URL")
+ private func fetchAlaskaLoad(
+ flightNumber: String,
+ date: Date,
+ origin: String,
+ destination: String
+ ) async -> FlightLoad? {
+ let num = stripAirlinePrefix(flightNumber)
+ let dateStr = dayString(from: date, originIATA: origin)
+ let upperOrigin = origin.uppercased()
+ let upperDestination = destination.uppercased()
+
+ print("[AS] Fetching Alaska load for AS\(num) \(upperOrigin)->\(upperDestination) on \(dateStr)")
+
+ // Run seatmap + waitlist in parallel; either may fail independently.
+ async let seatmap = fetchAlaskaSeatmap(
+ flightNumber: num,
+ origin: upperOrigin,
+ destination: upperDestination,
+ date: dateStr
+ )
+ async let waitlist = fetchAlaskaWaitlist(
+ flightNumber: num,
+ origin: upperOrigin,
+ date: dateStr
+ )
+
+ let cabinsFromMap = await seatmap
+ let waitlistResult = await waitlist
+ let cabinsFromWaitlist = waitlistResult.0
+ let standbyList = waitlistResult.1
+ let upgradeList = waitlistResult.2
+
+ // Prefer waitlist's `Authorized` cabin capacity (real FlightLoad numbers)
+ // over seatmap's `AvailableSeats` (count of open seats only).
+ let cabins = !cabinsFromWaitlist.isEmpty ? cabinsFromWaitlist : cabinsFromMap
+
+ if cabins.isEmpty && standbyList.isEmpty && upgradeList.isEmpty {
+ print("[AS] No data returned from seatmap or waitlist endpoints")
return nil
}
+ return FlightLoad(
+ airlineCode: "AS",
+ flightNumber: "AS\(num)",
+ cabins: cabins,
+ standbyList: standbyList,
+ upgradeList: upgradeList,
+ seatAvailability: []
+ )
+ }
+
+ /// GET /1/guestservices/customermobile/viewseatmap/seatmap
+ /// Returns per-seat status + `AvailableSeats` count per cabin section.
+ private func fetchAlaskaSeatmap(
+ flightNumber: String,
+ origin: String,
+ destination: String,
+ date: String
+ ) async -> [CabinLoad] {
+ var components = URLComponents(string: "https://apis.alaskaair.com/1/guestservices/customermobile/viewseatmap/seatmap")
+ components?.queryItems = [
+ URLQueryItem(name: "flightnumber", value: flightNumber),
+ URLQueryItem(name: "departureairport", value: origin),
+ URLQueryItem(name: "arrivalairport", value: destination),
+ URLQueryItem(name: "departuredate", value: date)
+ ]
+ guard let url = components?.url else {
+ print("[AS] seatmap: invalid URL")
+ return []
+ }
+
print("[AS] GET \(url)")
do {
var request = URLRequest(url: url)
+ request.setValue(Self.alaskaAPIMKey, forHTTPHeaderField: "Ocp-Apim-Subscription-Key")
request.setValue("application/json", forHTTPHeaderField: "Accept")
let (data, response) = try await session.data(for: request)
let http = response as? HTTPURLResponse
- print("[AS] HTTP status: \(http?.statusCode ?? -1)")
+ print("[AS] seatmap HTTP status: \(http?.statusCode ?? -1), \(data.count) bytes")
if let bodyStr = String(data: data, encoding: .utf8) {
- print("[AS] Response: \(bodyStr.prefix(800))")
+ print("[AS] seatmap body (first 1200): \(bodyStr.prefix(1200))")
}
- guard http?.statusCode == 200 else { return nil }
+ guard http?.statusCode == 200 else { return [] }
+ guard let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] else { return [] }
- // Alaska flight status only — seat data requires confirmation code
- return FlightLoad(
- airlineCode: "AS",
- flightNumber: "AS\(num)",
- cabins: [],
- standbyList: [],
- upgradeList: [],
- seatAvailability: []
- )
+ // Per the guide, the response carries `AvailableSeats` per cabin section.
+ // The exact wrapper differs by route; we walk the top level looking for
+ // anything that has {AvailableSeats, ...} or a list of cabin sections.
+ var cabins: [CabinLoad] = []
+
+ // Common shapes: { Cabins: [{ Name, AvailableSeats, ... }] } or
+ // { Sections: [...] } or the cabin fields inline at root.
+ if let cabinArr = (json["Cabins"] as? [[String: Any]])
+ ?? (json["cabins"] as? [[String: Any]])
+ ?? (json["Sections"] as? [[String: Any]]) {
+ for entry in cabinArr {
+ let name = (entry["Name"] as? String)
+ ?? (entry["CabinName"] as? String)
+ ?? (entry["Description"] as? String)
+ ?? "Cabin"
+ let available = (entry["AvailableSeats"] as? Int)
+ ?? (entry["availableSeats"] as? Int)
+ ?? 0
+ // Capacity is best-effort; fall back to available so
+ // loadFactor stays sane when we only have open seats.
+ let capacity = (entry["TotalSeats"] as? Int)
+ ?? (entry["Capacity"] as? Int)
+ ?? available
+ let booked = max(0, capacity - available)
+ cabins.append(CabinLoad(
+ name: name,
+ capacity: capacity,
+ booked: booked,
+ revenueStandby: 0,
+ nonRevStandby: 0
+ ))
+ }
+ }
+
+ print("[AS] seatmap parsed \(cabins.count) cabins")
+ return cabins
} catch {
- print("[AS] Error: \(error)")
- return nil
+ print("[AS] seatmap error: \(error)")
+ return []
}
}
+ /// POST /1/guestservices/customermobile/seats/waitlist
+ /// Returns StandbyList + UpgradeList with FlightLoad.Authorized (capacity)
+ /// and passenger names. `confirmationCode: null` is accepted.
+ private func fetchAlaskaWaitlist(
+ flightNumber: String,
+ origin: String,
+ date: String
+ ) async -> ([CabinLoad], [StandbyPassenger], [StandbyPassenger]) {
+ guard let url = URL(string: "https://apis.alaskaair.com/1/guestservices/customermobile/seats/waitlist") else {
+ print("[AS] waitlist: invalid URL")
+ return ([], [], [])
+ }
+
+ let body: [String: Any?] = [
+ "marketedByAirlineCode": "AS",
+ "departureAirportCode": origin,
+ "departureLocalDate": date,
+ "flightNumber": flightNumber,
+ "confirmationCode": NSNull()
+ ]
+
+ print("[AS] POST \(url) body flight=\(flightNumber) origin=\(origin) date=\(date)")
+
+ do {
+ var request = URLRequest(url: url)
+ request.httpMethod = "POST"
+ request.setValue(Self.alaskaAPIMKey, forHTTPHeaderField: "Ocp-Apim-Subscription-Key")
+ request.setValue("application/json", forHTTPHeaderField: "Content-Type")
+ request.setValue("application/json", forHTTPHeaderField: "Accept")
+ request.httpBody = try JSONSerialization.data(withJSONObject: body.compactMapValues { $0 as Any? })
+
+ let (data, response) = try await session.data(for: request)
+ let http = response as? HTTPURLResponse
+ print("[AS] waitlist HTTP status: \(http?.statusCode ?? -1), \(data.count) bytes")
+
+ if let bodyStr = String(data: data, encoding: .utf8) {
+ print("[AS] waitlist body (first 1500): \(bodyStr.prefix(1500))")
+ }
+
+ guard http?.statusCode == 200 else { return ([], [], []) }
+ guard let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] else {
+ return ([], [], [])
+ }
+
+ let (mainCap, mainPax) = parseAlaskaWaitlistSection(json["StandbyList"], listLabel: "Standby")
+ let (upgradeCap, upgradePax) = parseAlaskaWaitlistSection(json["UpgradeList"], listLabel: "Upgrade")
+
+ var cabins: [CabinLoad] = []
+ if mainCap > 0 {
+ cabins.append(CabinLoad(
+ name: "Main",
+ capacity: mainCap,
+ booked: 0,
+ revenueStandby: 0,
+ nonRevStandby: 0
+ ))
+ }
+ if upgradeCap > 0 {
+ cabins.append(CabinLoad(
+ name: "First",
+ capacity: upgradeCap,
+ booked: 0,
+ revenueStandby: 0,
+ nonRevStandby: 0
+ ))
+ }
+
+ return (cabins, mainPax, upgradePax)
+ } catch {
+ print("[AS] waitlist error: \(error)")
+ return ([], [], [])
+ }
+ }
+
+ /// Parse one of the waitlist sections (StandbyList / UpgradeList).
+ /// Returns (cabinCapacity, passengers).
+ private func parseAlaskaWaitlistSection(_ raw: Any?, listLabel: String) -> (Int, [StandbyPassenger]) {
+ guard let section = raw as? [String: Any] else { return (0, []) }
+
+ let flightLoad = section["FlightLoad"] as? [String: Any] ?? [:]
+ let authorized = (flightLoad["Authorized"] as? Int) ?? 0
+
+ var passengers: [StandbyPassenger] = []
+ if let paxArr = section["Passengers"] as? [[String: Any]] {
+ for pax in paxArr {
+ let name = (pax["DisplayName"] as? String) ?? ""
+ let position = (pax["Position"] as? Int) ?? (passengers.count + 1)
+ let seat = pax["Seat"] as? String
+ let upgraded = (pax["UpgradedToPC"] as? Bool) ?? false
+ let cleared = upgraded || (seat != nil && !(seat?.isEmpty ?? true))
+ passengers.append(StandbyPassenger(
+ order: position,
+ displayName: name,
+ cleared: cleared,
+ seat: seat,
+ listName: listLabel
+ ))
+ }
+ }
+
+ print("[AS] \(listLabel) section: authorized=\(authorized), passengers=\(passengers.count)")
+ return (authorized, passengers)
+ }
+
// MARK: - Emirates
- private func fetchEmiratesStatus(flightNumber: String, date: Date) async -> FlightLoad? {
+ private func fetchEmiratesStatus(flightNumber: String, date: Date, origin: String) async -> FlightLoad? {
let num = stripAirlinePrefix(flightNumber)
- let dateStr = Self.dashDateFormatter.string(from: date)
+ let dateStr = dayString(from: date, originIATA: origin)
- // Pad flight number to 4 digits (Emirates uses 0-padded numbers like "0221")
- let paddedNum = String(repeating: "0", count: max(0, 4 - num.count)) + num
-
- guard let url = URL(string: "https://www.emirates.com/service/flight-status?departureDate=\(dateStr)&flight=\(paddedNum)") else {
+ // Guide sample uses `flight=221` unpadded; padding was an unverified
+ // guess and is now removed to match the documented call exactly.
+ guard let url = URL(string: "https://www.emirates.com/service/flight-status?departureDate=\(dateStr)&flight=\(num)") else {
print("[EK] Invalid URL")
return nil
}
@@ -621,7 +876,7 @@ actor AirlineLoadService {
destination: String,
departureTime: String?
) async -> FlightLoad? {
- let dateStr = Self.dashDateFormatter.string(from: date)
+ let dateStr = dayString(from: date, originIATA: origin)
let num = stripAirlinePrefix(flightNumber)
let upperOrigin = origin.uppercased()
let upperDestination = destination.uppercased()
@@ -777,7 +1032,10 @@ actor AirlineLoadService {
return result.isEmpty ? trimmed : result
}
- /// "yyyy-MM-dd" formatter for United, American, Spirit
+ /// "yyyy-MM-dd" formatter for United, American, Spirit.
+ /// NOTE: this is UTC-pinned and will cross the day boundary for users in
+ /// non-UTC timezones. Prefer `dayString(from:originIATA:)` which resolves
+ /// the departure airport's approximate local timezone.
private static let dashDateFormatter: DateFormatter = {
let f = DateFormatter()
f.dateFormat = "yyyy-MM-dd"
@@ -786,6 +1044,50 @@ actor AirlineLoadService {
return f
}()
+ /// Format a `Date` as "yyyy-MM-dd" in the *departure airport's* local
+ /// timezone. Airlines (JSX especially) interpret the day string as the
+ /// calendar day at the departure airport — not UTC, not the user's locale.
+ ///
+ /// Timezone resolution strategy:
+ /// 1. Look up the airport's longitude in the bundled airports.json.
+ /// 2. Approximate the offset as `round(lng / 15)` hours (15° ≈ 1hr).
+ /// 3. Fall back to `TimeZone.current` if the airport isn't in the DB.
+ ///
+ /// The 15°/hour approximation ignores political timezone boundaries and
+ /// DST, but it's correct to within an hour of the real offset — plenty
+ /// precise for *which calendar day* the `Date` falls on.
+ private func dayString(from date: Date, originIATA: String) -> String {
+ let f = DateFormatter()
+ f.dateFormat = "yyyy-MM-dd"
+ f.locale = Locale(identifier: "en_US_POSIX")
+ f.timeZone = resolveTimeZone(forIATA: originIATA)
+ return f.string(from: date)
+ }
+
+ /// Same as above but for Korean Air's compact "yyyyMMdd" format.
+ private func compactDayString(from date: Date, originIATA: String) -> String {
+ let f = DateFormatter()
+ f.dateFormat = "yyyyMMdd"
+ f.locale = Locale(identifier: "en_US_POSIX")
+ f.timeZone = resolveTimeZone(forIATA: originIATA)
+ return f.string(from: date)
+ }
+
+ private func resolveTimeZone(forIATA iata: String) -> TimeZone {
+ guard let db = airportDatabase,
+ let airport = db.airport(byIATA: iata.uppercased()) else {
+ print("[TZ] \(iata): airport not in DB, falling back to TimeZone.current (\(TimeZone.current.identifier))")
+ return .current
+ }
+ // Round lng/15 to nearest hour. Clamp to [-12, 14] (real-world range).
+ let rawHours = (airport.lng / 15.0).rounded()
+ let hours = max(-12, min(14, Int(rawHours)))
+ let seconds = hours * 3600
+ let tz = TimeZone(secondsFromGMT: seconds) ?? .current
+ print("[TZ] \(iata) (lng=\(airport.lng)) → offset=\(hours)h (\(tz.identifier))")
+ return tz
+ }
+
/// "yyyyMMdd" formatter for Korean Air
private static let compactDateFormatter: DateFormatter = {
let f = DateFormatter()
diff --git a/Flights/Services/JSXWebViewFetcher.swift b/Flights/Services/JSXWebViewFetcher.swift
index 437e272..f3ea025 100644
--- a/Flights/Services/JSXWebViewFetcher.swift
+++ b/Flights/Services/JSXWebViewFetcher.swift
@@ -768,53 +768,30 @@ private final class JSXFlow {
if !s16.ok { return fail("Step 16 failed: \(s16.message)") }
// ---- STEP 17 ----
- // Invoke JSX's flight-search Angular component's `search()` method
- // directly via __ngContext__, bypassing the Find Flights button
- // click handler entirely.
- //
- // Context: the introspection dump from an earlier iteration revealed
- // the real component shape. It's NOT Angular Reactive Forms — it's
- // plain instance properties on a custom component (minified class
- // `Me` in the current build, but class names change per build, so
- // we match by shape). The component sits at DOM depth 4 (the
- // `
` element, context index 8),
- // and by the time we get here the UI driving steps have already
- // set `beginDate=Date(...)`, `origin=Object{...}`, and
- // `destination=Object{...}` on it. All we need to do is call its
- // `search()` method — Angular's own HttpClient then fires the POST
- // via WebKit's network stack, the interceptor captures the
- // response, and downstream parse runs normally.
- //
- // Why this works when the click doesn't: the click handler
- // presumably checks some derived `isValid` or other gate that our
- // synthetic click/form state can't satisfy. `search()` doesn't
- // check, so it just runs.
- //
- // Shape match criteria: any object that is BOTH:
- // - a state-bearing component (has `beginDate` + `origin` +
- // `destination` as own properties)
- // - callable (has a `search` function)
- // This is unique to JSX's flight search component in practice —
- // no other Angular component on the page has all four.
+ // Translate the successful real-Chrome flow into WKWebView terms:
+ // after one-way/origin/destination/date are set and DONE has been
+ // pressed, prime the search component's date state, click the real
+ // FIND FLIGHTS button, and wait for booking/select + Angular
+ // availability state. If that path still does not materialize
+ // state, fall back to component.search(), then finally to the
+ // direct in-page POST.
let s17 = await jsStep(
- "Direct fetch POST /search/simple from page context",
+ "Submit JSX search (Find Flights → component.search → direct fetch)",
action: """
return await (async () => {
- // This run deliberately uses a completely unwrapped fetch()
- // — the step 4 `install passive performance observer` does
- // NOT touch window.fetch or XMLHttpRequest. We also use the
- // EXACT same shape that the step-18 low-fare fallback uses,
- // which we've confirmed works (returns a 200 body) from
- // this same page context. The only differences between the
- // working GET and this POST:
- // - method: GET → POST
- // - Content-Type header (not sent on GET)
- // - body (not sent on GET)
- //
- // If this fetch works, we parse the body directly and
- // skip component.search() entirely. If it fails, we log
- // the error and fall through to component.search() + state
- // harvest as a secondary attempt.
+ const sleep = ms => new Promise(r => setTimeout(r, ms));
+ const safeStringify = (value) => {
+ const seen = new WeakSet();
+ return JSON.stringify(value, (_key, current) => {
+ if (typeof current === "function") return undefined;
+ if (current instanceof Date) return current.toISOString();
+ if (!current || typeof current !== "object") return current;
+ if (seen.has(current)) return "[Circular]";
+ seen.add(current);
+ return current;
+ });
+ };
+ const uiSearchWaitMs = 15000;
const readToken = () => {
try {
@@ -824,8 +801,755 @@ private final class JSXFlow {
return (parsed && parsed.token) || "";
} catch (_) { return ""; }
};
+ const resourceStats = () => {
+ const resources = (window.__jsxProbe && Array.isArray(window.__jsxProbe.resources))
+ ? window.__jsxProbe.resources
+ : [];
+ const searchResources = resources.filter(r => (r.url || "").includes("/availability/search/simple"));
+ return {
+ count: searchResources.length,
+ completed: searchResources.filter(r => (r.responseEnd || 0) > 0).length
+ };
+ };
+
+ const shapeScore = (obj) => {
+ if (!obj || typeof obj !== "object") return 0;
+ try {
+ const hasFares = !!(obj.faresAvailable && typeof obj.faresAvailable === "object"
+ && Object.keys(obj.faresAvailable).length > 0);
+ if (Array.isArray(obj.results)) {
+ for (const x of obj.results) {
+ if (x && Array.isArray(x.trips)) {
+ for (const t of x.trips) {
+ if (t && t.journeysAvailableByMarket) {
+ return hasFares ? 3 : 2;
+ }
+ }
+ }
+ }
+ }
+ if (hasFares) return 2;
+ if (obj.journeysAvailableByMarket) return 1;
+ } catch (_) {}
+ return 0;
+ };
+
+ const jsonSafe = (v, d = 0) => {
+ if (d > 10) return null;
+ if (v === null || v === undefined) return v;
+ if (typeof v === "function") return undefined;
+ if (v instanceof Date) return v.toISOString();
+ if (typeof v !== "object") return v;
+ if (Array.isArray(v)) {
+ const out = [];
+ for (let i = 0; i < Math.min(v.length, 100); i++) {
+ const e = jsonSafe(v[i], d + 1);
+ if (e !== undefined) out.push(e);
+ }
+ return out;
+ }
+ const out = {};
+ for (const k of Object.keys(v)) {
+ if (k.startsWith("_$") || k === "__proto__") continue;
+ let c;
+ try { c = v[k]; } catch (_) { continue; }
+ const s = jsonSafe(c, d + 1);
+ if (s !== undefined) out[k] = s;
+ }
+ return out;
+ };
+
+ const harvestAvailability = () => {
+ const seen = new WeakSet();
+ let bestHit = null;
+ let bestScore = 0;
+ const find = (obj, depth) => {
+ if (depth > 6 || !obj || typeof obj !== "object") return;
+ if (seen.has(obj)) return;
+ seen.add(obj);
+ const score = shapeScore(obj);
+ if (score > bestScore) {
+ bestHit = obj;
+ bestScore = score;
+ }
+ if (bestScore >= 3) return;
+ if (Array.isArray(obj)) {
+ for (let i = 0; i < Math.min(obj.length, 40); i++) {
+ find(obj[i], depth + 1);
+ if (bestScore >= 3) return;
+ }
+ return;
+ }
+ const keys = Object.keys(obj);
+ for (let i = 0; i < Math.min(keys.length, 40); i++) {
+ const k = keys[i];
+ if (k.startsWith("_$") || k === "__proto__") continue;
+ let child;
+ try { child = obj[k]; } catch (_) { continue; }
+ find(child, depth + 1);
+ if (bestScore >= 3) return;
+ }
+ };
+
+ for (const el of document.querySelectorAll("*")) {
+ const k = Object.keys(el).find(k => k.startsWith("__ngContext__"));
+ if (!k) continue;
+ const ctx = el[k];
+ if (!Array.isArray(ctx)) continue;
+ for (const item of ctx) {
+ find(item, 0);
+ if (bestScore >= 3) return bestHit;
+ }
+ }
+ return bestHit;
+ };
+
+ const findComponent = () => {
+ for (const el of document.querySelectorAll("*")) {
+ const ctxKey = Object.keys(el).find(k => k.startsWith("__ngContext__"));
+ if (!ctxKey) continue;
+ const ctx = el[ctxKey];
+ if (!Array.isArray(ctx)) continue;
+ for (let idx = 0; idx < ctx.length; idx++) {
+ const item = ctx[idx];
+ if (!item || typeof item !== "object") continue;
+ if ("beginDate" in item && "origin" in item
+ && "destination" in item && typeof item.search === "function") {
+ const proto = Object.getPrototypeOf(item);
+ return {
+ component: item,
+ componentInfo: {
+ ctor: proto && proto.constructor ? proto.constructor.name : "?",
+ idx,
+ elTag: (el.tagName || "").toLowerCase(),
+ elClass: (el.className || "").toString().slice(0, 120)
+ }
+ };
+ }
+ }
+ }
+ return { component: null, componentInfo: null };
+ };
+
+ const setControlValue = (control, value) => {
+ if (!control || typeof control !== "object") return false;
+ try {
+ if (typeof control.setValue === "function") {
+ control.setValue(value, { emitEvent: true });
+ return true;
+ }
+ } catch (_) {}
+ try {
+ if (typeof control.patchValue === "function") {
+ control.patchValue(value, { emitEvent: true });
+ return true;
+ }
+ } catch (_) {}
+ return false;
+ };
+
+ const listControlEntries = (root, prefix = "", out = [], seen = new WeakSet()) => {
+ if (!root || typeof root !== "object" || seen.has(root)) return out;
+ seen.add(root);
+ const controls = root.controls;
+ if (!controls || typeof controls !== "object") return out;
+
+ if (Array.isArray(controls)) {
+ for (let idx = 0; idx < controls.length; idx++) {
+ const child = controls[idx];
+ const path = prefix ? prefix + "." + idx : String(idx);
+ out.push({ path, control: child });
+ listControlEntries(child, path, out, seen);
+ }
+ return out;
+ }
+
+ for (const key of Object.keys(controls)) {
+ const child = controls[key];
+ const path = prefix ? prefix + "." + key : key;
+ out.push({ path, control: child });
+ listControlEntries(child, path, out, seen);
+ }
+ return out;
+ };
+
+ const controlHasChildren = (control) =>
+ !!(control && typeof control === "object" && control.controls
+ && (Array.isArray(control.controls) || typeof control.controls === "object"));
+
+ const invalidControlPaths = (form) => {
+ if (!form || typeof form !== "object") return [];
+ return listControlEntries(form)
+ .filter(entry => !controlHasChildren(entry.control))
+ .filter(entry => {
+ const control = entry.control;
+ return !!(control && typeof control === "object" && control.invalid === true);
+ })
+ .slice(0, 12)
+ .map(entry => entry.path);
+ };
+
+ const readResources = () => {
+ try {
+ const raw = sessionStorage.getItem("navitaire.digital.resources");
+ return raw ? JSON.parse(raw) : null;
+ } catch (_) {
+ return null;
+ }
+ };
+
+ const stationFromResources = (code) => {
+ const resources = readResources();
+ const stations = resources && resources.entities && resources.entities.stations
+ && resources.entities.stations.values;
+ return (stations && stations[code]) || null;
+ };
+
+ const stationValueLooksRight = (value, code) => {
+ if (!value || typeof value !== "object") return false;
+ const stationCode = String(value.stationCode || value.code || value.locationCode || "").toUpperCase();
+ if (stationCode === code) return true;
+ const shortName = String(
+ (value.locationDetails && value.locationDetails.shortName)
+ || value.shortName
+ || value.name
+ || ""
+ ).toUpperCase();
+ return shortName.includes(code);
+ };
+
+ const safePreview = (value, depth = 0) => {
+ if (depth > 2) return null;
+ if (value === null || value === undefined) return value;
+ if (typeof value === "function") return "[function]";
+ if (value instanceof Date) return value.toISOString();
+ if (typeof value !== "object") return value;
+ if (Array.isArray(value)) return value.slice(0, 8).map(v => safePreview(v, depth + 1));
+ const out = {};
+ for (const key of Object.keys(value).slice(0, 12)) {
+ try { out[key] = safePreview(value[key], depth + 1); } catch (_) {}
+ }
+ return out;
+ };
+
+ const stationDisplayText = (station) => {
+ if (!station || typeof station !== "object") return "";
+ const shortName = String(
+ (station.locationDetails && station.locationDetails.shortName)
+ || station.shortName
+ || station.name
+ || station.stationCode
+ || ""
+ ).trim();
+ const region = String(
+ (station.locationDetails && station.locationDetails.provinceStateCode)
+ || station.provinceStateCode
+ || ""
+ ).trim();
+ if (shortName && region) return shortName + ", " + region;
+ return shortName || region;
+ };
+
+ const pushEmitter = (target, value) => {
+ if (!target || typeof target !== "object") return false;
+ try {
+ if (typeof target.next === "function") {
+ target.next(value);
+ return true;
+ }
+ } catch (_) {}
+ try {
+ if (typeof target.emit === "function") {
+ target.emit(value);
+ return true;
+ }
+ } catch (_) {}
+ return false;
+ };
+
+ const componentStateSnapshot = (component) => ({
+ origin: stationValueLooksRight(component && component.origin, "\(origin)"),
+ destination: stationValueLooksRight(component && component.destination, "\(destination)"),
+ beginDateType: component && component.beginDate instanceof Date ? "date" : typeof (component && component.beginDate),
+ tripType: component && component.tripType || null,
+ fromInputText: component && component.fromStation && component.fromStation.inputText || null,
+ toInputText: component && component.toStation && component.toStation.inputText || null,
+ departureSelectionComplete: component && component.departureSelectionComplete === true,
+ arrivalSelectionComplete: component && component.arrivalSelectionComplete === true,
+ searchStart: component && "searchStart" in component ? component.searchStart : null,
+ searchComplete: component && "searchComplete" in component ? component.searchComplete : null,
+ searchButtonDisabled: !!(component && component.searchButton && component.searchButton.disabled),
+ searchButtonAriaDisabled: component && component.searchButton
+ && typeof component.searchButton.getAttribute === "function"
+ ? component.searchButton.getAttribute("aria-disabled")
+ : null
+ });
+
+ const pickerPreview = (picker) => ({
+ inputText: picker && picker.inputText || null,
+ showResults: picker && picker.showResults || false,
+ hasInputTextStream: !!(picker && picker.inputText$),
+ hasSelectedUpdated: !!(picker && picker.selectedUpdated)
+ });
+
+ const unlockButton = (button) => {
+ if (!button || typeof button !== "object") return false;
+ let touched = false;
+ try {
+ if (typeof button.removeAttribute === "function") {
+ button.removeAttribute("disabled");
+ touched = true;
+ }
+ } catch (_) {}
+ try {
+ button.disabled = false;
+ touched = true;
+ } catch (_) {}
+ try {
+ if (typeof button.setAttribute === "function") {
+ button.setAttribute("aria-disabled", "false");
+ touched = true;
+ }
+ } catch (_) {}
+ return touched;
+ };
+
+ const primeComponentState = (component, mode = "minimal") => {
+ if (!component || typeof component !== "object") return { primed: false };
+ const desiredDate = new Date(\(targetYear), \(targetMonth - 1), \(targetDay), 0, 0, 0);
+ const originStation = stationFromResources("\(origin)");
+ const destinationStation = stationFromResources("\(destination)");
+ const componentAssignments = [];
+ const methodCalls = [];
+ const notes = [];
+ const selection = {
+ originStation: originStation || null,
+ destinationStation: destinationStation || null,
+ departureDate: desiredDate,
+ returnDate: null,
+ tripType: "OneWay"
+ };
+ const callMaybe = (name, args) => {
+ if (!component || typeof component[name] !== "function") return;
+ try {
+ component[name](...args);
+ methodCalls.push(name + "(ok)");
+ } catch (err) {
+ methodCalls.push(name + "(" + String(err && err.message ? err.message : err) + ")");
+ }
+ };
+
+ try {
+ component.beginDate = desiredDate;
+ componentAssignments.push("beginDate");
+ } catch (_) {}
+ try {
+ if ("endDate" in component) {
+ component.endDate = null;
+ componentAssignments.push("endDate");
+ }
+ } catch (_) {}
+ try {
+ if ("tripType" in component) {
+ component.tripType = "OneWay";
+ componentAssignments.push("tripType");
+ }
+ } catch (_) {}
+ if (originStation) {
+ try {
+ component.origin = originStation;
+ componentAssignments.push("origin");
+ } catch (_) {}
+ }
+ if (destinationStation) {
+ try {
+ component.destination = destinationStation;
+ componentAssignments.push("destination");
+ } catch (_) {}
+ }
+
+ try {
+ if (!component.latestTripSelection || typeof component.latestTripSelection !== "object") {
+ component.latestTripSelection = {};
+ componentAssignments.push("latestTripSelection={}");
+ }
+ if (component.latestTripSelection && typeof component.latestTripSelection === "object") {
+ Object.assign(component.latestTripSelection, selection);
+ componentAssignments.push("latestTripSelection");
+ }
+ } catch (_) {}
+
+ for (const key of ["departureSelectionComplete", "arrivalSelectionComplete"]) {
+ try {
+ if (key in component) {
+ component[key] = true;
+ componentAssignments.push(key);
+ }
+ } catch (_) {}
+ }
+ for (const key of ["searchStart", "searchComplete"]) {
+ try {
+ if (!(key in component)) continue;
+ const current = component[key];
+ if (typeof current === "boolean" || current == null) {
+ component[key] = false;
+ componentAssignments.push(key);
+ }
+ } catch (_) {}
+ }
+
+ const syncStationPicker = (picker, station, label, assignmentName) => {
+ if (!picker || typeof picker !== "object" || !station) return;
+ try {
+ picker.inputText = label;
+ componentAssignments.push(assignmentName + ".inputText");
+ } catch (_) {}
+ try {
+ picker.showResults = false;
+ componentAssignments.push(assignmentName + ".showResults");
+ } catch (_) {}
+ if (mode !== "inputs") {
+ return;
+ }
+ if (pushEmitter(picker.inputText$, label)) {
+ componentAssignments.push(assignmentName + ".inputText$");
+ }
+ if (pushEmitter(picker.selectedUpdated, station)) {
+ componentAssignments.push(assignmentName + ".selectedUpdated");
+ }
+ };
+
+ if (mode === "signals" || mode === "inputs" || mode === "methods") {
+ syncStationPicker(component.fromStation, originStation, stationDisplayText(originStation), "fromStation");
+ syncStationPicker(component.toStation, destinationStation, stationDisplayText(destinationStation), "toStation");
+ }
+
+ if (component.searchButton && unlockButton(component.searchButton)) {
+ componentAssignments.push("searchButton.unlocked");
+ }
+
+ if (mode === "methods") {
+ if (originStation) callMaybe("fromUpdated", [originStation]);
+ if (destinationStation) callMaybe("toUpdated", [destinationStation]);
+ if (originStation && destinationStation && typeof component.setSelectedStations === "function") {
+ try {
+ component.setSelectedStations(selection);
+ methodCalls.push("setSelectedStations(selection)");
+ } catch (err1) {
+ try {
+ component.setSelectedStations(originStation, destinationStation);
+ methodCalls.push("setSelectedStations(origin,destination)");
+ } catch (err2) {
+ methodCalls.push("setSelectedStations(" + String(err2 && err2.message ? err2.message : err2) + ")");
+ }
+ }
+ }
+ callMaybe("validateTripSelection", []);
+ callMaybe("validateDates", []);
+ try {
+ if (component.changeDetectorRef && typeof component.changeDetectorRef.detectChanges === "function") {
+ component.changeDetectorRef.detectChanges();
+ methodCalls.push("detectChanges(ok)");
+ }
+ } catch (err) {
+ methodCalls.push("detectChanges(" + String(err && err.message ? err.message : err) + ")");
+ }
+ }
+
+ const form = component.form && typeof component.form === "object" ? component.form : null;
+ if (!originStation) notes.push("origin station missing from resources");
+ if (!destinationStation) notes.push("destination station missing from resources");
+
+ return {
+ primed: true,
+ strategy: mode,
+ beginDate: desiredDate.toISOString(),
+ componentAssignments,
+ formControlKeys: form ? listControlEntries(form).map(entry => entry.path).slice(0, 30) : [],
+ originResolved: originStation ? {
+ stationCode: originStation.stationCode || "",
+ shortName: (originStation.locationDetails && originStation.locationDetails.shortName) || originStation.name || ""
+ } : null,
+ destinationResolved: destinationStation ? {
+ stationCode: destinationStation.stationCode || "",
+ shortName: (destinationStation.locationDetails && destinationStation.locationDetails.shortName) || destinationStation.name || ""
+ } : null,
+ formState: form ? {
+ valid: form.valid === true,
+ invalid: form.invalid === true,
+ invalidPaths: invalidControlPaths(form)
+ } : null,
+ methodCalls,
+ notes,
+ componentState: componentStateSnapshot(component),
+ componentPreview: {
+ origin: safePreview(component.origin),
+ destination: safePreview(component.destination),
+ latestTripSelection: safePreview(component.latestTripSelection),
+ fromStation: pickerPreview(component.fromStation),
+ toStation: pickerPreview(component.toStation)
+ }
+ };
+ };
+
+ const clickFindFlights = async (component, forceEnable = false) => {
+ const visible = el => !!(el && (el.offsetWidth || el.offsetHeight || el.getClientRects().length));
+ const button = Array.from(document.querySelectorAll("button, [role='button'], input[type='submit']"))
+ .filter(visible)
+ .find(el => /find flights/i.test(el.innerText || el.textContent || el.value || ""));
+ if (!button) {
+ return { found: false, clicked: false, message: "Find Flights button not found" };
+ }
+
+ const text = (button.innerText || button.textContent || button.value || "")
+ .replace(/\\s+/g, " ")
+ .trim();
+ const disabledBefore = !!button.disabled || button.getAttribute("aria-disabled") === "true";
+ if (disabledBefore && forceEnable) {
+ unlockButton(button);
+ if (component && component.searchButton && component.searchButton !== button) {
+ unlockButton(component.searchButton);
+ }
+ await sleep(60);
+ }
+ const disabled = !!button.disabled || button.getAttribute("aria-disabled") === "true";
+ if (disabled) {
+ return {
+ found: true,
+ clicked: false,
+ message: "Find Flights button disabled",
+ text,
+ disabled,
+ ariaDisabled: button.getAttribute("aria-disabled"),
+ forceEnableAttempted: forceEnable
+ };
+ }
+
+ button.scrollIntoView({ block: "center" });
+ try { button.focus(); } catch (_) {}
+ for (const type of ["pointerdown", "mousedown", "pointerup", "mouseup", "click"]) {
+ try {
+ button.dispatchEvent(new MouseEvent(type, { bubbles: true, cancelable: true, view: window }));
+ } catch (_) {}
+ }
+ try {
+ if (typeof button.click === "function") button.click();
+ } catch (_) {}
+ await sleep(700);
+
+ return {
+ found: true,
+ clicked: true,
+ message: "clicked Find Flights",
+ text,
+ disabled: false,
+ ariaDisabled: button.getAttribute("aria-disabled"),
+ forceEnableAttempted: forceEnable,
+ disabledBefore
+ };
+ };
+
+ const waitForAvailability = async (timeoutMs) => {
+ const deadline = Date.now() + timeoutMs;
+ let stats = resourceStats();
+ while (Date.now() < deadline) {
+ const hit = harvestAvailability();
+ stats = resourceStats();
+ if (hit) return { hit, href: location.href, stats };
+ if (location.href.includes("/booking/select") && stats.count > 0) {
+ await sleep(400);
+ const retry = harvestAvailability();
+ if (retry) return { hit: retry, href: location.href, stats: resourceStats() };
+ }
+ await sleep(300);
+ }
+ return { hit: null, href: location.href, stats };
+ };
+
+ let componentSearchError = null;
+ let componentInfo = null;
+ let primedComponent = null;
+ let componentStateBefore = null;
+ let initialClickResult = null;
+ let clickResult = null;
+ let primeAttempts = [];
+ let component = null;
+ try {
+ const found = findComponent();
+ componentInfo = found.componentInfo;
+ component = found.component;
+ if (component) {
+ componentStateBefore = componentStateSnapshot(component);
+ }
+ } catch (err) {
+ componentSearchError = String(err && err.message ? err.message : err);
+ }
+
+ try {
+ initialClickResult = await clickFindFlights(component, false);
+ clickResult = initialClickResult;
+ if (initialClickResult && initialClickResult.clicked) {
+ const waited = await waitForAvailability(uiSearchWaitMs);
+ if (waited.hit) {
+ const serialized = safeStringify({ data: jsonSafe(waited.hit) });
+ return safeStringify({
+ ok: true,
+ message: "Find Flights click produced availability state"
+ + (waited.href.includes("/booking/select") ? " on booking/select" : ""),
+ via: "find-flights-click",
+ component: componentInfo,
+ componentStateBefore,
+ initialClickResult,
+ clickResult,
+ componentSearchError,
+ searchResourceCount: waited.stats.count,
+ completedResourceCount: waited.stats.completed,
+ href: waited.href,
+ body: serialized
+ });
+ }
+ }
+ } catch (err) {
+ clickResult = {
+ found: true,
+ clicked: false,
+ message: "Find Flights click threw: " + String(err && err.message ? err.message : err)
+ };
+ }
+
+ if (component) {
+ primedComponent = primeComponentState(component, "minimal");
+ primeAttempts.push(primedComponent);
+ try {
+ clickResult = await clickFindFlights(component, true);
+ if (clickResult && clickResult.clicked) {
+ const waited = await waitForAvailability(uiSearchWaitMs);
+ if (waited.hit) {
+ const serialized = safeStringify({ data: jsonSafe(waited.hit) });
+ return safeStringify({
+ ok: true,
+ message: "Find Flights click produced availability after minimal component sync"
+ + (waited.href.includes("/booking/select") ? " on booking/select" : ""),
+ via: "primed-find-flights-click",
+ component: componentInfo,
+ componentStateBefore,
+ primedComponent,
+ primeAttempts,
+ initialClickResult,
+ clickResult,
+ componentSearchError,
+ searchResourceCount: waited.stats.count,
+ completedResourceCount: waited.stats.completed,
+ href: waited.href,
+ body: serialized
+ });
+ }
+ }
+ } catch (err) {
+ clickResult = {
+ found: true,
+ clicked: false,
+ message: "primed Find Flights click threw: " + String(err && err.message ? err.message : err)
+ };
+ }
+
+ primedComponent = primeComponentState(component, "inputs");
+ primeAttempts.push(primedComponent);
+ }
+
+ try {
+ if (component) {
+ try {
+ const r = component.search();
+ if (r && typeof r.then === "function") {
+ try { await r; } catch (err) {
+ componentSearchError = String(err && err.message ? err.message : err);
+ }
+ }
+ } catch (err) {
+ componentSearchError = String(err && err.message ? err.message : err);
+ }
+
+ const waited = await waitForAvailability(uiSearchWaitMs);
+ if (waited.hit) {
+ const serialized = safeStringify({ data: jsonSafe(waited.hit) });
+ return safeStringify({
+ ok: true,
+ message: "component.search() produced availability state"
+ + (waited.href.includes("/booking/select") ? " on booking/select" : ""),
+ via: "component-search",
+ component: componentInfo,
+ componentStateBefore,
+ primedComponent,
+ primeAttempts,
+ initialClickResult,
+ clickResult,
+ componentSearchError,
+ searchResourceCount: waited.stats.count,
+ completedResourceCount: waited.stats.completed,
+ href: waited.href,
+ body: serialized
+ });
+ }
+
+ primedComponent = primeComponentState(component, "methods");
+ primeAttempts.push(primedComponent);
+ try {
+ const retry = component.search();
+ if (retry && typeof retry.then === "function") {
+ try { await retry; } catch (err) {
+ componentSearchError = String(err && err.message ? err.message : err);
+ }
+ }
+ } catch (err) {
+ componentSearchError = String(err && err.message ? err.message : err);
+ }
+
+ const retried = await waitForAvailability(uiSearchWaitMs);
+ if (retried.hit) {
+ const serialized = safeStringify({ data: jsonSafe(retried.hit) });
+ return safeStringify({
+ ok: true,
+ message: "component.search() produced availability after method sync"
+ + (retried.href.includes("/booking/select") ? " on booking/select" : ""),
+ via: "component-search-method-sync",
+ component: componentInfo,
+ componentStateBefore,
+ primedComponent,
+ primeAttempts,
+ initialClickResult,
+ clickResult,
+ componentSearchError,
+ searchResourceCount: retried.stats.count,
+ completedResourceCount: retried.stats.completed,
+ href: retried.href,
+ body: serialized
+ });
+ }
+ }
+ } catch (err) {
+ componentSearchError = String(err && err.message ? err.message : err);
+ }
+
const token = readToken();
- if (!token) return JSON.stringify({ ok: false, message: "no token in sessionStorage" });
+ if (!token) {
+ const stats = resourceStats();
+ return safeStringify({
+ ok: false,
+ message: "component.search() found no availability state and no token in sessionStorage",
+ via: "neither",
+ componentSearchError,
+ component: componentInfo,
+ componentStateBefore,
+ primedComponent,
+ primeAttempts,
+ initialClickResult,
+ clickResult,
+ searchResourceCount: stats.count,
+ completedResourceCount: stats.completed,
+ href: location.href
+ });
+ }
const url = "https://api.jsx.com/api/nsk/v4/availability/search/simple";
const body = JSON.stringify({
@@ -845,210 +1569,164 @@ private final class JSXFlow {
codes: { currencyCode: "USD" },
ssrCollectionsMode: 1
});
-
- // Attempt 1: straight fetch POST. Uses the unwrapped
- // window.fetch. credentials:include forwards the Akamai
- // session cookies the page already has from loading
- // https://www.jsx.com.
- let directFetchResult;
- try {
- const resp = await fetch(url, {
- method: "POST",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- "Accept": "application/json, text/plain, */*",
- "Authorization": token
- },
- body
+ const lowFareUrl = (() => {
+ const qs = new URLSearchParams({
+ origin: "\(origin)",
+ destination: "\(destination)",
+ currencyCode: "USD",
+ includeTaxesAndFees: "true",
+ startDate: "\(date)",
+ endDate: "\(date)",
+ numberOfPassengers: "1"
});
- const text = await resp.text();
- directFetchResult = {
- ok: resp.status >= 200 && resp.status < 300 && text.length > 100,
- status: resp.status,
- length: text.length,
- body: text
- };
- } catch (err) {
- directFetchResult = {
- ok: false,
- status: 0,
- length: 0,
- error: String(err && err.message ? err.message : err)
- };
+ return "https://api.jsx.com/api/nsk/v1/availability/lowfare/estimate?" + qs.toString();
+ })();
+
+ const warmLowFare = async () => {
+ const warmToken = readToken();
+ if (!warmToken) {
+ return { ok: false, status: 0, error: "missing token for lowfare warmup" };
+ }
+ try {
+ const resp = await fetch(lowFareUrl, {
+ method: "GET",
+ credentials: "include",
+ headers: {
+ "Accept": "application/json, text/plain, */*",
+ "Authorization": warmToken
+ }
+ });
+ const text = await resp.text();
+ return {
+ ok: resp.status >= 200 && resp.status < 300 && text.length > 0,
+ status: resp.status,
+ length: text.length
+ };
+ } catch (err) {
+ return {
+ ok: false,
+ status: 0,
+ error: String(err && err.message ? err.message : err)
+ };
+ }
+ };
+
+ const runDirectFetch = async () => {
+ const directToken = readToken();
+ if (!directToken) {
+ return {
+ ok: false,
+ status: 0,
+ length: 0,
+ error: "missing token before direct fetch"
+ };
+ }
+ try {
+ const resp = await fetch(url, {
+ method: "POST",
+ credentials: "include",
+ headers: {
+ "Content-Type": "application/json",
+ "Accept": "application/json, text/plain, */*",
+ "Authorization": directToken
+ },
+ body
+ });
+ const text = await resp.text();
+ return {
+ ok: resp.status >= 200 && resp.status < 300 && text.length > 100,
+ status: resp.status,
+ length: text.length,
+ body: text
+ };
+ } catch (err) {
+ return {
+ ok: false,
+ status: 0,
+ length: 0,
+ error: String(err && err.message ? err.message : err)
+ };
+ }
+ };
+
+ let directFetchResult;
+ let lowFareWarmup = { ok: false, status: 0, skipped: true };
+ directFetchResult = await runDirectFetch();
+ if (!directFetchResult.ok) {
+ lowFareWarmup = await warmLowFare();
+ await sleep(lowFareWarmup.ok ? 800 : 1600);
+ directFetchResult = await runDirectFetch();
+ }
+ if (!directFetchResult.ok && (directFetchResult.error || "").includes("Load failed")) {
+ await sleep(1600);
+ directFetchResult = await runDirectFetch();
}
if (directFetchResult.ok) {
- return JSON.stringify({
+ const stats = resourceStats();
+ return safeStringify({
ok: true,
message: "direct fetch POST succeeded status=" + directFetchResult.status
+ " len=" + directFetchResult.length,
via: "direct-fetch",
+ componentSearchError,
+ component: componentInfo,
+ componentStateBefore,
+ primedComponent,
+ primeAttempts,
+ initialClickResult,
+ clickResult,
directStatus: directFetchResult.status,
directLength: directFetchResult.length,
+ lowFareWarmup,
+ searchResourceCount: stats.count,
+ completedResourceCount: stats.completed,
+ href: location.href,
body: directFetchResult.body
});
}
- // Attempt 2: component.search() + SPA state harvest. Wrap
- // the whole thing in try/catch so that if anything in the
- // fallback path throws (which happened with a WeakSet
- // misuse in a prior iteration), we still return a result
- // instead of killing the function with an uncaught error.
- let fallbackError = null;
- let componentInfo = null;
- try {
- let component = null;
- for (const el of document.querySelectorAll("*")) {
- const ctxKey = Object.keys(el).find(k => k.startsWith("__ngContext__"));
- if (!ctxKey) continue;
- const ctx = el[ctxKey];
- if (!Array.isArray(ctx)) continue;
- for (let idx = 0; idx < ctx.length; idx++) {
- const item = ctx[idx];
- if (!item || typeof item !== "object") continue;
- if ("beginDate" in item && "origin" in item
- && "destination" in item && typeof item.search === "function") {
- component = item;
- const proto = Object.getPrototypeOf(item);
- componentInfo = {
- ctor: proto && proto.constructor ? proto.constructor.name : "?",
- idx
- };
- break;
- }
- }
- if (component) break;
- }
-
- if (component) {
- if (!(component.beginDate instanceof Date)) {
- component.beginDate = new Date(\(targetYear), \(targetMonth - 1), \(targetDay), 12, 0, 0);
- }
- try {
- const r = component.search();
- if (r && typeof r.then === "function") { try { await r; } catch (_) {} }
- } catch (_) {}
-
- // Walk __ngContext__ for the parsed availability shape.
- // Single globally-shared WeakSet (not recreated per
- // recursion) — WeakSet isn't iterable so we can't
- // clone it anyway.
- const hasShape = (obj) => {
- if (!obj || typeof obj !== "object") return false;
- try {
- if (obj.faresAvailable && typeof obj.faresAvailable === "object"
- && Object.keys(obj.faresAvailable).length > 0) return true;
- if (Array.isArray(obj.results)) {
- for (const x of obj.results) {
- if (x && Array.isArray(x.trips)) {
- for (const t of x.trips) {
- if (t && t.journeysAvailableByMarket) return true;
- }
- }
- }
- }
- if (obj.journeysAvailableByMarket) return true;
- } catch (_) {}
- return false;
- };
- const seen = new WeakSet();
- const find = (obj, depth) => {
- if (depth > 6 || !obj || typeof obj !== "object") return null;
- if (seen.has(obj)) return null;
- seen.add(obj);
- if (hasShape(obj)) return obj;
- if (Array.isArray(obj)) {
- for (let i = 0; i < Math.min(obj.length, 40); i++) {
- const h = find(obj[i], depth + 1);
- if (h) return h;
- }
- return null;
- }
- const keys = Object.keys(obj);
- for (let i = 0; i < Math.min(keys.length, 40); i++) {
- const k = keys[i];
- if (k.startsWith("_$") || k === "__proto__") continue;
- let child;
- try { child = obj[k]; } catch (_) { continue; }
- const h = find(child, depth + 1);
- if (h) return h;
- }
- return null;
- };
-
- const deadline = Date.now() + 10000;
- let hit = null;
- while (Date.now() < deadline && !hit) {
- for (const el of document.querySelectorAll("*")) {
- const k = Object.keys(el).find(k => k.startsWith("__ngContext__"));
- if (!k) continue;
- const ctx = el[k];
- if (!Array.isArray(ctx)) continue;
- for (const item of ctx) {
- hit = find(item, 0);
- if (hit) break;
- }
- if (hit) break;
- }
- if (!hit) await new Promise(r => setTimeout(r, 300));
- }
-
- if (hit) {
- const jsonSafe = (v, d = 0) => {
- if (d > 10) return null;
- if (v === null || v === undefined) return v;
- if (typeof v === "function") return undefined;
- if (v instanceof Date) return v.toISOString();
- if (typeof v !== "object") return v;
- if (Array.isArray(v)) {
- const out = [];
- for (let i = 0; i < Math.min(v.length, 100); i++) {
- const e = jsonSafe(v[i], d + 1);
- if (e !== undefined) out.push(e);
- }
- return out;
- }
- const out = {};
- for (const k of Object.keys(v)) {
- if (k.startsWith("_$") || k === "__proto__") continue;
- let c;
- try { c = v[k]; } catch (_) { continue; }
- const s = jsonSafe(c, d + 1);
- if (s !== undefined) out[k] = s;
- }
- return out;
- };
- const wrapped = { data: jsonSafe(hit) };
- const serialized = JSON.stringify(wrapped);
- return JSON.stringify({
- ok: true,
- message: "harvested from SPA state (direct fetch failed: "
- + (directFetchResult.error || ("status " + directFetchResult.status)) + ")",
- via: "state-harvest",
- component: componentInfo,
- directFetchError: directFetchResult.error || ("status " + directFetchResult.status),
- body: serialized
- });
- }
- }
- } catch (err) {
- fallbackError = String(err && err.message ? err.message : err);
+ const waited = await waitForAvailability(5000);
+ if (waited.hit) {
+ const serialized = safeStringify({ data: jsonSafe(waited.hit) });
+ return safeStringify({
+ ok: true,
+ message: "harvested from SPA state after direct fetch fallback",
+ via: "state-harvest",
+ componentSearchError,
+ component: componentInfo,
+ componentStateBefore,
+ primedComponent,
+ primeAttempts,
+ initialClickResult,
+ clickResult,
+ directFetchError: directFetchResult.error || ("status " + directFetchResult.status),
+ lowFareWarmup,
+ searchResourceCount: waited.stats.count,
+ completedResourceCount: waited.stats.completed,
+ href: waited.href,
+ body: serialized
+ });
}
- // Both attempts failed. Return the direct-fetch diagnostic
- // verbatim so we can see the real reason the direct fetch
- // didn't work.
- return JSON.stringify({
+ return safeStringify({
ok: false,
- message: "direct fetch POST failed AND SPA state harvest found nothing"
+ message: "component.search() and direct fetch both failed to produce availability"
+ " (direct: " + (directFetchResult.error || ("status=" + directFetchResult.status)) + ")",
via: "neither",
+ componentSearchError,
directStatus: directFetchResult.status,
directError: directFetchResult.error || null,
- fallbackError,
+ lowFareWarmup,
component: componentInfo,
- href: location.href
+ componentStateBefore,
+ primedComponent,
+ primeAttempts,
+ initialClickResult,
+ clickResult,
+ searchResourceCount: waited.stats.count,
+ completedResourceCount: waited.stats.completed,
+ href: waited.href
});
})();
""",
@@ -1075,7 +1753,13 @@ private final class JSXFlow {
}
if let searchCount = s17.data["searchResourceCount"] as? Int {
let completed = (s17.data["completedResourceCount"] as? Int) ?? 0
- print("[JSX] ▸ /search/simple resource entries: \(searchCount) total, \(completed) with body")
+ print("[JSX] ▸ /search/simple resource entries: \(searchCount) total, \(completed) completed")
+ }
+ if let initialClickInfo = s17.data["initialClickResult"] as? [String: Any] {
+ print("[JSX] ▸ Find Flights initial attempt: \(describe(initialClickInfo))")
+ }
+ if let clickInfo = s17.data["clickResult"] as? [String: Any] {
+ print("[JSX] ▸ Find Flights attempt: \(describe(clickInfo))")
}
// ---- STEP 18 ----
@@ -1085,11 +1769,34 @@ private final class JSXFlow {
// /lowfare/estimate from the page context (GETs are known to
// succeed from WKWebView) so the UI still has something to show.
var parsedFlights: [JSXFlight] = []
- var rawHarvested: String? = s17.data["body"] as? String
+ let rawHarvested: String? = s17.data["body"] as? String
var lowFareFallback: JSXLowFareEstimate? = nil
+ self.capturedBody = rawHarvested
let s18 = await nativeStep("Parse harvested availability data") { [weak self] in
guard let self else { return (false, "self gone", [:]) }
+
+ // PRIMARY: try GraphQL /api/v2/graph/searchAvailability — the
+ // endpoint AIRLINE_INTEGRATION_GUIDE.md recommends. If it
+ // succeeds, use those flights and skip the /search/simple
+ // harvest / native REST fallback entirely.
+ if let graphQLFlights = await self.nativePOSTGraphQLAvailability(),
+ !graphQLFlights.isEmpty {
+ parsedFlights = graphQLFlights
+ for flight in graphQLFlights {
+ let classesText = flight.classes.map { c in
+ "\(c.classOfService)/\(c.productClass):\(c.availableCount)@$\(Int(c.fareTotal))"
+ }.joined(separator: ", ")
+ let low = flight.lowestFareTotal.map { "$\(Int($0))" } ?? "n/a"
+ print("[JSX] │ \(flight.flightNumber) \(flight.origin)→\(flight.destination) "
+ + "\(flight.departureLocal) → \(flight.arrivalLocal) "
+ + "stops=\(flight.stops) seats=\(flight.totalAvailable) from=\(low) [\(classesText)]")
+ }
+ return (true, "decoded \(graphQLFlights.count) flights via GraphQL searchAvailability",
+ ["count": graphQLFlights.count, "via": "graphql"])
+ }
+ print("[JSX] ▸ GraphQL path returned nothing; falling back to /search/simple harvest")
+
if let rawHarvested, !rawHarvested.isEmpty {
parsedFlights = self.parseFlights(from: rawHarvested)
if parsedFlights.isEmpty {
@@ -1108,6 +1815,25 @@ private final class JSXFlow {
return (true, "decoded \(parsedFlights.count) flights from harvested SPA state",
["count": parsedFlights.count])
} else {
+ print("[JSX] ▸ no harvested payload; trying native URLSession POST /search/simple")
+ if let nativeBody = await self.nativePOSTSearchSimple() {
+ self.capturedBody = nativeBody
+ parsedFlights = self.parseFlights(from: nativeBody)
+ if !parsedFlights.isEmpty {
+ for flight in parsedFlights {
+ let classesText = flight.classes.map { c in
+ "\(c.classOfService)/\(c.productClass):\(c.availableCount)@$\(Int(c.fareTotal))"
+ }.joined(separator: ", ")
+ let low = flight.lowestFareTotal.map { "$\(Int($0))" } ?? "n/a"
+ print("[JSX] │ \(flight.flightNumber) \(flight.origin)→\(flight.destination) "
+ + "\(flight.departureLocal) → \(flight.arrivalLocal) "
+ + "stops=\(flight.stops) seats=\(flight.totalAvailable) from=\(low) [\(classesText)]")
+ }
+ return (true, "decoded \(parsedFlights.count) flights from native URLSession POST",
+ ["count": parsedFlights.count, "via": "native-urlsession"])
+ }
+ print("[JSX] │ native URLSession POST returned \(nativeBody.count) bytes but parser found 0 flights")
+ }
print("[JSX] ▸ no harvested payload; fetching /lowfare/estimate directly from page context")
if let lf = await self.fetchLowFareEstimateDirectly() {
lowFareFallback = lf
@@ -1164,6 +1890,371 @@ private final class JSXFlow {
// MARK: - Low-fare direct fetch (step 18 fallback)
+ private func nativePOSTSearchSimple() async -> String? {
+ guard let webView = self.webView else {
+ print("[JSX] │ native POST: webView missing")
+ return nil
+ }
+ guard let token = await readNavitaireToken() else {
+ print("[JSX] │ native POST: missing navitaire token")
+ return nil
+ }
+
+ let allCookies = await allCookies(from: webView.configuration.websiteDataStore.httpCookieStore)
+ let jsxCookies = allCookies.filter { cookie in
+ let domain = cookie.domain.lowercased()
+ return domain == "api.jsx.com"
+ || domain == "jsx.com"
+ || domain == ".jsx.com"
+ || domain.hasSuffix(".jsx.com")
+ }
+ let cookieHeader = jsxCookies.map { "\($0.name)=\($0.value)" }.joined(separator: "; ")
+
+ guard let url = URL(string: "https://api.jsx.com/api/nsk/v4/availability/search/simple") else {
+ print("[JSX] │ native POST: invalid search/simple URL")
+ return nil
+ }
+
+ var request = URLRequest(url: url)
+ request.httpMethod = "POST"
+ request.timeoutInterval = 30
+ request.setValue("application/json", forHTTPHeaderField: "Content-Type")
+ request.setValue("application/json, text/plain, */*", forHTTPHeaderField: "Accept")
+ request.setValue(token, forHTTPHeaderField: "Authorization")
+ request.setValue("https://www.jsx.com", forHTTPHeaderField: "Origin")
+ request.setValue("https://www.jsx.com/home/search", forHTTPHeaderField: "Referer")
+ request.setValue(
+ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 "
+ + "(KHTML, like Gecko) Version/17.4 Safari/605.1.15",
+ forHTTPHeaderField: "User-Agent"
+ )
+ if !cookieHeader.isEmpty {
+ request.setValue(cookieHeader, forHTTPHeaderField: "Cookie")
+ }
+
+ let body: [String: Any] = [
+ "beginDate": self.date,
+ "destination": self.destination,
+ "origin": self.origin,
+ "passengers": ["types": [["count": 1, "type": "ADT"]]],
+ "taxesAndFees": 2,
+ "filters": [
+ "maxConnections": 4,
+ "compressionType": 1,
+ "sortOptions": [4],
+ "fareTypes": ["R"],
+ "exclusionType": 2
+ ],
+ "numberOfFaresPerJourney": 10,
+ "codes": ["currencyCode": "USD"],
+ "ssrCollectionsMode": 1
+ ]
+ guard let bodyData = try? JSONSerialization.data(withJSONObject: body) else {
+ print("[JSX] │ native POST: failed to serialize request body")
+ return nil
+ }
+ request.httpBody = bodyData
+
+ let config = URLSessionConfiguration.ephemeral
+ config.timeoutIntervalForRequest = 30
+ config.timeoutIntervalForResource = 30
+ let session = URLSession(configuration: config)
+
+ do {
+ let (data, response) = try await session.data(for: request)
+ guard let http = response as? HTTPURLResponse else {
+ print("[JSX] │ native POST: non-HTTP response")
+ return nil
+ }
+ let text = String(data: data, encoding: .utf8) ?? ""
+ print("[JSX] │ native POST: status=\(http.statusCode), body=\(text.count) bytes, cookies=\(jsxCookies.count)")
+ guard (200..<300).contains(http.statusCode), text.count > 100 else {
+ let preview = String(text.prefix(300))
+ print("[JSX] │ native POST preview: \(preview)")
+ return nil
+ }
+ return text
+ } catch {
+ let nsError = error as NSError
+ print("[JSX] │ native POST error: \(error.localizedDescription) [\(nsError.domain) \(nsError.code)]")
+ return nil
+ }
+ }
+
+ /// POST /api/v2/graph/searchAvailability — the endpoint recommended by
+ /// AIRLINE_INTEGRATION_GUIDE.md. Unlike /search/simple, GraphQL responses
+ /// inline fare details under each fare (`passengerFares[].fareAmount`) so
+ /// the parser doesn't need to join against `faresAvailable`. We still
+ /// reuse the navitaire.digital.token acquired via WKWebView (15-min idle).
+ /// Returns parsed flights on success so `run()` can short-circuit the
+ /// /search/simple harvest when this path works.
+ private func nativePOSTGraphQLAvailability() async -> [JSXFlight]? {
+ guard let webView = self.webView else {
+ print("[JSX] │ GraphQL: webView missing")
+ return nil
+ }
+ guard let token = await readNavitaireToken() else {
+ print("[JSX] │ GraphQL: missing navitaire token")
+ return nil
+ }
+
+ let allCookies = await allCookies(from: webView.configuration.websiteDataStore.httpCookieStore)
+ let jsxCookies = allCookies.filter { cookie in
+ let domain = cookie.domain.lowercased()
+ return domain == "api.jsx.com"
+ || domain == "jsx.com"
+ || domain == ".jsx.com"
+ || domain.hasSuffix(".jsx.com")
+ }
+ let cookieHeader = jsxCookies.map { "\($0.name)=\($0.value)" }.joined(separator: "; ")
+
+ guard let url = URL(string: "https://api.jsx.com/api/v2/graph/searchAvailability") else {
+ print("[JSX] │ GraphQL: invalid URL")
+ return nil
+ }
+
+ // GraphQL query — structure mirrors AIRLINE_INTEGRATION_GUIDE.md §4.
+ // Kept on a single line inside the JSON to avoid escape issues.
+ let graphQLQuery = """
+ { availabilityv5(request: { criteria: [{ dates: { beginDate: \"\(self.date)\", endDate: \"\(self.date)\" }, stations: { originStationCodes: [\"\(self.origin)\"], destinationStationCodes: [\"\(self.destination)\"] } }], passengers: { types: [{ count: 1, type: \"ADT\" }] }, codes: { currencyCode: \"USD\" } }) { results { trips { date journeysAvailableByMarket { key value { journeyKey stops designator { arrival departure destination origin } segments { identifier { identifier carrierCode } legs { legInfo { equipmentType } } } fares { details { availableCount classOfService productClass passengerFares { fareAmount } } } } } } } } }
+ """
+
+ let body: [String: Any] = [
+ "cachedResults": false,
+ "query": graphQLQuery
+ ]
+ guard let bodyData = try? JSONSerialization.data(withJSONObject: body) else {
+ print("[JSX] │ GraphQL: failed to serialize body")
+ return nil
+ }
+
+ var request = URLRequest(url: url)
+ request.httpMethod = "POST"
+ request.timeoutInterval = 30
+ request.setValue("application/json", forHTTPHeaderField: "Content-Type")
+ request.setValue("application/json, text/plain, */*", forHTTPHeaderField: "Accept")
+ request.setValue(token, forHTTPHeaderField: "Authorization")
+ request.setValue("https://www.jsx.com", forHTTPHeaderField: "Origin")
+ request.setValue("https://www.jsx.com/home/search", forHTTPHeaderField: "Referer")
+ request.setValue(
+ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 "
+ + "(KHTML, like Gecko) Version/17.4 Safari/605.1.15",
+ forHTTPHeaderField: "User-Agent"
+ )
+ if !cookieHeader.isEmpty {
+ request.setValue(cookieHeader, forHTTPHeaderField: "Cookie")
+ }
+ request.httpBody = bodyData
+
+ print("[JSX] │ GraphQL POST \(url) \(self.origin)→\(self.destination) on \(self.date)")
+
+ let config = URLSessionConfiguration.ephemeral
+ config.timeoutIntervalForRequest = 30
+ config.timeoutIntervalForResource = 30
+ let urlSession = URLSession(configuration: config)
+
+ do {
+ let (data, response) = try await urlSession.data(for: request)
+ guard let http = response as? HTTPURLResponse else {
+ print("[JSX] │ GraphQL: non-HTTP response")
+ return nil
+ }
+ let text = String(data: data, encoding: .utf8) ?? ""
+ print("[JSX] │ GraphQL status=\(http.statusCode), body=\(text.count) bytes")
+ // Dump raw body so real field names / missing fields are visible.
+ // GraphQL bodies are small; print up to 4000 chars in two chunks
+ // so the Xcode console doesn't truncate mid-line.
+ let preview = text.prefix(4000)
+ print("[JSX] │ GraphQL raw body: \(preview)")
+ guard (200..<300).contains(http.statusCode), text.count > 50 else {
+ return nil
+ }
+
+ self.capturedBody = text // preserve raw for debug logging
+ let flights = parseGraphQLFlights(from: text)
+ print("[JSX] │ GraphQL parsed \(flights.count) flights")
+ return flights.isEmpty ? nil : flights
+ } catch {
+ let ns = error as NSError
+ print("[JSX] │ GraphQL error: \(error.localizedDescription) [\(ns.domain) \(ns.code)]")
+ return nil
+ }
+ }
+
+ /// Parser for the GraphQL response shape. GraphQL differs from
+ /// /search/simple in two ways:
+ /// 1. `data.availabilityv5.results[...]` (extra `availabilityv5` wrapper)
+ /// 2. `journeysAvailableByMarket` is an array of `{ key, value }` pairs
+ /// instead of a dict keyed by "ORIG|DEST"
+ /// 3. Fare details are inlined with passengerFares[].fareAmount — no
+ /// separate `faresAvailable` join.
+ fileprivate func parseGraphQLFlights(from rawJSON: String) -> [JSXFlight] {
+ guard let data = rawJSON.data(using: .utf8),
+ let root = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else {
+ print("[JSX] │ parseGraphQLFlights: root JSON not a dict")
+ return []
+ }
+
+ if let errors = root["errors"] as? [[String: Any]], !errors.isEmpty {
+ print("[JSX] │ parseGraphQLFlights: GraphQL errors: \(errors)")
+ }
+
+ guard let dataObj = root["data"] as? [String: Any],
+ let availability = dataObj["availabilityv5"] as? [String: Any],
+ let results = availability["results"] as? [[String: Any]] else {
+ print("[JSX] │ parseGraphQLFlights: missing data.availabilityv5.results")
+ return []
+ }
+
+ let marketKey = "\(self.origin)|\(self.destination)"
+ var flights: [JSXFlight] = []
+ var seenKeys = Set()
+
+ for result in results {
+ let trips = result["trips"] as? [[String: Any]] ?? []
+ for trip in trips {
+ let byMarket = trip["journeysAvailableByMarket"] as? [[String: Any]] ?? []
+ for pair in byMarket {
+ let key = (pair["key"] as? String) ?? marketKey
+ let journeys = pair["value"] as? [[String: Any]] ?? []
+ for journey in journeys {
+ if let flight = buildFlightFromGraphQL(journey: journey, marketKey: key) {
+ let dedupeKey = "\(flight.flightNumber)|\(flight.departureLocal)"
+ if seenKeys.insert(dedupeKey).inserted {
+ flights.append(flight)
+ }
+ }
+ }
+ }
+ }
+ }
+
+ flights.sort { $0.departureLocal < $1.departureLocal }
+ return flights
+ }
+
+ private func buildFlightFromGraphQL(journey: [String: Any], marketKey: String) -> JSXFlight? {
+ let segments = journey["segments"] as? [[String: Any]] ?? []
+ guard !segments.isEmpty else { return nil }
+
+ let firstSeg = segments[0]
+ let firstIdentifier = firstSeg["identifier"] as? [String: Any] ?? [:]
+ let carrierCode = (firstIdentifier["carrierCode"] as? String) ?? ""
+ let baseNumber = (firstIdentifier["identifier"] as? String) ?? ""
+ var fullFlightNumber = "\(carrierCode)\(baseNumber)"
+ if segments.count > 1 {
+ let extras = segments.dropFirst().compactMap { seg -> String? in
+ let ident = seg["identifier"] as? [String: Any] ?? [:]
+ let cc = (ident["carrierCode"] as? String) ?? ""
+ let num = (ident["identifier"] as? String) ?? ""
+ let combined = "\(cc)\(num)"
+ return combined.isEmpty ? nil : combined
+ }
+ if !extras.isEmpty {
+ fullFlightNumber += "+" + extras.joined(separator: "+")
+ }
+ }
+
+ let designator = journey["designator"] as? [String: Any] ?? [:]
+ let originCode = (designator["origin"] as? String)
+ ?? marketOrigin(marketKey)
+ ?? ""
+ let destinationCode = (designator["destination"] as? String)
+ ?? marketDestination(marketKey)
+ ?? ""
+ let departureLocal = (designator["departure"] as? String) ?? ""
+ let arrivalLocal = (designator["arrival"] as? String) ?? ""
+
+ let stops = (journey["stops"] as? Int)
+ ?? ((journey["stops"] as? NSNumber)?.intValue ?? 0)
+
+ var equipmentType: String?
+ if let legs = firstSeg["legs"] as? [[String: Any]],
+ let firstLeg = legs.first,
+ let legInfo = firstLeg["legInfo"] as? [String: Any] {
+ equipmentType = legInfo["equipmentType"] as? String
+ }
+
+ var classes: [JSXFareClass] = []
+ let fares = journey["fares"] as? [[String: Any]] ?? []
+ for fareEntry in fares {
+ let details = fareEntry["details"] as? [[String: Any]] ?? []
+ for detail in details {
+ let availableCount = (detail["availableCount"] as? Int)
+ ?? ((detail["availableCount"] as? NSNumber)?.intValue ?? 0)
+ let classOfService = (detail["classOfService"] as? String) ?? ""
+ let productClass = (detail["productClass"] as? String) ?? ""
+
+ var fareTotal: Double = 0
+ if let pax = detail["passengerFares"] as? [[String: Any]],
+ let first = pax.first {
+ fareTotal = doubleFromJSON(first["fareAmount"]) ?? 0
+ }
+
+ classes.append(JSXFareClass(
+ classOfService: classOfService,
+ productClass: productClass,
+ availableCount: availableCount,
+ fareTotal: fareTotal,
+ revenueTotal: fareTotal,
+ fareBasisCode: nil
+ ))
+ }
+ }
+
+ let totalAvailable = classes.reduce(0) { $0 + $1.availableCount }
+ let lowestFareTotal = classes.map { $0.fareTotal }.filter { $0 > 0 }.min()
+
+ return JSXFlight(
+ flightNumber: fullFlightNumber,
+ carrierCode: carrierCode,
+ origin: originCode,
+ destination: destinationCode,
+ departureLocal: departureLocal,
+ arrivalLocal: arrivalLocal,
+ stops: stops,
+ equipmentType: equipmentType,
+ totalAvailable: totalAvailable,
+ lowestFareTotal: lowestFareTotal,
+ classes: classes
+ )
+ }
+
+ private func readNavitaireToken(waitUpTo seconds: TimeInterval = 3) async -> String? {
+ let deadline = Date().addingTimeInterval(seconds)
+ let js = """
+ return await (async () => {
+ try {
+ const raw = sessionStorage.getItem("navitaire.digital.token");
+ if (!raw) return JSON.stringify({ ok: false, token: "" });
+ const parsed = JSON.parse(raw);
+ const token = (parsed && parsed.token) || "";
+ return JSON.stringify({ ok: !!token, token });
+ } catch (_) {
+ return JSON.stringify({ ok: false, token: "" });
+ }
+ })();
+ """
+
+ while Date() < deadline {
+ if let result = await runJS(js),
+ let token = result["token"] as? String,
+ !token.isEmpty {
+ return token
+ }
+ try? await Task.sleep(nanoseconds: 200_000_000)
+ }
+ return nil
+ }
+
+ private func allCookies(from store: WKHTTPCookieStore) async -> [HTTPCookie] {
+ await withCheckedContinuation { continuation in
+ store.getAllCookies { cookies in
+ continuation.resume(returning: cookies)
+ }
+ }
+ }
+
/// Fire a direct GET /api/nsk/v1/availability/lowfare/estimate from the
/// page context. GETs are known to succeed from WKWebView against
/// api.jsx.com (it's only POST /availability/search/simple that the
@@ -1310,12 +2401,12 @@ private final class JSXFlow {
// Print any extra fields the action returned (sample arrays,
// counts, etc.) BEFORE the generic diagnostic dump.
for (k, v) in stepData.sorted(by: { $0.key < $1.key }) {
- print("[JSX] │ action.\(k): \(truncate(describe(v), limit: 400))")
+ print("[JSX] │ action.\(k): \(truncate(describe(v), limit: 1200))")
}
await dumpDiagnostics(reason: "action failed: \(actionMessage)")
} else if !allOk {
for (k, v) in stepData.sorted(by: { $0.key < $1.key }) {
- print("[JSX] │ action.\(k): \(truncate(describe(v), limit: 400))")
+ print("[JSX] │ action.\(k): \(truncate(describe(v), limit: 1200))")
}
await dumpDiagnostics(reason: "verification failed")
}
@@ -1390,7 +2481,31 @@ private final class JSXFlow {
let parsed = try JSONSerialization.jsonObject(with: data)
return parsed as? [String: Any]
} catch {
- print("[JSX] │ runJS exception: \(error.localizedDescription)")
+ let nsError = error as NSError
+ let message = (nsError.userInfo["WKJavaScriptExceptionMessage"] as? String)
+ ?? (nsError.userInfo["WKJavaScriptExceptionMessageKey"] as? String)
+ ?? ""
+ let line = (nsError.userInfo["WKJavaScriptExceptionLineNumber"] as? NSNumber)?.intValue
+ ?? (nsError.userInfo["WKJavaScriptExceptionLineNumberKey"] as? NSNumber)?.intValue
+ let column = (nsError.userInfo["WKJavaScriptExceptionColumnNumber"] as? NSNumber)?.intValue
+ ?? (nsError.userInfo["WKJavaScriptExceptionColumnNumberKey"] as? NSNumber)?.intValue
+ let sourceURL = (nsError.userInfo["WKJavaScriptExceptionSourceURL"] as? URL)?.absoluteString
+ ?? (nsError.userInfo["WKJavaScriptExceptionSourceURLKey"] as? URL)?.absoluteString
+ ?? ""
+ var detail = error.localizedDescription
+ if !message.isEmpty {
+ detail += " — \(message)"
+ }
+ if let line {
+ detail += " @ line \(line)"
+ if let column {
+ detail += ":\(column)"
+ }
+ }
+ if !sourceURL.isEmpty {
+ detail += " [\(sourceURL)]"
+ }
+ print("[JSX] │ runJS exception: \(detail)")
return nil
}
}
@@ -1408,12 +2523,16 @@ private final class JSXFlow {
const findBtnState = findBtn ? { disabled: findBtn.disabled, aria: findBtn.getAttribute("aria-disabled") } : null;
const probe = window.__jsxProbe || {};
const shortenUrl = u => (u || "").split("?")[0].split("/").slice(-3).join("/");
- const lastCompleted = (probe.allCalls || []).slice(-6).map(c =>
- c.method + " " + c.status + (c.error ? "[" + c.error + "]" : "") + " " + shortenUrl(c.url)
- );
- const lastInitiated = (probe.initiatedCalls || []).slice(-6).map(c =>
- c.method + " (init) " + shortenUrl(c.url)
- );
+ const recentResources = Array.isArray(probe.resources)
+ ? probe.resources.slice(-8).map(r => ({
+ url: shortenUrl(r.url),
+ duration: r.duration || 0,
+ transferSize: r.transferSize || 0,
+ responseEnd: r.responseEnd || 0,
+ initiatorType: r.initiatorType || ""
+ }))
+ : [];
+ const searchResources = recentResources.filter(r => String(r.url || "").includes("availability/search/simple"));
// Surface any error-flagged inputs so we can spot form validation failures.
const errorMarkers = Array.from(document.querySelectorAll(
"[class*='ng-invalid'], [class*='mat-form-field-invalid'], [class*='error']"
@@ -1429,8 +2548,8 @@ private final class JSXFlow {
href: location.href,
stationBtns, matOptions, calendar,
findBtnState,
- lastCompleted,
- lastInitiated,
+ recentResources,
+ searchResources,
errorMarkers
});
})();
@@ -1444,185 +2563,6 @@ private final class JSXFlow {
}
}
- // MARK: - Native URLSession POST (step 17)
-
- /// Fires the `/availability/search/simple` POST via a native URLSession
- /// request rather than from inside the WebKit web-content process.
- /// URLSession uses iOS's native HTTPS stack whose TLS/HTTP2 fingerprint
- /// matches Safari, so Akamai accepts it where it rejects WKWebView's
- /// script-side `fetch()`/`XHR`.
- ///
- /// Forwards the session cookies from `WKHTTPCookieStore` (including
- /// HttpOnly Akamai cookies that `document.cookie` can't read) and the
- /// anonymous JWT from `sessionStorage["navitaire.digital.token"]`.
- ///
- /// On success, stores the response body on `self.capturedBody` so the
- /// parse step can read it. On failure, calls `fail(...)` semantics are
- /// handled by the caller checking `self.capturedBody`.
- private func nativePOSTSearchSimple() async {
- stepNumber += 1
- let label = "STEP \(String(format: "%02d", stepNumber))"
- let name = "POST /availability/search/simple via native URLSession"
- print("[JSX] ┌─ \(label) \(name)")
- let start = Date()
-
- // 1. Read the auth token out of sessionStorage. This is the only JS
- // call — everything else is native.
- let tokenResult = await runJS("""
- return await (async () => {
- const readToken = () => {
- try {
- const raw = sessionStorage.getItem("navitaire.digital.token");
- if (!raw) return "";
- const parsed = JSON.parse(raw);
- return (parsed && parsed.token) || "";
- } catch (_) { return ""; }
- };
- let token = readToken();
- if (!token) {
- const deadline = Date.now() + 3000;
- while (Date.now() < deadline) {
- await new Promise(r => setTimeout(r, 200));
- token = readToken();
- if (token) break;
- }
- }
- return JSON.stringify({ ok: !!token, token: token || "" });
- })();
- """)
- let token = (tokenResult?["token"] as? String) ?? ""
- if token.isEmpty {
- print("[JSX] │ action: no auth token in sessionStorage after 3s wait")
- let elapsed = String(format: "%.2fs", Date().timeIntervalSince(start))
- print("[JSX] └─ \(label) FAIL (\(elapsed))")
- return
- }
- print("[JSX] │ action.token: \(token.prefix(24))…")
-
- // 2. Pull all cookies out of the WKWebView cookie store. This
- // includes HttpOnly cookies that `document.cookie` can't see —
- // which is critical because Akamai's session cookies are HttpOnly.
- guard let webView = self.webView else {
- print("[JSX] │ action: webView is nil")
- print("[JSX] └─ \(label) FAIL")
- return
- }
- let allCookies: [HTTPCookie] = await webView.configuration
- .websiteDataStore.httpCookieStore.allCookies()
- // Filter to cookies that would actually be sent to api.jsx.com.
- // HTTPCookie.domain can be "jsx.com" (host and all subdomains),
- // ".jsx.com" (same meaning, older style), or "api.jsx.com".
- let jsxCookies = allCookies.filter { cookie in
- let d = cookie.domain.lowercased()
- return d == "api.jsx.com"
- || d == "jsx.com" || d == ".jsx.com"
- || d.hasSuffix(".jsx.com")
- }
- let cookieHeader = jsxCookies.map { "\($0.name)=\($0.value)" }.joined(separator: "; ")
- print("[JSX] │ action.cookies: \(jsxCookies.count) from WKWebView store — \(jsxCookies.map(\.name).sorted().joined(separator: ", "))")
-
- // 3. Build the request. Headers mirror what the JSX SPA sends, so
- // Akamai has no reason to flag us. User-Agent matches the UA we
- // set on the WKWebView in step 01.
- guard let url = URL(string: "https://api.jsx.com/api/nsk/v4/availability/search/simple") else {
- print("[JSX] │ action: invalid URL")
- print("[JSX] └─ \(label) FAIL")
- return
- }
- var request = URLRequest(url: url)
- request.httpMethod = "POST"
- request.setValue("application/json", forHTTPHeaderField: "Content-Type")
- request.setValue("application/json, text/plain, */*", forHTTPHeaderField: "Accept")
- request.setValue(token, forHTTPHeaderField: "Authorization")
- request.setValue("https://www.jsx.com", forHTTPHeaderField: "Origin")
- request.setValue("https://www.jsx.com/home/search", forHTTPHeaderField: "Referer")
- request.setValue(
- "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 "
- + "(KHTML, like Gecko) Version/17.4 Safari/605.1.15",
- forHTTPHeaderField: "User-Agent"
- )
- if !cookieHeader.isEmpty {
- request.setValue(cookieHeader, forHTTPHeaderField: "Cookie")
- }
-
- let bodyDict: [String: Any] = [
- "beginDate": self.date,
- "destination": self.destination,
- "origin": self.origin,
- "passengers": ["types": [["count": 1, "type": "ADT"]]],
- "taxesAndFees": 2,
- "filters": [
- "maxConnections": 4,
- "compressionType": 1,
- "sortOptions": [4],
- "fareTypes": ["R"],
- "exclusionType": 2
- ],
- "numberOfFaresPerJourney": 10,
- "codes": ["currencyCode": "USD"],
- "ssrCollectionsMode": 1
- ]
- guard let bodyData = try? JSONSerialization.data(withJSONObject: bodyDict) else {
- print("[JSX] │ action: failed to serialize request body")
- print("[JSX] └─ \(label) FAIL")
- return
- }
- request.httpBody = bodyData
-
- // 4. Fire via URLSession.shared. URLSession's default ephemeral
- // session uses iOS's native HTTPS stack — same TLS fingerprint as
- // Safari — which is what Akamai is happy to serve.
- let session = URLSession.shared
- do {
- let (data, response) = try await session.data(for: request)
- guard let http = response as? HTTPURLResponse else {
- print("[JSX] │ action: non-HTTP response")
- print("[JSX] └─ \(label) FAIL")
- return
- }
- let bodyText = String(data: data, encoding: .utf8) ?? ""
- print("[JSX] │ action: URLSession status=\(http.statusCode), body=\(bodyText.count) bytes")
-
- let statusOk = (200..<300).contains(http.statusCode)
- let bodyOk = bodyText.count > 100
- let parseOk: Bool
- if let d = bodyText.data(using: .utf8),
- let root = try? JSONSerialization.jsonObject(with: d) as? [String: Any],
- let payload = root["data"] as? [String: Any],
- payload["results"] is [[String: Any]] {
- parseOk = true
- } else {
- parseOk = false
- }
-
- let g1 = statusOk ? "✓" : "✗"
- let g2 = bodyOk ? "✓" : "✗"
- let g3 = parseOk ? "✓" : "✗"
- print("[JSX] │ verify \(g1) status is 2xx — status=\(http.statusCode)")
- print("[JSX] │ verify \(g2) body is non-empty — \(bodyText.count) bytes")
- print("[JSX] │ verify \(g3) body parses as JSON with data.results")
-
- if statusOk && bodyOk && parseOk {
- self.capturedBody = bodyText
- } else {
- // Surface a snippet of whatever we got back so we can see
- // what Akamai / Navitaire sent instead of the expected
- // payload.
- let preview = String(bodyText.prefix(500))
- print("[JSX] │ response preview: \(preview)")
- }
-
- let elapsed = String(format: "%.2fs", Date().timeIntervalSince(start))
- let status = (statusOk && bodyOk && parseOk) ? "OK" : "FAIL"
- print("[JSX] └─ \(label) \(status) (\(elapsed))")
- } catch {
- let nsErr = error as NSError
- print("[JSX] │ action: URLSession error: \(error.localizedDescription) [domain=\(nsErr.domain) code=\(nsErr.code)]")
- let elapsed = String(format: "%.2fs", Date().timeIntervalSince(start))
- print("[JSX] └─ \(label) FAIL (\(elapsed))")
- }
- }
-
// MARK: - JS snippet builders
private func selectStationActionJS(indexIsDestination: Bool) -> String {
diff --git a/JSX_NOTES.md b/JSX_NOTES.md
index 6872750..247feb5 100644
--- a/JSX_NOTES.md
+++ b/JSX_NOTES.md
@@ -14,20 +14,25 @@ hardware against the live production site in April 2026.
2. You **cannot** call that endpoint from outside a loaded `jsx.com` page —
Akamai will reject the request with an HTTP/2 protocol error based on the
TLS fingerprint of whatever's making the call.
-3. You **can** call it from inside a loaded `jsx.com` page, using the
- browser's own `fetch()` with the anonymous token the SPA stashes in
- `sessionStorage["navitaire.digital.token"]`. Same-origin + browser TLS +
- browser cookies means Akamai sees it as a normal user request.
-4. Driving the on-page UI to submit the search form is a dead end in
- **WKWebView** (but works in Playwright) because of a subtle trusted-event
- issue described below.
+3. Real Chrome succeeds when you actually drive the full one-way flow:
+ select `One Way`, fill origin and destination, pick the depart date,
+ click `DONE`, then click `FIND FLIGHTS`. That fires
+ `POST /api/nsk/v4/availability/search/simple` and lands on
+ `/booking/select`.
+4. In WKWebView, the safest runtime strategy is layered: drive the same UI
+ flow first, try the real `FIND FLIGHTS` button, then fall back to the
+ component's `search()` method, then finally to a direct in-page
+ `fetch()` if page state still does not materialize.
The working pattern is therefore:
Navigate browser → jsx.com (real page load)
Wait for SPA bootstrap (station buttons exist, token call finishes)
- Read token from sessionStorage
- POST /api/nsk/v4/availability/search/simple ← from inside the page
+ Select One Way / route / date
+ Click DONE
+ Click FIND FLIGHTS
+ Wait for booking/select or Angular availability state
+ Fallback: component.search() or direct in-page POST if needed
Parse the response
---
@@ -281,70 +286,40 @@ won't surface any error to the DOM.
---
-## WKWebView vs Playwright — the trusted-events trap
+## Browser validation and WKWebView strategy
-This is the single most important finding from this session.
+The earlier "WKWebView cannot submit the form" theory was too strong. The
+browser probe that only failed `POST /search/simple` had not actually driven
+the same successful user flow Chrome uses.
-### The symptom
+### What is confirmed
-In WKWebView, after driving the entire UI (one-way, origin, destination,
-day cell, DONE button), the depart-date input visually shows `"Sat, Apr 11"`
-and the Find Flights button is visually enabled. Clicking it fires the click
-handler (you can prove it with a capture listener), but no POST to
-`/availability/search/simple` happens — ever. The only network call that
-fires after the click is the token refresh that was already scheduled.
+- Real Chrome does succeed when the automation performs the whole flow:
+ `One Way` -> origin -> destination -> depart date -> `DONE` ->
+ `FIND FLIGHTS`.
+- That path produces a live `POST /api/nsk/v4/availability/search/simple`
+ with HTTP `200` and advances the page to `https://www.jsx.com/booking/select`.
+- The response contains per-flight availability counts that the app can map
+ back to `XE` flights.
-### The cause
+### What remains true in WKWebView
-WKWebView's synthetic DOM events produced by
-`element.dispatchEvent(new MouseEvent('click', {...}))` have
-`event.isTrusted === false`. JSX's custom datepicker only commits its
-day-cell selection into its Angular `FormControl` on a **trusted** user
-gesture. So the synthetic click on a day cell visually highlights the cell,
-lets DONE close the picker, and updates the input's display value — but the
-underlying FormControl stays `null`.
+Synthetic events can still be brittle. A visually-filled form is not enough;
+the page may still reject the search if the component's internal state is not
+fully committed. Because of that, the iOS fetcher should not rely on exactly
+one trigger path.
-When Find Flights is then clicked, the handler runs `search()`, which does:
+### Current iOS runtime strategy
-```ts
-search() {
- if (this.form.invalid) {
- this.form.markAllAsTouched();
- return;
- }
- this.api.post('/availability/search/simple', this.buildBody());
-}
-```
+`Flights/Services/JSXWebViewFetcher.swift` step 17 now does this:
-Form is invalid because `departDate` FormControl is `null`, so the method
-returns early. No POST. Silent failure.
+1. Prime the Angular search component with the target date.
+2. Click the real `FIND FLIGHTS` button and wait for availability state.
+3. If that does not materialize data, call `component.search()`.
+4. If that still fails, issue the direct in-page `fetch()` POST as the last fallback.
-### Why Playwright doesn't hit this
-
-Playwright's `page.click()` and `locator.click()` don't produce synthetic
-DOM events — they go through CDP's `Input.dispatchMouseEvent`, which
-produces events indistinguishable from real user input, including
-`isTrusted === true`. JSX's picker accepts those and commits the date.
-
-### Why Angular's `markAllAsTouched` workaround doesn't help
-
-You can walk `__ngContext__` on every element looking for `FormControl`
-instances and call `markAllAsTouched()` + `updateValueAndValidity()`. This
-does trigger revalidation and reveals all the currently-invalid fields, but
-it doesn't populate the empty date control — it just marks it dirty. The
-underlying value is still `null` because nothing wrote to it.
-
-### The WKWebView workaround
-
-Don't click Find Flights. Instead, call
-`/api/nsk/v4/availability/search/simple` directly via `fetch()` from the
-page context after reading the token out of `sessionStorage`. You still do
-the UI-driving steps (for page warm-up, session establishment, and as a
-smoke test that the site is functional), but the actual data fetch happens
-via a direct API call whose request shape matches exactly what
-`search()` would have posted.
-
-This is what `Flights/Services/JSXWebViewFetcher.swift` step 17 does.
+That keeps the app aligned with the proven Chrome behavior without betting the
+entire integration on one fragile DOM event path.
---
@@ -357,8 +332,8 @@ JSX fronts `api.jsx.com` with Akamai Bot Manager. Observed behavior:
| Plain `curl`, `fetch` from Node, any external HTTP client | Blocked. Almost all endpoints return HTML challenge page or Akamai error. |
| Playwright's built-in `chromium.launch()` (both bundled chromium and `channel: "chrome"`) | GET requests succeed, but `POST /availability/search/simple` specifically returns `ERR_HTTP2_PROTOCOL_ERROR`. Playwright injects enough automation bits for Akamai to flag the TLS/H2 fingerprint. |
| Real Chrome spawned as a plain process + Playwright attached via `chromium.connectOverCDP()` | **Works reliably.** Chrome has the expected fingerprint and Playwright is only driving it via CDP, not altering it. |
-| WKWebView on macOS / iOS | GET requests succeed. Direct `POST /availability/search/simple` from inside a loaded `jsx.com` page via `fetch()` also succeeds. The browser session's cookies and TLS fingerprint are trusted. |
-| WKWebView with UI-driven Find Flights click | Fails — but for an unrelated reason (the trusted-events trap above). Angular never fires the POST in the first place, so Akamai never sees it. |
+| WKWebView on macOS / iOS | Same-origin traffic from a real loaded `jsx.com` page can work, but the most robust app strategy is still layered because DOM-driven submission can be sensitive to page state and timing. |
+| WKWebView with the current app flow | Try real `FIND FLIGHTS` first, then `component.search()`, then direct in-page `fetch()`. This is the runtime path the app now uses. |
Observations:
@@ -368,25 +343,20 @@ Observations:
---
-## Network interceptor pattern
+## Network observation
-If you want to capture JSX traffic programmatically (e.g. in WKWebView or
-Playwright), override `window.fetch` and `XMLHttpRequest` to tee every
-request/response to a probe object. Two things to track separately:
+For the app runtime, prefer passive observation over wrapping `fetch()` or
+`XMLHttpRequest`. The current iOS flow uses a `PerformanceObserver` to record
+`api.jsx.com` resource entries without touching the request pipeline.
-1. **Initiated calls** — every URL passed to `fetch()` or
- `XMLHttpRequest.send()`, recorded *before* awaiting the response.
-2. **Completed calls** — every call that returned a response (any status),
- plus an error marker on network failure.
+That gives enough signal to answer:
-This lets you tell apart "Angular's `search()` never fired a POST" (nothing
-in initiated calls) from "Angular fired a POST but the network rejected it"
-(initiated but not completed, error flag set). This distinction was critical
-for diagnosing the WKWebView trusted-events issue — without it, both failure
-modes look like "no searchSimple response seen".
+1. Did the page attempt `/availability/search/simple` at all?
+2. Did the page advance to `/booking/select`?
+3. Did Angular availability state appear after the search trigger?
See the `window.__jsxProbe` setup in
-`Flights/Services/JSXWebViewFetcher.swift` step 4 for a working
+`Flights/Services/JSXWebViewFetcher.swift` step 4 for the current
implementation.
---
diff --git a/api_docs/airlines_request.md b/api_docs/airlines_request.md
new file mode 100644
index 0000000..e0ae24d
--- /dev/null
+++ b/api_docs/airlines_request.md
@@ -0,0 +1,1230 @@
+# Airlines API Reverse Engineering — Complete Findings
+
+Everything I know from reverse-engineering 9 airline mobile apps (Android APKs and one decrypted iOS IPA) for flight loads, standby lists, and flight status data. Last updated 2026-04-11.
+
+---
+
+## TL;DR — Status by airline
+
+| Airline | Flight status | Loads / standby | Auth |
+|---|---|---|---|
+| **United Airlines** | yes (curl-able via Playwright) | **yes — full per-cabin loads + standby list** | anonymous token |
+| **American Airlines** | yes | **yes — waitlist + seats per class** | none (mobile UA only) |
+| **Spirit** | yes (curl direct) | no (ULCC, no standby) | static APIM key |
+| **JetBlue** | yes (curl direct) | yes via PNR | API key + check-in session |
+| **Korean Air** | yes | partial (`flightSeatCount` returns 0 for far-out dates) | none |
+| **Emirates** | yes (curl direct) | staff travel only via PNR | none for status |
+| **Delta** | yes (mobile API curl-able with mobile UA) | **no public path** — all gated by PNR or auth | mixed |
+| **Alaska** | yes | requires confirmation code | mobile API |
+| **Frontier** | not analyzed | — | — |
+| **British Airways** | not deeply analyzed | — | — |
+
+**Bottom line on loads:** United and American expose true seat counts and standby lists with no PNR. Everyone else either requires a PNR, an authenticated session, or doesn't have the data at all.
+
+---
+
+## Architecture overview
+
+### Three access tiers across all airlines
+
+1. **Plain HTTP (curl-able):** Spirit, JetBlue, Emirates, Korean Air, Delta `flight-status-mobile/details`
+2. **Playwright with mobile User-Agent:** American (`cdn.flyaa.aa.com`), Delta `flight-status/details` (web variant)
+3. **Playwright with full browser session + Akamai cookies:** United (`united.com`), Delta `offers/shop` (still gated by auth on top)
+
+### Anti-bot protection by airline
+
+| Airline | WAF/CDN | Bot detection | Bypass strategy |
+|---|---|---|---|
+| United | Akamai | Akamai BMP | Playwright session token from page load |
+| American | Akamai | Akamai ACF sensor | Mobile UA `Android/2025.31 Pixel 7|14|...|AmericanAirlines` passes validation |
+| Delta | Dynatrace + Akamai BMP | `AkamaiBMP.framework` (confirmed in iOS bundle) | Mobile UA `FlyDelta/24.10.1 (Pixel 7; Android 14; Build/UQ1A.240205.004)` for `mobile-api`; shop endpoints fail without sensor data |
+| Spirit | Akamai | CyberFend BMP | Static APIM key works for GET; POST blocked without sensor data |
+| JetBlue | Azure APIM | Static API key | Just send `apikey` header |
+| Korean Air | minimal | minimal | `channel: app` header |
+| Emirates | none on flight-status | — | Just curl |
+| Alaska | minimal | minimal | mobile API path `/1/guestservices/customermobile/` |
+
+---
+
+## 1. UNITED AIRLINES — fully working
+
+**Domain:** `https://www.united.com`
+**Auth:** anonymous token (~30 min lifetime)
+**Method:** Playwright → navigate to united.com → `page.evaluate(fetch())`
+
+### Step 1 — get token
+```
+GET /api/auth/anonymous-token
+```
+Response:
+```json
+{ "data": { "token": { "hash": "DAAAA...", "expiresAt": "..." } } }
+```
+
+### Step 2 — flight loads (the prize)
+```
+GET /api/flightstatus/upgradeListExtended?flightNumber={NUM}&flightDate={YYYY-MM-DD}&fromAirportCode={ORIGIN}
+Headers:
+ x-authorization-api: bearer {token.hash}
+ Accept: application/json
+```
+
+Response (full per-cabin loads + standby + cleared upgrades):
+```json
+{
+ "segment": {
+ "airlineCode": "UA",
+ "flightNumber": 2238,
+ "flightDate": "20260408",
+ "departureAirportCode": "EWR",
+ "arrivalAirportCode": "LAX",
+ "equipmentDescriptionLong": "Boeing 777-200ER",
+ "departed": false
+ },
+ "pbts": [
+ { "cabin": "Front", "capacity": 50, "authorized": 50, "booked": 50,
+ "held": 0, "reserved": 0, "revenueStandby": 0, "waitList": 0,
+ "jump": 0, "group": 0, "ps": 1, "sa": 5 },
+ { "cabin": "Middle", "capacity": 24, "booked": 16, ... },
+ { "cabin": "Rear", "capacity": 202, "booked": 164, "revenueStandby": 2, "sa": 4 }
+ ],
+ "checkInSummaries": [
+ { "cabin": "Front", "capacity": 50, "total": 50,
+ "etktPassengersCheckedIn": 50, "revStandbyCheckedInWithoutSeats": 0,
+ "nonRevStandbyCheckedInWithoutSeats": 0, "children": 0, "infants": 0, "bags": 0 }
+ ],
+ "front": {
+ "cleared": [
+ { "currentCabin": "Front", "bookedCabin": "Rear",
+ "firstName": "T", "lastName": "JEN", "passengerName": "T/JEN",
+ "seatNumber": "1G", "clearanceType": "Upgrade", "skipped": false }
+ ],
+ "standby": []
+ }
+}
+```
+
+### Field reference
+| Field | Meaning |
+|---|---|
+| `pbts[].cabin` | "Front" (Polaris/First), "Middle" (Premium Plus), "Rear" (Economy) |
+| `pbts[].capacity` | Total cabin seats |
+| `pbts[].booked` | Sold/assigned |
+| `pbts[].revenueStandby` | Revenue standby pax |
+| `pbts[].sa` | Space available (non-rev standby) |
+| `pbts[].ps` | Positive space |
+| `pbts[].waitList` | Waitlisted |
+| `front.cleared[]` | Cleared upgrades with name + seat |
+| `front.standby[]` | Standby list ordered |
+
+Derived: `availableSeats = capacity - booked`, `loadFactor = booked / capacity`.
+
+### Other working United endpoints
+- `GET /api/flightstatus/status/{NUM}/{DATE}/{ORIGIN}/{DEST}?carrierCode=UA&useLegDestDate=true` — gates, times, delays, aircraft type, tail
+- `GET /api/flightstatus/seatmap/{NUM}/{DATE}/{ORIGIN}/{DEST}?carrierCode=UA` — interactive seat map
+- `POST /api/flight/FetchSSENestedFlights` — full flight search (SSE stream) returning 40 itineraries with pricing per cabin and booking class codes (RBDs). Booking class only available = nearly full.
+- `POST /api/FlexPricer/CalendarPricing` — low-fare calendar across dates
+
+### Mobile API (legacy, less reliable)
+Base URLs (loaded from runtime URL catalog):
+- Production: `https://smartphone.united.com/UnitedMobileDataServices/api`
+- Preview: `https://smartphone-preview.united.com/UnitedMobileDataServices/api`
+
+Endpoints (all require MileagePlus session):
+- `POST /Shopping/Shop` — main flight search
+- `POST /SeatEngine/PreviewSeatMap` — seat map with availability
+- `GET /StandByList/GetStandbyList` — standby list (load data)
+- `GET /UpgradeList/GetUpgradeList` — upgrade waitlist
+- `POST /Shopping/GetONTimePerformence` — on-time performance
+- `POST /EmployeeReservation/GetFlightAvailability` — employee flight availability
+
+Note: smartphone.united.com times out from non-mobile networks. Web API via Playwright is the working path.
+
+### Quirks
+- Token expires in ~30 min — cache and refresh
+- Token bound to browser session, not portable to curl (TLS fingerprinting)
+- `x-authorization-api: bearer ...` not `Authorization`
+- Token starts with `DAAAA...`
+
+---
+
+## 2. AMERICAN AIRLINES — fully working
+
+**Domain:** `https://cdn.flyaa.aa.com`
+**Auth:** none (mobile UA only)
+**Method:** Playwright with mobile UA headers → navigate → `page.evaluate(fetch())`
+
+### Required headers (set on context)
+```
+User-Agent: Android/2025.31 Pixel 7|14|1080|2400|1.0|AmericanAirlines
+x-clientid: MOBILE
+Accept: application/json
+Content-Type: application/json
+Device-ID: {any-uuid}
+```
+
+**Critical:** the User-Agent format is `Android/{version} {device}|{osVersion}|{width}|{height}|1.0|AmericanAirlines`. Without this exact format, Akamai returns `{"error":["Invalid user-agent header"]}`.
+
+### Step 1 — search flights by route
+```
+GET /apiv2/mobile-flifo/flightSchedules/v1.0
+ ?origin={ORIGIN}
+ &destination={DEST}
+ &departureDay={DAY}
+ &departureMonth={MONTH}
+ &searchType=schedule
+ &noOfFlightsToDisplay=20
+```
+Returns flight list with flight numbers, times, carrier info, `showUpgradeStandbyList`, `allowFSN`.
+
+### Step 2 — waitlist + available seats (the prize)
+```
+GET /api/mobile/loyalty/waitlist/v1.2
+ ?carrierCode=AA
+ &flightNumber={NUM}
+ &departureDate={YYYY-MM-DD}
+ &originAirportCode={ORIGIN}
+ &destinationAirportCode={DEST}
+Headers:
+ x-referrer: fs
+```
+Response:
+```json
+{
+ "relevantList": "First",
+ "waitList": [
+ {
+ "listName": "First",
+ "seatsAvailableLabel": "Available seats",
+ "seatsAvailableValue": 1,
+ "seatsAvailableSemanticColor": "failure",
+ "passengers": [
+ { "order": 1, "displayName": "BRI, K", "cleared": false, "seat": null },
+ { "order": 2, "displayName": "MAT, R", "cleared": false }
+ ]
+ },
+ {
+ "listName": "Standby",
+ "seatsAvailableValue": 45,
+ "seatsAvailableSemanticColor": "success",
+ "passengers": [...]
+ }
+ ]
+}
+```
+
+### Field reference
+| Field | Meaning |
+|---|---|
+| `waitList[].listName` | "First", "Standby", etc. |
+| `waitList[].seatsAvailableValue` | Open seats for that class |
+| `waitList[].seatsAvailableSemanticColor` | "success" (many), "warning" (few), "failure" (≤1) |
+| `passengers[].displayName` | "LAST, F" |
+| `passengers[].order` | 1-based position |
+| `passengers[].cleared` | true if cleared |
+| `passengers[].seat` | Seat if cleared |
+
+### Other AA endpoints (all require mobile UA)
+| Method | Path | Description |
+|---|---|---|
+| POST | `/apiv2/mobile-booking/search/itinerary/v2.0` | Flight search itinerary |
+| POST | `/apiv2/mobile-booking/search/summary/v2.0` | Flight search summary |
+| POST | `/apiv2/mobile-booking/search/weekly/v2.0` | Weekly fare calendar |
+| GET | `/api/mobile-fly/flybff/flightstatus` | Flight status |
+| GET | `/apiv2/mobile-flifo/flightstatus/v1.0` | Flight status (FLIFO) |
+| GET | `/api/mobilemanage/manage_v1/seatInventory` | Seat inventory |
+| POST | `/apiv2/mobile-ancillary-bff/seats/availability/v1.0` | Seat availability |
+| GET | `/apiv2/mobile-manage/seatsLayout/v1.0/aircraftConfig` | Aircraft seat layouts |
+
+### Auth-gated endpoints
+- OAuth2 via `login.aa.com/loyalty/as/token.oauth2`
+- Booking endpoints require `x-acf-sensor-data` (Akamai bot protection sensor) — 403 without it
+- 90s connect timeout, 180s read timeout
+
+### Other base URLs (env-specific)
+| Env | URL |
+|---|---|
+| Production | `https://cdn.flyaa.aa.com` |
+| QA | `https://cdn.kqa1.flyaa.aa.com` |
+| Stage | `https://cdn.kiqa.flyaa.aa.com` |
+| SSO | `https://login.aa.com` |
+
+### Quirks
+- The `/api/mobile/loyalty/waitlist/v1.2` endpoint is the waitlist data — note `loyalty` in the path
+- Add `x-referrer: fs` header on the waitlist call (fs = flight status)
+- Direct curl gets blocked by TLS fingerprinting; must use Playwright
+- The Android APK confirmed the User-Agent format passes Akamai's validation
+
+---
+
+## 3. SPIRIT AIRLINES — partial (status only)
+
+**Domain:** `https://api.spirit.com`
+**Auth:** Static APIM key (decrypted from native lib)
+**Method:** Plain curl/HTTP — no browser needed
+
+### Production base URLs
+| Env | URL |
+|---|---|
+| Production | `https://api.spirit.com/customermobileprod/2.8.0/` |
+| Stage | `https://api.spirit.com/stage-customermobileapi/` |
+| UAT | `https://apiqa.spirit.com/qa01-customermobileapi/` |
+| CMS | `https://content.spirit.com/api/content/` |
+
+### Required header
+```
+Ocp-Apim-Subscription-Key: c6567af50d544dfbb3bc5dd99c6bb177
+```
+
+### Working endpoints
+
+#### Flight status (no token)
+```
+POST /v3/GetFlightInfoBI
+Content-Type: application/json
+Ocp-Apim-Subscription-Key: c6567af50d544dfbb3bc5dd99c6bb177
+Platform: Android
+
+{
+ "departureStation": "FLL",
+ "arrivalStation": "ATL",
+ "departureDate": "2026-04-08"
+}
+```
+Response includes: flight number, gates, terminals, status, times, scheduled vs actual.
+
+#### Stations / route network (no token)
+```
+GET /v1/stations
+Ocp-Apim-Subscription-Key: c6567af50d544dfbb3bc5dd99c6bb177
+```
+Returns all Spirit stations with coordinates, markets, route connections.
+
+#### Dynamic content (no token)
+```
+GET /v1/getdynamiccontent
+Ocp-Apim-Subscription-Key: c6567af50d544dfbb3bc5dd99c6bb177
+```
+
+#### Anonymous token (needs Akamai bypass)
+```
+POST /v2/Token
+Ocp-Apim-Subscription-Key: c6567af50d544dfbb3bc5dd99c6bb177
+{}
+```
+Returns JWT token (~15 min lifetime). Required for most authenticated endpoints. **Blocked by Akamai BMP from curl/Playwright** — needs CyberFend sensor data.
+
+### Auth-gated endpoints (need JWT + Akamai bypass)
+| Method | Path | Description |
+|---|---|---|
+| POST | `/v5/Flight/Search` | Flight search with fares by cabin |
+| POST | `/v1/booking/seatmap` | Seat map |
+| GET | `/v3/booking/seatmaps/journey/{journeyKey}` | Journey seat map |
+| POST | `/v1/calendar/availabledates` | Available dates calendar |
+| POST | `/v1/booking/flightdetails` | Flight details |
+| GET | `/v3/bundle/ssrs` | Bundle availability |
+| GET | `/v1/bundle/UpsellAvailability` | Upsell availability |
+| POST | `/v3/mytrips` | My trips |
+| GET | `/v1/OnD/Countries` | Countries (only needs APIM key) |
+
+### Decrypted APIM keys
+| Environment | Encrypted | Decrypted |
+|---|---|---|
+| Production | `bD+Vg9tjmK4h19uwfGdl...` | **`c6567af50d544dfbb3bc5dd99c6bb177`** |
+| Dev/UAT | `G123dLr8BDvwfr8fkHds...` | `81ffe172c5c741cdac0a2cc13ab19b54` |
+| Stage | `Jh7I2ohTGkMoaQ9VDcu8...` | `daa76fa3c25d423f880b939d56992553` |
+
+### Encryption details
+- Algorithm: AES/CBC/PKCS5Padding
+- Key derivation: SHA-512("1983Miramar"), first 16 bytes
+- IV: `Aw@#EDfTGec3Rtd!`
+- Native library: `libspirit-lib.so`
+
+### Notes
+- Spirit is a ULCC — no standby lists or upgrade waitlists exist in the system
+- Seat-level data is in the seat map, but seat map needs auth + Akamai bypass
+- POST endpoints blocked by Akamai BMP from curl/Playwright (needs CyberFend sensor data from real device)
+- A real Android device or Frida on a rooted device can bypass CyberFend
+
+---
+
+## 4. JETBLUE — partial (status works, loads need PNR)
+
+**API domain:** `https://az-api.jetblue.com`
+**Check-in domain:** `https://mobilecheckin.jetblue.com/checkin/`
+**Auth:** API key (no login)
+**Method:** Plain curl/HTTP
+
+### Static API keys (extracted)
+- Main: **`49fc015f1ba44abf892d2b8961612378`**
+- Seat map / logging: `a5ee654e981b4577a58264fed9b1669c`
+
+### Step 1 — flight status by number (curl works)
+```
+GET https://az-api.jetblue.com/flight-status/get-by-number?number={NUM}&date={YYYY-MM-DD}
+Headers:
+ apikey: 49fc015f1ba44abf892d2b8961612378
+ Accept: application/json
+```
+Response:
+```json
+{
+ "flights": [{
+ "tripOrigin": "LAX", "tripDestination": "JFK",
+ "isConnecting": false, "isThroughFlight": false,
+ "legs": [{
+ "flightNo": "524",
+ "flightStatus": "IN FLIGHT",
+ "flightStatusGroup": "standardPostDeparture",
+ "originAirport": "LAX", "originGate": "16", "originTerminal": "1",
+ "actualDeparture": "...", "scheduledDeparture": "...",
+ "doorCloseTime": "...", "boardingTime": "...",
+ "destinationAirport": "JFK", "destinationGate": "518", "destinationTerminal": "5",
+ "actualArrival": "...", "scheduledArrival": "...",
+ "baggageClaim": "4", "equipmentType": "3NL", "tailNumber": "4074"
+ }]
+ }]
+}
+```
+
+### Step 2 — priority list / loads (REQUIRES PNR)
+```
+Flow:
+ POST registerClient → returns session cookie
+ POST identifyPNR (with confirmation) → validates PNR + name
+ POST retrievePriorityList → returns full load + standby data
+```
+
+`RetrievePriorityListResponse`:
+```json
+{
+ "numberOfCapacityJ": 16,
+ "numberOfCapacityY": 144,
+ "numberOfAvailableSeatsJ": 3,
+ "numberOfAvailableSeatsY": 22,
+ "numberOfConfirmedPassengersJ": 13,
+ "numberOfConfirmedPassengersY": 120,
+ "numberOfAuthorizedSeatsJ": 16,
+ "numberOfAuthorizedSeatsY": 144,
+ "numberOfAuthorizedSeatsTotal": 160,
+ "numberOfConfirmedPassengersTotal": 133,
+ "numberOfStandbyPassengers": 4,
+ "numberOfWaitListedPassengers": 2,
+ "priorityListPassengers": [
+ { "shortLastName": "DOE", "shortFirstName": "J", "code": "SA", "order": 1, "hasSeat": false },
+ { "shortLastName": "SMI", "shortFirstName": "A", "code": "SA", "order": 2, "hasSeat": false }
+ ],
+ "flight": { ... }
+}
+```
+
+This is JetBlue's equivalent of United's `upgradeListExtended` — full capacity/booked/available per cabin (J = Mint, Y = Core), plus the standby passenger list.
+
+### Step 3 — seat map
+```
+POST https://az-api.jetblue.com/mobile_seatmap
+Headers:
+ Ocp-Apim-Subscription-Key: a5ee654e981b4577a58264fed9b1669c
+ Content-Type: application/json
+```
+
+### Notes
+- `registerClient` works with just an airport code; the gate is `identifyPNR` which validates PNR
+- API keys captured from web traffic via Playwright
+- No Akamai involvement on the API endpoints — this is Azure APIM with key-based auth
+
+---
+
+## 5. KOREAN AIR — partial
+
+**Domain:** `https://www.koreanair.com`
+**Auth:** none for flight status
+**Method:** Playwright → navigate → `page.evaluate(fetch())`
+
+### Step 1 — flight search (by number or route)
+```
+POST /api/fs/scheduleFlightSearch/flight/status/app
+Content-Type: application/json
+Accept: application/json
+channel: app
+
+# By flight number
+{
+ "departureDate": "20260408",
+ "departureLocationCode": "",
+ "arrivalLocationCode": "",
+ "flightNumber": "017",
+ "searchOption": "FLTNUM"
+}
+
+# By route
+{
+ "departureDate": "20260408",
+ "departureLocationCode": "ICN",
+ "arrivalLocationCode": "LAX",
+ "flightNumber": "",
+ "searchOption": "ROUTE"
+}
+```
+Response: flight detail list with departure/arrival times, status, cabin classes available.
+
+### Step 2 — seat count (often returns 0)
+```
+POST /api/et/ibeSupport/flightSeatCount
+Content-Type: application/json
+channel: pc
+
+{
+ "carrierCode": "KE",
+ "flightNumber": "017",
+ "departureAirport": "ICN",
+ "arrivalAirport": "LAX",
+ "departureDate": "20260409"
+}
+```
+Response: `{ "seatCount": 0, "carrierCode": "KE", "flightNumber": "017" }`
+
+`seatCount` is the number of available seats. **Returns 0 for far-out dates** — works best within 24-48 hours of departure. May need to call `removeGarbageSession` first to establish IBE session.
+
+### Step 3 — full availability
+```
+POST /api/fs/scheduleFlightSearch/sdcAirMultiAvailability
+Content-Type: application/json
+channel: pc
+
+{
+ "departureDate": "20260409",
+ "departureLocationCode": "ICN",
+ "arrivalLocationCode": "LAX",
+ "flightNumber": "001",
+ "searchOption": "FLTNUM"
+}
+```
+
+### Notes
+- `channel` header required: `app` for flight search, `pc` for seat count
+- `flightSeatCount` is real but only useful close to departure
+- Try with `departureDate` as int to test date-too-far behavior
+
+---
+
+## 6. EMIRATES — flight status only
+
+**Domain:** `https://www.emirates.com`
+**Mobile API:** `https://mobileapp.emirates.com/`
+**Auth:** none for flight status
+**Method:** Plain curl
+
+### Flight status (curl works)
+```
+GET https://www.emirates.com/service/flight-status?departureDate={YYYY-MM-DD}&flight={NUM}
+```
+Response:
+```json
+{
+ "results": [{
+ "airlineDesignator": "EK",
+ "flightNumber": "0221",
+ "flightId": "2026040700221DXB",
+ "flightDate": "2026-04-07",
+ "flightRoute": [{
+ "legNumber": "1",
+ "originActualAirportCode": "DXB",
+ "destinationActualAirportCode": "DFW",
+ "statusCode": "ARVD",
+ "flightPosition": 100,
+ "totalTravelDuration": "17:30",
+ "departureTime": { "schedule": "...", "estimated": "...", "actual": "..." },
+ "arrivalTime": { "schedule": "...", "estimated": "...", "actual": "..." },
+ "departureTerminal": "Terminal 3",
+ "arrivalTerminal": "Terminal D"
+ }]
+ }]
+}
+```
+
+### Staff travel / flight load (requires PNR)
+```
+GET https://mobileapp.emirates.com/olci/v1/checkin/staffinformation/{PNR}/{LASTNAME}
+```
+Returns `FlightLoadResponse`:
+- `isStaffSubLoadTableAvl` — whether subload table is available
+- `staffPax.passengers[]` — staff passenger list with check-in status
+- `flights[]` — per-flight load data
+- Per passenger: `currentPriority`, `totalPriority`, `status`, `flightNumber`
+
+### Notes
+- Flight status is the simplest of all airlines — pure curl, zero auth, zero headers
+- Staff standby/flight load data is for staff travel only and requires PNR + last name
+- Internal backend leaked in response: `business-services-cache-bex-prod.dub.prd01.digitalattract.aws.emirates.prd`
+- Mobile app has full staff travel system: standby priority tracking, class downgrade acceptance, subload questionnaires
+
+---
+
+## 7. DELTA — extensive deep dive (this session)
+
+**Status:** flight status works without PNR. **Loads do NOT have a public path** — every endpoint that returns seat/standby data requires either a SkyMiles login or a valid PNR + name on the flight.
+
+### Working endpoint — flight-status-mobile/details (no PNR, no auth)
+
+```
+POST https://mobile-api.delta.com/flight-status-mobile/details
+Content-Type: application/json
+Accept: application/json
+User-Agent: FlyDelta/24.10.1 (Pixel 7; Android 14; Build/UQ1A.240205.004)
+
+{
+ "airlineCode": "DL",
+ "flightNumber": "996",
+ "flightOriginDate": "2026-04-12"
+}
+```
+
+**3 fields. That's the entire body.** The APK class `m3/a.java` (FlightStatusAirlineRequest) defines this. Domain `aws_mobile_public` (no auth interceptor). Endpoint is on the network whitelist `u3/d.java`.
+
+**Critical:** The User-Agent must look like the Delta mobile app. Without it: 444 from Akamai. With it: 200 OK with full response.
+
+Returns (~26KB JSON):
+- Flight number, ship number (tail), aircraft code/name (e.g. "Airbus A321neo"), industry code
+- Departure: gate, terminal, scheduled/estimated/actual times (local + GMT), ICAO code, station coords
+- Arrival: same fields
+- Performance stats (`a15InTimeStatPct`, `a30DelayedStatPct`, `cancellationStatPct`)
+- Inbound flight info (the flight bringing the aircraft in)
+- `productsByBrands[]` — for each cabin (BE/MAIN/DCP/FIRST), the amenities (Wi-Fi, USB, Studio, etc.) and meals
+
+**What it does NOT include:** `seatsRemaining`, `standbyPriorityInfo`, `upgradeStandbyModel`, any seat counts. Verified by reading the entire response and the `DatedOperatingLeg.java` model which has zero seat fields.
+
+### Working endpoint — flight-status/schedules (route lookup, no PNR)
+
+```
+POST https://flightinformation-api.delta.com/flight-status/schedules
+Content-Type: application/json
+Accept: application/json
+User-Agent: FlyDelta/24.10.1 (Pixel 7; Android 14; Build/UQ1A.240205.004)
+
+{
+ "flightSegments": [{
+ "flightOriginDate": "2026-04-12",
+ "originAirportCode": "ATL",
+ "destinationAirportCode": "LAX",
+ "airlineCode": "DL"
+ }],
+ "filterOptions": {
+ "schedule": {
+ "directOnlyIndicator": false,
+ "includeElapsedOrAccumulatedTime": true,
+ "flightStops": [],
+ "departureTimeRanges": [],
+ "excludeOtherAirlineInd": true,
+ "connections": [{ "connectionPointNum": "", "connectionCity": "", "minConnectionTime": "" }],
+ "startRecord": 1,
+ "endRecord": 30
+ },
+ "availability": { "indicator": false, "seatTypeCode": "A", "onlyRevenueClassInd": false }
+ }
+}
+```
+
+Returns trip list for the route: every flight number, aircraft code, scheduled vs estimated times, status. Confirmed 10 nonstop ATL→LAX trips for a future date. **No seat counts even with `availability.indicator: true`.**
+
+### Working endpoint — gate/boarding-status (no PNR)
+```
+GET https://mobile-api.delta.com/gate/boarding/boarding-status/{FLIGHT}/{DATE}/{ORIGIN}/{DEST}
+Accept: application/json
+User-Agent: FlyDelta/24.10.1 (Pixel 7; Android 14; Build/UQ1A.240205.004)
+```
+Returns boarding zones (visual UI data: name, displayName, gradients, isBoarding). No load data. Returns `{"pollInterval":0}` when flight isn't in boarding window.
+
+### Endpoints that return seat data BUT require auth or PNR
+
+#### `mytrips/getUpgradeAndStandby` (Zulu, JSON) — requires PNR
+```
+POST https://mobile-api.delta.com/mytrips/getUpgradeAndStandby
+
+{
+ "arrivalCity": "LAX",
+ "departCity": "ATL",
+ "departDate": "20260409",
+ "firstName": "JOHN",
+ "flightNumber": "996",
+ "lastName": "DOE",
+ "recordLocator": "ABC123"
+}
+```
+Returns `ASLResponse` with `seatsRemaining`, `totalWaitList`, `passengerStatus`, `standbyPassengers`, `upgradePassengers`, `upgradeSeatRemaining` (per cabin). **All fields required** — `{"errorMessage":"Required fields are missing."}` if any are blank.
+
+#### `getUpgradeAndStandby` (legacy XML) — requires PNR
+```
+POST https://api.delta.com/api/mobile/getUpgradeAndStandby
+Content-Type: application/xml
+```
+Same data, XML wrapping with `RequestInfo` element. Domain `v2`.
+
+#### `trips/today` / `mytrips/today` — requires PNR
+- `trips/today` (legacy XML) on `v3` domain (`api.delta.com/shim2`)
+- `mytrips/today` (Zulu JSON) on `aws_mobile_private`
+- Body: `TodayTripsRequest` containing `TodayTrip[]` with `confirmationNumber`, `firstName`, `lastName`, `pnrHash`
+- Header: `standbySupported: true`
+- Returns `MultiTripsResponse` containing `Leg[]`, each leg has `standbyPriorityInfo` of type `UpgradeStandbyModel`:
+ ```json
+ {
+ "seatsRemaining": "12",
+ "totalWaitList": "5",
+ "currentPosition": null,
+ "upgradeSeatRemaining": [
+ { "classOfService": "F", "seatsRemaining": 2, "totalWaitList": 3 }
+ ],
+ "hasFourCabinConfigurationFlag": true,
+ "brandIdList": ["FIRST", "DCP", "MAIN", "BE"]
+ }
+ ```
+- Returns 500 "Could not process today trips request" with fake PNR
+
+#### `offers/shop` (booking shop) — requires SkyMiles auth
+```
+POST https://mobile-api.delta.com/offers/shop
+```
+Body is `ShopRequest`:
+```json
+{
+ "segments": [{ "departureDate": "...", "origin": "ATL", "destination": "LAX", "connectionAirport": null }],
+ "constraints": [],
+ "version": "2",
+ "tripType": "OW",
+ "passenger": { "adultCount": "1" },
+ "passengers": [...],
+ "priceType": "Revenue",
+ "sortBy": "customScore",
+ "requestType": "NATIVE_SHOP"
+}
+```
+Returns `FlightSearchShopResultsResponse` containing `ShoppingItinerary[]` → `ShoppingFare[]` with per-fare `seatsAvailableCount` (alt name `seatsRemaining`), `seatsRemainingLabel`, `isSoldOut`, `notOffered`, `availableForSale`, `solutionId`. **MockShopV2Response.json in iOS bundle confirms response shape.**
+
+Domain `aws_mobile_private` — needs SkyMiles auth interceptor. From curl: 444 from Akamai BMP.
+
+#### `mwsb/service/shop` — alternate shop endpoint, requires auth
+```
+POST https://api.delta.com/mwsb/service/shop
+Content-Type: application/json
+X-Adapter: mobile
+X-APP-ROUTE: SL-RSB
+X-OFFER-ROUTE: SL-SHOP
+```
+Same `ShopRequest` body, same response shape. Domain `shopbook`. From curl: 444 from Akamai (different host, same problem).
+
+Other variants:
+- `/service/shop` → 403 "Missing Authentication Token"
+- `/offers/shop2` → 401 "Unauthorized"
+
+#### `mbl-flightchange/v1/offers` — flight change shop, requires PNR
+- Domain: aws_mobile_private
+- Returns ShoppingFare[] with seat counts
+- For users changing an existing booking — requires recordLocatorId
+
+#### `seatmap/lsm` — Logical Seat Map
+- On the network whitelist (no-auth path), but the variants `proxy/seatmap/lsm` and `seatmap/lsm` both need session context
+- Returns `SeatMapResponseModel` with cabin layouts and seat availability
+- Body `SeatMapRequestPayload` requires `flightList[]`, `numberOfPassengers`, `recordLocator` (or cart context)
+
+### Network whitelist (`u3/d.java` — endpoints that bypass auth checks)
+```
+/user/login
+/mobile/login
+/service/shop
+/offers/shop
+offers/shop2
+flight-status-mobile/schedule
+flight-status-mobile/details ← confirmed working
+/mobile/getFlightStatus
+/mobile/getFlightStatusByLeg
+mwsb/service/itinerarySearch
+/pf-ws/authn/flows/
+usernameUniqueness
+referenceVerification
+enrollment
+/payment/eDocuments/search
+seatmap/lsm
+```
+Excluded: `/user/loginAndGetDashBrdData`
+
+### Complete domain inventory (Android + iOS combined)
+
+| Domain identifier | URL | Used for | Auth |
+|---|---|---|---|
+| `aws_mobile_public` | `mobile-api.delta.com` | flight status, gate, supportedVersion, checkin/getCompUpgrade, boarding, travelinfo/inspShopOffers | none |
+| `aws_mobile_private` | `mobile-api.delta.com` | offers/shop, mytrips/*, seatmap/*, checkout/*, mbl-flightchange/* | SkyMiles |
+| `aws_mobile_login` | `mobile-api.delta.com` | login flows | OAuth |
+| `v2` | `api.delta.com/api/mobile` | legacy XML: getFlightStatus, getUpgradeAndStandby, getFlightStatusByLeg, getUpgradeEligibilityInfo, /shop, getPNR | mixed |
+| `v3` | `api.delta.com/shim2` | trips/today (legacy XML) | PNR |
+| `v4` | `api.delta.com` | CDP automation, feature toggles | none |
+| `shopbook` | `api.delta.com/mwsb/service` | mwsb shop, itinerarySearch | auth |
+| `acl` | `api.delta.com/mwsb/service` | ACL/IROP | auth |
+| `aws_payment` | `enterprisepayments-api.delta.com` | payment | auth |
+| `aws_performance_stats` | `flightperfstats-api.delta.com` | flight perf stats (`/flightPerformance/v1/statistics`) | none |
+| `aws_travel_policy` | `salespartnersaffiliation-api.delta.com` | corp travel policy | auth |
+| `aws_travel_policy_aem` | `mobilecontent.delta.com` | AEM content | none |
+| `loyaltyApi` | `loyalty-api.delta.com` | `loyaltyActivity/v2/accountActivity/dashboard` | auth |
+| `loyaltyApi2` | `loyalty2-api.delta.com` | `loyaltyProgram/v2/statusTracker/medallionStatus`, `futureActivities`, choice benefits | auth |
+| `catalog_api` | `catalog-api-prd.delta.com/prd` | content catalog | none |
+| `content` | `content-api.delta.com` | content | none |
+| `profile` | `customer-api.delta.com` | profile, save companion, addresses, preferences, GraphQL | auth |
+| `assist` (Android) | `concierge-api.delta.com` | GraphQL chatbot, `endpoint=graphql` | auth |
+| `assist_realtime` | `wss://concierge-api.delta.com/graphql/realtime` | WebSocket chat | auth |
+| **`conversation_agent`** (iOS only) | `conversationalagent-api.delta.com` | newer GraphQL chatbot | auth |
+| `conversation_agent_realtime` (iOS only) | `wss://conversationalagent-api.delta.com/graphql/realtime` | WebSocket chat | auth |
+| **`choiceBenefitContent`** (iOS only) | `wcmdotcom-api.delta.com` | CMS choice benefits | none |
+| `purchase_calculator` | `purchasecalculator-api.delta.com` | trip total | auth |
+| `skyclub_tracker` | `loungeamexvisitreport-api.delta.com` | sky club visits | auth |
+| `inflight_wifi` | `wifi.delta.com/api` | wifi-only | n/a |
+| `aws_error_mapping` | `mobilecontent-dev.delta.com` | error message lookups | none |
+| `encrypt_decrypt` | `encryptdecrypt-api.delta.com` | crypto helper | auth |
+| `web_server` | `www.delta.com` | website | n/a |
+| `cdn` | `www.delta.com/` | CDN | n/a |
+| `signin` | `signin.delta.com` | OAuth login | n/a |
+| `firebase_url` | `flydelta-mobile.firebaseio.com` | Firebase | n/a |
+| `wrapped_deeplink_o` (iOS) | `click.o.delta.com` | deeplinks | n/a |
+| `wrapped_deeplink_t` (iOS) | `click.t.delta.com` | deeplinks | n/a |
+| **(website only)** `flightinformation-api.delta.com` | — | `flight-status/details`, `flight-status/schedules` | session cookie |
+| (website only) `dcomaircraft-api.delta.com` | — | `/flightinformation/fleet` | none |
+| (website only) `amenitiesmeals-api.delta.com` | — | `/flight-status/amenities-meals` | none |
+| (website only) `predictive-api.delta.com` | — | `/getPredictiveCities/{code}` | none |
+| (website only) `rcmd-api.delta.com` | — | `/register` (recommendations) | n/a |
+
+### Every API model with `seatsRemaining` or `totalWaitList`
+
+| Model | Source | Auth | Direct API model? |
+|---|---|---|---|
+| `ASLResponse.java` | `mytrips/getUpgradeAndStandby` (Zulu) or `getUpgradeAndStandby` (legacy XML) | PNR | yes |
+| `UpgradeStandbyModel.java` | embedded as `Leg.standbyPriorityInfo` in `MultiTripsResponse` from `trips/today` | PNR | yes |
+| `ShoppingFare.java` | `offers/shop`, `mwsb/service/shop`, `mbl-flightchange/v1/offers` | auth | yes |
+| `FareDetailModel.java` | constructed by `FlightChangeFlightDetailsBuilder` from `NativeSearchResultsResponse` + `ShoppingFare` | auth | no — derived |
+| `ASLStandby.java` | internal Parcelable, built from `ASLResponse` | PNR | no — internal |
+| `ClassOfService.java` | `com.delta.mobile.services.bean.itineraries`, set programmatically (no `@Expose` on field) | PNR | no — not from wire |
+| `UpgradeSeatRemaining.java` (×2 — todaymode + asl) | nested in ASLResponse / UpgradeStandbyModel | PNR | nested |
+| `CabinAvailability.java` | `getUpgradeEligibilityInfo` | PNR | yes — but Y/N flags only, not counts |
+
+### iOS-specific findings
+
+iOS app: `com.delta.iphone.ver1_7.9.1_und3fined.ipa` (decrypted via und3fined). Bundle: `Payload/FlyDelta.app/`.
+
+Frameworks of interest:
+- `FlyDeltaComms.framework` — networking layer
+- `Today.framework` / `TodayMode.framework` — Today Mode (where standby data lives)
+- `ShopBook.framework` — booking
+- `SeatMap.framework` — seat map
+- `Concierge.framework` — chatbot
+- **`AkamaiBMP.framework`** — confirms Delta uses Akamai BMP with sensor data generation
+- `SharedModels.framework` — shared data models with own `environments.json`
+
+iOS-only domain identifiers (added since the Android version was built):
+- `conversation_agent` (`conversationalagent-api.delta.com`) — replaces `assist`/`concierge-api`
+- `conversation_agent_realtime` — WebSocket
+- `choiceBenefitContent` (`wcmdotcom-api.delta.com`)
+- `wrapped_deeplink_o` / `wrapped_deeplink_t`
+
+iOS-specific test data files (sample API responses bundled in the app):
+- `Frameworks/Today.framework/new_airport_mode.json` — sample `mytrips/today` response with `standbyPriorityInfo: { seatsRemaining: null, currentPosition: null, totalWaitList: null }` per Leg
+- `Frameworks/ShopBook.framework/MockShopV2Response.json` — sample shop response with `seatsAvailableCount: 1` per fare
+- `getPnrResponse_OneWay_WithInfant.json` — sample PNR response
+- `seatmapbffMultipleCabins.json` / `seatmapbffUpperdeck.json` — sample seat map responses
+- `check_in_success_response.json` — sample check-in response
+
+iOS-specific Objective-C properties:
+- `coachClassSeatsAvailable` (NSString) and `firstClassSeatsAvailable` (NSString) — these match Android's `CabinAvailability.comfortClassAvailableFlag` (W) / `firstClassAvailableFlag` (F). They're Y/N flags, not counts. Sourced from `getUpgradeEligibilityInfo` (PNR-bound).
+- `getFlightStatusByFlightNumber:` — Objective-C method. Calls the same legacy V2 `getFlightStatus`/`getFlightStatusByLeg` endpoints. No new wire path.
+- `UpgradeStandbyListRequest` (Swift class in `_TtC8FlyDelta25UpgradeStandbyListRequest`) — same as Android's standby flow.
+
+### Decompilation root
+```
+/Users/m4mini/Desktop/code/airlines/extracted/delta/jadx_out/sources/ (Android)
+/Users/m4mini/Desktop/code/airlines/extracted/delta_ios/Payload/FlyDelta.app/ (iOS)
+```
+
+### Bottom line on Delta
+- **`mobile-api.delta.com/flight-status-mobile/details`** is the only public-without-auth endpoint that returns rich flight data, but it has zero seat counts
+- All paths to `seatsRemaining` / `totalWaitList` / `seatsAvailableCount` go through either:
+ - PNR-bound endpoints (`getUpgradeAndStandby`, `trips/today`, `mytrips/today`)
+ - Auth-bound shop endpoints (`offers/shop`, `mwsb/service/shop`)
+- The Akamai BMP framework (in iOS bundle) is the gate that blocks our scripted shop calls
+- Possible angles not yet pursued: extract sensor-data generation from `AkamaiBMP.framework` and reproduce in script (multi-day RE effort); search for an anonymous SkyMiles guest token endpoint (not found by name)
+
+---
+
+## 8. ALASKA AIRLINES — partial
+
+**Domain:** `https://www.alaskaair.com`
+**Mobile API:** `/1/guestservices/customermobile/`
+**Auth:** confirmation code required for load data
+**Method:** Playwright (website uses shadow DOM) or curl on mobile API paths
+
+### Step 1 — flight status
+```
+GET /1/guestservices/customermobile/flights/status/{AIRLINE}/{NUM}/{YYYY-MM-DD}
+```
+Example: `/1/guestservices/customermobile/flights/status/AS/1084/2026-04-08`
+
+### Step 2 — flight status v2 (by route)
+```
+POST /1/guestservices/customermobile/mobileservices/reservation/flights/status
+
+{
+ "airlineCode": "AS",
+ "flightNumber": "1084",
+ "departureDate": "2026-04-08",
+ "departureCityCode": "SEA",
+ "arrivalCityCode": "LAX"
+}
+```
+Response includes `showPriorityList` boolean indicating if standby list is available for that flight.
+
+### Step 3 — seat availability (REQUIRES confirmation code)
+```
+POST /1/guestservices/customermobile/seats/SeatUpgradesByCabinRec/{CONFIRMATION_CODE}
+
+{
+ "adobeMarketingCloudVisitorID": "{visitor_id}"
+}
+```
+Response:
+```json
+[
+ {
+ "flightNumber": 1084,
+ "origin": "SEA",
+ "destination": "LAX",
+ "cabinType": "First",
+ "remainingSeats": 4,
+ "upgradePrice": 149.00,
+ "equipment": "Boeing 737-900ER"
+ }
+]
+```
+
+### Step 4 — full FlightLoad (requires runtime APIM key)
+```
+POST /seats/waitlist
+```
+Returns `FlightLoad` with `authorized`, `available`, `booked`, `checkedIn` per cabin + standby/upgrade lists. The `confirmationCode` field is nullable in the request model, but the APIM key is loaded from Firebase Remote Config at runtime — not statically present in the APK.
+
+### Notes
+- Uses Ktor HTTP client (modern Kotlin)
+- Mobile API paths start with `/1/guestservices/customermobile/`
+- Website uses deep shadow DOM — Playwright automation is complex
+- To get the Firebase APIM key: install app on device, capture from traffic
+- Alternative: `GET /viewseatmap/seatmap` to count open seats from the map
+
+### `remote_config_defaults.xml` (extracted from APK)
+Notable feature flags (defaults — overridden by Firebase Remote Config):
+```xml
+min_version_code0
+show_save_to_google_paytrue
+preorder_food_polling_start_days-14
+seatmap_advisory_enabledfalse
+show_health_agreementtrue
+health_agreement_infohttps://m.alaskaair.com/healthagreement
+is_card_on_file_enabledfalse
+is_new_home_page_enabledtrue
+is_pay_at_airport_boarding_pass_enabledfalse
+is_skip_security_line_enabledfalse
+is_bag_tracking_enabledfalse
+major_schedule_change_phone_numbertel:+18778624093
+```
+(Full list extracted; nothing in defaults exposes the APIM key — it's runtime only.)
+
+---
+
+## 9. FRONTIER AIRLINES — not analyzed
+
+APK not available from any third-party source tested. Frontier is a ULCC like Spirit — minimal standby/upgrade features expected. Not yet pulled.
+
+---
+
+## 10. BRITISH AIRWAYS — not deeply analyzed
+
+APK extracted but not deep-dived. BA is a oneworld carrier so similar to AA in structure, but the standby/upgrade flow lives in the executive club portal (auth-gated).
+
+---
+
+## Anti-bot protection summary
+
+| Airline | WAF | Bot detection | Difficulty | Working bypass |
+|---|---|---|---|---|
+| United | Akamai | Akamai BMP | Medium | Playwright session token |
+| American | Akamai | Akamai ACF sensor | Medium | Mobile UA `Android/...|AmericanAirlines` |
+| Delta | Dynatrace + Akamai BMP | `AkamaiBMP.framework` | High | Mobile UA for `mobile-api`; shop endpoints have no known bypass |
+| Spirit | Akamai | CyberFend BMP | Medium | APIM key for GET; POST blocked from scripts |
+| JetBlue | Azure APIM | Static API key | Low | Just send the key |
+| Korean Air | minimal | minimal | Low | `channel: app` header |
+| Emirates | none on flight-status | — | None | Curl |
+| Alaska | minimal | minimal | Low | Mobile API paths |
+
+---
+
+## Decrypted keys & secrets
+
+### Spirit Azure APIM
+| Env | Decrypted key |
+|---|---|
+| **Production** | **`c6567af50d544dfbb3bc5dd99c6bb177`** |
+| Dev/UAT | `81ffe172c5c741cdac0a2cc13ab19b54` |
+| Stage | `daa76fa3c25d423f880b939d56992553` |
+
+Decryption: AES/CBC/PKCS5Padding, SHA-512("1983Miramar")[:16] key, IV `Aw@#EDfTGec3Rtd!`. Source: native lib `libspirit-lib.so`.
+
+### JetBlue Azure APIM
+| Use | Key |
+|---|---|
+| Main API (`az-api.jetblue.com`) | **`49fc015f1ba44abf892d2b8961612378`** |
+| Seat map / logging | `a5ee654e981b4577a58264fed9b1669c` |
+
+Captured from web traffic via Playwright.
+
+### Other notable extracted strings
+- Delta TrackJS token (front-end): `40c5d1df6a8049dfa571d3e4324bef72` (app `www-nextgen-flight-status`)
+- Delta business chat ID: `6431449c-701a-432c-8a47-275b730ac559`
+- Delta Adobe app ID: `launch-ENee224a00122947fdbbb787826f1099dc`
+
+---
+
+## Reusable Playwright wrapper
+
+```javascript
+const { chromium } = require('playwright');
+
+async function queryAirline(airlineDomain, setupHeaders, apiCall) {
+ const browser = await chromium.launch({ headless: true });
+ const context = await browser.newContext();
+ if (setupHeaders) await context.setExtraHTTPHeaders(setupHeaders);
+ const page = await context.newPage();
+ await page.goto(airlineDomain);
+ await page.waitForTimeout(5000);
+ const result = await page.evaluate(apiCall);
+ await browser.close();
+ return result;
+}
+
+// UNITED — get flight loads
+const unitedLoads = await queryAirline(
+ 'https://www.united.com/en/us/flightstatus',
+ null,
+ async () => {
+ const tokenResp = await fetch('/api/auth/anonymous-token');
+ const { data } = await tokenResp.json();
+ const token = data.token.hash;
+ const resp = await fetch(
+ '/api/flightstatus/upgradeListExtended?flightNumber=2238&flightDate=2026-04-08&fromAirportCode=EWR',
+ { headers: { 'Accept': 'application/json', 'x-authorization-api': 'bearer ' + token } }
+ );
+ return resp.json();
+ }
+);
+
+// AMERICAN — get waitlist + available seats
+const aaLoads = await queryAirline(
+ 'https://cdn.flyaa.aa.com/apiv2/mobile-flifo/flightSchedules/v1.0?origin=DFW&destination=IAH&departureDay=9&departureMonth=4&searchType=schedule&noOfFlightsToDisplay=20',
+ {
+ 'User-Agent': 'Android/2025.31 Pixel 7|14|1080|2400|1.0|AmericanAirlines',
+ 'x-clientid': 'MOBILE',
+ 'Accept': 'application/json',
+ 'Device-ID': 'device-001'
+ },
+ async () => {
+ const resp = await fetch(
+ 'https://cdn.flyaa.aa.com/api/mobile/loyalty/waitlist/v1.2?carrierCode=AA&flightNumber=2209&departureDate=2026-04-08&originAirportCode=DFW&destinationAirportCode=IAH',
+ { headers: { 'Accept': 'application/json', 'x-referrer': 'fs' } }
+ );
+ return resp.json();
+ }
+);
+
+// KOREAN AIR — flight status
+const keStatus = await queryAirline(
+ 'https://www.koreanair.com',
+ null,
+ async () => {
+ const resp = await fetch('/api/fs/scheduleFlightSearch/flight/status/app', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'channel': 'app' },
+ body: JSON.stringify({
+ departureDate: '20260408',
+ flightNumber: '017',
+ searchOption: 'FLTNUM',
+ departureLocationCode: '',
+ arrivalLocationCode: ''
+ })
+ });
+ return resp.json();
+ }
+);
+```
+
+## Plain HTTP examples (no Playwright)
+
+```bash
+# SPIRIT — flight status
+curl -X POST "https://api.spirit.com/customermobileprod/2.8.0/v3/GetFlightInfoBI" \
+ -H "Content-Type: application/json" \
+ -H "Ocp-Apim-Subscription-Key: c6567af50d544dfbb3bc5dd99c6bb177" \
+ -H "Platform: Android" \
+ -d '{"departureStation":"FLL","arrivalStation":"ATL","departureDate":"2026-04-08"}'
+
+# JETBLUE — flight status
+curl "https://az-api.jetblue.com/flight-status/get-by-number?number=524&date=2026-04-08" \
+ -H "apikey: 49fc015f1ba44abf892d2b8961612378" \
+ -H "Accept: application/json"
+
+# EMIRATES — flight status (zero auth!)
+curl "https://www.emirates.com/service/flight-status?departureDate=2026-04-08&flight=221"
+
+# DELTA — flight status (mobile UA required)
+curl -X POST "https://mobile-api.delta.com/flight-status-mobile/details" \
+ -H "Content-Type: application/json" \
+ -H "Accept: application/json" \
+ -H "User-Agent: FlyDelta/24.10.1 (Pixel 7; Android 14; Build/UQ1A.240205.004)" \
+ -d '{"airlineCode":"DL","flightNumber":"996","flightOriginDate":"2026-04-12"}'
+
+# DELTA — gate boarding status (mobile UA required)
+curl "https://mobile-api.delta.com/gate/boarding/boarding-status/996/2026-04-12/ATL/LAX" \
+ -H "Accept: application/json" \
+ -H "User-Agent: FlyDelta/24.10.1 (Pixel 7; Android 14; Build/UQ1A.240205.004)"
+
+# DELTA — schedules (mobile UA required, web variant works too)
+curl -X POST "https://flightinformation-api.delta.com/flight-status/schedules" \
+ -H "Content-Type: application/json" \
+ -H "User-Agent: FlyDelta/24.10.1 (Pixel 7; Android 14; Build/UQ1A.240205.004)" \
+ -d '{"flightSegments":[{"flightOriginDate":"2026-04-12","originAirportCode":"ATL","destinationAirportCode":"LAX","airlineCode":"DL"}],"filterOptions":{"schedule":{"directOnlyIndicator":false,"includeElapsedOrAccumulatedTime":true,"flightStops":[],"departureTimeRanges":[],"excludeOtherAirlineInd":true,"connections":[{"connectionPointNum":"","connectionCity":"","minConnectionTime":""}],"startRecord":1,"endRecord":30},"availability":{"indicator":false,"seatTypeCode":"A","onlyRevenueClassInd":false}}}'
+```
+
+---
+
+## Rate limits & best practices
+
+- **United:** Token expires in ~30 min. Cache and refresh. No known rate limit.
+- **American:** No token. Akamai may throttle if too many requests from same browser context. Rotate browser contexts.
+- **Spirit:** APIM key shared across all app users. No known rate limit but don't abuse.
+- **JetBlue:** API key never expires. No known rate limit.
+- **Korean Air:** No auth. `channel` header required.
+- **Delta:** No rate limit observed on `mobile-api` flight status. Shop endpoints will reject before rate-limiting.
+- **Emirates:** Zero auth on flight status. No known rate limit.
+- **All Playwright airlines:** Reuse browser context across queries to avoid re-establishing sessions. Close and recreate if you get 403s.
+
+---
+
+## Known gaps and what's missing
+
+### Airlines with confirmed load data endpoints but blocked access
+
+| Airline | What exists | What's blocking | Possible path forward |
+|---|---|---|---|
+| **Alaska** | `POST /seats/waitlist` returns FlightLoad (authorized/available/booked/checkedIn) + standby/upgrade lists | APIM key loaded from Firebase Remote Config at runtime (not in APK) | Install app on device, capture key from traffic, OR use `GET /viewseatmap/seatmap` and count open seats |
+| **JetBlue** | `retrievePriorityList` returns capacity/available/booked per cabin (J+Y) + standby count + passenger names | Requires PNR to establish check-in session via `identifyPNR` | Need a valid PNR. `registerClient` works without one but `identifyPNR` validates server-side |
+| **Delta** | `getUpgradeAndStandby` returns full standby data; `offers/shop` returns `seatsAvailableCount` per fare | Standby needs PNR + name. Shop needs SkyMiles auth + Akamai BMP sensor data | Either acquire PNR/auth, OR reverse `AkamaiBMP.framework` from iOS bundle to reproduce sensor data generation |
+| **Emirates** | `olci/v1/checkin/staffinformation/{pnr}/{lastName}` returns full flight load table (F/J/Y/W cabin counts) | Akamai BMP on `mobileapp.emirates.com` + requires staff travel PNR | Staff travel only — no public load data path |
+| **Korean Air** | `flightSeatCount` endpoint exists | Returns 0 — likely needs IBE session (call `removeGarbageSession` first) or only works close to departure | Test with date within 24-48 hrs; call `removeGarbageSession` first |
+| **Spirit** | `seatmap` endpoints with availability | Needs JWT token + Akamai bypass (CyberFend sensor data) | Real Android device with Frida hook on rooted device |
+
+### Airlines I haven't deeply analyzed
+- **Frontier** — APK not located
+- **British Airways** — APK extracted but not analyzed
+- **Allegiant** — not pulled
+- **Hawaiian** — not pulled
+- **Sun Country** — not pulled
+- **Air Canada** — not pulled
+- **Lufthansa** — not pulled
+
+---
+
+## File structure of `/Users/m4mini/Desktop/code/airlines/`
+
+```
+airlines/
+├── airlines_request.md ← this document
+├── AIRLINE_API_SPEC.md ← integration spec for app developer
+├── API_FINDINGS.md ← initial findings doc
+├── FLIGHT_LOADS_API.md ← flight loads quick-reference
+├── package.json / node_modules/ ← Playwright 1.58 + chromium-1208
+├── scripts/
+│ ├── united_search.js ← United Playwright flight search
+│ ├── delta_flight_status_test.js ← Delta flight status endpoint test
+│ ├── delta_focused.js ← Delta multi-endpoint comparison
+│ ├── delta_diag.js ← Delta XHR vs fetch diagnostic
+│ ├── delta_real_search.js ← Delta form interaction capture
+│ ├── delta_route_form.js ← Delta route search form
+│ ├── delta_form_capture.js ← Delta form capture v1
+│ ├── delta_capture_v2.js, v3.js ← capture iterations
+│ ├── delta_test_correct_body.js ← Delta body format test
+│ ├── delta_test_website_api.js ← Delta website API test
+│ ├── delta_grep_js.js ← Delta SPA bundle grep
+│ ├── delta_click_through.js ← Delta detail page click-through
+│ └── delta_website_capture.js ← Delta website capture
+├── extracted/
+│ ├── aa/jadx_out/sources/ ← American Airlines (Java)
+│ ├── alaska/ ← Alaska Airlines
+│ │ ├── apktool_out/res/xml/remote_config_defaults.xml
+│ │ └── jadx_out/sources/
+│ ├── delta/jadx_out/sources/ ← Delta Android (Java)
+│ ├── delta_ios/Payload/FlyDelta.app/ ← Delta iOS (decrypted)
+│ │ ├── FlyDelta ← main Mach-O binary
+│ │ ├── Frameworks/
+│ │ │ ├── FlyDeltaComms.framework/
+│ │ │ ├── Today.framework/
+│ │ │ ├── TodayMode.framework/
+│ │ │ ├── ShopBook.framework/
+│ │ │ ├── SeatMap.framework/
+│ │ │ ├── Concierge.framework/
+│ │ │ ├── AkamaiBMP.framework/ ← bot manager sensor lib
+│ │ │ └── SharedModels.framework/
+│ │ └── Hybrid/Resources/assets/scripts/app/environments.json
+│ ├── jetblue/ ← JetBlue Android
+│ ├── korean/jadx_out/sources/ ← Korean Air
+│ ├── spirit/ ← Spirit Android
+│ │ ├── jadx_out/sources/ ← decompiled Java
+│ │ └── native/lib/ ← native libraries (libspirit-lib.so)
+│ ├── united/jadx_out/sources/ ← United Android
+│ ├── emirates/ ← Emirates Android
+│ └── ba/ ← British Airways
+├── captures/ ← Screenshots and traffic captures
+├── com.delta.iphone.ver1_7.9.1_und3fined.ipa ← decrypted iOS Delta app
+├── com.alaskaairlines.android.apk
+├── alaska_patched.apk
+├── com.jetblue.JetBlueAndroid.xapk
+├── com.koreanair.passenger.xapk
+├── com.ba.mobile.apk
+└── com.emirates.ek.android.xapk
+```
+
+---
+
+## Open questions / next steps
+
+1. **Delta Akamai BMP bypass** — extract sensor data generation from `AkamaiBMP.framework` (iOS) and reproduce in Node/Python. This would unlock `offers/shop` and the website's `flight-status/details` endpoint. Multi-day reverse-engineering effort.
+
+2. **Delta SkyMiles guest token** — search for an anonymous SkyMiles auth flow. Searched for `guestToken`, `anonymousToken`, `guestSession` in both Android and iOS — no hits. Might be hidden under a different name.
+
+3. **Alaska APIM key** — install Alaska app on a real device, capture traffic to extract the Firebase Remote Config APIM key. Once obtained, the `/seats/waitlist` endpoint would return full FlightLoad data.
+
+4. **Frontier APK** — locate and pull. Frontier is likely similar to Spirit (ULCC, no standby).
+
+5. **British Airways deep dive** — pull oneworld flight inventory endpoints (similar to AA but in BA's portal).
+
+6. **JetBlue PNR-less path** — investigate whether `mobilecheckin.jetblue.com/checkin/registerClient` actually validates PNR or just creates a session. If session creation is enough, we might be able to call `retrievePriorityList` with crafted parameters.
+
+7. **Korean Air `flightSeatCount`** — test with dates within 24-48 hrs of departure to confirm whether the 0 result is date-driven or session-driven.
+
+8. **Spirit POST endpoints** — only path is real device with Frida hook on CyberFend.
+
+---
+
+## Lessons learned
+
+- **The simplest approach beats playwright theater.** For the Delta `flight-status-mobile/details` endpoint, the answer was `curl -X POST -H "User-Agent: FlyDelta/..." -d '<3-field-body>'`. I spent multiple iterations on Playwright form interactions when the answer was just curl with the right UA.
+- **The User-Agent matters more than expected.** Akamai BMP often whitelists requests by mobile UA pattern. American Airlines wouldn't return data without `Android/2025.31 Pixel 7|14|...|AmericanAirlines`. Delta wouldn't return data without `FlyDelta/24.10.1 (Pixel 7; Android 14; Build/UQ1A.240205.004)`.
+- **Anonymous token beats anonymous session.** United's `/api/auth/anonymous-token` is the cleanest pattern in the industry — short-lived bearer token with no PII required.
+- **iOS bundles include test data.** Apps ship sample API responses for offline development (`MockShopV2Response.json`, `new_airport_mode.json`). These reveal exact response shapes without needing to call the real API.
+- **`@SerializedName` is the source of truth.** When grepping for API field names, always check `@SerializedName` annotations first — that's what comes over the wire. `@Expose` without `@SerializedName` falls back to the Java field name.
+- **The "public auth whitelist" file is gold.** Delta's `u3/d.java` `NetworkSecurityConstants` lists endpoints that bypass auth checks. Every Akamai-protected airline has something similar.
+- **Read both Android and iOS.** They're built from different source trees and the iOS app sometimes has newer endpoints, framework names, or domain identifiers that the Android app doesn't.
+
+---
+
+*Document compiled 2026-04-11. Findings span multiple sessions of APK reverse engineering, Playwright traffic capture, and direct API testing. All endpoint URLs, body formats, and response shapes verified against actual decompiled source unless marked otherwise.*
diff --git a/api_docs/stafftraveler_api.md b/api_docs/stafftraveler_api.md
new file mode 100644
index 0000000..6e5a542
--- /dev/null
+++ b/api_docs/stafftraveler_api.md
@@ -0,0 +1,291 @@
+# StaffTraveler API
+
+Extracted from `com.stafftraveler.webview` v3.12.0 (build 1880000346).
+Source artifacts:
+- `apps/com.stafftraveler.webview_3.12.0-1880000346_apkcombo.com.xapk`
+- `/Users/m4mini/Desktop/code/airlines/extracted/stafftraveler/`
+- Hermes disassembly: `extracted/stafftraveler/hermes_out/bundle.hasm`
+
+## Architecture
+
+React Native + Hermes bytecode. All business logic lives in `assets/index.android.bundle`. Native Android is a thin RN shell (`MainActivity`, `MainApplication`).
+
+**Stack**
+- **Firebase Auth** — user accounts, ID token issuance.
+- **Firebase Remote Config** — runtime-fetched config (API base URL, Typesense host/key, feature flags, etc).
+- **Firebase Firestore** — realtime store for flights, load requests, load reports, tips, user state.
+- **Firebase App Check** — registered (`FirebaseAppCheckKtxRegistrar`) and Play Integrity is bundled (`com.google.android.play.core.integrity`) — but the `/v1/commands/*` fetch path does NOT attach `X-Firebase-AppCheck` (see `createFirebaseCommand` disassembly at `bundle.hasm` offset `0x017ed673`). App Check enforcement on the HTTP API is **not observed**. Firestore rules may still consult App Check.
+- **Typesense** (`enhk2ji1vu6csxzrp-1.a1.typesense.net`) — flight search index. The API key is delivered via Remote Config, not hardcoded.
+- **Custom "commands" HTTP API** — `POST https://api.stafftraveler.com/v1/commands/` — all mutating/reading operations go through this, auth'd with a Firebase ID token.
+
+## Firebase Project Config (from `res/values/strings.xml`)
+
+| Key | Value |
+|-----|-------|
+| Project ID | `stafftraveler-prod` |
+| Android App ID | `1:628258099825:android:5fb976ba6ad1bb05` |
+| Sender ID | `628258099825` |
+| Android API Key | `AIzaSyC2zG6ArnguzzdWsLYV1qjQznma0zl1Q0s` |
+| Maps API Key | `AIzaSyD2yg_WuGtrAC_fyyEwvAQgycMoP3Xf9cM` |
+| Storage Bucket | `stafftraveler-prod.appspot.com` |
+| Realtime DB | `https://stafftraveler-prod.firebaseio.com` |
+| Firestore | (default, project `stafftraveler-prod`) |
+
+These are all public identifiers — Firebase security comes from rules + App Check, not from hiding them.
+
+## Remote Config Keys
+
+Fetched at startup; controls every external URL. Full shape (from `bundle.hasm` at line 140129):
+
+| Key | Purpose |
+|-----|---------|
+| `api_commands_url` | Base for the commands API (production: `https://api.stafftraveler.com/v1/commands`) |
+| `search_typesense_hostname` | Typesense host |
+| `search_typesense_api_key` | Typesense search-only key |
+| `image_cdn_hostname` | Aircraft/airline image CDN |
+| `airline_logos_hostname` | Airline logo CDN |
+| `google_places_api_key`, `_details_url`, `_search_url`, `_photo_url` | Places integration |
+| `weather_service_url` (`api.weatherapi.com`), `weather_service_api_key` | Weather |
+| `location_service_url` (`pro.ip-api.com`), `location_service_api_key` | Geo-IP |
+| `google_web_client_id` | Google Sign-In |
+| `loads_jackpot_enabled_airline_ids`, `onboarding_invite_reward`, `notice_*`, `promotion_*` | Feature flags / content |
+
+To get the real values, call Firebase Remote Config REST with the project config above:
+```
+POST https://firebaseremoteconfig.googleapis.com/v1/projects/stafftraveler-prod/namespaces/firebase:fetch?key=AIzaSyC2zG6ArnguzzdWsLYV1qjQznma0zl1Q0s
+```
+
+## Auth
+
+Standard Firebase Auth (email/password, Google, Apple, Facebook providers present in bundle strings). No custom auth flow.
+
+To authenticate:
+1. Sign in via Firebase Auth REST with the `stafftraveler-prod` API key above, or via the Firebase iOS SDK configured for the same project.
+2. `getIdToken()` produces a JWT with ~1h TTL.
+3. Use the token as `Authorization: Bearer ` on every commands-API call.
+
+App logic in `bundle.hasm` (`createFirebaseCommand` generator, line 1827439) checks `expirationTime` and calls `getIdToken()` right before sending, so token refresh is transparent.
+
+## Commands API
+
+**Base**: `https://api.stafftraveler.com/v1/commands/user` (from Remote Config `api_commands_url` — confirmed from captured traffic, `2026-04-22`)
+**Auth**: `Authorization: Bearer `
+**Method**: `POST`
+**Headers**: `Content-Type: application/json`, `x-stafftraveler-client: mobile`
+**Body**: JSON — shape is command-specific
+**Response**: 200 OK with `{payload: {...}}` on success. Business errors raise `isError`/`isNetworkError` flags in the bundle.
+
+Fetch options object literally constructed in the bundle (offset `0x017ed673`):
+```js
+{ method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + idToken }, body: JSON.stringify(payload) }
+```
+
+Full endpoint pattern: `POST https://api.stafftraveler.com/v1/commands/user/`
+
+### Confirmed Commands (built via `createFirebaseCommand(name)`)
+
+Endpoint = `POST {api_commands_url}/`
+
+| Command | Purpose |
+|---------|---------|
+| `searchFlightsByRoute` | Flight search by origin+destination+date |
+| `searchFlightsByCode` | Flight search by flight number + date |
+| `createLoadsRequests` | Submit one or more load requests for selected flights (spends credits) |
+| `deleteLoadsRequest` | Cancel a pending request |
+| `reopenLoadsRequest` | Reopen an expired/cancelled request |
+| `upgradeLoadsRequest` | Promote a request to Priority (uses extra credits) |
+| `requestLockForLoadsRequest` / `unlockLoadsRequest` | Cooperative lock: while you're typing a load answer, others can't also submit |
+| `submitLoadsReport` | Answer someone else's request (the reverse direction — you earn credits) |
+| `reviseLoadsReport` | Edit your answer |
+| `addComment` / `removeComment` / `reportComment` | Flight comments |
+| `addAirlineDetails` | Provide airline employee credentials for verification |
+| `addCreditsForPurchase` | IAP receipt validation → credits |
+| `setAirlineStCodes` | Set user's airline ("ST code" = StaffTraveler internal airline code) |
+
+Command names are stored in the bundle as plain string identifiers; the full inventory is in `/tmp/st_fn_names.txt` (extracted function names).
+
+### `searchFlightsByRoute` — confirmed shape (captured 2026-04-22)
+
+Request body:
+```json
+{
+ "originIata": "DFW",
+ "destinationIata": "LAS",
+ "dates": ["2026-04-22"],
+ "maxConnections": 0,
+ "allowNearbyDepartures": false,
+ "allowNearbyArrivals": false,
+ "payloadType": "passenger",
+ "includeMultipleCarriers": false
+}
+```
+
+Field corrections from the bytecode guess: the key I thought was `stops` is actually `maxConnections`; `payloadType` takes the literal value `"passenger"` (not `"route"`); `dates` is an array of `YYYY-MM-DD` strings.
+
+Response:
+```json
+{
+ "payload": {
+ "directFlights": [ /* array of flight objects */ ],
+ "connectingFlights": [],
+ "numberOfDiscardedFlights": 0,
+ "settingsFilteredCount": 0,
+ "messages": []
+ }
+}
+```
+
+Each flight object has three IDs (`id`, `id_v2`, `id_v3` — the `id_v3` is human-readable like `AA_2998_DFW_2026_04_22`), airline info (`airlineId`, `airlineStCode`, `flightCode`, `flightNumber`), local/UTC times, equipment (`flightEquipmentId`, `flightEquipmentIata`), `durationMinutes`, `isCargoFlight`, `seatsTotal`, and `seatsByClass: {first, business, premiumEconomy, economy}`.
+
+**Important:** `seatsByClass` is the **aircraft cabin configuration**, not current availability. Current load data comes from Firestore (see below), not this response.
+
+See `api_docs/stafftraveler_captures/searchFlightsByRoute_DFW-LAS_*.json` for the full live capture.
+
+### `searchFlightsByCode` — payload shape
+
+From caller at `bundle.hasm:1948510` (Function #38848):
+
+```json
+{
+ "flightCode": "UA123",
+ "dates": ["", ...]
+}
+```
+
+Returns flights matching the flight code on each listed date.
+
+### `createLoadsRequests` — confirmed shape (captured 2026-04-22)
+
+Request body is a **bare JSON array** of flight objects (no outer wrapper). Each element is the full flight object as returned by `searchFlightsByRoute`, with one added field: `isPriorityRequest: bool`.
+
+```json
+[
+ {
+ "id": "a23d6f8379f5109eddeb5bbf78bdccc1",
+ "id_v2": "0d9d0702b203d224ace3e6eb94531dde",
+ "id_v3": "AA_2178_DFW_2026_04_22",
+ "airlineId": "AA",
+ "flightNumber": 2178,
+ "flightCode": "AA2178",
+ "departureAirportId": "DFW",
+ "arrivalAirportId": "LAS",
+ "departureTimeLocal": "2026-04-22T16:45:00-05:00",
+ "departureTimeUtc": "2026-04-22T21:45:00Z",
+ "arrivalTimeLocal": "2026-04-22T17:46:00-07:00",
+ "arrivalTimeUtc": "2026-04-23T00:46:00Z",
+ "flightEquipmentId": "32Q",
+ "durationMinutes": 181,
+ "isCargoFlight": false,
+ "airlineStCode": "st_AAL",
+ "departureAirportIata": "DFW",
+ "arrivalAirportIata": "LAS",
+ "flightEquipmentIata": "32Q",
+ "seatsTotal": 196,
+ "seatsByClass": {"first": 0, "business": 20, "premiumEconomy": 0, "economy": 176},
+ "isPriorityRequest": false
+ }
+]
+```
+
+Response:
+```json
+{
+ "payload": {
+ "numberOfRequests": 0,
+ "numberOfRequestsPaidFor": 0,
+ "numberOfRequestsPaidForPriority": 0,
+ "hasSufficientCredits": true,
+ "verifiedRequests": [
+ {
+ "flightId": "AA_2178_DFW_2026_04_22",
+ "isExisting": true,
+ "isDuplicateForUser": true,
+ "isRequestUpdateForUser": false,
+ "hasDeparted": false,
+ "isCancelled": false,
+ "isPriorityRequest": false,
+ "hasRecentLoads": false,
+ "scheduledFlight": { /* echoed full flight obj */ }
+ }
+ ]
+ }
+}
+```
+
+**Idempotent per (user, flight):** on duplicate submission, `numberOfRequests: 0`, `isDuplicateForUser: true`, **no credit charged**. This makes the command safe to replay as a "what's the current state of my request for flight X" probe — you just pay for the first request on any given flight.
+
+**`hasRecentLoads`** is the flag the app uses to decide whether load data is already available. When true, the Firestore listener is expected to deliver load-report documents; when false, there's nothing to show until someone in the community answers.
+
+See `api_docs/stafftraveler_captures/createLoadsRequests_AA2178_*.json` for the full live capture.
+
+## Firestore Collections (realtime)
+
+Once a request is created, load results stream back via Firestore listeners. Listener constructors in the bundle:
+
+| Listener | What it subscribes to |
+|----------|----------------------|
+| `TrackedFlightsStoreListener` (`bundle.hasm:253969`) | The user's currently-tracked flights (including ones with pending requests) |
+| `OpenRequestsStoreListener` (`bundle.hasm:443724`) | The user's open requests, filtered by `useUserAirlineStCodes()` |
+| `ConnectingFlightsStoreListener` | Connecting-flight variants |
+| `PinnedFlightsStoreListener` | User-pinned flights |
+| `PriorityRequestCounterStoreListener` | Priority request quota counter |
+| `OpenRequestsCountListener` | Open request count for UI badge |
+| `DerivedLoadsReportsStoreListener` | Reports on flights the user is answering |
+| `CreditsListener` / `UserSessionsListener` / `UserStoreListener` | Account state |
+| `RemoteConfigListener` | Remote Config changes |
+
+Exact collection paths are not plain strings in the bundle — they're built from user state (e.g. `users/{uid}/flightRequests/{id}` or `users/{uid}/trackedFlights/{id}`). To get them, run Firestore in debug (iOS SDK logs every collection path) or capture with Firebase Local Emulator proxy.
+
+## Typesense (search infrastructure)
+
+Not directly hit by the client for flight search — `searchFlightsByRoute` goes through the commands API, which internally queries Typesense. However, the bundle also contains a `typesense-instantsearch-adapter`, and strings like `searchTypesenseAndAdapt`, `searchTypesenseForFacetValuesAndAdapt`, `x-typesense-api-key` (`bundle.hasm:1995183`) suggest **direct Typesense queries are used for some facets** (probably airline filtering, autocomplete on airports/airlines).
+
+Host: `enhk2ji1vu6csxzrp-1.a1.typesense.net`
+Key: from Remote Config `search_typesense_api_key` (search-only, scoped, safe to embed).
+
+## Integration plan for the iOS Flights app
+
+The cleanest path — do not build a parallel HTTP client, just use Firebase directly:
+
+1. **Embed the `stafftraveler-prod` Firebase config** in a second `FirebaseApp` instance (iOS supports multiple named apps). Use the API key + app ID + sender ID from above. Name it something like `StaffTravelerFirebaseApp` so it doesn't collide with Flights' own Firebase project.
+2. **Sign in** with the user's StaffTraveler credentials using `Auth.auth(app: stApp).signIn(withEmail:password:)`. Store the refresh token in Keychain.
+3. **Fetch Remote Config** once on first use to get `api_commands_url`, `search_typesense_api_key`, etc.
+4. **Search a route** → `POST https://api.stafftraveler.com/v1/commands/searchFlightsByRoute` with the payload shape documented above and `Authorization: Bearer `.
+5. **Request loads** → `POST .../createLoadsRequests` with the flight IDs from step 4.
+6. **Listen for answers** → `Firestore.firestore(app: stApp).collection("users/\(uid)/flightRequests").document(requestId).addSnapshotListener { ... }` (exact path TBD — confirm via traffic capture).
+
+### Firestore is the answer — schema captured (2026-04-22)
+
+Loads and all real-time state live in Firestore, queried via the `Listen/channel` long-poll transport. Mobile iOS uses the gRPC variant (hard to mitm); the `app.stafftraveler.com` web client uses plain HTTP long-poll, which is fully inspectable. Playwright capture + URL-decoding gave us every `addTarget` body.
+
+**Full schema and query recipes:** see `api_docs/stafftraveler_captures/firestore_schema.md` and the raw capture at `api_docs/stafftraveler_captures/firestore_listen_targets_and_queries.txt`.
+
+**The one query that renders loads:**
+```
+collection: derivedLoadsReports
+where: flightId == "{id_v3}" (e.g. "AA_2178_DFW_2026_04_22")
+orderBy: createdAt DESC
+```
+
+Returns docs containing `openSeats.{first,business,premiumEconomy,eco}.count`, `staffListing.count`, `creatorName`, `createdAt`, `seatsAvailabilityScore`, etc. Example at `api_docs/stafftraveler_captures/derivedLoadsReports_AA2178_response.json`.
+
+**Required REST headers** (earlier runQuery attempts were 403 because the API key wasn't attached):
+```
+Authorization: Bearer
+X-Firebase-GMPID: 1:628258099825:web:35b20eaab4d441894041d0
+?key=AIzaSyD82Hiqx-jAbHF8faMGSveqLw8CdX8a-Uc (as URL query, web key)
+```
+
+### Remaining nuances
+
+1. **Account eligibility** — `addAirlineDetails` still required for the account to participate. Your existing account is verified (WN / `st_SWA`), so no blocker.
+2. **Credits / access model** — `createLoadsRequests` charges for *new* requests only. Idempotent per `(user, flight)` — `isDuplicateForUser: true` returns current state with no charge. **Firestore `derivedLoadsReports` reads are gated by an active `trackedFlights/{flightId}` doc**, which is only created by `createLoadsRequests`. So you must spend 1 credit per *new* flight to unlock load reads for it; after that, reads are free and unlimited. You cannot peek at other flights' loads without requesting.
+3. **App Check** — not enforced on commands API or Firestore for this project (confirmed: web client makes all these requests with just ID token + API key).
+
+### Integration for iOS Flights app (final)
+
+- Secondary `FirebaseApp` configured against `stafftraveler-prod` with the web API key + GMPID above.
+- `signInWithEmailAndPassword` → persist refresh token.
+- `Firestore.firestore(app: stApp).collection("derivedLoadsReports").whereField("flightId", isEqualTo: flightIdV3).order(by: "createdAt", descending: true).addSnapshotListener { ... }` — realtime loads for any flight you know the id_v3 of.
+- Plus `trackedFlights`, `airlinesBySt`, `airportsByIata`, `flightEquipment`, `conversations/{flightId}` subscriptions — full recipes in `firestore_schema.md`.
+- Writes (request loads, submit report) keep using `POST https://api.stafftraveler.com/v1/commands/user/`.
diff --git a/api_docs/stafftraveler_captures/README.md b/api_docs/stafftraveler_captures/README.md
new file mode 100644
index 0000000..cd70930
--- /dev/null
+++ b/api_docs/stafftraveler_captures/README.md
@@ -0,0 +1,108 @@
+# StaffTraveler API captures
+
+Real request/response pairs captured from the iOS app `com.stafftraveler.webview` v3.12.0 (build 1880000346) against `api.stafftraveler.com` on 2026-04-22. All captures are by user `3NNPesQMiMRNYnPmuQzh6w2YKyh1` (`stafftraveler@treymail.com`, WN/Southwest, airline ST code `st_SWA`).
+
+## Auth
+
+All command-API calls are authenticated with:
+```
+Authorization: Bearer
+```
+Token issued by `securetoken.google.com/stafftraveler-prod`, `aud=stafftraveler-prod`, ~1h TTL. The captured tokens are already expired — do not try to reuse them. To get a new one, sign in via Firebase Auth REST against API key `AIzaSyC2zG6ArnguzzdWsLYV1qjQznma0zl1Q0s` (needs `X-Android-Package` + `X-Android-Cert` headers or iOS SDK).
+
+Only standard headers are sent. No App Check. No SSL pinning. No device/client signing beyond the ID token.
+
+## Endpoint path pattern
+
+```
+POST https://api.stafftraveler.com/v1/commands/user/
+```
+
+Note the `user/` segment — the `api_commands_url` Remote Config value is `https://api.stafftraveler.com/v1/commands/user`, and the command name is appended with `/`. I initially documented this as `/v1/commands/` which is wrong.
+
+## Files
+
+### `searchFlightsByRoute_DFW-LAS_*.json`
+DFW→LAS direct-only search for 2026-04-22.
+
+Request body:
+```json
+{
+ "originIata": "DFW",
+ "destinationIata": "LAS",
+ "dates": ["2026-04-22"],
+ "maxConnections": 0,
+ "allowNearbyDepartures": false,
+ "allowNearbyArrivals": false,
+ "payloadType": "passenger",
+ "includeMultipleCarriers": false
+}
+```
+
+Response: `{payload: {directFlights: [...], connectingFlights: [...], numberOfDiscardedFlights, messages, settingsFilteredCount}}`.
+
+Each flight carries three IDs (`id`, `id_v2`, `id_v3`), airline info, local/UTC times, equipment, and a `seatsByClass` **aircraft configuration** (NOT current availability — that's a different read path entirely).
+
+Corrections vs the api_doc's initial guesses:
+- `stops` → actually `maxConnections`
+- `payloadType: "route"` → actually `"passenger"`
+- No `origin`/`destination`/`date` fields — only the `*Iata` variants + `dates` array.
+
+### `createLoadsRequests_AA2178_*.json`
+Request loads for AA2178 DFW→LAS 2026-04-22.
+
+**Request body** is a bare JSON array of flight objects (no outer wrapper). Each flight is the complete flight object from the search response with one added field: `isPriorityRequest: bool`.
+
+**Response shape:**
+```json
+{
+ "payload": {
+ "numberOfRequests": 0,
+ "numberOfRequestsPaidFor": 0,
+ "numberOfRequestsPaidForPriority": 0,
+ "hasSufficientCredits": true,
+ "verifiedRequests": [
+ {
+ "flightId": "AA_2178_DFW_2026_04_22",
+ "isExisting": true,
+ "isDuplicateForUser": true,
+ "isRequestUpdateForUser": false,
+ "hasDeparted": false,
+ "isCancelled": false,
+ "isPriorityRequest": false,
+ "hasRecentLoads": false,
+ "scheduledFlight": { /* full flight obj */ }
+ }
+ ]
+ }
+}
+```
+
+### Dedup behavior (important)
+
+On this capture, `numberOfRequests: 0` and `isDuplicateForUser: true` — the server recognized this user had already requested this flight and **did NOT charge a credit**. Replaying the same `createLoadsRequests` payload is safe (idempotent).
+
+This means:
+- `numberOfRequests` is the count of *newly created* requests in this call.
+- `isDuplicateForUser` tells you whether the flight already had an open request for this user.
+- **No credit is spent on duplicates.** Useful for polling the current request state without cost.
+
+### `hasRecentLoads: false` — where loads actually come from
+
+`hasRecentLoads` is the flag the app uses to decide whether load data is available for display. It's `false` here because nobody has submitted loads for AA2178 yet. The actual load data (when `hasRecentLoads: true`) does NOT come through the commands API — it arrives via a Firestore realtime listener on a doc that the user's account has permission to read.
+
+To find the exact Firestore path when a flight has loads, one more capture is needed: tap a flight that already has loads populated, and grab the `firestore.googleapis.com/.../Listen/channel` traffic. That will show the watched doc path.
+
+## Known error shapes
+
+Not captured yet:
+- What happens when you send an invalid flight ID
+- What `createLoadsRequests` returns when credits are insufficient (`hasSufficientCredits: false`)
+- What `numberOfRequests > 0` responses look like (fresh request, credit actually spent)
+
+## Replay safety
+
+To replay any of these:
+1. Grab a fresh token from the app or by re-signing-in.
+2. Swap it into the curl.
+3. For `createLoadsRequests`, same payload = dedup-safe. Different payload = may charge credits.
diff --git a/api_docs/stafftraveler_captures/airlinesBySt_full.json b/api_docs/stafftraveler_captures/airlinesBySt_full.json
new file mode 100644
index 0000000..eb51e1c
--- /dev/null
+++ b/api_docs/stafftraveler_captures/airlinesBySt_full.json
@@ -0,0 +1,20306 @@
+[
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_0C",
+ "fields": {
+ "name": {
+ "stringValue": "Cobra Aviation"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "44907808299a98ade82eb8c616890c8e"
+ },
+ "data": {
+ "stringValue": "e8d1699f8a853c21af3ea19a99ba95a3"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "fsCode": {
+ "stringValue": "0Cx"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "iata": {
+ "stringValue": "0C"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "stCode": {
+ "stringValue": "st_0C"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "0cbf24b9fcd5"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.080837Z",
+ "updateTime": "2026-04-20T07:00:44.768272Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_0N",
+ "fields": {
+ "name": {
+ "stringValue": "North Star Air"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "iata": {
+ "stringValue": "0N"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/0N.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "edebabb2a210798b326b4f715549f5e0"
+ },
+ "logo": {
+ "stringValue": "34e580df6e1716a2f6856db889e55601"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "0N"
+ },
+ "stCode": {
+ "stringValue": "st_0N"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "108"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f5b05a6c0f0c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.095557Z",
+ "updateTime": "2026-04-14T08:24:43.823585Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1A",
+ "fields": {
+ "iata": {
+ "stringValue": "1A"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Amadeus It Group"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_1A"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "749413dacb97"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-27T08:37:39.971153Z",
+ "updateTime": "2026-03-27T08:37:40.113254Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1B",
+ "fields": {
+ "iata": {
+ "stringValue": "1B"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1B"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Sabre Asia Pacific"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "97e5ffefa847"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.078172Z",
+ "updateTime": "2026-03-20T19:01:23.528854Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1B_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "British Airways Cargo"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "11"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_1B_2025"
+ },
+ "fsCode": {
+ "stringValue": "1B"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "de263113f70f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:47.436012Z",
+ "updateTime": "2026-03-22T17:19:47.782201Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1C",
+ "fields": {
+ "iata": {
+ "stringValue": "1C"
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1C.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "867bb44d357c2ef45751daa1fe37c97d"
+ },
+ "logo": {
+ "stringValue": "ff0c46cfacba86a4c786eff481d4c032"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "1C"
+ },
+ "stCode": {
+ "stringValue": "st_1C"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "A-Ice"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "c4ffdf3e71df"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.069037Z",
+ "updateTime": "2026-03-20T19:01:38.916090Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1D",
+ "fields": {
+ "iata": {
+ "stringValue": "1D"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1D"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Radixx Solutions International"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1D.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "0418e6d10d86"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.068266Z",
+ "updateTime": "2026-03-27T08:37:40.211536Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1E",
+ "fields": {
+ "iata": {
+ "stringValue": "1E"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1E"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Travelsky Technology"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1E.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a885c2365d7b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.096028Z",
+ "updateTime": "2026-03-27T08:37:40.106412Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1F",
+ "fields": {
+ "iata": {
+ "stringValue": "1F"
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1Fx.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "a5ccd943bb7077f3e125786e17389d63"
+ },
+ "logo": {
+ "stringValue": "97bfd08c887f7ff43f28a4384f21b403"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "1Fx"
+ },
+ "stCode": {
+ "stringValue": "st_1F"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Infini Travel Information"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "0bf3e059dbd9"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.101169Z",
+ "updateTime": "2026-03-20T19:01:42.644433Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1G",
+ "fields": {
+ "iata": {
+ "stringValue": "1G"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1G"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Travelport Services"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "bde0767a4177"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.102276Z",
+ "updateTime": "2026-03-20T19:01:22.808405Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1G_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Eva Airways Cargo"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "4"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_1G_2025"
+ },
+ "fsCode": {
+ "stringValue": "1G"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "fbf4a985c425"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:49.362533Z",
+ "updateTime": "2026-03-22T17:19:49.603932Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1H",
+ "fields": {
+ "iata": {
+ "stringValue": "1H"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1H"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "JSC \"Sirena-Travel\""
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "644be5e1cca9"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.080072Z",
+ "updateTime": "2026-03-20T19:01:24.530925Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1H_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Asiana Airways Cargo"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_1H_2025"
+ },
+ "fsCode": {
+ "stringValue": "1H"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "6b087f9b84cc"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:48.147388Z",
+ "updateTime": "2026-03-22T17:19:48.463507Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1J",
+ "fields": {
+ "iata": {
+ "stringValue": "1J"
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "PT. Navios Evolusi Solusindo"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "isDirty": {
+ "booleanValue": true
+ },
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "9f45b77290309fb3b203c0b8920d2891"
+ },
+ "logo": {
+ "stringValue": "c81aa80a79612ede8eabc22d44fc434d"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1AJ.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "1AJ"
+ },
+ "stCode": {
+ "stringValue": "st_1J"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "22ac408e8703"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:20.854060Z",
+ "updateTime": "2026-03-20T19:01:36.858855Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1J_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "JAL Cargo"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_1J_2025"
+ },
+ "fsCode": {
+ "stringValue": "1J"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "087c6ae76368"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:47.528355Z",
+ "updateTime": "2026-03-22T17:19:47.767222Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1K",
+ "fields": {
+ "iata": {
+ "stringValue": "1K"
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1KA.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "d7fa376830a2cd53851be1465d8908fc"
+ },
+ "data": {
+ "stringValue": "b6f8c9a6fe9ec542c52fa5921ebc5a7f"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "1KA"
+ },
+ "stCode": {
+ "stringValue": "st_1K"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Mixvel"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "53b3295fe79b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.076694Z",
+ "updateTime": "2026-03-20T19:01:40.237360Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1K_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Korean Air Cargo"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "7"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_1K_2025"
+ },
+ "fsCode": {
+ "stringValue": "1K"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3ed59172bfe0"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:41.676678Z",
+ "updateTime": "2026-03-22T17:19:42.023686Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1L",
+ "fields": {
+ "iata": {
+ "stringValue": "1L"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1L"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Citizenplane"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "c7a812fc38a6"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.079569Z",
+ "updateTime": "2026-03-20T19:01:21.995975Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1L_2026",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Dragonair Cargo"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_1L_2026"
+ },
+ "fsCode": {
+ "stringValue": "1L"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "dffe247ee47f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T09:09:21.661137Z",
+ "updateTime": "2026-04-13T09:09:22.079317Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1M",
+ "fields": {
+ "iata": {
+ "stringValue": "1M"
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1Mx.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "73469bece4decfd0d9efc19127f34284"
+ },
+ "logo": {
+ "stringValue": "617a7bce6079650336447610fafafa0f"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "1Mx"
+ },
+ "stCode": {
+ "stringValue": "st_1M"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Online Reservation System"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "1c915b00c20b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.094341Z",
+ "updateTime": "2026-03-20T19:01:40.188329Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1M_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "China Airlines Cargo"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "2"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_1M_2025"
+ },
+ "fsCode": {
+ "stringValue": "1M"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "9db7f45ba945"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:43.497612Z",
+ "updateTime": "2026-03-22T17:19:43.845102Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1N",
+ "fields": {
+ "iata": {
+ "stringValue": "1N"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1N"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Navitaire"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "ed7089b0af77"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.080605Z",
+ "updateTime": "2026-03-20T19:01:21.879848Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1N_2026",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "ANA Cargo"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_1N_2026"
+ },
+ "fsCode": {
+ "stringValue": "1N"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "60511967a7f8"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T09:09:19.247526Z",
+ "updateTime": "2026-04-13T09:09:19.813956Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1P",
+ "fields": {
+ "iata": {
+ "stringValue": "1P"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1P"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Travelport"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1P.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "c3a37a145069"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T02:32:33.584574Z",
+ "updateTime": "2026-03-27T08:37:41.389954Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1Q",
+ "fields": {
+ "iata": {
+ "stringValue": "1Q"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1Q"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Intelisys Aviation Systems (2013) I"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1Q.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "95e7abf0b6ee"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.080062Z",
+ "updateTime": "2026-03-27T08:37:40.178989Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1R",
+ "fields": {
+ "iata": {
+ "stringValue": "1R"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "My Sky"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_1R"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b604cf26ea0d"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-27T08:37:40.061068Z",
+ "updateTime": "2026-03-27T08:37:40.263650Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1S",
+ "fields": {
+ "iata": {
+ "stringValue": "1S"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "SABRE GLBL INC."
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1S"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1S.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "91785c435530"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T02:31:00.204736Z",
+ "updateTime": "2026-03-22T02:31:00.328891Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1T",
+ "fields": {
+ "iata": {
+ "stringValue": "1T"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1T"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Hitit Bilgisayar Hizmetleri A.S"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1T.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "72b7ff1d1cef"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:20.758233Z",
+ "updateTime": "2026-03-27T08:37:40.193874Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1U",
+ "fields": {
+ "iata": {
+ "stringValue": "1U"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1U"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Ita Software"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1U.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "5d1eb8ff0d99"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:20.729865Z",
+ "updateTime": "2026-03-27T08:37:40.229725Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1V",
+ "fields": {
+ "iata": {
+ "stringValue": "1V"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1V"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Travelport / DBA"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1V.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a0c4aa94df71"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:20.744291Z",
+ "updateTime": "2026-03-27T08:37:41.363783Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1X",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Branson Air Express"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_1X"
+ },
+ "fsCode": {
+ "stringValue": "1X"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a7d2e518bc1d"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:17.798997Z",
+ "updateTime": "2026-04-13T08:43:18.194002Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1Y",
+ "fields": {
+ "iata": {
+ "stringValue": "1Y"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1Y.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "name": {
+ "stringValue": "DXC Technology Services"
+ },
+ "fsCode": {
+ "stringValue": "1Y"
+ },
+ "stCode": {
+ "stringValue": "st_1Y"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "eec69db44336"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:20.745532Z",
+ "updateTime": "2026-03-20T19:01:40.777101Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_1Z",
+ "fields": {
+ "iata": {
+ "stringValue": "1Z"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_1Z"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Bird Information Systems"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/1Z.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "c0fd6ba331a0"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:20.734785Z",
+ "updateTime": "2026-03-27T08:37:40.283946Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2A_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Deutsche Bahn"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_2A_2025"
+ },
+ "fsCode": {
+ "stringValue": "2A"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "addb7686931b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:53.798193Z",
+ "updateTime": "2026-03-22T17:19:54.118636Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2E",
+ "fields": {
+ "iata": {
+ "stringValue": "2E"
+ },
+ "name": {
+ "stringValue": "Smokey Bay Air"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/2E.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "b0fa0ac5d2265e21cfb9cda1b58c49cc"
+ },
+ "data": {
+ "stringValue": "f0d175a33e8b37f5e290f60d6b55c6da"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "2E"
+ },
+ "stCode": {
+ "stringValue": "st_2E"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "8dfd8a092598"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.065761Z",
+ "updateTime": "2026-03-20T19:01:40.423883Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2E_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "2E"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "ETF Airways D.O.O."
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_2E_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "78e88bf85ebd"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-01T02:00:23.985102Z",
+ "updateTime": "2026-03-20T19:01:21.961661Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2H",
+ "fields": {
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "0b8d908269adcb520f67d8a4aba6b726"
+ },
+ "data": {
+ "stringValue": "6db93f9ad9ed7f06920d072b996c6402"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "iata": {
+ "stringValue": "2H"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/2Hx.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "2Hx"
+ },
+ "stCode": {
+ "stringValue": "st_2H"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Thi Factory"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "6f2c85330d36"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:20.841Z",
+ "updateTime": "2026-03-20T19:01:42.333673Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2H_2026",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Amsterdam Airlines"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_2H_2026"
+ },
+ "fsCode": {
+ "stringValue": "2H"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "6d7852cc86d7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T09:09:19.692541Z",
+ "updateTime": "2026-04-13T09:09:20.213642Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2I_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "2I"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "21 Air"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_2I_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b8fb168c924c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-01T02:00:19.355099Z",
+ "updateTime": "2026-03-20T19:01:23.255450Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2L_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "2L"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Transportes Aereos Bolivianos"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_2L_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "2cb345eccf31"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-01T02:00:37.836792Z",
+ "updateTime": "2026-03-20T19:01:23.539819Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2N",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "NextJet"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_2N"
+ },
+ "fsCode": {
+ "stringValue": "2N"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "997fa52cd1b0"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:14.903025Z",
+ "updateTime": "2026-04-13T08:43:15.324858Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2N_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "2N"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Smartlynx Airlines Malta"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_2N_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "144830850208"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-01T02:00:28.670283Z",
+ "updateTime": "2026-03-20T19:01:22.829639Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2O",
+ "fields": {
+ "name": {
+ "stringValue": "Island Air Service"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "17ac7ddd475d4e18a7da45383bda4c56"
+ },
+ "data": {
+ "stringValue": "18536998276245f1f5b4b4f7ee1b0c18"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "iata": {
+ "stringValue": "2O"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/2O.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "2O"
+ },
+ "stCode": {
+ "stringValue": "st_2O"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b33575be5c0b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.094432Z",
+ "updateTime": "2026-03-20T19:01:41.898823Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2S",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Satgur Air Transport"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_2S"
+ },
+ "fsCode": {
+ "stringValue": "2S"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "bc4eb662114e"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:14.531428Z",
+ "updateTime": "2026-04-13T08:43:14.904985Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2V",
+ "fields": {
+ "iata": {
+ "stringValue": "2V"
+ },
+ "name": {
+ "stringValue": "Amtrak"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/2V.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "60a0cb111def48d8333cff3fba0a262c"
+ },
+ "data": {
+ "stringValue": "3fb18506537b07fe329f379ce63db1ee"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "fsCode": {
+ "stringValue": "2V"
+ },
+ "stCode": {
+ "stringValue": "st_2V"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "0a540ef40437"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:20.989264Z",
+ "updateTime": "2026-03-20T19:01:46.866772Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2WX",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Multiple Solutions Limited"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_2WX"
+ },
+ "fsCode": {
+ "stringValue": "2Wx"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "c460bf970d80"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:12.834329Z",
+ "updateTime": "2026-04-13T08:43:13.214034Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_2Z_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Voronezh Aircraft"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_2Z_2025"
+ },
+ "fsCode": {
+ "stringValue": "2Z"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "ede4abe6ffb7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:46.516050Z",
+ "updateTime": "2026-03-22T17:19:46.801658Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_3A",
+ "fields": {
+ "iata": {
+ "stringValue": "3A"
+ },
+ "name": {
+ "stringValue": "Chu Kong Passenger Transport"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/3AC.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "a50bfb0a19b5bd2dca6b8d94e660dd17"
+ },
+ "data": {
+ "stringValue": "be93413f18901bc9d7e8908190a22d57"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "3AC"
+ },
+ "stCode": {
+ "stringValue": "st_3A"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "54a3c8e707af"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.078112Z",
+ "updateTime": "2026-03-20T19:01:28.465118Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_3B",
+ "fields": {
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "fsCode": {
+ "stringValue": "32B"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "iata": {
+ "stringValue": "3B"
+ },
+ "name": {
+ "stringValue": "Braspress Air Cargo"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "stCode": {
+ "stringValue": "st_3B"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "64e186a30875"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:20.973508Z",
+ "updateTime": "2026-04-20T07:00:44.671787Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_3J",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Zip Air"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_3J"
+ },
+ "fsCode": {
+ "stringValue": "3J"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "5e7f4670c2e9"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:13.071082Z",
+ "updateTime": "2026-04-13T08:43:13.502316Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_3L_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "3L"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Hi Fly (Malta)"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_3L_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "6c01c90586f3"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-01T02:00:25.694112Z",
+ "updateTime": "2026-03-20T19:01:23.427125Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_3R",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Moskovia Airlines"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_3R"
+ },
+ "fsCode": {
+ "stringValue": "3R"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b21824def407"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:14.133370Z",
+ "updateTime": "2026-04-13T08:43:14.410116Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_3X",
+ "fields": {
+ "iata": {
+ "stringValue": "3X"
+ },
+ "name": {
+ "stringValue": "Premier Trans Aire"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/3Xx.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "6aeff79a6f86ffd75b43432b56970eeb"
+ },
+ "data": {
+ "stringValue": "2df58ec79584269761be75b5166fca7b"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "3Xx"
+ },
+ "stCode": {
+ "stringValue": "st_3X"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f3beedeb62db"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.077976Z",
+ "updateTime": "2026-03-20T19:01:42.825576Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_4B_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "4B"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aviacompany Aviastar-Tu"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_4B_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "30f9aae119b0"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-01T02:00:22.907372Z",
+ "updateTime": "2026-03-20T19:01:43.591068Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_4D",
+ "fields": {
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "f9b7589ff0d049776a89c8795c8b9586"
+ },
+ "data": {
+ "stringValue": "10e92bba5dbf9d9ccf5fd08f7e9c1563"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "4Dx"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Flyyo"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "iata": {
+ "stringValue": "4D"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "stCode": {
+ "stringValue": "st_4D"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "4a9dbd900f2a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.101180Z",
+ "updateTime": "2026-04-20T07:00:44.959284Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_4H_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "United Airways (BD)"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "37"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_4H_2025"
+ },
+ "fsCode": {
+ "stringValue": "4H"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "881824826a60"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:42.086243Z",
+ "updateTime": "2026-03-22T17:19:42.464300Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_4R",
+ "fields": {
+ "iata": {
+ "stringValue": "4R"
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/4RR.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "1004e6bc4536475ebd7e91108df6ecd1"
+ },
+ "data": {
+ "stringValue": "015f94cd411acd967cf2a622996c9c3d"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "4RR"
+ },
+ "stCode": {
+ "stringValue": "st_4R"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Renfe"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f236c09e0514"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.065585Z",
+ "updateTime": "2026-03-20T19:01:39.364093Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_4R_2026",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "HI Hamburg International"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_4R_2026"
+ },
+ "fsCode": {
+ "stringValue": "4R"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "c7feef269c80"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T09:09:21.147382Z",
+ "updateTime": "2026-04-13T09:09:21.762238Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_4R_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "4R"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Star East Airline S.R.L."
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_4R_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "42e07cfa18cc"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-01T02:00:18.229645Z",
+ "updateTime": "2026-03-20T19:01:44.642940Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_4T",
+ "fields": {
+ "iata": {
+ "stringValue": "4T"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/WEW.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "name": {
+ "stringValue": "Rise Air"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "78eca6f1ceec80dde25650b4bfb4fff7"
+ },
+ "data": {
+ "stringValue": "7f970008b20e00d90e3442b4346ec940"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "WEW"
+ },
+ "stCode": {
+ "stringValue": "st_4T"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "104"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b60308121282"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.095620Z",
+ "updateTime": "2026-03-25T20:34:19.396572Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_4T_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Belair Airlines"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_4T_2025"
+ },
+ "fsCode": {
+ "stringValue": "4T"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/custom/4T.png"
+ },
+ "type": {
+ "stringValue": "custom"
+ }
+ }
+ }
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "08d2027d03eb"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:45.095915Z",
+ "updateTime": "2026-03-30T07:30:20.369641Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_4X_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "4X"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Mercury World Cargo"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_4X_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "9aa0f81f2e92"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-27T08:37:40.304871Z",
+ "updateTime": "2026-03-27T08:37:40.392209Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_4Y_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Yute Air Alaska"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "3"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_4Y_2025"
+ },
+ "fsCode": {
+ "stringValue": "4Y"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "6186e4a92ce9"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:47.114295Z",
+ "updateTime": "2026-03-22T17:19:47.441899Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_4Y_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "4Y"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Airbus Beluga Transport"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_4Y_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "911e52e693fb"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-01T02:00:21.566920Z",
+ "updateTime": "2026-03-20T19:01:25.142886Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_5G",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Skyservice Airlines"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_5G"
+ },
+ "fsCode": {
+ "stringValue": "5G"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "0c8f45eff955"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:12.954262Z",
+ "updateTime": "2026-04-13T08:43:13.391954Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_5I",
+ "fields": {
+ "iata": {
+ "stringValue": "5I"
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/5Ix.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "2dd20f4da386eb921ee599ee09f6ae9f"
+ },
+ "logo": {
+ "stringValue": "6aeaab0c32b2a5299c412e5e385ed434"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "5Ix"
+ },
+ "stCode": {
+ "stringValue": "st_5I"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Alsa Grupo Slu"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "7bcba2167d9f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.128024Z",
+ "updateTime": "2026-03-20T19:01:43.240587Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_5K",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Odessa Airlines"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_5K"
+ },
+ "fsCode": {
+ "stringValue": "5K"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "d84d0ce93603"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:12.050238Z",
+ "updateTime": "2026-04-13T08:43:12.443204Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_5M_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "5M"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Mel Air"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_5M_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "7e0117722b53"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-01T02:00:29.630016Z",
+ "updateTime": "2026-03-20T19:01:43.596621Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_5W",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Iceland Express"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_5W"
+ },
+ "fsCode": {
+ "stringValue": "5W"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "908b772baa9a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:12.519206Z",
+ "updateTime": "2026-04-13T08:43:12.905613Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_6F",
+ "fields": {
+ "iata": {
+ "stringValue": "6F"
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/6FA.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "8fa64566da2faab93c31664888042897"
+ },
+ "logo": {
+ "stringValue": "dc6b049387e64abe178873ca71af5803"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "6FA"
+ },
+ "stCode": {
+ "stringValue": "st_6F"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Fox Air"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b6f9a6574276"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.343884Z",
+ "updateTime": "2026-03-20T19:01:42.174606Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_6G_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "6G"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Go2sky, Spol S R.O."
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_6G_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "149d66795309"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-27T08:37:41.259051Z",
+ "updateTime": "2026-03-27T08:37:41.435564Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_6I_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aviast Air"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "4"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_6I_2025"
+ },
+ "fsCode": {
+ "stringValue": "6I"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "169f030461b6"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:41.016900Z",
+ "updateTime": "2026-03-22T17:19:41.382856Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_6Q_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Cham Wings Airlines"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_6Q_2025"
+ },
+ "fsCode": {
+ "stringValue": "6Q"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "499c03c5e47c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:44.103676Z",
+ "updateTime": "2026-03-22T17:19:44.404830Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_6TX",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Almaty Aviation"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_6TX"
+ },
+ "fsCode": {
+ "stringValue": "6Tx"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "87da7c0233f5"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:15.084035Z",
+ "updateTime": "2026-04-13T08:43:15.368174Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_6U_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "ACG"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_6U_2025"
+ },
+ "fsCode": {
+ "stringValue": "6U"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "de9f5cc901f4"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:53.719957Z",
+ "updateTime": "2026-03-22T17:19:54.051633Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_7A",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Next"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_7A"
+ },
+ "fsCode": {
+ "stringValue": "7A"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "1783088fcef8"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:12.375682Z",
+ "updateTime": "2026-04-13T08:43:12.658301Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_7F_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "First Air"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "38"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_7F_2025"
+ },
+ "fsCode": {
+ "stringValue": "7F"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "4d2f50dd6b07"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:41.403864Z",
+ "updateTime": "2026-03-22T17:19:41.761932Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_7K",
+ "fields": {
+ "iata": {
+ "stringValue": "7K"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/72K.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "72K"
+ },
+ "stCode": {
+ "stringValue": "st_7K"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "HK Airport Direct"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "7365566e1d02"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.323764Z",
+ "updateTime": "2026-04-20T07:00:44.680150Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_7T",
+ "fields": {
+ "iata": {
+ "stringValue": "7T"
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Trenitalia"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/7TR.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "ab9614190b49c87d6476420f2cdd14c0"
+ },
+ "logo": {
+ "stringValue": "accf4029994b00ce8db1d54d8bfb9dc1"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "7TR"
+ },
+ "stCode": {
+ "stringValue": "st_7T"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "1fc5d84e9fd7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.355973Z",
+ "updateTime": "2026-03-20T19:01:42.838960Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_7T_2026",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Trans North Aviation"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_7T_2026"
+ },
+ "fsCode": {
+ "stringValue": "7T"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "400e09aae7b5"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T09:09:21.461750Z",
+ "updateTime": "2026-04-13T09:09:21.854889Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_7U",
+ "fields": {
+ "iata": {
+ "stringValue": "7U"
+ },
+ "name": {
+ "stringValue": "Commercial Aviation Services"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/7Ux.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "77e0c65a9971ee74b061c00e87e838f7"
+ },
+ "data": {
+ "stringValue": "c090cdb122ed2f116c51fe1509a27dce"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "7Ux"
+ },
+ "stCode": {
+ "stringValue": "st_7U"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "d96b3491813c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.388509Z",
+ "updateTime": "2026-03-20T19:01:43.044337Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_7Z_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "7Z"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Ameristar Air Cargo"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_7Z_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "ddd69bc688f9"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-27T08:37:41.247960Z",
+ "updateTime": "2026-03-27T08:37:41.404428Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_8A",
+ "fields": {
+ "iata": {
+ "stringValue": "8A"
+ },
+ "name": {
+ "stringValue": "Panama Airways"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/8Ax.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "209ac8c662dd97ff5d8022c27cafc30b"
+ },
+ "data": {
+ "stringValue": "e15e67e8a78f62503249c36bb9d45843"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "8Ax"
+ },
+ "stCode": {
+ "stringValue": "st_8A"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "cee56e0e1a85"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.388411Z",
+ "updateTime": "2026-03-20T19:01:42.516513Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_8A_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Atlas Blue"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_8A_2025"
+ },
+ "fsCode": {
+ "stringValue": "8A"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "314cb053934d"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:55.654235Z",
+ "updateTime": "2026-03-22T17:19:55.977229Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_8C_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Horizon"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "9"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_8C_2025"
+ },
+ "fsCode": {
+ "stringValue": "8C"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "fa8ffc5ba6ea"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:40.835680Z",
+ "updateTime": "2026-03-22T17:19:41.195670Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_8G",
+ "fields": {
+ "iata": {
+ "stringValue": "8G"
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/8Gx.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "name": {
+ "stringValue": "Aero Dili"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "b0f1eda86cc679a1f56a8c5ca5b207a6"
+ },
+ "data": {
+ "stringValue": "5df9ee23d39a99f46716d9c82396e874"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "8Gx"
+ },
+ "stCode": {
+ "stringValue": "st_8G"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b1f55c50826b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-01T02:20:27.877128Z",
+ "updateTime": "2026-04-12T18:31:11.596524Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_8K_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "EVAS Air Charters"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_8K_2025"
+ },
+ "fsCode": {
+ "stringValue": "8K"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "604fe55b35dd"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:54.747426Z",
+ "updateTime": "2026-03-22T17:19:54.980818Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_8S",
+ "fields": {
+ "name": {
+ "stringValue": "Turbojet"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "ff769b889dcea64a983f482054cef455"
+ },
+ "data": {
+ "stringValue": "5b1e4e5baf053eb37131cf7fa0ecd3af"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "iata": {
+ "stringValue": "8S"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/8S.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "8S"
+ },
+ "stCode": {
+ "stringValue": "st_8S"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "7ad0f0fb766b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.369526Z",
+ "updateTime": "2026-03-20T19:01:42.368552Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_8Z",
+ "fields": {
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "a7ed281fe3a3d129b2505000294b2859"
+ },
+ "data": {
+ "stringValue": "cab56c802f4912d6b24a3ae5cf4d784f"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "8Zx"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "iata": {
+ "stringValue": "8Z"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Congo Airways"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "stCode": {
+ "stringValue": "st_8Z"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "e7381f831ef2"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.375515Z",
+ "updateTime": "2026-03-20T19:01:42.626388Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_8Z_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Wizz Air Bulgaria"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_8Z_2025"
+ },
+ "fsCode": {
+ "stringValue": "8Z"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "361959b43f6c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:55.169194Z",
+ "updateTime": "2026-03-22T17:19:55.483568Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_9B",
+ "fields": {
+ "iata": {
+ "stringValue": "9B"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/9B.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "0046f1a4305e941a8219735768000f0b"
+ },
+ "data": {
+ "stringValue": "21910b1a0cb0bbfa34cdb1ed1d92cbc5"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "fsCode": {
+ "stringValue": "9B"
+ },
+ "stCode": {
+ "stringValue": "st_9B"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Accesrail"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b545b51ca02f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.372530Z",
+ "updateTime": "2026-03-20T19:01:42.524939Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_9F",
+ "fields": {
+ "iata": {
+ "stringValue": "9F"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/9F.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "1b3c09ef6cfc68183ae98c640193bae4"
+ },
+ "data": {
+ "stringValue": "7844fcf41970ddaa97a09e9c7df5a4a6"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "fsCode": {
+ "stringValue": "9F"
+ },
+ "stCode": {
+ "stringValue": "st_9F"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Eurostar International"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b1292a8cc777"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.303724Z",
+ "updateTime": "2026-03-20T19:01:38.654919Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_9T_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Transwest Air"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "16"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_9T_2025"
+ },
+ "fsCode": {
+ "stringValue": "9T"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "24a76a9c7564"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:38.550513Z",
+ "updateTime": "2026-03-22T17:19:38.931677Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_9X_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "New Axis Airways"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "8"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_9X_2025"
+ },
+ "fsCode": {
+ "stringValue": "9X"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "63eec3d8b535"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:45.010558Z",
+ "updateTime": "2026-03-22T17:19:45.334331Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_9Y",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Kazakstan"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_9Y"
+ },
+ "fsCode": {
+ "stringValue": "9Y"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "947983ca7dcc"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:16.843372Z",
+ "updateTime": "2026-04-13T08:43:17.254918Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_A0_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "L'Avion"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_A0_2025"
+ },
+ "fsCode": {
+ "stringValue": "A0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "2f6cd6e54104"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:40.738201Z",
+ "updateTime": "2026-03-22T17:19:41.144102Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_A1",
+ "fields": {
+ "iata": {
+ "stringValue": "A1"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_A1"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "A.P.G. Distribution Systems"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/A1.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b5f99739df50"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.237465Z",
+ "updateTime": "2026-03-27T08:37:41.378105Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_A4_cd",
+ "fields": {
+ "iata": {
+ "stringValue": "A4"
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aerosucre S.A."
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_A4_cd"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "8ab77b75d373"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-01T02:00:40.321562Z",
+ "updateTime": "2026-03-20T19:01:22.861155Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_A5_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "HOP!-AIRLINAIR"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "3"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_A5_2025"
+ },
+ "fsCode": {
+ "stringValue": "A5"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "de4b4b9cdf8a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:51.911081Z",
+ "updateTime": "2026-03-22T17:19:52.234763Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_A8",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Benin Golf Air"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_A8"
+ },
+ "fsCode": {
+ "stringValue": "A8"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "50aa2526eb23"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T08:43:10.275251Z",
+ "updateTime": "2026-04-13T08:43:10.647944Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAA",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AAA"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AAA"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Avicon Aviation Consultants & Agents"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b8edbca0269c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.877124Z",
+ "updateTime": "2026-03-20T19:01:41.759524Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAB",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AAB"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "89ecd014bd0c53951b355974af7dd591"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AAB"
+ },
+ "stCode": {
+ "stringValue": "st_AAB"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Abelag Aviation"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "578e071fefe8"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.988593Z",
+ "updateTime": "2026-03-20T19:01:37.852062Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAC",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Army Air Corps"
+ },
+ "icao": {
+ "stringValue": "AAC"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "74e70a9f843ffbeb7941e6f0f1b9bbdd"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AAC"
+ },
+ "stCode": {
+ "stringValue": "st_AAC"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "5aff86626a9a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.968314Z",
+ "updateTime": "2026-03-20T19:01:38.845748Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAD",
+ "fields": {
+ "iata": {
+ "stringValue": "FE"
+ },
+ "icao": {
+ "stringValue": "AAD"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/AAD.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AAD"
+ },
+ "stCode": {
+ "stringValue": "st_AAD"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Arrendamientos Aereos"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "db03cce216ad"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.020438Z",
+ "updateTime": "2026-03-20T19:01:42.537288Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAE",
+ "fields": {
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Air Atlanta Europe"
+ },
+ "icao": {
+ "stringValue": "AAE"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "stringValue": "CT"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "scraped"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/scraped/AAE.png"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "78e74a5b7c10994e904f70aa8d5f3e26"
+ },
+ "data": {
+ "stringValue": "eabf62971cfd5e1186d1364e544e40bd"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AAE"
+ },
+ "stCode": {
+ "stringValue": "st_AAE"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "1e56025589e6"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.212757Z",
+ "updateTime": "2026-03-20T19:01:40.436136Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAF",
+ "fields": {
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aigle Azur"
+ },
+ "icao": {
+ "stringValue": "AAF"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "70b4e56f6d3676ec5114b13d1bda4c1e"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ZI"
+ },
+ "stCode": {
+ "stringValue": "st_AAF"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "22"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f5d148dfa92a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.967136Z",
+ "updateTime": "2026-03-22T10:26:11.954427Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAG",
+ "fields": {
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Armenian Airlines"
+ },
+ "icao": {
+ "stringValue": "AAG"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "511bf0bdc6985307cf929ce328dc4f75"
+ },
+ "logo": {
+ "stringValue": "958bfaf4a2326290694ec6f6dad42acc"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "J2I"
+ },
+ "stCode": {
+ "stringValue": "st_AAG"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "iata": {
+ "stringValue": "JI"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/J2I.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a0e6a6d16dfc"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.987731Z",
+ "updateTime": "2026-04-20T07:33:52.432470Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAH",
+ "fields": {
+ "iata": {
+ "stringValue": "KH"
+ },
+ "name": {
+ "stringValue": "Aloha Air Cargo"
+ },
+ "icao": {
+ "stringValue": "AAH"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/KH.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "1e5aae2ae6db800c2b96baf0b3577955"
+ },
+ "data": {
+ "stringValue": "5665159caabbc4472fb785b8dab66b6b"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "KH"
+ },
+ "stCode": {
+ "stringValue": "st_AAH"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "30"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f3b1dc37c9a2"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:22.140276Z",
+ "updateTime": "2026-03-22T10:26:09.957645Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAI",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Aurora"
+ },
+ "icao": {
+ "stringValue": "AAI"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "920bb7cb71ee93975cfdf61a11f8d46b"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "2"
+ },
+ "fsCode": {
+ "stringValue": "AAI"
+ },
+ "stCode": {
+ "stringValue": "st_AAI"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b63b8dfb382c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.008147Z",
+ "updateTime": "2026-03-20T19:01:42.465521Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAJ",
+ "fields": {
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "AAJ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "fc1cf5a6bf80f9978aba6a7d6b369f6d"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AAJ"
+ },
+ "stCode": {
+ "stringValue": "st_AAJ"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Alfa Airlines SD"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "d6581a07c319"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.987790Z",
+ "updateTime": "2026-03-20T19:01:38.251381Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAK",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AAK"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AAK"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Alaska Island Air (Anchorage, Ak)"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "2c61530dfed7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.031165Z",
+ "updateTime": "2026-03-20T19:01:41.574968Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAL",
+ "fields": {
+ "iata": {
+ "stringValue": "AA"
+ },
+ "name": {
+ "stringValue": "American Airlines"
+ },
+ "icao": {
+ "stringValue": "AAL"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/AA.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "aa03fda9b422b551b423106c9e91b5ef"
+ },
+ "data": {
+ "stringValue": "204f806807226bdad617fcc0356a89e4"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": true
+ },
+ "fsCode": {
+ "stringValue": "AA"
+ },
+ "stCode": {
+ "stringValue": "st_AAL"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "stringValue": "oneworld"
+ },
+ "memberCount": {
+ "integerValue": "82091"
+ },
+ "openRequestCount": {
+ "integerValue": "62"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "de9cb4302c09"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T14:55:56.048403Z",
+ "updateTime": "2026-04-22T21:02:57.514409Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAM",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AAM"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AAM"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aim Air"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "75e639bb71cb"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.007709Z",
+ "updateTime": "2026-03-20T19:01:41.466569Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAN",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AAN"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AAN"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Ctr Atmospherica Aviation A.S."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "429f9008062d"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.980669Z",
+ "updateTime": "2026-03-20T19:01:41.748216Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAO",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AAO"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AAO"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Alpha Aviation S.R.O."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "7b0e61674059"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.967036Z",
+ "updateTime": "2026-03-20T19:01:42.115639Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAP",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AAP"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AAP"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Arabasco Air Services"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "11b6f1f611ae"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.968672Z",
+ "updateTime": "2026-03-20T19:01:41.446788Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAQ",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AAQ"
+ },
+ "name": {
+ "stringValue": "AirThailand"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_AAQ"
+ },
+ "fsCode": {
+ "stringValue": "HBx"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "cd9cf8fc2ad7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-27T16:46:00.847328Z",
+ "updateTime": "2026-03-27T16:46:01.226465Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAR",
+ "fields": {
+ "iata": {
+ "stringValue": "OZ"
+ },
+ "name": {
+ "stringValue": "Asiana Airlines"
+ },
+ "icao": {
+ "stringValue": "AAR"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/OZ.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "a989e0171c49cdbbdb54761d75f7758e"
+ },
+ "data": {
+ "stringValue": "5f62b5d1d511cdf07f8188ee2a2d0d06"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": true
+ },
+ "fsCode": {
+ "stringValue": "OZ"
+ },
+ "stCode": {
+ "stringValue": "st_AAR"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "stringValue": "star-alliance"
+ },
+ "memberCount": {
+ "integerValue": "3244"
+ },
+ "openRequestCount": {
+ "integerValue": "111"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "fd61d4c2c995"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T14:56:51.282627Z",
+ "updateTime": "2026-04-22T20:47:02.235381Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAS",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AAS"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AAS"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Askari Aviation"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "770da93fd504"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.014864Z",
+ "updateTime": "2026-03-20T19:01:27.366992Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAT",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "AAT"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "0b2fc6198e8bf25e7f0aaf87c517bd7c"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "A2T"
+ },
+ "stCode": {
+ "stringValue": "st_AAT"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Africa Airlines (Congo)"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f151e9492405"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.006274Z",
+ "updateTime": "2026-03-20T19:01:43.741705Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAT_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Austrian Air Transport"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "5"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_AAT_2025"
+ },
+ "fsCode": {
+ "stringValue": "AAT"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "73f704d39bae"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:47.870830Z",
+ "updateTime": "2026-03-22T17:19:48.201084Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAU",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AAU"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AAU"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aeropa S.R.L."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3034c477283c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.985905Z",
+ "updateTime": "2026-03-20T19:01:26.558134Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAW",
+ "fields": {
+ "name": {
+ "stringValue": "Afriqiyah Airways"
+ },
+ "icao": {
+ "stringValue": "AAW"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "529a9f7167877e21e659658cb3eb9b68"
+ },
+ "data": {
+ "stringValue": "24ff65737b511cde49f22abc3a09f7d0"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "8U"
+ },
+ "stCode": {
+ "stringValue": "st_AAW"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "550d0bb529f6"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.373381Z",
+ "updateTime": "2026-04-20T07:33:35.092450Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAX",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "AAX"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "0622b135c288490bd7f8f451194d55fc"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AAX"
+ },
+ "stCode": {
+ "stringValue": "st_AAX"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Advance Aviation"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "db5d914406dd"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.014124Z",
+ "updateTime": "2026-03-20T19:01:33.049698Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAY",
+ "fields": {
+ "iata": {
+ "stringValue": "G4"
+ },
+ "name": {
+ "stringValue": "Allegiant Air"
+ },
+ "icao": {
+ "stringValue": "AAY"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/custom/G4.png"
+ },
+ "type": {
+ "stringValue": "custom"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "7da5e8240d3e2ff433f3240df8dac2b5"
+ },
+ "logo": {
+ "stringValue": "c0113e0ec9b1eff2e9cbe9722bd87d61"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": true
+ },
+ "fsCode": {
+ "stringValue": "G4"
+ },
+ "stCode": {
+ "stringValue": "st_AAY"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "6851"
+ },
+ "openRequestCount": {
+ "integerValue": "-2"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "ed3b69543b35"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T15:09:51.843753Z",
+ "updateTime": "2026-04-22T21:00:24.094612Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AAZ",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aeolus Air"
+ },
+ "icao": {
+ "stringValue": "AAZ"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "ca6243e190bb2b526cd09fbad7c41b26"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AAZ"
+ },
+ "stCode": {
+ "stringValue": "st_AAZ"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b2c367788a2b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.001815Z",
+ "updateTime": "2026-03-20T19:01:32.908826Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABA",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "ABA"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "1d8469b9b967d71135f79b5e4855fff3"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ABA"
+ },
+ "stCode": {
+ "stringValue": "st_ABA"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Aero-Beta., Stuttgart"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "4f7d35e4bcd8"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.033830Z",
+ "updateTime": "2026-03-20T19:01:37.663197Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABB",
+ "fields": {
+ "name": {
+ "stringValue": "Air Belgium"
+ },
+ "icao": {
+ "stringValue": "ABB"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "3a434566faf1638a1b3262cdc0b10127"
+ },
+ "data": {
+ "stringValue": "863562888a5f84ed4964355b2e04c8c7"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "iata": {
+ "stringValue": "CB"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/ABB.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ABB"
+ },
+ "stCode": {
+ "stringValue": "st_ABB"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "17"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "d21619dc5cb9"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.291028Z",
+ "updateTime": "2026-03-22T10:25:55.805736Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABD",
+ "fields": {
+ "iata": {
+ "stringValue": "CC"
+ },
+ "icao": {
+ "stringValue": "ABD"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/CC.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "8f43dbc066fa98f33a919e8d7365f8f2"
+ },
+ "data": {
+ "stringValue": "682f89bc3f4141a2208592433c1778f7"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "CC"
+ },
+ "stCode": {
+ "stringValue": "st_ABD"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Air Atlanta"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "51"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "7aa4c824f328"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.329608Z",
+ "updateTime": "2026-04-11T20:22:30.453038Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABE",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aban Air"
+ },
+ "icao": {
+ "stringValue": "ABE"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "b28be4b15db842968c6621f0d47d02c5"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "K5x"
+ },
+ "stCode": {
+ "stringValue": "st_ABE"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "4df0c47621b7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.007097Z",
+ "updateTime": "2026-03-22T10:26:07.844631Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABF",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "ABF"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "8ad07bf797826c02ee63cd19e4b83df4"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ABF"
+ },
+ "stCode": {
+ "stringValue": "st_ABF"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Scanwings, Finland"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "7fdf99315605"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.021154Z",
+ "updateTime": "2026-03-20T19:01:38.635073Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABG",
+ "fields": {
+ "icao": {
+ "stringValue": "ABG"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "name": {
+ "stringValue": "Royal Flight"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "781c6224a0eb85e7ac84fc0efdbe3657"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "4Rx"
+ },
+ "stCode": {
+ "stringValue": "st_ABG"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "9b4f0befa76b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.009003Z",
+ "updateTime": "2026-03-22T10:25:53.694488Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABH",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ABH"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ABH"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Hokuriku-Koukuu"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3712628ad93e"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.001906Z",
+ "updateTime": "2026-03-20T19:01:42.527248Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABI",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ABI"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ABI"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Alba-Air Aviacion, S.L."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "02b0f1039d1c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.018314Z",
+ "updateTime": "2026-03-20T19:01:41.699043Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABJ",
+ "fields": {
+ "iata": {
+ "stringValue": "E4"
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "ABJ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/ABJ.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "6e294e452cfbf63434f31f280e80fb48"
+ },
+ "logo": {
+ "stringValue": "2047fea67de01b6d376099659664f045"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ABJ"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Abaet\u00e9 Avia\u00e7\u00e3o"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "stCode": {
+ "stringValue": "st_ABJ"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "76c24ac54099"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.315303Z",
+ "updateTime": "2026-03-20T19:01:42.030375Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABK",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Airbus Canada"
+ },
+ "icao": {
+ "stringValue": "ABK"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "f30be8ef735f7736df9be8504fd8c6b0"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "2"
+ },
+ "fsCode": {
+ "stringValue": "ABK"
+ },
+ "stCode": {
+ "stringValue": "st_ABK"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f77684649831"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.045765Z",
+ "updateTime": "2026-03-20T19:01:38.046087Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABL",
+ "fields": {
+ "iata": {
+ "stringValue": "BX"
+ },
+ "name": {
+ "stringValue": "Air Busan"
+ },
+ "icao": {
+ "stringValue": "ABL"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/BX.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "7a2a649070bb0bfaeda9d9747ed9029b"
+ },
+ "data": {
+ "stringValue": "21a859965bcee2386fbb946b4f72654a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "BX"
+ },
+ "stCode": {
+ "stringValue": "st_ABL"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "137"
+ },
+ "openRequestCount": {
+ "integerValue": "1"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a9e53ed1c5c1"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T15:09:43.245760Z",
+ "updateTime": "2026-04-22T11:41:15.447239Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABM",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ABM"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ABM"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aero Albatros"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "251d6506b7d6"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.036905Z",
+ "updateTime": "2026-03-20T19:01:41.174151Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABN",
+ "fields": {
+ "iata": {
+ "stringValue": "ZB"
+ },
+ "name": {
+ "stringValue": "Air Albania"
+ },
+ "icao": {
+ "stringValue": "ABN"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/ZBx.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "a68118a65fdcf99617c771b372920111"
+ },
+ "data": {
+ "stringValue": "02d9215902372a3daacaaffd38daa91e"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "4"
+ },
+ "fsCode": {
+ "stringValue": "ZBx"
+ },
+ "stCode": {
+ "stringValue": "st_ABN"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f1b57d3d1d46"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.036270Z",
+ "updateTime": "2026-03-05T08:51:03.908380Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABO",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ABO"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ABO"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aeroexpreso Bogota"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "de97ee061eae"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.013438Z",
+ "updateTime": "2026-03-20T19:01:36.600756Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABP",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "ABP"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "4a74bd94a6005457ed7ce46980eac586"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ABP"
+ },
+ "stCode": {
+ "stringValue": "st_ABP"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Abs Jets"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3cafafb2581f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.014083Z",
+ "updateTime": "2026-03-20T19:01:43.562273Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABQ",
+ "fields": {
+ "icao": {
+ "stringValue": "ABQ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "stringValue": "PA"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/ABQ.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "04b8e5a4bde163b1a4369fc304a6eed4"
+ },
+ "logo": {
+ "stringValue": "85663eb40b1de7b253b32660728dcb52"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "5"
+ },
+ "fsCode": {
+ "stringValue": "ABQ"
+ },
+ "stCode": {
+ "stringValue": "st_ABQ"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "airblue"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a38d7f07e9ac"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T16:05:23.005541Z",
+ "updateTime": "2026-04-07T13:34:38.811156Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABR",
+ "fields": {
+ "icao": {
+ "stringValue": "ABR"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "stringValue": "5H"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/AG.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "456c9f83aa954ad72f13d19aec7f2fe8"
+ },
+ "logo": {
+ "stringValue": "3ce4470f43a56359e51964e9e3a2f18e"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AG"
+ },
+ "stCode": {
+ "stringValue": "st_ABR"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Air Contractors"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "93"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "5c013b570b47"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.107029Z",
+ "updateTime": "2026-03-22T10:25:56.434071Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABS",
+ "fields": {
+ "iata": {
+ "stringValue": "J7"
+ },
+ "icao": {
+ "stringValue": "ABS"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/J7x.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "cd17bad994d29ed99c548f7a74c3dadb"
+ },
+ "data": {
+ "stringValue": "edffa844fcf840e0b73626ecb496fc8d"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "J7x"
+ },
+ "stCode": {
+ "stringValue": "st_ABS"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "FlyGabon"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a6902ad257c3"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:22.004726Z",
+ "updateTime": "2026-03-29T06:30:20.014126Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABT",
+ "fields": {
+ "icao": {
+ "stringValue": "ABT"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "8a764c2a9491be097e6c474002a011e0"
+ },
+ "logo": {
+ "stringValue": "6567714d4ede713f885881f816dc506d"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ABT"
+ },
+ "stCode": {
+ "stringValue": "st_ABT"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "iata": {
+ "stringValue": "PL"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/ABT.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "name": {
+ "stringValue": "Amazone Airlines"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f356414f738f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.026820Z",
+ "updateTime": "2026-04-13T07:00:25.846419Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABU",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ABU"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ABU"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Eagle Aviation Services (Ft. Worth, Tx)"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "baa546d844b7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.007031Z",
+ "updateTime": "2026-03-20T19:01:27.006834Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABV",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "ABV"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "c814d3769b494a4dda046306f0056594"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ABV"
+ },
+ "stCode": {
+ "stringValue": "st_ABV"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Antrak Air"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b135e62e284a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.033056Z",
+ "updateTime": "2026-03-20T19:01:43.795213Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABW",
+ "fields": {
+ "iata": {
+ "stringValue": "RU"
+ },
+ "icao": {
+ "stringValue": "ABW"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "997b3cfceb3911fa2c287ea4e923d22e"
+ },
+ "data": {
+ "stringValue": "936c4232baed003e0ac3b505c2271015"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "6"
+ },
+ "fsCode": {
+ "stringValue": "ABW"
+ },
+ "stCode": {
+ "stringValue": "st_ABW"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Airbridgecargo"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/ABW.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "fa0976076641"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:22.754248Z",
+ "updateTime": "2026-04-20T07:31:59.257864Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABX",
+ "fields": {
+ "iata": {
+ "stringValue": "GB"
+ },
+ "icao": {
+ "stringValue": "ABX"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/GB.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "e731a720886e37852ce23846cdcf7f11"
+ },
+ "data": {
+ "stringValue": "09fdb544275316e098ea1ffd9a3fc2a9"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "GB"
+ },
+ "stCode": {
+ "stringValue": "st_ABX"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Abx Air"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "148"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b9b6712b4897"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.367782Z",
+ "updateTime": "2026-04-15T06:52:19.974209Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABX_2026",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Airborne Express"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_ABX_2026"
+ },
+ "fsCode": {
+ "stringValue": "ABX"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "bef03e6d16ec"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T09:09:19.796170Z",
+ "updateTime": "2026-04-13T09:09:20.283821Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABY",
+ "fields": {
+ "iata": {
+ "stringValue": "G9"
+ },
+ "icao": {
+ "stringValue": "ABY"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/G9.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "name": {
+ "stringValue": "Air Arabia"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "015f438b6b76afeaadd5049dfd57099c"
+ },
+ "data": {
+ "stringValue": "e4b39fc7603b8f8ddf0fdc2dd12d40ec"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": true
+ },
+ "fsCode": {
+ "stringValue": "G9"
+ },
+ "stCode": {
+ "stringValue": "st_ABY"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "1213"
+ },
+ "openRequestCount": {
+ "integerValue": "1"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "4ced8af873ac"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T16:49:58.935358Z",
+ "updateTime": "2026-04-22T19:20:17.866280Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ABZ",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ABZ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ABZ"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Ambulance Services"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "6cce83aa75e0"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.036097Z",
+ "updateTime": "2026-03-20T19:01:36.522661Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AB_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Berlin"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "21"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_AB_2025"
+ },
+ "fsCode": {
+ "stringValue": "AB"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "cd96b3acec26"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:38.128914Z",
+ "updateTime": "2026-03-22T17:19:38.511076Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACA",
+ "fields": {
+ "iata": {
+ "stringValue": "AC"
+ },
+ "name": {
+ "stringValue": "Air Canada"
+ },
+ "icao": {
+ "stringValue": "ACA"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/AC.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "a67f204515c4bfa464094044b82cf562"
+ },
+ "data": {
+ "stringValue": "ea56a494c1a2d04e84d51722c679fd21"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": true
+ },
+ "fsCode": {
+ "stringValue": "AC"
+ },
+ "stCode": {
+ "stringValue": "st_ACA"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "stringValue": "star-alliance"
+ },
+ "memberCount": {
+ "integerValue": "27735"
+ },
+ "openRequestCount": {
+ "integerValue": "6"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3b16e1c282f7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T14:55:47.237975Z",
+ "updateTime": "2026-04-22T21:01:46.739969Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACB",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACB"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACB"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Continental Africa"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "009f3cdaf3f5"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.045894Z",
+ "updateTime": "2026-03-20T19:01:41.549040Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACC",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACC"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACC"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Airspeed Charter"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "365d08fda909"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.036194Z",
+ "updateTime": "2026-03-20T19:01:41.170465Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACD",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACD"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACD"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Academy Airlines (Griffin, Ga)"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "62792637df78"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.087402Z",
+ "updateTime": "2026-03-20T19:01:41.771318Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACE",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACE"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACE"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aviation Aces"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "20685353f66d"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.035888Z",
+ "updateTime": "2026-03-20T19:01:27.219781Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACF",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACF"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACF"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Centro de Formacion Aeronautica de Canarias"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3201230169c6"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.036711Z",
+ "updateTime": "2026-03-20T19:01:42.560828Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACG",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACG"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACG"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aosac - Airline Operations Support and Aviation Consultant"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "176c1944fe7d"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.082214Z",
+ "updateTime": "2026-03-20T19:01:42.474291Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACH",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACH"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACH"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Africa's Connection STP"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f871818b893a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.027318Z",
+ "updateTime": "2026-03-20T19:01:27.525499Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACI",
+ "fields": {
+ "iata": {
+ "stringValue": "SB"
+ },
+ "name": {
+ "stringValue": "Aircalin"
+ },
+ "icao": {
+ "stringValue": "ACI"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/SB.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "21f867c1775cdb98342643205b46ffbd"
+ },
+ "data": {
+ "stringValue": "6b294aa8e9a7095456a1ee3d01bf3c16"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": true
+ },
+ "fsCode": {
+ "stringValue": "SB"
+ },
+ "stCode": {
+ "stringValue": "st_ACI"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "238"
+ },
+ "openRequestCount": {
+ "integerValue": "8"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "eb9e853f490a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T18:12:08.250043Z",
+ "updateTime": "2026-04-22T02:10:11.047251Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACJ",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACJ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACJ"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Ac Aviation"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "86a79a60b40f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.081796Z",
+ "updateTime": "2026-03-20T19:01:41.165885Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACK",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACK"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACK"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Nantucket Airlines"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "aec6fabecb47"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.082477Z",
+ "updateTime": "2026-03-20T19:01:27.247223Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACL",
+ "fields": {
+ "iata": {
+ "stringValue": "JK"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/JKx.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "icao": {
+ "stringValue": "ACL"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "d4921e869b76757ef07f0f96e3887212"
+ },
+ "data": {
+ "stringValue": "4761053c6abb39407a9b5abde5ccf251"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "JKx"
+ },
+ "stCode": {
+ "stringValue": "st_ACL"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Aerolinea del Caribe S.A."
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "769faafda5b3"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:22.128397Z",
+ "updateTime": "2026-03-20T19:01:35.160369Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACM",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACM"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACM"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aviac S.A. de C.V. (Aereo Vias Centroamericanas Sociedad Anonima de Capital Variable)"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "808e7e9f0f0e"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.086243Z",
+ "updateTime": "2026-03-20T19:01:41.172883Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACN",
+ "fields": {
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "stringValue": "2F"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "scraped"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/scraped/OWT.png"
+ }
+ }
+ }
+ },
+ "name": {
+ "stringValue": "Azul Conecta"
+ },
+ "icao": {
+ "stringValue": "ACN"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "1160b8613de5b35a3e58c62af4dc69b9"
+ },
+ "data": {
+ "stringValue": "56174bea896ae739bd7c64a6febcb0bf"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "3"
+ },
+ "fsCode": {
+ "stringValue": "OWT"
+ },
+ "stCode": {
+ "stringValue": "st_ACN"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "7764ab23159f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.067434Z",
+ "updateTime": "2026-03-20T19:01:40.502345Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACN_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Azul Conecta"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "12"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_ACN_2025"
+ },
+ "fsCode": {
+ "stringValue": "ACN"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "dfaff8bde5cb"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:50.143441Z",
+ "updateTime": "2026-03-22T17:19:50.455077Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACO",
+ "fields": {
+ "icao": {
+ "stringValue": "ACO"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "c5daee83966d0606d004d6d9eabae202"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "3E"
+ },
+ "stCode": {
+ "stringValue": "st_ACO"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Air Choice One (St. Louis, Mo)"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "12"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "8531d903d05e"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.088082Z",
+ "updateTime": "2026-03-22T10:25:55.539204Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACP",
+ "fields": {
+ "iata": {
+ "stringValue": "8V"
+ },
+ "icao": {
+ "stringValue": "ACP"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/ACP.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "name": {
+ "stringValue": "Astral Aviation"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "d15f16e9d8a1963f6591fff61c901c70"
+ },
+ "data": {
+ "stringValue": "4e8fd2fee0403dc3538e0d435e93db36"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ACP"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "stCode": {
+ "stringValue": "st_ACP"
+ },
+ "memberCount": {
+ "integerValue": "3"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "707f9a84644a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.334444Z",
+ "updateTime": "2026-03-22T10:25:55.790434Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACQ",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACQ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACQ"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aryan Cargo Express"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "1ad15ae137aa"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.087602Z",
+ "updateTime": "2026-03-20T19:01:41.769510Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACR",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACR"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACR"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aerocenter, Escuela de Formacion de Pilotos Privados de Avion"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "cf7aaf65f558"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.089304Z",
+ "updateTime": "2026-03-20T19:01:41.559850Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACS",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACS"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "cab962dca6b232a0d759a000982a8ab4"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ACS"
+ },
+ "stCode": {
+ "stringValue": "st_ACS"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Aircraft Sales and Services"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "50928086948a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.074817Z",
+ "updateTime": "2026-03-20T19:01:43.159556Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACT",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACT"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "345b072580a55df5e97bf8e53a73916b"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "fsCode": {
+ "stringValue": "ACT"
+ },
+ "stCode": {
+ "stringValue": "st_ACT"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Flight Line (Denver, Co)"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "986a63524a1b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.079831Z",
+ "updateTime": "2026-03-20T19:01:38.240593Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACU",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACU"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACU"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Cargo Transportation System"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "7a71364db372"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.074652Z",
+ "updateTime": "2026-03-20T19:01:27.263565Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACV",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACV"
+ },
+ "name": {
+ "stringValue": "Air Carnival"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_ACV"
+ },
+ "fsCode": {
+ "stringValue": "22S"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "53a944fe01b4"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-27T16:46:00.281825Z",
+ "updateTime": "2026-03-27T16:46:00.480597Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACW",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "ACW"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "14435ba3cdb841f8845ca88c507f2953"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ACW"
+ },
+ "stCode": {
+ "stringValue": "st_ACW"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Servicios Aereos Across, S.A. de C.V."
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "cacfc66828e6"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.088354Z",
+ "updateTime": "2026-03-20T19:01:38.782597Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACY",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ACY"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ACY"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Alpha Crux"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "cfb5d0724b7e"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.094350Z",
+ "updateTime": "2026-03-20T19:01:41.769538Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ACY_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Fly Arna"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "19"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_ACY_2025"
+ },
+ "fsCode": {
+ "stringValue": "ACY"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "17365084f132"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:40.626434Z",
+ "updateTime": "2026-03-22T17:19:41.040435Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADA",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "ADA"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "3c2a7d2df047da258ce9dae02e734cba"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ADA"
+ },
+ "stCode": {
+ "stringValue": "st_ADA"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Airservices Australia, Flight Inspection Unit"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "e829ae0ac473"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.074754Z",
+ "updateTime": "2026-03-20T19:01:39.196933Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADB",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADB"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "c2de66b7ed1ee78aaa51a3089136907e"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ADB"
+ },
+ "stCode": {
+ "stringValue": "st_ADB"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Antonov Design Bureau"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "ced08b65319f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.093744Z",
+ "updateTime": "2026-03-20T19:01:39.192648Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADC",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADC"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ADC"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Ad Astra Executive Charter SP.Z.O.O."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a60c589a1f7a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.074680Z",
+ "updateTime": "2026-03-20T19:01:41.168509Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADD",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADD"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ADD"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Advanced Air"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "6049ccf23398"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.080279Z",
+ "updateTime": "2026-03-20T19:01:41.898115Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADF",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADF"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ADF"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Adefa, S.A."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "97b260a28a9b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.092669Z",
+ "updateTime": "2026-03-20T19:01:41.273381Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADG",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADG"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ADG"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aerea Flying Training Organization, S.A."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "bbf0c104d782"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.093845Z",
+ "updateTime": "2026-03-20T19:01:41.156580Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADI",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADI"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "07dce6bf9b34ab5f65c93aff0ab8f675"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "fsCode": {
+ "stringValue": "ADI"
+ },
+ "stCode": {
+ "stringValue": "st_ADI"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Audeli"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "349800af34bc"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.091481Z",
+ "updateTime": "2026-03-20T19:01:38.366698Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADJ",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADJ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ADJ"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aladdin Jet"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b9514227530b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.088411Z",
+ "updateTime": "2026-03-20T19:01:42.144054Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADK",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADK"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ADK"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aviation Development Nigeria"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "eaadba1326ee"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.074381Z",
+ "updateTime": "2026-03-20T19:01:42.308674Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADL",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADL"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ADL"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aero Dynamics"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a3908968d434"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.079836Z",
+ "updateTime": "2026-03-20T19:01:41.772124Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADM",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Air Dream College"
+ },
+ "icao": {
+ "stringValue": "ADM"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "03eabc1b96cfb464043dbedbfd097e80"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ADM"
+ },
+ "stCode": {
+ "stringValue": "st_ADM"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "51e358e369ff"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.083145Z",
+ "updateTime": "2026-03-20T19:01:39.001148Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADN",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADN"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "9a336874afe28c501d3ffbc4054bfef9"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "fsCode": {
+ "stringValue": "ADN"
+ },
+ "stCode": {
+ "stringValue": "st_ADN"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Aerodienst, Nuernberg"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3b3650e690a1"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.087116Z",
+ "updateTime": "2026-03-20T19:01:38.980494Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADO",
+ "fields": {
+ "iata": {
+ "stringValue": "HD"
+ },
+ "name": {
+ "stringValue": "Air Do"
+ },
+ "icao": {
+ "stringValue": "ADO"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/HD.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "9e25852dc1c067fb71a0a414ab2dfcdf"
+ },
+ "data": {
+ "stringValue": "042bcd8c86cb16ceb8dbfe1188dde43f"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "HD"
+ },
+ "stCode": {
+ "stringValue": "st_ADO"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "8f7b968e321d"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.377385Z",
+ "updateTime": "2026-04-21T21:20:11.082553Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADP",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADP"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ADP"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aerodiplomatic, S.A. de C.V."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "fc4a11fd17db"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.104791Z",
+ "updateTime": "2026-03-20T19:01:41.165390Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADR",
+ "fields": {
+ "isActive": {
+ "booleanValue": false
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Adria Airways"
+ },
+ "icao": {
+ "stringValue": "ADR"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "b21334573097a3f97eec6ba4f47f30de"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "fsCode": {
+ "stringValue": "JP"
+ },
+ "stCode": {
+ "stringValue": "st_ADR"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "141"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "70baa225badd"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.095122Z",
+ "updateTime": "2026-03-22T10:26:09.103444Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADS",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Anderson Air"
+ },
+ "icao": {
+ "stringValue": "ADS"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "730da33b0be2082e279c83d2a15907b4"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "ADS"
+ },
+ "stCode": {
+ "stringValue": "st_ADS"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f52778ea7bf7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.090675Z",
+ "updateTime": "2026-03-20T19:01:39.027163Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADT",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADT"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ADT"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Arrendamientos y Transportes Turisticos, S.A. de C.V."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "2f53a73dd3eb"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.091352Z",
+ "updateTime": "2026-03-20T19:01:41.173710Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADV",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "ADV"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_ADV"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Advanced Flight Training"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "6b035c0801a2"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.083142Z",
+ "updateTime": "2026-03-20T19:01:41.581383Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADY",
+ "fields": {
+ "iata": {
+ "stringValue": "3L"
+ },
+ "name": {
+ "stringValue": "Air Arabia Abu Dhabi"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/3Lx.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "icao": {
+ "stringValue": "ADY"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "153fd8202301a7c20f6c0c86eb6b56ce"
+ },
+ "data": {
+ "stringValue": "071433af3aa35701351df1284594da17"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "3Lx"
+ },
+ "stCode": {
+ "stringValue": "st_ADY"
+ },
+ "memberCount": {
+ "integerValue": "85"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "4694adaaa36a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T18:38:46.054196Z",
+ "updateTime": "2026-04-22T09:45:13.053824Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_ADZ",
+ "fields": {
+ "name": {
+ "stringValue": "Compass Cargo Airlines"
+ },
+ "icao": {
+ "stringValue": "ADZ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "stringValue": "HQ"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/ADZ.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "8321c2c6391e0bc71c8b4710b07020bb"
+ },
+ "logo": {
+ "stringValue": "6f23013fc6178950096aa1ef426766ff"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "2"
+ },
+ "fsCode": {
+ "stringValue": "ADZ"
+ },
+ "stCode": {
+ "stringValue": "st_ADZ"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "868c9c95ec05"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:22.005348Z",
+ "updateTime": "2026-03-20T19:01:42.549091Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEA",
+ "fields": {
+ "iata": {
+ "stringValue": "UX"
+ },
+ "name": {
+ "stringValue": "Air Europa"
+ },
+ "icao": {
+ "stringValue": "AEA"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/UX.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "94d515f91d639ed0a2d7a0b0836a82ce"
+ },
+ "data": {
+ "stringValue": "5e789a896e2af43fa28c8246ddf2a482"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": true
+ },
+ "fsCode": {
+ "stringValue": "UX"
+ },
+ "stCode": {
+ "stringValue": "st_AEA"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "stringValue": "skyteam"
+ },
+ "memberCount": {
+ "integerValue": "1295"
+ },
+ "openRequestCount": {
+ "integerValue": "175"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "64183dd3ac3e"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T15:29:51.383909Z",
+ "updateTime": "2026-04-22T20:31:03.151936Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEB",
+ "fields": {
+ "iata": {
+ "stringValue": "Z3"
+ },
+ "name": {
+ "stringValue": "Avion Express Brasil"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/Z23.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "Z23"
+ },
+ "stCode": {
+ "stringValue": "st_AEB"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "icao": {
+ "stringValue": "AEB"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "2"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "e14b1076598e"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.036923Z",
+ "updateTime": "2026-03-22T17:43:55.372858Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEC",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AEC"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AEC"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aeroservicios de Almeria 2000, S.L."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f0d2b015e0a2"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.092638Z",
+ "updateTime": "2026-03-20T19:01:41.770114Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AED",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Eads Casa"
+ },
+ "icao": {
+ "stringValue": "AED"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "5bce55e9753aa6e4ff71d2f08d1bc204"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AED"
+ },
+ "stCode": {
+ "stringValue": "st_AED"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "79582b40e2d0"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.095262Z",
+ "updateTime": "2026-03-20T19:01:40.107802Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEE",
+ "fields": {
+ "iata": {
+ "stringValue": "A3"
+ },
+ "name": {
+ "stringValue": "Aegean Airlines"
+ },
+ "icao": {
+ "stringValue": "AEE"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/custom/A3.png"
+ },
+ "type": {
+ "stringValue": "custom"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "90db4f58a307768d7658390cfdf316dd"
+ },
+ "logo": {
+ "stringValue": "c1f8f64d4522d7288ce097701db3d08a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": true
+ },
+ "fsCode": {
+ "stringValue": "A3"
+ },
+ "stCode": {
+ "stringValue": "st_AEE"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "stringValue": "star-alliance"
+ },
+ "memberCount": {
+ "integerValue": "623"
+ },
+ "openRequestCount": {
+ "integerValue": "64"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b167f096d682"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T17:43:52.314038Z",
+ "updateTime": "2026-04-22T20:41:24.270338Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEF",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AEF"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AEF"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aerea"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "4326b13dd711"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.071645Z",
+ "updateTime": "2026-03-20T19:01:41.772260Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEG",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Airest"
+ },
+ "icao": {
+ "stringValue": "AEG"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "9ed9b036914161109c90186a3923bcb5"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AEG"
+ },
+ "stCode": {
+ "stringValue": "st_AEG"
+ },
+ "memberCount": {
+ "integerValue": "2"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "081a14347d3c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.083291Z",
+ "updateTime": "2026-03-20T19:01:39.158900Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEH",
+ "fields": {
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "stringValue": "NL"
+ },
+ "icao": {
+ "stringValue": "AEH"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "scraped"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/scraped/AEH.png"
+ }
+ }
+ }
+ },
+ "name": {
+ "stringValue": "Amelia International"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "20fc53fc87eec65869b5bf0c04a45f0c"
+ },
+ "data": {
+ "stringValue": "02c8f8e90bcdc8f7e128a298e849a8c1"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "21"
+ },
+ "fsCode": {
+ "stringValue": "AEH"
+ },
+ "stCode": {
+ "stringValue": "st_AEH"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "28c6c9ada7ac"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:22.328640Z",
+ "updateTime": "2026-03-20T19:01:43.995661Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEI",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AEI"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AEI"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Poland SP. Z.O.O."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "d4017987efbd"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.082507Z",
+ "updateTime": "2026-03-20T19:01:41.671317Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEJ",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AEJ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AEJ"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aerojet Executive"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f82906a707aa"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.068989Z",
+ "updateTime": "2026-03-20T19:01:42.019974Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEK",
+ "fields": {
+ "icao": {
+ "stringValue": "AEK"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "7e9e32871d5e4d80ae81787c5a5c3f4f"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "A4"
+ },
+ "stCode": {
+ "stringValue": "st_AEK"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Aerocon Ltda."
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "01ea48f0eedb"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.075211Z",
+ "updateTime": "2026-03-20T19:01:37.232518Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEL",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "AEL"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "8e972746737b9b8392e58431b2115968"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AEL"
+ },
+ "stCode": {
+ "stringValue": "st_AEL"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Aegle Aviation (Aruba) N.V."
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "0d813fa60f43"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.082461Z",
+ "updateTime": "2026-03-20T19:01:38.977672Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEM",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AEM"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AEM"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aero Madrid"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "236a61d90a2a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.120332Z",
+ "updateTime": "2026-03-20T19:01:27.351905Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEN",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AEN"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AEN"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aireon Canada"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "036ccf3d6a5b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.125249Z",
+ "updateTime": "2026-03-20T19:01:41.359335Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEO",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AEO"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AEO"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aero Guernsey"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "91ce725df9ba"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.130737Z",
+ "updateTime": "2026-03-20T19:01:41.759944Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEP",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AEP"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "fc5ef7d46e45c11ef18041b5a3c72e0b"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AEP"
+ },
+ "stCode": {
+ "stringValue": "st_AEP"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Aerotec"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "de70f206ad3f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.071100Z",
+ "updateTime": "2026-03-22T10:25:56.014850Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AER",
+ "fields": {
+ "iata": {
+ "stringValue": "KO"
+ },
+ "icao": {
+ "stringValue": "AER"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/KO.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "da77c78248aea4c62e6ac802cc24b1ea"
+ },
+ "data": {
+ "stringValue": "ba32c184be0619a878f913d12d341fec"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "25"
+ },
+ "fsCode": {
+ "stringValue": "KO"
+ },
+ "stCode": {
+ "stringValue": "st_AER"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Alaska Central Express"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "202a2ae3fc1d"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:22.617819Z",
+ "updateTime": "2026-03-20T19:01:38.671076Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AES",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AES"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AES"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aerospace Engineering Services"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "2499ce711783"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.082945Z",
+ "updateTime": "2026-03-20T19:01:41.770092Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AET",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Aeronautical Radio of Thailand"
+ },
+ "icao": {
+ "stringValue": "AET"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "f9fab8682457108879329f1bea47b934"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AET"
+ },
+ "stCode": {
+ "stringValue": "st_AET"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "99b31d8136a8"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.075102Z",
+ "updateTime": "2026-03-20T19:01:37.843793Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEV",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AEV"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AEV"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aeroventas, S.A."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "e6269ce9d701"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.071841Z",
+ "updateTime": "2026-03-20T19:01:42.380069Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEW",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "AEW"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "c20d9c02541d1b1f4405d97bfcd85471"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AEW"
+ },
+ "stCode": {
+ "stringValue": "st_AEW"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Aegean Executive S.A."
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "9363969fe80b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.115028Z",
+ "updateTime": "2026-03-20T19:01:39.073481Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEX",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AEX"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AEX"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aerohelix S. de R.L. de C.V."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3ac841460378"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.136374Z",
+ "updateTime": "2026-03-20T19:01:41.165899Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEY",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AEY"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AEY"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Aeroservicios Centroamericanos S. de R.L."
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "0ecbfb5a8412"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.069063Z",
+ "updateTime": "2026-03-20T19:01:41.563426Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEY_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Italy S.p.A."
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "8"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_AEY_2025"
+ },
+ "fsCode": {
+ "stringValue": "AEY"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f22214b7733b"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:43.937057Z",
+ "updateTime": "2026-03-22T17:19:44.297715Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AEZ",
+ "fields": {
+ "icao": {
+ "stringValue": "AEZ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "stringValue": "XZ"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/AEZ.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "6ea681ae6ddf16273c3539346ccd437d"
+ },
+ "logo": {
+ "stringValue": "dd90175a5b260c08323f89155bfb839d"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "4"
+ },
+ "fsCode": {
+ "stringValue": "AEZ"
+ },
+ "stCode": {
+ "stringValue": "st_AEZ"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "AeroItalia"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "0491b763847a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.569404Z",
+ "updateTime": "2026-04-19T00:59:02.585500Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFA",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFA"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFA"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Alfa Air"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "c20aa46445e4"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.071242Z",
+ "updateTime": "2026-03-20T19:01:41.165304Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFB",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Bulgarian Air Force"
+ },
+ "icao": {
+ "stringValue": "AFB"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "959e354b3ab1202219127cd9b9a93e7e"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AFB"
+ },
+ "stCode": {
+ "stringValue": "st_AFB"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "08c83b0ca179"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.074486Z",
+ "updateTime": "2026-03-20T19:01:39.045875Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFC",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFC"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFC"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aerorutas del Sur C.A."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3d6467d027ca"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.791033Z",
+ "updateTime": "2026-03-20T19:01:42.572298Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFD",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFD"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFD"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Unity Air (Ghana)"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "c3ec8b12b3c9"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.806778Z",
+ "updateTime": "2026-03-20T19:01:41.514050Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFE",
+ "fields": {
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "AFE"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "31fdcf64eeb11f084770042c7a396427"
+ },
+ "logo": {
+ "stringValue": "e363bbbf81a4a4113d0af554f7870ec3"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AFE"
+ },
+ "stCode": {
+ "stringValue": "st_AFE"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "PT. Airfast Indonesia"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "5e22d82cde78"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.068667Z",
+ "updateTime": "2026-03-20T19:01:38.765573Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFF",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFF"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFF"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "AF-Aviation"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "6e4e5c43a4ec"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.944354Z",
+ "updateTime": "2026-03-20T19:01:41.771543Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFG",
+ "fields": {
+ "iata": {
+ "stringValue": "FG"
+ },
+ "name": {
+ "stringValue": "Ariana Afghan Airlines"
+ },
+ "icao": {
+ "stringValue": "AFG"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/FG.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "03d7819c5aaff5ac66e3be278a42a286"
+ },
+ "data": {
+ "stringValue": "7734f040b1df3da4fe0b7ab640e93356"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "1"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "fsCode": {
+ "stringValue": "FG"
+ },
+ "stCode": {
+ "stringValue": "st_AFG"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "10203b109ff9"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.031172Z",
+ "updateTime": "2026-03-20T19:01:42.911091Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFH",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFH"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFH"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Afghanistan International"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "d9709534d16a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.983336Z",
+ "updateTime": "2026-03-20T19:01:41.753117Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFI",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFI"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFI"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Africaone"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "d5f9ff54ef84"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.988240Z",
+ "updateTime": "2026-03-20T19:01:42.051254Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFJ",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFJ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFJ"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Alliance"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a1d9805e84b7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.936105Z",
+ "updateTime": "2026-03-20T19:01:41.774551Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFL",
+ "fields": {
+ "iata": {
+ "stringValue": "SU"
+ },
+ "name": {
+ "stringValue": "Aeroflot"
+ },
+ "icao": {
+ "stringValue": "AFL"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/SU.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "11e65dd2d0022704b315901ea0e26328"
+ },
+ "data": {
+ "stringValue": "0cb3a81c1bf1c26ebca75eef5cd46b60"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": true
+ },
+ "fsCode": {
+ "stringValue": "SU"
+ },
+ "stCode": {
+ "stringValue": "st_AFL"
+ },
+ "memberCount": {
+ "integerValue": "431"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "openRequestCount": {
+ "integerValue": "2"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "251327c891a0"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:22.767822Z",
+ "updateTime": "2026-04-21T12:22:18.585460Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFM",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "AFM"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "name": {
+ "stringValue": "Aerospeed Formation et Maintenance"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "2e6aafa7177f670bb085a9f70e4304e3"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AFM"
+ },
+ "stCode": {
+ "stringValue": "st_AFM"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b099c3625077"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.934450Z",
+ "updateTime": "2026-03-20T19:01:37.679977Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFN",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFN"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFN"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Atlantsflug"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "90eab68b3df2"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.944338Z",
+ "updateTime": "2026-03-20T19:01:41.165431Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFP",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Portuguese Air Force"
+ },
+ "icao": {
+ "stringValue": "AFP"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "286d069b1ac10a7a04616507fc3cc0e7"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AFP"
+ },
+ "stCode": {
+ "stringValue": "st_AFP"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a37b99731986"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.912851Z",
+ "updateTime": "2026-03-20T19:01:38.221741Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFQ",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFQ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFQ"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Alba Servizi Aerotrasporti SPA"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3cc02d1d232d"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.067836Z",
+ "updateTime": "2026-03-20T19:01:42.073350Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFR",
+ "fields": {
+ "iata": {
+ "stringValue": "AF"
+ },
+ "name": {
+ "stringValue": "Air France"
+ },
+ "icao": {
+ "stringValue": "AFR"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/AF.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "a022878ed1194e8595dc51129f9e9d86"
+ },
+ "data": {
+ "stringValue": "eadf176b640e71a295a8f0d28accd093"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": true
+ },
+ "fsCode": {
+ "stringValue": "AF"
+ },
+ "stCode": {
+ "stringValue": "st_AFR"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "stringValue": "skyteam"
+ },
+ "memberCount": {
+ "integerValue": "6344"
+ },
+ "openRequestCount": {
+ "integerValue": "911"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "ba2dd2632873"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T14:57:11.298042Z",
+ "updateTime": "2026-04-22T21:02:17.723668Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFS",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFS"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFS"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Data"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "bc897663d56a"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.066618Z",
+ "updateTime": "2026-03-20T19:01:41.167030Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFV",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFV"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFV"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Avfinity"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "c92514ce81ca"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.981206Z",
+ "updateTime": "2026-03-20T19:01:41.333954Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFW",
+ "fields": {
+ "iata": {
+ "stringValue": "AW"
+ },
+ "name": {
+ "stringValue": "Africa World Airlines"
+ },
+ "icao": {
+ "stringValue": "AFW"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/AFW.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "20cf6c56a8519be48c9e5af9c08bfae3"
+ },
+ "data": {
+ "stringValue": "0eb628eb0e78785095fd992131aa18b3"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "4"
+ },
+ "fsCode": {
+ "stringValue": "AFW"
+ },
+ "stCode": {
+ "stringValue": "st_AFW"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "03111afb8e1f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.374606Z",
+ "updateTime": "2026-03-20T19:01:40.704508Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFX",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFX"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFX"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Airfreight Express"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b192663bdfd6"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:23.981683Z",
+ "updateTime": "2026-03-20T19:01:41.165611Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFY",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AFY"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AFY"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Africa Chartered Services"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "2871e2b0222d"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.062423Z",
+ "updateTime": "2026-03-20T19:01:41.654890Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AFZ",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Atlantic Flight Training Academy"
+ },
+ "icao": {
+ "stringValue": "AFZ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "42ae1769ed0df118311bf42a239c3e2f"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AFZ"
+ },
+ "stCode": {
+ "stringValue": "st_AFZ"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f7f8a15bc0bf"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.057139Z",
+ "updateTime": "2026-03-20T19:01:38.634679Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGA",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AGA"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AGA"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Ashianeh"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "87aba2c9efdf"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.074666Z",
+ "updateTime": "2026-03-20T19:01:41.748573Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGB",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AGB"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AGB"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air-Service-Gabon"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "7807bfc0d370"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.060867Z",
+ "updateTime": "2026-03-20T19:01:41.480023Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGD",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AGD"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AGD"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Agricolair, S.L."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "cca6b8444ce7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.075212Z",
+ "updateTime": "2026-03-20T19:01:41.156792Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGE",
+ "fields": {
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Aeromanage"
+ },
+ "icao": {
+ "stringValue": "AGE"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "baf3fcdb69603ce412d33b32e39301c2"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "GCA"
+ },
+ "stCode": {
+ "stringValue": "st_AGE"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a437b18bae27"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.066172Z",
+ "updateTime": "2026-03-20T19:01:37.855749Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGH",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Altagna"
+ },
+ "icao": {
+ "stringValue": "AGH"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "c9fa1fee01055be9d8e4897ff3f82ef9"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AGH"
+ },
+ "stCode": {
+ "stringValue": "st_AGH"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "feefe3fd49ac"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.068829Z",
+ "updateTime": "2026-03-20T19:01:41.789435Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGK",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AGK"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AGK"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Agat Airlines"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "fa135518da44"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.067286Z",
+ "updateTime": "2026-03-20T19:01:41.759724Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGM",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AGM"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AGM"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aviation West Charters (Scottsdale, Az)"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "caef52de5e6d"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.063089Z",
+ "updateTime": "2026-03-20T19:01:41.162701Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGN",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AGN"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "1c3e18bdafae5308e604bd2b6a04a55e"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "GN"
+ },
+ "stCode": {
+ "stringValue": "st_AGN"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Compagnie Nationale Air Gabon"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a0d5198a07b0"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.068486Z",
+ "updateTime": "2026-03-20T19:01:39.007293Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGO",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Angola Air Charter"
+ },
+ "icao": {
+ "stringValue": "AGO"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "8bdb6b7b1030b8d2d8a6fb2b89e87c40"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AGO"
+ },
+ "stCode": {
+ "stringValue": "st_AGO"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "0e8612498b2f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.067022Z",
+ "updateTime": "2026-03-20T19:01:37.139662Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGP",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "AGP"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "128172634024943688673f30950c5863"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AGP"
+ },
+ "stCode": {
+ "stringValue": "st_AGP"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Aerfi Group"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a1619488dbac"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.062344Z",
+ "updateTime": "2026-03-20T19:01:42.729266Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGR",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AGR"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "fe52a35d1b1eb9274f59e7fa66aad915"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AGR"
+ },
+ "stCode": {
+ "stringValue": "st_AGR"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Asl"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "8"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f5610eda1a47"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.060517Z",
+ "updateTime": "2026-04-07T07:15:25.535905Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGS",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AGS"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AGS"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aot Ground Aviation Services"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "992c50782b49"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.083320Z",
+ "updateTime": "2026-03-20T19:01:36.487532Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGT",
+ "fields": {
+ "icao": {
+ "stringValue": "AGT"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AGT"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Amadeus Global Travel Distribution S.A."
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "037064f2e2aa"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.063374Z",
+ "updateTime": "2026-03-22T02:00:31.990323Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGU",
+ "fields": {
+ "name": {
+ "stringValue": "Angara Airlines"
+ },
+ "icao": {
+ "stringValue": "AGU"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "942dfe0b110d7bc393cd32343ecffb0c"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "IK"
+ },
+ "stCode": {
+ "stringValue": "st_AGU"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "172d160292c1"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.074666Z",
+ "updateTime": "2026-03-22T10:26:09.766096Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGV",
+ "fields": {
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Glaciers"
+ },
+ "icao": {
+ "stringValue": "AGV"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "609489d62b3b5724d288a7749f7ca2e0"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "7Tx"
+ },
+ "stCode": {
+ "stringValue": "st_AGV"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "5d0e655e06e2"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.074715Z",
+ "updateTime": "2026-03-20T19:01:37.724173Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AGY",
+ "fields": {
+ "name": {
+ "stringValue": "Air Go Egypt"
+ },
+ "icao": {
+ "stringValue": "AGY"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "681eaf5b2937e18ca04a275dbdd1ec51"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AGY"
+ },
+ "stCode": {
+ "stringValue": "st_AGY"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b81f3756af3f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.074278Z",
+ "updateTime": "2026-03-22T10:26:06.440160Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHB",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AHB"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AHB"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Alboran S.L."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "6a01e1db2e27"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.063099Z",
+ "updateTime": "2026-03-20T19:01:27.254376Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHC",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AHC"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AHC"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Ascent Helicopters"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f1818173b6b7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.068692Z",
+ "updateTime": "2026-03-20T19:01:42.368661Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHC_2026",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "AZAL Avia Cargo"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_AHC_2026"
+ },
+ "fsCode": {
+ "stringValue": "AHC"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "bc1ccd589c26"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-04-13T09:09:19.136094Z",
+ "updateTime": "2026-04-13T09:09:19.681964Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHD",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AHD"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AHD"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Czech Air Handling"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f79f8bcd95b9"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.063562Z",
+ "updateTime": "2026-03-20T19:01:27.110569Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHE",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AHE"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AHE"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Airport Helicopter Ahb"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a25b33dd27fb"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.062899Z",
+ "updateTime": "2026-03-20T19:01:41.759273Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHF",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "AHF"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "028021af00e563991f1233a24fcea5ee"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AHF"
+ },
+ "stCode": {
+ "stringValue": "st_AHF"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Aspen Helicopters (Oxnard, Ca)"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f9fc5bae4341"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.066524Z",
+ "updateTime": "2026-03-20T19:01:37.879065Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHH",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AHH"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AHH"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Airplanes Holdings"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "b838aa310e1c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.063048Z",
+ "updateTime": "2026-03-20T19:01:41.166938Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHI",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AHI"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AHI"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Servicios Aereos de Chihuahua Aerochisa, S.A. de C.V."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "442eb4d31bf1"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.062499Z",
+ "updateTime": "2026-03-20T19:01:42.102050Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHJ",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AHJ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AHJ"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aviones y Helicopteros Ejecutivos, S.A. de C.V."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3cda1dbd4bfa"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.075126Z",
+ "updateTime": "2026-03-20T19:01:41.665005Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHK",
+ "fields": {
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "stringValue": "LD"
+ },
+ "icao": {
+ "stringValue": "AHK"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "scraped"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/scraped/LD.png"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "7f06f4d8959bc2b06223d7788084e52d"
+ },
+ "data": {
+ "stringValue": "89b8b4a16abfe9c22692a55436745f85"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "LD"
+ },
+ "stCode": {
+ "stringValue": "st_AHK"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Ahk Air Hong Kong"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "39"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "91c50e277826"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:22.750306Z",
+ "updateTime": "2026-04-09T07:24:12.350243Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHL",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AHL"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AHL"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aerolineas Hidalgo, S.A. de C.V."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "e05c46e23d8f"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.067054Z",
+ "updateTime": "2026-03-20T19:01:41.759261Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHM",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AHM"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AHM"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Atlantis Helicopters de Mexico, S.A. de C.V."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3ad2815d5610"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.063772Z",
+ "updateTime": "2026-03-20T19:01:41.165297Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHN",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AHN"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AHN"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Avia Group Handling"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "700d0701fdd7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.108091Z",
+ "updateTime": "2026-03-20T19:01:41.169116Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHS",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AHS"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "9c7f1c4ccce8501c8ff509fd13913eb2"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "11"
+ },
+ "fsCode": {
+ "stringValue": "AHS"
+ },
+ "stCode": {
+ "stringValue": "st_AHS"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Ahs Air International"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "0f6f34f64a19"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.074444Z",
+ "updateTime": "2026-03-20T19:01:41.608343Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHT",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "icao": {
+ "stringValue": "AHT"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "58fb294ae4da03af87aa1e4b435285c4"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AHT"
+ },
+ "stCode": {
+ "stringValue": "st_AHT"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Hta Helicopteros, Lda"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "09721329d784"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.114487Z",
+ "updateTime": "2026-03-20T19:01:40.256473Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHU",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AHU"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AHU"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Abc Air Hungary"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "d9faa582ba7d"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.124884Z",
+ "updateTime": "2026-03-20T19:01:41.749320Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHW",
+ "fields": {
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "5ba541f60ef04c9794f2820bd811e9db"
+ },
+ "data": {
+ "stringValue": "95fe0f619a0f432b24ae3eae251582e7"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "2"
+ },
+ "fsCode": {
+ "stringValue": "AHW"
+ },
+ "stCode": {
+ "stringValue": "st_AHW"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Sky Capital Airlines"
+ },
+ "icao": {
+ "stringValue": "AHW"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "e60b65e41c86"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.139895Z",
+ "updateTime": "2026-03-20T19:01:38.655283Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHX",
+ "fields": {
+ "iata": {
+ "stringValue": "MZ"
+ },
+ "icao": {
+ "stringValue": "AHX"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/AHX.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Amakusa Airlines"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "be905772ba8639f2867c5e7846b671a8"
+ },
+ "data": {
+ "stringValue": "21c48ab9cac88bf6005ed7fee44ee37b"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AHX"
+ },
+ "stCode": {
+ "stringValue": "st_AHX"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f29af95cd6ea"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:22.755321Z",
+ "updateTime": "2026-03-20T19:01:43.799232Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AHY",
+ "fields": {
+ "iata": {
+ "stringValue": "J2"
+ },
+ "icao": {
+ "stringValue": "AHY"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/J2.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "name": {
+ "stringValue": "Azerbaijan Airlines"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "d68bc6a9aaf05bbcf76b5830becb82a0"
+ },
+ "data": {
+ "stringValue": "967327b5db68c4fb704058e7225c7992"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "3"
+ },
+ "fsCode": {
+ "stringValue": "J2"
+ },
+ "stCode": {
+ "stringValue": "st_AHY"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "8f3d874ded06"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:22.002954Z",
+ "updateTime": "2026-04-20T21:35:12.302826Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIA",
+ "fields": {
+ "icao": {
+ "stringValue": "AIA"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "stringValue": "8R"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/AIA.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "name": {
+ "stringValue": "Amelia"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "be8def296852ad2ab796e182b2f6d925"
+ },
+ "data": {
+ "stringValue": "727f3657fa288e34d777462e33217a77"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AIA"
+ },
+ "stCode": {
+ "stringValue": "st_AIA"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "39"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "bcdd45f74073"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:21.388823Z",
+ "updateTime": "2026-04-01T20:03:04.434263Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIB",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AIB"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "b637ccc191ffd02d0b90ec0c5540429c"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AIB"
+ },
+ "stCode": {
+ "stringValue": "st_AIB"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Airbus Industrie"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "8"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "4ca192bf0b89"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.136397Z",
+ "updateTime": "2026-03-22T10:25:56.946554Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIC",
+ "fields": {
+ "iata": {
+ "stringValue": "AI"
+ },
+ "name": {
+ "stringValue": "Air India"
+ },
+ "icao": {
+ "stringValue": "AIC"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/AI.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "2d004a9516408b1de1673aac079ae831"
+ },
+ "data": {
+ "stringValue": "a4f7b60ed1a4ed22cfb9cf84381b5216"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": true
+ },
+ "fsCode": {
+ "stringValue": "AI"
+ },
+ "stCode": {
+ "stringValue": "st_AIC"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "stringValue": "star-alliance"
+ },
+ "memberCount": {
+ "integerValue": "3019"
+ },
+ "openRequestCount": {
+ "integerValue": "46"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a4d1f3fbf673"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T15:01:15.394169Z",
+ "updateTime": "2026-04-22T20:57:07.119992Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIE",
+ "fields": {
+ "iata": {
+ "stringValue": "3H"
+ },
+ "name": {
+ "stringValue": "Air Inuit"
+ },
+ "icao": {
+ "stringValue": "AIE"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/3H.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "d4c43e05106f063e23be6b3de813e9f2"
+ },
+ "data": {
+ "stringValue": "8959ea4db080f2e13b99492f71657b8e"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "hasNotes": {
+ "booleanValue": true
+ },
+ "fsCode": {
+ "stringValue": "3H"
+ },
+ "stCode": {
+ "stringValue": "st_AIE"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "memberCount": {
+ "integerValue": "670"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "1ebd87f2cd81"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-29T22:21:16.811641Z",
+ "updateTime": "2026-04-22T16:00:25.123019Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIF",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AIF"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AIF"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Aim Aviation"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f39e9d5ff2f7"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.070883Z",
+ "updateTime": "2026-03-20T19:01:42.564878Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIG",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "name": {
+ "stringValue": "Air Inter Gabon"
+ },
+ "icao": {
+ "stringValue": "AIG"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "e4d9ad342e89695cf683bb37d8a53072"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AIG"
+ },
+ "stCode": {
+ "stringValue": "st_AIG"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "4b15e1f78ef1"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.135972Z",
+ "updateTime": "2026-03-20T19:01:39.204302Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIH",
+ "fields": {
+ "iata": {
+ "stringValue": "KJ"
+ },
+ "icao": {
+ "stringValue": "AIH"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/KJx.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "27e439c5a92be1877352f11419ecb238"
+ },
+ "data": {
+ "stringValue": "bbf16917e71a50088e467a92fe58e906"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "KJx"
+ },
+ "stCode": {
+ "stringValue": "st_AIH"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Airzeta"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "memberCount": {
+ "integerValue": "8"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "3e8182c452b8"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:22.703665Z",
+ "updateTime": "2026-03-22T10:26:09.764Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AII",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AII"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AII"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "A247"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "77fa7562c6e4"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.080344Z",
+ "updateTime": "2026-03-20T19:01:41.174247Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIJ",
+ "fields": {
+ "name": {
+ "stringValue": "Interjet"
+ },
+ "icao": {
+ "stringValue": "AIJ"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "a29ffbc23e499344c4e02c3f9602b72a"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "2"
+ },
+ "fsCode": {
+ "stringValue": "4O"
+ },
+ "stCode": {
+ "stringValue": "st_AIJ"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "f08e79a6e158"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.118763Z",
+ "updateTime": "2026-03-04T10:23:20.266385Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIJ_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Interjet"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "3"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_AIJ_2025"
+ },
+ "fsCode": {
+ "stringValue": "AIJ"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "59b2364a8b55"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:52.536248Z",
+ "updateTime": "2026-03-22T17:19:52.930766Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIK",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AIK"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "name": {
+ "stringValue": "African Airlines International"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "6087dbf5d6d06109ffea108869c0de2b"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "2"
+ },
+ "fsCode": {
+ "stringValue": "AIK"
+ },
+ "stCode": {
+ "stringValue": "st_AIK"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "e90c253c4524"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.135664Z",
+ "updateTime": "2026-03-20T19:01:38.001228Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIM",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AIM"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AIM"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Trabajos Aereos Murcianos S.L."
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "37a2654b0c90"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.126704Z",
+ "updateTime": "2026-03-20T19:01:41.222823Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIN",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AIN"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ },
+ "data": {
+ "stringValue": "a27a14498477a5728a3007c375ff5965"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "AIN"
+ },
+ "stCode": {
+ "stringValue": "st_AIN"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "African International Airways"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "624df75e3468"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.136044Z",
+ "updateTime": "2026-03-20T19:01:39.163866Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIO",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AIO"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AIO"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Chief of Staff, United States Air Force (Andrews Afb, Md)"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "98818443a333"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.117156Z",
+ "updateTime": "2026-03-20T19:01:41.632019Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIP",
+ "fields": {
+ "icao": {
+ "stringValue": "AIP"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "iata": {
+ "nullValue": null
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ },
+ "type": {
+ "stringValue": "fallback"
+ }
+ }
+ }
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "data": {
+ "stringValue": "cbcd99790c67c5cf99ce44fe6f7cf435"
+ },
+ "logo": {
+ "stringValue": "eaeecef837cbd2fd38d881bfe837cb7a"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "fsCode": {
+ "stringValue": "5A"
+ },
+ "stCode": {
+ "stringValue": "st_AIP"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "name": {
+ "stringValue": "Alpine Aviation"
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "9b184fdae24c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.131538Z",
+ "updateTime": "2026-03-27T08:37:48.757027Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIQ",
+ "fields": {
+ "iata": {
+ "stringValue": "FD"
+ },
+ "name": {
+ "stringValue": "Thai AirAsia"
+ },
+ "icao": {
+ "stringValue": "AIQ"
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "path": {
+ "stringValue": "images/airline-logos/scraped/FD.png"
+ },
+ "type": {
+ "stringValue": "scraped"
+ }
+ }
+ }
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "__index": {
+ "mapValue": {
+ "fields": {
+ "digests": {
+ "mapValue": {
+ "fields": {
+ "logo": {
+ "stringValue": "7946d8cb9c4378fc42e76e32fe7b3e6f"
+ },
+ "data": {
+ "stringValue": "fe645bbdf2926a05061384246ed5356f"
+ }
+ }
+ }
+ },
+ "isDirty": {
+ "booleanValue": false
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "11"
+ },
+ "fsCode": {
+ "stringValue": "FD"
+ },
+ "stCode": {
+ "stringValue": "st_AIQ"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "openRequestCount": {
+ "integerValue": "1"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "a5275d4a9fd1"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T03:24:46.468981Z",
+ "updateTime": "2026-04-22T04:15:38.818691Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIR_2025",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Airlift International"
+ },
+ "isActive": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "memberCount": {
+ "integerValue": "2"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "stCode": {
+ "stringValue": "st_AIR_2025"
+ },
+ "fsCode": {
+ "stringValue": "AIR"
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "aea23ea68dde"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-03-22T17:19:39.416021Z",
+ "updateTime": "2026-03-22T17:19:39.760197Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIS",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AIS"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AIS"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Sureste"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "deac245b0fbe"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.126450Z",
+ "updateTime": "2026-03-20T19:01:42.536423Z"
+ },
+ {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/airlinesBySt/st_AIT",
+ "fields": {
+ "iata": {
+ "nullValue": null
+ },
+ "icao": {
+ "stringValue": "AIT"
+ },
+ "isActive": {
+ "booleanValue": true
+ },
+ "logo": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "fallback"
+ },
+ "path": {
+ "stringValue": "images/airline-logos/__fallback.png"
+ }
+ }
+ }
+ },
+ "memberCount": {
+ "integerValue": "0"
+ },
+ "openRequestCount": {
+ "integerValue": "0"
+ },
+ "hasNotes": {
+ "booleanValue": false
+ },
+ "stCode": {
+ "stringValue": "st_AIT"
+ },
+ "fsCode": {
+ "nullValue": null
+ },
+ "name": {
+ "stringValue": "Air Taurus"
+ },
+ "isControlledDuplicate": {
+ "booleanValue": false
+ },
+ "alliance": {
+ "nullValue": null
+ },
+ "__checksums": {
+ "mapValue": {
+ "fields": {
+ "typesense": {
+ "stringValue": "03f0d916040c"
+ }
+ }
+ }
+ }
+ },
+ "createTime": "2026-01-30T08:48:24.114299Z",
+ "updateTime": "2026-03-20T19:01:41.525081Z"
+ }
+]
\ No newline at end of file
diff --git a/api_docs/stafftraveler_captures/createLoadsRequests_AA2178_request.json b/api_docs/stafftraveler_captures/createLoadsRequests_AA2178_request.json
new file mode 100644
index 0000000..b89f79e
--- /dev/null
+++ b/api_docs/stafftraveler_captures/createLoadsRequests_AA2178_request.json
@@ -0,0 +1,31 @@
+[
+ {
+ "id": "a23d6f8379f5109eddeb5bbf78bdccc1",
+ "id_v2": "0d9d0702b203d224ace3e6eb94531dde",
+ "id_v3": "AA_2178_DFW_2026_04_22",
+ "airlineId": "AA",
+ "flightNumber": 2178,
+ "flightCode": "AA2178",
+ "departureAirportId": "DFW",
+ "arrivalAirportId": "LAS",
+ "departureTimeLocal": "2026-04-22T16:45:00-05:00",
+ "departureTimeUtc": "2026-04-22T21:45:00Z",
+ "arrivalTimeLocal": "2026-04-22T17:46:00-07:00",
+ "arrivalTimeUtc": "2026-04-23T00:46:00Z",
+ "flightEquipmentId": "32Q",
+ "durationMinutes": 181,
+ "isCargoFlight": false,
+ "airlineStCode": "st_AAL",
+ "departureAirportIata": "DFW",
+ "arrivalAirportIata": "LAS",
+ "flightEquipmentIata": "32Q",
+ "seatsTotal": 196,
+ "seatsByClass": {
+ "first": 0,
+ "business": 20,
+ "premiumEconomy": 0,
+ "economy": 176
+ },
+ "isPriorityRequest": false
+ }
+]
diff --git a/api_docs/stafftraveler_captures/createLoadsRequests_AA2178_response.json b/api_docs/stafftraveler_captures/createLoadsRequests_AA2178_response.json
new file mode 100644
index 0000000..64aaeeb
--- /dev/null
+++ b/api_docs/stafftraveler_captures/createLoadsRequests_AA2178_response.json
@@ -0,0 +1 @@
+{"payload":{"numberOfRequests":0,"verifiedRequests":[{"flightId":"AA_2178_DFW_2026_04_22","isExisting":true,"isDuplicateForUser":true,"isRequestUpdateForUser":false,"hasDeparted":false,"isCancelled":false,"isPriorityRequest":false,"hasRecentLoads":false,"scheduledFlight":{"id":"a23d6f8379f5109eddeb5bbf78bdccc1","id_v2":"0d9d0702b203d224ace3e6eb94531dde","id_v3":"AA_2178_DFW_2026_04_22","airlineId":"AA","flightCode":"AA2178","flightNumber":2178,"departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T16:45:00-05:00","arrivalTimeLocal":"2026-04-22T17:46:00-07:00","departureTimeUtc":"2026-04-22T21:45:00Z","arrivalTimeUtc":"2026-04-23T00:46:00Z","flightEquipmentId":"32Q","durationMinutes":181,"isCargoFlight":false,"isPriorityRequest":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"32Q","seatsTotal":196,"seatsByClass":{"first":0,"business":20,"premiumEconomy":0,"economy":176}}}],"hasSufficientCredits":true,"numberOfRequestsPaidFor":0,"numberOfRequestsPaidForPriority":0}}
\ No newline at end of file
diff --git a/api_docs/stafftraveler_captures/createLoadsRequests_AA2178_response_headers.txt b/api_docs/stafftraveler_captures/createLoadsRequests_AA2178_response_headers.txt
new file mode 100644
index 0000000..36407d9
--- /dev/null
+++ b/api_docs/stafftraveler_captures/createLoadsRequests_AA2178_response_headers.txt
@@ -0,0 +1,12 @@
+HTTP/2 200
+access-control-allow-credentials: true
+cache-control: no-store
+content-type: application/json
+vary: Origin
+x-cloud-trace-context: 7f1fda60d8d56f8106053d5e7df58556
+date: Wed, 22 Apr 2026 18:40:54 GMT
+server: Google Frontend
+content-length: 1070
+via: 1.1 google
+alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
+
diff --git a/api_docs/stafftraveler_captures/derivedLoadsReports_AA2178_request.json b/api_docs/stafftraveler_captures/derivedLoadsReports_AA2178_request.json
new file mode 100644
index 0000000..6d45940
--- /dev/null
+++ b/api_docs/stafftraveler_captures/derivedLoadsReports_AA2178_request.json
@@ -0,0 +1,16 @@
+{
+ "structuredQuery": {
+ "from": [{"collectionId": "derivedLoadsReports"}],
+ "where": {
+ "fieldFilter": {
+ "field": {"fieldPath": "flightId"},
+ "op": "EQUAL",
+ "value": {"stringValue": "AA_2178_DFW_2026_04_22"}
+ }
+ },
+ "orderBy": [
+ {"field": {"fieldPath": "createdAt"}, "direction": "DESCENDING"},
+ {"field": {"fieldPath": "__name__"}, "direction": "DESCENDING"}
+ ]
+ }
+}
diff --git a/api_docs/stafftraveler_captures/derivedLoadsReports_AA2178_response.json b/api_docs/stafftraveler_captures/derivedLoadsReports_AA2178_response.json
new file mode 100644
index 0000000..29e565b
--- /dev/null
+++ b/api_docs/stafftraveler_captures/derivedLoadsReports_AA2178_response.json
@@ -0,0 +1,92 @@
+[{
+ "document": {
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/derivedLoadsReports/xskQc2a2oAVAwZk3Rfhg",
+ "fields": {
+ "flightId": {
+ "stringValue": "AA_2178_DFW_2026_04_22"
+ },
+ "openSeats": {
+ "mapValue": {
+ "fields": {
+ "first": {
+ "mapValue": {
+ "fields": {
+ "count": {
+ "integerValue": "3"
+ }
+ }
+ }
+ },
+ "eco": {
+ "mapValue": {
+ "fields": {
+ "count": {
+ "integerValue": "9"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "staffListing": {
+ "mapValue": {
+ "fields": {
+ "type": {
+ "stringValue": "available"
+ },
+ "count": {
+ "integerValue": "6"
+ },
+ "countByClass": {
+ "mapValue": {}
+ }
+ }
+ }
+ },
+ "responseTimeSeconds": {
+ "integerValue": "196"
+ },
+ "numberOfCreditsRewarded": {
+ "integerValue": "1"
+ },
+ "isFlagged": {
+ "booleanValue": false
+ },
+ "seatsAvailabilityScore": {
+ "doubleValue": 0.79
+ },
+ "hasClosedRequest": {
+ "booleanValue": true
+ },
+ "isJackpotHit": {
+ "booleanValue": false
+ },
+ "isPriorityRequest": {
+ "booleanValue": false
+ },
+ "expireAt": {
+ "timestampValue": "2026-07-21T21:45:00Z"
+ },
+ "createdAt": {
+ "timestampValue": "2026-04-22T18:42:51.313Z"
+ },
+ "creatorName": {
+ "stringValue": "M"
+ },
+ "creatorImageUrl": {
+ "stringValue": "https://images.stafftraveler.com/avatars/happysuitcase.png"
+ },
+ "creatorImagePath": {
+ "stringValue": "avatars/happysuitcase.png"
+ },
+ "isFlaggedConfirmed": {
+ "booleanValue": false
+ }
+ },
+ "createTime": "2026-04-22T18:42:51.422202Z",
+ "updateTime": "2026-04-22T18:42:51.530333Z"
+ },
+ "readTime": "2026-04-22T19:11:47.260445Z"
+}
+]
\ No newline at end of file
diff --git a/api_docs/stafftraveler_captures/firestore_listen_targets_and_queries.txt b/api_docs/stafftraveler_captures/firestore_listen_targets_and_queries.txt
new file mode 100644
index 0000000..a920976
--- /dev/null
+++ b/api_docs/stafftraveler_captures/firestore_listen_targets_and_queries.txt
@@ -0,0 +1,90 @@
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&RID=80724&CVER=22&X-HTTP-Session-Id=gsessionid&zx=rtxwctgfqxp6&t=1 => [200]
+ Request body: headers=X-Goog-Api-Client%3Agl-js%2F%20fire%2F12.12.0%0D%0AContent-Type%3Atext%2Fplain%0D%0AX-Firebase-GMPID%3A1%3A628258099825%3Aweb%3A35b20eaab4d441894041d0%0D%0Ax-goog-api-key%3AAIzaSyD82Hiqx-jAbHF8faMGSveqLw8CdX8a-Uc%0D%0A&count=1&ofs=0&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2F__system%2Fmaintenance%22%5D%7D%2C%22targetId%22%3A2%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&RID=9158&CVER=22&X-HTTP-Session-Id=gsessionid&zx=f83g0aueufis&t=1 => [200]
+ Request body: headers=X-Goog-Api-Client%3Agl-js%2F%20fire%2F12.12.0%0D%0AContent-Type%3Atext%2Fplain%0D%0AX-Firebase-GMPID%3A1%3A628258099825%3Aweb%3A35b20eaab4d441894041d0%0D%0AAuthorization%3ABearer%20eyJhbGciOiJSUzI1NiIsImtpZCI6IjNiMDk1NzQ3YmY4MzMxZWE0YWQ1M2YzNzBjNjMyNjAxNzliMGQyM2EiLCJ0eXAiOiJKV1QifQ.eyJpc19yZWdpc3RlcmVkIjp0cnVlLCJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vc3RhZmZ0cmF2ZWxlci1wcm9kIiwiYXVkIjoic3RhZmZ0cmF2ZWxlci1wcm9kIiwiYXV0aF90aW1lIjoxNzc2ODg0OTM2LCJ1c2VyX2lkIjoiM05OUGVzUU1pTVJOWW5QbXVRemg2dzJZS3loMSIsInN1YiI6IjNOTlBlc1FNaU1STlluUG11UXpoNncyWUt5aDEiLCJpYXQiOjE3NzY4ODQ5MzYsImV4cCI6MTc3Njg4ODUzNiwiZW1haWwiOiJzdGFmZnRyYXZlbGVyQHRyZXltYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiZmlyZWJhc2UiOnsiaWRlbnRpdGllcyI6eyJlbWFpbCI6WyJzdGFmZnRyYXZlbGVyQHRyZXltYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6InBhc3N3b3JkIn19.Oi2cpketCmgJ7ND8R8SY4FNdeySoWOF2Bgzwptb1qopDDa4eEvJrXutcvrIP408MhOedXOVdSSB4J4gLZ3w3nZA939N-3DHj-rREpraF2XtuabOnragy2e9FoSSWJsB1chyvCidBh1b-b53AzdnFV3kspwtr5C7xoxSZOf32p5mwIENdFtBZg30wjRd3ZdNIbSiVbUouUcQIRiIdPdwtYG8wfAYztonWwW4K8hK4hN5LK4v6PitFOpC70Baoh-4LpfCEPGrk5zxrbPMOc95ydgWCL8Av6eFRiHJgMd4juUvzOwOOJ_77z7QCSRLwpu5XKc9Em2D5l0_UiEyn79SQfg%0D%0Ax-goog-api-key%3AAIzaSyD82Hiqx-jAbHF8faMGSveqLw8CdX8a-Uc%0D%0A&count=1&ofs=0&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2F__system%2Fmaintenance%22%5D%7D%2C%22targetId%22%3A2%2C%22resumeToken%22%3A%22CgkIh8rNkpSClAM%3D%22%2C%22expectedCount%22%3A1%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9159&AID=4&zx=d2hrtufyduql&t=1 => [200]
+ Request body: count=1&ofs=1&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2Fusers%2F3NNPesQMiMRNYnPmuQzh6w2YKyh1%22%5D%7D%2C%22targetId%22%3A4%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9160&AID=8&zx=tobs2rmzgvt7&t=1 => [200]
+ Request body: count=1&ofs=2&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A4%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9161&AID=8&zx=gv4pfepp0iut&t=1 => [200]
+ Request body: count=1&ofs=3&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2Fusers%2F3NNPesQMiMRNYnPmuQzh6w2YKyh1%22%5D%7D%2C%22targetId%22%3A4%2C%22resumeToken%22%3A%22CgkIoKrGm5SClAM%3D%22%2C%22expectedCount%22%3A1%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9162&AID=8&zx=d0m0hj89m00m&t=1 => [200]
+ Request body: count=1&ofs=4&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FuserHints%2F3NNPesQMiMRNYnPmuQzh6w2YKyh1%22%5D%7D%2C%22targetId%22%3A6%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9163&AID=8&zx=ir7thnhgqtrz&t=1 => [200]
+ Request body: count=1&ofs=5&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FuserRequestCounters%2F3NNPesQMiMRNYnPmuQzh6w2YKyh1%22%5D%7D%2C%22targetId%22%3A8%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9164&AID=8&zx=w1dq4sb4jwq5&t=1 => [200]
+ Request body: count=1&ofs=6&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FuserFlightSearchHistory%2F3NNPesQMiMRNYnPmuQzh6w2YKyh1%22%5D%7D%2C%22targetId%22%3A10%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9165&AID=8&zx=ecl2ritbm1hb&t=1 => [200]
+ Request body: count=1&ofs=7&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FuserMetrics%2F3NNPesQMiMRNYnPmuQzh6w2YKyh1%22%5D%7D%2C%22targetId%22%3A12%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9166&AID=8&zx=wvohx872im0n&t=1 => [200]
+ Request body: count=1&ofs=8&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22query%22%3A%7B%22structuredQuery%22%3A%7B%22from%22%3A%5B%7B%22collectionId%22%3A%22autoRequestRecords%22%7D%5D%2C%22where%22%3A%7B%22compositeFilter%22%3A%7B%22op%22%3A%22AND%22%2C%22filters%22%3A%5B%7B%22fieldFilter%22%3A%7B%22field%22%3A%7B%22fieldPath%22%3A%22subscribedUserIds%22%7D%2C%22op%22%3A%22ARRAY_CONTAINS%22%2C%22value%22%3A%7B%22stringValue%22%3A%223NNPesQMiMRNYnPmuQzh6w2YKyh1%22%7D%7D%7D%2C%7B%22fieldFilter%22%3A%7B%22field%22%3A%7B%22fieldPath%22%3A%22isActive%22%7D%2C%22op%22%3A%22EQUAL%22%2C%22value%22%3A%7B%22booleanValue%22%3Atrue%7D%7D%7D%5D%7D%7D%2C%22orderBy%22%3A%5B%7B%22field%22%3A%7B%22fieldPath%22%3A%22__name__%22%7D%2C%22direction%22%3A%22ASCENDING%22%7D%5D%7D%2C%22parent%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%22%7D%2C%22targetId%22%3A14%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9167&AID=8&zx=vnoas3e35db&t=1 => [200]
+ Request body: count=1&ofs=9&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22query%22%3A%7B%22structuredQuery%22%3A%7B%22from%22%3A%5B%7B%22collectionId%22%3A%22pinnedFlights%22%7D%5D%2C%22orderBy%22%3A%5B%7B%22field%22%3A%7B%22fieldPath%22%3A%22__name__%22%7D%2C%22direction%22%3A%22ASCENDING%22%7D%5D%7D%2C%22parent%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2Fusers%2F3NNPesQMiMRNYnPmuQzh6w2YKyh1%22%7D%2C%22targetId%22%3A16%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9168&AID=8&zx=laziejjz5fkl&t=1 => [200]
+ Request body: count=1&ofs=10&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairportsByIata%2FDAL%22%5D%7D%2C%22targetId%22%3A18%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9169&AID=9&zx=nicmm3gy44sg&t=1 => [200]
+ Request body: count=1&ofs=11&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairportsByIata%2FDFW%22%5D%7D%2C%22targetId%22%3A20%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9170&AID=9&zx=xxcf384tpe8r&t=1 => [200]
+ Request body: count=1&ofs=12&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairportsByIata%2FLAS%22%5D%7D%2C%22targetId%22%3A22%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9171&AID=45&zx=zaws1snjd3dz&t=1 => [200]
+ Request body: count=1&ofs=13&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A18%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9172&AID=45&zx=foe8j91xoirj&t=1 => [200]
+ Request body: count=1&ofs=14&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A20%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9173&AID=45&zx=ytkmsor9yf6y&t=1 => [200]
+ Request body: count=1&ofs=15&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A22%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9174&AID=45&zx=z4vurp4vvm9d&t=1 => [200]
+ Request body: count=1&ofs=16&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FuserPriorityRequestCounters%2F3NNPesQMiMRNYnPmuQzh6w2YKyh1%22%5D%7D%2C%22targetId%22%3A24%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9175&AID=45&zx=m5cg66e9m500&t=1 => [200]
+ Request body: count=1&ofs=17&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FuserCredits%2F3NNPesQMiMRNYnPmuQzh6w2YKyh1%22%5D%7D%2C%22targetId%22%3A26%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9176&AID=45&zx=tdpwb8n7t6n5&t=1 => [200]
+ Request body: count=1&ofs=18&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22query%22%3A%7B%22structuredQuery%22%3A%7B%22from%22%3A%5B%7B%22collectionId%22%3A%22trackedFlights%22%7D%5D%2C%22where%22%3A%7B%22compositeFilter%22%3A%7B%22op%22%3A%22AND%22%2C%22filters%22%3A%5B%7B%22fieldFilter%22%3A%7B%22field%22%3A%7B%22fieldPath%22%3A%22status%22%7D%2C%22op%22%3A%22EQUAL%22%2C%22value%22%3A%7B%22stringValue%22%3A%22open%22%7D%7D%7D%2C%7B%22fieldFilter%22%3A%7B%22field%22%3A%7B%22fieldPath%22%3A%22hasDeparted%22%7D%2C%22op%22%3A%22EQUAL%22%2C%22value%22%3A%7B%22booleanValue%22%3Afalse%7D%7D%7D%2C%7B%22fieldFilter%22%3A%7B%22field%22%3A%7B%22fieldPath%22%3A%22scheduledFlight.airlineStCode%22%7D%2C%22op%22%3A%22EQUAL%22%2C%22value%22%3A%7B%22stringValue%22%3A%22st_SWA%22%7D%7D%7D%5D%7D%7D%2C%22orderBy%22%3A%5B%7B%22field%22%3A%7B%22fieldPath%22%3A%22priority%22%7D%2C%22direction%22%3A%22DESCENDING%22%7D%2C%7B%22field%22%3A%7B%22fieldPath%22%3A%22scheduledFlight.departureTimeUtc%22%7D%2C%22direction%22%3A%22ASCENDING%22%7D%2C%7B%22field%22%3A%7B%22fieldPath%22%3A%22__name__%22%7D%2C%22direction%22%3A%22ASCENDING%22%7D%5D%2C%22limit%22%3A25%7D%2C%22parent%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%22%7D%2C%22targetId%22%3A28%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9177&AID=45&zx=vjcqutd14qa4&t=1 => [200]
+ Request body: count=1&ofs=19&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22query%22%3A%7B%22structuredQuery%22%3A%7B%22from%22%3A%5B%7B%22collectionId%22%3A%22trackedFlights%22%7D%5D%2C%22where%22%3A%7B%22compositeFilter%22%3A%7B%22op%22%3A%22AND%22%2C%22filters%22%3A%5B%7B%22fieldFilter%22%3A%7B%22field%22%3A%7B%22fieldPath%22%3A%22status%22%7D%2C%22op%22%3A%22EQUAL%22%2C%22value%22%3A%7B%22stringValue%22%3A%22open%22%7D%7D%7D%2C%7B%22fieldFilter%22%3A%7B%22field%22%3A%7B%22fieldPath%22%3A%22hasDeparted%22%7D%2C%22op%22%3A%22EQUAL%22%2C%22value%22%3A%7B%22booleanValue%22%3Afalse%7D%7D%7D%2C%7B%22fieldFilter%22%3A%7B%22field%22%3A%7B%22fieldPath%22%3A%22isPriorityRequest%22%7D%2C%22op%22%3A%22EQUAL%22%2C%22value%22%3A%7B%22booleanValue%22%3Atrue%7D%7D%7D%2C%7B%22fieldFilter%22%3A%7B%22field%22%3A%7B%22fieldPath%22%3A%22scheduledFlight.airlineStCode%22%7D%2C%22op%22%3A%22IN%22%2C%22value%22%3A%7B%22arrayValue%22%3A%7B%22values%22%3A%5B%7B%22stringValue%22%3A%22st_SWA%22%7D%5D%7D%7D%7D%7D%5D%7D%7D%2C%22orderBy%22%3A%5B%7B%22field%22%3A%7B%22fieldPath%22%3A%22__name__%22%7D%2C%22direction%22%3A%22ASCENDING%22%7D%5D%2C%22limit%22%3A25%7D%2C%22parent%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%22%7D%2C%22targetId%22%3A30%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9178&AID=45&zx=kyar8tjvbzg0&t=1 => [200]
+ Request body: count=1&ofs=20&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FuserAchievements%2F3NNPesQMiMRNYnPmuQzh6w2YKyh1%22%5D%7D%2C%22targetId%22%3A32%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9179&AID=45&zx=xf2m25yhj5d&t=1 => [200]
+ Request body: count=1&ofs=21&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairportsByIata%2FIAH%22%5D%7D%2C%22targetId%22%3A34%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9180&AID=45&zx=8fhokbce9hm7&t=1 => [200]
+ Request body: count=1&ofs=22&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairportsByIata%2FCLL%22%5D%7D%2C%22targetId%22%3A36%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9181&AID=45&zx=41ahzajvy06l&t=1 => [200]
+ Request body: count=6&ofs=23&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairportsByIata%2FSJU%22%5D%7D%2C%22targetId%22%3A38%7D%7D&req1___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairportsByIata%2FBOS%22%5D%7D%2C%22targetId%22%3A40%7D%7D&req2___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairportsByIata%2FCUN%22%5D%7D%2C%22targetId%22%3A42%7D%7D&req3___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairportsByIata%2FSYD%22%5D%7D%2C%22targetId%22%3A44%7D%7D&req4___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairportsByIata%2FALH%22%5D%7D%2C%22targetId%22%3A46%7D%7D&req5___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairportsByIata%2FNTL%22%5D%7D%2C%22targetId%22%3A48%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9182&AID=93&zx=7u11wjuyzy3c&t=1 => [200]
+ Request body: count=1&ofs=29&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22query%22%3A%7B%22structuredQuery%22%3A%7B%22from%22%3A%5B%7B%22collectionId%22%3A%22trackedFlights%22%7D%5D%2C%22where%22%3A%7B%22compositeFilter%22%3A%7B%22op%22%3A%22AND%22%2C%22filters%22%3A%5B%7B%22fieldFilter%22%3A%7B%22field%22%3A%7B%22fieldPath%22%3A%22subscribedUsers.%603NNPesQMiMRNYnPmuQzh6w2YKyh1%60%22%7D%2C%22op%22%3A%22EQUAL%22%2C%22value%22%3A%7B%22booleanValue%22%3Atrue%7D%7D%7D%2C%7B%22fieldFilter%22%3A%7B%22field%22%3A%7B%22fieldPath%22%3A%22isDeleted%22%7D%2C%22op%22%3A%22EQUAL%22%2C%22value%22%3A%7B%22booleanValue%22%3Afalse%7D%7D%7D%5D%7D%7D%2C%22orderBy%22%3A%5B%7B%22field%22%3A%7B%22fieldPath%22%3A%22__name__%22%7D%2C%22direction%22%3A%22ASCENDING%22%7D%5D%7D%2C%22parent%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%22%7D%2C%22targetId%22%3A50%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9183&AID=93&zx=16mwafi45zsw&t=1 => [200]
+ Request body: count=1&ofs=30&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22query%22%3A%7B%22structuredQuery%22%3A%7B%22from%22%3A%5B%7B%22collectionId%22%3A%22connectingFlights%22%7D%5D%2C%22orderBy%22%3A%5B%7B%22field%22%3A%7B%22fieldPath%22%3A%22__name__%22%7D%2C%22direction%22%3A%22ASCENDING%22%7D%5D%2C%22limit%22%3A500%7D%2C%22parent%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2Fusers%2F3NNPesQMiMRNYnPmuQzh6w2YKyh1%22%7D%2C%22targetId%22%3A52%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9184&AID=104&zx=lhcjya6q73dp&t=1 => [200]
+ Request body: count=1&ofs=31&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A34%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9185&AID=104&zx=6qh74wz9it19&t=1 => [200]
+ Request body: count=1&ofs=32&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A36%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9186&AID=104&zx=66tex5sth8cf&t=1 => [200]
+ Request body: count=1&ofs=33&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A38%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9187&AID=104&zx=8g9i20onobi5&t=1 => [200]
+ Request body: count=1&ofs=34&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A40%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9188&AID=104&zx=flmjlaq6s76r&t=1 => [200]
+ Request body: count=1&ofs=35&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A42%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9189&AID=104&zx=x8vcama6wdcw&t=1 => [200]
+ Request body: count=1&ofs=36&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A44%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9190&AID=104&zx=cq90glstafxi&t=1 => [200]
+ Request body: count=1&ofs=37&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A46%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9191&AID=104&zx=iidxjkascr6p&t=1 => [200]
+ Request body: count=1&ofs=38&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A48%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9192&AID=104&zx=ib3004hvhsyb&t=1 => [200]
+ Request body: count=1&ofs=39&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22query%22%3A%7B%22structuredQuery%22%3A%7B%22from%22%3A%5B%7B%22collectionId%22%3A%22derivedLoadsReports%22%7D%5D%2C%22where%22%3A%7B%22fieldFilter%22%3A%7B%22field%22%3A%7B%22fieldPath%22%3A%22flightId%22%7D%2C%22op%22%3A%22EQUAL%22%2C%22value%22%3A%7B%22stringValue%22%3A%22AA_2178_DFW_2026_04_22%22%7D%7D%7D%2C%22orderBy%22%3A%5B%7B%22field%22%3A%7B%22fieldPath%22%3A%22createdAt%22%7D%2C%22direction%22%3A%22DESCENDING%22%7D%2C%7B%22field%22%3A%7B%22fieldPath%22%3A%22__name__%22%7D%2C%22direction%22%3A%22DESCENDING%22%7D%5D%7D%2C%22parent%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%22%7D%2C%22targetId%22%3A54%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9193&AID=104&zx=vdy4t3cplgip&t=1 => [200]
+ Request body: count=1&ofs=40&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairlinesBySt%2Fst_AAL%22%5D%7D%2C%22targetId%22%3A56%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9194&AID=106&zx=vm7g1bolx517&t=1 => [200]
+ Request body: count=5&ofs=41&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FflightEquipment%2F32Q%22%5D%7D%2C%22targetId%22%3A58%7D%7D&req1___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FairlineNotesBySt%2Fst_AAL%22%5D%7D%2C%22targetId%22%3A60%7D%7D&req2___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2Fconversations%2FAA_2178_DFW_2026_04_22%22%5D%7D%2C%22targetId%22%3A62%7D%7D&req3___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22query%22%3A%7B%22structuredQuery%22%3A%7B%22from%22%3A%5B%7B%22collectionId%22%3A%22statusUpdates%22%7D%5D%2C%22orderBy%22%3A%5B%7B%22field%22%3A%7B%22fieldPath%22%3A%22createdAt%22%7D%2C%22direction%22%3A%22DESCENDING%22%7D%2C%7B%22field%22%3A%7B%22fieldPath%22%3A%22__name__%22%7D%2C%22direction%22%3A%22DESCENDING%22%7D%5D%7D%2C%22parent%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FtrackedFlights%2FAA_2178_DFW_2026_04_22%22%7D%2C%22targetId%22%3A64%7D%7D&req4___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FderivedLoadsReports%2FxskQc2a2oAVAwZk3Rfhg%22%5D%7D%2C%22targetId%22%3A66%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9195&AID=136&zx=4xj7drdge1b4&t=1 => [200]
+ Request body: count=1&ofs=46&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A56%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9196&AID=136&zx=u6l12lhidxh7&t=1 => [200]
+ Request body: count=1&ofs=47&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A58%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9197&AID=136&zx=v3wmv0ko207f&t=1 => [200]
+ Request body: count=1&ofs=48&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A60%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9198&AID=141&zx=2dyg9dv4hlx7&t=1 => [200]
+ Request body: count=1&ofs=49&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FtrackedFlights%2FWN_2101_ELP_2026_05_03%22%5D%7D%2C%22targetId%22%3A1%7D%2C%22labels%22%3A%7B%22goog-listen-tags%22%3A%22limbo-document%22%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9199&AID=145&zx=96e5i6boihdb&t=1 => [200]
+ Request body: count=1&ofs=50&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A1%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9200&AID=154&zx=mpc9gcjtbo7r&t=1 => [200]
+ Request body: count=1&ofs=51&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22addTarget%22%3A%7B%22documents%22%3A%7B%22documents%22%3A%5B%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%2Fdocuments%2FtrackedFlights%2FWN_3187_ELP_2026_05_03%22%5D%7D%2C%22targetId%22%3A3%7D%2C%22labels%22%3A%7B%22goog-listen-tags%22%3A%22limbo-document%22%7D%7D
+[POST] https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?VER=8&database=projects%2Fstafftraveler-prod%2Fdatabases%2F(default)&gsessionid=HFF5EogcWeK0-zCr8BqQiP1LG6gZwKIpFMpTR4_G01uQgOSO1g6VYA&SID=a-XMXYp-Vwc6W3fSsZRnKA&RID=9201&AID=158&zx=yqxzfkm1k2r3&t=1 => [200]
+ Request body: count=1&ofs=52&req0___data__=%7B%22database%22%3A%22projects%2Fstafftraveler-prod%2Fdatabases%2F(default)%22%2C%22removeTarget%22%3A3%7D
\ No newline at end of file
diff --git a/api_docs/stafftraveler_captures/firestore_schema.md b/api_docs/stafftraveler_captures/firestore_schema.md
new file mode 100644
index 0000000..dc44ca5
--- /dev/null
+++ b/api_docs/stafftraveler_captures/firestore_schema.md
@@ -0,0 +1,192 @@
+# StaffTraveler Firestore schema (live-extracted)
+
+Captured 2026-04-22 via Playwright MCP on `https://app.stafftraveler.com` while logged in as `stafftraveler@treymail.com` (uid `3NNPesQMiMRNYnPmuQzh6w2YKyh1`, airline `st_SWA`). All queries/docs below are copied from the web client's `firestore.googleapis.com/.../Listen/channel` `addTarget` bodies — not guessed.
+
+## Why iOS mitm didn't show this
+
+The iOS Firebase SDK and Android SDK both use the gRPC transport to `firestore.googleapis.com` (HTTP/2 with protobuf frames). Many mitm setups decode HTTPS but not gRPC framing, so the requests appear as opaque binary. **The web client uses the `VER=8 TYPE=xmlhttp` long-poll fallback — plain HTTP POST with URL-encoded JSON bodies** — which is fully readable. That's why we only saw this via the browser.
+
+## Required headers for REST access
+
+Direct REST (`/v1/projects/.../documents:runQuery` or `/documents/...`) works with:
+
+```
+Authorization: Bearer
+X-Firebase-GMPID: 1:628258099825:web:35b20eaab4d441894041d0
+X-Goog-Api-Client: gl-js/ fire/12.12.0
+?key=AIzaSyD82Hiqx-jAbHF8faMGSveqLw8CdX8a-Uc (URL query param)
+```
+
+Note: **web API key** (`AIzaSyD82...`), not the Android key from strings.xml. Omitting `?key=...` or the GMPID header causes `403 PERMISSION_DENIED` — the rules consult the key for the project consumer context before evaluating `allow read`.
+
+## Single-document subscriptions
+
+These are fetched as `addTarget.documents.documents`:
+
+| Path | What |
+|------|------|
+| `__system/maintenance` | Server maintenance flags |
+| `__system/version` | Required client versions (public) |
+| `users/{uid}` | Profile: airlineStCode, airlineId, firstName, gender, … |
+| `userHints/{uid}` | UI hints the user has dismissed |
+| `userRequestCounters/{uid}` | Regular-request quota state |
+| `userPriorityRequestCounters/{uid}` | Priority-request quota state |
+| `userCredits/{uid}` | Credit balance |
+| `userAchievements/{uid}` | Unlocked achievements |
+| `userMetrics/{uid}` | Usage telemetry |
+| `userFlightSearchHistory/{uid}` | Recent searches |
+| `airportsByIata/{IATA}` | Public airport lookup (DFW, LAS, …) |
+| `airlinesBySt/{stCode}` | Airline lookup by StaffTraveler code (`st_AAL`, `st_SWA`, …) |
+| `airlineNotesBySt/{stCode}` | Non-rev agreement notes per airline |
+| `flightEquipment/{iataOrId}` | Aircraft type info (`32Q`, `321`, `738`, …) |
+| `conversations/{flightId_v3}` | Flight-level comment thread |
+| `derivedLoadsReports/{reportId}` | **Individual load report doc — see below** |
+| `trackedFlights/{flightId_v3}` | User's tracked flight state |
+
+## Collection queries
+
+### `derivedLoadsReports` — THE LOADS DATA
+
+```json
+{
+ "from": [{"collectionId": "derivedLoadsReports"}],
+ "where": {
+ "fieldFilter": {
+ "field": {"fieldPath": "flightId"},
+ "op": "EQUAL",
+ "value": {"stringValue": "AA_2178_DFW_2026_04_22"}
+ }
+ },
+ "orderBy": [
+ {"field": {"fieldPath": "createdAt"}, "direction": "DESCENDING"},
+ {"field": {"fieldPath": "__name__"}, "direction": "DESCENDING"}
+ ]
+}
+```
+
+**This is the query you want for the Flights integration.** Pass the flight `id_v3` (e.g. `AA_2178_DFW_2026_04_22` — format is `{airlineId}_{flightNumber}_{departureIata}_{YYYY}_{MM}_{DD}`).
+
+**Access control (verified 2026-04-22):** this query returns `403 PERMISSION_DENIED` unless the user has an active `trackedFlights/{flightId_v3}` doc, which is created only by `POST /v1/commands/user/createLoadsRequests`. That call spends a credit on flights the user has never requested; replay on an already-requested flight is idempotent (no charge). So:
+
+- Freely re-read `derivedLoadsReports` for any flight you've already requested — no cost, no rate limit observed.
+- You cannot peek at loads without first requesting — the "instant results" in the app for flights with recent community reports rely on the user having previously paid the credit.
+- On the 15 DFW-LAS flights tested, only `AA_2178_DFW_2026_04_22` (the one with an open request) returned 200; the other 14 all returned 403. Same for 29 LAX-JFK flights the user hadn't requested — all 403.
+
+Example doc (captured AA2178 2026-04-22 12:42 PM CT):
+```json
+{
+ "flightId": "AA_2178_DFW_2026_04_22",
+ "openSeats": {
+ "first": {"count": 3},
+ "eco": {"count": 9}
+ },
+ "staffListing": {
+ "type": "available",
+ "count": 6,
+ "countByClass": {}
+ },
+ "responseTimeSeconds": 196,
+ "numberOfCreditsRewarded": 1,
+ "isFlagged": false,
+ "isFlaggedConfirmed": false,
+ "seatsAvailabilityScore": 0.79,
+ "hasClosedRequest": true,
+ "isJackpotHit": false,
+ "isPriorityRequest": false,
+ "createdAt": "2026-04-22T18:42:51.313Z",
+ "expireAt": "2026-07-21T21:45:00Z",
+ "creatorName": "M",
+ "creatorImageUrl": "https://images.stafftraveler.com/avatars/happysuitcase.png",
+ "creatorImagePath": "avatars/happysuitcase.png"
+}
+```
+
+Field notes:
+- `openSeats..count` — **exactly what the app shows as "OPEN SEATS"**. Classes seen: `first`, `business`, `premiumEconomy`, `eco`. Absent class = 0 or unknown.
+- `staffListing.count` — **the "LISTED NON-REV PASSENGERS" number**.
+- `staffListing.type` — `"available"` means loads were given; other types likely include `"upgrade"` variants (see `checkForLoads` heuristic in `bundle.hasm`).
+- `seatsAvailabilityScore` — 0-1, app uses this to color-code the flight.
+- `creatorName` is the first letter only (privacy).
+- `expireAt` — ~90 days out, so load reports stay queryable.
+
+### `trackedFlights` — your open requests
+
+```json
+{
+ "from": [{"collectionId": "trackedFlights"}],
+ "where": {
+ "compositeFilter": {"op": "AND", "filters": [
+ {"fieldFilter": {"field": {"fieldPath": "status"}, "op": "EQUAL", "value": {"stringValue": "open"}}},
+ {"fieldFilter": {"field": {"fieldPath": "hasDeparted"}, "op": "EQUAL", "value": {"booleanValue": false}}},
+ {"fieldFilter": {"field": {"fieldPath": "scheduledFlight.airlineStCode"}, "op": "EQUAL", "value": {"stringValue": "st_SWA"}}}
+ ]}
+ },
+ "orderBy": [
+ {"field": {"fieldPath": "priority"}, "direction": "DESCENDING"},
+ {"field": {"fieldPath": "scheduledFlight.departureTimeUtc"}, "direction": "ASCENDING"},
+ {"field": {"fieldPath": "__name__"}, "direction": "ASCENDING"}
+ ],
+ "limit": 25
+}
+```
+
+Returns the logged-in user's open requests filtered by their airline. Doc ID = flight id_v3. `scheduledFlight` is the embedded full flight object (matches `searchFlightsByRoute` item shape).
+
+### `trackedFlights/{flightId}/statusUpdates`
+
+```json
+{
+ "from": [{"collectionId": "statusUpdates"}],
+ "orderBy": [
+ {"field": {"fieldPath": "createdAt"}, "direction": "DESCENDING"},
+ {"field": {"fieldPath": "__name__"}, "direction": "DESCENDING"}
+ ],
+ "parent": "projects/stafftraveler-prod/databases/(default)/documents/trackedFlights/AA_2178_DFW_2026_04_22"
+}
+```
+
+Delay / gate / equipment changes for that flight over time.
+
+### `users/{uid}/pinnedFlights`, `users/{uid}/connectingFlights`
+
+Subcollections under the user doc. Empty for this account.
+
+### `autoRequestRecords` where `subscribedUserIds ARRAY_CONTAINS {uid}` AND `isActive`
+
+Auto-request subscriptions — flights the user has set up to auto-request loads for on a recurring schedule.
+
+### `trackedFlights` where `subscribedUsers.{uid} == true` AND `isDeleted == false`
+
+Other users' requests that THIS user has subscribed to (so they also see the loads when answered).
+
+## Idempotent REST access pattern (integration recipe)
+
+```bash
+# 1. sign in (you already do this)
+TOKEN=$(curl -sX POST "https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=$WEB_KEY" \
+ -d "{\"email\":\"$EMAIL\",\"password\":\"$PW\",\"returnSecureToken\":true}" | jq -r .idToken)
+
+# 2. read loads for any flight
+BASE='https://firestore.googleapis.com/v1/projects/stafftraveler-prod/databases/(default)/documents'
+KEY='AIzaSyD82Hiqx-jAbHF8faMGSveqLw8CdX8a-Uc'
+curl -sX POST "$BASE:runQuery?key=$KEY" \
+ -H "Authorization: Bearer $TOKEN" \
+ -H "X-Firebase-GMPID: 1:628258099825:web:35b20eaab4d441894041d0" \
+ -H "Content-Type: application/json" \
+ -d '{"structuredQuery":{"from":[{"collectionId":"derivedLoadsReports"}],"where":{"fieldFilter":{"field":{"fieldPath":"flightId"},"op":"EQUAL","value":{"stringValue":"AA_2178_DFW_2026_04_22"}}},"orderBy":[{"field":{"fieldPath":"createdAt"},"direction":"DESCENDING"}]}}'
+```
+
+Returns empty array if no report exists yet (meaning you'd need `createLoadsRequests` first to ask the crew). If a report exists, you get it without spending a credit.
+
+## Integration plan for the iOS Flights app (final)
+
+1. Secondary `FirebaseApp` configured against `stafftraveler-prod` with the web API key + GMPID above.
+2. `Auth.auth(app: stApp).signIn(withEmail:password:)` with user's StaffTraveler credentials, refresh token stored in Keychain.
+3. Use `Firestore.firestore(app: stApp)` and wire:
+ - `collection("derivedLoadsReports").whereField("flightId", isEqualTo: flightIdV3).addSnapshotListener { ... }` — live load updates per flight
+ - `collection("trackedFlights").whereField("status", isEqualTo: "open")....whereField("scheduledFlight.airlineStCode", isEqualTo: userStCode).limit(to: 25).addSnapshotListener` — user's open requests list
+ - `document("airlinesBySt/\(stCode)")` — airline metadata
+ - `document("airportsByIata/\(iata)")` — airport metadata
+4. For writes (request loads, submit report, etc.), keep using the HTTP commands API at `https://api.stafftraveler.com/v1/commands/user/`.
+
+No App Check enforcement observed from the web client — plain Firebase ID token + API key is sufficient.
diff --git a/api_docs/stafftraveler_captures/nonRevAgreementsBySt.json b/api_docs/stafftraveler_captures/nonRevAgreementsBySt.json
new file mode 100644
index 0000000..d25dd26
--- /dev/null
+++ b/api_docs/stafftraveler_captures/nonRevAgreementsBySt.json
@@ -0,0 +1,34918 @@
+{
+ "name": "projects/stafftraveler-prod/databases/(default)/documents/__derived/nonRevAgreementsBySt",
+ "fields": {
+ "agreements": {
+ "mapValue": {
+ "fields": {
+ "st_ITY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_ABX": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_P3": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_ADR"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AZV"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BHS"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GOE"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GWI"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HOP"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NLA"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PVL"
+ },
+ {
+ "stringValue": "st_QCL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SPM"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWG"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TDR"
+ },
+ {
+ "stringValue": "st_THU"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_CTN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_NWK": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_CPA"
+ }
+ ]
+ }
+ },
+ "st_CPA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANG"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CSN"
+ },
+ {
+ "stringValue": "st_CSZ"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_EJU"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JTA"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MAY"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NSS"
+ },
+ {
+ "stringValue": "st_NWK"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QLK"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RSY"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWG"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAM"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UIA"
+ },
+ {
+ "stringValue": "st_UKP"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRD"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_KAP": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_PRO": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_TSC"
+ }
+ ]
+ }
+ },
+ "st_GUN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DAL"
+ }
+ ]
+ }
+ },
+ "st_KLM": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AXY"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_CXA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IBS"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NMB"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROT"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAM"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_SAS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_APF"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNO"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DNU"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_EST"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JTD"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MBU"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_SZS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TF_2025"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_EST": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_SAS"
+ }
+ ]
+ }
+ },
+ "st_JAT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_IGO": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_XBO": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_4T": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_PGT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_LOT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CLX"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DNU"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GBG"
+ },
+ {
+ "stringValue": "st_GJT"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_XBO"
+ }
+ ]
+ }
+ },
+ "st_VTI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_VOZ"
+ }
+ ]
+ }
+ },
+ "st_VRD": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_TVS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_CAY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ }
+ ]
+ }
+ },
+ "st_VXP": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_WIF": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WIF"
+ }
+ ]
+ }
+ },
+ "st_CNO": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_THA"
+ }
+ ]
+ }
+ },
+ "st_TYA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_POE"
+ }
+ ]
+ }
+ },
+ "st_KII": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_EDW": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_WIF"
+ }
+ ]
+ }
+ },
+ "st_VJH": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_SCR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ }
+ ]
+ }
+ },
+ "st_AER": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ASA"
+ }
+ ]
+ }
+ },
+ "st_PVD": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ }
+ ]
+ }
+ },
+ "st_LGL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CLX"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_GTI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_FWI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_MSR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_ABY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_UAE"
+ }
+ ]
+ }
+ },
+ "st_XS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_BAW"
+ }
+ ]
+ }
+ },
+ "st_UPS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_TDR"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VXP"
+ }
+ ]
+ }
+ },
+ "st_TTW": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UIA"
+ }
+ ]
+ }
+ },
+ "st_TOS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_CSN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_CPA"
+ }
+ ]
+ }
+ },
+ "st_ROU": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CSZ"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ECA"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FC"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GLA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GWI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HOP"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ISS"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NLA"
+ },
+ {
+ "stringValue": "st_NMB"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROU"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TAR"
+ },
+ {
+ "stringValue": "st_TGG"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_WJA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_0N"
+ },
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CJT"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBA"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NLA"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PBN"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PVL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_BKP": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AMU"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_LHX": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_AEE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_EZY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ }
+ ]
+ }
+ },
+ "st_FDB": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAF"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABV"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BOS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_CTU"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DSM"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FAH"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_GLG"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IBS"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LNE"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_MAC"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NDA"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OAL"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SBI"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SGQ"
+ },
+ {
+ "stringValue": "st_SKK"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TAY"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VGI"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_PVL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_GFA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_KFS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DAL"
+ }
+ ]
+ }
+ },
+ "st_FDY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAH"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACO"
+ },
+ {
+ "stringValue": "st_AJT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASQ"
+ },
+ {
+ "stringValue": "st_AWI"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BRG"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BTZ"
+ },
+ {
+ "stringValue": "st_CFS"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CYO"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_EAT"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FRG"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JNY"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KFS"
+ },
+ {
+ "stringValue": "st_KII"
+ },
+ {
+ "stringValue": "st_KYE"
+ },
+ {
+ "stringValue": "st_LYC"
+ },
+ {
+ "stringValue": "st_MGE"
+ },
+ {
+ "stringValue": "st_MNU"
+ },
+ {
+ "stringValue": "st_MTN"
+ },
+ {
+ "stringValue": "st_MUI"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NAC"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OAE"
+ },
+ {
+ "stringValue": "st_PAC"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RDS"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RYA"
+ },
+ {
+ "stringValue": "st_SBS"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SPA"
+ },
+ {
+ "stringValue": "st_STT"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWQ"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VID"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VTS"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WAF"
+ },
+ {
+ "stringValue": "st_WAL"
+ },
+ {
+ "stringValue": "st_WAV"
+ },
+ {
+ "stringValue": "st_WWI"
+ }
+ ]
+ }
+ },
+ "st_HKE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AMU"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_KAL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AJX"
+ },
+ {
+ "stringValue": "st_AMU"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CSH"
+ },
+ {
+ "stringValue": "st_CXA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JNA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_OAW": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAE"
+ }
+ ]
+ }
+ },
+ "st_J5": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DAL"
+ }
+ ]
+ }
+ },
+ "st_UIA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_TAP": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MBU"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAM"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_AFR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAF"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_ADY"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANK"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARE"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCV"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCA"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFE"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CSH"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_CXA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DSM"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_EST"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GLG"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IBS"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_IGT"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ISS"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JTA"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KES"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LNE"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LPE"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_MAC"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MGY"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NDA"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OAL"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_PRO"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QJ"
+ },
+ {
+ "stringValue": "st_QNZ"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROU"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SBI"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKK"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SKX"
+ },
+ {
+ "stringValue": "st_SUS"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_SZS"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TAR"
+ },
+ {
+ "stringValue": "st_TCV"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TJT"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_XBO"
+ }
+ ]
+ }
+ },
+ "st_SAT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_TAP"
+ }
+ ]
+ }
+ },
+ "st_MAU": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_SVA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RXI"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_TF_2025": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SAS"
+ }
+ ]
+ }
+ },
+ "st_JUS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ASA"
+ }
+ ]
+ }
+ },
+ "st_PTN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ }
+ ]
+ }
+ },
+ "st_AEA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ }
+ ]
+ }
+ },
+ "st_EVA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AMU"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_APJ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JTA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TGW"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WEN"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_FLI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_SAS"
+ }
+ ]
+ }
+ },
+ "st_FJI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_ANZ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANG"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_APP"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CSZ"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FC"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GBB"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NTR"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PTN"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SLK"
+ },
+ {
+ "stringValue": "st_SOL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UIA"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_EWG": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAF"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AWU"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCV"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BOS"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAI"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CS"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DSM"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_ECA"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GLG"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ISS"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_IYE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LDA"
+ },
+ {
+ "stringValue": "st_LDM"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LNE"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LPA"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MBU"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NMB"
+ },
+ {
+ "stringValue": "st_OAL"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKX"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TCV"
+ },
+ {
+ "stringValue": "st_TGW"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_GIA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_VOZ"
+ }
+ ]
+ }
+ },
+ "st_BEL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCS"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CLX"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_RZO": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_JSX": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_SJX": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AMU"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AXE"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKY"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_JBU": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAF"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_AZV"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BHS"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BOS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CLX"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DNU"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_FYW"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HHN"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HOP"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MHO"
+ },
+ {
+ "stringValue": "st_MSR"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NHG"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NLA"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PAM"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PTB"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_RIO"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SBI"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SID"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SLX"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIB"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TSD"
+ },
+ {
+ "stringValue": "st_TTL"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UBT"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRD"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSN"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_ABL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_JNA"
+ }
+ ]
+ }
+ },
+ "st_QLK": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_CXA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_QTR"
+ }
+ ]
+ }
+ },
+ "st_VLG": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LVL"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UBT"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIF"
+ }
+ ]
+ }
+ },
+ "st_GLO": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAF"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMU"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BOS"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAI"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GWI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ISS"
+ },
+ {
+ "stringValue": "st_IYE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAC"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MHV"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PTB"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAM"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TCV"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_DNU": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_SAS"
+ }
+ ]
+ }
+ },
+ "st_MDA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_EDV": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ }
+ ]
+ }
+ },
+ "st_VOI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_NAN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AFR"
+ }
+ ]
+ }
+ },
+ "st_DLH": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMU"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCS"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CCA"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNO"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CSZ"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DHA"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DNU"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKC"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MSR"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NGN"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PTN"
+ },
+ {
+ "stringValue": "st_PVD"
+ },
+ {
+ "stringValue": "st_PWF"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QLK"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RYR"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCR"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKV"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SVS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_SZS"
+ },
+ {
+ "stringValue": "st_TAM"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TGW"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UIA"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VJT"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOI"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WZZ"
+ },
+ {
+ "stringValue": "st_XBO"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_TVJ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_TRA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCV"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BOS"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_ECA"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KLC"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OAL"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PTB"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SKV"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TCV"
+ },
+ {
+ "stringValue": "st_TGG"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_BCY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_UAE"
+ }
+ ]
+ }
+ },
+ "st_AKX": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_ELY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_SKU": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_CSZ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_KEN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ASA"
+ }
+ ]
+ }
+ },
+ "st_ATN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_BAW": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANE"
+ },
+ {
+ "stringValue": "st_ANG"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARE"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AUR"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CSH"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DSM"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LAP"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LHX"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LNE"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LPE"
+ },
+ {
+ "stringValue": "st_LXP"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MSR"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NMB"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NQN"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OAL"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QLK"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROT"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SNR"
+ },
+ {
+ "stringValue": "st_STK"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SZS"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TAM"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UBT"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WEN"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_XBO"
+ },
+ {
+ "stringValue": "st_XS"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_APZ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_LAN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANE"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AUT"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCV"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFE"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CLH"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DNA"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EWL"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FTA"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_FXI"
+ },
+ {
+ "stringValue": "st_GLG"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GWI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IBS"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PGA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PTB"
+ },
+ {
+ "stringValue": "st_PTN"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SUS"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXD"
+ },
+ {
+ "stringValue": "st_TAM"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TGG"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJT"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_WEN"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_JZA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAH"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABX"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_ACO"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AER"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AJI"
+ },
+ {
+ "stringValue": "st_AJT"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMF"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_ATN"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AWI"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BRG"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CFS"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CSB"
+ },
+ {
+ "stringValue": "st_CSZ"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EAL"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FC"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FRG"
+ },
+ {
+ "stringValue": "st_FTO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GUN"
+ },
+ {
+ "stringValue": "st_GWI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HOP"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IFL"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ISS"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_J5"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBA"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JUS"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KFA"
+ },
+ {
+ "stringValue": "st_KFS"
+ },
+ {
+ "stringValue": "st_KII"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KYE"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_LYC"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MGE"
+ },
+ {
+ "stringValue": "st_MNU"
+ },
+ {
+ "stringValue": "st_MTN"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NAC"
+ },
+ {
+ "stringValue": "st_NCR"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NLA"
+ },
+ {
+ "stringValue": "st_NMB"
+ },
+ {
+ "stringValue": "st_OAE"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PAC"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PVL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROU"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_RYA"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SBS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SKZ"
+ },
+ {
+ "stringValue": "st_SNC"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWG"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TAR"
+ },
+ {
+ "stringValue": "st_TGG"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_USC"
+ },
+ {
+ "stringValue": "st_VES"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_VTS"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WAF"
+ },
+ {
+ "stringValue": "st_WAV"
+ },
+ {
+ "stringValue": "st_WEN"
+ },
+ {
+ "stringValue": "st_WGN"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSG"
+ },
+ {
+ "stringValue": "st_WSW"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_RJA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_CRL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_GZ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ANZ"
+ }
+ ]
+ }
+ },
+ "st_LYM": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_TIN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_DUB"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_ISA"
+ },
+ {
+ "stringValue": "st_ISS"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_RSP"
+ },
+ {
+ "stringValue": "st_SPA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_SWG": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_AAY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_ATV"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AWI"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CFS"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CS"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FC"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HOP"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ISS"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_IYE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KSZ"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOF"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MHO"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NDA"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PTN"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROT"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RXI"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VJT"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSG"
+ },
+ {
+ "stringValue": "st_WSN"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_VIV": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BPC"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CS"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLG"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LHX"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UBT"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_AUA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CS"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TGW"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_XBO"
+ }
+ ]
+ }
+ },
+ "st_RBA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_CPA"
+ }
+ ]
+ }
+ },
+ "st_YB": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_DAL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABX"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMF"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_APZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASQ"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AWI"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CFS"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CSH"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_CXA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_GUN"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_J5"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JNA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KFS"
+ },
+ {
+ "stringValue": "st_KII"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LHX"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LPE"
+ },
+ {
+ "stringValue": "st_LYM"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MSR"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RYR"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAM"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJT"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOI"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRD"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WEN"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSN"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_ASA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_ACO"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AER"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMF"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_APZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AVN"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BGA"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BRG"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CFS"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CS"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DNA"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EXV"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FC"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FEG"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_GUN"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_IYE"
+ },
+ {
+ "stringValue": "st_J5"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JUS"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LBT"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LHX"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LLL"
+ },
+ {
+ "stringValue": "st_LNK"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NGN"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PTB"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SBI"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TZP"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VTS"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSN"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_TGW": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SWR"
+ }
+ ]
+ }
+ },
+ "st_RPA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_AAR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ABL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AMU"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASV"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JNA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ }
+ ]
+ }
+ },
+ "st_HDA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_QFA"
+ }
+ ]
+ }
+ },
+ "st_ANA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_APJ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QLK"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VOZ"
+ }
+ ]
+ }
+ },
+ "st_TUI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANG"
+ },
+ {
+ "stringValue": "st_ANK"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AWU"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCV"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BGA"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRG"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DTG"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_ECA"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EFW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_EST"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FVJ"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GJT"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HPK"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGC"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_IYE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JU"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LPE"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MHV"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NDA"
+ },
+ {
+ "stringValue": "st_NGN"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_OMS"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RXA"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCR"
+ },
+ {
+ "stringValue": "st_SOL"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TCV"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_TMG_cd"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_CES": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CXA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_TWB": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_CFS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_POE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_0N"
+ },
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CJT"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_J5"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NLA"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_PVL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TYA"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_WEN"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSG"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_AVA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_VJT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_OMA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CLX"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_GLR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_SAA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VOZ"
+ }
+ ]
+ }
+ },
+ "st_ADY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ETD"
+ }
+ ]
+ }
+ },
+ "st_BRX": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SAS"
+ }
+ ]
+ }
+ },
+ "st_ASH": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_KQA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_POE_2025": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_CS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_SWR"
+ }
+ ]
+ }
+ },
+ "st_WSG": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_POE"
+ }
+ ]
+ }
+ },
+ "st_PAL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_FIN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CLX"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNO"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CS"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DNU"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_ECO"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_EST"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FC"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJE"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_IYE"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MBU"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MGL"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MSR"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OAL"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_RYR"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SOL"
+ },
+ {
+ "stringValue": "st_SRY"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_SZS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TCV"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UIA"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSG"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_THY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_JNA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ABL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_KAL"
+ }
+ ]
+ }
+ },
+ "st_IBE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANE"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MSR"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_RYR"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_XBO"
+ }
+ ]
+ }
+ },
+ "st_WGN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_AKT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACO"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BHS"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CJL"
+ },
+ {
+ "stringValue": "st_CLH"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CS"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_EST"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FVJ"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GCL"
+ },
+ {
+ "stringValue": "st_GLG"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_GWI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_IYE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MWM"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NUM"
+ },
+ {
+ "stringValue": "st_NWL"
+ },
+ {
+ "stringValue": "st_OAL"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROT"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TPU"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_XGO"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_RPB": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_AMU": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SWR"
+ }
+ ]
+ }
+ },
+ "st_IBB": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_GJT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_LOT"
+ }
+ ]
+ }
+ },
+ "st_JJP": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UIA"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_AMF": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_APF": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SAS"
+ }
+ ]
+ }
+ },
+ "st_AIC": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ }
+ ]
+ }
+ },
+ "st_TVF": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ }
+ ]
+ }
+ },
+ "st_JTD": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SAS"
+ }
+ ]
+ }
+ },
+ "st_QFA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANG"
+ },
+ {
+ "stringValue": "st_ANO"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_APZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AVN"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BOS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFE"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CLX"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EXV"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FEG"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MGL"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MMZ"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PTB"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SOL"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VJT"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSN"
+ },
+ {
+ "stringValue": "st_WZM"
+ }
+ ]
+ }
+ },
+ "st_SKV": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ }
+ ]
+ }
+ },
+ "st_SIL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ATN"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BHS"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLG"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GWI"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_SBS"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_DTR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_SAS"
+ }
+ ]
+ }
+ },
+ "st_NOZ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIF"
+ }
+ ]
+ }
+ },
+ "st_ENY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_GJS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_FLE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CJT"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_VIR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BHS"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_CXA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IBS"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OAL"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAM"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UBT"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_JTA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_EVA"
+ }
+ ]
+ }
+ },
+ "st_HVN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VOZ"
+ }
+ ]
+ }
+ },
+ "st_MHV": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AWU"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_ECA"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ }
+ ]
+ }
+ },
+ "st_HAL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CFS"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSN"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_SCX": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_HAG"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_SWA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABX"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACO"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AHX"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMF"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANK"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_APZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_ASQ"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AWI"
+ },
+ {
+ "stringValue": "st_AWU"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BHS"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCA"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CEB"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CFS"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_CVU"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EAI"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_EST"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HK"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IBS"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAF"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JN"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LHX"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOF"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LYM"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MML"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NDA"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OAE"
+ },
+ {
+ "stringValue": "st_OAL"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_P3"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PPL"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PVG"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SBI"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SHU"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SKY"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TCV"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TQN"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_TZP"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UBT"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_UIA"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJC"
+ },
+ {
+ "stringValue": "st_VJT"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOI"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRD"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WGN"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WM"
+ },
+ {
+ "stringValue": "st_WSN"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_ANT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_WEN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBA"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NLA"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PVL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_WIA"
+ }
+ ]
+ }
+ },
+ "st_BOX": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_DJT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_NSZ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_WIF"
+ }
+ ]
+ }
+ },
+ "st_VJC": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_SCE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_UBT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_GBG": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_LOT"
+ }
+ ]
+ }
+ },
+ "st_SKY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SWA"
+ }
+ ]
+ }
+ },
+ "st_FFT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABX"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACO"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_APZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BOV"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EAF"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FC"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KSZ"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LPE"
+ },
+ {
+ "stringValue": "st_MAY"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SRY"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UBT"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOI"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSG"
+ },
+ {
+ "stringValue": "st_WSN"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_CKS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAH"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABX"
+ },
+ {
+ "stringValue": "st_ACO"
+ },
+ {
+ "stringValue": "st_AER"
+ },
+ {
+ "stringValue": "st_AJI"
+ },
+ {
+ "stringValue": "st_AJT"
+ },
+ {
+ "stringValue": "st_AMF"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASQ"
+ },
+ {
+ "stringValue": "st_ATN"
+ },
+ {
+ "stringValue": "st_AWI"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BRG"
+ },
+ {
+ "stringValue": "st_BSK"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BTZ"
+ },
+ {
+ "stringValue": "st_CFS"
+ },
+ {
+ "stringValue": "st_CHQ"
+ },
+ {
+ "stringValue": "st_CIR"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CPT"
+ },
+ {
+ "stringValue": "st_CSB"
+ },
+ {
+ "stringValue": "st_CYO"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_EAL"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EJA"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FRG"
+ },
+ {
+ "stringValue": "st_FWL"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HPJ"
+ },
+ {
+ "stringValue": "st_IFL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JNY"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JUS"
+ },
+ {
+ "stringValue": "st_KAI"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KFS"
+ },
+ {
+ "stringValue": "st_KII"
+ },
+ {
+ "stringValue": "st_KYE"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOF"
+ },
+ {
+ "stringValue": "st_LYC"
+ },
+ {
+ "stringValue": "st_MGE"
+ },
+ {
+ "stringValue": "st_MHO"
+ },
+ {
+ "stringValue": "st_MKU"
+ },
+ {
+ "stringValue": "st_MNU"
+ },
+ {
+ "stringValue": "st_MTN"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NAC"
+ },
+ {
+ "stringValue": "st_NCR"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NLA"
+ },
+ {
+ "stringValue": "st_OAE"
+ },
+ {
+ "stringValue": "st_PAC"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RKA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RYA"
+ },
+ {
+ "stringValue": "st_SBS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SKZ"
+ },
+ {
+ "stringValue": "st_SNC"
+ },
+ {
+ "stringValue": "st_SOO"
+ },
+ {
+ "stringValue": "st_SPA"
+ },
+ {
+ "stringValue": "st_STT"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWQ"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_USC"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VTS"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WAF"
+ },
+ {
+ "stringValue": "st_WAL"
+ },
+ {
+ "stringValue": "st_WAV"
+ },
+ {
+ "stringValue": "st_WGN"
+ }
+ ]
+ }
+ },
+ "st_CLX": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_QFA"
+ }
+ ]
+ }
+ },
+ "st_ASQ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_QXE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_DLA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_ACA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAH"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABX"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_ACO"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AER"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AJI"
+ },
+ {
+ "stringValue": "st_AJT"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMF"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_ATN"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AWI"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BRG"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CFS"
+ },
+ {
+ "stringValue": "st_CJT"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CSB"
+ },
+ {
+ "stringValue": "st_CSH"
+ },
+ {
+ "stringValue": "st_CSZ"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EAL"
+ },
+ {
+ "stringValue": "st_ECA"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FC"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FRG"
+ },
+ {
+ "stringValue": "st_FTO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GBG"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_GUN"
+ },
+ {
+ "stringValue": "st_GWI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HOP"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IFL"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ISS"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_J5"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBA"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JUS"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KFA"
+ },
+ {
+ "stringValue": "st_KFS"
+ },
+ {
+ "stringValue": "st_KII"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KYE"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_LYC"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MGE"
+ },
+ {
+ "stringValue": "st_MNU"
+ },
+ {
+ "stringValue": "st_MSR"
+ },
+ {
+ "stringValue": "st_MTN"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NAC"
+ },
+ {
+ "stringValue": "st_NCR"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NLA"
+ },
+ {
+ "stringValue": "st_NMB"
+ },
+ {
+ "stringValue": "st_OAE"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PAC"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_PRO"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PVL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QLK"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROU"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_RYA"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SBS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SKZ"
+ },
+ {
+ "stringValue": "st_SNC"
+ },
+ {
+ "stringValue": "st_SPR"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWG"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TAR"
+ },
+ {
+ "stringValue": "st_TGG"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_USC"
+ },
+ {
+ "stringValue": "st_VES"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_VTS"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WAF"
+ },
+ {
+ "stringValue": "st_WAV"
+ },
+ {
+ "stringValue": "st_WEN"
+ },
+ {
+ "stringValue": "st_WGN"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSG"
+ },
+ {
+ "stringValue": "st_WSW"
+ },
+ {
+ "stringValue": "st_XBO"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_AAL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAF"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABX"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_ADR"
+ },
+ {
+ "stringValue": "st_ADY"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AJX"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMF"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANE"
+ },
+ {
+ "stringValue": "st_ANG"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_APZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AWI"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BHS"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCA"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CFS"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CS"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CSH"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DSM"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EAL"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EXV"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FC"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FOO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLG"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_GWI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HOP"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JTA"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KII"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LHX"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LNE"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LVL"
+ },
+ {
+ "stringValue": "st_LYM"
+ },
+ {
+ "stringValue": "st_MAC"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MGL"
+ },
+ {
+ "stringValue": "st_MMM"
+ },
+ {
+ "stringValue": "st_MSR"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NMB"
+ },
+ {
+ "stringValue": "st_NWK"
+ },
+ {
+ "stringValue": "st_OAL"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QLK"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RYR"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SBI"
+ },
+ {
+ "stringValue": "st_SBS"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKK"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_TZP"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOI"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRD"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WEN"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_FAD": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ETD"
+ }
+ ]
+ }
+ },
+ "st_CFG": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACO"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANE"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCS"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BHS"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BOX"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAI"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAW"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CIR"
+ },
+ {
+ "stringValue": "st_CLX"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_COM"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_CYL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DQA"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_ECA"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FEG"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FTA"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_IYE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LHX"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MBU"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MGX"
+ },
+ {
+ "stringValue": "st_MHO"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_NDA"
+ },
+ {
+ "stringValue": "st_NGN"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PEV"
+ },
+ {
+ "stringValue": "st_PGA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QLK"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROU"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_RSP"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SBI"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SLI"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TCV"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_WHT"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_UAE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QLK"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UIA"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VJT"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_AZU": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_GRL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_LVL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_RYR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_RYR"
+ },
+ {
+ "stringValue": "st_RYR"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_KMM": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_HI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_LOF": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SWA"
+ }
+ ]
+ }
+ },
+ "st_PCO": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_EWE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_JZR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_QTR"
+ }
+ ]
+ }
+ },
+ "st_UCA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_CJT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_ANO": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_QFA"
+ }
+ ]
+ }
+ },
+ "st_FCM": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CS"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FC"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MMZ"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PAV"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCR"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKV"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TCV"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJT"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSG"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_WM": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SWA"
+ }
+ ]
+ }
+ },
+ "st_MBU": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_TAP"
+ }
+ ]
+ }
+ },
+ "st_SVS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_SAS"
+ }
+ ]
+ }
+ },
+ "st_CVU": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SWA"
+ }
+ ]
+ }
+ },
+ "st_VTE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_FPO": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_THY"
+ }
+ ]
+ }
+ },
+ "st_SIA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TGW"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_XBO"
+ }
+ ]
+ }
+ },
+ "st_KNE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAF"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HOP"
+ },
+ {
+ "stringValue": "st_HPK"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SGQ"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_VTI"
+ }
+ ]
+ }
+ },
+ "st_ETD": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAF"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_ADR"
+ },
+ {
+ "stringValue": "st_ADY"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AWU"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNO"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DSM"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_EST"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FAD"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FVJ"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_GWI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HOP"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_IYE"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LHX"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LNE"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAC"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NGN"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NMB"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_RYR"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SBI"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SGQ"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_SZS"
+ },
+ {
+ "stringValue": "st_TAM"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_XBO"
+ },
+ {
+ "stringValue": "st_XLF"
+ }
+ ]
+ }
+ },
+ "st_KAC": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_THY"
+ }
+ ]
+ }
+ },
+ "st_THA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CNO"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SZS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_WIF"
+ }
+ ]
+ }
+ },
+ "st_PDT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_JAL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_AIE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_BHS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SWA"
+ }
+ ]
+ }
+ },
+ "st_ASV": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAR"
+ }
+ ]
+ }
+ },
+ "st_ANE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_IBE"
+ }
+ ]
+ }
+ },
+ "st_CRQ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_NKS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAF"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACO"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AGR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AUR"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DNA"
+ },
+ {
+ "stringValue": "st_DSM"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_ECA"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLG"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LNE"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PTN"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SBS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SGQ"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SRY"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOI"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WHT"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSN"
+ }
+ ]
+ }
+ },
+ "st_PSC": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_WZZ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ }
+ ]
+ }
+ },
+ "st_SWR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMU"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AWU"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BHS"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CS"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CSZ"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELO"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FC"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_IYE"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MHO"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MSR"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NLA"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PRF"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PTB"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SBI"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SWU"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_SZS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TCV"
+ },
+ {
+ "stringValue": "st_TGW"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UIA"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VJT"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_XBO"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_BWA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_TSC": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_P3"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_PRO"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PVL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_SEY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_UAE"
+ }
+ ]
+ }
+ },
+ "st_CUA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CXA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VTA"
+ }
+ ]
+ }
+ },
+ "st_PWF": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ }
+ ]
+ }
+ },
+ "st_SKW": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BHS"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TCV"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSG"
+ },
+ {
+ "stringValue": "st_WSN"
+ }
+ ]
+ }
+ },
+ "st_AIZ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_ARG": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CSH"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_CXA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LNE"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROT"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKX"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ }
+ ]
+ }
+ },
+ "st_WSN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_BLS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_0N"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LHX"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UBT"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_EAI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_EIN"
+ }
+ ]
+ }
+ },
+ "st_CFE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_ACI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_ADR"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANG"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVN"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HOP"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MGX"
+ },
+ {
+ "stringValue": "st_NMB"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_ROT"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SOL"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VTA"
+ }
+ ]
+ }
+ },
+ "st_0N": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_CMP": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BHS"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IBS"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISS"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_CAV": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_GPD": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_FDX": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_AWI"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BLK"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CVU"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GLF"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KDS"
+ },
+ {
+ "stringValue": "st_LTU"
+ },
+ {
+ "stringValue": "st_MHO"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_VTS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ASA"
+ }
+ ]
+ }
+ },
+ "st_THT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VTA"
+ }
+ ]
+ }
+ },
+ "st_AJX": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_KAL"
+ }
+ ]
+ }
+ },
+ "st_BCS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_DLH"
+ }
+ ]
+ }
+ },
+ "st_JST": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANG"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_APZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AVN"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EXV"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FEG"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FVJ"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GAO"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MAY"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MGL"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MMZ"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PRF"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PTB"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SOL"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UIA"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSN"
+ }
+ ]
+ }
+ },
+ "st_BTI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAF"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_CYP"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EWL"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HOP"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ISS"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MAY"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NBT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NMB"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROT"
+ },
+ {
+ "stringValue": "st_RVR"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_RXI"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_MAS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VOZ"
+ }
+ ]
+ }
+ },
+ "st_WIA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_JBU"
+ }
+ ]
+ }
+ },
+ "st_PAG": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_0N"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_NBT": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_WIF"
+ }
+ ]
+ }
+ },
+ "st_ALK": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SVA"
+ }
+ ]
+ }
+ },
+ "st_APJ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_SPR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ }
+ ]
+ }
+ },
+ "st_ETH": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_CEB": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_CCA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_EXS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AJX"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CXA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROT"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_VGI"
+ },
+ {
+ "stringValue": "st_VIR"
+ }
+ ]
+ }
+ },
+ "st_FBU": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_REU": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_SWR"
+ }
+ ]
+ }
+ },
+ "st_CSH": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CXA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_VIR"
+ }
+ ]
+ }
+ },
+ "st_SZS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THA"
+ }
+ ]
+ }
+ },
+ "st_PIA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_VOE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_AWI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_VTA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_KZR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ }
+ ]
+ }
+ },
+ "st_EIN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EAI"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_IBS"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NMB"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RYR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SUS"
+ },
+ {
+ "stringValue": "st_SW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SZS"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ }
+ ]
+ }
+ },
+ "st_LOG": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_VIR"
+ }
+ ]
+ }
+ },
+ "st_AMX": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_TAM": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_CRK": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMU"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_RXI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_KNE"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_VIR"
+ }
+ ]
+ }
+ },
+ "st_TZP": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_JJA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_VOZ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FC"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MMD"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SIA"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SOL"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_UAL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABX"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AKX"
+ },
+ {
+ "stringValue": "st_AMF"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANG"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_APJ"
+ },
+ {
+ "stringValue": "st_APZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_ASQ"
+ },
+ {
+ "stringValue": "st_ATN"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AWI"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCV"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CAY"
+ },
+ {
+ "stringValue": "st_CCA"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CEB"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CFE"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CFS"
+ },
+ {
+ "stringValue": "st_CKS"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CSZ"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWE"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FRG"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GJS"
+ },
+ {
+ "stringValue": "st_GLG"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_GTI"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JAT"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JIA"
+ },
+ {
+ "stringValue": "st_JJA"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JTA"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KII"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LAP"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LHX"
+ },
+ {
+ "stringValue": "st_LIA"
+ },
+ {
+ "stringValue": "st_LNE"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_LYM"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MAU"
+ },
+ {
+ "stringValue": "st_MDA"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_MHO"
+ },
+ {
+ "stringValue": "st_MSR"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NDA"
+ },
+ {
+ "stringValue": "st_OAE"
+ },
+ {
+ "stringValue": "st_OAL"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_PIA"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_PVL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QLK"
+ },
+ {
+ "stringValue": "st_QXE"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_ROU"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RPB"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SBI"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SDM"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SHU"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKK"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SKX"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWG"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TAM"
+ },
+ {
+ "stringValue": "st_TAO"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVJ"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_TWB"
+ },
+ {
+ "stringValue": "st_TZP"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UCA"
+ },
+ {
+ "stringValue": "st_UIA"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJC"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VJT"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOI"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRD"
+ },
+ {
+ "stringValue": "st_VTA"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VTI"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WEN"
+ },
+ {
+ "stringValue": "st_WGN"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSN"
+ },
+ {
+ "stringValue": "st_XBO"
+ }
+ ]
+ }
+ },
+ "st_DHA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ }
+ ]
+ }
+ },
+ "st_LPE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DAL"
+ }
+ ]
+ }
+ },
+ "st_ANG": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_QFA"
+ }
+ ]
+ }
+ },
+ "st_CAL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMU"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BBL"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CES"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CSH"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_FCM"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GIA"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_MEA"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_POE_2025"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SOL"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TTW"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UIA"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_ICE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAF"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ABY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACI"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFL"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AIZ"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMU"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASH"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BCV"
+ },
+ {
+ "stringValue": "st_BCY"
+ },
+ {
+ "stringValue": "st_BEE"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BLA"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRL"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_CTU"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DSM"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLI"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GLG"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GRL"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HDA"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISS"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LNE"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_LRC"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NDA"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NMB"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OAL"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_ONE"
+ },
+ {
+ "stringValue": "st_PAG"
+ },
+ {
+ "stringValue": "st_PCO"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RBA"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RZO"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SAT"
+ },
+ {
+ "stringValue": "st_SBI"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SKU"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SKX"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAI"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TCV"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TIN"
+ },
+ {
+ "stringValue": "st_TPC"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSN"
+ }
+ ]
+ }
+ },
+ "st_FRG": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_MMD": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_SAS"
+ }
+ ]
+ }
+ },
+ "st_ASL": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_EJU": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_CPA"
+ }
+ ]
+ }
+ },
+ "st_MXY": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_4T"
+ },
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_ACO"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIE"
+ },
+ {
+ "stringValue": "st_AKT"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANT"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BLS"
+ },
+ {
+ "stringValue": "st_BRX"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_BTQ"
+ },
+ {
+ "stringValue": "st_BWA"
+ },
+ {
+ "stringValue": "st_CAV"
+ },
+ {
+ "stringValue": "st_CCM"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CNF"
+ },
+ {
+ "stringValue": "st_CRQ"
+ },
+ {
+ "stringValue": "st_CS"
+ },
+ {
+ "stringValue": "st_CSA"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DJT"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_DTR"
+ },
+ {
+ "stringValue": "st_DWI"
+ },
+ {
+ "stringValue": "st_EDV"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ELY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FBU"
+ },
+ {
+ "stringValue": "st_FDB"
+ },
+ {
+ "stringValue": "st_FDX"
+ },
+ {
+ "stringValue": "st_FDY"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_FJI"
+ },
+ {
+ "stringValue": "st_FLE"
+ },
+ {
+ "stringValue": "st_FPO"
+ },
+ {
+ "stringValue": "st_FWI"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_GLR"
+ },
+ {
+ "stringValue": "st_GPD"
+ },
+ {
+ "stringValue": "st_GZ"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HI"
+ },
+ {
+ "stringValue": "st_IBB"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_ISR"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JSA"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_KAC"
+ },
+ {
+ "stringValue": "st_KAP"
+ },
+ {
+ "stringValue": "st_KEN"
+ },
+ {
+ "stringValue": "st_KMM"
+ },
+ {
+ "stringValue": "st_KQA"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOG"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MHV"
+ },
+ {
+ "stringValue": "st_MXY"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OAW"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_PSC"
+ },
+ {
+ "stringValue": "st_PTB"
+ },
+ {
+ "stringValue": "st_PVL"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_REU"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_RPA"
+ },
+ {
+ "stringValue": "st_RVF"
+ },
+ {
+ "stringValue": "st_RWD"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SCE"
+ },
+ {
+ "stringValue": "st_SCX"
+ },
+ {
+ "stringValue": "st_SEY"
+ },
+ {
+ "stringValue": "st_SIL"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SKW"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAM"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THT"
+ },
+ {
+ "stringValue": "st_TOS"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_TVF"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_UPS"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VIV"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOE"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_VRE"
+ },
+ {
+ "stringValue": "st_VTE"
+ },
+ {
+ "stringValue": "st_VXP"
+ },
+ {
+ "stringValue": "st_WIA"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ },
+ {
+ "stringValue": "st_WSN"
+ },
+ {
+ "stringValue": "st_YB"
+ }
+ ]
+ }
+ },
+ "st_OAE": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_RAM": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_QTR": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAR"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_AIC"
+ },
+ {
+ "stringValue": "st_ALK"
+ },
+ {
+ "stringValue": "st_AMX"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ARG"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_ASL"
+ },
+ {
+ "stringValue": "st_AUA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_AZU"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BEL"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_BTI"
+ },
+ {
+ "stringValue": "st_CAL"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_CRK"
+ },
+ {
+ "stringValue": "st_CTN"
+ },
+ {
+ "stringValue": "st_CXA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLA"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_EDW"
+ },
+ {
+ "stringValue": "st_EIN"
+ },
+ {
+ "stringValue": "st_ENY"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_ETH"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_EZY"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_GFA"
+ },
+ {
+ "stringValue": "st_GLO"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HKC"
+ },
+ {
+ "stringValue": "st_HKE"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_ICE"
+ },
+ {
+ "stringValue": "st_IGO"
+ },
+ {
+ "stringValue": "st_ITY"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_JJP"
+ },
+ {
+ "stringValue": "st_JST"
+ },
+ {
+ "stringValue": "st_JSX"
+ },
+ {
+ "stringValue": "st_JZA"
+ },
+ {
+ "stringValue": "st_JZR"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_KLM"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_MAS"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_NOZ"
+ },
+ {
+ "stringValue": "st_NSZ"
+ },
+ {
+ "stringValue": "st_OCN"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_PAL"
+ },
+ {
+ "stringValue": "st_PDT"
+ },
+ {
+ "stringValue": "st_PGT"
+ },
+ {
+ "stringValue": "st_POE"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_RAM"
+ },
+ {
+ "stringValue": "st_RJA"
+ },
+ {
+ "stringValue": "st_SAA"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SJX"
+ },
+ {
+ "stringValue": "st_SVA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_SWR"
+ },
+ {
+ "stringValue": "st_SXS"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_THA"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_TRA"
+ },
+ {
+ "stringValue": "st_TSC"
+ },
+ {
+ "stringValue": "st_TVS"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_VOZ"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_DWI": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_OCN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AEA"
+ },
+ {
+ "stringValue": "st_AEE"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANZ"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_AVA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_BKP"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CMP"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_EVA"
+ },
+ {
+ "stringValue": "st_EWG"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_HVN"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_LAN"
+ },
+ {
+ "stringValue": "st_LGL"
+ },
+ {
+ "stringValue": "st_LOT"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_OMA"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_TAP"
+ },
+ {
+ "stringValue": "st_TGW"
+ },
+ {
+ "stringValue": "st_TUI"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ },
+ {
+ "stringValue": "st_VIR"
+ },
+ {
+ "stringValue": "st_VJH"
+ },
+ {
+ "stringValue": "st_VLG"
+ },
+ {
+ "stringValue": "st_WIF"
+ },
+ {
+ "stringValue": "st_WJA"
+ }
+ ]
+ }
+ },
+ "st_BTQ": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_NGN": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ }
+ ]
+ }
+ },
+ "st_JIA": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AAL"
+ },
+ {
+ "stringValue": "st_AAY"
+ },
+ {
+ "stringValue": "st_ACA"
+ },
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_ANA"
+ },
+ {
+ "stringValue": "st_ASA"
+ },
+ {
+ "stringValue": "st_BAW"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_FFT"
+ },
+ {
+ "stringValue": "st_HAL"
+ },
+ {
+ "stringValue": "st_IBE"
+ },
+ {
+ "stringValue": "st_JAL"
+ },
+ {
+ "stringValue": "st_JBU"
+ },
+ {
+ "stringValue": "st_KAL"
+ },
+ {
+ "stringValue": "st_NKS"
+ },
+ {
+ "stringValue": "st_QFA"
+ },
+ {
+ "stringValue": "st_SWA"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_SXS": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_AFR"
+ },
+ {
+ "stringValue": "st_CFG"
+ },
+ {
+ "stringValue": "st_CPA"
+ },
+ {
+ "stringValue": "st_DAL"
+ },
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_ETD"
+ },
+ {
+ "stringValue": "st_FIN"
+ },
+ {
+ "stringValue": "st_KZR"
+ },
+ {
+ "stringValue": "st_QTR"
+ },
+ {
+ "stringValue": "st_SAS"
+ },
+ {
+ "stringValue": "st_THY"
+ },
+ {
+ "stringValue": "st_UAE"
+ },
+ {
+ "stringValue": "st_UAL"
+ }
+ ]
+ }
+ },
+ "st_HKC": {
+ "arrayValue": {
+ "values": [
+ {
+ "stringValue": "st_DLH"
+ },
+ {
+ "stringValue": "st_QTR"
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "modifiedAt": {
+ "timestampValue": "2026-04-20T09:05:20.705Z"
+ }
+ },
+ "createTime": "2026-03-12T06:06:41.140263Z",
+ "updateTime": "2026-04-20T09:05:20.917448Z"
+}
\ No newline at end of file
diff --git a/api_docs/stafftraveler_captures/searchFlightsByRoute_DFW-LAS_request.json b/api_docs/stafftraveler_captures/searchFlightsByRoute_DFW-LAS_request.json
new file mode 100644
index 0000000..472727a
--- /dev/null
+++ b/api_docs/stafftraveler_captures/searchFlightsByRoute_DFW-LAS_request.json
@@ -0,0 +1 @@
+{"originIata":"DFW","destinationIata":"LAS","dates":["2026-04-22"],"maxConnections":0,"allowNearbyDepartures":false,"allowNearbyArrivals":false,"payloadType":"passenger","includeMultipleCarriers":false}
diff --git a/api_docs/stafftraveler_captures/searchFlightsByRoute_DFW-LAS_response.json b/api_docs/stafftraveler_captures/searchFlightsByRoute_DFW-LAS_response.json
new file mode 100644
index 0000000..c11a699
--- /dev/null
+++ b/api_docs/stafftraveler_captures/searchFlightsByRoute_DFW-LAS_response.json
@@ -0,0 +1 @@
+{"payload":{"directFlights":[{"id":"bb63191166831946611a89b89b0da8ed","id_v2":"91d19b09724b6ac186b5ce05689f0775","id_v3":"AA_1292_DFW_2026_04_22","airlineId":"AA","flightNumber":1292,"flightCode":"AA1292","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T11:05:00-05:00","departureTimeUtc":"2026-04-22T16:05:00Z","arrivalTimeLocal":"2026-04-22T12:02:00-07:00","arrivalTimeUtc":"2026-04-22T19:02:00Z","flightEquipmentId":"321","durationMinutes":177,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"321","seatsTotal":190,"seatsByClass":{"first":0,"business":20,"premiumEconomy":0,"economy":170}},{"id":"aa1a8052ad91c2e4ea6ed14bde5f7b5a","id_v2":"f91280a3e42c182ebe97ecd189430e0e","id_v3":"AA_777_DFW_2026_04_22","airlineId":"AA","flightNumber":777,"flightCode":"AA777","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T12:41:00-05:00","departureTimeUtc":"2026-04-22T17:41:00Z","arrivalTimeLocal":"2026-04-22T13:39:00-07:00","arrivalTimeUtc":"2026-04-22T20:39:00Z","flightEquipmentId":"321","durationMinutes":178,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"321","seatsTotal":190,"seatsByClass":{"first":0,"business":20,"premiumEconomy":0,"economy":170}},{"id":"ff7c2f05159cb18512dcfa08c9b0a1fd","id_v2":"d6e7cd8b2d3620df1ef6b8f853fbecbc","id_v3":"AA_1584_DFW_2026_04_22","airlineId":"AA","flightNumber":1584,"flightCode":"AA1584","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T08:52:00-05:00","departureTimeUtc":"2026-04-22T13:52:00Z","arrivalTimeLocal":"2026-04-22T09:50:00-07:00","arrivalTimeUtc":"2026-04-22T16:50:00Z","flightEquipmentId":"321","durationMinutes":178,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"321","seatsTotal":190,"seatsByClass":{"first":0,"business":20,"premiumEconomy":0,"economy":170}},{"id":"e1997b73432895001834efdc5fd6bf37","id_v2":"ebfae5a08e8d2ce1a2852d3ed80a5b39","id_v3":"AA_1969_DFW_2026_04_22","airlineId":"AA","flightNumber":1969,"flightCode":"AA1969","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T07:05:00-05:00","departureTimeUtc":"2026-04-22T12:05:00Z","arrivalTimeLocal":"2026-04-22T08:03:00-07:00","arrivalTimeUtc":"2026-04-22T15:03:00Z","flightEquipmentId":"321","durationMinutes":178,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"321","seatsTotal":190,"seatsByClass":{"first":0,"business":20,"premiumEconomy":0,"economy":170}},{"id":"3268691a6bb930522ddbfda96c258852","id_v2":"e190723905f7048d0848aff4a64ece16","id_v3":"AA_2864_DFW_2026_04_22","airlineId":"AA","flightNumber":2864,"flightCode":"AA2864","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T14:59:00-05:00","departureTimeUtc":"2026-04-22T19:59:00Z","arrivalTimeLocal":"2026-04-22T15:57:00-07:00","arrivalTimeUtc":"2026-04-22T22:57:00Z","flightEquipmentId":"738","durationMinutes":178,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"738","seatsTotal":172,"seatsByClass":{"first":0,"business":16,"premiumEconomy":0,"economy":156}},{"id":"24fb4e2feabe37790b3415ebd9845989","id_v2":"7ee4d68a8570cc775675bc48b09f8c89","id_v3":"AA_2243_DFW_2026_04_22","airlineId":"AA","flightNumber":2243,"flightCode":"AA2243","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T17:56:00-05:00","departureTimeUtc":"2026-04-22T22:56:00Z","arrivalTimeLocal":"2026-04-22T18:55:00-07:00","arrivalTimeUtc":"2026-04-23T01:55:00Z","flightEquipmentId":"321","durationMinutes":179,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"321","seatsTotal":190,"seatsByClass":{"first":0,"business":20,"premiumEconomy":0,"economy":170}},{"id":"752b17dbcb10b1cebcbad7bb12690a4d","id_v2":"8c7df1fcd6ee580b76184613a0a477a7","id_v3":"AA_884_DFW_2026_04_22","airlineId":"AA","flightNumber":884,"flightCode":"AA884","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T18:55:00-05:00","departureTimeUtc":"2026-04-22T23:55:00Z","arrivalTimeLocal":"2026-04-22T19:55:00-07:00","arrivalTimeUtc":"2026-04-23T02:55:00Z","flightEquipmentId":"738","durationMinutes":180,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"738","seatsTotal":172,"seatsByClass":{"first":0,"business":16,"premiumEconomy":0,"economy":156}},{"id":"e736981204758daf3bd95faf4bf938d5","id_v2":"38a7c164767ccb5c11f2f7f05e35c4ff","id_v3":"AA_1615_DFW_2026_04_22","airlineId":"AA","flightNumber":1615,"flightCode":"AA1615","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T21:45:00-05:00","departureTimeUtc":"2026-04-23T02:45:00Z","arrivalTimeLocal":"2026-04-22T22:45:00-07:00","arrivalTimeUtc":"2026-04-23T05:45:00Z","flightEquipmentId":"738","durationMinutes":180,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"738","seatsTotal":172,"seatsByClass":{"first":0,"business":16,"premiumEconomy":0,"economy":156}},{"id":"74116e6233d75d7231eec1a216d66038","id_v2":"52dd09121bfecaa2dc54cd342c971bc9","id_v3":"AA_1771_DFW_2026_04_22","airlineId":"AA","flightNumber":1771,"flightCode":"AA1771","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T20:00:00-05:00","departureTimeUtc":"2026-04-23T01:00:00Z","arrivalTimeLocal":"2026-04-22T21:00:00-07:00","arrivalTimeUtc":"2026-04-23T04:00:00Z","flightEquipmentId":"321","durationMinutes":180,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"321","seatsTotal":190,"seatsByClass":{"first":0,"business":20,"premiumEconomy":0,"economy":170}},{"id":"e845eb80e130f87c75077837c377c51f","id_v2":"c2d9540efb21f35dd683ba73b9d0bb63","id_v3":"AA_1797_DFW_2026_04_22","airlineId":"AA","flightNumber":1797,"flightCode":"AA1797","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T20:56:00-05:00","departureTimeUtc":"2026-04-23T01:56:00Z","arrivalTimeLocal":"2026-04-22T21:56:00-07:00","arrivalTimeUtc":"2026-04-23T04:56:00Z","flightEquipmentId":"738","durationMinutes":180,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"738","seatsTotal":172,"seatsByClass":{"first":0,"business":16,"premiumEconomy":0,"economy":156}},{"id":"eaf7520be61069e5dabfb2a8a14fa46a","id_v2":"76fc116f9e81fd52f49642528583a6bf","id_v3":"AA_783_DFW_2026_04_22","airlineId":"AA","flightNumber":783,"flightCode":"AA783","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T09:31:00-05:00","departureTimeUtc":"2026-04-22T14:31:00Z","arrivalTimeLocal":"2026-04-22T10:32:00-07:00","arrivalTimeUtc":"2026-04-22T17:32:00Z","flightEquipmentId":"738","durationMinutes":181,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"738","seatsTotal":172,"seatsByClass":{"first":0,"business":16,"premiumEconomy":0,"economy":156}},{"id":"a23d6f8379f5109eddeb5bbf78bdccc1","id_v2":"0d9d0702b203d224ace3e6eb94531dde","id_v3":"AA_2178_DFW_2026_04_22","airlineId":"AA","flightNumber":2178,"flightCode":"AA2178","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T16:45:00-05:00","departureTimeUtc":"2026-04-22T21:45:00Z","arrivalTimeLocal":"2026-04-22T17:46:00-07:00","arrivalTimeUtc":"2026-04-23T00:46:00Z","flightEquipmentId":"32Q","durationMinutes":181,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"32Q","seatsTotal":196,"seatsByClass":{"first":0,"business":20,"premiumEconomy":0,"economy":176}},{"id":"8e8751cee0baccd857e19933fb4901fe","id_v2":"3f4dea321a142357cfd61656fe6d80ed","id_v3":"F9_1051_DFW_2026_04_22","airlineId":"F9","flightNumber":1051,"flightCode":"F91051","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T11:45:00-05:00","departureTimeUtc":"2026-04-22T16:45:00Z","arrivalTimeLocal":"2026-04-22T12:57:00-07:00","arrivalTimeUtc":"2026-04-22T19:57:00Z","flightEquipmentId":"32N","durationMinutes":192,"isCargoFlight":false,"airlineStCode":"st_FFT","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"32N","seatsTotal":186,"seatsByClass":{"first":0,"business":0,"premiumEconomy":0,"economy":186}},{"id":"cdd35ba4432c63696acb3164957413f2","id_v2":"62aa67a1e7320f412dd7e9514afe7cf8","id_v3":"AA_2998_DFW_2026_04_22","airlineId":"AA","flightNumber":2998,"flightCode":"AA2998","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T22:56:00-05:00","departureTimeUtc":"2026-04-23T03:56:00Z","arrivalTimeLocal":"2026-04-22T23:51:00-07:00","arrivalTimeUtc":"2026-04-23T06:51:00Z","flightEquipmentId":"738","durationMinutes":175,"isCargoFlight":false,"airlineStCode":"st_AAL","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"738","seatsTotal":172,"seatsByClass":{"first":0,"business":16,"premiumEconomy":0,"economy":156}},{"id":"9cdcc5bddd1a4ff9dd4856c4077ef7b6","id_v2":"f59a502438aaaaeb0a3f87dcb24831b3","id_v3":"F9_3885_DFW_2026_04_22","airlineId":"F9","flightNumber":3885,"flightCode":"F93885","departureAirportId":"DFW","arrivalAirportId":"LAS","departureTimeLocal":"2026-04-22T22:45:00-05:00","departureTimeUtc":"2026-04-23T03:45:00Z","arrivalTimeLocal":"2026-04-22T23:59:00-07:00","arrivalTimeUtc":"2026-04-23T06:59:00Z","flightEquipmentId":"32N","durationMinutes":194,"isCargoFlight":false,"airlineStCode":"st_FFT","departureAirportIata":"DFW","arrivalAirportIata":"LAS","flightEquipmentIata":"32N","seatsTotal":186,"seatsByClass":{"first":0,"business":0,"premiumEconomy":0,"economy":186}}],"connectingFlights":[],"numberOfDiscardedFlights":0,"messages":[],"settingsFilteredCount":0}}
\ No newline at end of file
diff --git a/api_docs/stafftraveler_captures/url_surface_crawl.md b/api_docs/stafftraveler_captures/url_surface_crawl.md
new file mode 100644
index 0000000..f37564f
--- /dev/null
+++ b/api_docs/stafftraveler_captures/url_surface_crawl.md
@@ -0,0 +1,100 @@
+# StaffTraveler — URL surface crawl (2026-04-22)
+
+Full enumeration of what is and isn't accessible with a valid user Firebase ID token from the `stafftraveler-prod` project. Tested as user `3NNPesQMiMRNYnPmuQzh6w2YKyh1` (WN/`st_SWA`) using fresh tokens from `app.stafftraveler.com`.
+
+## HTTP commands (`api.stafftraveler.com/v1/commands/user/`)
+
+All 34 commands confirmed via `createFirebaseCommand` enumeration in the Hermes bundle. Only the `user/` prefix exists — tried `public/`, `internal/`, `admin/`, `v2/`, `flights/`, `loads/`, `system/`, `airline/` → all 404.
+
+**Read-ish (test with safe payloads):**
+- `appActive` — heartbeat. Requires `{localDateIso: ISO8601, appType: "mobile"|"web"}`. Returns `{payload: null}`.
+- `mobile` — stub, returns `"Command mobile is not implemented"`.
+- `searchFlightsByCode`, `searchFlightsByRoute` — flight search (free, any route).
+
+**Everything else is a mutation:** `createLoadsRequests`, `deleteLoadsRequest`, `reopenLoadsRequest`, `upgradeLoadsRequest`, `requestLockForLoadsRequest`, `unlockLoadsRequest`, `submitLoadsReport`, `reviseLoadsReport`, `flagLoadsReport`, `addAirlineDetails`, `addComment`, `addIdentity`, `addCreditsForPurchase`, `createTip`, `deleteUserAccount`, `disableAllAutoRequestSubscriptions`, `disableFlightStatusUpdates`, `enableFlightStatusUpdates`, `discardHint`, `omitIdentity`, `pinFlight`, `unpinFlight`, `registerUser`, `removeComment`, `reportComment`, `setAutoRequestSubscription`, `submitFeedback`, `unlikeTip`, `updateUserProfile`, `appLogout`.
+
+**`api.stafftraveler.com/health`** returns `{message:"ok", serverTime:...}` — open.
+
+## Firestore collections (`firestore.googleapis.com/v1/projects/stafftraveler-prod/databases/(default)/documents`)
+
+All reads require `Authorization: Bearer ` + `X-Firebase-GMPID: 1:628258099825:web:35b20eaab4d441894041d0` + `?key=AIzaSyD82Hiqx-jAbHF8faMGSveqLw8CdX8a-Uc`.
+
+### Publicly readable, cross-airline (globally listable or get-by-id)
+
+| Path | Content | Size |
+|------|---------|------|
+| `__system/maintenance` | service maintenance flags | 1 doc |
+| `__system/version` | required client versions (android/ios blacklists) | 1 doc |
+| `__system/supportedCurrencies` | currency support map | 1 doc |
+| `__derived/nonRevAgreementsBySt` | **Full interline non-rev agreement matrix**: `agreements: { st_XXX: [st_YYY, ...], ... }` | 300 airline keys — pulled and saved to `nonRevAgreementsBySt.json` |
+| `airlinesBySt/*` | Airline ST-code directory | 300+ docs — pulled to `airlinesBySt_full.json` |
+| `airlines/*` | Airline IATA directory | publicly readable per-doc (tested `AA`) |
+| `airportsByIata/*` | Airport IATA directory | publicly readable per-doc |
+| `airlineNotesBySt/*` | Per-airline non-rev notes | publicly readable per-doc |
+| `flightEquipment/*` | Aircraft type directory | publicly readable per-doc |
+| `conversations/*` | Flight comment threads | 404 for empty (rule allows, doc absent); readable where they exist |
+| `tips/*` | Travel recommendations (restaurants, lounges, etc.) | 5+ docs listable (pagination not tested to completion) |
+| `autoRequestRecords/*` | **Global** auto-request subscription configs — user uids, trigger schedules, blocked users | 500+ docs listable; flight metadata is NOT in the doc itself (likely derivable from the doc ID hash), but user-activity is |
+
+### Airline-scoped (only MY airline == `st_SWA`)
+
+| Query | Behavior |
+|-------|----------|
+| `trackedFlights where scheduledFlight.airlineStCode == "st_SWA"` | ✅ 500+ docs (historic WN load requests, all status=closed) |
+| `trackedFlights where scheduledFlight.airlineStCode == "st_AAL/DAL/UAL/JBU/..."` | ❌ 403 — rules scope to own airline |
+| `trackedFlights/{flightId_v3}` direct get, same-airline | ✅ readable (even if I'm not the creator) — exposes `currentLoadsReportId`, `reportAuthorList`, `seatsAvailabilityScore` |
+| `trackedFlights/{flightId_v3}` direct get, other airline | ❌ 403 |
+
+### Strictly user-scoped (me only)
+
+| Path | Notes |
+|------|-------|
+| `users/{MY uid}` | My profile. Other uids → 403. |
+| `userCredits/{MY uid}`, `userHints/{MY uid}`, `userRequestCounters/{MY uid}`, `userPriorityRequestCounters/{MY uid}`, `userMetrics/{MY uid}`, `userAchievements/{MY uid}`, `userFlightSearchHistory/{MY uid}` | my state only |
+| `users/{MY uid}/pinnedFlights`, `users/{MY uid}/connectingFlights` | my subcollections only |
+| `derivedLoadsReports where flightId == ""` | ✅ readable |
+| `derivedLoadsReports/{docId}` direct get, my flight | ✅ readable |
+| `derivedLoadsReports where flightId == ""` | ❌ 403 (cross-checked with direct-get of `dVb4zStjhITceArRgLBB` — a WN862 load doc I don't own) |
+| `trackedFlights/{flight_I_created}/statusUpdates` subcollection | readable only for flights I own |
+
+### Explicitly denied for listing / querying
+
+| Path | Error |
+|------|-------|
+| `LIST derivedLoadsReports` without a matching where-filter | 403 |
+| `LIST trackedFlights` without airlineStCode filter | 403 |
+| `runQuery` on `derivedLoadsReports`, `trackedFlights`, `scheduledFlights`, `flights`, `flightRecord`, `userRegistrations`, `userEmailVerifications`, `loadsReports` (as singular), `conversations` (list-only, 403) without proper predicates | 403 |
+| Collection-group queries on sensitive collections | 403 |
+| `scheduledFlights/{id}`, `flights/{id}`, `flightRecord/{id}` direct get for ANY flight | 403 |
+
+## Other domains on stafftraveler.com (tested unauthenticated GET)
+
+| URL | Response |
+|-----|----------|
+| `app.stafftraveler.com/` | web app (Next.js); redirects to `/login` if unauth |
+| `share.stafftraveler.com/` | 200 HTML — share landing page (Next.js). Tried `/request/`, `/flight/`, `/loads/`, `/r/` → all 404 |
+| `blog.stafftraveler.com/` | blog (not tested deeply) |
+| `hotels.stafftraveler.com/` | hotels deals (WebView target) |
+| `carrental.stafftraveler.com/` | car rentals (WebView target, URL pattern `/mobile.html?...`) |
+| `support.stafftraveler.com/` | support/help |
+| `shop.stafftraveler.com/` | merch |
+| `links.stafftraveler.com/` | 404 not-found page (linktree-style, but empty) |
+| `webhooks.stafftraveler.com/` | Fastify API; `{error:"Not Found"}` on `/`; `/request-password-reset` returns `{error:"Invalid arguments"}` on empty body |
+| `stafftraveler.com/r/` | Returns generic HTML (any path) |
+| `images.stafftraveler.com/avatars/*` | Public avatar CDN |
+
+## Goal analysis: "find all filled requests"
+
+- **For my own airline (WN/`st_SWA`):** ✅ possible — enumerate all `trackedFlights` with `airlineStCode == "st_SWA"` and `status == "closed"`. 500+ historic records. But actually reading the per-request **load data** (`openSeats.{first,business,economy}.count`, `staffListing.count`) still requires having personally called `createLoadsRequests` on each flight.
+- **For other airlines:** ❌ blocked. The rule `scheduledFlight.airlineStCode == ` is the hard wall. Verified negatively across 9 airline codes (AAL/DAL/UAL/JBU/ACA/KLM/AFR/BAW/DLH).
+- **Community-aggregated filled-request data, cross-airline:** not exposed anywhere I found. `autoRequestRecords` comes closest — it shows *who's auto-subscribing*, not what loads were reported.
+
+The design is intentional: StaffTraveler's value proposition is a credit-gated access to crowd-sourced data on your own airline's routes. The rules don't let you enumerate outside that scope.
+
+## Useful artifacts saved
+
+- `nonRevAgreementsBySt.json` — complete 300-airline interline matrix
+- `airlinesBySt_full.json` — ST code → airline directory (partial if stopped paging)
+- `firestore_listen_targets_and_queries.txt` — all Listen-channel queries captured from the web client
+- `derivedLoadsReports_AA2178_*.json` — single known-working load response capture
+- `searchFlightsByRoute_DFW-LAS_*.json` / `createLoadsRequests_AA2178_*.json` — HTTP command captures
diff --git a/api_docs/stafftraveler_findings.md b/api_docs/stafftraveler_findings.md
new file mode 100644
index 0000000..61d1408
--- /dev/null
+++ b/api_docs/stafftraveler_findings.md
@@ -0,0 +1,368 @@
+# StaffTraveler — complete findings
+
+Single source of truth for the StaffTraveler reverse-engineering effort. Verified by HTTP captures, Firestore REST probes, and Hermes bytecode analysis against the live `stafftraveler-prod` Firebase project. Raw artifacts in `stafftraveler_captures/`.
+
+Source app: `com.stafftraveler.webview` v3.12.0 (build 1880000346), iOS UA `stafftraveler/560 CFNetwork/3860.500.112 Darwin/25.4.0`. Web client at `https://app.stafftraveler.com` (same Firebase project, same Firestore rules — used for inspection because it sends the long-poll fallback transport instead of gRPC).
+
+## TL;DR for the iOS Flights integration
+
+To show flight loads inside our app:
+
+1. Add a secondary `FirebaseApp` named e.g. `StaffTravelerFirebaseApp` configured with the **web** API key + GMPID below.
+2. Sign in as the user with Firebase Auth (email/password) → store refresh token in Keychain.
+3. To search routes, `POST https://api.stafftraveler.com/v1/commands/user/searchFlightsByRoute` with the Bearer ID token.
+4. To **unlock** loads on a flight, `POST .../createLoadsRequests` with the flight object + `isPriorityRequest: false` — costs **1 credit per new flight**, idempotent on replay.
+5. After unlock, attach a Firestore snapshot listener on `derivedLoadsReports.where("flightId", "==", flightIdV3).order("createdAt", desc)` to receive live load updates.
+6. Optional surface for "what's happening on my own airline": query `trackedFlights.where("scheduledFlight.airlineStCode", "==", userStCode)` to see flights other employees on the same airline have requested.
+
+You **cannot** show real load numbers for a flight without first calling `createLoadsRequests` on that specific flight. There is no bulk/peek endpoint — verified extensively (see "Security model").
+
+---
+
+## Architecture
+
+React Native + Hermes bytecode iOS/Android app with a thin native shell. All business logic in `assets/index.android.bundle`. Backend is Firebase:
+
+| Component | Service |
+|-----------|---------|
+| Auth | Firebase Auth (email/password, Google, Apple, Facebook) |
+| Real-time data | Cloud Firestore (`stafftraveler-prod`) |
+| Mutations | Custom HTTP commands API at `api.stafftraveler.com/v1/commands/user/` (likely Cloud Functions) |
+| Config | Firebase Remote Config (controls API base URL, Typesense host/key, feature flags) |
+| Search index | Typesense (`enhk2ji1vu6csxzrp-1.a1.typesense.net`) — server-side, not hit directly by the client |
+| Push | FCM / APNs |
+| Static CDN | `images.stafftraveler.com` |
+
+No SSL pinning. No App Check enforcement (Play Integrity classes are bundled but the `createFirebaseCommand` fetch doesn't attach an `X-Firebase-AppCheck` header, and the web client makes every request with just the ID token).
+
+## Firebase project config
+
+From APK `res/values/strings.xml` and the web client's IndexedDB:
+
+| Key | Value |
+|-----|-------|
+| Project ID | `stafftraveler-prod` |
+| **Web API key** (the one that works for REST) | `AIzaSyD82Hiqx-jAbHF8faMGSveqLw8CdX8a-Uc` |
+| Web App ID / GMPID | `1:628258099825:web:35b20eaab4d441894041d0` |
+| Android API key | `AIzaSyC2zG6ArnguzzdWsLYV1qjQznma0zl1Q0s` (locked to the signed APK) |
+| Android App ID | `1:628258099825:android:5fb976ba6ad1bb05` |
+| Sender ID | `628258099825` |
+| Firestore | `(default)` database |
+| RTDB | `https://stafftraveler-prod.firebaseio.com` (registered but unused for loads) |
+| Storage | `stafftraveler-prod.appspot.com` |
+
+For an iOS integration, register a new web/iOS app in the same Firebase console — but the existing web app credentials above are sufficient for direct REST and the web SDK in our app.
+
+## Auth
+
+```
+POST https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=
+Content-Type: application/json
+{ "email": "...", "password": "...", "returnSecureToken": true }
+→ { idToken, refreshToken, expiresIn: "3600", localId: , ... }
+```
+
+The ID token is a 1-hour JWT; refresh via `securetoken.googleapis.com/v1/token?key=` with `grant_type=refresh_token&refresh_token=...`. The Firebase SDK does this transparently.
+
+Token claims include `email`, `user_id`, `is_registered`. Issuer `https://securetoken.google.com/stafftraveler-prod`, audience `stafftraveler-prod`.
+
+## HTTP commands API
+
+```
+POST https://api.stafftraveler.com/v1/commands/user/
+Authorization: Bearer
+Content-Type: application/json
+x-stafftraveler-client: mobile ← the iOS app sends this; web sends "web". Probably not enforced.
+{ ... command-specific body ... }
+```
+
+Response: `{ payload: }` on success, `{ isError: true, payload: }` on validation/business errors. Both come back HTTP 200; check the `isError` flag.
+
+`api_commands_url` is fetched from Remote Config at startup. The deployed value is `https://api.stafftraveler.com/v1/commands/user`. The bundle disassembly confirms there is no other path prefix — tested `/public/`, `/internal/`, `/admin/`, `/v2/`, `/flights/`, `/loads/`, `/system/`, `/airline/` → all 404.
+
+Also exposed on the same host: `GET /health` → `{message:"ok", serverTime:...}`.
+
+### Command inventory (all 34, via `createFirebaseCommand` enumeration)
+
+**Reads (free, idempotent):**
+- `searchFlightsByRoute` — flight schedule by origin/destination/date
+- `searchFlightsByCode` — flight schedule by flight number
+- `appActive` — heartbeat; needs `{localDateIso, appType}`; returns `{payload: null}`
+- `mobile` — stub, returns `"not implemented"`
+
+**Mutations (most of these spend credits or modify account state):**
+
+```
+addAirlineDetails addCreditsForPurchase addComment addIdentity
+appLogout createLoadsRequests createTip deleteLoadsRequest
+deleteUserAccount disableAllAutoRequestSubscriptions
+disableFlightStatusUpdates enableFlightStatusUpdates discardHint
+flagLoadsReport omitIdentity pinFlight unpinFlight
+registerUser removeComment reportComment
+reopenLoadsRequest reviseLoadsReport requestLockForLoadsRequest
+unlockLoadsRequest setAutoRequestSubscription submitFeedback
+submitLoadsReport unlikeTip updateUserProfile upgradeLoadsRequest
+```
+
+### `searchFlightsByRoute` — confirmed payload
+
+```json
+{
+ "originIata": "DFW",
+ "destinationIata": "LAS",
+ "dates": ["2026-04-22"],
+ "maxConnections": 0,
+ "allowNearbyDepartures": false,
+ "allowNearbyArrivals": false,
+ "payloadType": "passenger",
+ "includeMultipleCarriers": false
+}
+```
+
+Response: `{ payload: { directFlights: [...], connectingFlights: [...], numberOfDiscardedFlights, settingsFilteredCount, messages } }`.
+
+Flight object fields:
+```
+id, id_v2, id_v3 (= "AA_2178_DFW_2026_04_22"),
+airlineId, airlineStCode, flightCode, flightNumber,
+departureAirportId, departureAirportIata, arrivalAirportId, arrivalAirportIata,
+departureTimeLocal, departureTimeUtc, arrivalTimeLocal, arrivalTimeUtc,
+durationMinutes, isCargoFlight,
+flightEquipmentId, flightEquipmentIata,
+seatsTotal, seatsByClass: { first, business, premiumEconomy, economy }
+```
+
+`id_v3` format is `{airlineId}_{flightNumber}_{departureIata}_{YYYY}_{MM}_{DD}`. **This is the key used everywhere downstream** (Firestore docs, command bodies, etc).
+
+`seatsByClass` is the **aircraft cabin configuration**, NOT current availability — that's a separate Firestore lookup.
+
+### `createLoadsRequests` — confirmed payload
+
+Body is a **bare JSON array** (no outer wrapper) of full flight objects, each with one extra field `isPriorityRequest: bool`:
+
+```json
+[
+ { ...full flight from search response..., "isPriorityRequest": false }
+]
+```
+
+Response:
+```json
+{
+ "payload": {
+ "numberOfRequests": 0,
+ "numberOfRequestsPaidFor": 0,
+ "numberOfRequestsPaidForPriority": 0,
+ "hasSufficientCredits": true,
+ "verifiedRequests": [
+ {
+ "flightId": "AA_2178_DFW_2026_04_22",
+ "isExisting": true,
+ "isDuplicateForUser": true,
+ "isRequestUpdateForUser": false,
+ "hasDeparted": false,
+ "isCancelled": false,
+ "isPriorityRequest": false,
+ "hasRecentLoads": false, ← summary flag; actual loads come from Firestore
+ "scheduledFlight": { ... full flight ... }
+ }
+ ]
+ }
+}
+```
+
+**Idempotency:** Replaying the same flight returns `numberOfRequests: 0` + `isDuplicateForUser: true` + **no credit charged**. Useful as a "what's the current state" probe — pay for the first call only, then replay free.
+
+## Firestore — the data plane
+
+REST endpoint: `https://firestore.googleapis.com/v1/projects/stafftraveler-prod/databases/(default)/documents`
+
+**Required headers on every read:**
+```
+Authorization: Bearer
+X-Firebase-GMPID: 1:628258099825:web:35b20eaab4d441894041d0
+?key=AIzaSyD82Hiqx-jAbHF8faMGSveqLw8CdX8a-Uc (URL query)
+```
+
+Omitting `?key=` or the GMPID gives `403 PERMISSION_DENIED` even with a valid token — the project-consumer context is required.
+
+**Why mobile mitm couldn't see this:** the iOS Firebase SDK uses gRPC over HTTP/2 to `firestore.googleapis.com`. Many proxies show those streams as opaque binary frames. The web client uses the long-poll fallback (`Listen/channel?VER=8&TYPE=xmlhttp`) with URL-encoded JSON bodies — fully decodable. That's why the answer only fell out via the browser.
+
+### Loads — `derivedLoadsReports`
+
+The single most important query for the integration:
+
+```json
+POST documents:runQuery
+{
+ "structuredQuery": {
+ "from": [{"collectionId": "derivedLoadsReports"}],
+ "where": {
+ "fieldFilter": {
+ "field": {"fieldPath": "flightId"},
+ "op": "EQUAL",
+ "value": {"stringValue": "AA_2178_DFW_2026_04_22"}
+ }
+ },
+ "orderBy": [
+ {"field": {"fieldPath": "createdAt"}, "direction": "DESCENDING"},
+ {"field": {"fieldPath": "__name__"}, "direction": "DESCENDING"}
+ ]
+ }
+}
+```
+
+Doc shape (verified live capture, AA2178 2026-04-22):
+
+```json
+{
+ "flightId": "AA_2178_DFW_2026_04_22",
+ "openSeats": {
+ "first": { "count": 3 },
+ "eco": { "count": 9 }
+ // also: business, premiumEconomy. Absent class = 0/unknown.
+ },
+ "staffListing": {
+ "type": "available", // also: "upgrade" variants per checkForLoads heuristic
+ "count": 6, // # standby/listed non-rev passengers
+ "countByClass": {}
+ },
+ "responseTimeSeconds": 196,
+ "numberOfCreditsRewarded": 1,
+ "isFlagged": false,
+ "isFlaggedConfirmed": false,
+ "seatsAvailabilityScore": 0.79, // 0-1; app uses for color coding
+ "hasClosedRequest": true,
+ "isJackpotHit": false,
+ "isPriorityRequest": false,
+ "createdAt": "2026-04-22T18:42:51.313Z",
+ "expireAt": "2026-07-21T21:45:00Z", // ~90 days
+ "creatorName": "M", // first letter only (privacy)
+ "creatorImageUrl": "https://images.stafftraveler.com/avatars/happysuitcase.png",
+ "creatorImagePath": "avatars/happysuitcase.png"
+}
+```
+
+### `trackedFlights` — request state
+
+One doc per (flight, anyone-who-requested-it). Doc ID = `id_v3` of the flight. Key fields:
+
+```
+scheduledFlight: { full flight object — same shape as searchFlightsByRoute }
+status: "open" | "closed"
+createdBy:
+createdAt, statusChangedAt, expireAt
+priority: integer
+priorityElevatedAt
+isPriorityRequest, isAutoRequest, isLocked, isCancelled, isDeleted, isDelayed, isDiverted
+hasDeparted, hasArrived, hasBeenRefunded
+lockedBy, lockedAt ← while a reporter is filling it in
+loadsUpdateRequestedBy
+currentLoadsReportId ← doc ID into derivedLoadsReports
+seatsAvailabilityScore ← summary score (also in derivedLoadsReports)
+reportAuthorList: [] ← who has reported on this flight
+reportAuthors: { : true, ... }
+subscribedUsers: { : true, ... } ← all users tracking this flight
+subscribedUserList: []
+statusUpdatesSubscribedUserIds: []
+usersRequestingLoads: { : , ... } ← users currently requesting an update
+usersRequestingPriority: { ... }
+usersEligibleForRefund: { : 1, ... }
+sita: { ... rich live SITA flight record (gate, registration, flight times, marketing carriers, etc) ... }
+__checksums: { typesense: "..." }
+```
+
+### Other Firestore listeners the web client opens (captured)
+
+From the live `Listen/channel` body capture in `firestore_listen_targets_and_queries.txt`:
+
+| Target | Use |
+|--------|-----|
+| `users/{uid}` | profile |
+| `userHints/{uid}`, `userRequestCounters/{uid}`, `userPriorityRequestCounters/{uid}`, `userCredits/{uid}`, `userAchievements/{uid}`, `userMetrics/{uid}`, `userFlightSearchHistory/{uid}` | per-user state |
+| `airportsByIata/{IATA}` | airport metadata |
+| `airlinesBySt/{stCode}` | airline metadata by ST code |
+| `airlineNotesBySt/{stCode}` | non-rev policy notes |
+| `flightEquipment/{type}` | aircraft type info |
+| `conversations/{flightId_v3}` | per-flight comment thread |
+| `users/{uid}/pinnedFlights` (subcoll. query) | pinned flights |
+| `users/{uid}/connectingFlights` (subcoll. query) | connecting flight definitions |
+| `trackedFlights/{flightId_v3}/statusUpdates` (subcoll. query) | flight status change feed |
+| `trackedFlights` query | see "Security model" — airline-scoped |
+| `autoRequestRecords` query filtered by `subscribedUserIds ARRAY_CONTAINS uid` AND `isActive == true` | user's auto-subscriptions |
+
+## Security model (the load-data unlock)
+
+This is the constraint that defines the integration shape. Verified by exhaustive probing.
+
+**Rules summary** (inferred from observed access pattern):
+
+| Collection | Rule (effective) |
+|------------|------------------|
+| `__system/*`, `__derived/nonRevAgreementsBySt`, `airlines/*`, `airlinesBySt/*`, `airportsByIata/*`, `airlineNotesBySt/*`, `flightEquipment/*`, `tips/*`, `autoRequestRecords/*`, `conversations/*` | Public read for any authenticated user |
+| `users/{uid}`, `userCredits/{uid}`, all other `user*/{uid}` | Owner-only |
+| `trackedFlights` query (`list`) | Allowed only when filtered by `scheduledFlight.airlineStCode == ` |
+| `trackedFlights/{id}` direct read (`get`) | Allowed if same-airline OR createdBy == auth.uid |
+| `trackedFlights/{id}/statusUpdates` subcollection | Allowed only if you own/created the flight |
+| `derivedLoadsReports` query and direct-get | Allowed only if you have a matching `trackedFlights/{flightId}` where you're the creator/subscriber |
+| `scheduledFlights/{id}`, `flightRecord/{id}`, `flights/{id}` | Denied for direct-get on any flight |
+
+**Verified 2026-04-22:**
+- AA2178 query (I have a request on it) → 200, returns the load doc.
+- WN862 query (someone else's request, my airline) → 403.
+- Direct GET on `derivedLoadsReports/dVb4zStjhITceArRgLBB` (WN862's load doc, ID extracted from the trackedFlight doc which IS readable as same-airline) → still 403. Same token, same headers. So knowing the doc ID is not a bypass.
+- DL/AA/UA/JBU/etc trackedFlights queries → 403 across all 9 airlines tested.
+- Same-airline trackedFlights query → 500+ historic WN flights returned (status=closed mostly), confirming the airline-scope leak.
+
+**Net consequence:** there is no "peek" path. To see load numbers on a flight, you must spend a credit on it via `createLoadsRequests`. After that, both the trackedFlight and derivedLoadsReports become readable indefinitely (or until the flight expires ~90 days later), and snapshot listeners deliver new community-submitted reports for free.
+
+The same-airline `trackedFlights` listing exposes one useful summary signal without paying: `seatsAvailabilityScore` (0–1) on flights other employees on your own airline have asked about. Coarse go/no-go indicator, no class-level breakdown.
+
+## Public reference data worth caching
+
+Pulled and saved to `stafftraveler_captures/`:
+
+- **`__derived/nonRevAgreementsBySt`** (`nonRevAgreementsBySt.json`) — full interline matrix: 300 airlines, each with an array of airline ST codes they have non-rev agreements with. Useful for filtering search results to "airlines I can actually non-rev on" without us building this ourselves.
+- **`airlinesBySt/*`** (`airlinesBySt_full.json`) — ST-code → airline directory.
+
+Both stable, refresh occasionally.
+
+## What the iOS app actually needs
+
+Concrete integration plan:
+
+1. **Secondary FirebaseApp** `StaffTravelerApp` configured with the web key + GMPID above. Initialize on first user-opt-in.
+2. **Auth screen** — email/password login → store refresh token in Keychain. Surface "no StaffTraveler account? Sign up in the StaffTraveler app first" — `addAirlineDetails` verification has to happen there.
+3. **Bridge user state** — read `users/{uid}` (gets `airlineStCode`, name) and `userCredits/{uid}` (gets balance). Display credit balance in our UI.
+4. **Search**: `POST /v1/commands/user/searchFlightsByRoute`. Free.
+5. **Flight row UI**: for each result, attach a Firestore snapshot listener on `derivedLoadsReports.where("flightId", "==", flightId_v3)`.
+ - If the listener gets a doc → render loads inline.
+ - If 403 → flight isn't unlocked yet; show a "Request loads (1 credit)" CTA.
+6. **Request CTA** → `POST /v1/commands/user/createLoadsRequests` with the full flight + `isPriorityRequest: false`. Idempotent — surface "you already requested this" if `isDuplicateForUser: true`.
+7. **Comments / status feed (optional)** — listeners on `conversations/{flightId}` and `trackedFlights/{flightId}/statusUpdates`.
+8. **Token refresh** — let Firebase iOS SDK handle it. Don't try to do it manually.
+
+Mutations to wire later if useful: `pinFlight`/`unpinFlight`, `setAutoRequestSubscription` (auto-poll a recurring route), `submitLoadsReport` (let the user contribute back if they're at the gate). Skip everything else.
+
+## Captures (raw artifacts)
+
+In `stafftraveler_captures/`:
+
+- `searchFlightsByRoute_DFW-LAS_request.json` / `_response.json` — schedule API
+- `createLoadsRequests_AA2178_request.json` / `_response.json` / `_response_headers.txt` — load-request API
+- `derivedLoadsReports_AA2178_request.json` / `_response.json` — actual loads readout
+- `firestore_listen_targets_and_queries.txt` — all `addTarget` bodies the web client opens in a session
+- `nonRevAgreementsBySt.json` — interline matrix
+- `airlinesBySt_full.json` — airline directory
+- `firestore_schema.md`, `url_surface_crawl.md`, `README.md` — interim notes
+
+## Things that are NOT possible
+
+Documenting the dead ends so we don't relitigate:
+
+- **Cross-airline load enumeration** — blocked by the `airlineStCode` filter on `trackedFlights` and the createdBy check on `derivedLoadsReports`. Tested across 9 airline codes.
+- **Bulk peek at multiple flights' loads in one call** — no API. Each flight needs its own credit unlock.
+- **Reading another user's `derivedLoadsReports` by knowing the doc ID** — rule evaluates the doc's `flightId` against your tracked flights. Direct-GET on a known foreign doc ID returns 403.
+- **Spoofing airline membership** — token claims are server-issued; `setAirlineStCodes` is a real command but changing your airline would affect the user's actual account.
+- **Anonymous Firebase Auth on this project** — the Android API key is restricted to the signed APK package + cert SHA1. The web key is unrestricted on `signInWithPassword` but you still need real credentials.
+- **App Check bypass** — moot; not enforced in practice.
diff --git a/scripts/jsx_cdp_probe.mjs b/scripts/jsx_cdp_probe.mjs
new file mode 100644
index 0000000..f151986
--- /dev/null
+++ b/scripts/jsx_cdp_probe.mjs
@@ -0,0 +1,1084 @@
+import { spawn } from "node:child_process";
+import { mkdir, rm, writeFile } from "node:fs/promises";
+import process from "node:process";
+import { setTimeout as delay } from "node:timers/promises";
+
+const chromePath = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome";
+const port = Number(process.env.CDP_PORT || 9229);
+const origin = process.env.JSX_ORIGIN || "DAL";
+const destination = process.env.JSX_DESTINATION || "HOU";
+const beginDate = process.env.JSX_DATE || "2026-04-11";
+const headless = process.env.HEADLESS === "1";
+const userDataDir = process.env.CHROME_USER_DATA_DIR || `/tmp/jsx-chrome-${Date.now()}`;
+const artifactsDir = process.env.JSX_ARTIFACTS_DIR || "/tmp/jsx-probe";
+const navigationUrl = process.env.JSX_URL || "https://www.jsx.com/";
+const settleMs = Number(process.env.SETTLE_MS || 8000);
+const requestTimeoutMs = Number(process.env.REQUEST_TIMEOUT_MS || 30000);
+
+await mkdir(artifactsDir, { recursive: true });
+
+function log(message, details) {
+ if (details === undefined) {
+ console.log(`[probe] ${message}`);
+ return;
+ }
+ console.log(`[probe] ${message}`, details);
+}
+
+async function fetchJson(url) {
+ const response = await fetch(url);
+ if (!response.ok) {
+ throw new Error(`HTTP ${response.status} for ${url}`);
+ }
+ return response.json();
+}
+
+async function waitForDebugger() {
+ const deadline = Date.now() + requestTimeoutMs;
+ while (Date.now() < deadline) {
+ try {
+ return await fetchJson(`http://127.0.0.1:${port}/json/version`);
+ } catch {
+ await delay(250);
+ }
+ }
+ throw new Error("Timed out waiting for Chrome remote debugger");
+}
+
+function launchChrome() {
+ const args = [
+ `--remote-debugging-port=${port}`,
+ `--user-data-dir=${userDataDir}`,
+ "--no-first-run",
+ "--no-default-browser-check",
+ "--disable-default-apps",
+ "--disable-popup-blocking",
+ "--disable-background-networking",
+ "--disable-renderer-backgrounding",
+ "--window-size=1440,1200",
+ navigationUrl,
+ ];
+
+ if (headless) {
+ args.splice(args.length - 1, 0, "--headless=new");
+ }
+
+ log("Launching Chrome", { chromePath, port, userDataDir, headless, navigationUrl });
+ const child = spawn(chromePath, args, {
+ detached: false,
+ stdio: ["ignore", "pipe", "pipe"],
+ });
+
+ child.stdout.on("data", chunk => {
+ const text = chunk.toString().trim();
+ if (text) {
+ console.log(`[chrome] ${text}`);
+ }
+ });
+
+ child.stderr.on("data", chunk => {
+ const text = chunk.toString().trim();
+ if (text) {
+ console.error(`[chrome] ${text}`);
+ }
+ });
+
+ return child;
+}
+
+class CDPClient {
+ constructor(socketUrl) {
+ this.socketUrl = socketUrl;
+ this.ws = new WebSocket(socketUrl);
+ this.nextId = 1;
+ this.pending = new Map();
+ this.eventHandlers = new Map();
+ this.openPromise = new Promise((resolve, reject) => {
+ this.ws.addEventListener("open", () => resolve());
+ this.ws.addEventListener("error", event => reject(event.error || new Error("WebSocket open failed")));
+ });
+
+ this.ws.addEventListener("message", event => {
+ const message = JSON.parse(event.data.toString());
+ if (message.id) {
+ const pending = this.pending.get(message.id);
+ if (!pending) {
+ return;
+ }
+ this.pending.delete(message.id);
+ if (message.error) {
+ pending.reject(new Error(message.error.message || JSON.stringify(message.error)));
+ } else {
+ pending.resolve(message.result);
+ }
+ return;
+ }
+
+ const handlers = this.eventHandlers.get(message.method) || [];
+ for (const handler of handlers) {
+ handler(message.params || {});
+ }
+ });
+ }
+
+ async ready() {
+ await this.openPromise;
+ }
+
+ async send(method, params = {}) {
+ await this.ready();
+ const id = this.nextId++;
+ const payload = JSON.stringify({ id, method, params });
+ const promise = new Promise((resolve, reject) => {
+ this.pending.set(id, { resolve, reject });
+ setTimeout(() => {
+ if (this.pending.has(id)) {
+ this.pending.delete(id);
+ reject(new Error(`Timed out waiting for ${method}`));
+ }
+ }, requestTimeoutMs);
+ });
+
+ this.ws.send(payload);
+ return promise;
+ }
+
+ on(method, handler) {
+ const handlers = this.eventHandlers.get(method) || [];
+ handlers.push(handler);
+ this.eventHandlers.set(method, handlers);
+ }
+
+ async close() {
+ if (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING) {
+ this.ws.close();
+ }
+ }
+}
+
+async function clickPoint(cdp, point) {
+ await cdp.send("Input.dispatchMouseEvent", {
+ type: "mouseMoved",
+ x: point.x,
+ y: point.y,
+ button: "none",
+ });
+ await cdp.send("Input.dispatchMouseEvent", {
+ type: "mousePressed",
+ x: point.x,
+ y: point.y,
+ button: "left",
+ clickCount: 1,
+ });
+ await cdp.send("Input.dispatchMouseEvent", {
+ type: "mouseReleased",
+ x: point.x,
+ y: point.y,
+ button: "left",
+ clickCount: 1,
+ });
+}
+
+async function clickButtonByText(cdp, textPattern) {
+ const result = await cdp.send("Runtime.evaluate", {
+ expression: `
+(() => {
+ const visible = element => !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
+ const textOf = element => (element.innerText || element.textContent || "").replace(/\\s+/g, " ").trim();
+ const button = Array.from(document.querySelectorAll("button, [role='button']"))
+ .filter(visible)
+ .find(element => ${textPattern}.test(textOf(element)));
+
+ if (!button) {
+ return { success: false, reason: "button-not-found", pattern: "${textPattern}" };
+ }
+
+ const rect = button.getBoundingClientRect();
+ return {
+ success: true,
+ text: textOf(button),
+ x: rect.left + rect.width / 2,
+ y: rect.top + rect.height / 2
+ };
+})()
+`,
+ awaitPromise: true,
+ returnByValue: true,
+ });
+
+ const details = result.result?.value;
+ if (!details?.success) {
+ return details;
+ }
+
+ await clickPoint(cdp, details);
+ await delay(500);
+ return { success: true, text: details.text };
+}
+
+async function newTarget() {
+ const response = await fetch(`http://127.0.0.1:${port}/json/new?about:blank`, {
+ method: "PUT",
+ });
+ if (!response.ok) {
+ throw new Error(`Failed to create target: HTTP ${response.status}`);
+ }
+ return response.json();
+}
+
+function visibleFilter(element) {
+ return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
+}
+
+const pageProbeScript = `
+(() => {
+ const visible = element => !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
+ const textOf = element => (element.innerText || element.textContent || "").replace(/\\s+/g, " ").trim();
+ const describe = element => {
+ const label = element.labels && element.labels.length
+ ? Array.from(element.labels).map(label => textOf(label)).join(" | ")
+ : "";
+ return {
+ tag: element.tagName.toLowerCase(),
+ type: element.getAttribute("type") || "",
+ id: element.id || "",
+ name: element.getAttribute("name") || "",
+ role: element.getAttribute("role") || "",
+ testId: element.getAttribute("data-testid") || "",
+ placeholder: element.getAttribute("placeholder") || "",
+ ariaLabel: element.getAttribute("aria-label") || "",
+ value: element.value || "",
+ text: textOf(element).slice(0, 120),
+ label: label.slice(0, 120),
+ };
+ };
+
+ const elements = Array.from(document.querySelectorAll("input, button, select, textarea, [role='button'], [role='combobox'], [data-testid]"))
+ .filter(visible)
+ .map(describe)
+ .slice(0, 250);
+
+ return {
+ url: location.href,
+ title: document.title,
+ readyState: document.readyState,
+ bodyTextPreview: textOf(document.body).slice(0, 1000),
+ localStorage: Object.fromEntries(Object.keys(localStorage).sort().map(key => [key, localStorage.getItem(key)])),
+ sessionStorage: Object.fromEntries(Object.keys(sessionStorage).sort().map(key => [key, sessionStorage.getItem(key)])),
+ elements,
+ };
+})()
+`;
+
+const acceptConsentScript = `
+(() => {
+ const visible = element => !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
+ const exactLabels = new Set([
+ "accept",
+ "accept all",
+ "allow all",
+ "i agree",
+ "agree"
+ ]);
+
+ const candidates = Array.from(document.querySelectorAll("button, [role='button']"))
+ .filter(visible);
+
+ for (const candidate of candidates) {
+ const text = (candidate.innerText || candidate.textContent || "").replace(/\\s+/g, " ").trim().toLowerCase();
+ if (exactLabels.has(text)) {
+ candidate.click();
+ return { clicked: true, text };
+ }
+ }
+
+ return { clicked: false };
+})()
+`;
+
+const setOneWayTripScript = `
+(async () => {
+ const visible = element => !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
+ const textOf = element => (element.innerText || element.textContent || "").replace(/\\s+/g, " ").trim();
+ const tripTrigger = Array.from(document.querySelectorAll("[role='combobox']"))
+ .find(element => /round trip|one way|multi city/i.test(textOf(element)));
+
+ if (!tripTrigger) {
+ return { success: false, reason: "trip-trigger-not-found" };
+ }
+
+ const anyOption = () => Array.from(document.querySelectorAll("mat-option, [role='option']")).find(visible);
+ const tried = [];
+
+ tripTrigger.scrollIntoView?.({ block: "center" });
+ tripTrigger.click();
+ tried.push("click");
+ await new Promise(resolve => setTimeout(resolve, 500));
+
+ if (!anyOption()) {
+ tripTrigger.focus?.();
+ await new Promise(resolve => setTimeout(resolve, 100));
+ for (const key of ["Enter", " ", "ArrowDown"]) {
+ tripTrigger.dispatchEvent(new KeyboardEvent("keydown", {
+ key,
+ code: key === " " ? "Space" : key,
+ keyCode: key === "Enter" ? 13 : key === " " ? 32 : 40,
+ bubbles: true,
+ cancelable: true,
+ }));
+ tried.push("key:" + key);
+ await new Promise(resolve => setTimeout(resolve, 350));
+ if (anyOption()) break;
+ }
+ }
+
+ if (!anyOption()) {
+ const ctxKey = Object.keys(tripTrigger).find(key => key.startsWith("__ngContext__"));
+ if (ctxKey) {
+ for (const item of tripTrigger[ctxKey] || []) {
+ if (item && typeof item === "object" && typeof item.open === "function") {
+ try { item.open(); tried.push("ngContext.open"); } catch {}
+ await new Promise(resolve => setTimeout(resolve, 400));
+ if (anyOption()) break;
+ }
+ }
+ }
+ }
+
+ const options = Array.from(document.querySelectorAll("mat-option, [role='option']")).filter(visible);
+ const oneWay = options.find(element => /^one way$/i.test(textOf(element)));
+ if (!oneWay) {
+ return {
+ success: false,
+ reason: "one-way-option-not-found",
+ tried,
+ visibleOptions: options.map(textOf).filter(Boolean).slice(0, 40)
+ };
+ }
+
+ oneWay.scrollIntoView?.({ block: "center" });
+ for (const type of ["pointerdown", "mousedown", "pointerup", "mouseup", "click"]) {
+ oneWay.dispatchEvent(new MouseEvent(type, { bubbles: true, cancelable: true }));
+ }
+ oneWay.click?.();
+ await new Promise(resolve => setTimeout(resolve, 500));
+
+ let usedAngular = false;
+ const returnVisible = Array.from(document.querySelectorAll("input")).some(input => {
+ const label = (input.getAttribute("aria-label") || "").toLowerCase();
+ return label.includes("return date") && (input.offsetWidth || input.offsetHeight);
+ });
+ if (returnVisible) {
+ const ctxKey = Object.keys(oneWay).find(key => key.startsWith("__ngContext__"));
+ if (ctxKey) {
+ for (const item of oneWay[ctxKey] || []) {
+ if (!item || typeof item !== "object") continue;
+ if (typeof item._selectViaInteraction === "function") {
+ try { item._selectViaInteraction(); usedAngular = true; break; } catch {}
+ }
+ if (typeof item.select === "function" && item.value !== undefined) {
+ try { item.select(); usedAngular = true; break; } catch {}
+ }
+ }
+ }
+ await new Promise(resolve => setTimeout(resolve, 500));
+ }
+
+ const finalReturnVisible = Array.from(document.querySelectorAll("input")).some(input => {
+ const label = (input.getAttribute("aria-label") || "").toLowerCase();
+ return label.includes("return date") && (input.offsetWidth || input.offsetHeight);
+ });
+
+ return {
+ success: !finalReturnVisible,
+ selected: textOf(oneWay),
+ tried,
+ usedAngular,
+ finalReturnVisible
+ };
+})()
+`;
+
+const dismissMarketingPopupScript = `
+(() => {
+ const visible = element => !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
+ const closeButton = Array.from(document.querySelectorAll("button, [role='button']"))
+ .filter(visible)
+ .find(element => (element.getAttribute("aria-label") || "").toLowerCase() === "close dialog");
+
+ if (!closeButton) {
+ return { dismissed: false };
+ }
+
+ closeButton.click();
+ return { dismissed: true };
+})()
+`;
+
+const selectStationScript = (index, stationCode) => `
+(async () => {
+ const visible = element => !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
+ const textOf = element => (element.innerText || element.textContent || "").replace(/\\s+/g, " ").trim();
+ const metaOf = element => [
+ element.getAttribute("placeholder") || "",
+ element.getAttribute("aria-label") || "",
+ element.getAttribute("name") || "",
+ element.id || "",
+ textOf(element.parentElement || element),
+ ].join(" ").toLowerCase();
+ const nativeValueSetter = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value")?.set;
+ const setInputValue = (input, value) => {
+ input.focus();
+ if (nativeValueSetter) {
+ nativeValueSetter.call(input, value);
+ } else {
+ input.value = value;
+ }
+ input.dispatchEvent(new InputEvent("input", { bubbles: true, data: value }));
+ input.dispatchEvent(new Event("change", { bubbles: true }));
+ };
+
+ const stationButtons = Array.from(document.querySelectorAll("[aria-label='Station select'], [aria-label*='Station select']"))
+ .filter(visible);
+ const trigger = stationButtons[${index}];
+ if (!trigger) {
+ return {
+ success: false,
+ reason: "station-trigger-not-found",
+ triggers: stationButtons.map(textOf)
+ };
+ }
+
+ trigger.click();
+ await new Promise(resolve => setTimeout(resolve, 700));
+
+ const searchInput = Array.from(document.querySelectorAll("input"))
+ .filter(visible)
+ .find(input => {
+ const placeholder = (input.getAttribute("placeholder") || "").toLowerCase();
+ return placeholder === "airport or city" || (/airport|station|city|search|origin|destination/.test(metaOf(input)) && !/date|email|phone/.test(metaOf(input)));
+ });
+
+ if (searchInput) {
+ setInputValue(searchInput, "${stationCode}");
+ await new Promise(resolve => setTimeout(resolve, 700));
+ }
+
+ const stationPattern = new RegExp("(^|\\\\b)${stationCode}(\\\\b|$)", "i");
+ const candidates = Array.from(document.querySelectorAll("li[role='option'].station-options__item, li[role='option'], .station-options__item"))
+ .filter(visible);
+ const target = candidates.find(element => stationPattern.test(textOf(element)));
+
+ if (!target) {
+ return {
+ success: false,
+ reason: "station-option-not-found",
+ searchInputMeta: searchInput ? metaOf(searchInput) : null,
+ visibleOptions: candidates.map(textOf).filter(Boolean).slice(0, 80)
+ };
+ }
+
+ target.scrollIntoView?.({ block: "center" });
+ for (const type of ["pointerdown", "mousedown", "pointerup", "mouseup", "click"]) {
+ target.dispatchEvent(new MouseEvent(type, { bubbles: true, cancelable: true }));
+ }
+ target.click?.();
+ await new Promise(resolve => setTimeout(resolve, 500));
+
+ const after = () => Array.from(document.querySelectorAll("[aria-label='Station select']")).filter(visible)[${index}];
+ let finalText = (after()?.textContent || "").trim();
+ let usedAngular = false;
+ if (!finalText.includes("${stationCode}")) {
+ const ctxKey = Object.keys(target).find(key => key.startsWith("__ngContext__"));
+ if (ctxKey) {
+ for (const item of target[ctxKey] || []) {
+ if (!item || typeof item !== "object") continue;
+ for (const method of ["_selectViaInteraction", "select", "onSelect", "onClick", "handleClick"]) {
+ if (typeof item[method] === "function") {
+ try { item[method](); usedAngular = true; break; } catch {}
+ }
+ }
+ if (usedAngular) break;
+ }
+ }
+ await new Promise(resolve => setTimeout(resolve, 400));
+ finalText = (after()?.textContent || "").trim();
+ }
+
+ return {
+ success: finalText.includes("${stationCode}"),
+ selected: textOf(target),
+ finalText,
+ usedAngular
+ };
+})()
+`;
+
+const setDepartDateScript = isoDate => `
+(async () => {
+ const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
+ const [year, month, day] = "${isoDate}".split("-").map(Number);
+ const monthNames = [
+ "January","February","March","April","May","June",
+ "July","August","September","October","November","December"
+ ];
+ const targetMonthName = monthNames[month - 1];
+
+ const input = Array.from(document.querySelectorAll("input")).find(element => {
+ const label = (element.getAttribute("aria-label") || "").toLowerCase();
+ return label.includes("depart date") || (label.includes("date") && !label.includes("return"));
+ });
+ if (!input) {
+ return { success: false, reason: "depart-input-not-found" };
+ }
+
+ const wrapper = input.closest("mat-form-field, jsx-form-field, .form-field, .jsx-form-field");
+ const toggle =
+ wrapper?.querySelector("mat-datepicker-toggle button") ||
+ wrapper?.querySelector("button[aria-label*='calendar' i]") ||
+ wrapper?.querySelector("button[aria-label*='date picker' i]") ||
+ input;
+ toggle.click();
+ await sleep(800);
+
+ const findCalendar = () => {
+ const direct = document.querySelector(
+ "mat-calendar, .mat-calendar, mat-datepicker-content, [class*='mat-datepicker']"
+ );
+ if (direct) return direct;
+ const overlay = document.querySelector(".cdk-overlay-container");
+ if (overlay) {
+ const panes = overlay.querySelectorAll(".cdk-overlay-pane, [class*='datepicker'], [class*='calendar'], [class*='date-picker']");
+ for (const pane of panes) {
+ if (!(pane.offsetWidth || pane.offsetHeight)) continue;
+ const text = pane.textContent || "";
+ if (/january|february|march|april|may|june|july|august|september|october|november|december/i.test(text)) {
+ return pane;
+ }
+ }
+ }
+ const candidates = Array.from(document.querySelectorAll("div, section, article"))
+ .filter(element => element.offsetWidth && element.offsetHeight && element.offsetWidth < 1000)
+ .filter(element => /\\b(Sun|Mon|Tue|Wed|Thu|Fri|Sat)\\b/.test(element.textContent || ""))
+ .filter(element => /january|february|march|april|may|june|july|august|september|october|november|december/i.test(element.textContent || ""));
+ return candidates[0] || null;
+ };
+
+ let calendar = findCalendar();
+ if (!calendar) {
+ input.click();
+ input.focus?.();
+ await sleep(500);
+ calendar = findCalendar();
+ }
+ if (!calendar) {
+ return { success: false, reason: "datepicker-did-not-open" };
+ }
+
+ const next = calendar.querySelector(".mat-calendar-next-button, [aria-label*='Next month' i]");
+ const prev = calendar.querySelector(".mat-calendar-previous-button, [aria-label*='Previous month' i]");
+ const monthIndex = name =>
+ ["january","february","march","april","may","june","july","august","september","october","november","december"]
+ .indexOf(name.toLowerCase());
+
+ for (let i = 0; i < 24; i++) {
+ const header = calendar.querySelector(".mat-calendar-period-button, [class*='calendar-header']");
+ const text = header?.textContent?.trim() || "";
+ if (text.includes(targetMonthName) && text.includes(String(year))) break;
+ const match = text.match(/(\\w+)\\s+(\\d{4})/);
+ let forward = true;
+ if (match) {
+ const current = parseInt(match[2], 10) * 12 + monthIndex(match[1]);
+ const target = year * 12 + (month - 1);
+ forward = current < target;
+ }
+ const button = forward ? next : prev;
+ if (!button || button.disabled) break;
+ button.click();
+ await sleep(250);
+ }
+
+ const ariaExact = targetMonthName + " " + day + ", " + year;
+ const ariaLoose = targetMonthName + " " + day + " " + year;
+ const allCells = Array.from(calendar.querySelectorAll("[aria-label]"))
+ .filter(element => element.offsetWidth || element.offsetHeight);
+ let cell = allCells.find(element => {
+ const aria = (element.getAttribute("aria-label") || "").trim();
+ return aria === ariaExact || aria === ariaLoose || aria.startsWith(ariaExact);
+ });
+
+ if (!cell) {
+ const dayRe = new RegExp("\\\\b" + day + "\\\\b");
+ cell = allCells.find(element => {
+ const aria = element.getAttribute("aria-label") || "";
+ return aria.includes(targetMonthName) && aria.includes(String(year)) && dayRe.test(aria);
+ });
+ }
+
+ if (!cell) {
+ return { success: false, reason: "day-cell-not-found", ariaExact };
+ }
+
+ cell.scrollIntoView?.({ block: "center" });
+ for (const type of ["pointerdown", "mousedown", "pointerup", "mouseup", "click"]) {
+ cell.dispatchEvent(new MouseEvent(type, { bubbles: true, cancelable: true }));
+ }
+ cell.click?.();
+ await sleep(700);
+
+ const doneButton = Array.from(document.querySelectorAll("button, [role='button']"))
+ .filter(element => element.offsetWidth || element.offsetHeight)
+ .find(element => /^\\s*done\\s*$/i.test((element.innerText || element.textContent || "").trim()));
+ let doneClicked = false;
+ if (doneButton) {
+ doneButton.scrollIntoView?.({ block: "center" });
+ for (const type of ["pointerdown", "mousedown", "pointerup", "mouseup", "click"]) {
+ doneButton.dispatchEvent(new MouseEvent(type, { bubbles: true, cancelable: true }));
+ }
+ doneButton.click?.();
+ doneClicked = true;
+ await sleep(600);
+ }
+
+ document.body.click();
+ for (const element of document.querySelectorAll("input")) {
+ element.dispatchEvent(new Event("blur", { bubbles: true }));
+ }
+ await sleep(300);
+
+ return {
+ success: true,
+ value: input.value,
+ doneClicked
+ };
+})()
+`;
+
+const forceAngularFormUpdateScript = `
+(async () => {
+ const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
+ document.body.click();
+ for (const input of document.querySelectorAll("input")) {
+ input.dispatchEvent(new Event("blur", { bubbles: true }));
+ }
+ await sleep(300);
+
+ let touched = 0;
+ for (const element of document.querySelectorAll("*")) {
+ const ctxKey = Object.keys(element).find(key => key.startsWith("__ngContext__"));
+ if (!ctxKey) continue;
+ for (const item of element[ctxKey] || []) {
+ if (!item || typeof item !== "object" || !(item.controls || item.control)) continue;
+ const form = item.controls ? item : item.control?.controls ? item.control : null;
+ if (!form) continue;
+ try { form.markAllAsTouched?.(); } catch {}
+ try { form.updateValueAndValidity?.(); } catch {}
+ touched++;
+ }
+ if (touched > 20) break;
+ }
+
+ const findButton = Array.from(document.querySelectorAll("button"))
+ .find(button => /find flights/i.test(button.textContent || ""));
+ return {
+ success: true,
+ touched,
+ findButtonDisabled: Boolean(findButton?.disabled || findButton?.getAttribute("aria-disabled") === "true")
+ };
+})()
+`;
+
+const componentSnapshotScript = `
+(() => {
+ const safe = (value, depth = 0) => {
+ if (depth > 3) return null;
+ if (value === null || value === undefined) return value;
+ if (typeof value === "function") return "[function]";
+ if (value instanceof Date) return value.toISOString();
+ if (typeof value !== "object") return value;
+ if (Array.isArray(value)) return value.slice(0, 10).map(item => safe(item, depth + 1));
+ const output = {};
+ for (const key of Object.keys(value).slice(0, 25)) {
+ try {
+ output[key] = safe(value[key], depth + 1);
+ } catch {
+ output[key] = "[unreadable]";
+ }
+ }
+ return output;
+ };
+
+ for (const element of document.querySelectorAll("*")) {
+ const ctxKey = Object.keys(element).find(key => key.startsWith("__ngContext__"));
+ if (!ctxKey) continue;
+ const ctx = element[ctxKey];
+ if (!Array.isArray(ctx)) continue;
+ for (let idx = 0; idx < ctx.length; idx++) {
+ const item = ctx[idx];
+ if (!item || typeof item !== "object") continue;
+ if (!("beginDate" in item) || !("origin" in item) || !("destination" in item) || typeof item.search !== "function") {
+ continue;
+ }
+
+ const keys = Object.keys(item).sort();
+ const proto = Object.getPrototypeOf(item);
+ const protoMethods = proto
+ ? Object.getOwnPropertyNames(proto)
+ .filter(name => name !== "constructor" && typeof item[name] === "function")
+ .sort()
+ : [];
+
+ return {
+ found: true,
+ idx,
+ hostTag: (element.tagName || "").toLowerCase(),
+ hostClass: String(element.className || ""),
+ keys,
+ interestingKeys: keys.filter(name => /(origin|destination|home|station|airport|date|trip|search|market|store)/i.test(name)),
+ protoMethods: protoMethods.filter(name => /(origin|destination|home|station|airport|date|trip|search|select|set|update|submit)/i.test(name)),
+ gatingValues: {
+ departureSelectionComplete: item.departureSelectionComplete,
+ arrivalSelectionComplete: item.arrivalSelectionComplete,
+ tripType: item.tripType,
+ searchStart: item.searchStart,
+ searchComplete: item.searchComplete,
+ searchButtonDisabled: Boolean(item.searchButton?.disabled),
+ searchButtonAriaDisabled: item.searchButton?.getAttribute?.("aria-disabled") || null
+ },
+ methodBodies: Object.fromEntries(
+ ["fromUpdated", "toUpdated", "setSelectedStations", "validateTripSelection", "validateDates", "search"]
+ .filter(name => typeof item[name] === "function")
+ .map(name => [name, String(item[name]).slice(0, 1200)])
+ ),
+ fromStationProtoMethods: item.fromStation ? Object.getOwnPropertyNames(Object.getPrototypeOf(item.fromStation) || {})
+ .filter(name => name !== "constructor" && typeof item.fromStation[name] === "function")
+ .filter(name => /(select|choose|station|input|search|update|focus|click|set)/i.test(name))
+ .sort() : [],
+ toStationProtoMethods: item.toStation ? Object.getOwnPropertyNames(Object.getPrototypeOf(item.toStation) || {})
+ .filter(name => name !== "constructor" && typeof item.toStation[name] === "function")
+ .filter(name => /(select|choose|station|input|search|update|focus|click|set)/i.test(name))
+ .sort() : [],
+ originPreview: safe(item.origin),
+ destinationPreview: safe(item.destination),
+ beginDatePreview: safe(item.beginDate),
+ interestingValues: Object.fromEntries(
+ keys
+ .filter(name => /(origin|destination|home|station|airport|date|trip|market|arrivalSelectionComplete|departureSelectionComplete)/i.test(name))
+ .slice(0, 20)
+ .map(name => {
+ try {
+ return [name, safe(item[name])];
+ } catch {
+ return [name, "[unreadable]"];
+ }
+ })
+ )
+ };
+ }
+ }
+
+ return { found: false };
+})()
+`;
+
+const stationOverlayDebugScript = index => `
+(async () => {
+ const visible = element => !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
+ const textOf = element => (element.innerText || element.textContent || "").replace(/\\s+/g, " ").trim();
+ const stationButtons = Array.from(document.querySelectorAll("[aria-label='Station select'], [aria-label*='Station select']"))
+ .filter(visible);
+ const trigger = stationButtons[${index}];
+ if (!trigger) {
+ return { success: false, reason: "station-trigger-not-found" };
+ }
+
+ trigger.click();
+ await new Promise(resolve => setTimeout(resolve, 900));
+
+ const elements = Array.from(document.querySelectorAll("input, button, [role='button'], [role='option'], [role='dialog'], mat-option, li, .mat-mdc-option, .mat-option"))
+ .filter(visible)
+ .map(element => ({
+ tag: element.tagName.toLowerCase(),
+ role: element.getAttribute("role") || "",
+ ariaLabel: element.getAttribute("aria-label") || "",
+ placeholder: element.getAttribute("placeholder") || "",
+ id: element.id || "",
+ className: element.className || "",
+ text: textOf(element).slice(0, 160)
+ }))
+ .filter(item => item.text || item.ariaLabel || item.placeholder)
+ .slice(0, 150);
+
+ return {
+ success: true,
+ triggerText: textOf(trigger),
+ activeElement: document.activeElement ? {
+ tag: document.activeElement.tagName.toLowerCase(),
+ ariaLabel: document.activeElement.getAttribute("aria-label") || "",
+ placeholder: document.activeElement.getAttribute("placeholder") || "",
+ id: document.activeElement.id || "",
+ text: textOf(document.activeElement).slice(0, 160)
+ } : null,
+ elements
+ };
+})()
+`;
+
+const availabilityProbeScript = `
+(async ({ origin, destination, beginDate }) => {
+ const payload = {
+ beginDate,
+ destination,
+ origin,
+ passengers: {
+ types: [{ count: 1, type: "ADT" }]
+ },
+ taxesAndFees: 2,
+ filters: {
+ maxConnections: 4,
+ compressionType: 1,
+ sortOptions: [4],
+ fareTypes: ["R"],
+ exclusionType: 2
+ },
+ numberOfFaresPerJourney: 10,
+ codes: {
+ currencyCode: "USD"
+ },
+ ssrCollectionsMode: 1
+ };
+
+ const tokenData = JSON.parse(sessionStorage.getItem("navitaire.digital.token") || "null");
+ const token = tokenData?.token || "";
+
+ const response = await fetch("https://api.jsx.com/api/nsk/v4/availability/search/simple", {
+ method: "POST",
+ credentials: "include",
+ headers: {
+ "Content-Type": "application/json",
+ "Accept": "application/json, text/plain, */*",
+ "Authorization": token
+ },
+ body: JSON.stringify(payload)
+ });
+
+ const body = await response.text();
+
+ return {
+ tokenPresent: Boolean(token),
+ tokenPrefix: token.slice(0, 24),
+ tokenExpiration: tokenData?.expiration || null,
+ status: response.status,
+ bodyLength: body.length,
+ bodySnippet: body.slice(0, 4000)
+ };
+})(${JSON.stringify({ origin, destination, beginDate })})
+`;
+
+async function main() {
+ const chrome = launchChrome();
+ let cdp;
+
+ try {
+ await waitForDebugger();
+ const target = await newTarget();
+ log("Connected target", { id: target.id, url: target.url });
+ cdp = new CDPClient(target.webSocketDebuggerUrl);
+ await cdp.ready();
+
+ const requests = [];
+ const responseMetaByRequestId = new Map();
+
+ cdp.on("Network.requestWillBeSent", params => {
+ const url = params.request?.url || "";
+ if (!url.includes("jsx.com")) {
+ return;
+ }
+ const record = {
+ stage: "request",
+ type: params.type || "",
+ method: params.request?.method || "",
+ url,
+ postData: params.request?.postData || "",
+ hasAuthHeader: Boolean(params.request?.headers?.Authorization),
+ };
+ requests.push(record);
+ console.log(JSON.stringify(record));
+ });
+
+ cdp.on("Network.responseReceived", params => {
+ const url = params.response?.url || "";
+ if (!url.includes("jsx.com")) {
+ return;
+ }
+ const record = {
+ stage: "response",
+ type: params.type || "",
+ status: params.response?.status || 0,
+ mimeType: params.response?.mimeType || "",
+ url,
+ };
+ responseMetaByRequestId.set(params.requestId, record);
+ requests.push(record);
+ console.log(JSON.stringify(record));
+ });
+
+ cdp.on("Network.loadingFinished", async params => {
+ const meta = responseMetaByRequestId.get(params.requestId);
+ if (!meta || !meta.url.includes("api.jsx.com")) {
+ return;
+ }
+ try {
+ const body = await cdp.send("Network.getResponseBody", { requestId: params.requestId });
+ const snippet = (body.body || "").slice(0, 3000);
+ const record = {
+ stage: "body",
+ status: meta.status,
+ url: meta.url,
+ bodySnippet: snippet,
+ base64Encoded: Boolean(body.base64Encoded),
+ };
+ requests.push(record);
+ console.log(JSON.stringify(record));
+ } catch (error) {
+ console.log(JSON.stringify({
+ stage: "body-error",
+ url: meta.url,
+ error: error.message,
+ }));
+ }
+ });
+
+ await cdp.send("Page.enable");
+ await cdp.send("Runtime.enable");
+ await cdp.send("Network.enable", {
+ maxTotalBufferSize: 100_000_000,
+ maxResourceBufferSize: 10_000_000,
+ maxPostDataSize: 1_000_000,
+ });
+ await cdp.send("Network.setCacheDisabled", { cacheDisabled: true });
+
+ log("Navigating page target", navigationUrl);
+ await cdp.send("Page.navigate", { url: navigationUrl });
+ await delay(settleMs);
+
+ const consentResult = await cdp.send("Runtime.evaluate", {
+ expression: acceptConsentScript,
+ awaitPromise: true,
+ returnByValue: true,
+ });
+ log("Consent result", consentResult.result?.value);
+
+ await delay(1500);
+
+ const initialProbe = await cdp.send("Runtime.evaluate", {
+ expression: pageProbeScript,
+ awaitPromise: true,
+ returnByValue: true,
+ });
+ await writeFile(`${artifactsDir}/page-probe-before-search.json`, JSON.stringify(initialProbe.result?.value || {}, null, 2));
+ log("Page probe saved", `${artifactsDir}/page-probe-before-search.json`);
+
+ if (process.env.DEBUG_STATION_OVERLAY === "1") {
+ const overlayProbe = await cdp.send("Runtime.evaluate", {
+ expression: stationOverlayDebugScript(0),
+ awaitPromise: true,
+ returnByValue: true,
+ });
+ await writeFile(
+ `${artifactsDir}/station-overlay-debug.json`,
+ JSON.stringify(overlayProbe.result?.value || {}, null, 2)
+ );
+ log("Station overlay debug", overlayProbe.result?.value);
+ }
+
+ const popupDismissResult = await cdp.send("Runtime.evaluate", {
+ expression: dismissMarketingPopupScript,
+ awaitPromise: true,
+ returnByValue: true,
+ });
+ log("Marketing popup result", popupDismissResult.result?.value);
+
+ const tripTypeResult = await cdp.send("Runtime.evaluate", {
+ expression: setOneWayTripScript,
+ awaitPromise: true,
+ returnByValue: true,
+ });
+ log("Trip type result", tripTypeResult.result?.value);
+
+ const originResult = await cdp.send("Runtime.evaluate", {
+ expression: selectStationScript(0, origin),
+ awaitPromise: true,
+ returnByValue: true,
+ });
+ log("Origin selection result", originResult.result?.value);
+
+ const destinationResult = await cdp.send("Runtime.evaluate", {
+ expression: selectStationScript(1, destination),
+ awaitPromise: true,
+ returnByValue: true,
+ });
+ log("Destination selection result", destinationResult.result?.value);
+
+ const dateResult = await cdp.send("Runtime.evaluate", {
+ expression: setDepartDateScript(beginDate),
+ awaitPromise: true,
+ returnByValue: true,
+ });
+ log("Depart date result", dateResult);
+
+ const formUpdateResult = await cdp.send("Runtime.evaluate", {
+ expression: forceAngularFormUpdateScript,
+ awaitPromise: true,
+ returnByValue: true,
+ });
+ log("Form update result", formUpdateResult.result?.value);
+
+ const componentSnapshot = await cdp.send("Runtime.evaluate", {
+ expression: componentSnapshotScript,
+ awaitPromise: true,
+ returnByValue: true,
+ });
+ await writeFile(
+ `${artifactsDir}/component-snapshot-before-search.json`,
+ JSON.stringify(componentSnapshot.result?.value || {}, null, 2)
+ );
+ log("Component snapshot", componentSnapshot.result?.value);
+
+ const searchResult = await clickButtonByText(cdp, "/^find flights$/i");
+ log("Search click result", searchResult);
+
+ if (process.env.DIRECT_AVAILABILITY_PROBE === "1") {
+ const availabilityProbe = await cdp.send("Runtime.evaluate", {
+ expression: availabilityProbeScript,
+ awaitPromise: true,
+ returnByValue: true,
+ });
+ await writeFile(
+ `${artifactsDir}/availability-probe.json`,
+ JSON.stringify(availabilityProbe.result?.value || {}, null, 2)
+ );
+ log("Availability probe", availabilityProbe.result?.value);
+ }
+
+ await delay(settleMs);
+
+ const finalProbe = await cdp.send("Runtime.evaluate", {
+ expression: pageProbeScript,
+ awaitPromise: true,
+ returnByValue: true,
+ });
+ await writeFile(`${artifactsDir}/page-probe-after-search.json`, JSON.stringify(finalProbe.result?.value || {}, null, 2));
+ await writeFile(`${artifactsDir}/network-events.json`, JSON.stringify(requests, null, 2));
+ log("Artifacts saved", artifactsDir);
+ } finally {
+ if (cdp) {
+ await cdp.close();
+ }
+ chrome.kill("SIGTERM");
+ await delay(500);
+ await rm(userDataDir, { recursive: true, force: true });
+ }
+}
+
+await main();
diff --git a/scripts/jsx_live_monitor.mjs b/scripts/jsx_live_monitor.mjs
new file mode 100644
index 0000000..326dc76
--- /dev/null
+++ b/scripts/jsx_live_monitor.mjs
@@ -0,0 +1,294 @@
+import { spawn } from "node:child_process";
+import { mkdir, rm } from "node:fs/promises";
+import { createWriteStream } from "node:fs";
+import process from "node:process";
+import { setTimeout as delay } from "node:timers/promises";
+
+const chromePath = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome";
+const port = Number(process.env.CDP_PORT || 9230);
+const navigationUrl = process.env.JSX_URL || "https://www.jsx.com/";
+const userDataDir = process.env.CHROME_USER_DATA_DIR || `/tmp/jsx-live-monitor-${Date.now()}`;
+const artifactsDir = process.env.JSX_ARTIFACTS_DIR || "/tmp/jsx-live-monitor";
+const logPath = `${artifactsDir}/network-events.ndjson`;
+const requestTimeoutMs = Number(process.env.REQUEST_TIMEOUT_MS || 30000);
+
+await mkdir(artifactsDir, { recursive: true });
+
+const logStream = createWriteStream(logPath, { flags: "a" });
+
+function writeLine(line) {
+ console.log(line);
+ logStream.write(`${line}\n`);
+}
+
+function log(message, details) {
+ if (details === undefined) {
+ writeLine(`[monitor] ${message}`);
+ return;
+ }
+ writeLine(`[monitor] ${message} ${JSON.stringify(details)}`);
+}
+
+async function fetchJson(url, init = undefined) {
+ const response = await fetch(url, init);
+ if (!response.ok) {
+ throw new Error(`HTTP ${response.status} for ${url}`);
+ }
+ return response.json();
+}
+
+async function waitForDebugger() {
+ const deadline = Date.now() + requestTimeoutMs;
+ while (Date.now() < deadline) {
+ try {
+ return await fetchJson(`http://127.0.0.1:${port}/json/version`);
+ } catch {
+ await delay(250);
+ }
+ }
+ throw new Error("Timed out waiting for Chrome remote debugger");
+}
+
+async function waitForPageTarget() {
+ const deadline = Date.now() + requestTimeoutMs;
+ while (Date.now() < deadline) {
+ try {
+ const targets = await fetchJson(`http://127.0.0.1:${port}/json/list`);
+ const pageTarget = targets.find(target =>
+ target.type === "page" &&
+ typeof target.url === "string" &&
+ target.url.startsWith("http") &&
+ target.webSocketDebuggerUrl
+ );
+ if (pageTarget) {
+ return pageTarget;
+ }
+ } catch {
+ // Ignore transient startup failures while Chrome is coming up.
+ }
+ await delay(250);
+ }
+ throw new Error("Timed out waiting for initial Chrome page target");
+}
+
+function launchChrome() {
+ const args = [
+ `--remote-debugging-port=${port}`,
+ `--user-data-dir=${userDataDir}`,
+ "--no-first-run",
+ "--no-default-browser-check",
+ "--disable-default-apps",
+ "--disable-popup-blocking",
+ "--window-size=1440,1200",
+ navigationUrl,
+ ];
+
+ log("Launching Chrome", { chromePath, port, userDataDir, navigationUrl, logPath });
+
+ const child = spawn(chromePath, args, {
+ detached: false,
+ stdio: ["ignore", "pipe", "pipe"],
+ });
+
+ child.stdout.on("data", chunk => {
+ const text = chunk.toString().trim();
+ if (text) {
+ writeLine(`[chrome] ${text}`);
+ }
+ });
+
+ child.stderr.on("data", chunk => {
+ const text = chunk.toString().trim();
+ if (text) {
+ writeLine(`[chrome] ${text}`);
+ }
+ });
+
+ return child;
+}
+
+class CDPClient {
+ constructor(socketUrl) {
+ this.socketUrl = socketUrl;
+ this.ws = new WebSocket(socketUrl);
+ this.nextId = 1;
+ this.pending = new Map();
+ this.eventHandlers = new Map();
+ this.openPromise = new Promise((resolve, reject) => {
+ this.ws.addEventListener("open", () => resolve());
+ this.ws.addEventListener("error", event => reject(event.error || new Error("WebSocket open failed")));
+ });
+
+ this.ws.addEventListener("message", event => {
+ const message = JSON.parse(event.data.toString());
+ if (message.id) {
+ const pending = this.pending.get(message.id);
+ if (!pending) {
+ return;
+ }
+ this.pending.delete(message.id);
+ if (message.error) {
+ pending.reject(new Error(message.error.message || JSON.stringify(message.error)));
+ } else {
+ pending.resolve(message.result);
+ }
+ return;
+ }
+
+ const handlers = this.eventHandlers.get(message.method) || [];
+ for (const handler of handlers) {
+ handler(message.params || {});
+ }
+ });
+ }
+
+ async ready() {
+ await this.openPromise;
+ }
+
+ async send(method, params = {}) {
+ await this.ready();
+ const id = this.nextId++;
+ const payload = JSON.stringify({ id, method, params });
+ const promise = new Promise((resolve, reject) => {
+ this.pending.set(id, { resolve, reject });
+ setTimeout(() => {
+ if (this.pending.has(id)) {
+ this.pending.delete(id);
+ reject(new Error(`Timed out waiting for ${method}`));
+ }
+ }, requestTimeoutMs);
+ });
+
+ this.ws.send(payload);
+ return promise;
+ }
+
+ on(method, handler) {
+ const handlers = this.eventHandlers.get(method) || [];
+ handlers.push(handler);
+ this.eventHandlers.set(method, handlers);
+ }
+
+ async close() {
+ if (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING) {
+ this.ws.close();
+ }
+ }
+}
+
+let shuttingDown = false;
+
+async function main() {
+ const chrome = launchChrome();
+ let cdp;
+
+ const shutdown = async signal => {
+ if (shuttingDown) {
+ return;
+ }
+ shuttingDown = true;
+ log("Shutting down", { signal });
+ if (cdp) {
+ await cdp.close();
+ }
+ chrome.kill("SIGTERM");
+ await delay(500);
+ await rm(userDataDir, { recursive: true, force: true });
+ logStream.end();
+ process.exit(0);
+ };
+
+ process.on("SIGINT", shutdown);
+ process.on("SIGTERM", shutdown);
+
+ try {
+ await waitForDebugger();
+ const target = await waitForPageTarget();
+ cdp = new CDPClient(target.webSocketDebuggerUrl);
+ await cdp.ready();
+
+ log("Attached to page target", { id: target.id, url: target.url });
+ log("Manual monitor ready", { instructions: "Drive the JSX page in Chrome. All api.jsx.com traffic will stream here." });
+
+ const responseMetaByRequestId = new Map();
+
+ cdp.on("Page.frameNavigated", params => {
+ const url = params.frame?.url;
+ if (url) {
+ log("Page navigated", { url });
+ }
+ });
+
+ cdp.on("Network.requestWillBeSent", params => {
+ const url = params.request?.url || "";
+ if (!url.includes("api.jsx.com")) {
+ return;
+ }
+ const record = {
+ stage: "request",
+ type: params.type || "",
+ method: params.request?.method || "",
+ url,
+ postData: params.request?.postData || "",
+ hasAuthHeader: Boolean(params.request?.headers?.Authorization),
+ };
+ writeLine(JSON.stringify(record));
+ });
+
+ cdp.on("Network.responseReceived", params => {
+ const url = params.response?.url || "";
+ if (!url.includes("api.jsx.com")) {
+ return;
+ }
+ const record = {
+ stage: "response",
+ type: params.type || "",
+ status: params.response?.status || 0,
+ mimeType: params.response?.mimeType || "",
+ url,
+ };
+ responseMetaByRequestId.set(params.requestId, record);
+ writeLine(JSON.stringify(record));
+ });
+
+ cdp.on("Network.loadingFinished", async params => {
+ const meta = responseMetaByRequestId.get(params.requestId);
+ if (!meta || !meta.url.includes("api.jsx.com")) {
+ return;
+ }
+ try {
+ const body = await cdp.send("Network.getResponseBody", { requestId: params.requestId });
+ writeLine(JSON.stringify({
+ stage: "body",
+ status: meta.status,
+ url: meta.url,
+ bodySnippet: (body.body || "").slice(0, 4000),
+ base64Encoded: Boolean(body.base64Encoded),
+ }));
+ } catch (error) {
+ writeLine(JSON.stringify({
+ stage: "body-error",
+ url: meta.url,
+ error: error.message,
+ }));
+ }
+ });
+
+ await cdp.send("Page.enable");
+ await cdp.send("Runtime.enable");
+ await cdp.send("Network.enable", {
+ maxTotalBufferSize: 100_000_000,
+ maxResourceBufferSize: 10_000_000,
+ maxPostDataSize: 1_000_000,
+ });
+ await cdp.send("Network.setCacheDisabled", { cacheDisabled: true });
+
+ await new Promise(() => {});
+ } catch (error) {
+ log("Monitor failed", { error: error.message });
+ await shutdown("error");
+ }
+}
+
+await main();
diff --git a/scripts/jsx_swift_smoke.swift b/scripts/jsx_swift_smoke.swift
new file mode 100644
index 0000000..79c9287
--- /dev/null
+++ b/scripts/jsx_swift_smoke.swift
@@ -0,0 +1,219 @@
+import AppKit
+import Darwin
+import Foundation
+import WebKit
+
+private func logSmoke(_ message: String) {
+ fputs("[JSX-SMOKE] \(message)\n", stderr)
+ fflush(stderr)
+}
+
+final class JSXSwiftSmokeApp: NSObject {
+ private let origin: String
+ private let destination: String
+ private let date: String
+ private let useService: Bool
+ private let flightNumber: String
+ private let departureTime: String?
+
+ var exitCode: Int32 = 1
+
+ init(
+ origin: String,
+ destination: String,
+ date: String,
+ useService: Bool,
+ flightNumber: String,
+ departureTime: String?
+ ) {
+ self.origin = origin
+ self.destination = destination
+ self.date = date
+ self.useService = useService
+ self.flightNumber = flightNumber
+ self.departureTime = departureTime
+ }
+
+ private func parsedDate() -> Date? {
+ let formatter = DateFormatter()
+ formatter.locale = Locale(identifier: "en_US_POSIX")
+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
+ formatter.dateFormat = "yyyy-MM-dd"
+ return formatter.date(from: date)
+ }
+
+ private func writeSummary(_ summary: [String: Any]) {
+ if JSONSerialization.isValidJSONObject(summary),
+ let data = try? JSONSerialization.data(withJSONObject: summary, options: [.prettyPrinted, .sortedKeys]),
+ let text = String(data: data, encoding: .utf8) {
+ print(text)
+ } else {
+ print("Failed to encode summary")
+ }
+ }
+
+ @MainActor
+ private func runFetcherMode() async {
+ logSmoke("starting fetcher \(origin)->\(destination) on \(date)")
+ let fetcher = JSXWebViewFetcher()
+ let result = await fetcher.fetchAvailability(
+ origin: origin,
+ destination: destination,
+ date: date
+ )
+ logSmoke("fetcher returned")
+
+ let flights = result.flights.map { flight in
+ [
+ "flightNumber": flight.flightNumber,
+ "origin": flight.origin,
+ "destination": flight.destination,
+ "departureLocal": flight.departureLocal,
+ "arrivalLocal": flight.arrivalLocal,
+ "stops": flight.stops,
+ "equipmentType": flight.equipmentType ?? "",
+ "totalAvailable": flight.totalAvailable,
+ "lowestFareTotal": flight.lowestFareTotal ?? NSNull(),
+ "classes": flight.classes.map { fareClass in
+ [
+ "classOfService": fareClass.classOfService,
+ "productClass": fareClass.productClass,
+ "availableCount": fareClass.availableCount,
+ "fareTotal": fareClass.fareTotal,
+ "revenueTotal": fareClass.revenueTotal,
+ "fareBasisCode": fareClass.fareBasisCode ?? NSNull()
+ ]
+ }
+ ] as [String: Any]
+ }
+
+ var summary: [String: Any] = [
+ "mode": "fetcher",
+ "origin": origin,
+ "destination": destination,
+ "date": date,
+ "flightCount": result.flights.count,
+ "rawSearchBodyLength": result.rawSearchBody?.count ?? 0,
+ "error": result.error ?? NSNull(),
+ "flights": flights
+ ]
+
+ if let lowFare = result.lowFareFallback {
+ summary["lowFareFallback"] = [
+ "date": lowFare.date,
+ "available": lowFare.available,
+ "lowestPrice": lowFare.lowestPrice as Any? ?? NSNull()
+ ]
+ }
+
+ writeSummary(summary)
+
+ // Verification requires true per-flight data, not only the route-level fallback.
+ exitCode = (result.error == nil && !result.flights.isEmpty) ? 0 : 1
+ }
+
+ @MainActor
+ private func runServiceMode() async {
+ logSmoke("starting service \(flightNumber) \(origin)->\(destination) on \(date)"
+ + (departureTime.map { " @ \($0)" } ?? ""))
+ guard let queryDate = parsedDate() else {
+ writeSummary([
+ "mode": "service",
+ "error": "invalid date \(date)"
+ ])
+ exitCode = 1
+ return
+ }
+
+ let service = AirlineLoadService()
+ let result = await service.fetchLoad(
+ airlineCode: "XE",
+ flightNumber: flightNumber,
+ date: queryDate,
+ origin: origin,
+ destination: destination,
+ departureTime: departureTime
+ )
+ logSmoke("service returned")
+
+ let cabins = result?.cabins.map { cabin in
+ [
+ "name": cabin.name,
+ "capacity": cabin.capacity,
+ "booked": cabin.booked,
+ "available": cabin.available,
+ "revenueStandby": cabin.revenueStandby,
+ "nonRevStandby": cabin.nonRevStandby,
+ "waitListCount": cabin.waitListCount,
+ "jumpSeat": cabin.jumpSeat
+ ]
+ } ?? []
+
+ let summary: [String: Any] = [
+ "mode": "service",
+ "queryFlightNumber": flightNumber,
+ "queryDepartureTime": departureTime ?? NSNull(),
+ "origin": origin,
+ "destination": destination,
+ "date": date,
+ "result": result.map { load in
+ [
+ "airlineCode": load.airlineCode,
+ "flightNumber": load.flightNumber,
+ "totalAvailable": load.totalAvailable,
+ "totalCapacity": load.totalCapacity,
+ "cabins": cabins
+ ] as [String: Any]
+ } ?? NSNull()
+ ]
+
+ writeSummary(summary)
+
+ let isPerFlightCabin = cabins.contains { ($0["name"] as? String) == "Cabin" }
+ exitCode = (result != nil && isPerFlightCabin) ? 0 : 1
+ }
+
+ @MainActor
+ func start() async {
+ if useService {
+ await runServiceMode()
+ } else {
+ await runFetcherMode()
+ }
+ NSApp.terminate(nil)
+ }
+}
+
+@main
+struct JSXSwiftSmokeMain {
+ static func main() {
+ let env = ProcessInfo.processInfo.environment
+ let origin = (env["JSX_ORIGIN"] ?? "DAL").uppercased()
+ let destination = (env["JSX_DESTINATION"] ?? "HOU").uppercased()
+ let date = env["JSX_DATE"] ?? "2026-04-15"
+ let useService = env["JSX_USE_SERVICE"] == "1"
+ let flightNumber = env["JSX_FLIGHT_NUMBER"] ?? "XE280"
+ let departureTime = env["JSX_DEPARTURE_TIME"]
+
+ let app = NSApplication.shared
+ let delegate = JSXSwiftSmokeApp(
+ origin: origin,
+ destination: destination,
+ date: date,
+ useService: useService,
+ flightNumber: flightNumber,
+ departureTime: departureTime
+ )
+ logSmoke("booting app")
+ app.setActivationPolicy(.prohibited)
+ Timer.scheduledTimer(withTimeInterval: 120, repeats: false) { _ in
+ logSmoke("timeout after 120s")
+ NSApp.terminate(nil)
+ }
+ Task { @MainActor in
+ await delegate.start()
+ }
+ app.run()
+ exit(delegate.exitCode)
+ }
+}