+
+ >
+ );
+}
+```
+
+### Key Features
+
+1. **Portal-Based Rendering**: Uses React Portals to render content in the side panel
+2. **State Management**: Centralized state for open/closed artifacts
+3. **Context Sharing**: Artifacts can share context data for complex interactions
+4. **Responsive Design**: Side panel adapts to screen size (min-width: 30vw)
+5. **Clean Lifecycle**: Automatic cleanup when artifacts are unmounted
+
+## Existing UI Components
+
+The system leverages a comprehensive set of UI components built with shadcn/ui:
+
+### Core UI Components (`src/components/ui/`)
+
+1. **Avatar** (`avatar.tsx`)
+ - Avatar root container with rounded styling
+ - AvatarImage for profile pictures
+ - AvatarFallback for placeholder content
+
+2. **Button** (`button.tsx`)
+ - Multiple variants: default, destructive, outline, secondary, ghost, link
+ - Size variants: default, sm, lg, icon
+ - Built with Radix UI Slot for composition
+
+3. **Card** (`card.tsx`)
+ - Card container with shadow and border
+ - CardHeader, CardTitle, CardDescription
+ - CardContent, CardFooter for structured layouts
+
+4. **Input** (`input.tsx`)
+ - Styled text input with focus states
+ - File input support
+ - Validation state styling (aria-invalid)
+
+5. **Label** (`label.tsx`)
+ - Form labels with proper accessibility
+ - Built with Radix UI Label primitive
+
+6. **Separator** (`separator.tsx`)
+ - Horizontal/vertical dividers
+ - Built with Radix UI Separator
+
+7. **Sheet** (`sheet.tsx`)
+ - Slide-out panels and drawers
+ - Built with Radix UI Dialog
+
+8. **Skeleton** (`skeleton.tsx`)
+ - Loading state placeholders
+ - Animated shimmer effect
+
+9. **Sonner** (`sonner.tsx`)
+ - Toast notifications
+ - Theme-aware styling
+
+10. **Switch** (`switch.tsx`)
+ - Toggle switches
+ - Built with Radix UI Switch
+
+11. **Textarea** (`textarea.tsx`)
+ - Multi-line text input
+ - Auto-sizing support
+
+12. **Tooltip** (`tooltip.tsx`)
+ - Hover/focus tooltips
+ - Built with Radix UI Tooltip
+
+### Specialized Components
+
+1. **Thread Components**
+ - Message rendering (AI, Human, Tool calls)
+ - Markdown text rendering with syntax highlighting
+ - File upload and multimodal content preview
+ - Agent inbox for interrupts and interactions
+
+2. **Icon Components**
+ - GitHub and LangGraph branded icons
+ - Lucide React icon library integration
+
+## Technical Implementation Details
+
+### Context Architecture
+```tsx
+const ArtifactSlotContext = createContext<{
+ open: [string | null, Setter];
+ mounted: [string | null, Setter];
+ title: [HTMLElement | null, Setter];
+ content: [HTMLElement | null, Setter];
+ context: [Record, Setter>];
+}>(null!);
+```
+
+### Portal System
+- Uses `createPortal` to render artifact content in designated DOM locations
+- Maintains separation between artifact logic and presentation
+- Enables flexible layout without prop drilling
+
+### State Management
+- Single artifact open at a time (managed by artifact ID)
+- Automatic cleanup when artifacts become empty
+- Context preservation for complex artifact interactions
+
+## Benefits
+
+1. **Separation of Concerns**: Artifacts are self-contained with their own logic
+2. **Flexible Rendering**: Portal system allows rendering anywhere in the DOM
+3. **Rich Interactions**: Support for complex UI components and interactions
+4. **Responsive Design**: Adapts to different screen sizes
+5. **Developer Experience**: Simple hook-based API for artifact creation
+6. **Performance**: Efficient mounting/unmounting with proper cleanup
+
+## Future Considerations
+
+1. **Multiple Artifacts**: Currently supports one open artifact at a time
+2. **Artifact Persistence**: Context sharing enables stateful artifacts
+3. **Animation Support**: Could be enhanced with transition animations
+4. **Mobile Optimization**: Side panel behavior on mobile devices
+5. **Accessibility**: Ensure proper ARIA labels and keyboard navigation
+
+This artifact system provides a robust foundation for creating rich, interactive AI agent interfaces that go beyond traditional chat experiences.
diff --git a/CODEBASE_OVERVIEW.md b/CODEBASE_OVERVIEW.md
new file mode 100644
index 00000000..eb4b7cb1
--- /dev/null
+++ b/CODEBASE_OVERVIEW.md
@@ -0,0 +1,246 @@
+# Agent Chat UI - Codebase Overview
+
+## Project Overview
+
+**Agent Chat UI** is a Next.js-based web application that provides a modern chat interface for interacting with LangGraph servers. It enables users to chat with AI agents through a clean, responsive UI that supports real-time streaming, file uploads, artifacts rendering, and comprehensive message handling.
+
+### Main Purpose
+- Provide a universal chat interface for any LangGraph server with a `messages` key
+- Support both local development and production deployments
+- Enable real-time streaming conversations with AI agents
+- Handle multimodal inputs (text, images, PDFs)
+- Render artifacts and custom UI components
+
+### Target Users
+- Developers building LangGraph applications
+- Teams deploying AI agents in production
+- Users wanting to interact with LangGraph servers through a web interface
+
+## Architecture
+
+The application follows a modern React architecture with Next.js App Router, utilizing a provider pattern for state management and context sharing.
+
+### High-Level System Design
+```
+┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
+│ Next.js App │────│ API Passthrough │────│ LangGraph Server│
+│ (Frontend) │ │ (Middleware) │ │ (Backend) │
+└─────────────────┘ └──────────────────┘ └─────────────────┘
+```
+
+### Main Components
+1. **Stream Provider**: Manages real-time communication with LangGraph servers
+2. **Thread Provider**: Handles thread/conversation management
+3. **Thread Component**: Main chat interface with message rendering
+4. **Artifact System**: Renders custom UI components and artifacts
+5. **API Passthrough**: Proxy layer for production deployments
+
+## Technology Stack
+
+### Core Technologies
+- **Next.js 15.2.3**: React framework with App Router
+- **React 19**: UI library with latest features
+- **TypeScript**: Type-safe development
+- **Tailwind CSS 4.0**: Utility-first styling
+
+### Key Libraries
+- **@langchain/langgraph-sdk**: LangGraph integration and streaming
+- **@radix-ui**: Accessible UI components
+- **framer-motion**: Animations and transitions
+- **react-markdown**: Markdown rendering with syntax highlighting
+- **nuqs**: URL state management
+- **sonner**: Toast notifications
+- **uuid**: Unique identifier generation
+- **zod**: Schema validation
+
+### Development Tools
+- **ESLint**: Code linting
+- **Prettier**: Code formatting
+- **pnpm**: Package management
+- **TypeScript**: Static type checking
+
+## Directory Structure
+
+```
+src/
+├── app/ # Next.js App Router
+│ ├── api/ # API routes (passthrough)
+│ ├── layout.tsx # Root layout
+│ └── page.tsx # Main page component
+├── components/ # React components
+│ ├── thread/ # Chat interface components
+│ │ ├── messages/ # Message type components
+│ │ ├── agent-inbox/ # Agent inbox functionality
+│ │ └── artifact.tsx # Artifact rendering
+│ ├── ui/ # Reusable UI components
+│ └── icons/ # SVG icon components
+├── hooks/ # Custom React hooks
+├── lib/ # Utility functions
+├── providers/ # React context providers
+└── globals.css # Global styles
+```
+
+## Key Components
+
+### Stream Provider (`src/providers/Stream.tsx`)
+- **Purpose**: Manages WebSocket connections to LangGraph servers
+- **Responsibilities**:
+ - Handle authentication and configuration
+ - Manage real-time message streaming
+ - Provide setup form for server connection
+ - Error handling and connection status
+
+### Thread Provider (`src/providers/Thread.tsx`)
+- **Purpose**: Manages conversation threads
+- **Responsibilities**:
+ - Fetch and manage thread lists
+ - Handle thread creation and switching
+ - Provide thread metadata and search
+
+### Thread Component (`src/components/thread/index.tsx`)
+- **Purpose**: Main chat interface
+- **Responsibilities**:
+ - Render message history
+ - Handle user input and file uploads
+ - Manage UI state (sidebar, settings)
+ - Coordinate message rendering
+
+### Message Components (`src/components/thread/messages/`)
+- **AI Messages**: Render assistant responses with tool calls
+- **Human Messages**: Display user inputs with multimodal content
+- **Tool Calls**: Handle function calls and responses
+- **Interrupts**: Manage agent interruptions and user interactions
+
+### Artifact System (`src/components/thread/artifact.tsx`)
+- **Purpose**: Render custom UI components and artifacts
+- **Features**: Side panel rendering, context management, dynamic loading
+
+## Data Flow
+
+### Message Flow
+1. **User Input** → Thread Component → Stream Provider → LangGraph Server
+2. **Server Response** → Stream Provider → Message Components → UI Rendering
+3. **Real-time Updates** → WebSocket → Stream Context → Component Re-renders
+
+### Authentication Flow
+1. **Setup Form** → User credentials → Local storage/URL params
+2. **API Requests** → Headers with API key → LangGraph server
+3. **Production** → API Passthrough → Server-side authentication
+
+### File Upload Flow
+1. **File Selection** → useFileUpload hook → Base64 conversion
+2. **Content Blocks** → Message payload → LangGraph processing
+3. **Multimodal Response** → Rendered in message components
+
+## Configuration
+
+### Environment Variables
+```bash
+# Development (local LangGraph server)
+NEXT_PUBLIC_API_URL=http://localhost:2024
+NEXT_PUBLIC_ASSISTANT_ID=agent
+
+# Production (API Passthrough)
+LANGGRAPH_API_URL=https://your-deployment.langgraph.app
+NEXT_PUBLIC_API_URL=https://your-site.com/api
+LANGSMITH_API_KEY=lsv2_...
+```
+
+### Setup Requirements
+1. **Node.js**: Version 18+ required
+2. **Package Manager**: pnpm recommended
+3. **LangGraph Server**: Running server with `messages` key support
+4. **API Key**: LangSmith API key for production deployments
+
+## Entry Points
+
+### Application Startup
+1. **Root Layout** (`app/layout.tsx`): Sets up HTML structure and fonts
+2. **Main Page** (`app/page.tsx`): Initializes providers and main component
+3. **Provider Chain**: ThreadProvider → StreamProvider → ArtifactProvider → Thread
+
+### Initialization Process
+1. **Environment Check**: Validate configuration variables
+2. **Setup Form**: Display if configuration missing
+3. **Connection**: Establish WebSocket to LangGraph server
+4. **Thread Loading**: Fetch existing conversations
+5. **UI Ready**: Enable user interaction
+
+## Dependencies
+
+### Core Dependencies
+- **@langchain/langgraph-sdk**: LangGraph integration and streaming capabilities
+- **langgraph-nextjs-api-passthrough**: Production API proxy functionality
+- **next-themes**: Dark/light mode support
+- **use-stick-to-bottom**: Auto-scroll chat behavior
+
+### UI Dependencies
+- **@radix-ui/***: Accessible component primitives
+- **lucide-react**: Icon library
+- **react-syntax-highlighter**: Code highlighting
+- **katex**: Mathematical notation rendering
+
+### Utility Dependencies
+- **lodash**: Utility functions
+- **date-fns**: Date manipulation
+- **clsx + tailwind-merge**: Conditional styling
+
+## Build/Deployment
+
+### Development
+```bash
+pnpm install # Install dependencies
+pnpm dev # Start development server
+```
+
+### Production Build
+```bash
+pnpm build # Build for production
+pnpm start # Start production server
+```
+
+### Deployment Options
+1. **Vercel**: Recommended platform (zero-config)
+2. **Docker**: Containerized deployment
+3. **Static Export**: For CDN deployment
+4. **Self-hosted**: Node.js server deployment
+
+### Environment Setup
+1. Copy `.env.example` to `.env`
+2. Configure LangGraph server URL and credentials
+3. Set up API passthrough for production
+4. Deploy with proper environment variables
+
+### Testing
+- **Linting**: `pnpm lint` - ESLint code quality checks
+- **Formatting**: `pnpm format` - Prettier code formatting
+- **Type Checking**: Built into Next.js build process
+
+## Key Features
+
+### Real-time Streaming
+- WebSocket-based communication with LangGraph servers
+- Live message updates and typing indicators
+- Automatic reconnection and error handling
+
+### Multimodal Support
+- Image uploads (JPEG, PNG, GIF, WebP)
+- PDF document processing
+- Drag-and-drop file handling
+- Content block preview system
+
+### Artifact Rendering
+- Custom UI component rendering in side panel
+- Dynamic component loading from server responses
+- Context-aware artifact management
+
+### Thread Management
+- Multiple conversation support
+- Thread history and switching
+- Persistent conversation state
+
+### Production Ready
+- API passthrough for secure deployments
+- Custom authentication support
+- Environment-based configuration
+- Error handling and monitoring
diff --git a/NON_AGENT_FLOW_WIDGET_README.md b/NON_AGENT_FLOW_WIDGET_README.md
new file mode 100644
index 00000000..f2cec4f9
--- /dev/null
+++ b/NON_AGENT_FLOW_WIDGET_README.md
@@ -0,0 +1,329 @@
+# NonAgentFlowWidget Documentation
+
+## Overview
+
+The `NonAgentFlowWidget` is a specialized widget designed to handle the complete payment flow for flight bookings without requiring agent intervention. It automatically opens as a bottom sheet and guides users through the payment process.
+
+## Flow Description
+
+The widget follows this exact flow:
+
+1. **Interrupt Trigger**: Server sends `NonAgentFlowWidget` interrupt
+2. **Bottom Sheet Opens**: Widget automatically opens as a bottom sheet with loader
+3. **PrePayment API**: Triggers the prePayment API with the provided `tripId`
+4. **Razorpay Integration**: Based on prePayment response, opens Razorpay payment gateway
+5. **Transaction Verification**: After payment completion, triggers verifyTransaction API
+6. **Status Display**: Shows payment and booking status to the user
+
+## Usage
+
+### Server-Side Interrupt
+
+```typescript
+const result = interrupt({
+ value: {
+ interrupt_id: "payment-flow-id",
+ type: "NonAgentFlowWidget",
+ args: {
+ tripId: "Tswodli37",
+ flightItinerary: {
+ userContext: {
+ userDetails:
+ state.allTravellers.find(
+ (traveller) => traveller.isPrimaryTraveller,
+ ) || null,
+ userId: state.userId,
+ },
+ selectionContext: {
+ selectedFlightOffers: state.flightOffers.filter(
+ (flightOffer) =>
+ state.selectedFlightOfferId === flightOffer.flightOfferId,
+ ),
+ },
+ },
+ itinId: state.itinId,
+ },
+ },
+});
+```
+
+### Client-Side Direct Usage
+
+```typescript
+import NonAgentFlowWidget from "@/components/widgets/non-agent-flow.widget";
+
+ {
+ console.log("Payment successful:", response);
+ }}
+ onPaymentFailure={(error) => {
+ console.error("Payment failed:", error);
+ }}
+ onClose={() => {
+ // Handle widget close
+ }}
+/>
+```
+
+## Props Interface
+
+```typescript
+interface NonAgentFlowWidgetProps {
+ tripId: string; // Required: The trip ID for payment
+ flightItinerary?: {
+ userContext: {
+ userDetails: any; // Primary traveler details
+ userId: string; // User ID
+ };
+ selectionContext: {
+ selectedFlightOffers: any[]; // Selected flight offers
+ };
+ };
+ itinId?: string; // Optional: Itinerary ID
+ apiData?: any; // Internal: Used when called from interrupt handler
+ onClose?: () => void; // Optional: Callback when widget closes
+ onPaymentSuccess?: (response: TransactionVerifyResponse) => void; // Optional: Payment success callback
+ onPaymentFailure?: (error: string) => void; // Optional: Payment failure callback
+}
+```
+
+## API Integration
+
+### 1. PrePayment API
+
+**Endpoint**: `POST /api/payment/prepayment/[tripId]`
+
+**Purpose**: Initiates payment and returns Razorpay configuration
+
+**Response**:
+
+```typescript
+{
+ success: boolean;
+ message: string;
+ data: {
+ transaction: {
+ transaction_id: string;
+ reference_id: string;
+ razorpay_order_id: string;
+ amount: number;
+ currency: string;
+ key: string;
+ name: string;
+ description: string;
+ }
+ }
+}
+```
+
+### 2. Transaction Verify API
+
+**Endpoint**: `POST /api/payment/verify`
+
+**Purpose**: Verifies payment and executes booking
+
+**Request**:
+
+```typescript
+{
+ tripId: string;
+ transaction_id: string;
+ razorpay_payment_id: string;
+ razorpay_signature: string;
+ razorpay_order_id: string;
+}
+```
+
+**Response**:
+
+```typescript
+{
+ success: boolean;
+ data: {
+ paymentStatus: "SUCCESS" | "FAILED" | "PENDING";
+ bookingStatus: "SUCCESS" | "FAILED" | "PENDING";
+ bookingError?: string;
+ };
+}
+```
+
+## UI States
+
+### 1. Loading State
+
+- Shows spinner with "Preparing Payment" message
+- Displays while calling prePayment API
+
+### 2. Processing State
+
+- Shows "Processing Payment" with spinner
+- Displays while Razorpay payment is active
+
+### 3. Success State
+
+- Shows green checkmark and success message
+- Displays payment and booking status
+- Shows transaction details
+
+### 4. Failed State
+
+- Shows red X and error message
+- Provides retry and cancel options
+- Displays specific error details
+
+## Features
+
+### Automatic Flow
+
+- No user interaction required to start payment
+- Automatically opens Razorpay payment gateway
+- Seamless transition between API calls
+
+### Reopen Button
+
+- Hover button appears on main chat screen if widget is closed
+- Allows users to reopen the payment widget if accidentally closed
+- Shows trip ID and booking information in tooltip
+- Positioned in bottom-right corner for easy access
+
+### Error Handling
+
+- Comprehensive error handling for all API calls
+- User-friendly error messages
+- Retry functionality for failed payments
+
+### Status Tracking
+
+- Real-time payment status updates
+- Booking status verification
+- Detailed transaction information display
+
+### Responsive Design
+
+- Bottom sheet layout for mobile and desktop
+- Responsive UI components
+- Touch-friendly interface
+
+## Testing
+
+### Test Page
+
+Visit `/non-agent-flow-test` to test the widget with sample data.
+
+### Manual Testing Steps
+
+1. Set a valid `tripId`
+2. Trigger the widget
+3. Verify prePayment API call
+4. Complete Razorpay payment
+5. Verify transaction verification
+6. Check status display
+
+## Integration with Existing System
+
+### Component Map
+
+The widget is registered in `src/components/widgets/index.ts`:
+
+```typescript
+export const componentMap = {
+ // ... other widgets
+ NonAgentFlowWidget, /// Non-agent flow payment widget with bottom sheet
+} as const;
+```
+
+### Interrupt Handler
+
+The widget is handled in `src/components/thread/messages/generic-interrupt.tsx`:
+
+```typescript
+// For NonAgentFlowWidget, render in bottom sheet
+if (interrupt.value.widget.type === "NonAgentFlowWidget") {
+ return (
+
+ );
+}
+```
+
+## Security Considerations
+
+### Authentication
+
+- All API calls require valid JWT token
+- Token validation on both client and server side
+
+### Payment Security
+
+- Razorpay signature verification
+- Secure handling of payment data
+- PCI compliance considerations
+
+### Data Validation
+
+- Input validation for all parameters
+- Sanitization of user inputs
+- Protection against injection attacks
+
+## Troubleshooting
+
+### Common Issues
+
+1. **Authentication Failed**
+ - Ensure JWT token is valid
+ - Check token expiration
+ - Verify token storage
+
+2. **PrePayment API Failed**
+ - Verify tripId is valid
+ - Check API base URL configuration
+ - Review server logs
+
+3. **Razorpay Not Loading**
+ - Check internet connection
+ - Verify Razorpay script loading
+ - Check browser console for errors
+
+4. **Transaction Verification Failed**
+ - Ensure all required parameters are provided
+ - Check Razorpay signature validity
+ - Verify transaction ID format
+
+### Debug Mode
+
+Enable debug logging by checking browser console for detailed logs.
+
+## Future Enhancements
+
+### Planned Features
+
+- Payment method selection
+- Saved payment methods
+- Subscription payments
+- Refund handling
+- Multi-currency support
+
+### Performance Optimizations
+
+- Request caching
+- Connection pooling
+- Response compression
+- CDN integration
+
+---
+
+**Last Updated**: December 2024
+**Version**: 1.0.0
diff --git a/ONBOARDING_ANALYTICS_EVENTS.md b/ONBOARDING_ANALYTICS_EVENTS.md
new file mode 100644
index 00000000..e445dfc3
--- /dev/null
+++ b/ONBOARDING_ANALYTICS_EVENTS.md
@@ -0,0 +1,268 @@
+# Onboarding Flow Analytics Events
+
+This document outlines all the analytics events implemented for the complete onboarding flow from login to chat screen.
+
+## Event Overview
+
+Total Events Implemented: **21 events** across **5 onboarding steps**
+
+## 1. Login Page Events (4 events)
+
+### `login_page_viewed`
+- **Trigger**: When user lands on `/login` page
+- **Category**: `onboarding`
+- **Parameters**:
+ - `page_path`: '/login'
+ - `step`: 1
+ - `step_name`: 'login'
+
+### `google_login_clicked`
+- **Trigger**: When user clicks "Continue with Google" button
+- **Category**: `onboarding`
+- **Parameters**:
+ - `login_method`: 'google_oauth'
+ - `step`: 1
+ - `step_name`: 'login'
+
+### `login_success`
+- **Trigger**: After successful Google OAuth authentication
+- **Category**: `onboarding`
+- **Parameters**:
+ - `login_method`: 'google_oauth'
+ - `is_new_user`: boolean
+ - `step`: 1
+ - `step_name`: 'login'
+ - `next_step`: 'profile_confirmation' | 'chat_screen'
+ - User properties: `userId`, `email`, `fullName`
+
+### `login_error`
+- **Trigger**: When login fails
+- **Category**: `onboarding`
+- **Parameters**:
+ - `login_method`: 'google_oauth'
+ - `error_message`: string
+ - `step`: 1
+ - `step_name`: 'login'
+
+## 2. Profile Confirmation Events (4 events)
+
+### `profile_confirmation_viewed`
+- **Trigger**: When new user lands on `/profile-confirmation` page
+- **Category**: `onboarding`
+- **Parameters**:
+ - `page_path`: '/profile-confirmation'
+ - `step`: 2
+ - `step_name`: 'profile_confirmation'
+ - User properties: `userId`, `email`, `fullName`
+
+### `profile_form_filled`
+- **Trigger**: When user fills any form field (firstName, lastName, mobileNumber)
+- **Category**: `onboarding`
+- **Parameters**:
+ - `field_name`: string
+ - `has_value`: boolean
+ - `step`: 2
+ - `step_name`: 'profile_confirmation'
+ - User properties: `userId`, `email`, `fullName`
+
+### `profile_confirmation_success`
+- **Trigger**: When profile update is successful
+- **Category**: `onboarding`
+- **Parameters**:
+ - `has_first_name`: boolean
+ - `has_last_name`: boolean
+ - `has_mobile_number`: boolean
+ - `country_code`: string
+ - `step`: 2
+ - `step_name`: 'profile_confirmation'
+ - `next_step`: 'personalize_travel'
+ - User properties: `userId`, `email`, `fullName`
+
+### `profile_confirmation_error`
+- **Trigger**: When profile update fails
+- **Category**: `onboarding`
+- **Parameters**:
+ - `error_message`: string
+ - `step`: 2
+ - `step_name`: 'profile_confirmation'
+ - User properties: `userId`, `email`, `fullName`
+
+## 3. Personalize Travel Assistant Events (5 events)
+
+### `personalize_page_viewed`
+- **Trigger**: When user lands on `/personalize-travel` page
+- **Category**: `onboarding`
+- **Parameters**:
+ - `page_path`: '/personalize-travel'
+ - `step`: 3
+ - `step_name`: 'personalize_travel'
+ - User properties: `userId`, `email`, `fullName`
+
+### `import_option_selected`
+- **Trigger**: When user selects "Import trips & loyalty programs" option
+- **Category**: `onboarding`
+- **Parameters**:
+ - `personalization_method`: 'import'
+ - `step`: 3
+ - `step_name`: 'personalize_travel'
+ - User properties: `userId`, `email`, `fullName`
+
+### `manual_option_selected`
+- **Trigger**: When user selects "Set up manually" option
+- **Category**: `onboarding`
+- **Parameters**:
+ - `personalization_method`: 'manual'
+ - `step`: 3
+ - `step_name`: 'personalize_travel'
+ - User properties: `userId`, `email`, `fullName`
+
+### `skip_personalization_clicked`
+- **Trigger**: When user clicks "Skip" button
+- **Category**: `onboarding`
+- **Parameters**:
+ - `personalization_method`: 'skipped'
+ - `step`: 3
+ - `step_name`: 'personalize_travel'
+ - `next_step`: 'chat_screen'
+ - User properties: `userId`, `email`, `fullName`
+
+### `personalize_continue_clicked`
+- **Trigger**: When user clicks "Continue" button
+- **Category**: `onboarding`
+- **Parameters**:
+ - `selected_option`: string
+ - `personalization_method`: string
+ - `step`: 3
+ - `step_name`: 'personalize_travel'
+ - `next_step`: 'onboarding_quiz' | 'gmail_integration'
+ - User properties: `userId`, `email`, `fullName`
+
+## 4. Onboarding Quiz Events (6 events)
+
+### `quiz_started`
+- **Trigger**: When user lands on `/onboarding-quiz` page
+- **Category**: `onboarding`
+- **Parameters**:
+ - `page_path`: '/onboarding-quiz'
+ - `step`: 4
+ - `step_name`: 'onboarding_quiz'
+ - `quiz_step`: 1
+ - `quiz_step_name`: 'personal_details'
+ - User properties: `userId`, `email`, `fullName`
+
+### `quiz_step_viewed`
+- **Trigger**: When user navigates to a new quiz step
+- **Category**: `onboarding`
+- **Parameters**:
+ - `step`: 4
+ - `step_name`: 'onboarding_quiz'
+ - `quiz_step`: number (1-3)
+ - `quiz_step_name`: 'personal_details' | 'travel_style' | 'preferences_loyalty'
+ - User properties: `userId`, `email`, `fullName`
+
+### `quiz_field_changed`
+- **Trigger**: When user fills any quiz field
+- **Category**: `onboarding`
+- **Parameters**:
+ - `field_name`: string
+ - `field_value`: string
+ - `has_value`: boolean
+ - `step`: 4
+ - `step_name`: 'onboarding_quiz'
+ - `quiz_step`: number
+ - User properties: `userId`, `email`, `fullName`
+
+### `quiz_step_completed`
+- **Trigger**: When user clicks "Next" button
+- **Category**: `onboarding`
+- **Parameters**:
+ - `step`: 4
+ - `step_name`: 'onboarding_quiz'
+ - `quiz_step`: number
+ - `quiz_step_name`: string
+ - `step_data`: JSON string of step data
+ - `next_quiz_step`: number
+ - User properties: `userId`, `email`, `fullName`
+
+### `quiz_back_clicked`
+- **Trigger**: When user clicks "Back" button
+- **Category**: `onboarding`
+- **Parameters**:
+ - `step`: 4
+ - `step_name`: 'onboarding_quiz'
+ - `quiz_step`: number
+ - `quiz_step_name`: string
+ - `previous_quiz_step`: number
+ - User properties: `userId`, `email`, `fullName`
+
+### `quiz_completed`
+- **Trigger**: When user completes all quiz steps
+- **Category**: `onboarding`
+- **Parameters**:
+ - `step`: 4
+ - `step_name`: 'onboarding_quiz'
+ - `gender`: string
+ - `has_date_of_birth`: boolean
+ - `has_passport`: string
+ - `travel_frequency`: string
+ - `travel_purposes`: string (comma-separated)
+ - `travel_companions`: string (comma-separated)
+ - `travel_purposes_count`: number
+ - `travel_companions_count`: number
+ - `loyalty_programs`: string (comma-separated)
+ - `loyalty_programs_count`: number
+ - `currency`: string
+ - `language`: string
+ - `next_step`: 'chat_screen'
+ - User properties: `userId`, `email`, `fullName`
+
+## 5. Onboarding Completion Events (2 events)
+
+### `onboarding_completed`
+- **Trigger**: When entire onboarding flow is completed
+- **Category**: `onboarding`
+- **Parameters**:
+ - `total_steps`: number
+ - `completed_steps`: string (comma-separated)
+ - `skipped_steps`: string (comma-separated)
+ - `completion_rate`: number (percentage)
+ - `time_spent`: number (seconds, optional)
+ - `final_step`: 'chat_screen'
+ - User properties: `userId`, `email`, `fullName`
+
+### `chat_screen_reached`
+- **Trigger**: When user reaches the main chat interface
+- **Category**: `onboarding`
+- **Parameters**:
+ - `source`: 'onboarding_complete' | 'existing_user' | 'skip_personalization'
+ - `page_path`: '/'
+ - `final_destination`: true
+ - User properties: `userId`, `email`, `fullName`
+
+## Implementation Details
+
+### User Properties
+All events automatically include user properties when available:
+- `userId`: User's unique identifier
+- `email`: User's email address
+- `fullName`: User's full name
+
+### Event Categories
+All onboarding events use the category `onboarding` for easy filtering in Google Analytics.
+
+### Error Handling
+All analytics functions include proper error handling and will not break the user experience if Google Analytics is unavailable.
+
+### Testing
+Events can be tested by:
+1. Opening browser developer console
+2. Navigating through the onboarding flow
+3. Checking console logs for "✅ [Event] tracked" messages
+4. Verifying events in Google Analytics Real-time reports
+
+## Files Modified
+- `src/services/analyticsService.ts` - Added all analytics functions
+- `src/components/auth/Login.tsx` - Added login events
+- `src/components/auth/ProfileConfirmation.tsx` - Added profile events
+- `src/components/auth/PersonalizeTravelAssistant.tsx` - Added personalization events
+- `src/components/auth/OnboardingQuiz.tsx` - Added quiz events
diff --git a/PASS_USERID_TO_LANGGRAPH.md b/PASS_USERID_TO_LANGGRAPH.md
new file mode 100644
index 00000000..75b620b4
--- /dev/null
+++ b/PASS_USERID_TO_LANGGRAPH.md
@@ -0,0 +1,88 @@
+# Passing `userId` to LangGraph Agent in This Project
+
+To pass a `userId` (e.g., `4345`) as part of the input to your LangGraph agent, you need to include it in the payload sent via the `submit` function. Below are the main places in the codebase where you should add this field, along with example code snippets.
+
+---
+
+## 1. Standard Message Submission (Main Chat Input)
+
+- **File:** `src/components/thread/index.tsx`
+- **Function:** `handleSubmit`
+- **Current code:**
+ ```js
+ stream.submit(
+ { messages: [...toolMessages, newHumanMessage], context },
+ { ... }
+ );
+ ```
+- **Update to:**
+ ```js
+ stream.submit(
+ { messages: [...toolMessages, newHumanMessage], context, userId: 4345 },
+ { ... }
+ );
+ ```
+
+---
+
+## 2. Human Message Edit (Edit Sent Message)
+
+- **File:** `src/components/thread/messages/human.tsx`
+- **Function:** `handleSubmitEdit`
+- **Current code:**
+ ```js
+ thread.submit(
+ { messages: [newMessage] },
+ { ... }
+ );
+ ```
+- **Update to:**
+ ```js
+ thread.submit(
+ { messages: [newMessage], userId: 4345 },
+ { ... }
+ );
+ ```
+
+---
+
+## 3. Agent-Inbox/Human Interrupt Actions (Accept/Edit/Response)
+
+- **File:** `src/components/thread/agent-inbox/hooks/use-interrupted-actions.tsx`
+- **Function:** `resumeRun`
+- **Current code:**
+ ```js
+ thread.submit(
+ {},
+ {
+ command: {
+ resume: response,
+ },
+ },
+ );
+ ```
+- **Update to:**
+ ```js
+ thread.submit(
+ { userId: 4345 },
+ {
+ command: {
+ resume: response,
+ },
+ },
+ );
+ ```
+
+---
+
+## Notes
+
+- If you want to make `userId` dynamic (not hardcoded), consider passing it from a context, environment variable, or user session.
+- This approach ensures that every interaction with the LangGraph agent includes the `userId` in the payload, allowing the backend to use it for personalization, logging, or other purposes.
+
+---
+
+**Summary:**
+
+- Add `userId: 4345` to the first argument of every `submit` call that sends input to the agent.
+- Adjust as needed for your application's requirements.
diff --git a/README.md b/README.md
index 6a0a74e3..a0aba08f 100644
--- a/README.md
+++ b/README.md
@@ -2,9 +2,34 @@
Agent Chat UI is a Next.js application which enables chatting with any LangGraph server with a `messages` key through a chat interface.
+## Key Features
+
+- **🔄 Real-time Streaming**: Live streaming of AI responses with typing indicators
+- **📁 Multimodal Support**: Upload and process images, PDFs, and other files
+- **🎛️ Interactive Widgets**: Custom UI components triggered by agent interrupts
+- **📋 Agent Inbox**: Human-in-the-loop workflows with review and approval capabilities
+- **🎨 Rich Markdown**: Enhanced markdown rendering with syntax highlighting and math support
+- **📱 Responsive Design**: Optimized for both desktop and mobile experiences
+- **🔧 Customizable**: Easy to extend with custom widgets and styling
+- **🚀 Production Ready**: Built-in authentication and deployment support
+
> [!NOTE]
> 🎥 Watch the video setup guide [here](https://youtu.be/lInrwVnZ83o).
+## Table of Contents
+
+- [Setup](#setup)
+- [Usage](#usage)
+- [Environment Variables](#environment-variables)
+- [Hiding Messages in the Chat](#hiding-messages-in-the-chat)
+- [Enhanced Markdown and Code Rendering](#enhanced-markdown-and-code-rendering)
+- [Multimodal Support](#multimodal-support)
+- [Interactive Widgets and Interrupts](#interactive-widgets-and-interrupts)
+- [Agent Inbox](#agent-inbox)
+- [Rendering Artifacts](#rendering-artifacts)
+- [Development and Customization](#development-and-customization)
+- [Going to Production](#going-to-production)
+
## Setup
> [!TIP]
@@ -123,6 +148,177 @@ return { messages: [result] };
This approach guarantees the message remains completely hidden from the user interface.
+## Enhanced Markdown and Code Rendering
+
+The Agent Chat UI provides rich markdown rendering with advanced features:
+
+### Markdown Features
+
+- **GitHub Flavored Markdown (GFM)**: Full support for tables, strikethrough, task lists, and more
+- **Math Rendering**: LaTeX math expressions using KaTeX
+- **Syntax Highlighting**: Code blocks with syntax highlighting for multiple languages
+- **Copy Code**: One-click copying of code blocks with a copy button
+- **Responsive Tables**: Tables that adapt to different screen sizes
+
+### Supported Languages
+
+The syntax highlighter supports popular programming languages including:
+
+- TypeScript/JavaScript (tsx, ts, js, jsx)
+- Python
+- Java
+- C/C++
+- Go
+- Rust
+- And many more
+
+### Code Block Features
+
+- **Language Detection**: Automatic language detection for syntax highlighting
+- **Dark Theme**: Professional dark theme for code blocks
+- **Line Numbers**: Optional line numbering for better readability
+- **Copy Functionality**: Easy copying of code snippets
+
+## Multimodal Support
+
+The Agent Chat UI supports multimodal conversations with file uploads and rich media handling:
+
+### Supported File Types
+
+- **Images**: JPEG, PNG, GIF, WebP
+- **Documents**: PDF files
+- **Future Support**: Video files (infrastructure ready)
+
+### Upload Methods
+
+1. **File Upload Button**: Click the "Upload PDF, Image, or Video" button to select files
+2. **Drag and Drop**: Drag files directly into the chat interface
+3. **Paste**: Paste images or files directly from your clipboard (Ctrl+V/Cmd+V)
+
+### Features
+
+- **Preview**: Visual previews of uploaded images and file icons for PDFs
+- **Duplicate Detection**: Prevents uploading the same file multiple times
+- **Error Handling**: Clear error messages for unsupported file types
+- **Removal**: Easy removal of uploaded files before sending
+- **Base64 Encoding**: Automatic conversion to base64 for LangGraph compatibility
+
+### Usage in Messages
+
+Uploaded files are automatically included in your messages to the LangGraph server as `Base64ContentBlock` objects, making them available for processing by your AI agents. Images can be analyzed, PDFs can be read and processed, enabling rich multimodal AI interactions.
+
+## Interactive Widgets and Interrupts
+
+The Agent Chat UI supports interactive widgets that can be triggered by your LangGraph server using interrupts. This allows your agent to pause execution and display custom UI components for user interaction.
+
+### Widget System
+
+The application includes several built-in widgets for common use cases:
+
+- **SearchCriteriaWidget**: For collecting search parameters and filters
+- **FlightOptionsWidget**: For displaying flight search results with booking options
+- **FlightStatusWidget**: For showing flight status information
+- **LoungeWidget**: For displaying airport lounge information
+- **WeatherWidget**: For showing weather information
+- **TravelerDetailsWidget**: For collecting traveler information and booking details
+- **NonAgentFlowWidget**: For handling payment flow with prePayment API, Razorpay integration, and transaction verification
+
+### Using Interrupts
+
+To trigger a widget from your LangGraph server, use the `interrupt()` function:
+
+```typescript
+// Server-side interrupt
+const result = interrupt({
+ value: {
+ interrupt_id: "unique-id-here",
+ type: "SearchCriteriaWidget",
+ searchCriteria: searchCriteria,
+ selectedTravellers: selectedTravellers,
+ },
+});
+
+// NonAgentFlowWidget example
+const result = interrupt({
+ value: {
+ interrupt_id: "payment-flow-id",
+ type: "NonAgentFlowWidget",
+ args: {
+ tripId: "Tswodli37",
+ flightItinerary: {
+ userContext: {
+ userDetails: primaryTraveller,
+ userId: userId,
+ },
+ selectionContext: {
+ selectedFlightOffers: selectedOffers,
+ },
+ },
+ itinId: "itin123",
+ },
+ },
+});
+```
+
+The client will automatically render the appropriate widget based on the `type` field and display it as a bottom sheet overlay with a close button.
+
+### Widget Features
+
+- **Bottom Sheet Display**: Widgets automatically render as overlay bottom sheets
+- **Responsive Design**: Two-column layout on desktop, single column on mobile
+- **Data Pre-filling**: Widgets can pre-fill forms with data from the interrupt
+- **Streaming Support**: Widgets can handle streamed API response data
+- **Interactive Forms**: Full form validation and submission capabilities
+
+For detailed documentation on handling interrupts, see the [interrupt documentation](documentation/interrupt.md).
+
+## Agent Inbox
+
+The Agent Chat UI includes an Agent Inbox feature for managing human-in-the-loop workflows. This allows agents to pause execution and wait for human review, approval, or input before continuing.
+
+### Features
+
+- **Thread Management**: View and manage multiple conversation threads
+- **Human Review**: Review agent responses before they are sent
+- **State Inspection**: View the current state of the agent's workflow
+- **Interrupt Handling**: Respond to agent interrupts with custom actions
+- **Status Tracking**: Monitor thread status (in-queue, processing, human-in-the-loop, done)
+
+### Usage
+
+The Agent Inbox automatically appears when your LangGraph server sends interrupts that require human intervention. Users can:
+
+1. **Review**: Examine the agent's proposed actions or responses
+2. **Edit**: Modify the agent's output before approval
+3. **Accept**: Approve the agent's actions to continue execution
+4. **Respond**: Provide additional input or instructions to the agent
+
+## Development and Customization
+
+### Custom Widgets
+
+You can create custom widgets for your specific use cases by:
+
+1. **Creating Widget Components**: Add new widget components in `src/components/widgets/`
+2. **Registering Widgets**: Update the `componentMap` in `src/components/widgets/index.ts`
+3. **Server Integration**: Use the interrupt system to trigger your custom widgets
+
+### Styling and Theming
+
+The application uses:
+
+- **Tailwind CSS**: For utility-first styling
+- **Shadcn/ui**: For consistent UI components
+- **Custom CSS**: For specialized styling needs
+- **Responsive Design**: Mobile-first approach with desktop enhancements
+
+### API Integration
+
+- **LangGraph SDK**: Built-in integration with LangGraph servers
+- **Streaming Support**: Real-time message streaming
+- **Error Handling**: Comprehensive error handling and user feedback
+- **Authentication**: Support for both development and production authentication methods
+
## Rendering Artifacts
The Agent Chat UI supports rendering artifacts in the chat. Artifacts are rendered in a side panel to the right of the chat. To render an artifact, you can obtain the artifact context from the `thread.meta.artifact` field. Here's a sample utility hook for obtaining the artifact context:
@@ -177,7 +373,7 @@ export function Writer(props: {
-
{props.content}
+
{props.content}
>
);
diff --git a/SEO_DOCUMENTATION.md b/SEO_DOCUMENTATION.md
new file mode 100644
index 00000000..d55c2eb0
--- /dev/null
+++ b/SEO_DOCUMENTATION.md
@@ -0,0 +1,206 @@
+# Flyo SEO Implementation Documentation
+
+## Overview
+This document outlines the comprehensive SEO implementation for Flyo - Your personal travel assistant application. All SEO elements have been implemented following modern best practices for search engine optimization and AI agent visibility, with focus on English and Arabic-speaking users.
+
+## Implemented SEO Elements
+
+### 1. Page Titles ✅
+- **Root Layout**: Dynamic title template with "Flyo - Your personal travel assistant" branding
+- **Home Page** (`/`): "Flyo - Your personal travel assistant"
+- **English Page** (`/en`): "Flyo - Your personal travel assistant"
+- **Arabic Page** (`/ar`): "فلايو - مساعدك الشخصي للسفر"
+- **Login Page** (`/login`): "Sign In to Flyo - Your personal travel assistant"
+- **Onboarding Quiz** (`/onboarding-quiz`): "Travel Preferences Quiz - Personalize Your Flyo Experience"
+- **Personalize Travel** (`/personalize-travel`): "Personalize Your AI Travel Assistant - Flyo Setup"
+- **Profile Confirmation** (`/profile-confirmation`): "Confirm Your Profile - Complete Flyo Setup"
+- **404 Page** (`/not-found`): "Page Not Found - Flyo AI Travel Assistant"
+- **Development Pages**: Properly titled but excluded from indexing
+
+### 2. Meta Descriptions ✅
+All pages have comprehensive, keyword-rich meta descriptions that:
+- Stay within 150-160 character limit
+- Include primary keywords naturally
+- Provide clear value propositions
+- Are unique for each page
+
+### 3. Meta Keywords ✅
+Strategic keyword implementation including:
+- Primary: "personal travel assistant", "AI travel assistant", "flight booking", "conversational AI"
+- Secondary: "travel chatbot", "intelligent travel planning", "personalized recommendations"
+- Long-tail: "chat to book flights", "AI flight search", "smart travel assistant", "personal travel planner"
+- Language-specific: Arabic keywords for "مساعد السفر الشخصي" and related terms
+
+### 4. Open Graph Tags ✅
+Complete Open Graph implementation:
+- `og:title`, `og:description`, `og:url`, `og:type`
+- `og:image` (1200x630 recommended)
+- `og:site_name`, `og:locale`
+- Language-specific implementations for Arabic pages
+
+### 5. Twitter Cards ✅
+Twitter Card meta tags implemented:
+- `twitter:card` (summary_large_image)
+- `twitter:title`, `twitter:description`
+- `twitter:image`, `twitter:creator`
+
+### 6. Structured Data (JSON-LD) ✅
+Comprehensive structured data implementation:
+- **Organization Schema**: Company information, contact details, social profiles
+- **WebSite Schema**: Site information with search action
+- **WebApplication Schema**: App-specific details, features, pricing
+- **FAQ Schema**: Common questions and answers (ready for implementation)
+- **Breadcrumb Schema**: Navigation structure (utility function provided)
+
+### 7. XML Sitemap ✅
+Dynamic sitemap (`/sitemap.xml`) including:
+- All public pages with appropriate priorities
+- Change frequencies (daily for main pages, monthly for auth pages)
+- Last modified dates
+- Excludes development/testing pages
+
+### 8. Robots.txt ✅
+Comprehensive robots.txt (`/robots.txt`) with:
+- **Allowed paths**: Main pages, localized versions, auth flow
+- **Disallowed paths**: API routes, development pages, internal directories
+- **Special AI bot rules**: Specific rules for GPTBot, ChatGPT-User, Claude-Web
+- **Sitemap reference**: Points to XML sitemap
+
+### 9. PWA Manifest ✅
+Web App Manifest (`/manifest.json`) for:
+- Progressive Web App capabilities
+- Mobile app-like experience
+- Custom icons and shortcuts
+- Proper theming and display modes
+
+### 10. AI Agent Information ✅
+Comprehensive AI-friendly documentation (`/ai-info.json`):
+- Detailed application information
+- Feature descriptions and capabilities
+- User journey mapping
+- Technology stack details
+- SEO keywords and competitive advantages
+- Specific instructions for AI agents
+
+## File Structure
+
+```
+src/app/
+├── layout.tsx # Root layout with global SEO
+├── page.tsx # Main page
+├── sitemap.ts # Dynamic XML sitemap
+├── robots.ts # Dynamic robots.txt
+├── en/page.tsx # English localized page
+├── ar/page.tsx # Arabic localized page
+├── login/page.tsx # Authentication page
+├── onboarding-quiz/page.tsx # User onboarding
+├── personalize-travel/page.tsx # Travel personalization
+├── profile-confirmation/page.tsx # Profile setup
+├── widgets/page.tsx # Development showcase (no-index)
+├── analytics-test/page.tsx # Analytics testing (no-index)
+└── not-found.tsx # 404 error page
+
+src/components/seo/
+└── StructuredData.tsx # Structured data components
+
+public/
+├── manifest.json # PWA manifest
+├── ai-info.json # AI agent information
+├── favicon.svg # Site icon
+└── [SEO images] # og-image.png, twitter-image.png, etc.
+```
+
+## SEO Best Practices Implemented
+
+### Technical SEO
+- ✅ Proper HTML semantic structure
+- ✅ Meta viewport for mobile responsiveness
+- ✅ Language declarations (`lang` attribute)
+- ✅ Canonical URLs to prevent duplicate content
+- ✅ Proper heading hierarchy (H1, H2, H3)
+- ✅ Alt text for images (where applicable)
+- ✅ Fast loading times (Next.js optimization)
+
+### Content SEO
+- ✅ Unique, descriptive page titles
+- ✅ Compelling meta descriptions
+- ✅ Strategic keyword placement
+- ✅ Natural language optimization for AI
+- ✅ Multi-language support (English/Arabic)
+
+### Local & International SEO
+- ✅ `hreflang` attributes for language versions (English/Arabic)
+- ✅ Proper locale declarations (en_US, ar_SA)
+- ✅ Cultural adaptation for Arabic content with proper translations
+- ✅ RTL support for Arabic pages
+- ✅ Targeted keywords for both English and Arabic-speaking markets
+
+### AI & Voice Search Optimization
+- ✅ Conversational keyword targeting
+- ✅ Natural language patterns
+- ✅ FAQ-style content structure
+- ✅ AI agent-specific information file
+
+## Monitoring & Maintenance
+
+### Regular SEO Tasks
+1. **Monthly**: Review and update meta descriptions based on performance
+2. **Quarterly**: Analyze keyword rankings and adjust strategy
+3. **Bi-annually**: Update structured data and schema markup
+4. **As needed**: Add new pages to sitemap and update robots.txt
+
+### Key Metrics to Monitor
+- Organic search traffic and rankings
+- Click-through rates from search results
+- Core Web Vitals scores
+- Mobile usability metrics
+- International/language-specific performance
+
+### Tools for Monitoring
+- Google Search Console
+- Google Analytics 4
+- PageSpeed Insights
+- Mobile-Friendly Test
+- Rich Results Test (for structured data)
+
+## Future Enhancements
+
+### Planned Improvements
+1. **Blog/Content Section**: Add travel guides and tips for content marketing
+2. **FAQ Page**: Implement dedicated FAQ page with structured data
+3. **Review/Testimonial Schema**: Add user reviews and ratings
+4. **Local Business Schema**: If physical locations are added
+5. **Video Schema**: For tutorial or promotional videos
+6. **Event Schema**: For travel-related events or promotions
+
+### Advanced SEO Features
+1. **Dynamic Meta Tags**: Based on user search queries
+2. **Personalized Content**: SEO-friendly personalization
+3. **AMP Pages**: For ultra-fast mobile loading
+4. **Advanced Analytics**: Enhanced tracking for SEO metrics
+
+## Compliance & Standards
+
+### Accessibility (SEO-related)
+- ✅ Proper heading structure
+- ✅ Descriptive link text
+- ✅ Alt text for images
+- ✅ Keyboard navigation support
+
+### Performance
+- ✅ Optimized images and assets
+- ✅ Efficient code splitting
+- ✅ Fast server response times
+- ✅ Minimal render-blocking resources
+
+### Security
+- ✅ HTTPS implementation
+- ✅ Secure authentication flow
+- ✅ Privacy-compliant analytics
+
+## Contact & Support
+For SEO-related questions or updates, refer to this documentation or contact the development team. Regular SEO audits should be conducted to ensure continued optimization and search engine visibility.
+
+---
+*Last Updated: December 9, 2024*
+*Next Review: March 9, 2025*
diff --git a/SUBGRAPH_MESSAGE_PERSISTENCE_FIX.md b/SUBGRAPH_MESSAGE_PERSISTENCE_FIX.md
new file mode 100644
index 00000000..e348bb57
--- /dev/null
+++ b/SUBGRAPH_MESSAGE_PERSISTENCE_FIX.md
@@ -0,0 +1,450 @@
+# Subgraph Message Persistence Fix - Thread-Safe Implementation
+
+## Problem Description
+
+When using LangGraph with subgraphs, messages from subgraphs were disappearing from the UI after the first interrupt was submitted and resolved. This was causing a poor user experience where subgraph messages would vanish, making it appear as if the conversation had lost context.
+
+### Root Cause Analysis
+
+The issue was in the `langgraph-stream.js` file's caching and merging logic:
+
+1. **Inconsistent Merging Logic**: The `values` getter and `messages` getter had different merging strategies, causing inconsistent behavior.
+
+2. **Race Conditions**: Multiple async operations could modify the cache simultaneously without proper synchronization.
+
+3. **Cache Merging Logic Issues**: The merging logic was complex and inconsistent between UI widgets and messages.
+
+4. **Thread Safety**: No proper synchronization for cache operations across different threads.
+
+5. **Cache Overwriting**: When new `streamValues` came in (like when an interrupt completes), they completely overwrote the cache instead of merging with existing cached messages.
+
+6. **Conditional Merging**: The merging logic only preserved cached messages if the current values had fewer messages, which was insufficient for preserving subgraph messages.
+
+7. **Thread Contamination**: The cache was not thread-specific, causing messages from previous chat sessions to appear in new chats.
+
+8. **Null ThreadId Handling**: When opening a new chat, `threadId` was initially `null`, but the cache was still being accessed, causing cross-thread contamination.
+
+9. **Message Loss During Stream/History Merge**: Messages that existed in history but not in stream were being lost during the merge process, causing messages with UI values to disappear.
+
+## Solution Implementation
+
+### 1. Thread-Safe Cache Manager
+
+**New Implementation:**
+
+```javascript
+class ThreadSafeCacheManager {
+ constructor() {
+ this.cache = new Map();
+ this.mutex = new Map(); // Thread-specific mutex for operations
+ }
+
+ // Thread-safe cache operation
+ async withMutex(threadId, operation) {
+ const currentMutex = this.getMutex(threadId);
+ const newMutex = currentMutex.then(operation);
+ this.setMutex(threadId, newMutex);
+ return newMutex;
+ }
+
+ // Consistent merging logic for both messages and UI widgets
+ mergeById(existing, incoming, idField = "id") {
+ if (!existing || !Array.isArray(existing)) {
+ return incoming || [];
+ }
+ if (!incoming || !Array.isArray(incoming)) {
+ return existing;
+ }
+
+ const result = [...existing];
+ incoming.forEach((newItem) => {
+ const existingIndex = result.findIndex(
+ (item) => item[idField] === newItem[idField],
+ );
+ if (existingIndex === -1) {
+ // New item - append
+ result.push(newItem);
+ } else {
+ // Existing item - update with new data
+ result[existingIndex] = newItem;
+ }
+ });
+
+ return result;
+ }
+}
+```
+
+### 2. Consistent Merging Logic
+
+**Before (Inconsistent):**
+
+```javascript
+// values getter - one merging strategy
+if (cached.messages && current.messages) {
+ const allMessages = [...cached.messages];
+ current.messages.forEach((msg) => {
+ const existingIndex = allMessages.findIndex(
+ (existing) => existing.id === msg.id,
+ );
+ if (existingIndex === -1) {
+ allMessages.push(msg);
+ } else {
+ allMessages[existingIndex] = msg;
+ }
+ });
+}
+
+// messages getter - different merging strategy
+if (current.messages && current.messages.length > 0) {
+ let allMessages = [...current.messages];
+ cached.messages.forEach((cachedMsg) => {
+ const exists = allMessages.find((msg) => msg.id === cachedMsg.id);
+ if (!exists) {
+ allMessages.push(cachedMsg);
+ }
+ });
+}
+```
+
+**After (Consistent):**
+
+```javascript
+// Single consistent merging function used by both getters
+const mergeValuesWithCache = useCallback((currentValues, cachedValues) => {
+ if (!cachedValues) return currentValues;
+ if (!currentValues) return cachedValues;
+
+ return {
+ ...cachedValues,
+ ...currentValues,
+ // Merge messages consistently
+ messages: cacheManagerRef.current.mergeById(
+ cachedValues.messages,
+ currentValues.messages,
+ "id",
+ ),
+ // Merge UI widgets consistently
+ ui: cacheManagerRef.current.mergeById(
+ cachedValues.ui,
+ currentValues.ui,
+ "id",
+ ),
+ };
+}, []);
+```
+
+### 3. Thread-Safe Cache Operations
+
+**Before:**
+
+```javascript
+// Direct cache access without synchronization
+streamValuesCacheRef.current.set(threadId, streamValues);
+const cached = streamValuesCacheRef.current.get(threadId);
+```
+
+**After:**
+
+```javascript
+// Thread-safe cache operations with mutex
+cacheManagerRef.current
+ .set(threadId, streamValues)
+ .then(() => {
+ saveCacheToStorage();
+ cleanupCache();
+ })
+ .catch((error) => {
+ console.warn("🔍 [CACHE DEBUG] Failed to cache values:", error);
+ });
+
+const cached = cacheManagerRef.current.get(threadId);
+```
+
+### 4. Consistent ID-Based Merging
+
+**New Implementation:**
+
+```javascript
+mergeById(existing, incoming, idField = 'id') {
+ if (!existing || !Array.isArray(existing)) {
+ return incoming || [];
+ }
+ if (!incoming || !Array.isArray(incoming)) {
+ return existing;
+ }
+
+ const result = [...existing];
+ incoming.forEach(newItem => {
+ const existingIndex = result.findIndex(item => item[idField] === newItem[idField]);
+ if (existingIndex === -1) {
+ // New item - append
+ result.push(newItem);
+ } else {
+ // Existing item - update with new data
+ result[existingIndex] = newItem;
+ }
+ });
+
+ return result;
+}
+```
+
+### 5. Fixed Stream/History Message Merging
+
+**Before (Message Loss):**
+
+```javascript
+// Get base values - this caused message loss
+let mergedValues = streamValues ?? historyValues;
+```
+
+**After (Proper Merging):**
+
+```javascript
+// Get base values - prioritize stream but preserve history messages
+let mergedValues = streamValues ?? historyValues;
+
+// If we have both stream and history, merge them properly
+if (streamValues && historyValues) {
+ mergedValues = {
+ ...historyValues,
+ ...streamValues,
+ // Merge messages from both sources
+ messages: cacheManagerRef.current.mergeById(
+ historyValues.messages || [],
+ streamValues.messages || [],
+ "id",
+ ),
+ // Merge UI widgets from both sources
+ ui: cacheManagerRef.current.mergeById(
+ historyValues.ui || [],
+ streamValues.ui || [],
+ "id",
+ ),
+ };
+}
+```
+
+### 6. Simplified Cache Logic
+
+**Before (Complex):**
+
+```javascript
+// Complex conditional logic with multiple branches
+if (cached && streamValues) {
+ if (cached.messages && current.messages) {
+ // Complex merging logic
+ } else if (cached.messages) {
+ // Different logic
+ }
+ // More complex UI merging
+}
+```
+
+**After (Simple):**
+
+```javascript
+// Simple, consistent logic
+if (threadId) {
+ const cached = cacheManagerRef.current.get(threadId);
+ if (cached) {
+ finalValues = mergeValuesWithCache(finalValues, cached);
+ }
+}
+```
+
+## Key Technical Details
+
+### Thread Safety Implementation
+
+```javascript
+// Thread-specific mutex for operations
+async withMutex(threadId, operation) {
+ const currentMutex = this.getMutex(threadId);
+ const newMutex = currentMutex.then(operation);
+ this.setMutex(threadId, newMutex);
+ return newMutex;
+}
+```
+
+### Consistent Merging Strategy
+
+```javascript
+// Same logic for both messages and UI widgets
+messages: this.mergeById(existing.messages, newValues.messages, 'id'),
+ui: this.mergeById(existing.ui, newValues.ui, 'id')
+```
+
+### Race Condition Prevention
+
+```javascript
+// Async cache operations with proper error handling
+cacheManagerRef.current
+ .set(threadId, streamValues)
+ .then(() => {
+ saveCacheToStorage();
+ cleanupCache();
+ })
+ .catch((error) => {
+ console.warn("🔍 [CACHE DEBUG] Failed to cache values:", error);
+ });
+```
+
+### Message Preservation Logic
+
+```javascript
+// Preserves messages from both stream and history sources
+if (streamValues && historyValues) {
+ mergedValues = {
+ ...historyValues,
+ ...streamValues,
+ messages: cacheManagerRef.current.mergeById(
+ historyValues.messages || [],
+ streamValues.messages || [],
+ "id",
+ ),
+ ui: cacheManagerRef.current.mergeById(
+ historyValues.ui || [],
+ streamValues.ui || [],
+ "id",
+ ),
+ };
+}
+```
+
+## Benefits of the Fix
+
+1. **Thread Safety**: All cache operations are now thread-safe with proper mutex synchronization.
+
+2. **Consistent Merging**: Both `values` and `messages` getters use the same merging logic.
+
+3. **Race Condition Prevention**: Async operations are properly synchronized to prevent data corruption.
+
+4. **Simplified Logic**: Complex conditional merging is replaced with a single, consistent function.
+
+5. **ID-Based Merging**: All merging operations use consistent ID-based logic for both messages and UI widgets.
+
+6. **Error Handling**: Proper error handling for cache operations with fallback mechanisms.
+
+7. **Performance**: Reduced complexity and improved performance with simpler, more predictable logic.
+
+8. **Message Preservation**: Messages from both stream and history sources are preserved, preventing message loss.
+
+9. **UI Widget Preservation**: UI widgets associated with preserved messages are also preserved.
+
+## Testing Scenarios
+
+### Scenario 1: Thread Safety
+
+1. Start multiple conversations simultaneously
+2. Submit interrupts in different threads
+3. Verify no cross-thread contamination occurs
+
+### Scenario 2: Consistent Merging
+
+1. Start a conversation with subgraph messages
+2. Submit an interrupt
+3. Verify both `values` and `messages` getters return the same merged data
+
+### Scenario 3: Race Condition Prevention
+
+1. Rapidly submit multiple interrupts
+2. Verify all cache operations complete successfully
+3. Verify no data corruption occurs
+
+### Scenario 4: ID-Based Updates
+
+1. Receive a message with incomplete content
+2. Receive the same message with complete content
+3. Verify the message is updated, not duplicated
+
+### Scenario 5: Message Preservation
+
+1. Start a conversation with messages that have UI widgets
+2. Submit an interrupt that generates new messages
+3. Verify that both old messages (with UI widgets) and new messages are preserved
+4. Verify that UI widgets remain associated with their messages
+
+### Scenario 6: Stream/History Merge
+
+1. Have messages in history that are not in stream
+2. Have messages in stream that are not in history
+3. Verify that all messages from both sources are preserved in the final result
+4. Verify that UI widgets from both sources are preserved
+
+## Performance Improvements
+
+1. **Reduced Complexity**: Simplified merging logic reduces computational overhead
+2. **Thread Safety**: Proper synchronization prevents unnecessary re-renders
+3. **Consistent Caching**: Single cache manager reduces memory usage
+4. **Async Operations**: Non-blocking cache operations improve UI responsiveness
+5. **Efficient Merging**: ID-based merging prevents duplicate processing
+
+## Error Handling
+
+```javascript
+// Proper error handling for cache operations
+.catch(error => {
+ console.warn("🔍 [CACHE DEBUG] Failed to cache values:", error);
+});
+
+// Graceful fallback for cache failures
+if (cached) {
+ finalValues = mergeValuesWithCache(finalValues, cached);
+}
+
+// Null-safe operations
+const getMessages = useMemo(() => {
+ return (value) => {
+ if (!value || !Array.isArray(value[messagesKey])) {
+ return [];
+ }
+ return value[messagesKey];
+ };
+}, [messagesKey]);
+```
+
+## Future Improvements
+
+1. **Cache Size Management**: Implement LRU cache to prevent memory leaks
+2. **Persistent Storage**: Consider persisting cache to localStorage for session recovery
+3. **Cache Invalidation**: Add mechanisms to invalidate stale cache entries
+4. **Performance Optimization**: Optimize merge operations for large message histories
+5. **Error Recovery**: Add better error recovery mechanisms for failed cache operations
+6. **Message Ordering**: Ensure proper chronological ordering of merged messages
+7. **UI Widget Association**: Improve UI widget association with messages for better rendering
+
+## Files Modified
+
+- `src/lib/langgraph-stream.js`: Complete rewrite of caching and merging logic with thread-safe implementation and message preservation
+
+## Related Issues
+
+- Subgraph messages disappearing after interrupt resolution
+- Cross-thread message contamination
+- Inconsistent merging between values and messages getters
+- Race conditions in cache operations
+- Complex and error-prone merging logic
+- Messages with UI widgets disappearing during stream/history merge
+- Null reference errors in message processing
+
+## Dependencies
+
+- React hooks: `useRef`, `useState`, `useCallback`, `useEffect`
+- LangGraph SDK: `Client`, message handling
+- Browser APIs: `Map` for thread-specific cache storage, `Promise` for async operations
+- Custom: `ThreadSafeCacheManager` class for thread-safe operations
+
+## Debugging and Monitoring
+
+The implementation includes comprehensive logging to monitor:
+
+- **Message counts** from different sources (stream, history, cache, final)
+- **UI widget counts** and associations
+- **Cache loading states** and operations
+- **Message comparison** between different sources
+- **UI value details** including message associations
+- **Thread safety** operations and mutex states
+
+This logging helps identify issues in real-time and ensures the merging logic is working correctly.
diff --git a/UI_EVENT_HANDLING_IMPLEMENTATION.md b/UI_EVENT_HANDLING_IMPLEMENTATION.md
new file mode 100644
index 00000000..55ff974e
--- /dev/null
+++ b/UI_EVENT_HANDLING_IMPLEMENTATION.md
@@ -0,0 +1,371 @@
+# UI Event Handling Implementation - Thread-Safe with Queue Processing
+
+## Overview
+
+This document describes the implementation of thread-safe UI event handling in the custom `langgraph-stream.js` implementation to ensure that custom events from the LangGraph backend are properly received and saved in the `ui-values` without race conditions.
+
+## Problem
+
+The custom caching layer in `langgraph-stream.js` was missing the critical functionality to receive and handle custom events from the LangGraph backend, specifically UI events that need to be saved in the `ui-values` for proper widget rendering. Additionally, there were race conditions where UI events could be processed out of order or lost entirely.
+
+## Solution
+
+### 1. Added Required Imports
+
+```javascript
+import {
+ uiMessageReducer,
+ isUIMessage,
+ isRemoveUIMessage,
+} from "@langchain/langgraph-sdk/react-ui";
+```
+
+### 2. Enhanced Thread-Safe UI Event Handling
+
+Implemented a queue-based processing system to prevent race conditions:
+
+```javascript
+// UI event queue to prevent race conditions
+const uiEventQueueRef = useRef(new Map());
+const processingUIEventsRef = useRef(false);
+
+// Helper function to process UI events in order
+const processUIEvent = useCallback(
+ async (threadId, data) => {
+ if (!threadId) return;
+
+ // Add event to queue
+ const eventId = Date.now() + Math.random();
+ uiEventQueueRef.current.set(eventId, { threadId, data });
+
+ // If already processing, wait with timeout
+ if (processingUIEventsRef.current) {
+ // Set a timeout to prevent infinite waiting
+ setTimeout(() => {
+ if (processingUIEventsRef.current) {
+ console.warn("🔍 [UI EVENT QUEUE] Processing timeout, forcing reset");
+ processingUIEventsRef.current = false;
+ // Retry processing
+ processUIEvent(threadId, data);
+ }
+ }, 5000); // 5 second timeout
+ return;
+ }
+
+ processingUIEventsRef.current = true;
+
+ try {
+ // Process all queued events in order
+ const events = Array.from(uiEventQueueRef.current.entries()).sort(
+ ([a], [b]) => a - b,
+ );
+ uiEventQueueRef.current.clear();
+
+ for (const [
+ eventId,
+ { threadId: eventThreadId, data: eventData },
+ ] of events) {
+ console.log(
+ `🔍 [UI EVENT QUEUE] Processing event ${eventId} for thread ${eventThreadId}`,
+ );
+
+ await cacheManagerRef.current.withMutex(eventThreadId, async () => {
+ const currentValues =
+ cacheManagerRef.current.get(eventThreadId) || {};
+
+ setStreamValues((currentStreamValues) => {
+ const values = {
+ ...historyValues,
+ ...currentStreamValues,
+ ...currentValues,
+ };
+ const ui = uiMessageReducer(values.ui ?? [], eventData);
+
+ const updatedValues = { ...values, ui };
+
+ console.log(`🔍 [UI EVENT QUEUE] Thread-safe UI update:`, {
+ eventId,
+ threadId: eventThreadId,
+ previousUICount: values.ui?.length || 0,
+ newUICount: ui.length,
+ uiValues: ui.map((u) => ({
+ id: u.id,
+ type: u.type,
+ name: u.name,
+ })),
+ });
+
+ // Update cache with thread-safe operation
+ cacheManagerRef.current
+ .set(eventThreadId, updatedValues)
+ .then(() => {
+ saveCacheToStorage();
+ })
+ .catch((error) => {
+ console.warn("🔍 [UI EVENT QUEUE] Cache update failed:", error);
+ });
+
+ return updatedValues;
+ });
+ });
+ }
+ } catch (error) {
+ console.warn("🔍 [UI EVENT QUEUE] Processing failed:", error);
+ } finally {
+ processingUIEventsRef.current = false;
+ }
+ },
+ [historyValues, saveCacheToStorage],
+);
+```
+
+### 3. Queue-Based Event Processing
+
+In the `consumeStream` function, UI events are now processed using the queue:
+
+```javascript
+if (event === "custom" || event.startsWith("custom|")) {
+ console.log("🔍 [CUSTOM EVENT] Got custom event: ", event);
+
+ // Handle UI messages specifically with thread-safe operations
+ if (isUIMessage(data) || isRemoveUIMessage(data)) {
+ console.log(`🔍 [UI EVENT] Got UI event: ${JSON.stringify(data)}`);
+
+ // Use queue-based processing to prevent race conditions
+ if (threadId) {
+ processUIEvent(threadId, data);
+ } else {
+ // Fallback for when threadId is not available
+ setStreamValues((streamValues) => {
+ const values = { ...historyValues, ...streamValues };
+ const ui = uiMessageReducer(values.ui ?? [], data);
+ return { ...values, ui };
+ });
+ }
+ }
+
+ // Call the custom event handler
+ options.onCustomEvent?.(data, {
+ mutate: getMutateFn("stream", historyValues),
+ });
+}
+```
+
+### 4. Thread-Safe Cache Operations
+
+All UI event processing uses the existing `ThreadSafeCacheManager`:
+
+```javascript
+await cacheManagerRef.current.withMutex(eventThreadId, async () => {
+ const currentValues = cacheManagerRef.current.get(eventThreadId) || {};
+ // Process UI event with thread-safe operations
+});
+```
+
+### 5. Enhanced Debugging
+
+Added comprehensive debugging to track UI event handling:
+
+- UI event detection and processing
+- Queue processing status
+- Thread-safe operations
+- Cache storage verification
+- UI values summary with types and names
+- Association between UI widgets and messages
+
+## Key Features
+
+### 1. Queue-Based Processing
+
+UI events are queued and processed in order to prevent race conditions:
+
+```javascript
+// Add event to queue
+const eventId = Date.now() + Math.random();
+uiEventQueueRef.current.set(eventId, { threadId, data });
+```
+
+### 2. Thread-Safe Mutex Operations
+
+All UI event processing uses thread-specific mutex operations:
+
+```javascript
+await cacheManagerRef.current.withMutex(eventThreadId, async () => {
+ // Thread-safe UI event processing
+});
+```
+
+### 3. Timeout Protection
+
+Prevents UI events from getting stuck in the queue:
+
+```javascript
+setTimeout(() => {
+ if (processingUIEventsRef.current) {
+ console.warn("🔍 [UI EVENT QUEUE] Processing timeout, forcing reset");
+ processingUIEventsRef.current = false;
+ // Retry processing
+ processUIEvent(threadId, data);
+ }
+}, 5000); // 5 second timeout
+```
+
+### 4. Event Ordering
+
+Events are processed in chronological order:
+
+```javascript
+const events = Array.from(uiEventQueueRef.current.entries()).sort(
+ ([a], [b]) => a - b,
+);
+```
+
+### 5. Thread Switching Cleanup
+
+UI event queue is cleared when switching threads:
+
+```javascript
+resetForThreadSwitch(newThreadId) {
+ // ... existing code ...
+ // Clear UI event queue for the old thread
+ uiEventQueueRef.current.clear();
+ processingUIEventsRef.current = false;
+}
+```
+
+## Testing the Implementation
+
+### 1. Start the Application
+
+```bash
+npm run dev
+```
+
+### 2. Open Browser Console
+
+Open the browser developer tools and navigate to the Console tab.
+
+### 3. Trigger Multiple UI Events
+
+1. Start a conversation that generates UI widgets
+2. Rapidly submit multiple interrupts
+3. Observe the console logs for queue processing
+
+### 4. Expected Console Output
+
+You should see logs like:
+
+```
+🔍 [CUSTOM EVENT] Got custom event: custom
+🔍 [UI EVENT] Got UI event: {"type": "add", "widget": {...}}
+🔍 [UI EVENT QUEUE] Processing event 1234567890.123 for thread thread_123
+🔍 [UI EVENT QUEUE] Thread-safe UI update: {eventId: 1234567890.123, threadId: "thread_123", ...}
+🔍 [CACHE STORAGE DEBUG] {threadId: "thread_123", hasUI: true, uiValuesCount: 1, ...}
+```
+
+### 5. Test Race Condition Prevention
+
+1. Submit multiple interrupts rapidly
+2. Verify that UI events are processed in order
+3. Check that no UI events are lost
+4. Verify that UI widgets persist correctly
+
+### 6. Test Thread Switching
+
+1. Start a conversation with UI widgets
+2. Switch to a different thread
+3. Switch back to the original thread
+4. Verify that UI widgets are preserved and functional
+
+## Debugging Commands
+
+### Check UI Event Queue Processing
+
+```javascript
+// In browser console
+// Look for logs starting with "🔍 [UI EVENT QUEUE]"
+```
+
+### Check Thread-Safe Operations
+
+```javascript
+// In browser console
+// Look for logs starting with "🔍 [UI EVENT QUEUE] Thread-safe UI update"
+```
+
+### Check Cache Storage
+
+```javascript
+// In browser console
+// Look for logs starting with "🔍 [CACHE STORAGE DEBUG]"
+```
+
+## Troubleshooting
+
+### Issue: UI Events Getting Stuck in Queue
+
+**Symptoms:**
+
+- UI events not being processed
+- "Processing timeout" warnings in console
+
+**Solutions:**
+
+1. Check for JavaScript errors in console
+2. Verify that `threadId` is properly set
+3. Check that cache operations are completing successfully
+
+### Issue: UI Events Processed Out of Order
+
+**Symptoms:**
+
+- UI widgets appearing in wrong order
+- Inconsistent UI state
+
+**Solutions:**
+
+1. Check that events are being queued properly
+2. Verify that the queue sorting is working correctly
+3. Ensure that mutex operations are completing in order
+
+### Issue: UI Values Not Being Cached
+
+**Symptoms:**
+
+- UI widgets disappear after page refresh
+- No cache storage logs
+
+**Solutions:**
+
+1. Check that `threadId` is properly set
+2. Verify that cache operations are completing
+3. Check for errors in cache storage operations
+
+## Performance Considerations
+
+1. **Queue Processing**: UI events are processed in batches to improve performance
+2. **Timeout Protection**: 5-second timeout prevents infinite waiting
+3. **Thread-Safe Operations**: Mutex ensures data consistency
+4. **Memory Management**: Queue is cleared when switching threads
+5. **Error Recovery**: Automatic retry mechanism for failed operations
+
+## Future Enhancements
+
+1. **Priority Queue**: Implement priority-based processing for critical UI events
+2. **Batch Processing**: Optimize for multiple UI events in single batch
+3. **Event Deduplication**: Remove duplicate UI events to improve performance
+4. **Persistent Queue**: Implement persistent queue for session recovery
+5. **Performance Monitoring**: Add metrics for queue processing performance
+
+## Files Modified
+
+- `src/lib/langgraph-stream.js`: Added queue-based UI event processing with thread-safe operations
+- `src/providers/Stream.tsx`: Simplified custom event handling
+- `src/lib/langgraph-index.js`: Already exporting custom useStream implementation
+
+## Dependencies
+
+- `@langchain/langgraph-sdk/react-ui`: For UI message reducer and detection functions
+- React hooks: `useState`, `useCallback`, `useEffect`, `useRef` for state management
+- Custom `ThreadSafeCacheManager`: For thread-safe cache operations
+- Custom UI Event Queue: For ordered event processing
diff --git a/airlines/0V.png b/airlines/0V.png
new file mode 100644
index 00000000..0abf6574
Binary files /dev/null and b/airlines/0V.png differ
diff --git a/airlines/1I.png b/airlines/1I.png
new file mode 100644
index 00000000..10289e97
Binary files /dev/null and b/airlines/1I.png differ
diff --git a/airlines/1L.png b/airlines/1L.png
new file mode 100644
index 00000000..5eafe1fa
Binary files /dev/null and b/airlines/1L.png differ
diff --git a/airlines/2A.png b/airlines/2A.png
new file mode 100644
index 00000000..2f6e709d
Binary files /dev/null and b/airlines/2A.png differ
diff --git a/airlines/2C(1).png b/airlines/2C(1).png
new file mode 100644
index 00000000..0e01dbe5
Binary files /dev/null and b/airlines/2C(1).png differ
diff --git a/airlines/2C.png b/airlines/2C.png
new file mode 100644
index 00000000..0e01dbe5
Binary files /dev/null and b/airlines/2C.png differ
diff --git a/airlines/2G.png b/airlines/2G.png
new file mode 100644
index 00000000..2f91c03a
Binary files /dev/null and b/airlines/2G.png differ
diff --git a/airlines/2H.png b/airlines/2H.png
new file mode 100644
index 00000000..45001068
Binary files /dev/null and b/airlines/2H.png differ
diff --git a/airlines/2I.png b/airlines/2I.png
new file mode 100644
index 00000000..bea2eadc
Binary files /dev/null and b/airlines/2I.png differ
diff --git a/airlines/2J.png b/airlines/2J.png
new file mode 100644
index 00000000..ce06aa5d
Binary files /dev/null and b/airlines/2J.png differ
diff --git a/airlines/2K.png b/airlines/2K.png
new file mode 100644
index 00000000..49c8911f
Binary files /dev/null and b/airlines/2K.png differ
diff --git a/airlines/2L.png b/airlines/2L.png
new file mode 100644
index 00000000..df2d3559
Binary files /dev/null and b/airlines/2L.png differ
diff --git a/airlines/2M.png b/airlines/2M.png
new file mode 100644
index 00000000..fcd679ae
Binary files /dev/null and b/airlines/2M.png differ
diff --git a/airlines/2N.png b/airlines/2N.png
new file mode 100644
index 00000000..67115451
Binary files /dev/null and b/airlines/2N.png differ
diff --git a/airlines/2P.png b/airlines/2P.png
new file mode 100644
index 00000000..10a8d793
Binary files /dev/null and b/airlines/2P.png differ
diff --git a/airlines/2W.png b/airlines/2W.png
new file mode 100644
index 00000000..04c26e6f
Binary files /dev/null and b/airlines/2W.png differ
diff --git a/airlines/2Z.png b/airlines/2Z.png
new file mode 100644
index 00000000..9cbce794
Binary files /dev/null and b/airlines/2Z.png differ
diff --git a/airlines/3H.png b/airlines/3H.png
new file mode 100644
index 00000000..61392f1d
Binary files /dev/null and b/airlines/3H.png differ
diff --git a/airlines/3K.png b/airlines/3K.png
new file mode 100644
index 00000000..d01e4938
Binary files /dev/null and b/airlines/3K.png differ
diff --git a/airlines/3L(1).png b/airlines/3L(1).png
new file mode 100644
index 00000000..5d8a50f7
Binary files /dev/null and b/airlines/3L(1).png differ
diff --git a/airlines/3L.png b/airlines/3L.png
new file mode 100644
index 00000000..5d8a50f7
Binary files /dev/null and b/airlines/3L.png differ
diff --git a/airlines/3M.png b/airlines/3M.png
new file mode 100644
index 00000000..57798caa
Binary files /dev/null and b/airlines/3M.png differ
diff --git a/airlines/3O.png b/airlines/3O.png
new file mode 100644
index 00000000..559dce38
Binary files /dev/null and b/airlines/3O.png differ
diff --git a/airlines/3S.png b/airlines/3S.png
new file mode 100644
index 00000000..4b785d28
Binary files /dev/null and b/airlines/3S.png differ
diff --git a/airlines/3U.png b/airlines/3U.png
new file mode 100644
index 00000000..311ce53c
Binary files /dev/null and b/airlines/3U.png differ
diff --git a/airlines/3W.png b/airlines/3W.png
new file mode 100644
index 00000000..1f8d3c19
Binary files /dev/null and b/airlines/3W.png differ
diff --git a/airlines/4B.png b/airlines/4B.png
new file mode 100644
index 00000000..58a80c87
Binary files /dev/null and b/airlines/4B.png differ
diff --git a/airlines/4C.png b/airlines/4C.png
new file mode 100644
index 00000000..46eecbdb
Binary files /dev/null and b/airlines/4C.png differ
diff --git a/airlines/4D.png b/airlines/4D.png
new file mode 100644
index 00000000..8828d00a
Binary files /dev/null and b/airlines/4D.png differ
diff --git a/airlines/4G.png b/airlines/4G.png
new file mode 100644
index 00000000..3fefadb9
Binary files /dev/null and b/airlines/4G.png differ
diff --git a/airlines/4J.png b/airlines/4J.png
new file mode 100644
index 00000000..f2df3e85
Binary files /dev/null and b/airlines/4J.png differ
diff --git a/airlines/4M.png b/airlines/4M.png
new file mode 100644
index 00000000..8f5999ed
Binary files /dev/null and b/airlines/4M.png differ
diff --git a/airlines/4N.png b/airlines/4N.png
new file mode 100644
index 00000000..cc3dfc57
Binary files /dev/null and b/airlines/4N.png differ
diff --git a/airlines/4O.png b/airlines/4O.png
new file mode 100644
index 00000000..fdf4d3ea
Binary files /dev/null and b/airlines/4O.png differ
diff --git a/airlines/4Q.png b/airlines/4Q.png
new file mode 100644
index 00000000..65fb7fc4
Binary files /dev/null and b/airlines/4Q.png differ
diff --git a/airlines/4T.png b/airlines/4T.png
new file mode 100644
index 00000000..b45ef76e
Binary files /dev/null and b/airlines/4T.png differ
diff --git a/airlines/4U.png b/airlines/4U.png
new file mode 100644
index 00000000..eb4af76a
Binary files /dev/null and b/airlines/4U.png differ
diff --git a/airlines/4Z.png b/airlines/4Z.png
new file mode 100644
index 00000000..b8d88b36
Binary files /dev/null and b/airlines/4Z.png differ
diff --git a/airlines/5B.png b/airlines/5B.png
new file mode 100644
index 00000000..ae9f3e3c
Binary files /dev/null and b/airlines/5B.png differ
diff --git a/airlines/5C.png b/airlines/5C.png
new file mode 100644
index 00000000..d910e4b8
Binary files /dev/null and b/airlines/5C.png differ
diff --git a/airlines/5D.png b/airlines/5D.png
new file mode 100644
index 00000000..c0d9c1e0
Binary files /dev/null and b/airlines/5D.png differ
diff --git a/airlines/5F(1).png b/airlines/5F(1).png
new file mode 100644
index 00000000..0616c461
Binary files /dev/null and b/airlines/5F(1).png differ
diff --git a/airlines/5F.png b/airlines/5F.png
new file mode 100644
index 00000000..0616c461
Binary files /dev/null and b/airlines/5F.png differ
diff --git a/airlines/5H.png b/airlines/5H.png
new file mode 100644
index 00000000..0e1e5fc0
Binary files /dev/null and b/airlines/5H.png differ
diff --git a/airlines/5J.png b/airlines/5J.png
new file mode 100644
index 00000000..efcc3377
Binary files /dev/null and b/airlines/5J.png differ
diff --git a/airlines/5N.png b/airlines/5N.png
new file mode 100644
index 00000000..ab2f8506
Binary files /dev/null and b/airlines/5N.png differ
diff --git a/airlines/5O.png b/airlines/5O.png
new file mode 100644
index 00000000..b5cfdf50
Binary files /dev/null and b/airlines/5O.png differ
diff --git a/airlines/5T.png b/airlines/5T.png
new file mode 100644
index 00000000..e6bbc10f
Binary files /dev/null and b/airlines/5T.png differ
diff --git a/airlines/5U.png b/airlines/5U.png
new file mode 100644
index 00000000..822f7093
Binary files /dev/null and b/airlines/5U.png differ
diff --git a/airlines/5W(1).png b/airlines/5W(1).png
new file mode 100644
index 00000000..0d79adac
Binary files /dev/null and b/airlines/5W(1).png differ
diff --git a/airlines/5W.png b/airlines/5W.png
new file mode 100644
index 00000000..0d79adac
Binary files /dev/null and b/airlines/5W.png differ
diff --git a/airlines/5Z.png b/airlines/5Z.png
new file mode 100644
index 00000000..b37eb68e
Binary files /dev/null and b/airlines/5Z.png differ
diff --git a/airlines/6E.png b/airlines/6E.png
new file mode 100644
index 00000000..8f457716
Binary files /dev/null and b/airlines/6E.png differ
diff --git a/airlines/6H(1).png b/airlines/6H(1).png
new file mode 100644
index 00000000..61272ba5
Binary files /dev/null and b/airlines/6H(1).png differ
diff --git a/airlines/6H.png b/airlines/6H.png
new file mode 100644
index 00000000..61272ba5
Binary files /dev/null and b/airlines/6H.png differ
diff --git a/airlines/6J.png b/airlines/6J.png
new file mode 100644
index 00000000..5ae28864
Binary files /dev/null and b/airlines/6J.png differ
diff --git a/airlines/6S.png b/airlines/6S.png
new file mode 100644
index 00000000..1dd9561d
Binary files /dev/null and b/airlines/6S.png differ
diff --git a/airlines/6Y.png b/airlines/6Y.png
new file mode 100644
index 00000000..870346ee
Binary files /dev/null and b/airlines/6Y.png differ
diff --git a/airlines/6Z.png b/airlines/6Z.png
new file mode 100644
index 00000000..205afd8e
Binary files /dev/null and b/airlines/6Z.png differ
diff --git a/airlines/7C.png b/airlines/7C.png
new file mode 100644
index 00000000..7cd76f67
Binary files /dev/null and b/airlines/7C.png differ
diff --git a/airlines/7E.png b/airlines/7E.png
new file mode 100644
index 00000000..2bfbb961
Binary files /dev/null and b/airlines/7E.png differ
diff --git a/airlines/7F.png b/airlines/7F.png
new file mode 100644
index 00000000..3535e3d6
Binary files /dev/null and b/airlines/7F.png differ
diff --git a/airlines/7G.png b/airlines/7G.png
new file mode 100644
index 00000000..2ef915e1
Binary files /dev/null and b/airlines/7G.png differ
diff --git a/airlines/7H.png b/airlines/7H.png
new file mode 100644
index 00000000..223760a6
Binary files /dev/null and b/airlines/7H.png differ
diff --git a/airlines/7I(1).png b/airlines/7I(1).png
new file mode 100644
index 00000000..b8754cb7
Binary files /dev/null and b/airlines/7I(1).png differ
diff --git a/airlines/7I.png b/airlines/7I.png
new file mode 100644
index 00000000..b8754cb7
Binary files /dev/null and b/airlines/7I.png differ
diff --git a/airlines/7J.png b/airlines/7J.png
new file mode 100644
index 00000000..01c782b1
Binary files /dev/null and b/airlines/7J.png differ
diff --git a/airlines/7M.png b/airlines/7M.png
new file mode 100644
index 00000000..1d84b7d9
Binary files /dev/null and b/airlines/7M.png differ
diff --git a/airlines/7Q.png b/airlines/7Q.png
new file mode 100644
index 00000000..7ddb1a2a
Binary files /dev/null and b/airlines/7Q.png differ
diff --git a/airlines/7R.png b/airlines/7R.png
new file mode 100644
index 00000000..9999bf34
Binary files /dev/null and b/airlines/7R.png differ
diff --git a/airlines/7W.png b/airlines/7W.png
new file mode 100644
index 00000000..5f529de3
Binary files /dev/null and b/airlines/7W.png differ
diff --git a/airlines/8H.png b/airlines/8H.png
new file mode 100644
index 00000000..b3a3989b
Binary files /dev/null and b/airlines/8H.png differ
diff --git a/airlines/8J.png b/airlines/8J.png
new file mode 100644
index 00000000..2083a744
Binary files /dev/null and b/airlines/8J.png differ
diff --git a/airlines/8L(1).png b/airlines/8L(1).png
new file mode 100644
index 00000000..413e1e80
Binary files /dev/null and b/airlines/8L(1).png differ
diff --git a/airlines/8L.png b/airlines/8L.png
new file mode 100644
index 00000000..413e1e80
Binary files /dev/null and b/airlines/8L.png differ
diff --git a/airlines/8M.png b/airlines/8M.png
new file mode 100644
index 00000000..c7bb4d75
Binary files /dev/null and b/airlines/8M.png differ
diff --git a/airlines/8P.png b/airlines/8P.png
new file mode 100644
index 00000000..0cf7a245
Binary files /dev/null and b/airlines/8P.png differ
diff --git a/airlines/8Q.png b/airlines/8Q.png
new file mode 100644
index 00000000..65bae868
Binary files /dev/null and b/airlines/8Q.png differ
diff --git a/airlines/8U.png b/airlines/8U.png
new file mode 100644
index 00000000..4f07790c
Binary files /dev/null and b/airlines/8U.png differ
diff --git a/airlines/9B(1).png b/airlines/9B(1).png
new file mode 100644
index 00000000..6808110b
Binary files /dev/null and b/airlines/9B(1).png differ
diff --git a/airlines/9B.png b/airlines/9B.png
new file mode 100644
index 00000000..6808110b
Binary files /dev/null and b/airlines/9B.png differ
diff --git a/airlines/9E.png b/airlines/9E.png
new file mode 100644
index 00000000..36a62500
Binary files /dev/null and b/airlines/9E.png differ
diff --git a/airlines/9F(1).png b/airlines/9F(1).png
new file mode 100644
index 00000000..72c686d2
Binary files /dev/null and b/airlines/9F(1).png differ
diff --git a/airlines/9F.png b/airlines/9F.png
new file mode 100644
index 00000000..72c686d2
Binary files /dev/null and b/airlines/9F.png differ
diff --git a/airlines/9I.png b/airlines/9I.png
new file mode 100644
index 00000000..66d67d20
Binary files /dev/null and b/airlines/9I.png differ
diff --git a/airlines/9K.png b/airlines/9K.png
new file mode 100644
index 00000000..16376928
Binary files /dev/null and b/airlines/9K.png differ
diff --git a/airlines/9M.png b/airlines/9M.png
new file mode 100644
index 00000000..cbd6d6d5
Binary files /dev/null and b/airlines/9M.png differ
diff --git a/airlines/9N.png b/airlines/9N.png
new file mode 100644
index 00000000..c856bf9a
Binary files /dev/null and b/airlines/9N.png differ
diff --git a/airlines/9P.png b/airlines/9P.png
new file mode 100644
index 00000000..654bf187
Binary files /dev/null and b/airlines/9P.png differ
diff --git a/airlines/9R.png b/airlines/9R.png
new file mode 100644
index 00000000..43b59872
Binary files /dev/null and b/airlines/9R.png differ
diff --git a/airlines/9U.png b/airlines/9U.png
new file mode 100644
index 00000000..c302754d
Binary files /dev/null and b/airlines/9U.png differ
diff --git a/airlines/9V.png b/airlines/9V.png
new file mode 100644
index 00000000..55a3db72
Binary files /dev/null and b/airlines/9V.png differ
diff --git a/airlines/9W.png b/airlines/9W.png
new file mode 100644
index 00000000..db15541e
Binary files /dev/null and b/airlines/9W.png differ
diff --git a/airlines/9X.png b/airlines/9X.png
new file mode 100644
index 00000000..76dcf061
Binary files /dev/null and b/airlines/9X.png differ
diff --git a/airlines/A3.png b/airlines/A3.png
new file mode 100644
index 00000000..009103cd
Binary files /dev/null and b/airlines/A3.png differ
diff --git a/airlines/A4.png b/airlines/A4.png
new file mode 100644
index 00000000..46f37184
Binary files /dev/null and b/airlines/A4.png differ
diff --git a/airlines/A5.png b/airlines/A5.png
new file mode 100644
index 00000000..fef2abf4
Binary files /dev/null and b/airlines/A5.png differ
diff --git a/airlines/A9.png b/airlines/A9.png
new file mode 100644
index 00000000..736922c0
Binary files /dev/null and b/airlines/A9.png differ
diff --git a/airlines/AA.png b/airlines/AA.png
new file mode 100644
index 00000000..443454a6
Binary files /dev/null and b/airlines/AA.png differ
diff --git a/airlines/AB(1).png b/airlines/AB(1).png
new file mode 100644
index 00000000..26cfefa0
Binary files /dev/null and b/airlines/AB(1).png differ
diff --git a/airlines/AB.png b/airlines/AB.png
new file mode 100644
index 00000000..26cfefa0
Binary files /dev/null and b/airlines/AB.png differ
diff --git a/airlines/AC.png b/airlines/AC.png
new file mode 100644
index 00000000..a920b3b5
Binary files /dev/null and b/airlines/AC.png differ
diff --git a/airlines/AD.png b/airlines/AD.png
new file mode 100644
index 00000000..b22588d8
Binary files /dev/null and b/airlines/AD.png differ
diff --git a/airlines/AE.png b/airlines/AE.png
new file mode 100644
index 00000000..ac02885b
Binary files /dev/null and b/airlines/AE.png differ
diff --git a/airlines/AF.png b/airlines/AF.png
new file mode 100644
index 00000000..958ce195
Binary files /dev/null and b/airlines/AF.png differ
diff --git a/airlines/AH.png b/airlines/AH.png
new file mode 100644
index 00000000..24e03e80
Binary files /dev/null and b/airlines/AH.png differ
diff --git a/airlines/AI.png b/airlines/AI.png
new file mode 100644
index 00000000..cbb3a21a
Binary files /dev/null and b/airlines/AI.png differ
diff --git a/airlines/AJ(1).png b/airlines/AJ(1).png
new file mode 100644
index 00000000..c7b2d3c8
Binary files /dev/null and b/airlines/AJ(1).png differ
diff --git a/airlines/AJ.png b/airlines/AJ.png
new file mode 100644
index 00000000..c7b2d3c8
Binary files /dev/null and b/airlines/AJ.png differ
diff --git a/airlines/AK.png b/airlines/AK.png
new file mode 100644
index 00000000..b262172c
Binary files /dev/null and b/airlines/AK.png differ
diff --git a/airlines/AL.png b/airlines/AL.png
new file mode 100644
index 00000000..b31dd89a
Binary files /dev/null and b/airlines/AL.png differ
diff --git a/airlines/AM.png b/airlines/AM.png
new file mode 100644
index 00000000..bcf4c0b1
Binary files /dev/null and b/airlines/AM.png differ
diff --git a/airlines/AQ.png b/airlines/AQ.png
new file mode 100644
index 00000000..4e13578d
Binary files /dev/null and b/airlines/AQ.png differ
diff --git a/airlines/AR.png b/airlines/AR.png
new file mode 100644
index 00000000..e110c7f3
Binary files /dev/null and b/airlines/AR.png differ
diff --git a/airlines/AS.png b/airlines/AS.png
new file mode 100644
index 00000000..ecafe41f
Binary files /dev/null and b/airlines/AS.png differ
diff --git a/airlines/AT.png b/airlines/AT.png
new file mode 100644
index 00000000..fb1b5fd1
Binary files /dev/null and b/airlines/AT.png differ
diff --git a/airlines/AU.png b/airlines/AU.png
new file mode 100644
index 00000000..4fef9ac5
Binary files /dev/null and b/airlines/AU.png differ
diff --git a/airlines/AV.png b/airlines/AV.png
new file mode 100644
index 00000000..0c322749
Binary files /dev/null and b/airlines/AV.png differ
diff --git a/airlines/AW.png b/airlines/AW.png
new file mode 100644
index 00000000..443a127e
Binary files /dev/null and b/airlines/AW.png differ
diff --git a/airlines/AX.png b/airlines/AX.png
new file mode 100644
index 00000000..aed08b42
Binary files /dev/null and b/airlines/AX.png differ
diff --git a/airlines/AY.png b/airlines/AY.png
new file mode 100644
index 00000000..57419ec2
Binary files /dev/null and b/airlines/AY.png differ
diff --git a/airlines/AZ.png b/airlines/AZ.png
new file mode 100644
index 00000000..fd4bf8eb
Binary files /dev/null and b/airlines/AZ.png differ
diff --git a/airlines/B2.png b/airlines/B2.png
new file mode 100644
index 00000000..c4822ab7
Binary files /dev/null and b/airlines/B2.png differ
diff --git a/airlines/B3.png b/airlines/B3.png
new file mode 100644
index 00000000..b7a51007
Binary files /dev/null and b/airlines/B3.png differ
diff --git a/airlines/B5.png b/airlines/B5.png
new file mode 100644
index 00000000..da1545ba
Binary files /dev/null and b/airlines/B5.png differ
diff --git a/airlines/B6.png b/airlines/B6.png
new file mode 100644
index 00000000..c63d2590
Binary files /dev/null and b/airlines/B6.png differ
diff --git a/airlines/B7.png b/airlines/B7.png
new file mode 100644
index 00000000..040573e0
Binary files /dev/null and b/airlines/B7.png differ
diff --git a/airlines/B8.png b/airlines/B8.png
new file mode 100644
index 00000000..c4cb9559
Binary files /dev/null and b/airlines/B8.png differ
diff --git a/airlines/BA.png b/airlines/BA.png
new file mode 100644
index 00000000..19511726
Binary files /dev/null and b/airlines/BA.png differ
diff --git a/airlines/BB.png b/airlines/BB.png
new file mode 100644
index 00000000..d965571f
Binary files /dev/null and b/airlines/BB.png differ
diff --git a/airlines/BC.png b/airlines/BC.png
new file mode 100644
index 00000000..bb6a60fc
Binary files /dev/null and b/airlines/BC.png differ
diff --git a/airlines/BD(1).png b/airlines/BD(1).png
new file mode 100644
index 00000000..39e00476
Binary files /dev/null and b/airlines/BD(1).png differ
diff --git a/airlines/BD.png b/airlines/BD.png
new file mode 100644
index 00000000..39e00476
Binary files /dev/null and b/airlines/BD.png differ
diff --git a/airlines/BE.png b/airlines/BE.png
new file mode 100644
index 00000000..ee4f3af6
Binary files /dev/null and b/airlines/BE.png differ
diff --git a/airlines/BF.png b/airlines/BF.png
new file mode 100644
index 00000000..42ecf6ad
Binary files /dev/null and b/airlines/BF.png differ
diff --git a/airlines/BG.png b/airlines/BG.png
new file mode 100644
index 00000000..46c4c5b7
Binary files /dev/null and b/airlines/BG.png differ
diff --git a/airlines/BI.png b/airlines/BI.png
new file mode 100644
index 00000000..97af1d45
Binary files /dev/null and b/airlines/BI.png differ
diff --git a/airlines/BJ.png b/airlines/BJ.png
new file mode 100644
index 00000000..da1b2c76
Binary files /dev/null and b/airlines/BJ.png differ
diff --git a/airlines/BK.png b/airlines/BK.png
new file mode 100644
index 00000000..f7aa54a0
Binary files /dev/null and b/airlines/BK.png differ
diff --git a/airlines/BL.png b/airlines/BL.png
new file mode 100644
index 00000000..d1f72fb4
Binary files /dev/null and b/airlines/BL.png differ
diff --git a/airlines/BM.png b/airlines/BM.png
new file mode 100644
index 00000000..ab516df0
Binary files /dev/null and b/airlines/BM.png differ
diff --git a/airlines/BP.png b/airlines/BP.png
new file mode 100644
index 00000000..8cc0e143
Binary files /dev/null and b/airlines/BP.png differ
diff --git a/airlines/BR.png b/airlines/BR.png
new file mode 100644
index 00000000..ecfb7c44
Binary files /dev/null and b/airlines/BR.png differ
diff --git a/airlines/BS(1).png b/airlines/BS(1).png
new file mode 100644
index 00000000..19511726
Binary files /dev/null and b/airlines/BS(1).png differ
diff --git a/airlines/BS.png b/airlines/BS.png
new file mode 100644
index 00000000..19511726
Binary files /dev/null and b/airlines/BS.png differ
diff --git a/airlines/BT.png b/airlines/BT.png
new file mode 100644
index 00000000..b774bbc7
Binary files /dev/null and b/airlines/BT.png differ
diff --git a/airlines/BU.png b/airlines/BU.png
new file mode 100644
index 00000000..42ecd8d8
Binary files /dev/null and b/airlines/BU.png differ
diff --git a/airlines/BV.png b/airlines/BV.png
new file mode 100644
index 00000000..dd6ea3b4
Binary files /dev/null and b/airlines/BV.png differ
diff --git a/airlines/BW.png b/airlines/BW.png
new file mode 100644
index 00000000..9957e07d
Binary files /dev/null and b/airlines/BW.png differ
diff --git a/airlines/BX.png b/airlines/BX.png
new file mode 100644
index 00000000..3f82b11d
Binary files /dev/null and b/airlines/BX.png differ
diff --git a/airlines/BY.png b/airlines/BY.png
new file mode 100644
index 00000000..df560809
Binary files /dev/null and b/airlines/BY.png differ
diff --git a/airlines/BZ.png b/airlines/BZ.png
new file mode 100644
index 00000000..ca16350a
Binary files /dev/null and b/airlines/BZ.png differ
diff --git a/airlines/C2.png b/airlines/C2.png
new file mode 100644
index 00000000..45121726
Binary files /dev/null and b/airlines/C2.png differ
diff --git a/airlines/C3.png b/airlines/C3.png
new file mode 100644
index 00000000..0b7ce248
Binary files /dev/null and b/airlines/C3.png differ
diff --git a/airlines/C5.png b/airlines/C5.png
new file mode 100644
index 00000000..bb857b99
Binary files /dev/null and b/airlines/C5.png differ
diff --git a/airlines/CA.png b/airlines/CA.png
new file mode 100644
index 00000000..5e0ecb20
Binary files /dev/null and b/airlines/CA.png differ
diff --git a/airlines/CC(1).png b/airlines/CC(1).png
new file mode 100644
index 00000000..2953a4c4
Binary files /dev/null and b/airlines/CC(1).png differ
diff --git a/airlines/CC.png b/airlines/CC.png
new file mode 100644
index 00000000..2953a4c4
Binary files /dev/null and b/airlines/CC.png differ
diff --git a/airlines/CD.png b/airlines/CD.png
new file mode 100644
index 00000000..05189860
Binary files /dev/null and b/airlines/CD.png differ
diff --git a/airlines/CE.png b/airlines/CE.png
new file mode 100644
index 00000000..fe2ca983
Binary files /dev/null and b/airlines/CE.png differ
diff --git a/airlines/CF.png b/airlines/CF.png
new file mode 100644
index 00000000..b4588e0a
Binary files /dev/null and b/airlines/CF.png differ
diff --git a/airlines/CG.png b/airlines/CG.png
new file mode 100644
index 00000000..ab56b5c7
Binary files /dev/null and b/airlines/CG.png differ
diff --git a/airlines/CI.png b/airlines/CI.png
new file mode 100644
index 00000000..b8ade0b8
Binary files /dev/null and b/airlines/CI.png differ
diff --git a/airlines/CJ.png b/airlines/CJ.png
new file mode 100644
index 00000000..2e76d8b8
Binary files /dev/null and b/airlines/CJ.png differ
diff --git a/airlines/CL.png b/airlines/CL.png
new file mode 100644
index 00000000..9db14a45
Binary files /dev/null and b/airlines/CL.png differ
diff --git a/airlines/CM.png b/airlines/CM.png
new file mode 100644
index 00000000..4c3ead51
Binary files /dev/null and b/airlines/CM.png differ
diff --git a/airlines/CN.png b/airlines/CN.png
new file mode 100644
index 00000000..a38ba919
Binary files /dev/null and b/airlines/CN.png differ
diff --git a/airlines/CO(1).png b/airlines/CO(1).png
new file mode 100644
index 00000000..69dc1746
Binary files /dev/null and b/airlines/CO(1).png differ
diff --git a/airlines/CO.png b/airlines/CO.png
new file mode 100644
index 00000000..69dc1746
Binary files /dev/null and b/airlines/CO.png differ
diff --git a/airlines/CQ.png b/airlines/CQ.png
new file mode 100644
index 00000000..ee23bdd9
Binary files /dev/null and b/airlines/CQ.png differ
diff --git a/airlines/CR.png b/airlines/CR.png
new file mode 100644
index 00000000..0d298145
Binary files /dev/null and b/airlines/CR.png differ
diff --git a/airlines/CT.png b/airlines/CT.png
new file mode 100644
index 00000000..47019381
Binary files /dev/null and b/airlines/CT.png differ
diff --git a/airlines/CU.png b/airlines/CU.png
new file mode 100644
index 00000000..0b61e723
Binary files /dev/null and b/airlines/CU.png differ
diff --git a/airlines/CV.png b/airlines/CV.png
new file mode 100644
index 00000000..b3220390
Binary files /dev/null and b/airlines/CV.png differ
diff --git a/airlines/CW.png b/airlines/CW.png
new file mode 100644
index 00000000..dc485f46
Binary files /dev/null and b/airlines/CW.png differ
diff --git a/airlines/CX.png b/airlines/CX.png
new file mode 100644
index 00000000..32e8113d
Binary files /dev/null and b/airlines/CX.png differ
diff --git a/airlines/CZ.png b/airlines/CZ.png
new file mode 100644
index 00000000..27f9b9ed
Binary files /dev/null and b/airlines/CZ.png differ
diff --git a/airlines/D7.png b/airlines/D7.png
new file mode 100644
index 00000000..98a4ea81
Binary files /dev/null and b/airlines/D7.png differ
diff --git a/airlines/D8.png b/airlines/D8.png
new file mode 100644
index 00000000..89046c71
Binary files /dev/null and b/airlines/D8.png differ
diff --git a/airlines/DB.png b/airlines/DB.png
new file mode 100644
index 00000000..31dbf5c6
Binary files /dev/null and b/airlines/DB.png differ
diff --git a/airlines/DC.png b/airlines/DC.png
new file mode 100644
index 00000000..54274270
Binary files /dev/null and b/airlines/DC.png differ
diff --git a/airlines/DD.png b/airlines/DD.png
new file mode 100644
index 00000000..efa6c276
Binary files /dev/null and b/airlines/DD.png differ
diff --git a/airlines/DE.png b/airlines/DE.png
new file mode 100644
index 00000000..37b6cfb6
Binary files /dev/null and b/airlines/DE.png differ
diff --git a/airlines/DG.png b/airlines/DG.png
new file mode 100644
index 00000000..8b1b6f03
Binary files /dev/null and b/airlines/DG.png differ
diff --git a/airlines/DK.png b/airlines/DK.png
new file mode 100644
index 00000000..6e5dd02f
Binary files /dev/null and b/airlines/DK.png differ
diff --git a/airlines/DL.png b/airlines/DL.png
new file mode 100644
index 00000000..a22bb894
Binary files /dev/null and b/airlines/DL.png differ
diff --git a/airlines/DO.png b/airlines/DO.png
new file mode 100644
index 00000000..43095975
Binary files /dev/null and b/airlines/DO.png differ
diff --git a/airlines/DQ.png b/airlines/DQ.png
new file mode 100644
index 00000000..920eb528
Binary files /dev/null and b/airlines/DQ.png differ
diff --git a/airlines/DS.png b/airlines/DS.png
new file mode 100644
index 00000000..6c8d1c74
Binary files /dev/null and b/airlines/DS.png differ
diff --git a/airlines/DT.png b/airlines/DT.png
new file mode 100644
index 00000000..af06fa48
Binary files /dev/null and b/airlines/DT.png differ
diff --git a/airlines/DV.png b/airlines/DV.png
new file mode 100644
index 00000000..0e1daa88
Binary files /dev/null and b/airlines/DV.png differ
diff --git a/airlines/DX.png b/airlines/DX.png
new file mode 100644
index 00000000..8876b71c
Binary files /dev/null and b/airlines/DX.png differ
diff --git a/airlines/DY.png b/airlines/DY.png
new file mode 100644
index 00000000..cc5e04a0
Binary files /dev/null and b/airlines/DY.png differ
diff --git a/airlines/E4.png b/airlines/E4.png
new file mode 100644
index 00000000..a159fb23
Binary files /dev/null and b/airlines/E4.png differ
diff --git a/airlines/E5.png b/airlines/E5.png
new file mode 100644
index 00000000..09cd80d6
Binary files /dev/null and b/airlines/E5.png differ
diff --git a/airlines/E8.png b/airlines/E8.png
new file mode 100644
index 00000000..cda4ab33
Binary files /dev/null and b/airlines/E8.png differ
diff --git a/airlines/E9.png b/airlines/E9.png
new file mode 100644
index 00000000..9747ee07
Binary files /dev/null and b/airlines/E9.png differ
diff --git a/airlines/EB.png b/airlines/EB.png
new file mode 100644
index 00000000..05005661
Binary files /dev/null and b/airlines/EB.png differ
diff --git a/airlines/EC.png b/airlines/EC.png
new file mode 100644
index 00000000..212dbee1
Binary files /dev/null and b/airlines/EC.png differ
diff --git a/airlines/EG.png b/airlines/EG.png
new file mode 100644
index 00000000..26339183
Binary files /dev/null and b/airlines/EG.png differ
diff --git a/airlines/EH.png b/airlines/EH.png
new file mode 100644
index 00000000..e4a53843
Binary files /dev/null and b/airlines/EH.png differ
diff --git a/airlines/EI.png b/airlines/EI.png
new file mode 100644
index 00000000..21ea4bcc
Binary files /dev/null and b/airlines/EI.png differ
diff --git a/airlines/EJ.png b/airlines/EJ.png
new file mode 100644
index 00000000..dabb408e
Binary files /dev/null and b/airlines/EJ.png differ
diff --git a/airlines/EK.png b/airlines/EK.png
new file mode 100644
index 00000000..258f59d4
Binary files /dev/null and b/airlines/EK.png differ
diff --git a/airlines/EL.png b/airlines/EL.png
new file mode 100644
index 00000000..f65b949d
Binary files /dev/null and b/airlines/EL.png differ
diff --git a/airlines/EN.png b/airlines/EN.png
new file mode 100644
index 00000000..2c18f1fa
Binary files /dev/null and b/airlines/EN.png differ
diff --git a/airlines/EO.png b/airlines/EO.png
new file mode 100644
index 00000000..89d441e7
Binary files /dev/null and b/airlines/EO.png differ
diff --git a/airlines/EQ.png b/airlines/EQ.png
new file mode 100644
index 00000000..7e345bc0
Binary files /dev/null and b/airlines/EQ.png differ
diff --git a/airlines/ER.png b/airlines/ER.png
new file mode 100644
index 00000000..b3c58593
Binary files /dev/null and b/airlines/ER.png differ
diff --git a/airlines/ET.png b/airlines/ET.png
new file mode 100644
index 00000000..91e6f71b
Binary files /dev/null and b/airlines/ET.png differ
diff --git a/airlines/EU.png b/airlines/EU.png
new file mode 100644
index 00000000..13c3fde1
Binary files /dev/null and b/airlines/EU.png differ
diff --git a/airlines/EV.png b/airlines/EV.png
new file mode 100644
index 00000000..f183e43e
Binary files /dev/null and b/airlines/EV.png differ
diff --git a/airlines/EW.png b/airlines/EW.png
new file mode 100644
index 00000000..75a78866
Binary files /dev/null and b/airlines/EW.png differ
diff --git a/airlines/EY.png b/airlines/EY.png
new file mode 100644
index 00000000..0c4f74c6
Binary files /dev/null and b/airlines/EY.png differ
diff --git a/airlines/EZ.png b/airlines/EZ.png
new file mode 100644
index 00000000..4bf2727e
Binary files /dev/null and b/airlines/EZ.png differ
diff --git a/airlines/F3.png b/airlines/F3.png
new file mode 100644
index 00000000..ec3df86c
Binary files /dev/null and b/airlines/F3.png differ
diff --git a/airlines/F7(1).png b/airlines/F7(1).png
new file mode 100644
index 00000000..91decadd
Binary files /dev/null and b/airlines/F7(1).png differ
diff --git a/airlines/F7.png b/airlines/F7.png
new file mode 100644
index 00000000..91decadd
Binary files /dev/null and b/airlines/F7.png differ
diff --git a/airlines/F8.png b/airlines/F8.png
new file mode 100644
index 00000000..8dcac984
Binary files /dev/null and b/airlines/F8.png differ
diff --git a/airlines/F9.png b/airlines/F9.png
new file mode 100644
index 00000000..ae0adbd3
Binary files /dev/null and b/airlines/F9.png differ
diff --git a/airlines/FA.png b/airlines/FA.png
new file mode 100644
index 00000000..d078123a
Binary files /dev/null and b/airlines/FA.png differ
diff --git a/airlines/FB.png b/airlines/FB.png
new file mode 100644
index 00000000..4ac13f55
Binary files /dev/null and b/airlines/FB.png differ
diff --git a/airlines/FC.png b/airlines/FC.png
new file mode 100644
index 00000000..578b27ca
Binary files /dev/null and b/airlines/FC.png differ
diff --git a/airlines/FD.png b/airlines/FD.png
new file mode 100644
index 00000000..9028b828
Binary files /dev/null and b/airlines/FD.png differ
diff --git a/airlines/FH.png b/airlines/FH.png
new file mode 100644
index 00000000..d1f98bc8
Binary files /dev/null and b/airlines/FH.png differ
diff --git a/airlines/FI.png b/airlines/FI.png
new file mode 100644
index 00000000..23cf948a
Binary files /dev/null and b/airlines/FI.png differ
diff --git a/airlines/FJ.png b/airlines/FJ.png
new file mode 100644
index 00000000..8bccdf91
Binary files /dev/null and b/airlines/FJ.png differ
diff --git a/airlines/FM.png b/airlines/FM.png
new file mode 100644
index 00000000..ebd624fa
Binary files /dev/null and b/airlines/FM.png differ
diff --git a/airlines/FN.png b/airlines/FN.png
new file mode 100644
index 00000000..0a35c3c3
Binary files /dev/null and b/airlines/FN.png differ
diff --git a/airlines/FR.png b/airlines/FR.png
new file mode 100644
index 00000000..ecff368b
Binary files /dev/null and b/airlines/FR.png differ
diff --git a/airlines/FT.png b/airlines/FT.png
new file mode 100644
index 00000000..d008fd84
Binary files /dev/null and b/airlines/FT.png differ
diff --git a/airlines/FV.png b/airlines/FV.png
new file mode 100644
index 00000000..d797d30f
Binary files /dev/null and b/airlines/FV.png differ
diff --git a/airlines/FW.png b/airlines/FW.png
new file mode 100644
index 00000000..1c64d1a7
Binary files /dev/null and b/airlines/FW.png differ
diff --git a/airlines/FY.png b/airlines/FY.png
new file mode 100644
index 00000000..c884b818
Binary files /dev/null and b/airlines/FY.png differ
diff --git a/airlines/FZ.png b/airlines/FZ.png
new file mode 100644
index 00000000..7749bb66
Binary files /dev/null and b/airlines/FZ.png differ
diff --git a/airlines/G2.png b/airlines/G2.png
new file mode 100644
index 00000000..b0b9041a
Binary files /dev/null and b/airlines/G2.png differ
diff --git a/airlines/G3.png b/airlines/G3.png
new file mode 100644
index 00000000..0411b7cf
Binary files /dev/null and b/airlines/G3.png differ
diff --git a/airlines/G4.png b/airlines/G4.png
new file mode 100644
index 00000000..04b7f013
Binary files /dev/null and b/airlines/G4.png differ
diff --git a/airlines/G5.png b/airlines/G5.png
new file mode 100644
index 00000000..e4fc1100
Binary files /dev/null and b/airlines/G5.png differ
diff --git a/airlines/G7.png b/airlines/G7.png
new file mode 100644
index 00000000..8c769a26
Binary files /dev/null and b/airlines/G7.png differ
diff --git a/airlines/G8.png b/airlines/G8.png
new file mode 100644
index 00000000..396ccccb
Binary files /dev/null and b/airlines/G8.png differ
diff --git a/airlines/G9.png b/airlines/G9.png
new file mode 100644
index 00000000..5d8a50f7
Binary files /dev/null and b/airlines/G9.png differ
diff --git a/airlines/GA.png b/airlines/GA.png
new file mode 100644
index 00000000..9ff3203c
Binary files /dev/null and b/airlines/GA.png differ
diff --git a/airlines/GE.png b/airlines/GE.png
new file mode 100644
index 00000000..2f3b09da
Binary files /dev/null and b/airlines/GE.png differ
diff --git a/airlines/GF.png b/airlines/GF.png
new file mode 100644
index 00000000..bc594c7a
Binary files /dev/null and b/airlines/GF.png differ
diff --git a/airlines/GH.png b/airlines/GH.png
new file mode 100644
index 00000000..693a18b7
Binary files /dev/null and b/airlines/GH.png differ
diff --git a/airlines/GJ.png b/airlines/GJ.png
new file mode 100644
index 00000000..9f3de796
Binary files /dev/null and b/airlines/GJ.png differ
diff --git a/airlines/GK.png b/airlines/GK.png
new file mode 100644
index 00000000..371b95c1
Binary files /dev/null and b/airlines/GK.png differ
diff --git a/airlines/GL.png b/airlines/GL.png
new file mode 100644
index 00000000..5b5b19bd
Binary files /dev/null and b/airlines/GL.png differ
diff --git a/airlines/GM(1).png b/airlines/GM(1).png
new file mode 100644
index 00000000..c7c1ccc2
Binary files /dev/null and b/airlines/GM(1).png differ
diff --git a/airlines/GM.png b/airlines/GM.png
new file mode 100644
index 00000000..c7c1ccc2
Binary files /dev/null and b/airlines/GM.png differ
diff --git a/airlines/GP(1).png b/airlines/GP(1).png
new file mode 100644
index 00000000..70017688
Binary files /dev/null and b/airlines/GP(1).png differ
diff --git a/airlines/GP.png b/airlines/GP.png
new file mode 100644
index 00000000..70017688
Binary files /dev/null and b/airlines/GP.png differ
diff --git a/airlines/GQ.png b/airlines/GQ.png
new file mode 100644
index 00000000..4f5efbeb
Binary files /dev/null and b/airlines/GQ.png differ
diff --git a/airlines/GR.png b/airlines/GR.png
new file mode 100644
index 00000000..9e6ec649
Binary files /dev/null and b/airlines/GR.png differ
diff --git a/airlines/GS(1).png b/airlines/GS(1).png
new file mode 100644
index 00000000..5d3720cd
Binary files /dev/null and b/airlines/GS(1).png differ
diff --git a/airlines/GS.png b/airlines/GS.png
new file mode 100644
index 00000000..5d3720cd
Binary files /dev/null and b/airlines/GS.png differ
diff --git a/airlines/GV.png b/airlines/GV.png
new file mode 100644
index 00000000..ed9e6140
Binary files /dev/null and b/airlines/GV.png differ
diff --git a/airlines/GZ.png b/airlines/GZ.png
new file mode 100644
index 00000000..df1a344b
Binary files /dev/null and b/airlines/GZ.png differ
diff --git a/airlines/H1(1).png b/airlines/H1(1).png
new file mode 100644
index 00000000..9f044f03
Binary files /dev/null and b/airlines/H1(1).png differ
diff --git a/airlines/H1.png b/airlines/H1.png
new file mode 100644
index 00000000..9f044f03
Binary files /dev/null and b/airlines/H1.png differ
diff --git a/airlines/H2.png b/airlines/H2.png
new file mode 100644
index 00000000..9ddc4a01
Binary files /dev/null and b/airlines/H2.png differ
diff --git a/airlines/H9.png b/airlines/H9.png
new file mode 100644
index 00000000..77aa2ffb
Binary files /dev/null and b/airlines/H9.png differ
diff --git a/airlines/HA.png b/airlines/HA.png
new file mode 100644
index 00000000..5cf9a1b6
Binary files /dev/null and b/airlines/HA.png differ
diff --git a/airlines/HC(1).png b/airlines/HC(1).png
new file mode 100644
index 00000000..93eaa1ba
Binary files /dev/null and b/airlines/HC(1).png differ
diff --git a/airlines/HC.png b/airlines/HC.png
new file mode 100644
index 00000000..93eaa1ba
Binary files /dev/null and b/airlines/HC.png differ
diff --git a/airlines/HD.png b/airlines/HD.png
new file mode 100644
index 00000000..0b75954c
Binary files /dev/null and b/airlines/HD.png differ
diff --git a/airlines/HE.png b/airlines/HE.png
new file mode 100644
index 00000000..6b14656e
Binary files /dev/null and b/airlines/HE.png differ
diff --git a/airlines/HF.png b/airlines/HF.png
new file mode 100644
index 00000000..16fe54b7
Binary files /dev/null and b/airlines/HF.png differ
diff --git a/airlines/HG.png b/airlines/HG.png
new file mode 100644
index 00000000..af82b2e6
Binary files /dev/null and b/airlines/HG.png differ
diff --git a/airlines/HI.png b/airlines/HI.png
new file mode 100644
index 00000000..6783a58d
Binary files /dev/null and b/airlines/HI.png differ
diff --git a/airlines/HM.png b/airlines/HM.png
new file mode 100644
index 00000000..73df5bb5
Binary files /dev/null and b/airlines/HM.png differ
diff --git a/airlines/HO.png b/airlines/HO.png
new file mode 100644
index 00000000..0237be30
Binary files /dev/null and b/airlines/HO.png differ
diff --git a/airlines/HP.png b/airlines/HP.png
new file mode 100644
index 00000000..2b4c9b7b
Binary files /dev/null and b/airlines/HP.png differ
diff --git a/airlines/HQ.png b/airlines/HQ.png
new file mode 100644
index 00000000..414479d2
Binary files /dev/null and b/airlines/HQ.png differ
diff --git a/airlines/HR.png b/airlines/HR.png
new file mode 100644
index 00000000..6cfa270c
Binary files /dev/null and b/airlines/HR.png differ
diff --git a/airlines/HS.png b/airlines/HS.png
new file mode 100644
index 00000000..8f5c7c02
Binary files /dev/null and b/airlines/HS.png differ
diff --git a/airlines/HU.png b/airlines/HU.png
new file mode 100644
index 00000000..98400bc7
Binary files /dev/null and b/airlines/HU.png differ
diff --git a/airlines/HV.png b/airlines/HV.png
new file mode 100644
index 00000000..21ca8608
Binary files /dev/null and b/airlines/HV.png differ
diff --git a/airlines/HX.png b/airlines/HX.png
new file mode 100644
index 00000000..1699a345
Binary files /dev/null and b/airlines/HX.png differ
diff --git a/airlines/HY.png b/airlines/HY.png
new file mode 100644
index 00000000..f610e60f
Binary files /dev/null and b/airlines/HY.png differ
diff --git a/airlines/HZ.png b/airlines/HZ.png
new file mode 100644
index 00000000..1abda8bd
Binary files /dev/null and b/airlines/HZ.png differ
diff --git a/airlines/I2.png b/airlines/I2.png
new file mode 100644
index 00000000..4c7f0752
Binary files /dev/null and b/airlines/I2.png differ
diff --git a/airlines/I5.png b/airlines/I5.png
new file mode 100644
index 00000000..b3ca2650
Binary files /dev/null and b/airlines/I5.png differ
diff --git a/airlines/I9.png b/airlines/I9.png
new file mode 100644
index 00000000..db37c6e7
Binary files /dev/null and b/airlines/I9.png differ
diff --git a/airlines/IA.png b/airlines/IA.png
new file mode 100644
index 00000000..231e5fa3
Binary files /dev/null and b/airlines/IA.png differ
diff --git a/airlines/IB.png b/airlines/IB.png
new file mode 100644
index 00000000..536d42d5
Binary files /dev/null and b/airlines/IB.png differ
diff --git a/airlines/ID.png b/airlines/ID.png
new file mode 100644
index 00000000..70428eaa
Binary files /dev/null and b/airlines/ID.png differ
diff --git a/airlines/IE.png b/airlines/IE.png
new file mode 100644
index 00000000..eb3504a8
Binary files /dev/null and b/airlines/IE.png differ
diff --git a/airlines/IF.png b/airlines/IF.png
new file mode 100644
index 00000000..085991df
Binary files /dev/null and b/airlines/IF.png differ
diff --git a/airlines/IG.png b/airlines/IG.png
new file mode 100644
index 00000000..0dbd7100
Binary files /dev/null and b/airlines/IG.png differ
diff --git a/airlines/IL.png b/airlines/IL.png
new file mode 100644
index 00000000..501d1c8a
Binary files /dev/null and b/airlines/IL.png differ
diff --git a/airlines/IN.png b/airlines/IN.png
new file mode 100644
index 00000000..8a766de6
Binary files /dev/null and b/airlines/IN.png differ
diff --git a/airlines/IO.png b/airlines/IO.png
new file mode 100644
index 00000000..19cd49a5
Binary files /dev/null and b/airlines/IO.png differ
diff --git a/airlines/IR.png b/airlines/IR.png
new file mode 100644
index 00000000..64049459
Binary files /dev/null and b/airlines/IR.png differ
diff --git a/airlines/IT.png b/airlines/IT.png
new file mode 100644
index 00000000..32e14d26
Binary files /dev/null and b/airlines/IT.png differ
diff --git a/airlines/IU.png b/airlines/IU.png
new file mode 100644
index 00000000..82bb0f0f
Binary files /dev/null and b/airlines/IU.png differ
diff --git a/airlines/IW.png b/airlines/IW.png
new file mode 100644
index 00000000..04840c9e
Binary files /dev/null and b/airlines/IW.png differ
diff --git a/airlines/IX.png b/airlines/IX.png
new file mode 100644
index 00000000..afc6dc97
Binary files /dev/null and b/airlines/IX.png differ
diff --git a/airlines/IY.png b/airlines/IY.png
new file mode 100644
index 00000000..8d5d4c49
Binary files /dev/null and b/airlines/IY.png differ
diff --git a/airlines/IZ.png b/airlines/IZ.png
new file mode 100644
index 00000000..f1722f8f
Binary files /dev/null and b/airlines/IZ.png differ
diff --git a/airlines/J2.png b/airlines/J2.png
new file mode 100644
index 00000000..30c71265
Binary files /dev/null and b/airlines/J2.png differ
diff --git a/airlines/J8.png b/airlines/J8.png
new file mode 100644
index 00000000..35da3a2a
Binary files /dev/null and b/airlines/J8.png differ
diff --git a/airlines/J9.png b/airlines/J9.png
new file mode 100644
index 00000000..92498487
Binary files /dev/null and b/airlines/J9.png differ
diff --git a/airlines/JD.png b/airlines/JD.png
new file mode 100644
index 00000000..0a5dfb5e
Binary files /dev/null and b/airlines/JD.png differ
diff --git a/airlines/JE.png b/airlines/JE.png
new file mode 100644
index 00000000..0e25c684
Binary files /dev/null and b/airlines/JE.png differ
diff --git a/airlines/JF.png b/airlines/JF.png
new file mode 100644
index 00000000..199ee5aa
Binary files /dev/null and b/airlines/JF.png differ
diff --git a/airlines/JH.png b/airlines/JH.png
new file mode 100644
index 00000000..5fc971fd
Binary files /dev/null and b/airlines/JH.png differ
diff --git a/airlines/JI.png b/airlines/JI.png
new file mode 100644
index 00000000..ead1b327
Binary files /dev/null and b/airlines/JI.png differ
diff --git a/airlines/JJ.png b/airlines/JJ.png
new file mode 100644
index 00000000..0b3cfc68
Binary files /dev/null and b/airlines/JJ.png differ
diff --git a/airlines/JL.png b/airlines/JL.png
new file mode 100644
index 00000000..72d5d302
Binary files /dev/null and b/airlines/JL.png differ
diff --git a/airlines/JO.png b/airlines/JO.png
new file mode 100644
index 00000000..8b8b428d
Binary files /dev/null and b/airlines/JO.png differ
diff --git a/airlines/JP.png b/airlines/JP.png
new file mode 100644
index 00000000..6c76fe5a
Binary files /dev/null and b/airlines/JP.png differ
diff --git a/airlines/JQ.png b/airlines/JQ.png
new file mode 100644
index 00000000..66f5319a
Binary files /dev/null and b/airlines/JQ.png differ
diff --git a/airlines/JR.png b/airlines/JR.png
new file mode 100644
index 00000000..ca61d74b
Binary files /dev/null and b/airlines/JR.png differ
diff --git a/airlines/JT.png b/airlines/JT.png
new file mode 100644
index 00000000..49652a26
Binary files /dev/null and b/airlines/JT.png differ
diff --git a/airlines/JU.png b/airlines/JU.png
new file mode 100644
index 00000000..23f8f9a0
Binary files /dev/null and b/airlines/JU.png differ
diff --git a/airlines/JV.png b/airlines/JV.png
new file mode 100644
index 00000000..2973f122
Binary files /dev/null and b/airlines/JV.png differ
diff --git a/airlines/JW.png b/airlines/JW.png
new file mode 100644
index 00000000..e8f788f9
Binary files /dev/null and b/airlines/JW.png differ
diff --git a/airlines/JY.png b/airlines/JY.png
new file mode 100644
index 00000000..7449bf33
Binary files /dev/null and b/airlines/JY.png differ
diff --git a/airlines/JZ.png b/airlines/JZ.png
new file mode 100644
index 00000000..09d5b371
Binary files /dev/null and b/airlines/JZ.png differ
diff --git a/airlines/K4.png b/airlines/K4.png
new file mode 100644
index 00000000..a034b768
Binary files /dev/null and b/airlines/K4.png differ
diff --git a/airlines/K6.png b/airlines/K6.png
new file mode 100644
index 00000000..29c4287e
Binary files /dev/null and b/airlines/K6.png differ
diff --git a/airlines/K9.png b/airlines/K9.png
new file mode 100644
index 00000000..65fa950b
Binary files /dev/null and b/airlines/K9.png differ
diff --git a/airlines/KA.png b/airlines/KA.png
new file mode 100644
index 00000000..c89ff36a
Binary files /dev/null and b/airlines/KA.png differ
diff --git a/airlines/KB.png b/airlines/KB.png
new file mode 100644
index 00000000..2da11e0d
Binary files /dev/null and b/airlines/KB.png differ
diff --git a/airlines/KC.png b/airlines/KC.png
new file mode 100644
index 00000000..4d3e9fd5
Binary files /dev/null and b/airlines/KC.png differ
diff --git a/airlines/KD.png b/airlines/KD.png
new file mode 100644
index 00000000..8c6a7c92
Binary files /dev/null and b/airlines/KD.png differ
diff --git a/airlines/KE.png b/airlines/KE.png
new file mode 100644
index 00000000..3f1c65da
Binary files /dev/null and b/airlines/KE.png differ
diff --git a/airlines/KK.png b/airlines/KK.png
new file mode 100644
index 00000000..967a0812
Binary files /dev/null and b/airlines/KK.png differ
diff --git a/airlines/KL.png b/airlines/KL.png
new file mode 100644
index 00000000..aee0783b
Binary files /dev/null and b/airlines/KL.png differ
diff --git a/airlines/KM.png b/airlines/KM.png
new file mode 100644
index 00000000..92d5954c
Binary files /dev/null and b/airlines/KM.png differ
diff --git a/airlines/KN.png b/airlines/KN.png
new file mode 100644
index 00000000..37e37b12
Binary files /dev/null and b/airlines/KN.png differ
diff --git a/airlines/KO.png b/airlines/KO.png
new file mode 100644
index 00000000..cc5058e6
Binary files /dev/null and b/airlines/KO.png differ
diff --git a/airlines/KP.png b/airlines/KP.png
new file mode 100644
index 00000000..ccdc08ff
Binary files /dev/null and b/airlines/KP.png differ
diff --git a/airlines/KQ.png b/airlines/KQ.png
new file mode 100644
index 00000000..2a0f97e5
Binary files /dev/null and b/airlines/KQ.png differ
diff --git a/airlines/KS.png b/airlines/KS.png
new file mode 100644
index 00000000..b7cf1fc3
Binary files /dev/null and b/airlines/KS.png differ
diff --git a/airlines/KU.png b/airlines/KU.png
new file mode 100644
index 00000000..68526604
Binary files /dev/null and b/airlines/KU.png differ
diff --git a/airlines/KX.png b/airlines/KX.png
new file mode 100644
index 00000000..c414c801
Binary files /dev/null and b/airlines/KX.png differ
diff --git a/airlines/KY.png b/airlines/KY.png
new file mode 100644
index 00000000..cbc25d4b
Binary files /dev/null and b/airlines/KY.png differ
diff --git a/airlines/L6(1).png b/airlines/L6(1).png
new file mode 100644
index 00000000..22c10629
Binary files /dev/null and b/airlines/L6(1).png differ
diff --git a/airlines/L6.png b/airlines/L6.png
new file mode 100644
index 00000000..22c10629
Binary files /dev/null and b/airlines/L6.png differ
diff --git a/airlines/LA.png b/airlines/LA.png
new file mode 100644
index 00000000..bd8b3278
Binary files /dev/null and b/airlines/LA.png differ
diff --git a/airlines/LG.png b/airlines/LG.png
new file mode 100644
index 00000000..ab318bf4
Binary files /dev/null and b/airlines/LG.png differ
diff --git a/airlines/LH.png b/airlines/LH.png
new file mode 100644
index 00000000..9db14a45
Binary files /dev/null and b/airlines/LH.png differ
diff --git a/airlines/LI.png b/airlines/LI.png
new file mode 100644
index 00000000..46041afa
Binary files /dev/null and b/airlines/LI.png differ
diff --git a/airlines/LJ.png b/airlines/LJ.png
new file mode 100644
index 00000000..26067515
Binary files /dev/null and b/airlines/LJ.png differ
diff --git a/airlines/LM.png b/airlines/LM.png
new file mode 100644
index 00000000..f4dab3bb
Binary files /dev/null and b/airlines/LM.png differ
diff --git a/airlines/LN.png b/airlines/LN.png
new file mode 100644
index 00000000..5638e4f2
Binary files /dev/null and b/airlines/LN.png differ
diff --git a/airlines/LO.png b/airlines/LO.png
new file mode 100644
index 00000000..3f6ecb8f
Binary files /dev/null and b/airlines/LO.png differ
diff --git a/airlines/LP.png b/airlines/LP.png
new file mode 100644
index 00000000..b7addaab
Binary files /dev/null and b/airlines/LP.png differ
diff --git a/airlines/LQ(1).png b/airlines/LQ(1).png
new file mode 100644
index 00000000..7cc879ad
Binary files /dev/null and b/airlines/LQ(1).png differ
diff --git a/airlines/LQ.png b/airlines/LQ.png
new file mode 100644
index 00000000..7cc879ad
Binary files /dev/null and b/airlines/LQ.png differ
diff --git a/airlines/LR.png b/airlines/LR.png
new file mode 100644
index 00000000..fd886b62
Binary files /dev/null and b/airlines/LR.png differ
diff --git a/airlines/LS.png b/airlines/LS.png
new file mode 100644
index 00000000..7b61ccea
Binary files /dev/null and b/airlines/LS.png differ
diff --git a/airlines/LU.png b/airlines/LU.png
new file mode 100644
index 00000000..19480396
Binary files /dev/null and b/airlines/LU.png differ
diff --git a/airlines/LW.png b/airlines/LW.png
new file mode 100644
index 00000000..4d81552f
Binary files /dev/null and b/airlines/LW.png differ
diff --git a/airlines/LX.png b/airlines/LX.png
new file mode 100644
index 00000000..a93f428f
Binary files /dev/null and b/airlines/LX.png differ
diff --git a/airlines/LY(1).png b/airlines/LY(1).png
new file mode 100644
index 00000000..0e8bf05b
Binary files /dev/null and b/airlines/LY(1).png differ
diff --git a/airlines/LY.png b/airlines/LY.png
new file mode 100644
index 00000000..0e8bf05b
Binary files /dev/null and b/airlines/LY.png differ
diff --git a/airlines/M9(1).png b/airlines/M9(1).png
new file mode 100644
index 00000000..df12f872
Binary files /dev/null and b/airlines/M9(1).png differ
diff --git a/airlines/M9.png b/airlines/M9.png
new file mode 100644
index 00000000..df12f872
Binary files /dev/null and b/airlines/M9.png differ
diff --git a/airlines/MD.png b/airlines/MD.png
new file mode 100644
index 00000000..20796e8e
Binary files /dev/null and b/airlines/MD.png differ
diff --git a/airlines/ME.png b/airlines/ME.png
new file mode 100644
index 00000000..6a24397e
Binary files /dev/null and b/airlines/ME.png differ
diff --git a/airlines/MF.png b/airlines/MF.png
new file mode 100644
index 00000000..5ecd4173
Binary files /dev/null and b/airlines/MF.png differ
diff --git a/airlines/MH.png b/airlines/MH.png
new file mode 100644
index 00000000..48fdb48c
Binary files /dev/null and b/airlines/MH.png differ
diff --git a/airlines/MI.png b/airlines/MI.png
new file mode 100644
index 00000000..fa8dabd6
Binary files /dev/null and b/airlines/MI.png differ
diff --git a/airlines/MJ(1).png b/airlines/MJ(1).png
new file mode 100644
index 00000000..31a8e124
Binary files /dev/null and b/airlines/MJ(1).png differ
diff --git a/airlines/MJ.png b/airlines/MJ.png
new file mode 100644
index 00000000..31a8e124
Binary files /dev/null and b/airlines/MJ.png differ
diff --git a/airlines/MK.png b/airlines/MK.png
new file mode 100644
index 00000000..1365fbff
Binary files /dev/null and b/airlines/MK.png differ
diff --git a/airlines/MM.png b/airlines/MM.png
new file mode 100644
index 00000000..27ce34b1
Binary files /dev/null and b/airlines/MM.png differ
diff --git a/airlines/MN.png b/airlines/MN.png
new file mode 100644
index 00000000..994287ca
Binary files /dev/null and b/airlines/MN.png differ
diff --git a/airlines/MO.png b/airlines/MO.png
new file mode 100644
index 00000000..4fdb28bb
Binary files /dev/null and b/airlines/MO.png differ
diff --git a/airlines/MP.png b/airlines/MP.png
new file mode 100644
index 00000000..c071230c
Binary files /dev/null and b/airlines/MP.png differ
diff --git a/airlines/MR.png b/airlines/MR.png
new file mode 100644
index 00000000..fce9ed7f
Binary files /dev/null and b/airlines/MR.png differ
diff --git a/airlines/MS.png b/airlines/MS.png
new file mode 100644
index 00000000..198161ba
Binary files /dev/null and b/airlines/MS.png differ
diff --git a/airlines/MT.png b/airlines/MT.png
new file mode 100644
index 00000000..c0c415c7
Binary files /dev/null and b/airlines/MT.png differ
diff --git a/airlines/MU.png b/airlines/MU.png
new file mode 100644
index 00000000..5371ed6b
Binary files /dev/null and b/airlines/MU.png differ
diff --git a/airlines/MW.png b/airlines/MW.png
new file mode 100644
index 00000000..bbecd931
Binary files /dev/null and b/airlines/MW.png differ
diff --git a/airlines/MX.png b/airlines/MX.png
new file mode 100644
index 00000000..eb07a5c8
Binary files /dev/null and b/airlines/MX.png differ
diff --git a/airlines/MY.png b/airlines/MY.png
new file mode 100644
index 00000000..fea5a28d
Binary files /dev/null and b/airlines/MY.png differ
diff --git a/airlines/N4.png b/airlines/N4.png
new file mode 100644
index 00000000..701477c9
Binary files /dev/null and b/airlines/N4.png differ
diff --git a/airlines/NE.png b/airlines/NE.png
new file mode 100644
index 00000000..d5d623cd
Binary files /dev/null and b/airlines/NE.png differ
diff --git a/airlines/NF.png b/airlines/NF.png
new file mode 100644
index 00000000..1a3d518c
Binary files /dev/null and b/airlines/NF.png differ
diff --git a/airlines/NG.png b/airlines/NG.png
new file mode 100644
index 00000000..62e5d875
Binary files /dev/null and b/airlines/NG.png differ
diff --git a/airlines/NH.png b/airlines/NH.png
new file mode 100644
index 00000000..f3e110f4
Binary files /dev/null and b/airlines/NH.png differ
diff --git a/airlines/NI.png b/airlines/NI.png
new file mode 100644
index 00000000..bc4074c6
Binary files /dev/null and b/airlines/NI.png differ
diff --git a/airlines/NK.png b/airlines/NK.png
new file mode 100644
index 00000000..b6e7d70c
Binary files /dev/null and b/airlines/NK.png differ
diff --git a/airlines/NM.png b/airlines/NM.png
new file mode 100644
index 00000000..47ae98fd
Binary files /dev/null and b/airlines/NM.png differ
diff --git a/airlines/NO.png b/airlines/NO.png
new file mode 100644
index 00000000..5962be6c
Binary files /dev/null and b/airlines/NO.png differ
diff --git a/airlines/NP.png b/airlines/NP.png
new file mode 100644
index 00000000..5a5b6f5e
Binary files /dev/null and b/airlines/NP.png differ
diff --git a/airlines/NQ.png b/airlines/NQ.png
new file mode 100644
index 00000000..924e415a
Binary files /dev/null and b/airlines/NQ.png differ
diff --git a/airlines/NR.png b/airlines/NR.png
new file mode 100644
index 00000000..28c45be6
Binary files /dev/null and b/airlines/NR.png differ
diff --git a/airlines/NS.png b/airlines/NS.png
new file mode 100644
index 00000000..3163be58
Binary files /dev/null and b/airlines/NS.png differ
diff --git a/airlines/NT.png b/airlines/NT.png
new file mode 100644
index 00000000..dbbeeb6a
Binary files /dev/null and b/airlines/NT.png differ
diff --git a/airlines/NU.png b/airlines/NU.png
new file mode 100644
index 00000000..1e125852
Binary files /dev/null and b/airlines/NU.png differ
diff --git a/airlines/NX.png b/airlines/NX.png
new file mode 100644
index 00000000..c5bd551c
Binary files /dev/null and b/airlines/NX.png differ
diff --git a/airlines/NY.png b/airlines/NY.png
new file mode 100644
index 00000000..ebe8fcec
Binary files /dev/null and b/airlines/NY.png differ
diff --git a/airlines/NZ.png b/airlines/NZ.png
new file mode 100644
index 00000000..a8466d41
Binary files /dev/null and b/airlines/NZ.png differ
diff --git a/airlines/O8.png b/airlines/O8.png
new file mode 100644
index 00000000..ae97c3c2
Binary files /dev/null and b/airlines/O8.png differ
diff --git a/airlines/OA.png b/airlines/OA.png
new file mode 100644
index 00000000..621d0dd1
Binary files /dev/null and b/airlines/OA.png differ
diff --git a/airlines/OB.png b/airlines/OB.png
new file mode 100644
index 00000000..1a1e5bea
Binary files /dev/null and b/airlines/OB.png differ
diff --git a/airlines/OD.png b/airlines/OD.png
new file mode 100644
index 00000000..df91b6a7
Binary files /dev/null and b/airlines/OD.png differ
diff --git a/airlines/OH.png b/airlines/OH.png
new file mode 100644
index 00000000..6f6938c0
Binary files /dev/null and b/airlines/OH.png differ
diff --git a/airlines/OJ.png b/airlines/OJ.png
new file mode 100644
index 00000000..569fa729
Binary files /dev/null and b/airlines/OJ.png differ
diff --git a/airlines/OK.png b/airlines/OK.png
new file mode 100644
index 00000000..37537246
Binary files /dev/null and b/airlines/OK.png differ
diff --git a/airlines/OM.png b/airlines/OM.png
new file mode 100644
index 00000000..f27497bc
Binary files /dev/null and b/airlines/OM.png differ
diff --git a/airlines/OO.png b/airlines/OO.png
new file mode 100644
index 00000000..dae50d39
Binary files /dev/null and b/airlines/OO.png differ
diff --git a/airlines/OR.png b/airlines/OR.png
new file mode 100644
index 00000000..0c928849
Binary files /dev/null and b/airlines/OR.png differ
diff --git a/airlines/OS.png b/airlines/OS.png
new file mode 100644
index 00000000..042da7c7
Binary files /dev/null and b/airlines/OS.png differ
diff --git a/airlines/OU.png b/airlines/OU.png
new file mode 100644
index 00000000..778ef940
Binary files /dev/null and b/airlines/OU.png differ
diff --git a/airlines/OV.png b/airlines/OV.png
new file mode 100644
index 00000000..c5914b84
Binary files /dev/null and b/airlines/OV.png differ
diff --git a/airlines/OX.png b/airlines/OX.png
new file mode 100644
index 00000000..97c06c87
Binary files /dev/null and b/airlines/OX.png differ
diff --git a/airlines/OY.png b/airlines/OY.png
new file mode 100644
index 00000000..aea348c3
Binary files /dev/null and b/airlines/OY.png differ
diff --git a/airlines/OZ.png b/airlines/OZ.png
new file mode 100644
index 00000000..582e14ef
Binary files /dev/null and b/airlines/OZ.png differ
diff --git a/airlines/P0.png b/airlines/P0.png
new file mode 100644
index 00000000..72fd51ef
Binary files /dev/null and b/airlines/P0.png differ
diff --git a/airlines/P4.png b/airlines/P4.png
new file mode 100644
index 00000000..9d7db097
Binary files /dev/null and b/airlines/P4.png differ
diff --git a/airlines/P5.png b/airlines/P5.png
new file mode 100644
index 00000000..e35bfdfb
Binary files /dev/null and b/airlines/P5.png differ
diff --git a/airlines/P6.png b/airlines/P6.png
new file mode 100644
index 00000000..509737d3
Binary files /dev/null and b/airlines/P6.png differ
diff --git a/airlines/P7.png b/airlines/P7.png
new file mode 100644
index 00000000..8cbf4e20
Binary files /dev/null and b/airlines/P7.png differ
diff --git a/airlines/P9.png b/airlines/P9.png
new file mode 100644
index 00000000..d207ae84
Binary files /dev/null and b/airlines/P9.png differ
diff --git a/airlines/PA.png b/airlines/PA.png
new file mode 100644
index 00000000..8971c7b3
Binary files /dev/null and b/airlines/PA.png differ
diff --git a/airlines/PB.png b/airlines/PB.png
new file mode 100644
index 00000000..7fcd750c
Binary files /dev/null and b/airlines/PB.png differ
diff --git a/airlines/PC.png b/airlines/PC.png
new file mode 100644
index 00000000..b6968c38
Binary files /dev/null and b/airlines/PC.png differ
diff --git a/airlines/PD.png b/airlines/PD.png
new file mode 100644
index 00000000..be18d024
Binary files /dev/null and b/airlines/PD.png differ
diff --git a/airlines/PE.png b/airlines/PE.png
new file mode 100644
index 00000000..cc269035
Binary files /dev/null and b/airlines/PE.png differ
diff --git a/airlines/PG.png b/airlines/PG.png
new file mode 100644
index 00000000..11cd78e2
Binary files /dev/null and b/airlines/PG.png differ
diff --git a/airlines/PI.png b/airlines/PI.png
new file mode 100644
index 00000000..b13d8d09
Binary files /dev/null and b/airlines/PI.png differ
diff --git a/airlines/PK.png b/airlines/PK.png
new file mode 100644
index 00000000..26eb854d
Binary files /dev/null and b/airlines/PK.png differ
diff --git a/airlines/PL.png b/airlines/PL.png
new file mode 100644
index 00000000..9b452b7d
Binary files /dev/null and b/airlines/PL.png differ
diff --git a/airlines/PN.png b/airlines/PN.png
new file mode 100644
index 00000000..ec60e9d3
Binary files /dev/null and b/airlines/PN.png differ
diff --git a/airlines/PQ.png b/airlines/PQ.png
new file mode 100644
index 00000000..de0f9523
Binary files /dev/null and b/airlines/PQ.png differ
diff --git a/airlines/PR.png b/airlines/PR.png
new file mode 100644
index 00000000..188da9df
Binary files /dev/null and b/airlines/PR.png differ
diff --git a/airlines/PS.png b/airlines/PS.png
new file mode 100644
index 00000000..ca670ee2
Binary files /dev/null and b/airlines/PS.png differ
diff --git a/airlines/PU(1).png b/airlines/PU(1).png
new file mode 100644
index 00000000..f2c84aeb
Binary files /dev/null and b/airlines/PU(1).png differ
diff --git a/airlines/PU.png b/airlines/PU.png
new file mode 100644
index 00000000..f2c84aeb
Binary files /dev/null and b/airlines/PU.png differ
diff --git a/airlines/PV.png b/airlines/PV.png
new file mode 100644
index 00000000..2c0d28ba
Binary files /dev/null and b/airlines/PV.png differ
diff --git a/airlines/PW.png b/airlines/PW.png
new file mode 100644
index 00000000..fad0dc27
Binary files /dev/null and b/airlines/PW.png differ
diff --git a/airlines/PX.png b/airlines/PX.png
new file mode 100644
index 00000000..d80f9698
Binary files /dev/null and b/airlines/PX.png differ
diff --git a/airlines/PY.png b/airlines/PY.png
new file mode 100644
index 00000000..0902b350
Binary files /dev/null and b/airlines/PY.png differ
diff --git a/airlines/PZ.png b/airlines/PZ.png
new file mode 100644
index 00000000..5fd665c1
Binary files /dev/null and b/airlines/PZ.png differ
diff --git a/airlines/Q4.png b/airlines/Q4.png
new file mode 100644
index 00000000..20e5664a
Binary files /dev/null and b/airlines/Q4.png differ
diff --git a/airlines/Q6.png b/airlines/Q6.png
new file mode 100644
index 00000000..ba6c7026
Binary files /dev/null and b/airlines/Q6.png differ
diff --git a/airlines/Q7.png b/airlines/Q7.png
new file mode 100644
index 00000000..43ed2b40
Binary files /dev/null and b/airlines/Q7.png differ
diff --git a/airlines/Q8.png b/airlines/Q8.png
new file mode 100644
index 00000000..602b92ab
Binary files /dev/null and b/airlines/Q8.png differ
diff --git a/airlines/Q9.png b/airlines/Q9.png
new file mode 100644
index 00000000..408c9ef5
Binary files /dev/null and b/airlines/Q9.png differ
diff --git a/airlines/QA.png b/airlines/QA.png
new file mode 100644
index 00000000..37792308
Binary files /dev/null and b/airlines/QA.png differ
diff --git a/airlines/QB.png b/airlines/QB.png
new file mode 100644
index 00000000..73257ab2
Binary files /dev/null and b/airlines/QB.png differ
diff --git a/airlines/QC.png b/airlines/QC.png
new file mode 100644
index 00000000..3883dcfd
Binary files /dev/null and b/airlines/QC.png differ
diff --git a/airlines/QD(1).png b/airlines/QD(1).png
new file mode 100644
index 00000000..b4632a10
Binary files /dev/null and b/airlines/QD(1).png differ
diff --git a/airlines/QD.png b/airlines/QD.png
new file mode 100644
index 00000000..b4632a10
Binary files /dev/null and b/airlines/QD.png differ
diff --git a/airlines/QF.png b/airlines/QF.png
new file mode 100644
index 00000000..5f54b214
Binary files /dev/null and b/airlines/QF.png differ
diff --git a/airlines/QG.png b/airlines/QG.png
new file mode 100644
index 00000000..4a9809ae
Binary files /dev/null and b/airlines/QG.png differ
diff --git a/airlines/QH.png b/airlines/QH.png
new file mode 100644
index 00000000..826efe53
Binary files /dev/null and b/airlines/QH.png differ
diff --git a/airlines/QK.png b/airlines/QK.png
new file mode 100644
index 00000000..29e94ee2
Binary files /dev/null and b/airlines/QK.png differ
diff --git a/airlines/QL.png b/airlines/QL.png
new file mode 100644
index 00000000..87c0629f
Binary files /dev/null and b/airlines/QL.png differ
diff --git a/airlines/QP.png b/airlines/QP.png
new file mode 100644
index 00000000..d0ae21cd
Binary files /dev/null and b/airlines/QP.png differ
diff --git a/airlines/QQ.png b/airlines/QQ.png
new file mode 100644
index 00000000..4b8afab3
Binary files /dev/null and b/airlines/QQ.png differ
diff --git a/airlines/QR.png b/airlines/QR.png
new file mode 100644
index 00000000..b878456c
Binary files /dev/null and b/airlines/QR.png differ
diff --git a/airlines/QS.png b/airlines/QS.png
new file mode 100644
index 00000000..17e03a21
Binary files /dev/null and b/airlines/QS.png differ
diff --git a/airlines/QU.png b/airlines/QU.png
new file mode 100644
index 00000000..6b8492dd
Binary files /dev/null and b/airlines/QU.png differ
diff --git a/airlines/QV.png b/airlines/QV.png
new file mode 100644
index 00000000..823f625f
Binary files /dev/null and b/airlines/QV.png differ
diff --git a/airlines/QW.png b/airlines/QW.png
new file mode 100644
index 00000000..67591cab
Binary files /dev/null and b/airlines/QW.png differ
diff --git a/airlines/QX.png b/airlines/QX.png
new file mode 100644
index 00000000..0b80db21
Binary files /dev/null and b/airlines/QX.png differ
diff --git a/airlines/QZ.png b/airlines/QZ.png
new file mode 100644
index 00000000..15e6451a
Binary files /dev/null and b/airlines/QZ.png differ
diff --git a/airlines/R3.png b/airlines/R3.png
new file mode 100644
index 00000000..3ef1b0a6
Binary files /dev/null and b/airlines/R3.png differ
diff --git a/airlines/R5.png b/airlines/R5.png
new file mode 100644
index 00000000..c786386c
Binary files /dev/null and b/airlines/R5.png differ
diff --git a/airlines/R6.png b/airlines/R6.png
new file mode 100644
index 00000000..642b4635
Binary files /dev/null and b/airlines/R6.png differ
diff --git a/airlines/R7.png b/airlines/R7.png
new file mode 100644
index 00000000..b19238ef
Binary files /dev/null and b/airlines/R7.png differ
diff --git a/airlines/RA.png b/airlines/RA.png
new file mode 100644
index 00000000..3130001e
Binary files /dev/null and b/airlines/RA.png differ
diff --git a/airlines/RB.png b/airlines/RB.png
new file mode 100644
index 00000000..03c71712
Binary files /dev/null and b/airlines/RB.png differ
diff --git a/airlines/RC.png b/airlines/RC.png
new file mode 100644
index 00000000..7f61f7ab
Binary files /dev/null and b/airlines/RC.png differ
diff --git a/airlines/RE.png b/airlines/RE.png
new file mode 100644
index 00000000..4eed78fe
Binary files /dev/null and b/airlines/RE.png differ
diff --git a/airlines/RG.png b/airlines/RG.png
new file mode 100644
index 00000000..ea2e7dbd
Binary files /dev/null and b/airlines/RG.png differ
diff --git a/airlines/RJ.png b/airlines/RJ.png
new file mode 100644
index 00000000..20aa8953
Binary files /dev/null and b/airlines/RJ.png differ
diff --git a/airlines/RK.png b/airlines/RK.png
new file mode 100644
index 00000000..57e45387
Binary files /dev/null and b/airlines/RK.png differ
diff --git a/airlines/RO.png b/airlines/RO.png
new file mode 100644
index 00000000..1ab98d1d
Binary files /dev/null and b/airlines/RO.png differ
diff --git a/airlines/RQ.png b/airlines/RQ.png
new file mode 100644
index 00000000..5ffae7d1
Binary files /dev/null and b/airlines/RQ.png differ
diff --git a/airlines/RY.png b/airlines/RY.png
new file mode 100644
index 00000000..7a00713d
Binary files /dev/null and b/airlines/RY.png differ
diff --git a/airlines/S2.png b/airlines/S2.png
new file mode 100644
index 00000000..915d6298
Binary files /dev/null and b/airlines/S2.png differ
diff --git a/airlines/S3.png b/airlines/S3.png
new file mode 100644
index 00000000..b4012023
Binary files /dev/null and b/airlines/S3.png differ
diff --git a/airlines/S4.png b/airlines/S4.png
new file mode 100644
index 00000000..9b8a84fa
Binary files /dev/null and b/airlines/S4.png differ
diff --git a/airlines/S7.png b/airlines/S7.png
new file mode 100644
index 00000000..9f3ee5a5
Binary files /dev/null and b/airlines/S7.png differ
diff --git a/airlines/S9.png b/airlines/S9.png
new file mode 100644
index 00000000..7be5c0eb
Binary files /dev/null and b/airlines/S9.png differ
diff --git a/airlines/SA.png b/airlines/SA.png
new file mode 100644
index 00000000..d6da3a47
Binary files /dev/null and b/airlines/SA.png differ
diff --git a/airlines/SB.png b/airlines/SB.png
new file mode 100644
index 00000000..99901c77
Binary files /dev/null and b/airlines/SB.png differ
diff --git a/airlines/SC.png b/airlines/SC.png
new file mode 100644
index 00000000..73732353
Binary files /dev/null and b/airlines/SC.png differ
diff --git a/airlines/SD.png b/airlines/SD.png
new file mode 100644
index 00000000..83d5a79e
Binary files /dev/null and b/airlines/SD.png differ
diff --git a/airlines/SE.png b/airlines/SE.png
new file mode 100644
index 00000000..ee788310
Binary files /dev/null and b/airlines/SE.png differ
diff --git a/airlines/SF.png b/airlines/SF.png
new file mode 100644
index 00000000..e7ec988f
Binary files /dev/null and b/airlines/SF.png differ
diff --git a/airlines/SG.png b/airlines/SG.png
new file mode 100644
index 00000000..1f89480a
Binary files /dev/null and b/airlines/SG.png differ
diff --git a/airlines/SH.png b/airlines/SH.png
new file mode 100644
index 00000000..855c80fb
Binary files /dev/null and b/airlines/SH.png differ
diff --git a/airlines/SI.png b/airlines/SI.png
new file mode 100644
index 00000000..1bfb1085
Binary files /dev/null and b/airlines/SI.png differ
diff --git a/airlines/SJ.png b/airlines/SJ.png
new file mode 100644
index 00000000..0678a54d
Binary files /dev/null and b/airlines/SJ.png differ
diff --git a/airlines/SK.png b/airlines/SK.png
new file mode 100644
index 00000000..2803313f
Binary files /dev/null and b/airlines/SK.png differ
diff --git a/airlines/SL.png b/airlines/SL.png
new file mode 100644
index 00000000..c6902488
Binary files /dev/null and b/airlines/SL.png differ
diff --git a/airlines/SM.png b/airlines/SM.png
new file mode 100644
index 00000000..dfdf38c0
Binary files /dev/null and b/airlines/SM.png differ
diff --git a/airlines/SN.png b/airlines/SN.png
new file mode 100644
index 00000000..78a5db42
Binary files /dev/null and b/airlines/SN.png differ
diff --git a/airlines/SO.png b/airlines/SO.png
new file mode 100644
index 00000000..d040911f
Binary files /dev/null and b/airlines/SO.png differ
diff --git a/airlines/SP.png b/airlines/SP.png
new file mode 100644
index 00000000..662cf3bc
Binary files /dev/null and b/airlines/SP.png differ
diff --git a/airlines/SQ.png b/airlines/SQ.png
new file mode 100644
index 00000000..223dc8c9
Binary files /dev/null and b/airlines/SQ.png differ
diff --git a/airlines/SS.png b/airlines/SS.png
new file mode 100644
index 00000000..96528cd0
Binary files /dev/null and b/airlines/SS.png differ
diff --git a/airlines/ST.png b/airlines/ST.png
new file mode 100644
index 00000000..2cebbd6c
Binary files /dev/null and b/airlines/ST.png differ
diff --git a/airlines/SU.png b/airlines/SU.png
new file mode 100644
index 00000000..59464547
Binary files /dev/null and b/airlines/SU.png differ
diff --git a/airlines/SV.png b/airlines/SV.png
new file mode 100644
index 00000000..a55797b8
Binary files /dev/null and b/airlines/SV.png differ
diff --git a/airlines/SW.png b/airlines/SW.png
new file mode 100644
index 00000000..3f07f874
Binary files /dev/null and b/airlines/SW.png differ
diff --git a/airlines/SX.png b/airlines/SX.png
new file mode 100644
index 00000000..8acd01d2
Binary files /dev/null and b/airlines/SX.png differ
diff --git a/airlines/SY.png b/airlines/SY.png
new file mode 100644
index 00000000..82694a00
Binary files /dev/null and b/airlines/SY.png differ
diff --git a/airlines/SZ.png b/airlines/SZ.png
new file mode 100644
index 00000000..6da19d55
Binary files /dev/null and b/airlines/SZ.png differ
diff --git a/airlines/T0.png b/airlines/T0.png
new file mode 100644
index 00000000..809f03bb
Binary files /dev/null and b/airlines/T0.png differ
diff --git a/airlines/T3.png b/airlines/T3.png
new file mode 100644
index 00000000..e8092f18
Binary files /dev/null and b/airlines/T3.png differ
diff --git a/airlines/T5.png b/airlines/T5.png
new file mode 100644
index 00000000..7b682565
Binary files /dev/null and b/airlines/T5.png differ
diff --git a/airlines/T7.png b/airlines/T7.png
new file mode 100644
index 00000000..0309afd9
Binary files /dev/null and b/airlines/T7.png differ
diff --git a/airlines/TA.png b/airlines/TA.png
new file mode 100644
index 00000000..fd886b62
Binary files /dev/null and b/airlines/TA.png differ
diff --git a/airlines/TB.png b/airlines/TB.png
new file mode 100644
index 00000000..df560809
Binary files /dev/null and b/airlines/TB.png differ
diff --git a/airlines/TC.png b/airlines/TC.png
new file mode 100644
index 00000000..edfd9a50
Binary files /dev/null and b/airlines/TC.png differ
diff --git a/airlines/TF.png b/airlines/TF.png
new file mode 100644
index 00000000..250c064b
Binary files /dev/null and b/airlines/TF.png differ
diff --git a/airlines/TG.png b/airlines/TG.png
new file mode 100644
index 00000000..f4e201dc
Binary files /dev/null and b/airlines/TG.png differ
diff --git a/airlines/TI.png b/airlines/TI.png
new file mode 100644
index 00000000..14ed376f
Binary files /dev/null and b/airlines/TI.png differ
diff --git a/airlines/TJ.png b/airlines/TJ.png
new file mode 100644
index 00000000..58a537c9
Binary files /dev/null and b/airlines/TJ.png differ
diff --git a/airlines/TK.png b/airlines/TK.png
new file mode 100644
index 00000000..ccaa4259
Binary files /dev/null and b/airlines/TK.png differ
diff --git a/airlines/TL.png b/airlines/TL.png
new file mode 100644
index 00000000..a71c604c
Binary files /dev/null and b/airlines/TL.png differ
diff --git a/airlines/TM.png b/airlines/TM.png
new file mode 100644
index 00000000..c3bd91d1
Binary files /dev/null and b/airlines/TM.png differ
diff --git a/airlines/TN.png b/airlines/TN.png
new file mode 100644
index 00000000..3931ceb9
Binary files /dev/null and b/airlines/TN.png differ
diff --git a/airlines/TO.png b/airlines/TO.png
new file mode 100644
index 00000000..91ecd6b2
Binary files /dev/null and b/airlines/TO.png differ
diff --git a/airlines/TP.png b/airlines/TP.png
new file mode 100644
index 00000000..152c95cb
Binary files /dev/null and b/airlines/TP.png differ
diff --git a/airlines/TQ.png b/airlines/TQ.png
new file mode 100644
index 00000000..7eaaa868
Binary files /dev/null and b/airlines/TQ.png differ
diff --git a/airlines/TR.png b/airlines/TR.png
new file mode 100644
index 00000000..bc52203d
Binary files /dev/null and b/airlines/TR.png differ
diff --git a/airlines/TS.png b/airlines/TS.png
new file mode 100644
index 00000000..4d305653
Binary files /dev/null and b/airlines/TS.png differ
diff --git a/airlines/TT.png b/airlines/TT.png
new file mode 100644
index 00000000..fe6e731d
Binary files /dev/null and b/airlines/TT.png differ
diff --git a/airlines/TU.png b/airlines/TU.png
new file mode 100644
index 00000000..fe6e731d
Binary files /dev/null and b/airlines/TU.png differ
diff --git a/airlines/TW.png b/airlines/TW.png
new file mode 100644
index 00000000..0ff61d33
Binary files /dev/null and b/airlines/TW.png differ
diff --git a/airlines/TX.png b/airlines/TX.png
new file mode 100644
index 00000000..25f0dd3c
Binary files /dev/null and b/airlines/TX.png differ
diff --git a/airlines/TY.png b/airlines/TY.png
new file mode 100644
index 00000000..4fcb1864
Binary files /dev/null and b/airlines/TY.png differ
diff --git a/airlines/TZ.png b/airlines/TZ.png
new file mode 100644
index 00000000..40ad74a4
Binary files /dev/null and b/airlines/TZ.png differ
diff --git a/airlines/U2.png b/airlines/U2.png
new file mode 100644
index 00000000..cf399aa4
Binary files /dev/null and b/airlines/U2.png differ
diff --git a/airlines/U6.png b/airlines/U6.png
new file mode 100644
index 00000000..fd3d1374
Binary files /dev/null and b/airlines/U6.png differ
diff --git a/airlines/UA.png b/airlines/UA.png
new file mode 100644
index 00000000..69dc1746
Binary files /dev/null and b/airlines/UA.png differ
diff --git a/airlines/UB(1).png b/airlines/UB(1).png
new file mode 100644
index 00000000..57ac2f73
Binary files /dev/null and b/airlines/UB(1).png differ
diff --git a/airlines/UB.png b/airlines/UB.png
new file mode 100644
index 00000000..57ac2f73
Binary files /dev/null and b/airlines/UB.png differ
diff --git a/airlines/UD.png b/airlines/UD.png
new file mode 100644
index 00000000..127df297
Binary files /dev/null and b/airlines/UD.png differ
diff --git a/airlines/UF.png b/airlines/UF.png
new file mode 100644
index 00000000..e8b8eff2
Binary files /dev/null and b/airlines/UF.png differ
diff --git a/airlines/UG.png b/airlines/UG.png
new file mode 100644
index 00000000..394866df
Binary files /dev/null and b/airlines/UG.png differ
diff --git a/airlines/UH.png b/airlines/UH.png
new file mode 100644
index 00000000..d1e1e539
Binary files /dev/null and b/airlines/UH.png differ
diff --git a/airlines/UJ.png b/airlines/UJ.png
new file mode 100644
index 00000000..cec5a97a
Binary files /dev/null and b/airlines/UJ.png differ
diff --git a/airlines/UK.png b/airlines/UK.png
new file mode 100644
index 00000000..9deda6af
Binary files /dev/null and b/airlines/UK.png differ
diff --git a/airlines/UL.png b/airlines/UL.png
new file mode 100644
index 00000000..11b85c5e
Binary files /dev/null and b/airlines/UL.png differ
diff --git a/airlines/UM.png b/airlines/UM.png
new file mode 100644
index 00000000..c33fad0c
Binary files /dev/null and b/airlines/UM.png differ
diff --git a/airlines/UN.png b/airlines/UN.png
new file mode 100644
index 00000000..2c7eb2b9
Binary files /dev/null and b/airlines/UN.png differ
diff --git a/airlines/UO.png b/airlines/UO.png
new file mode 100644
index 00000000..f21694c9
Binary files /dev/null and b/airlines/UO.png differ
diff --git a/airlines/UP.png b/airlines/UP.png
new file mode 100644
index 00000000..01eb9619
Binary files /dev/null and b/airlines/UP.png differ
diff --git a/airlines/US.png b/airlines/US.png
new file mode 100644
index 00000000..2b4c9b7b
Binary files /dev/null and b/airlines/US.png differ
diff --git a/airlines/UT.png b/airlines/UT.png
new file mode 100644
index 00000000..34d9aeb6
Binary files /dev/null and b/airlines/UT.png differ
diff --git a/airlines/UU.png b/airlines/UU.png
new file mode 100644
index 00000000..ff1ef2e3
Binary files /dev/null and b/airlines/UU.png differ
diff --git a/airlines/UX.png b/airlines/UX.png
new file mode 100644
index 00000000..9fe5f3cc
Binary files /dev/null and b/airlines/UX.png differ
diff --git a/airlines/V3.png b/airlines/V3.png
new file mode 100644
index 00000000..c395147d
Binary files /dev/null and b/airlines/V3.png differ
diff --git a/airlines/V5.png b/airlines/V5.png
new file mode 100644
index 00000000..08116076
Binary files /dev/null and b/airlines/V5.png differ
diff --git a/airlines/V7.png b/airlines/V7.png
new file mode 100644
index 00000000..efecdf7b
Binary files /dev/null and b/airlines/V7.png differ
diff --git a/airlines/VA.png b/airlines/VA.png
new file mode 100644
index 00000000..8bb9752b
Binary files /dev/null and b/airlines/VA.png differ
diff --git a/airlines/VB.png b/airlines/VB.png
new file mode 100644
index 00000000..a0e15d92
Binary files /dev/null and b/airlines/VB.png differ
diff --git a/airlines/VD.png b/airlines/VD.png
new file mode 100644
index 00000000..ee964b74
Binary files /dev/null and b/airlines/VD.png differ
diff --git a/airlines/VG.png b/airlines/VG.png
new file mode 100644
index 00000000..e06aa718
Binary files /dev/null and b/airlines/VG.png differ
diff --git a/airlines/VH.png b/airlines/VH.png
new file mode 100644
index 00000000..e608dc45
Binary files /dev/null and b/airlines/VH.png differ
diff --git a/airlines/VI.png b/airlines/VI.png
new file mode 100644
index 00000000..2e28785a
Binary files /dev/null and b/airlines/VI.png differ
diff --git a/airlines/VJ.png b/airlines/VJ.png
new file mode 100644
index 00000000..d0312f43
Binary files /dev/null and b/airlines/VJ.png differ
diff --git a/airlines/VL.png b/airlines/VL.png
new file mode 100644
index 00000000..9e973135
Binary files /dev/null and b/airlines/VL.png differ
diff --git a/airlines/VM.png b/airlines/VM.png
new file mode 100644
index 00000000..e0b0cc67
Binary files /dev/null and b/airlines/VM.png differ
diff --git a/airlines/VN.png b/airlines/VN.png
new file mode 100644
index 00000000..0b54b089
Binary files /dev/null and b/airlines/VN.png differ
diff --git a/airlines/VO.png b/airlines/VO.png
new file mode 100644
index 00000000..c442b658
Binary files /dev/null and b/airlines/VO.png differ
diff --git a/airlines/VP.png b/airlines/VP.png
new file mode 100644
index 00000000..41ef5cdd
Binary files /dev/null and b/airlines/VP.png differ
diff --git a/airlines/VQ.png b/airlines/VQ.png
new file mode 100644
index 00000000..9df1df17
Binary files /dev/null and b/airlines/VQ.png differ
diff --git a/airlines/VR.png b/airlines/VR.png
new file mode 100644
index 00000000..048b8352
Binary files /dev/null and b/airlines/VR.png differ
diff --git a/airlines/VS.png b/airlines/VS.png
new file mode 100644
index 00000000..8bb9752b
Binary files /dev/null and b/airlines/VS.png differ
diff --git a/airlines/VT.png b/airlines/VT.png
new file mode 100644
index 00000000..d811042f
Binary files /dev/null and b/airlines/VT.png differ
diff --git a/airlines/VW.png b/airlines/VW.png
new file mode 100644
index 00000000..9f6ab651
Binary files /dev/null and b/airlines/VW.png differ
diff --git a/airlines/VX.png b/airlines/VX.png
new file mode 100644
index 00000000..acef8b78
Binary files /dev/null and b/airlines/VX.png differ
diff --git a/airlines/VY.png b/airlines/VY.png
new file mode 100644
index 00000000..1c149302
Binary files /dev/null and b/airlines/VY.png differ
diff --git a/airlines/VZ.png b/airlines/VZ.png
new file mode 100644
index 00000000..fc98c35d
Binary files /dev/null and b/airlines/VZ.png differ
diff --git a/airlines/W2.png b/airlines/W2.png
new file mode 100644
index 00000000..ad1ee44a
Binary files /dev/null and b/airlines/W2.png differ
diff --git a/airlines/W3.png b/airlines/W3.png
new file mode 100644
index 00000000..cdbdb38d
Binary files /dev/null and b/airlines/W3.png differ
diff --git a/airlines/W4.png b/airlines/W4.png
new file mode 100644
index 00000000..d31e21f3
Binary files /dev/null and b/airlines/W4.png differ
diff --git a/airlines/W5.png b/airlines/W5.png
new file mode 100644
index 00000000..42e733ab
Binary files /dev/null and b/airlines/W5.png differ
diff --git a/airlines/W6.png b/airlines/W6.png
new file mode 100644
index 00000000..d31e21f3
Binary files /dev/null and b/airlines/W6.png differ
diff --git a/airlines/W9.png b/airlines/W9.png
new file mode 100644
index 00000000..d31e21f3
Binary files /dev/null and b/airlines/W9.png differ
diff --git a/airlines/WA.png b/airlines/WA.png
new file mode 100644
index 00000000..fc818c22
Binary files /dev/null and b/airlines/WA.png differ
diff --git a/airlines/WB.png b/airlines/WB.png
new file mode 100644
index 00000000..cb9c4742
Binary files /dev/null and b/airlines/WB.png differ
diff --git a/airlines/WE.png b/airlines/WE.png
new file mode 100644
index 00000000..859de097
Binary files /dev/null and b/airlines/WE.png differ
diff --git a/airlines/WF.png b/airlines/WF.png
new file mode 100644
index 00000000..46e5c072
Binary files /dev/null and b/airlines/WF.png differ
diff --git a/airlines/WG.png b/airlines/WG.png
new file mode 100644
index 00000000..67085398
Binary files /dev/null and b/airlines/WG.png differ
diff --git a/airlines/WI.png b/airlines/WI.png
new file mode 100644
index 00000000..5e751493
Binary files /dev/null and b/airlines/WI.png differ
diff --git a/airlines/WK.png b/airlines/WK.png
new file mode 100644
index 00000000..0055b1a1
Binary files /dev/null and b/airlines/WK.png differ
diff --git a/airlines/WM.png b/airlines/WM.png
new file mode 100644
index 00000000..5686cf8d
Binary files /dev/null and b/airlines/WM.png differ
diff --git a/airlines/WN.png b/airlines/WN.png
new file mode 100644
index 00000000..5cf362ea
Binary files /dev/null and b/airlines/WN.png differ
diff --git a/airlines/WO.png b/airlines/WO.png
new file mode 100644
index 00000000..17e2e673
Binary files /dev/null and b/airlines/WO.png differ
diff --git a/airlines/WQ.png b/airlines/WQ.png
new file mode 100644
index 00000000..abd0d250
Binary files /dev/null and b/airlines/WQ.png differ
diff --git a/airlines/WS.png b/airlines/WS.png
new file mode 100644
index 00000000..4cab957d
Binary files /dev/null and b/airlines/WS.png differ
diff --git a/airlines/WT.png b/airlines/WT.png
new file mode 100644
index 00000000..f6e8002e
Binary files /dev/null and b/airlines/WT.png differ
diff --git a/airlines/WW.png b/airlines/WW.png
new file mode 100644
index 00000000..f0659c9b
Binary files /dev/null and b/airlines/WW.png differ
diff --git a/airlines/WX.png b/airlines/WX.png
new file mode 100644
index 00000000..31dbf5c6
Binary files /dev/null and b/airlines/WX.png differ
diff --git a/airlines/WY.png b/airlines/WY.png
new file mode 100644
index 00000000..2b448cd3
Binary files /dev/null and b/airlines/WY.png differ
diff --git a/airlines/X1(1).png b/airlines/X1(1).png
new file mode 100644
index 00000000..e42496d5
Binary files /dev/null and b/airlines/X1(1).png differ
diff --git a/airlines/X1.png b/airlines/X1.png
new file mode 100644
index 00000000..e42496d5
Binary files /dev/null and b/airlines/X1.png differ
diff --git a/airlines/X3.png b/airlines/X3.png
new file mode 100644
index 00000000..b323ccb1
Binary files /dev/null and b/airlines/X3.png differ
diff --git a/airlines/X9.png b/airlines/X9.png
new file mode 100644
index 00000000..f9d7a6e7
Binary files /dev/null and b/airlines/X9.png differ
diff --git a/airlines/XC.png b/airlines/XC.png
new file mode 100644
index 00000000..f659c006
Binary files /dev/null and b/airlines/XC.png differ
diff --git a/airlines/XE.png b/airlines/XE.png
new file mode 100644
index 00000000..6313537a
Binary files /dev/null and b/airlines/XE.png differ
diff --git a/airlines/XG.png b/airlines/XG.png
new file mode 100644
index 00000000..58640c50
Binary files /dev/null and b/airlines/XG.png differ
diff --git a/airlines/XJ.png b/airlines/XJ.png
new file mode 100644
index 00000000..c121c0e0
Binary files /dev/null and b/airlines/XJ.png differ
diff --git a/airlines/XK.png b/airlines/XK.png
new file mode 100644
index 00000000..f37c9399
Binary files /dev/null and b/airlines/XK.png differ
diff --git a/airlines/XL.png b/airlines/XL.png
new file mode 100644
index 00000000..b7addaab
Binary files /dev/null and b/airlines/XL.png differ
diff --git a/airlines/XO.png b/airlines/XO.png
new file mode 100644
index 00000000..e95d6460
Binary files /dev/null and b/airlines/XO.png differ
diff --git a/airlines/XP.png b/airlines/XP.png
new file mode 100644
index 00000000..e1f7fe0c
Binary files /dev/null and b/airlines/XP.png differ
diff --git a/airlines/XQ.png b/airlines/XQ.png
new file mode 100644
index 00000000..d30d5d2f
Binary files /dev/null and b/airlines/XQ.png differ
diff --git a/airlines/XR.png b/airlines/XR.png
new file mode 100644
index 00000000..f51d6b95
Binary files /dev/null and b/airlines/XR.png differ
diff --git a/airlines/XT.png b/airlines/XT.png
new file mode 100644
index 00000000..30eaf588
Binary files /dev/null and b/airlines/XT.png differ
diff --git a/airlines/XW.png b/airlines/XW.png
new file mode 100644
index 00000000..277b5f0e
Binary files /dev/null and b/airlines/XW.png differ
diff --git a/airlines/XY.png b/airlines/XY.png
new file mode 100644
index 00000000..fd6e3324
Binary files /dev/null and b/airlines/XY.png differ
diff --git a/airlines/XZ.png b/airlines/XZ.png
new file mode 100644
index 00000000..b3432e9e
Binary files /dev/null and b/airlines/XZ.png differ
diff --git a/airlines/Y0.png b/airlines/Y0.png
new file mode 100644
index 00000000..c4d91e38
Binary files /dev/null and b/airlines/Y0.png differ
diff --git a/airlines/Y4.png b/airlines/Y4.png
new file mode 100644
index 00000000..01f91d1f
Binary files /dev/null and b/airlines/Y4.png differ
diff --git a/airlines/Y7.png b/airlines/Y7.png
new file mode 100644
index 00000000..5886cbca
Binary files /dev/null and b/airlines/Y7.png differ
diff --git a/airlines/Y9.png b/airlines/Y9.png
new file mode 100644
index 00000000..25457a81
Binary files /dev/null and b/airlines/Y9.png differ
diff --git a/airlines/YC.png b/airlines/YC.png
new file mode 100644
index 00000000..9675f435
Binary files /dev/null and b/airlines/YC.png differ
diff --git a/airlines/YE.png b/airlines/YE.png
new file mode 100644
index 00000000..ac5b5392
Binary files /dev/null and b/airlines/YE.png differ
diff --git a/airlines/YK.png b/airlines/YK.png
new file mode 100644
index 00000000..9dfc4369
Binary files /dev/null and b/airlines/YK.png differ
diff --git a/airlines/YM.png b/airlines/YM.png
new file mode 100644
index 00000000..88779498
Binary files /dev/null and b/airlines/YM.png differ
diff --git a/airlines/YN.png b/airlines/YN.png
new file mode 100644
index 00000000..84c7e87e
Binary files /dev/null and b/airlines/YN.png differ
diff --git a/airlines/YO.png b/airlines/YO.png
new file mode 100644
index 00000000..eb1c8301
Binary files /dev/null and b/airlines/YO.png differ
diff --git a/airlines/YR.png b/airlines/YR.png
new file mode 100644
index 00000000..328b01fa
Binary files /dev/null and b/airlines/YR.png differ
diff --git a/airlines/YS.png b/airlines/YS.png
new file mode 100644
index 00000000..31dbf5c6
Binary files /dev/null and b/airlines/YS.png differ
diff --git a/airlines/YU.png b/airlines/YU.png
new file mode 100644
index 00000000..fd5c44e4
Binary files /dev/null and b/airlines/YU.png differ
diff --git a/airlines/YV.png b/airlines/YV.png
new file mode 100644
index 00000000..f35df84a
Binary files /dev/null and b/airlines/YV.png differ
diff --git a/airlines/YW.png b/airlines/YW.png
new file mode 100644
index 00000000..00b6dd99
Binary files /dev/null and b/airlines/YW.png differ
diff --git a/airlines/YX.png b/airlines/YX.png
new file mode 100644
index 00000000..d2767830
Binary files /dev/null and b/airlines/YX.png differ
diff --git a/airlines/Z0.png b/airlines/Z0.png
new file mode 100644
index 00000000..2aeaa7a1
Binary files /dev/null and b/airlines/Z0.png differ
diff --git a/airlines/Z2(1).png b/airlines/Z2(1).png
new file mode 100644
index 00000000..217f421f
Binary files /dev/null and b/airlines/Z2(1).png differ
diff --git a/airlines/Z2.png b/airlines/Z2.png
new file mode 100644
index 00000000..217f421f
Binary files /dev/null and b/airlines/Z2.png differ
diff --git a/airlines/Z4.png b/airlines/Z4.png
new file mode 100644
index 00000000..a998f09b
Binary files /dev/null and b/airlines/Z4.png differ
diff --git a/airlines/Z7.png b/airlines/Z7.png
new file mode 100644
index 00000000..6559516b
Binary files /dev/null and b/airlines/Z7.png differ
diff --git a/airlines/Z8.png b/airlines/Z8.png
new file mode 100644
index 00000000..03b19da8
Binary files /dev/null and b/airlines/Z8.png differ
diff --git a/airlines/Z9.png b/airlines/Z9.png
new file mode 100644
index 00000000..88ac6d29
Binary files /dev/null and b/airlines/Z9.png differ
diff --git a/airlines/ZA.png b/airlines/ZA.png
new file mode 100644
index 00000000..cb3ad8fa
Binary files /dev/null and b/airlines/ZA.png differ
diff --git a/airlines/ZE.png b/airlines/ZE.png
new file mode 100644
index 00000000..ff3f8639
Binary files /dev/null and b/airlines/ZE.png differ
diff --git a/airlines/ZG.png b/airlines/ZG.png
new file mode 100644
index 00000000..9a440029
Binary files /dev/null and b/airlines/ZG.png differ
diff --git a/airlines/ZH.png b/airlines/ZH.png
new file mode 100644
index 00000000..6e70614f
Binary files /dev/null and b/airlines/ZH.png differ
diff --git a/airlines/ZI.png b/airlines/ZI.png
new file mode 100644
index 00000000..e971de50
Binary files /dev/null and b/airlines/ZI.png differ
diff --git a/airlines/ZK.png b/airlines/ZK.png
new file mode 100644
index 00000000..007bc662
Binary files /dev/null and b/airlines/ZK.png differ
diff --git a/airlines/ZL.png b/airlines/ZL.png
new file mode 100644
index 00000000..f7f1f5d2
Binary files /dev/null and b/airlines/ZL.png differ
diff --git a/airlines/ZN.png b/airlines/ZN.png
new file mode 100644
index 00000000..80666ea2
Binary files /dev/null and b/airlines/ZN.png differ
diff --git a/airlines/ZR.png b/airlines/ZR.png
new file mode 100644
index 00000000..452c172e
Binary files /dev/null and b/airlines/ZR.png differ
diff --git a/airlines/ZT.png b/airlines/ZT.png
new file mode 100644
index 00000000..68738372
Binary files /dev/null and b/airlines/ZT.png differ
diff --git a/airlines/ZW.png b/airlines/ZW.png
new file mode 100644
index 00000000..0c27bedc
Binary files /dev/null and b/airlines/ZW.png differ
diff --git a/airlines/__MACOSX/._airlines b/airlines/__MACOSX/._airlines
new file mode 100644
index 00000000..a34b003c
Binary files /dev/null and b/airlines/__MACOSX/._airlines differ
diff --git a/airlines/airlines/0V.png b/airlines/airlines/0V.png
new file mode 100644
index 00000000..0abf6574
Binary files /dev/null and b/airlines/airlines/0V.png differ
diff --git a/airlines/airlines/1I.png b/airlines/airlines/1I.png
new file mode 100644
index 00000000..10289e97
Binary files /dev/null and b/airlines/airlines/1I.png differ
diff --git a/airlines/airlines/1L.png b/airlines/airlines/1L.png
new file mode 100644
index 00000000..5eafe1fa
Binary files /dev/null and b/airlines/airlines/1L.png differ
diff --git a/airlines/airlines/2A.png b/airlines/airlines/2A.png
new file mode 100644
index 00000000..2f6e709d
Binary files /dev/null and b/airlines/airlines/2A.png differ
diff --git a/airlines/airlines/2C(1).png b/airlines/airlines/2C(1).png
new file mode 100644
index 00000000..0e01dbe5
Binary files /dev/null and b/airlines/airlines/2C(1).png differ
diff --git a/airlines/airlines/2C.png b/airlines/airlines/2C.png
new file mode 100644
index 00000000..0e01dbe5
Binary files /dev/null and b/airlines/airlines/2C.png differ
diff --git a/airlines/airlines/2G.png b/airlines/airlines/2G.png
new file mode 100644
index 00000000..2f91c03a
Binary files /dev/null and b/airlines/airlines/2G.png differ
diff --git a/airlines/airlines/2H.png b/airlines/airlines/2H.png
new file mode 100644
index 00000000..45001068
Binary files /dev/null and b/airlines/airlines/2H.png differ
diff --git a/airlines/airlines/2I.png b/airlines/airlines/2I.png
new file mode 100644
index 00000000..bea2eadc
Binary files /dev/null and b/airlines/airlines/2I.png differ
diff --git a/airlines/airlines/2J.png b/airlines/airlines/2J.png
new file mode 100644
index 00000000..ce06aa5d
Binary files /dev/null and b/airlines/airlines/2J.png differ
diff --git a/airlines/airlines/2K.png b/airlines/airlines/2K.png
new file mode 100644
index 00000000..49c8911f
Binary files /dev/null and b/airlines/airlines/2K.png differ
diff --git a/airlines/airlines/2L.png b/airlines/airlines/2L.png
new file mode 100644
index 00000000..df2d3559
Binary files /dev/null and b/airlines/airlines/2L.png differ
diff --git a/airlines/airlines/2M.png b/airlines/airlines/2M.png
new file mode 100644
index 00000000..fcd679ae
Binary files /dev/null and b/airlines/airlines/2M.png differ
diff --git a/airlines/airlines/2N.png b/airlines/airlines/2N.png
new file mode 100644
index 00000000..67115451
Binary files /dev/null and b/airlines/airlines/2N.png differ
diff --git a/airlines/airlines/2P.png b/airlines/airlines/2P.png
new file mode 100644
index 00000000..10a8d793
Binary files /dev/null and b/airlines/airlines/2P.png differ
diff --git a/airlines/airlines/2W.png b/airlines/airlines/2W.png
new file mode 100644
index 00000000..04c26e6f
Binary files /dev/null and b/airlines/airlines/2W.png differ
diff --git a/airlines/airlines/2Z.png b/airlines/airlines/2Z.png
new file mode 100644
index 00000000..9cbce794
Binary files /dev/null and b/airlines/airlines/2Z.png differ
diff --git a/airlines/airlines/3H.png b/airlines/airlines/3H.png
new file mode 100644
index 00000000..61392f1d
Binary files /dev/null and b/airlines/airlines/3H.png differ
diff --git a/airlines/airlines/3K.png b/airlines/airlines/3K.png
new file mode 100644
index 00000000..d01e4938
Binary files /dev/null and b/airlines/airlines/3K.png differ
diff --git a/airlines/airlines/3L(1).png b/airlines/airlines/3L(1).png
new file mode 100644
index 00000000..5d8a50f7
Binary files /dev/null and b/airlines/airlines/3L(1).png differ
diff --git a/airlines/airlines/3L.png b/airlines/airlines/3L.png
new file mode 100644
index 00000000..5d8a50f7
Binary files /dev/null and b/airlines/airlines/3L.png differ
diff --git a/airlines/airlines/3M.png b/airlines/airlines/3M.png
new file mode 100644
index 00000000..57798caa
Binary files /dev/null and b/airlines/airlines/3M.png differ
diff --git a/airlines/airlines/3O.png b/airlines/airlines/3O.png
new file mode 100644
index 00000000..559dce38
Binary files /dev/null and b/airlines/airlines/3O.png differ
diff --git a/airlines/airlines/3S.png b/airlines/airlines/3S.png
new file mode 100644
index 00000000..4b785d28
Binary files /dev/null and b/airlines/airlines/3S.png differ
diff --git a/airlines/airlines/3U.png b/airlines/airlines/3U.png
new file mode 100644
index 00000000..311ce53c
Binary files /dev/null and b/airlines/airlines/3U.png differ
diff --git a/airlines/airlines/3W.png b/airlines/airlines/3W.png
new file mode 100644
index 00000000..1f8d3c19
Binary files /dev/null and b/airlines/airlines/3W.png differ
diff --git a/airlines/airlines/4B.png b/airlines/airlines/4B.png
new file mode 100644
index 00000000..58a80c87
Binary files /dev/null and b/airlines/airlines/4B.png differ
diff --git a/airlines/airlines/4C.png b/airlines/airlines/4C.png
new file mode 100644
index 00000000..46eecbdb
Binary files /dev/null and b/airlines/airlines/4C.png differ
diff --git a/airlines/airlines/4D.png b/airlines/airlines/4D.png
new file mode 100644
index 00000000..8828d00a
Binary files /dev/null and b/airlines/airlines/4D.png differ
diff --git a/airlines/airlines/4G.png b/airlines/airlines/4G.png
new file mode 100644
index 00000000..3fefadb9
Binary files /dev/null and b/airlines/airlines/4G.png differ
diff --git a/airlines/airlines/4J.png b/airlines/airlines/4J.png
new file mode 100644
index 00000000..f2df3e85
Binary files /dev/null and b/airlines/airlines/4J.png differ
diff --git a/airlines/airlines/4M.png b/airlines/airlines/4M.png
new file mode 100644
index 00000000..8f5999ed
Binary files /dev/null and b/airlines/airlines/4M.png differ
diff --git a/airlines/airlines/4N.png b/airlines/airlines/4N.png
new file mode 100644
index 00000000..cc3dfc57
Binary files /dev/null and b/airlines/airlines/4N.png differ
diff --git a/airlines/airlines/4O.png b/airlines/airlines/4O.png
new file mode 100644
index 00000000..fdf4d3ea
Binary files /dev/null and b/airlines/airlines/4O.png differ
diff --git a/airlines/airlines/4Q.png b/airlines/airlines/4Q.png
new file mode 100644
index 00000000..65fb7fc4
Binary files /dev/null and b/airlines/airlines/4Q.png differ
diff --git a/airlines/airlines/4T.png b/airlines/airlines/4T.png
new file mode 100644
index 00000000..b45ef76e
Binary files /dev/null and b/airlines/airlines/4T.png differ
diff --git a/airlines/airlines/4U.png b/airlines/airlines/4U.png
new file mode 100644
index 00000000..eb4af76a
Binary files /dev/null and b/airlines/airlines/4U.png differ
diff --git a/airlines/airlines/4Z.png b/airlines/airlines/4Z.png
new file mode 100644
index 00000000..b8d88b36
Binary files /dev/null and b/airlines/airlines/4Z.png differ
diff --git a/airlines/airlines/5B.png b/airlines/airlines/5B.png
new file mode 100644
index 00000000..ae9f3e3c
Binary files /dev/null and b/airlines/airlines/5B.png differ
diff --git a/airlines/airlines/5C.png b/airlines/airlines/5C.png
new file mode 100644
index 00000000..d910e4b8
Binary files /dev/null and b/airlines/airlines/5C.png differ
diff --git a/airlines/airlines/5D.png b/airlines/airlines/5D.png
new file mode 100644
index 00000000..c0d9c1e0
Binary files /dev/null and b/airlines/airlines/5D.png differ
diff --git a/airlines/airlines/5F(1).png b/airlines/airlines/5F(1).png
new file mode 100644
index 00000000..0616c461
Binary files /dev/null and b/airlines/airlines/5F(1).png differ
diff --git a/airlines/airlines/5F.png b/airlines/airlines/5F.png
new file mode 100644
index 00000000..0616c461
Binary files /dev/null and b/airlines/airlines/5F.png differ
diff --git a/airlines/airlines/5H.png b/airlines/airlines/5H.png
new file mode 100644
index 00000000..0e1e5fc0
Binary files /dev/null and b/airlines/airlines/5H.png differ
diff --git a/airlines/airlines/5J.png b/airlines/airlines/5J.png
new file mode 100644
index 00000000..efcc3377
Binary files /dev/null and b/airlines/airlines/5J.png differ
diff --git a/airlines/airlines/5N.png b/airlines/airlines/5N.png
new file mode 100644
index 00000000..ab2f8506
Binary files /dev/null and b/airlines/airlines/5N.png differ
diff --git a/airlines/airlines/5O.png b/airlines/airlines/5O.png
new file mode 100644
index 00000000..b5cfdf50
Binary files /dev/null and b/airlines/airlines/5O.png differ
diff --git a/airlines/airlines/5T.png b/airlines/airlines/5T.png
new file mode 100644
index 00000000..e6bbc10f
Binary files /dev/null and b/airlines/airlines/5T.png differ
diff --git a/airlines/airlines/5U.png b/airlines/airlines/5U.png
new file mode 100644
index 00000000..822f7093
Binary files /dev/null and b/airlines/airlines/5U.png differ
diff --git a/airlines/airlines/5W(1).png b/airlines/airlines/5W(1).png
new file mode 100644
index 00000000..0d79adac
Binary files /dev/null and b/airlines/airlines/5W(1).png differ
diff --git a/airlines/airlines/5W.png b/airlines/airlines/5W.png
new file mode 100644
index 00000000..0d79adac
Binary files /dev/null and b/airlines/airlines/5W.png differ
diff --git a/airlines/airlines/5Z.png b/airlines/airlines/5Z.png
new file mode 100644
index 00000000..b37eb68e
Binary files /dev/null and b/airlines/airlines/5Z.png differ
diff --git a/airlines/airlines/6E.png b/airlines/airlines/6E.png
new file mode 100644
index 00000000..8f457716
Binary files /dev/null and b/airlines/airlines/6E.png differ
diff --git a/airlines/airlines/6H(1).png b/airlines/airlines/6H(1).png
new file mode 100644
index 00000000..61272ba5
Binary files /dev/null and b/airlines/airlines/6H(1).png differ
diff --git a/airlines/airlines/6H.png b/airlines/airlines/6H.png
new file mode 100644
index 00000000..61272ba5
Binary files /dev/null and b/airlines/airlines/6H.png differ
diff --git a/airlines/airlines/6J.png b/airlines/airlines/6J.png
new file mode 100644
index 00000000..5ae28864
Binary files /dev/null and b/airlines/airlines/6J.png differ
diff --git a/airlines/airlines/6S.png b/airlines/airlines/6S.png
new file mode 100644
index 00000000..1dd9561d
Binary files /dev/null and b/airlines/airlines/6S.png differ
diff --git a/airlines/airlines/6Y.png b/airlines/airlines/6Y.png
new file mode 100644
index 00000000..870346ee
Binary files /dev/null and b/airlines/airlines/6Y.png differ
diff --git a/airlines/airlines/6Z.png b/airlines/airlines/6Z.png
new file mode 100644
index 00000000..205afd8e
Binary files /dev/null and b/airlines/airlines/6Z.png differ
diff --git a/airlines/airlines/7C.png b/airlines/airlines/7C.png
new file mode 100644
index 00000000..7cd76f67
Binary files /dev/null and b/airlines/airlines/7C.png differ
diff --git a/airlines/airlines/7E.png b/airlines/airlines/7E.png
new file mode 100644
index 00000000..2bfbb961
Binary files /dev/null and b/airlines/airlines/7E.png differ
diff --git a/airlines/airlines/7F.png b/airlines/airlines/7F.png
new file mode 100644
index 00000000..3535e3d6
Binary files /dev/null and b/airlines/airlines/7F.png differ
diff --git a/airlines/airlines/7G.png b/airlines/airlines/7G.png
new file mode 100644
index 00000000..2ef915e1
Binary files /dev/null and b/airlines/airlines/7G.png differ
diff --git a/airlines/airlines/7H.png b/airlines/airlines/7H.png
new file mode 100644
index 00000000..223760a6
Binary files /dev/null and b/airlines/airlines/7H.png differ
diff --git a/airlines/airlines/7I(1).png b/airlines/airlines/7I(1).png
new file mode 100644
index 00000000..b8754cb7
Binary files /dev/null and b/airlines/airlines/7I(1).png differ
diff --git a/airlines/airlines/7I.png b/airlines/airlines/7I.png
new file mode 100644
index 00000000..b8754cb7
Binary files /dev/null and b/airlines/airlines/7I.png differ
diff --git a/airlines/airlines/7J.png b/airlines/airlines/7J.png
new file mode 100644
index 00000000..01c782b1
Binary files /dev/null and b/airlines/airlines/7J.png differ
diff --git a/airlines/airlines/7M.png b/airlines/airlines/7M.png
new file mode 100644
index 00000000..1d84b7d9
Binary files /dev/null and b/airlines/airlines/7M.png differ
diff --git a/airlines/airlines/7Q.png b/airlines/airlines/7Q.png
new file mode 100644
index 00000000..7ddb1a2a
Binary files /dev/null and b/airlines/airlines/7Q.png differ
diff --git a/airlines/airlines/7R.png b/airlines/airlines/7R.png
new file mode 100644
index 00000000..9999bf34
Binary files /dev/null and b/airlines/airlines/7R.png differ
diff --git a/airlines/airlines/7W.png b/airlines/airlines/7W.png
new file mode 100644
index 00000000..5f529de3
Binary files /dev/null and b/airlines/airlines/7W.png differ
diff --git a/airlines/airlines/8H.png b/airlines/airlines/8H.png
new file mode 100644
index 00000000..b3a3989b
Binary files /dev/null and b/airlines/airlines/8H.png differ
diff --git a/airlines/airlines/8J.png b/airlines/airlines/8J.png
new file mode 100644
index 00000000..2083a744
Binary files /dev/null and b/airlines/airlines/8J.png differ
diff --git a/airlines/airlines/8L(1).png b/airlines/airlines/8L(1).png
new file mode 100644
index 00000000..413e1e80
Binary files /dev/null and b/airlines/airlines/8L(1).png differ
diff --git a/airlines/airlines/8L.png b/airlines/airlines/8L.png
new file mode 100644
index 00000000..413e1e80
Binary files /dev/null and b/airlines/airlines/8L.png differ
diff --git a/airlines/airlines/8M.png b/airlines/airlines/8M.png
new file mode 100644
index 00000000..c7bb4d75
Binary files /dev/null and b/airlines/airlines/8M.png differ
diff --git a/airlines/airlines/8P.png b/airlines/airlines/8P.png
new file mode 100644
index 00000000..0cf7a245
Binary files /dev/null and b/airlines/airlines/8P.png differ
diff --git a/airlines/airlines/8Q.png b/airlines/airlines/8Q.png
new file mode 100644
index 00000000..65bae868
Binary files /dev/null and b/airlines/airlines/8Q.png differ
diff --git a/airlines/airlines/8U.png b/airlines/airlines/8U.png
new file mode 100644
index 00000000..4f07790c
Binary files /dev/null and b/airlines/airlines/8U.png differ
diff --git a/airlines/airlines/9B(1).png b/airlines/airlines/9B(1).png
new file mode 100644
index 00000000..6808110b
Binary files /dev/null and b/airlines/airlines/9B(1).png differ
diff --git a/airlines/airlines/9B.png b/airlines/airlines/9B.png
new file mode 100644
index 00000000..6808110b
Binary files /dev/null and b/airlines/airlines/9B.png differ
diff --git a/airlines/airlines/9E.png b/airlines/airlines/9E.png
new file mode 100644
index 00000000..36a62500
Binary files /dev/null and b/airlines/airlines/9E.png differ
diff --git a/airlines/airlines/9F(1).png b/airlines/airlines/9F(1).png
new file mode 100644
index 00000000..72c686d2
Binary files /dev/null and b/airlines/airlines/9F(1).png differ
diff --git a/airlines/airlines/9F.png b/airlines/airlines/9F.png
new file mode 100644
index 00000000..72c686d2
Binary files /dev/null and b/airlines/airlines/9F.png differ
diff --git a/airlines/airlines/9I.png b/airlines/airlines/9I.png
new file mode 100644
index 00000000..66d67d20
Binary files /dev/null and b/airlines/airlines/9I.png differ
diff --git a/airlines/airlines/9K.png b/airlines/airlines/9K.png
new file mode 100644
index 00000000..16376928
Binary files /dev/null and b/airlines/airlines/9K.png differ
diff --git a/airlines/airlines/9M.png b/airlines/airlines/9M.png
new file mode 100644
index 00000000..cbd6d6d5
Binary files /dev/null and b/airlines/airlines/9M.png differ
diff --git a/airlines/airlines/9N.png b/airlines/airlines/9N.png
new file mode 100644
index 00000000..c856bf9a
Binary files /dev/null and b/airlines/airlines/9N.png differ
diff --git a/airlines/airlines/9P.png b/airlines/airlines/9P.png
new file mode 100644
index 00000000..654bf187
Binary files /dev/null and b/airlines/airlines/9P.png differ
diff --git a/airlines/airlines/9R.png b/airlines/airlines/9R.png
new file mode 100644
index 00000000..43b59872
Binary files /dev/null and b/airlines/airlines/9R.png differ
diff --git a/airlines/airlines/9U.png b/airlines/airlines/9U.png
new file mode 100644
index 00000000..c302754d
Binary files /dev/null and b/airlines/airlines/9U.png differ
diff --git a/airlines/airlines/9V.png b/airlines/airlines/9V.png
new file mode 100644
index 00000000..55a3db72
Binary files /dev/null and b/airlines/airlines/9V.png differ
diff --git a/airlines/airlines/9W.png b/airlines/airlines/9W.png
new file mode 100644
index 00000000..db15541e
Binary files /dev/null and b/airlines/airlines/9W.png differ
diff --git a/airlines/airlines/9X.png b/airlines/airlines/9X.png
new file mode 100644
index 00000000..76dcf061
Binary files /dev/null and b/airlines/airlines/9X.png differ
diff --git a/airlines/airlines/A3.png b/airlines/airlines/A3.png
new file mode 100644
index 00000000..009103cd
Binary files /dev/null and b/airlines/airlines/A3.png differ
diff --git a/airlines/airlines/A4.png b/airlines/airlines/A4.png
new file mode 100644
index 00000000..46f37184
Binary files /dev/null and b/airlines/airlines/A4.png differ
diff --git a/airlines/airlines/A5.png b/airlines/airlines/A5.png
new file mode 100644
index 00000000..fef2abf4
Binary files /dev/null and b/airlines/airlines/A5.png differ
diff --git a/airlines/airlines/A9.png b/airlines/airlines/A9.png
new file mode 100644
index 00000000..736922c0
Binary files /dev/null and b/airlines/airlines/A9.png differ
diff --git a/airlines/airlines/AA.png b/airlines/airlines/AA.png
new file mode 100644
index 00000000..443454a6
Binary files /dev/null and b/airlines/airlines/AA.png differ
diff --git a/airlines/airlines/AB(1).png b/airlines/airlines/AB(1).png
new file mode 100644
index 00000000..26cfefa0
Binary files /dev/null and b/airlines/airlines/AB(1).png differ
diff --git a/airlines/airlines/AB.png b/airlines/airlines/AB.png
new file mode 100644
index 00000000..26cfefa0
Binary files /dev/null and b/airlines/airlines/AB.png differ
diff --git a/airlines/airlines/AC.png b/airlines/airlines/AC.png
new file mode 100644
index 00000000..a920b3b5
Binary files /dev/null and b/airlines/airlines/AC.png differ
diff --git a/airlines/airlines/AD.png b/airlines/airlines/AD.png
new file mode 100644
index 00000000..b22588d8
Binary files /dev/null and b/airlines/airlines/AD.png differ
diff --git a/airlines/airlines/AE.png b/airlines/airlines/AE.png
new file mode 100644
index 00000000..ac02885b
Binary files /dev/null and b/airlines/airlines/AE.png differ
diff --git a/airlines/airlines/AF.png b/airlines/airlines/AF.png
new file mode 100644
index 00000000..958ce195
Binary files /dev/null and b/airlines/airlines/AF.png differ
diff --git a/airlines/airlines/AH.png b/airlines/airlines/AH.png
new file mode 100644
index 00000000..24e03e80
Binary files /dev/null and b/airlines/airlines/AH.png differ
diff --git a/airlines/airlines/AI.png b/airlines/airlines/AI.png
new file mode 100644
index 00000000..cbb3a21a
Binary files /dev/null and b/airlines/airlines/AI.png differ
diff --git a/airlines/airlines/AJ(1).png b/airlines/airlines/AJ(1).png
new file mode 100644
index 00000000..c7b2d3c8
Binary files /dev/null and b/airlines/airlines/AJ(1).png differ
diff --git a/airlines/airlines/AJ.png b/airlines/airlines/AJ.png
new file mode 100644
index 00000000..c7b2d3c8
Binary files /dev/null and b/airlines/airlines/AJ.png differ
diff --git a/airlines/airlines/AK.png b/airlines/airlines/AK.png
new file mode 100644
index 00000000..b262172c
Binary files /dev/null and b/airlines/airlines/AK.png differ
diff --git a/airlines/airlines/AL.png b/airlines/airlines/AL.png
new file mode 100644
index 00000000..b31dd89a
Binary files /dev/null and b/airlines/airlines/AL.png differ
diff --git a/airlines/airlines/AM.png b/airlines/airlines/AM.png
new file mode 100644
index 00000000..bcf4c0b1
Binary files /dev/null and b/airlines/airlines/AM.png differ
diff --git a/airlines/airlines/AQ.png b/airlines/airlines/AQ.png
new file mode 100644
index 00000000..4e13578d
Binary files /dev/null and b/airlines/airlines/AQ.png differ
diff --git a/airlines/airlines/AR.png b/airlines/airlines/AR.png
new file mode 100644
index 00000000..e110c7f3
Binary files /dev/null and b/airlines/airlines/AR.png differ
diff --git a/airlines/airlines/AS.png b/airlines/airlines/AS.png
new file mode 100644
index 00000000..ecafe41f
Binary files /dev/null and b/airlines/airlines/AS.png differ
diff --git a/airlines/airlines/AT.png b/airlines/airlines/AT.png
new file mode 100644
index 00000000..fb1b5fd1
Binary files /dev/null and b/airlines/airlines/AT.png differ
diff --git a/airlines/airlines/AU.png b/airlines/airlines/AU.png
new file mode 100644
index 00000000..4fef9ac5
Binary files /dev/null and b/airlines/airlines/AU.png differ
diff --git a/airlines/airlines/AV.png b/airlines/airlines/AV.png
new file mode 100644
index 00000000..0c322749
Binary files /dev/null and b/airlines/airlines/AV.png differ
diff --git a/airlines/airlines/AW.png b/airlines/airlines/AW.png
new file mode 100644
index 00000000..443a127e
Binary files /dev/null and b/airlines/airlines/AW.png differ
diff --git a/airlines/airlines/AX.png b/airlines/airlines/AX.png
new file mode 100644
index 00000000..aed08b42
Binary files /dev/null and b/airlines/airlines/AX.png differ
diff --git a/airlines/airlines/AY.png b/airlines/airlines/AY.png
new file mode 100644
index 00000000..57419ec2
Binary files /dev/null and b/airlines/airlines/AY.png differ
diff --git a/airlines/airlines/AZ.png b/airlines/airlines/AZ.png
new file mode 100644
index 00000000..fd4bf8eb
Binary files /dev/null and b/airlines/airlines/AZ.png differ
diff --git a/airlines/airlines/B2.png b/airlines/airlines/B2.png
new file mode 100644
index 00000000..c4822ab7
Binary files /dev/null and b/airlines/airlines/B2.png differ
diff --git a/airlines/airlines/B3.png b/airlines/airlines/B3.png
new file mode 100644
index 00000000..b7a51007
Binary files /dev/null and b/airlines/airlines/B3.png differ
diff --git a/airlines/airlines/B5.png b/airlines/airlines/B5.png
new file mode 100644
index 00000000..da1545ba
Binary files /dev/null and b/airlines/airlines/B5.png differ
diff --git a/airlines/airlines/B6.png b/airlines/airlines/B6.png
new file mode 100644
index 00000000..c63d2590
Binary files /dev/null and b/airlines/airlines/B6.png differ
diff --git a/airlines/airlines/B7.png b/airlines/airlines/B7.png
new file mode 100644
index 00000000..040573e0
Binary files /dev/null and b/airlines/airlines/B7.png differ
diff --git a/airlines/airlines/B8.png b/airlines/airlines/B8.png
new file mode 100644
index 00000000..c4cb9559
Binary files /dev/null and b/airlines/airlines/B8.png differ
diff --git a/airlines/airlines/BA.png b/airlines/airlines/BA.png
new file mode 100644
index 00000000..19511726
Binary files /dev/null and b/airlines/airlines/BA.png differ
diff --git a/airlines/airlines/BB.png b/airlines/airlines/BB.png
new file mode 100644
index 00000000..d965571f
Binary files /dev/null and b/airlines/airlines/BB.png differ
diff --git a/airlines/airlines/BC.png b/airlines/airlines/BC.png
new file mode 100644
index 00000000..bb6a60fc
Binary files /dev/null and b/airlines/airlines/BC.png differ
diff --git a/airlines/airlines/BD(1).png b/airlines/airlines/BD(1).png
new file mode 100644
index 00000000..39e00476
Binary files /dev/null and b/airlines/airlines/BD(1).png differ
diff --git a/airlines/airlines/BD.png b/airlines/airlines/BD.png
new file mode 100644
index 00000000..39e00476
Binary files /dev/null and b/airlines/airlines/BD.png differ
diff --git a/airlines/airlines/BE.png b/airlines/airlines/BE.png
new file mode 100644
index 00000000..ee4f3af6
Binary files /dev/null and b/airlines/airlines/BE.png differ
diff --git a/airlines/airlines/BF.png b/airlines/airlines/BF.png
new file mode 100644
index 00000000..42ecf6ad
Binary files /dev/null and b/airlines/airlines/BF.png differ
diff --git a/airlines/airlines/BG.png b/airlines/airlines/BG.png
new file mode 100644
index 00000000..46c4c5b7
Binary files /dev/null and b/airlines/airlines/BG.png differ
diff --git a/airlines/airlines/BI.png b/airlines/airlines/BI.png
new file mode 100644
index 00000000..97af1d45
Binary files /dev/null and b/airlines/airlines/BI.png differ
diff --git a/airlines/airlines/BJ.png b/airlines/airlines/BJ.png
new file mode 100644
index 00000000..da1b2c76
Binary files /dev/null and b/airlines/airlines/BJ.png differ
diff --git a/airlines/airlines/BK.png b/airlines/airlines/BK.png
new file mode 100644
index 00000000..f7aa54a0
Binary files /dev/null and b/airlines/airlines/BK.png differ
diff --git a/airlines/airlines/BL.png b/airlines/airlines/BL.png
new file mode 100644
index 00000000..d1f72fb4
Binary files /dev/null and b/airlines/airlines/BL.png differ
diff --git a/airlines/airlines/BM.png b/airlines/airlines/BM.png
new file mode 100644
index 00000000..ab516df0
Binary files /dev/null and b/airlines/airlines/BM.png differ
diff --git a/airlines/airlines/BP.png b/airlines/airlines/BP.png
new file mode 100644
index 00000000..8cc0e143
Binary files /dev/null and b/airlines/airlines/BP.png differ
diff --git a/airlines/airlines/BR.png b/airlines/airlines/BR.png
new file mode 100644
index 00000000..ecfb7c44
Binary files /dev/null and b/airlines/airlines/BR.png differ
diff --git a/airlines/airlines/BS(1).png b/airlines/airlines/BS(1).png
new file mode 100644
index 00000000..19511726
Binary files /dev/null and b/airlines/airlines/BS(1).png differ
diff --git a/airlines/airlines/BS.png b/airlines/airlines/BS.png
new file mode 100644
index 00000000..19511726
Binary files /dev/null and b/airlines/airlines/BS.png differ
diff --git a/airlines/airlines/BT.png b/airlines/airlines/BT.png
new file mode 100644
index 00000000..b774bbc7
Binary files /dev/null and b/airlines/airlines/BT.png differ
diff --git a/airlines/airlines/BU.png b/airlines/airlines/BU.png
new file mode 100644
index 00000000..42ecd8d8
Binary files /dev/null and b/airlines/airlines/BU.png differ
diff --git a/airlines/airlines/BV.png b/airlines/airlines/BV.png
new file mode 100644
index 00000000..dd6ea3b4
Binary files /dev/null and b/airlines/airlines/BV.png differ
diff --git a/airlines/airlines/BW.png b/airlines/airlines/BW.png
new file mode 100644
index 00000000..9957e07d
Binary files /dev/null and b/airlines/airlines/BW.png differ
diff --git a/airlines/airlines/BX.png b/airlines/airlines/BX.png
new file mode 100644
index 00000000..3f82b11d
Binary files /dev/null and b/airlines/airlines/BX.png differ
diff --git a/airlines/airlines/BY.png b/airlines/airlines/BY.png
new file mode 100644
index 00000000..df560809
Binary files /dev/null and b/airlines/airlines/BY.png differ
diff --git a/airlines/airlines/BZ.png b/airlines/airlines/BZ.png
new file mode 100644
index 00000000..ca16350a
Binary files /dev/null and b/airlines/airlines/BZ.png differ
diff --git a/airlines/airlines/C2.png b/airlines/airlines/C2.png
new file mode 100644
index 00000000..45121726
Binary files /dev/null and b/airlines/airlines/C2.png differ
diff --git a/airlines/airlines/C3.png b/airlines/airlines/C3.png
new file mode 100644
index 00000000..0b7ce248
Binary files /dev/null and b/airlines/airlines/C3.png differ
diff --git a/airlines/airlines/C5.png b/airlines/airlines/C5.png
new file mode 100644
index 00000000..bb857b99
Binary files /dev/null and b/airlines/airlines/C5.png differ
diff --git a/airlines/airlines/CA.png b/airlines/airlines/CA.png
new file mode 100644
index 00000000..5e0ecb20
Binary files /dev/null and b/airlines/airlines/CA.png differ
diff --git a/airlines/airlines/CC(1).png b/airlines/airlines/CC(1).png
new file mode 100644
index 00000000..2953a4c4
Binary files /dev/null and b/airlines/airlines/CC(1).png differ
diff --git a/airlines/airlines/CC.png b/airlines/airlines/CC.png
new file mode 100644
index 00000000..2953a4c4
Binary files /dev/null and b/airlines/airlines/CC.png differ
diff --git a/airlines/airlines/CD.png b/airlines/airlines/CD.png
new file mode 100644
index 00000000..05189860
Binary files /dev/null and b/airlines/airlines/CD.png differ
diff --git a/airlines/airlines/CE.png b/airlines/airlines/CE.png
new file mode 100644
index 00000000..fe2ca983
Binary files /dev/null and b/airlines/airlines/CE.png differ
diff --git a/airlines/airlines/CF.png b/airlines/airlines/CF.png
new file mode 100644
index 00000000..b4588e0a
Binary files /dev/null and b/airlines/airlines/CF.png differ
diff --git a/airlines/airlines/CG.png b/airlines/airlines/CG.png
new file mode 100644
index 00000000..ab56b5c7
Binary files /dev/null and b/airlines/airlines/CG.png differ
diff --git a/airlines/airlines/CI.png b/airlines/airlines/CI.png
new file mode 100644
index 00000000..b8ade0b8
Binary files /dev/null and b/airlines/airlines/CI.png differ
diff --git a/airlines/airlines/CJ.png b/airlines/airlines/CJ.png
new file mode 100644
index 00000000..2e76d8b8
Binary files /dev/null and b/airlines/airlines/CJ.png differ
diff --git a/airlines/airlines/CL.png b/airlines/airlines/CL.png
new file mode 100644
index 00000000..9db14a45
Binary files /dev/null and b/airlines/airlines/CL.png differ
diff --git a/airlines/airlines/CM.png b/airlines/airlines/CM.png
new file mode 100644
index 00000000..4c3ead51
Binary files /dev/null and b/airlines/airlines/CM.png differ
diff --git a/airlines/airlines/CN.png b/airlines/airlines/CN.png
new file mode 100644
index 00000000..a38ba919
Binary files /dev/null and b/airlines/airlines/CN.png differ
diff --git a/airlines/airlines/CO(1).png b/airlines/airlines/CO(1).png
new file mode 100644
index 00000000..69dc1746
Binary files /dev/null and b/airlines/airlines/CO(1).png differ
diff --git a/airlines/airlines/CO.png b/airlines/airlines/CO.png
new file mode 100644
index 00000000..69dc1746
Binary files /dev/null and b/airlines/airlines/CO.png differ
diff --git a/airlines/airlines/CQ.png b/airlines/airlines/CQ.png
new file mode 100644
index 00000000..ee23bdd9
Binary files /dev/null and b/airlines/airlines/CQ.png differ
diff --git a/airlines/airlines/CR.png b/airlines/airlines/CR.png
new file mode 100644
index 00000000..0d298145
Binary files /dev/null and b/airlines/airlines/CR.png differ
diff --git a/airlines/airlines/CT.png b/airlines/airlines/CT.png
new file mode 100644
index 00000000..47019381
Binary files /dev/null and b/airlines/airlines/CT.png differ
diff --git a/airlines/airlines/CU.png b/airlines/airlines/CU.png
new file mode 100644
index 00000000..0b61e723
Binary files /dev/null and b/airlines/airlines/CU.png differ
diff --git a/airlines/airlines/CV.png b/airlines/airlines/CV.png
new file mode 100644
index 00000000..b3220390
Binary files /dev/null and b/airlines/airlines/CV.png differ
diff --git a/airlines/airlines/CW.png b/airlines/airlines/CW.png
new file mode 100644
index 00000000..dc485f46
Binary files /dev/null and b/airlines/airlines/CW.png differ
diff --git a/airlines/airlines/CX.png b/airlines/airlines/CX.png
new file mode 100644
index 00000000..32e8113d
Binary files /dev/null and b/airlines/airlines/CX.png differ
diff --git a/airlines/airlines/CZ.png b/airlines/airlines/CZ.png
new file mode 100644
index 00000000..27f9b9ed
Binary files /dev/null and b/airlines/airlines/CZ.png differ
diff --git a/airlines/airlines/D7.png b/airlines/airlines/D7.png
new file mode 100644
index 00000000..98a4ea81
Binary files /dev/null and b/airlines/airlines/D7.png differ
diff --git a/airlines/airlines/D8.png b/airlines/airlines/D8.png
new file mode 100644
index 00000000..89046c71
Binary files /dev/null and b/airlines/airlines/D8.png differ
diff --git a/airlines/airlines/DB.png b/airlines/airlines/DB.png
new file mode 100644
index 00000000..31dbf5c6
Binary files /dev/null and b/airlines/airlines/DB.png differ
diff --git a/airlines/airlines/DC.png b/airlines/airlines/DC.png
new file mode 100644
index 00000000..54274270
Binary files /dev/null and b/airlines/airlines/DC.png differ
diff --git a/airlines/airlines/DD.png b/airlines/airlines/DD.png
new file mode 100644
index 00000000..efa6c276
Binary files /dev/null and b/airlines/airlines/DD.png differ
diff --git a/airlines/airlines/DE.png b/airlines/airlines/DE.png
new file mode 100644
index 00000000..37b6cfb6
Binary files /dev/null and b/airlines/airlines/DE.png differ
diff --git a/airlines/airlines/DG.png b/airlines/airlines/DG.png
new file mode 100644
index 00000000..8b1b6f03
Binary files /dev/null and b/airlines/airlines/DG.png differ
diff --git a/airlines/airlines/DK.png b/airlines/airlines/DK.png
new file mode 100644
index 00000000..6e5dd02f
Binary files /dev/null and b/airlines/airlines/DK.png differ
diff --git a/airlines/airlines/DL.png b/airlines/airlines/DL.png
new file mode 100644
index 00000000..a22bb894
Binary files /dev/null and b/airlines/airlines/DL.png differ
diff --git a/airlines/airlines/DO.png b/airlines/airlines/DO.png
new file mode 100644
index 00000000..43095975
Binary files /dev/null and b/airlines/airlines/DO.png differ
diff --git a/airlines/airlines/DQ.png b/airlines/airlines/DQ.png
new file mode 100644
index 00000000..920eb528
Binary files /dev/null and b/airlines/airlines/DQ.png differ
diff --git a/airlines/airlines/DS.png b/airlines/airlines/DS.png
new file mode 100644
index 00000000..6c8d1c74
Binary files /dev/null and b/airlines/airlines/DS.png differ
diff --git a/airlines/airlines/DT.png b/airlines/airlines/DT.png
new file mode 100644
index 00000000..af06fa48
Binary files /dev/null and b/airlines/airlines/DT.png differ
diff --git a/airlines/airlines/DV.png b/airlines/airlines/DV.png
new file mode 100644
index 00000000..0e1daa88
Binary files /dev/null and b/airlines/airlines/DV.png differ
diff --git a/airlines/airlines/DX.png b/airlines/airlines/DX.png
new file mode 100644
index 00000000..8876b71c
Binary files /dev/null and b/airlines/airlines/DX.png differ
diff --git a/airlines/airlines/DY.png b/airlines/airlines/DY.png
new file mode 100644
index 00000000..cc5e04a0
Binary files /dev/null and b/airlines/airlines/DY.png differ
diff --git a/airlines/airlines/E4.png b/airlines/airlines/E4.png
new file mode 100644
index 00000000..a159fb23
Binary files /dev/null and b/airlines/airlines/E4.png differ
diff --git a/airlines/airlines/E5.png b/airlines/airlines/E5.png
new file mode 100644
index 00000000..09cd80d6
Binary files /dev/null and b/airlines/airlines/E5.png differ
diff --git a/airlines/airlines/E8.png b/airlines/airlines/E8.png
new file mode 100644
index 00000000..cda4ab33
Binary files /dev/null and b/airlines/airlines/E8.png differ
diff --git a/airlines/airlines/E9.png b/airlines/airlines/E9.png
new file mode 100644
index 00000000..9747ee07
Binary files /dev/null and b/airlines/airlines/E9.png differ
diff --git a/airlines/airlines/EB.png b/airlines/airlines/EB.png
new file mode 100644
index 00000000..05005661
Binary files /dev/null and b/airlines/airlines/EB.png differ
diff --git a/airlines/airlines/EC.png b/airlines/airlines/EC.png
new file mode 100644
index 00000000..212dbee1
Binary files /dev/null and b/airlines/airlines/EC.png differ
diff --git a/airlines/airlines/EG.png b/airlines/airlines/EG.png
new file mode 100644
index 00000000..26339183
Binary files /dev/null and b/airlines/airlines/EG.png differ
diff --git a/airlines/airlines/EH.png b/airlines/airlines/EH.png
new file mode 100644
index 00000000..e4a53843
Binary files /dev/null and b/airlines/airlines/EH.png differ
diff --git a/airlines/airlines/EI.png b/airlines/airlines/EI.png
new file mode 100644
index 00000000..21ea4bcc
Binary files /dev/null and b/airlines/airlines/EI.png differ
diff --git a/airlines/airlines/EJ.png b/airlines/airlines/EJ.png
new file mode 100644
index 00000000..dabb408e
Binary files /dev/null and b/airlines/airlines/EJ.png differ
diff --git a/airlines/airlines/EK.png b/airlines/airlines/EK.png
new file mode 100644
index 00000000..258f59d4
Binary files /dev/null and b/airlines/airlines/EK.png differ
diff --git a/airlines/airlines/EL.png b/airlines/airlines/EL.png
new file mode 100644
index 00000000..f65b949d
Binary files /dev/null and b/airlines/airlines/EL.png differ
diff --git a/airlines/airlines/EN.png b/airlines/airlines/EN.png
new file mode 100644
index 00000000..2c18f1fa
Binary files /dev/null and b/airlines/airlines/EN.png differ
diff --git a/airlines/airlines/EO.png b/airlines/airlines/EO.png
new file mode 100644
index 00000000..89d441e7
Binary files /dev/null and b/airlines/airlines/EO.png differ
diff --git a/airlines/airlines/EQ.png b/airlines/airlines/EQ.png
new file mode 100644
index 00000000..7e345bc0
Binary files /dev/null and b/airlines/airlines/EQ.png differ
diff --git a/airlines/airlines/ER.png b/airlines/airlines/ER.png
new file mode 100644
index 00000000..b3c58593
Binary files /dev/null and b/airlines/airlines/ER.png differ
diff --git a/airlines/airlines/ET.png b/airlines/airlines/ET.png
new file mode 100644
index 00000000..91e6f71b
Binary files /dev/null and b/airlines/airlines/ET.png differ
diff --git a/airlines/airlines/EU.png b/airlines/airlines/EU.png
new file mode 100644
index 00000000..13c3fde1
Binary files /dev/null and b/airlines/airlines/EU.png differ
diff --git a/airlines/airlines/EV.png b/airlines/airlines/EV.png
new file mode 100644
index 00000000..f183e43e
Binary files /dev/null and b/airlines/airlines/EV.png differ
diff --git a/airlines/airlines/EW.png b/airlines/airlines/EW.png
new file mode 100644
index 00000000..75a78866
Binary files /dev/null and b/airlines/airlines/EW.png differ
diff --git a/airlines/airlines/EY.png b/airlines/airlines/EY.png
new file mode 100644
index 00000000..0c4f74c6
Binary files /dev/null and b/airlines/airlines/EY.png differ
diff --git a/airlines/airlines/EZ.png b/airlines/airlines/EZ.png
new file mode 100644
index 00000000..4bf2727e
Binary files /dev/null and b/airlines/airlines/EZ.png differ
diff --git a/airlines/airlines/F3.png b/airlines/airlines/F3.png
new file mode 100644
index 00000000..ec3df86c
Binary files /dev/null and b/airlines/airlines/F3.png differ
diff --git a/airlines/airlines/F7(1).png b/airlines/airlines/F7(1).png
new file mode 100644
index 00000000..91decadd
Binary files /dev/null and b/airlines/airlines/F7(1).png differ
diff --git a/airlines/airlines/F7.png b/airlines/airlines/F7.png
new file mode 100644
index 00000000..91decadd
Binary files /dev/null and b/airlines/airlines/F7.png differ
diff --git a/airlines/airlines/F8.png b/airlines/airlines/F8.png
new file mode 100644
index 00000000..8dcac984
Binary files /dev/null and b/airlines/airlines/F8.png differ
diff --git a/airlines/airlines/F9.png b/airlines/airlines/F9.png
new file mode 100644
index 00000000..ae0adbd3
Binary files /dev/null and b/airlines/airlines/F9.png differ
diff --git a/airlines/airlines/FA.png b/airlines/airlines/FA.png
new file mode 100644
index 00000000..d078123a
Binary files /dev/null and b/airlines/airlines/FA.png differ
diff --git a/airlines/airlines/FB.png b/airlines/airlines/FB.png
new file mode 100644
index 00000000..4ac13f55
Binary files /dev/null and b/airlines/airlines/FB.png differ
diff --git a/airlines/airlines/FC.png b/airlines/airlines/FC.png
new file mode 100644
index 00000000..578b27ca
Binary files /dev/null and b/airlines/airlines/FC.png differ
diff --git a/airlines/airlines/FD.png b/airlines/airlines/FD.png
new file mode 100644
index 00000000..9028b828
Binary files /dev/null and b/airlines/airlines/FD.png differ
diff --git a/airlines/airlines/FH.png b/airlines/airlines/FH.png
new file mode 100644
index 00000000..d1f98bc8
Binary files /dev/null and b/airlines/airlines/FH.png differ
diff --git a/airlines/airlines/FI.png b/airlines/airlines/FI.png
new file mode 100644
index 00000000..23cf948a
Binary files /dev/null and b/airlines/airlines/FI.png differ
diff --git a/airlines/airlines/FJ.png b/airlines/airlines/FJ.png
new file mode 100644
index 00000000..8bccdf91
Binary files /dev/null and b/airlines/airlines/FJ.png differ
diff --git a/airlines/airlines/FM.png b/airlines/airlines/FM.png
new file mode 100644
index 00000000..ebd624fa
Binary files /dev/null and b/airlines/airlines/FM.png differ
diff --git a/airlines/airlines/FN.png b/airlines/airlines/FN.png
new file mode 100644
index 00000000..0a35c3c3
Binary files /dev/null and b/airlines/airlines/FN.png differ
diff --git a/airlines/airlines/FR.png b/airlines/airlines/FR.png
new file mode 100644
index 00000000..ecff368b
Binary files /dev/null and b/airlines/airlines/FR.png differ
diff --git a/airlines/airlines/FT.png b/airlines/airlines/FT.png
new file mode 100644
index 00000000..d008fd84
Binary files /dev/null and b/airlines/airlines/FT.png differ
diff --git a/airlines/airlines/FV.png b/airlines/airlines/FV.png
new file mode 100644
index 00000000..d797d30f
Binary files /dev/null and b/airlines/airlines/FV.png differ
diff --git a/airlines/airlines/FW.png b/airlines/airlines/FW.png
new file mode 100644
index 00000000..1c64d1a7
Binary files /dev/null and b/airlines/airlines/FW.png differ
diff --git a/airlines/airlines/FY.png b/airlines/airlines/FY.png
new file mode 100644
index 00000000..c884b818
Binary files /dev/null and b/airlines/airlines/FY.png differ
diff --git a/airlines/airlines/FZ.png b/airlines/airlines/FZ.png
new file mode 100644
index 00000000..7749bb66
Binary files /dev/null and b/airlines/airlines/FZ.png differ
diff --git a/airlines/airlines/G2.png b/airlines/airlines/G2.png
new file mode 100644
index 00000000..b0b9041a
Binary files /dev/null and b/airlines/airlines/G2.png differ
diff --git a/airlines/airlines/G3.png b/airlines/airlines/G3.png
new file mode 100644
index 00000000..0411b7cf
Binary files /dev/null and b/airlines/airlines/G3.png differ
diff --git a/airlines/airlines/G4.png b/airlines/airlines/G4.png
new file mode 100644
index 00000000..04b7f013
Binary files /dev/null and b/airlines/airlines/G4.png differ
diff --git a/airlines/airlines/G5.png b/airlines/airlines/G5.png
new file mode 100644
index 00000000..e4fc1100
Binary files /dev/null and b/airlines/airlines/G5.png differ
diff --git a/airlines/airlines/G7.png b/airlines/airlines/G7.png
new file mode 100644
index 00000000..8c769a26
Binary files /dev/null and b/airlines/airlines/G7.png differ
diff --git a/airlines/airlines/G8.png b/airlines/airlines/G8.png
new file mode 100644
index 00000000..396ccccb
Binary files /dev/null and b/airlines/airlines/G8.png differ
diff --git a/airlines/airlines/G9.png b/airlines/airlines/G9.png
new file mode 100644
index 00000000..5d8a50f7
Binary files /dev/null and b/airlines/airlines/G9.png differ
diff --git a/airlines/airlines/GA.png b/airlines/airlines/GA.png
new file mode 100644
index 00000000..9ff3203c
Binary files /dev/null and b/airlines/airlines/GA.png differ
diff --git a/airlines/airlines/GE.png b/airlines/airlines/GE.png
new file mode 100644
index 00000000..2f3b09da
Binary files /dev/null and b/airlines/airlines/GE.png differ
diff --git a/airlines/airlines/GF.png b/airlines/airlines/GF.png
new file mode 100644
index 00000000..bc594c7a
Binary files /dev/null and b/airlines/airlines/GF.png differ
diff --git a/airlines/airlines/GH.png b/airlines/airlines/GH.png
new file mode 100644
index 00000000..693a18b7
Binary files /dev/null and b/airlines/airlines/GH.png differ
diff --git a/airlines/airlines/GJ.png b/airlines/airlines/GJ.png
new file mode 100644
index 00000000..9f3de796
Binary files /dev/null and b/airlines/airlines/GJ.png differ
diff --git a/airlines/airlines/GK.png b/airlines/airlines/GK.png
new file mode 100644
index 00000000..371b95c1
Binary files /dev/null and b/airlines/airlines/GK.png differ
diff --git a/airlines/airlines/GL.png b/airlines/airlines/GL.png
new file mode 100644
index 00000000..5b5b19bd
Binary files /dev/null and b/airlines/airlines/GL.png differ
diff --git a/airlines/airlines/GM(1).png b/airlines/airlines/GM(1).png
new file mode 100644
index 00000000..c7c1ccc2
Binary files /dev/null and b/airlines/airlines/GM(1).png differ
diff --git a/airlines/airlines/GM.png b/airlines/airlines/GM.png
new file mode 100644
index 00000000..c7c1ccc2
Binary files /dev/null and b/airlines/airlines/GM.png differ
diff --git a/airlines/airlines/GP(1).png b/airlines/airlines/GP(1).png
new file mode 100644
index 00000000..70017688
Binary files /dev/null and b/airlines/airlines/GP(1).png differ
diff --git a/airlines/airlines/GP.png b/airlines/airlines/GP.png
new file mode 100644
index 00000000..70017688
Binary files /dev/null and b/airlines/airlines/GP.png differ
diff --git a/airlines/airlines/GQ.png b/airlines/airlines/GQ.png
new file mode 100644
index 00000000..4f5efbeb
Binary files /dev/null and b/airlines/airlines/GQ.png differ
diff --git a/airlines/airlines/GR.png b/airlines/airlines/GR.png
new file mode 100644
index 00000000..9e6ec649
Binary files /dev/null and b/airlines/airlines/GR.png differ
diff --git a/airlines/airlines/GS(1).png b/airlines/airlines/GS(1).png
new file mode 100644
index 00000000..5d3720cd
Binary files /dev/null and b/airlines/airlines/GS(1).png differ
diff --git a/airlines/airlines/GS.png b/airlines/airlines/GS.png
new file mode 100644
index 00000000..5d3720cd
Binary files /dev/null and b/airlines/airlines/GS.png differ
diff --git a/airlines/airlines/GV.png b/airlines/airlines/GV.png
new file mode 100644
index 00000000..ed9e6140
Binary files /dev/null and b/airlines/airlines/GV.png differ
diff --git a/airlines/airlines/GZ.png b/airlines/airlines/GZ.png
new file mode 100644
index 00000000..df1a344b
Binary files /dev/null and b/airlines/airlines/GZ.png differ
diff --git a/airlines/airlines/H1(1).png b/airlines/airlines/H1(1).png
new file mode 100644
index 00000000..9f044f03
Binary files /dev/null and b/airlines/airlines/H1(1).png differ
diff --git a/airlines/airlines/H1.png b/airlines/airlines/H1.png
new file mode 100644
index 00000000..9f044f03
Binary files /dev/null and b/airlines/airlines/H1.png differ
diff --git a/airlines/airlines/H2.png b/airlines/airlines/H2.png
new file mode 100644
index 00000000..9ddc4a01
Binary files /dev/null and b/airlines/airlines/H2.png differ
diff --git a/airlines/airlines/H9.png b/airlines/airlines/H9.png
new file mode 100644
index 00000000..77aa2ffb
Binary files /dev/null and b/airlines/airlines/H9.png differ
diff --git a/airlines/airlines/HA.png b/airlines/airlines/HA.png
new file mode 100644
index 00000000..5cf9a1b6
Binary files /dev/null and b/airlines/airlines/HA.png differ
diff --git a/airlines/airlines/HC(1).png b/airlines/airlines/HC(1).png
new file mode 100644
index 00000000..93eaa1ba
Binary files /dev/null and b/airlines/airlines/HC(1).png differ
diff --git a/airlines/airlines/HC.png b/airlines/airlines/HC.png
new file mode 100644
index 00000000..93eaa1ba
Binary files /dev/null and b/airlines/airlines/HC.png differ
diff --git a/airlines/airlines/HD.png b/airlines/airlines/HD.png
new file mode 100644
index 00000000..0b75954c
Binary files /dev/null and b/airlines/airlines/HD.png differ
diff --git a/airlines/airlines/HE.png b/airlines/airlines/HE.png
new file mode 100644
index 00000000..6b14656e
Binary files /dev/null and b/airlines/airlines/HE.png differ
diff --git a/airlines/airlines/HF.png b/airlines/airlines/HF.png
new file mode 100644
index 00000000..16fe54b7
Binary files /dev/null and b/airlines/airlines/HF.png differ
diff --git a/airlines/airlines/HG.png b/airlines/airlines/HG.png
new file mode 100644
index 00000000..af82b2e6
Binary files /dev/null and b/airlines/airlines/HG.png differ
diff --git a/airlines/airlines/HI.png b/airlines/airlines/HI.png
new file mode 100644
index 00000000..6783a58d
Binary files /dev/null and b/airlines/airlines/HI.png differ
diff --git a/airlines/airlines/HM.png b/airlines/airlines/HM.png
new file mode 100644
index 00000000..73df5bb5
Binary files /dev/null and b/airlines/airlines/HM.png differ
diff --git a/airlines/airlines/HO.png b/airlines/airlines/HO.png
new file mode 100644
index 00000000..0237be30
Binary files /dev/null and b/airlines/airlines/HO.png differ
diff --git a/airlines/airlines/HP.png b/airlines/airlines/HP.png
new file mode 100644
index 00000000..2b4c9b7b
Binary files /dev/null and b/airlines/airlines/HP.png differ
diff --git a/airlines/airlines/HQ.png b/airlines/airlines/HQ.png
new file mode 100644
index 00000000..414479d2
Binary files /dev/null and b/airlines/airlines/HQ.png differ
diff --git a/airlines/airlines/HR.png b/airlines/airlines/HR.png
new file mode 100644
index 00000000..6cfa270c
Binary files /dev/null and b/airlines/airlines/HR.png differ
diff --git a/airlines/airlines/HS.png b/airlines/airlines/HS.png
new file mode 100644
index 00000000..8f5c7c02
Binary files /dev/null and b/airlines/airlines/HS.png differ
diff --git a/airlines/airlines/HU.png b/airlines/airlines/HU.png
new file mode 100644
index 00000000..98400bc7
Binary files /dev/null and b/airlines/airlines/HU.png differ
diff --git a/airlines/airlines/HV.png b/airlines/airlines/HV.png
new file mode 100644
index 00000000..21ca8608
Binary files /dev/null and b/airlines/airlines/HV.png differ
diff --git a/airlines/airlines/HX.png b/airlines/airlines/HX.png
new file mode 100644
index 00000000..1699a345
Binary files /dev/null and b/airlines/airlines/HX.png differ
diff --git a/airlines/airlines/HY.png b/airlines/airlines/HY.png
new file mode 100644
index 00000000..f610e60f
Binary files /dev/null and b/airlines/airlines/HY.png differ
diff --git a/airlines/airlines/HZ.png b/airlines/airlines/HZ.png
new file mode 100644
index 00000000..1abda8bd
Binary files /dev/null and b/airlines/airlines/HZ.png differ
diff --git a/airlines/airlines/I2.png b/airlines/airlines/I2.png
new file mode 100644
index 00000000..4c7f0752
Binary files /dev/null and b/airlines/airlines/I2.png differ
diff --git a/airlines/airlines/I5.png b/airlines/airlines/I5.png
new file mode 100644
index 00000000..b3ca2650
Binary files /dev/null and b/airlines/airlines/I5.png differ
diff --git a/airlines/airlines/I9.png b/airlines/airlines/I9.png
new file mode 100644
index 00000000..db37c6e7
Binary files /dev/null and b/airlines/airlines/I9.png differ
diff --git a/airlines/airlines/IA.png b/airlines/airlines/IA.png
new file mode 100644
index 00000000..231e5fa3
Binary files /dev/null and b/airlines/airlines/IA.png differ
diff --git a/airlines/airlines/IB.png b/airlines/airlines/IB.png
new file mode 100644
index 00000000..536d42d5
Binary files /dev/null and b/airlines/airlines/IB.png differ
diff --git a/airlines/airlines/ID.png b/airlines/airlines/ID.png
new file mode 100644
index 00000000..70428eaa
Binary files /dev/null and b/airlines/airlines/ID.png differ
diff --git a/airlines/airlines/IE.png b/airlines/airlines/IE.png
new file mode 100644
index 00000000..eb3504a8
Binary files /dev/null and b/airlines/airlines/IE.png differ
diff --git a/airlines/airlines/IF.png b/airlines/airlines/IF.png
new file mode 100644
index 00000000..085991df
Binary files /dev/null and b/airlines/airlines/IF.png differ
diff --git a/airlines/airlines/IG.png b/airlines/airlines/IG.png
new file mode 100644
index 00000000..0dbd7100
Binary files /dev/null and b/airlines/airlines/IG.png differ
diff --git a/airlines/airlines/IL.png b/airlines/airlines/IL.png
new file mode 100644
index 00000000..501d1c8a
Binary files /dev/null and b/airlines/airlines/IL.png differ
diff --git a/airlines/airlines/IN.png b/airlines/airlines/IN.png
new file mode 100644
index 00000000..8a766de6
Binary files /dev/null and b/airlines/airlines/IN.png differ
diff --git a/airlines/airlines/IO.png b/airlines/airlines/IO.png
new file mode 100644
index 00000000..19cd49a5
Binary files /dev/null and b/airlines/airlines/IO.png differ
diff --git a/airlines/airlines/IR.png b/airlines/airlines/IR.png
new file mode 100644
index 00000000..64049459
Binary files /dev/null and b/airlines/airlines/IR.png differ
diff --git a/airlines/airlines/IT.png b/airlines/airlines/IT.png
new file mode 100644
index 00000000..32e14d26
Binary files /dev/null and b/airlines/airlines/IT.png differ
diff --git a/airlines/airlines/IU.png b/airlines/airlines/IU.png
new file mode 100644
index 00000000..82bb0f0f
Binary files /dev/null and b/airlines/airlines/IU.png differ
diff --git a/airlines/airlines/IW.png b/airlines/airlines/IW.png
new file mode 100644
index 00000000..04840c9e
Binary files /dev/null and b/airlines/airlines/IW.png differ
diff --git a/airlines/airlines/IX.png b/airlines/airlines/IX.png
new file mode 100644
index 00000000..afc6dc97
Binary files /dev/null and b/airlines/airlines/IX.png differ
diff --git a/airlines/airlines/IY.png b/airlines/airlines/IY.png
new file mode 100644
index 00000000..8d5d4c49
Binary files /dev/null and b/airlines/airlines/IY.png differ
diff --git a/airlines/airlines/IZ.png b/airlines/airlines/IZ.png
new file mode 100644
index 00000000..f1722f8f
Binary files /dev/null and b/airlines/airlines/IZ.png differ
diff --git a/airlines/airlines/J2.png b/airlines/airlines/J2.png
new file mode 100644
index 00000000..30c71265
Binary files /dev/null and b/airlines/airlines/J2.png differ
diff --git a/airlines/airlines/J8.png b/airlines/airlines/J8.png
new file mode 100644
index 00000000..35da3a2a
Binary files /dev/null and b/airlines/airlines/J8.png differ
diff --git a/airlines/airlines/J9.png b/airlines/airlines/J9.png
new file mode 100644
index 00000000..92498487
Binary files /dev/null and b/airlines/airlines/J9.png differ
diff --git a/airlines/airlines/JD.png b/airlines/airlines/JD.png
new file mode 100644
index 00000000..0a5dfb5e
Binary files /dev/null and b/airlines/airlines/JD.png differ
diff --git a/airlines/airlines/JE.png b/airlines/airlines/JE.png
new file mode 100644
index 00000000..0e25c684
Binary files /dev/null and b/airlines/airlines/JE.png differ
diff --git a/airlines/airlines/JF.png b/airlines/airlines/JF.png
new file mode 100644
index 00000000..199ee5aa
Binary files /dev/null and b/airlines/airlines/JF.png differ
diff --git a/airlines/airlines/JH.png b/airlines/airlines/JH.png
new file mode 100644
index 00000000..5fc971fd
Binary files /dev/null and b/airlines/airlines/JH.png differ
diff --git a/airlines/airlines/JI.png b/airlines/airlines/JI.png
new file mode 100644
index 00000000..ead1b327
Binary files /dev/null and b/airlines/airlines/JI.png differ
diff --git a/airlines/airlines/JJ.png b/airlines/airlines/JJ.png
new file mode 100644
index 00000000..0b3cfc68
Binary files /dev/null and b/airlines/airlines/JJ.png differ
diff --git a/airlines/airlines/JL.png b/airlines/airlines/JL.png
new file mode 100644
index 00000000..72d5d302
Binary files /dev/null and b/airlines/airlines/JL.png differ
diff --git a/airlines/airlines/JO.png b/airlines/airlines/JO.png
new file mode 100644
index 00000000..8b8b428d
Binary files /dev/null and b/airlines/airlines/JO.png differ
diff --git a/airlines/airlines/JP.png b/airlines/airlines/JP.png
new file mode 100644
index 00000000..6c76fe5a
Binary files /dev/null and b/airlines/airlines/JP.png differ
diff --git a/airlines/airlines/JQ.png b/airlines/airlines/JQ.png
new file mode 100644
index 00000000..66f5319a
Binary files /dev/null and b/airlines/airlines/JQ.png differ
diff --git a/airlines/airlines/JR.png b/airlines/airlines/JR.png
new file mode 100644
index 00000000..ca61d74b
Binary files /dev/null and b/airlines/airlines/JR.png differ
diff --git a/airlines/airlines/JT.png b/airlines/airlines/JT.png
new file mode 100644
index 00000000..49652a26
Binary files /dev/null and b/airlines/airlines/JT.png differ
diff --git a/airlines/airlines/JU.png b/airlines/airlines/JU.png
new file mode 100644
index 00000000..23f8f9a0
Binary files /dev/null and b/airlines/airlines/JU.png differ
diff --git a/airlines/airlines/JV.png b/airlines/airlines/JV.png
new file mode 100644
index 00000000..2973f122
Binary files /dev/null and b/airlines/airlines/JV.png differ
diff --git a/airlines/airlines/JW.png b/airlines/airlines/JW.png
new file mode 100644
index 00000000..e8f788f9
Binary files /dev/null and b/airlines/airlines/JW.png differ
diff --git a/airlines/airlines/JY.png b/airlines/airlines/JY.png
new file mode 100644
index 00000000..7449bf33
Binary files /dev/null and b/airlines/airlines/JY.png differ
diff --git a/airlines/airlines/JZ.png b/airlines/airlines/JZ.png
new file mode 100644
index 00000000..09d5b371
Binary files /dev/null and b/airlines/airlines/JZ.png differ
diff --git a/airlines/airlines/K4.png b/airlines/airlines/K4.png
new file mode 100644
index 00000000..a034b768
Binary files /dev/null and b/airlines/airlines/K4.png differ
diff --git a/airlines/airlines/K6.png b/airlines/airlines/K6.png
new file mode 100644
index 00000000..29c4287e
Binary files /dev/null and b/airlines/airlines/K6.png differ
diff --git a/airlines/airlines/K9.png b/airlines/airlines/K9.png
new file mode 100644
index 00000000..65fa950b
Binary files /dev/null and b/airlines/airlines/K9.png differ
diff --git a/airlines/airlines/KA.png b/airlines/airlines/KA.png
new file mode 100644
index 00000000..c89ff36a
Binary files /dev/null and b/airlines/airlines/KA.png differ
diff --git a/airlines/airlines/KB.png b/airlines/airlines/KB.png
new file mode 100644
index 00000000..2da11e0d
Binary files /dev/null and b/airlines/airlines/KB.png differ
diff --git a/airlines/airlines/KC.png b/airlines/airlines/KC.png
new file mode 100644
index 00000000..4d3e9fd5
Binary files /dev/null and b/airlines/airlines/KC.png differ
diff --git a/airlines/airlines/KD.png b/airlines/airlines/KD.png
new file mode 100644
index 00000000..8c6a7c92
Binary files /dev/null and b/airlines/airlines/KD.png differ
diff --git a/airlines/airlines/KE.png b/airlines/airlines/KE.png
new file mode 100644
index 00000000..3f1c65da
Binary files /dev/null and b/airlines/airlines/KE.png differ
diff --git a/airlines/airlines/KK.png b/airlines/airlines/KK.png
new file mode 100644
index 00000000..967a0812
Binary files /dev/null and b/airlines/airlines/KK.png differ
diff --git a/airlines/airlines/KL.png b/airlines/airlines/KL.png
new file mode 100644
index 00000000..aee0783b
Binary files /dev/null and b/airlines/airlines/KL.png differ
diff --git a/airlines/airlines/KM.png b/airlines/airlines/KM.png
new file mode 100644
index 00000000..92d5954c
Binary files /dev/null and b/airlines/airlines/KM.png differ
diff --git a/airlines/airlines/KN.png b/airlines/airlines/KN.png
new file mode 100644
index 00000000..37e37b12
Binary files /dev/null and b/airlines/airlines/KN.png differ
diff --git a/airlines/airlines/KO.png b/airlines/airlines/KO.png
new file mode 100644
index 00000000..cc5058e6
Binary files /dev/null and b/airlines/airlines/KO.png differ
diff --git a/airlines/airlines/KP.png b/airlines/airlines/KP.png
new file mode 100644
index 00000000..ccdc08ff
Binary files /dev/null and b/airlines/airlines/KP.png differ
diff --git a/airlines/airlines/KQ.png b/airlines/airlines/KQ.png
new file mode 100644
index 00000000..2a0f97e5
Binary files /dev/null and b/airlines/airlines/KQ.png differ
diff --git a/airlines/airlines/KS.png b/airlines/airlines/KS.png
new file mode 100644
index 00000000..b7cf1fc3
Binary files /dev/null and b/airlines/airlines/KS.png differ
diff --git a/airlines/airlines/KU.png b/airlines/airlines/KU.png
new file mode 100644
index 00000000..68526604
Binary files /dev/null and b/airlines/airlines/KU.png differ
diff --git a/airlines/airlines/KX.png b/airlines/airlines/KX.png
new file mode 100644
index 00000000..c414c801
Binary files /dev/null and b/airlines/airlines/KX.png differ
diff --git a/airlines/airlines/KY.png b/airlines/airlines/KY.png
new file mode 100644
index 00000000..cbc25d4b
Binary files /dev/null and b/airlines/airlines/KY.png differ
diff --git a/airlines/airlines/L6(1).png b/airlines/airlines/L6(1).png
new file mode 100644
index 00000000..22c10629
Binary files /dev/null and b/airlines/airlines/L6(1).png differ
diff --git a/airlines/airlines/L6.png b/airlines/airlines/L6.png
new file mode 100644
index 00000000..22c10629
Binary files /dev/null and b/airlines/airlines/L6.png differ
diff --git a/airlines/airlines/LA.png b/airlines/airlines/LA.png
new file mode 100644
index 00000000..bd8b3278
Binary files /dev/null and b/airlines/airlines/LA.png differ
diff --git a/airlines/airlines/LG.png b/airlines/airlines/LG.png
new file mode 100644
index 00000000..ab318bf4
Binary files /dev/null and b/airlines/airlines/LG.png differ
diff --git a/airlines/airlines/LH.png b/airlines/airlines/LH.png
new file mode 100644
index 00000000..9db14a45
Binary files /dev/null and b/airlines/airlines/LH.png differ
diff --git a/airlines/airlines/LI.png b/airlines/airlines/LI.png
new file mode 100644
index 00000000..46041afa
Binary files /dev/null and b/airlines/airlines/LI.png differ
diff --git a/airlines/airlines/LJ.png b/airlines/airlines/LJ.png
new file mode 100644
index 00000000..26067515
Binary files /dev/null and b/airlines/airlines/LJ.png differ
diff --git a/airlines/airlines/LM.png b/airlines/airlines/LM.png
new file mode 100644
index 00000000..f4dab3bb
Binary files /dev/null and b/airlines/airlines/LM.png differ
diff --git a/airlines/airlines/LN.png b/airlines/airlines/LN.png
new file mode 100644
index 00000000..5638e4f2
Binary files /dev/null and b/airlines/airlines/LN.png differ
diff --git a/airlines/airlines/LO.png b/airlines/airlines/LO.png
new file mode 100644
index 00000000..3f6ecb8f
Binary files /dev/null and b/airlines/airlines/LO.png differ
diff --git a/airlines/airlines/LP.png b/airlines/airlines/LP.png
new file mode 100644
index 00000000..b7addaab
Binary files /dev/null and b/airlines/airlines/LP.png differ
diff --git a/airlines/airlines/LQ(1).png b/airlines/airlines/LQ(1).png
new file mode 100644
index 00000000..7cc879ad
Binary files /dev/null and b/airlines/airlines/LQ(1).png differ
diff --git a/airlines/airlines/LQ.png b/airlines/airlines/LQ.png
new file mode 100644
index 00000000..7cc879ad
Binary files /dev/null and b/airlines/airlines/LQ.png differ
diff --git a/airlines/airlines/LR.png b/airlines/airlines/LR.png
new file mode 100644
index 00000000..fd886b62
Binary files /dev/null and b/airlines/airlines/LR.png differ
diff --git a/airlines/airlines/LS.png b/airlines/airlines/LS.png
new file mode 100644
index 00000000..7b61ccea
Binary files /dev/null and b/airlines/airlines/LS.png differ
diff --git a/airlines/airlines/LU.png b/airlines/airlines/LU.png
new file mode 100644
index 00000000..19480396
Binary files /dev/null and b/airlines/airlines/LU.png differ
diff --git a/airlines/airlines/LW.png b/airlines/airlines/LW.png
new file mode 100644
index 00000000..4d81552f
Binary files /dev/null and b/airlines/airlines/LW.png differ
diff --git a/airlines/airlines/LX.png b/airlines/airlines/LX.png
new file mode 100644
index 00000000..a93f428f
Binary files /dev/null and b/airlines/airlines/LX.png differ
diff --git a/airlines/airlines/LY(1).png b/airlines/airlines/LY(1).png
new file mode 100644
index 00000000..0e8bf05b
Binary files /dev/null and b/airlines/airlines/LY(1).png differ
diff --git a/airlines/airlines/LY.png b/airlines/airlines/LY.png
new file mode 100644
index 00000000..0e8bf05b
Binary files /dev/null and b/airlines/airlines/LY.png differ
diff --git a/airlines/airlines/M9(1).png b/airlines/airlines/M9(1).png
new file mode 100644
index 00000000..df12f872
Binary files /dev/null and b/airlines/airlines/M9(1).png differ
diff --git a/airlines/airlines/M9.png b/airlines/airlines/M9.png
new file mode 100644
index 00000000..df12f872
Binary files /dev/null and b/airlines/airlines/M9.png differ
diff --git a/airlines/airlines/MD.png b/airlines/airlines/MD.png
new file mode 100644
index 00000000..20796e8e
Binary files /dev/null and b/airlines/airlines/MD.png differ
diff --git a/airlines/airlines/ME.png b/airlines/airlines/ME.png
new file mode 100644
index 00000000..6a24397e
Binary files /dev/null and b/airlines/airlines/ME.png differ
diff --git a/airlines/airlines/MF.png b/airlines/airlines/MF.png
new file mode 100644
index 00000000..5ecd4173
Binary files /dev/null and b/airlines/airlines/MF.png differ
diff --git a/airlines/airlines/MH.png b/airlines/airlines/MH.png
new file mode 100644
index 00000000..48fdb48c
Binary files /dev/null and b/airlines/airlines/MH.png differ
diff --git a/airlines/airlines/MI.png b/airlines/airlines/MI.png
new file mode 100644
index 00000000..fa8dabd6
Binary files /dev/null and b/airlines/airlines/MI.png differ
diff --git a/airlines/airlines/MJ(1).png b/airlines/airlines/MJ(1).png
new file mode 100644
index 00000000..31a8e124
Binary files /dev/null and b/airlines/airlines/MJ(1).png differ
diff --git a/airlines/airlines/MJ.png b/airlines/airlines/MJ.png
new file mode 100644
index 00000000..31a8e124
Binary files /dev/null and b/airlines/airlines/MJ.png differ
diff --git a/airlines/airlines/MK.png b/airlines/airlines/MK.png
new file mode 100644
index 00000000..1365fbff
Binary files /dev/null and b/airlines/airlines/MK.png differ
diff --git a/airlines/airlines/MM.png b/airlines/airlines/MM.png
new file mode 100644
index 00000000..27ce34b1
Binary files /dev/null and b/airlines/airlines/MM.png differ
diff --git a/airlines/airlines/MN.png b/airlines/airlines/MN.png
new file mode 100644
index 00000000..994287ca
Binary files /dev/null and b/airlines/airlines/MN.png differ
diff --git a/airlines/airlines/MO.png b/airlines/airlines/MO.png
new file mode 100644
index 00000000..4fdb28bb
Binary files /dev/null and b/airlines/airlines/MO.png differ
diff --git a/airlines/airlines/MP.png b/airlines/airlines/MP.png
new file mode 100644
index 00000000..c071230c
Binary files /dev/null and b/airlines/airlines/MP.png differ
diff --git a/airlines/airlines/MR.png b/airlines/airlines/MR.png
new file mode 100644
index 00000000..fce9ed7f
Binary files /dev/null and b/airlines/airlines/MR.png differ
diff --git a/airlines/airlines/MS.png b/airlines/airlines/MS.png
new file mode 100644
index 00000000..198161ba
Binary files /dev/null and b/airlines/airlines/MS.png differ
diff --git a/airlines/airlines/MT.png b/airlines/airlines/MT.png
new file mode 100644
index 00000000..c0c415c7
Binary files /dev/null and b/airlines/airlines/MT.png differ
diff --git a/airlines/airlines/MU.png b/airlines/airlines/MU.png
new file mode 100644
index 00000000..5371ed6b
Binary files /dev/null and b/airlines/airlines/MU.png differ
diff --git a/airlines/airlines/MW.png b/airlines/airlines/MW.png
new file mode 100644
index 00000000..bbecd931
Binary files /dev/null and b/airlines/airlines/MW.png differ
diff --git a/airlines/airlines/MX.png b/airlines/airlines/MX.png
new file mode 100644
index 00000000..eb07a5c8
Binary files /dev/null and b/airlines/airlines/MX.png differ
diff --git a/airlines/airlines/MY.png b/airlines/airlines/MY.png
new file mode 100644
index 00000000..fea5a28d
Binary files /dev/null and b/airlines/airlines/MY.png differ
diff --git a/airlines/airlines/N4.png b/airlines/airlines/N4.png
new file mode 100644
index 00000000..701477c9
Binary files /dev/null and b/airlines/airlines/N4.png differ
diff --git a/airlines/airlines/NE.png b/airlines/airlines/NE.png
new file mode 100644
index 00000000..d5d623cd
Binary files /dev/null and b/airlines/airlines/NE.png differ
diff --git a/airlines/airlines/NF.png b/airlines/airlines/NF.png
new file mode 100644
index 00000000..1a3d518c
Binary files /dev/null and b/airlines/airlines/NF.png differ
diff --git a/airlines/airlines/NG.png b/airlines/airlines/NG.png
new file mode 100644
index 00000000..62e5d875
Binary files /dev/null and b/airlines/airlines/NG.png differ
diff --git a/airlines/airlines/NH.png b/airlines/airlines/NH.png
new file mode 100644
index 00000000..f3e110f4
Binary files /dev/null and b/airlines/airlines/NH.png differ
diff --git a/airlines/airlines/NI.png b/airlines/airlines/NI.png
new file mode 100644
index 00000000..bc4074c6
Binary files /dev/null and b/airlines/airlines/NI.png differ
diff --git a/airlines/airlines/NK.png b/airlines/airlines/NK.png
new file mode 100644
index 00000000..b6e7d70c
Binary files /dev/null and b/airlines/airlines/NK.png differ
diff --git a/airlines/airlines/NM.png b/airlines/airlines/NM.png
new file mode 100644
index 00000000..47ae98fd
Binary files /dev/null and b/airlines/airlines/NM.png differ
diff --git a/airlines/airlines/NO.png b/airlines/airlines/NO.png
new file mode 100644
index 00000000..5962be6c
Binary files /dev/null and b/airlines/airlines/NO.png differ
diff --git a/airlines/airlines/NP.png b/airlines/airlines/NP.png
new file mode 100644
index 00000000..5a5b6f5e
Binary files /dev/null and b/airlines/airlines/NP.png differ
diff --git a/airlines/airlines/NQ.png b/airlines/airlines/NQ.png
new file mode 100644
index 00000000..924e415a
Binary files /dev/null and b/airlines/airlines/NQ.png differ
diff --git a/airlines/airlines/NR.png b/airlines/airlines/NR.png
new file mode 100644
index 00000000..28c45be6
Binary files /dev/null and b/airlines/airlines/NR.png differ
diff --git a/airlines/airlines/NS.png b/airlines/airlines/NS.png
new file mode 100644
index 00000000..3163be58
Binary files /dev/null and b/airlines/airlines/NS.png differ
diff --git a/airlines/airlines/NT.png b/airlines/airlines/NT.png
new file mode 100644
index 00000000..dbbeeb6a
Binary files /dev/null and b/airlines/airlines/NT.png differ
diff --git a/airlines/airlines/NU.png b/airlines/airlines/NU.png
new file mode 100644
index 00000000..1e125852
Binary files /dev/null and b/airlines/airlines/NU.png differ
diff --git a/airlines/airlines/NX.png b/airlines/airlines/NX.png
new file mode 100644
index 00000000..c5bd551c
Binary files /dev/null and b/airlines/airlines/NX.png differ
diff --git a/airlines/airlines/NY.png b/airlines/airlines/NY.png
new file mode 100644
index 00000000..ebe8fcec
Binary files /dev/null and b/airlines/airlines/NY.png differ
diff --git a/airlines/airlines/NZ.png b/airlines/airlines/NZ.png
new file mode 100644
index 00000000..a8466d41
Binary files /dev/null and b/airlines/airlines/NZ.png differ
diff --git a/airlines/airlines/O8.png b/airlines/airlines/O8.png
new file mode 100644
index 00000000..ae97c3c2
Binary files /dev/null and b/airlines/airlines/O8.png differ
diff --git a/airlines/airlines/OA.png b/airlines/airlines/OA.png
new file mode 100644
index 00000000..621d0dd1
Binary files /dev/null and b/airlines/airlines/OA.png differ
diff --git a/airlines/airlines/OB.png b/airlines/airlines/OB.png
new file mode 100644
index 00000000..1a1e5bea
Binary files /dev/null and b/airlines/airlines/OB.png differ
diff --git a/airlines/airlines/OD.png b/airlines/airlines/OD.png
new file mode 100644
index 00000000..df91b6a7
Binary files /dev/null and b/airlines/airlines/OD.png differ
diff --git a/airlines/airlines/OH.png b/airlines/airlines/OH.png
new file mode 100644
index 00000000..6f6938c0
Binary files /dev/null and b/airlines/airlines/OH.png differ
diff --git a/airlines/airlines/OJ.png b/airlines/airlines/OJ.png
new file mode 100644
index 00000000..569fa729
Binary files /dev/null and b/airlines/airlines/OJ.png differ
diff --git a/airlines/airlines/OK.png b/airlines/airlines/OK.png
new file mode 100644
index 00000000..37537246
Binary files /dev/null and b/airlines/airlines/OK.png differ
diff --git a/airlines/airlines/OM.png b/airlines/airlines/OM.png
new file mode 100644
index 00000000..f27497bc
Binary files /dev/null and b/airlines/airlines/OM.png differ
diff --git a/airlines/airlines/OO.png b/airlines/airlines/OO.png
new file mode 100644
index 00000000..dae50d39
Binary files /dev/null and b/airlines/airlines/OO.png differ
diff --git a/airlines/airlines/OR.png b/airlines/airlines/OR.png
new file mode 100644
index 00000000..0c928849
Binary files /dev/null and b/airlines/airlines/OR.png differ
diff --git a/airlines/airlines/OS.png b/airlines/airlines/OS.png
new file mode 100644
index 00000000..042da7c7
Binary files /dev/null and b/airlines/airlines/OS.png differ
diff --git a/airlines/airlines/OU.png b/airlines/airlines/OU.png
new file mode 100644
index 00000000..778ef940
Binary files /dev/null and b/airlines/airlines/OU.png differ
diff --git a/airlines/airlines/OV.png b/airlines/airlines/OV.png
new file mode 100644
index 00000000..c5914b84
Binary files /dev/null and b/airlines/airlines/OV.png differ
diff --git a/airlines/airlines/OX.png b/airlines/airlines/OX.png
new file mode 100644
index 00000000..97c06c87
Binary files /dev/null and b/airlines/airlines/OX.png differ
diff --git a/airlines/airlines/OY.png b/airlines/airlines/OY.png
new file mode 100644
index 00000000..aea348c3
Binary files /dev/null and b/airlines/airlines/OY.png differ
diff --git a/airlines/airlines/OZ.png b/airlines/airlines/OZ.png
new file mode 100644
index 00000000..582e14ef
Binary files /dev/null and b/airlines/airlines/OZ.png differ
diff --git a/airlines/airlines/P0.png b/airlines/airlines/P0.png
new file mode 100644
index 00000000..72fd51ef
Binary files /dev/null and b/airlines/airlines/P0.png differ
diff --git a/airlines/airlines/P4.png b/airlines/airlines/P4.png
new file mode 100644
index 00000000..9d7db097
Binary files /dev/null and b/airlines/airlines/P4.png differ
diff --git a/airlines/airlines/P5.png b/airlines/airlines/P5.png
new file mode 100644
index 00000000..e35bfdfb
Binary files /dev/null and b/airlines/airlines/P5.png differ
diff --git a/airlines/airlines/P6.png b/airlines/airlines/P6.png
new file mode 100644
index 00000000..509737d3
Binary files /dev/null and b/airlines/airlines/P6.png differ
diff --git a/airlines/airlines/P7.png b/airlines/airlines/P7.png
new file mode 100644
index 00000000..8cbf4e20
Binary files /dev/null and b/airlines/airlines/P7.png differ
diff --git a/airlines/airlines/P9.png b/airlines/airlines/P9.png
new file mode 100644
index 00000000..d207ae84
Binary files /dev/null and b/airlines/airlines/P9.png differ
diff --git a/airlines/airlines/PA.png b/airlines/airlines/PA.png
new file mode 100644
index 00000000..8971c7b3
Binary files /dev/null and b/airlines/airlines/PA.png differ
diff --git a/airlines/airlines/PB.png b/airlines/airlines/PB.png
new file mode 100644
index 00000000..7fcd750c
Binary files /dev/null and b/airlines/airlines/PB.png differ
diff --git a/airlines/airlines/PC.png b/airlines/airlines/PC.png
new file mode 100644
index 00000000..b6968c38
Binary files /dev/null and b/airlines/airlines/PC.png differ
diff --git a/airlines/airlines/PD.png b/airlines/airlines/PD.png
new file mode 100644
index 00000000..be18d024
Binary files /dev/null and b/airlines/airlines/PD.png differ
diff --git a/airlines/airlines/PE.png b/airlines/airlines/PE.png
new file mode 100644
index 00000000..cc269035
Binary files /dev/null and b/airlines/airlines/PE.png differ
diff --git a/airlines/airlines/PG.png b/airlines/airlines/PG.png
new file mode 100644
index 00000000..11cd78e2
Binary files /dev/null and b/airlines/airlines/PG.png differ
diff --git a/airlines/airlines/PI.png b/airlines/airlines/PI.png
new file mode 100644
index 00000000..b13d8d09
Binary files /dev/null and b/airlines/airlines/PI.png differ
diff --git a/airlines/airlines/PK.png b/airlines/airlines/PK.png
new file mode 100644
index 00000000..26eb854d
Binary files /dev/null and b/airlines/airlines/PK.png differ
diff --git a/airlines/airlines/PL.png b/airlines/airlines/PL.png
new file mode 100644
index 00000000..9b452b7d
Binary files /dev/null and b/airlines/airlines/PL.png differ
diff --git a/airlines/airlines/PN.png b/airlines/airlines/PN.png
new file mode 100644
index 00000000..ec60e9d3
Binary files /dev/null and b/airlines/airlines/PN.png differ
diff --git a/airlines/airlines/PQ.png b/airlines/airlines/PQ.png
new file mode 100644
index 00000000..de0f9523
Binary files /dev/null and b/airlines/airlines/PQ.png differ
diff --git a/airlines/airlines/PR.png b/airlines/airlines/PR.png
new file mode 100644
index 00000000..188da9df
Binary files /dev/null and b/airlines/airlines/PR.png differ
diff --git a/airlines/airlines/PS.png b/airlines/airlines/PS.png
new file mode 100644
index 00000000..ca670ee2
Binary files /dev/null and b/airlines/airlines/PS.png differ
diff --git a/airlines/airlines/PU(1).png b/airlines/airlines/PU(1).png
new file mode 100644
index 00000000..f2c84aeb
Binary files /dev/null and b/airlines/airlines/PU(1).png differ
diff --git a/airlines/airlines/PU.png b/airlines/airlines/PU.png
new file mode 100644
index 00000000..f2c84aeb
Binary files /dev/null and b/airlines/airlines/PU.png differ
diff --git a/airlines/airlines/PV.png b/airlines/airlines/PV.png
new file mode 100644
index 00000000..2c0d28ba
Binary files /dev/null and b/airlines/airlines/PV.png differ
diff --git a/airlines/airlines/PW.png b/airlines/airlines/PW.png
new file mode 100644
index 00000000..fad0dc27
Binary files /dev/null and b/airlines/airlines/PW.png differ
diff --git a/airlines/airlines/PX.png b/airlines/airlines/PX.png
new file mode 100644
index 00000000..d80f9698
Binary files /dev/null and b/airlines/airlines/PX.png differ
diff --git a/airlines/airlines/PY.png b/airlines/airlines/PY.png
new file mode 100644
index 00000000..0902b350
Binary files /dev/null and b/airlines/airlines/PY.png differ
diff --git a/airlines/airlines/PZ.png b/airlines/airlines/PZ.png
new file mode 100644
index 00000000..5fd665c1
Binary files /dev/null and b/airlines/airlines/PZ.png differ
diff --git a/airlines/airlines/Q4.png b/airlines/airlines/Q4.png
new file mode 100644
index 00000000..20e5664a
Binary files /dev/null and b/airlines/airlines/Q4.png differ
diff --git a/airlines/airlines/Q6.png b/airlines/airlines/Q6.png
new file mode 100644
index 00000000..ba6c7026
Binary files /dev/null and b/airlines/airlines/Q6.png differ
diff --git a/airlines/airlines/Q7.png b/airlines/airlines/Q7.png
new file mode 100644
index 00000000..43ed2b40
Binary files /dev/null and b/airlines/airlines/Q7.png differ
diff --git a/airlines/airlines/Q8.png b/airlines/airlines/Q8.png
new file mode 100644
index 00000000..602b92ab
Binary files /dev/null and b/airlines/airlines/Q8.png differ
diff --git a/airlines/airlines/Q9.png b/airlines/airlines/Q9.png
new file mode 100644
index 00000000..408c9ef5
Binary files /dev/null and b/airlines/airlines/Q9.png differ
diff --git a/airlines/airlines/QA.png b/airlines/airlines/QA.png
new file mode 100644
index 00000000..37792308
Binary files /dev/null and b/airlines/airlines/QA.png differ
diff --git a/airlines/airlines/QB.png b/airlines/airlines/QB.png
new file mode 100644
index 00000000..73257ab2
Binary files /dev/null and b/airlines/airlines/QB.png differ
diff --git a/airlines/airlines/QC.png b/airlines/airlines/QC.png
new file mode 100644
index 00000000..3883dcfd
Binary files /dev/null and b/airlines/airlines/QC.png differ
diff --git a/airlines/airlines/QD(1).png b/airlines/airlines/QD(1).png
new file mode 100644
index 00000000..b4632a10
Binary files /dev/null and b/airlines/airlines/QD(1).png differ
diff --git a/airlines/airlines/QD.png b/airlines/airlines/QD.png
new file mode 100644
index 00000000..b4632a10
Binary files /dev/null and b/airlines/airlines/QD.png differ
diff --git a/airlines/airlines/QF.png b/airlines/airlines/QF.png
new file mode 100644
index 00000000..5f54b214
Binary files /dev/null and b/airlines/airlines/QF.png differ
diff --git a/airlines/airlines/QG.png b/airlines/airlines/QG.png
new file mode 100644
index 00000000..4a9809ae
Binary files /dev/null and b/airlines/airlines/QG.png differ
diff --git a/airlines/airlines/QH.png b/airlines/airlines/QH.png
new file mode 100644
index 00000000..826efe53
Binary files /dev/null and b/airlines/airlines/QH.png differ
diff --git a/airlines/airlines/QK.png b/airlines/airlines/QK.png
new file mode 100644
index 00000000..29e94ee2
Binary files /dev/null and b/airlines/airlines/QK.png differ
diff --git a/airlines/airlines/QL.png b/airlines/airlines/QL.png
new file mode 100644
index 00000000..87c0629f
Binary files /dev/null and b/airlines/airlines/QL.png differ
diff --git a/airlines/airlines/QP.png b/airlines/airlines/QP.png
new file mode 100644
index 00000000..d0ae21cd
Binary files /dev/null and b/airlines/airlines/QP.png differ
diff --git a/airlines/airlines/QQ.png b/airlines/airlines/QQ.png
new file mode 100644
index 00000000..4b8afab3
Binary files /dev/null and b/airlines/airlines/QQ.png differ
diff --git a/airlines/airlines/QR.png b/airlines/airlines/QR.png
new file mode 100644
index 00000000..b878456c
Binary files /dev/null and b/airlines/airlines/QR.png differ
diff --git a/airlines/airlines/QS.png b/airlines/airlines/QS.png
new file mode 100644
index 00000000..17e03a21
Binary files /dev/null and b/airlines/airlines/QS.png differ
diff --git a/airlines/airlines/QU.png b/airlines/airlines/QU.png
new file mode 100644
index 00000000..6b8492dd
Binary files /dev/null and b/airlines/airlines/QU.png differ
diff --git a/airlines/airlines/QV.png b/airlines/airlines/QV.png
new file mode 100644
index 00000000..823f625f
Binary files /dev/null and b/airlines/airlines/QV.png differ
diff --git a/airlines/airlines/QW.png b/airlines/airlines/QW.png
new file mode 100644
index 00000000..67591cab
Binary files /dev/null and b/airlines/airlines/QW.png differ
diff --git a/airlines/airlines/QX.png b/airlines/airlines/QX.png
new file mode 100644
index 00000000..0b80db21
Binary files /dev/null and b/airlines/airlines/QX.png differ
diff --git a/airlines/airlines/QZ.png b/airlines/airlines/QZ.png
new file mode 100644
index 00000000..15e6451a
Binary files /dev/null and b/airlines/airlines/QZ.png differ
diff --git a/airlines/airlines/R3.png b/airlines/airlines/R3.png
new file mode 100644
index 00000000..3ef1b0a6
Binary files /dev/null and b/airlines/airlines/R3.png differ
diff --git a/airlines/airlines/R5.png b/airlines/airlines/R5.png
new file mode 100644
index 00000000..c786386c
Binary files /dev/null and b/airlines/airlines/R5.png differ
diff --git a/airlines/airlines/R6.png b/airlines/airlines/R6.png
new file mode 100644
index 00000000..642b4635
Binary files /dev/null and b/airlines/airlines/R6.png differ
diff --git a/airlines/airlines/R7.png b/airlines/airlines/R7.png
new file mode 100644
index 00000000..b19238ef
Binary files /dev/null and b/airlines/airlines/R7.png differ
diff --git a/airlines/airlines/RA.png b/airlines/airlines/RA.png
new file mode 100644
index 00000000..3130001e
Binary files /dev/null and b/airlines/airlines/RA.png differ
diff --git a/airlines/airlines/RB.png b/airlines/airlines/RB.png
new file mode 100644
index 00000000..03c71712
Binary files /dev/null and b/airlines/airlines/RB.png differ
diff --git a/airlines/airlines/RC.png b/airlines/airlines/RC.png
new file mode 100644
index 00000000..7f61f7ab
Binary files /dev/null and b/airlines/airlines/RC.png differ
diff --git a/airlines/airlines/RE.png b/airlines/airlines/RE.png
new file mode 100644
index 00000000..4eed78fe
Binary files /dev/null and b/airlines/airlines/RE.png differ
diff --git a/airlines/airlines/RG.png b/airlines/airlines/RG.png
new file mode 100644
index 00000000..ea2e7dbd
Binary files /dev/null and b/airlines/airlines/RG.png differ
diff --git a/airlines/airlines/RJ.png b/airlines/airlines/RJ.png
new file mode 100644
index 00000000..20aa8953
Binary files /dev/null and b/airlines/airlines/RJ.png differ
diff --git a/airlines/airlines/RK.png b/airlines/airlines/RK.png
new file mode 100644
index 00000000..57e45387
Binary files /dev/null and b/airlines/airlines/RK.png differ
diff --git a/airlines/airlines/RO.png b/airlines/airlines/RO.png
new file mode 100644
index 00000000..1ab98d1d
Binary files /dev/null and b/airlines/airlines/RO.png differ
diff --git a/airlines/airlines/RQ.png b/airlines/airlines/RQ.png
new file mode 100644
index 00000000..5ffae7d1
Binary files /dev/null and b/airlines/airlines/RQ.png differ
diff --git a/airlines/airlines/RY.png b/airlines/airlines/RY.png
new file mode 100644
index 00000000..7a00713d
Binary files /dev/null and b/airlines/airlines/RY.png differ
diff --git a/airlines/airlines/S2.png b/airlines/airlines/S2.png
new file mode 100644
index 00000000..915d6298
Binary files /dev/null and b/airlines/airlines/S2.png differ
diff --git a/airlines/airlines/S3.png b/airlines/airlines/S3.png
new file mode 100644
index 00000000..b4012023
Binary files /dev/null and b/airlines/airlines/S3.png differ
diff --git a/airlines/airlines/S4.png b/airlines/airlines/S4.png
new file mode 100644
index 00000000..9b8a84fa
Binary files /dev/null and b/airlines/airlines/S4.png differ
diff --git a/airlines/airlines/S7.png b/airlines/airlines/S7.png
new file mode 100644
index 00000000..9f3ee5a5
Binary files /dev/null and b/airlines/airlines/S7.png differ
diff --git a/airlines/airlines/S9.png b/airlines/airlines/S9.png
new file mode 100644
index 00000000..7be5c0eb
Binary files /dev/null and b/airlines/airlines/S9.png differ
diff --git a/airlines/airlines/SA.png b/airlines/airlines/SA.png
new file mode 100644
index 00000000..d6da3a47
Binary files /dev/null and b/airlines/airlines/SA.png differ
diff --git a/airlines/airlines/SB.png b/airlines/airlines/SB.png
new file mode 100644
index 00000000..99901c77
Binary files /dev/null and b/airlines/airlines/SB.png differ
diff --git a/airlines/airlines/SC.png b/airlines/airlines/SC.png
new file mode 100644
index 00000000..73732353
Binary files /dev/null and b/airlines/airlines/SC.png differ
diff --git a/airlines/airlines/SD.png b/airlines/airlines/SD.png
new file mode 100644
index 00000000..83d5a79e
Binary files /dev/null and b/airlines/airlines/SD.png differ
diff --git a/airlines/airlines/SE.png b/airlines/airlines/SE.png
new file mode 100644
index 00000000..ee788310
Binary files /dev/null and b/airlines/airlines/SE.png differ
diff --git a/airlines/airlines/SF.png b/airlines/airlines/SF.png
new file mode 100644
index 00000000..e7ec988f
Binary files /dev/null and b/airlines/airlines/SF.png differ
diff --git a/airlines/airlines/SG.png b/airlines/airlines/SG.png
new file mode 100644
index 00000000..1f89480a
Binary files /dev/null and b/airlines/airlines/SG.png differ
diff --git a/airlines/airlines/SH.png b/airlines/airlines/SH.png
new file mode 100644
index 00000000..855c80fb
Binary files /dev/null and b/airlines/airlines/SH.png differ
diff --git a/airlines/airlines/SI.png b/airlines/airlines/SI.png
new file mode 100644
index 00000000..1bfb1085
Binary files /dev/null and b/airlines/airlines/SI.png differ
diff --git a/airlines/airlines/SJ.png b/airlines/airlines/SJ.png
new file mode 100644
index 00000000..0678a54d
Binary files /dev/null and b/airlines/airlines/SJ.png differ
diff --git a/airlines/airlines/SK.png b/airlines/airlines/SK.png
new file mode 100644
index 00000000..2803313f
Binary files /dev/null and b/airlines/airlines/SK.png differ
diff --git a/airlines/airlines/SL.png b/airlines/airlines/SL.png
new file mode 100644
index 00000000..c6902488
Binary files /dev/null and b/airlines/airlines/SL.png differ
diff --git a/airlines/airlines/SM.png b/airlines/airlines/SM.png
new file mode 100644
index 00000000..dfdf38c0
Binary files /dev/null and b/airlines/airlines/SM.png differ
diff --git a/airlines/airlines/SN.png b/airlines/airlines/SN.png
new file mode 100644
index 00000000..78a5db42
Binary files /dev/null and b/airlines/airlines/SN.png differ
diff --git a/airlines/airlines/SO.png b/airlines/airlines/SO.png
new file mode 100644
index 00000000..d040911f
Binary files /dev/null and b/airlines/airlines/SO.png differ
diff --git a/airlines/airlines/SP.png b/airlines/airlines/SP.png
new file mode 100644
index 00000000..662cf3bc
Binary files /dev/null and b/airlines/airlines/SP.png differ
diff --git a/airlines/airlines/SQ.png b/airlines/airlines/SQ.png
new file mode 100644
index 00000000..223dc8c9
Binary files /dev/null and b/airlines/airlines/SQ.png differ
diff --git a/airlines/airlines/SS.png b/airlines/airlines/SS.png
new file mode 100644
index 00000000..96528cd0
Binary files /dev/null and b/airlines/airlines/SS.png differ
diff --git a/airlines/airlines/ST.png b/airlines/airlines/ST.png
new file mode 100644
index 00000000..2cebbd6c
Binary files /dev/null and b/airlines/airlines/ST.png differ
diff --git a/airlines/airlines/SU.png b/airlines/airlines/SU.png
new file mode 100644
index 00000000..59464547
Binary files /dev/null and b/airlines/airlines/SU.png differ
diff --git a/airlines/airlines/SV.png b/airlines/airlines/SV.png
new file mode 100644
index 00000000..a55797b8
Binary files /dev/null and b/airlines/airlines/SV.png differ
diff --git a/airlines/airlines/SW.png b/airlines/airlines/SW.png
new file mode 100644
index 00000000..3f07f874
Binary files /dev/null and b/airlines/airlines/SW.png differ
diff --git a/airlines/airlines/SX.png b/airlines/airlines/SX.png
new file mode 100644
index 00000000..8acd01d2
Binary files /dev/null and b/airlines/airlines/SX.png differ
diff --git a/airlines/airlines/SY.png b/airlines/airlines/SY.png
new file mode 100644
index 00000000..82694a00
Binary files /dev/null and b/airlines/airlines/SY.png differ
diff --git a/airlines/airlines/SZ.png b/airlines/airlines/SZ.png
new file mode 100644
index 00000000..6da19d55
Binary files /dev/null and b/airlines/airlines/SZ.png differ
diff --git a/airlines/airlines/T0.png b/airlines/airlines/T0.png
new file mode 100644
index 00000000..809f03bb
Binary files /dev/null and b/airlines/airlines/T0.png differ
diff --git a/airlines/airlines/T3.png b/airlines/airlines/T3.png
new file mode 100644
index 00000000..e8092f18
Binary files /dev/null and b/airlines/airlines/T3.png differ
diff --git a/airlines/airlines/T5.png b/airlines/airlines/T5.png
new file mode 100644
index 00000000..7b682565
Binary files /dev/null and b/airlines/airlines/T5.png differ
diff --git a/airlines/airlines/T7.png b/airlines/airlines/T7.png
new file mode 100644
index 00000000..0309afd9
Binary files /dev/null and b/airlines/airlines/T7.png differ
diff --git a/airlines/airlines/TA.png b/airlines/airlines/TA.png
new file mode 100644
index 00000000..fd886b62
Binary files /dev/null and b/airlines/airlines/TA.png differ
diff --git a/airlines/airlines/TB.png b/airlines/airlines/TB.png
new file mode 100644
index 00000000..df560809
Binary files /dev/null and b/airlines/airlines/TB.png differ
diff --git a/airlines/airlines/TC.png b/airlines/airlines/TC.png
new file mode 100644
index 00000000..edfd9a50
Binary files /dev/null and b/airlines/airlines/TC.png differ
diff --git a/airlines/airlines/TF.png b/airlines/airlines/TF.png
new file mode 100644
index 00000000..250c064b
Binary files /dev/null and b/airlines/airlines/TF.png differ
diff --git a/airlines/airlines/TG.png b/airlines/airlines/TG.png
new file mode 100644
index 00000000..f4e201dc
Binary files /dev/null and b/airlines/airlines/TG.png differ
diff --git a/airlines/airlines/TI.png b/airlines/airlines/TI.png
new file mode 100644
index 00000000..14ed376f
Binary files /dev/null and b/airlines/airlines/TI.png differ
diff --git a/airlines/airlines/TJ.png b/airlines/airlines/TJ.png
new file mode 100644
index 00000000..58a537c9
Binary files /dev/null and b/airlines/airlines/TJ.png differ
diff --git a/airlines/airlines/TK.png b/airlines/airlines/TK.png
new file mode 100644
index 00000000..ccaa4259
Binary files /dev/null and b/airlines/airlines/TK.png differ
diff --git a/airlines/airlines/TL.png b/airlines/airlines/TL.png
new file mode 100644
index 00000000..a71c604c
Binary files /dev/null and b/airlines/airlines/TL.png differ
diff --git a/airlines/airlines/TM.png b/airlines/airlines/TM.png
new file mode 100644
index 00000000..c3bd91d1
Binary files /dev/null and b/airlines/airlines/TM.png differ
diff --git a/airlines/airlines/TN.png b/airlines/airlines/TN.png
new file mode 100644
index 00000000..3931ceb9
Binary files /dev/null and b/airlines/airlines/TN.png differ
diff --git a/airlines/airlines/TO.png b/airlines/airlines/TO.png
new file mode 100644
index 00000000..91ecd6b2
Binary files /dev/null and b/airlines/airlines/TO.png differ
diff --git a/airlines/airlines/TP.png b/airlines/airlines/TP.png
new file mode 100644
index 00000000..152c95cb
Binary files /dev/null and b/airlines/airlines/TP.png differ
diff --git a/airlines/airlines/TQ.png b/airlines/airlines/TQ.png
new file mode 100644
index 00000000..7eaaa868
Binary files /dev/null and b/airlines/airlines/TQ.png differ
diff --git a/airlines/airlines/TR.png b/airlines/airlines/TR.png
new file mode 100644
index 00000000..bc52203d
Binary files /dev/null and b/airlines/airlines/TR.png differ
diff --git a/airlines/airlines/TS.png b/airlines/airlines/TS.png
new file mode 100644
index 00000000..4d305653
Binary files /dev/null and b/airlines/airlines/TS.png differ
diff --git a/airlines/airlines/TT.png b/airlines/airlines/TT.png
new file mode 100644
index 00000000..fe6e731d
Binary files /dev/null and b/airlines/airlines/TT.png differ
diff --git a/airlines/airlines/TU.png b/airlines/airlines/TU.png
new file mode 100644
index 00000000..fe6e731d
Binary files /dev/null and b/airlines/airlines/TU.png differ
diff --git a/airlines/airlines/TW.png b/airlines/airlines/TW.png
new file mode 100644
index 00000000..0ff61d33
Binary files /dev/null and b/airlines/airlines/TW.png differ
diff --git a/airlines/airlines/TX.png b/airlines/airlines/TX.png
new file mode 100644
index 00000000..25f0dd3c
Binary files /dev/null and b/airlines/airlines/TX.png differ
diff --git a/airlines/airlines/TY.png b/airlines/airlines/TY.png
new file mode 100644
index 00000000..4fcb1864
Binary files /dev/null and b/airlines/airlines/TY.png differ
diff --git a/airlines/airlines/TZ.png b/airlines/airlines/TZ.png
new file mode 100644
index 00000000..40ad74a4
Binary files /dev/null and b/airlines/airlines/TZ.png differ
diff --git a/airlines/airlines/U2.png b/airlines/airlines/U2.png
new file mode 100644
index 00000000..cf399aa4
Binary files /dev/null and b/airlines/airlines/U2.png differ
diff --git a/airlines/airlines/U6.png b/airlines/airlines/U6.png
new file mode 100644
index 00000000..fd3d1374
Binary files /dev/null and b/airlines/airlines/U6.png differ
diff --git a/airlines/airlines/UA.png b/airlines/airlines/UA.png
new file mode 100644
index 00000000..69dc1746
Binary files /dev/null and b/airlines/airlines/UA.png differ
diff --git a/airlines/airlines/UB(1).png b/airlines/airlines/UB(1).png
new file mode 100644
index 00000000..57ac2f73
Binary files /dev/null and b/airlines/airlines/UB(1).png differ
diff --git a/airlines/airlines/UB.png b/airlines/airlines/UB.png
new file mode 100644
index 00000000..57ac2f73
Binary files /dev/null and b/airlines/airlines/UB.png differ
diff --git a/airlines/airlines/UD.png b/airlines/airlines/UD.png
new file mode 100644
index 00000000..127df297
Binary files /dev/null and b/airlines/airlines/UD.png differ
diff --git a/airlines/airlines/UF.png b/airlines/airlines/UF.png
new file mode 100644
index 00000000..e8b8eff2
Binary files /dev/null and b/airlines/airlines/UF.png differ
diff --git a/airlines/airlines/UG.png b/airlines/airlines/UG.png
new file mode 100644
index 00000000..394866df
Binary files /dev/null and b/airlines/airlines/UG.png differ
diff --git a/airlines/airlines/UH.png b/airlines/airlines/UH.png
new file mode 100644
index 00000000..d1e1e539
Binary files /dev/null and b/airlines/airlines/UH.png differ
diff --git a/airlines/airlines/UJ.png b/airlines/airlines/UJ.png
new file mode 100644
index 00000000..cec5a97a
Binary files /dev/null and b/airlines/airlines/UJ.png differ
diff --git a/airlines/airlines/UK.png b/airlines/airlines/UK.png
new file mode 100644
index 00000000..9deda6af
Binary files /dev/null and b/airlines/airlines/UK.png differ
diff --git a/airlines/airlines/UL.png b/airlines/airlines/UL.png
new file mode 100644
index 00000000..11b85c5e
Binary files /dev/null and b/airlines/airlines/UL.png differ
diff --git a/airlines/airlines/UM.png b/airlines/airlines/UM.png
new file mode 100644
index 00000000..c33fad0c
Binary files /dev/null and b/airlines/airlines/UM.png differ
diff --git a/airlines/airlines/UN.png b/airlines/airlines/UN.png
new file mode 100644
index 00000000..2c7eb2b9
Binary files /dev/null and b/airlines/airlines/UN.png differ
diff --git a/airlines/airlines/UO.png b/airlines/airlines/UO.png
new file mode 100644
index 00000000..f21694c9
Binary files /dev/null and b/airlines/airlines/UO.png differ
diff --git a/airlines/airlines/UP.png b/airlines/airlines/UP.png
new file mode 100644
index 00000000..01eb9619
Binary files /dev/null and b/airlines/airlines/UP.png differ
diff --git a/airlines/airlines/US.png b/airlines/airlines/US.png
new file mode 100644
index 00000000..2b4c9b7b
Binary files /dev/null and b/airlines/airlines/US.png differ
diff --git a/airlines/airlines/UT.png b/airlines/airlines/UT.png
new file mode 100644
index 00000000..34d9aeb6
Binary files /dev/null and b/airlines/airlines/UT.png differ
diff --git a/airlines/airlines/UU.png b/airlines/airlines/UU.png
new file mode 100644
index 00000000..ff1ef2e3
Binary files /dev/null and b/airlines/airlines/UU.png differ
diff --git a/airlines/airlines/UX.png b/airlines/airlines/UX.png
new file mode 100644
index 00000000..9fe5f3cc
Binary files /dev/null and b/airlines/airlines/UX.png differ
diff --git a/airlines/airlines/V3.png b/airlines/airlines/V3.png
new file mode 100644
index 00000000..c395147d
Binary files /dev/null and b/airlines/airlines/V3.png differ
diff --git a/airlines/airlines/V5.png b/airlines/airlines/V5.png
new file mode 100644
index 00000000..08116076
Binary files /dev/null and b/airlines/airlines/V5.png differ
diff --git a/airlines/airlines/V7.png b/airlines/airlines/V7.png
new file mode 100644
index 00000000..efecdf7b
Binary files /dev/null and b/airlines/airlines/V7.png differ
diff --git a/airlines/airlines/VA.png b/airlines/airlines/VA.png
new file mode 100644
index 00000000..8bb9752b
Binary files /dev/null and b/airlines/airlines/VA.png differ
diff --git a/airlines/airlines/VB.png b/airlines/airlines/VB.png
new file mode 100644
index 00000000..a0e15d92
Binary files /dev/null and b/airlines/airlines/VB.png differ
diff --git a/airlines/airlines/VD.png b/airlines/airlines/VD.png
new file mode 100644
index 00000000..ee964b74
Binary files /dev/null and b/airlines/airlines/VD.png differ
diff --git a/airlines/airlines/VG.png b/airlines/airlines/VG.png
new file mode 100644
index 00000000..e06aa718
Binary files /dev/null and b/airlines/airlines/VG.png differ
diff --git a/airlines/airlines/VH.png b/airlines/airlines/VH.png
new file mode 100644
index 00000000..e608dc45
Binary files /dev/null and b/airlines/airlines/VH.png differ
diff --git a/airlines/airlines/VI.png b/airlines/airlines/VI.png
new file mode 100644
index 00000000..2e28785a
Binary files /dev/null and b/airlines/airlines/VI.png differ
diff --git a/airlines/airlines/VJ.png b/airlines/airlines/VJ.png
new file mode 100644
index 00000000..d0312f43
Binary files /dev/null and b/airlines/airlines/VJ.png differ
diff --git a/airlines/airlines/VL.png b/airlines/airlines/VL.png
new file mode 100644
index 00000000..9e973135
Binary files /dev/null and b/airlines/airlines/VL.png differ
diff --git a/airlines/airlines/VM.png b/airlines/airlines/VM.png
new file mode 100644
index 00000000..e0b0cc67
Binary files /dev/null and b/airlines/airlines/VM.png differ
diff --git a/airlines/airlines/VN.png b/airlines/airlines/VN.png
new file mode 100644
index 00000000..0b54b089
Binary files /dev/null and b/airlines/airlines/VN.png differ
diff --git a/airlines/airlines/VO.png b/airlines/airlines/VO.png
new file mode 100644
index 00000000..c442b658
Binary files /dev/null and b/airlines/airlines/VO.png differ
diff --git a/airlines/airlines/VP.png b/airlines/airlines/VP.png
new file mode 100644
index 00000000..41ef5cdd
Binary files /dev/null and b/airlines/airlines/VP.png differ
diff --git a/airlines/airlines/VQ.png b/airlines/airlines/VQ.png
new file mode 100644
index 00000000..9df1df17
Binary files /dev/null and b/airlines/airlines/VQ.png differ
diff --git a/airlines/airlines/VR.png b/airlines/airlines/VR.png
new file mode 100644
index 00000000..048b8352
Binary files /dev/null and b/airlines/airlines/VR.png differ
diff --git a/airlines/airlines/VS.png b/airlines/airlines/VS.png
new file mode 100644
index 00000000..8bb9752b
Binary files /dev/null and b/airlines/airlines/VS.png differ
diff --git a/airlines/airlines/VT.png b/airlines/airlines/VT.png
new file mode 100644
index 00000000..d811042f
Binary files /dev/null and b/airlines/airlines/VT.png differ
diff --git a/airlines/airlines/VW.png b/airlines/airlines/VW.png
new file mode 100644
index 00000000..9f6ab651
Binary files /dev/null and b/airlines/airlines/VW.png differ
diff --git a/airlines/airlines/VX.png b/airlines/airlines/VX.png
new file mode 100644
index 00000000..acef8b78
Binary files /dev/null and b/airlines/airlines/VX.png differ
diff --git a/airlines/airlines/VY.png b/airlines/airlines/VY.png
new file mode 100644
index 00000000..1c149302
Binary files /dev/null and b/airlines/airlines/VY.png differ
diff --git a/airlines/airlines/VZ.png b/airlines/airlines/VZ.png
new file mode 100644
index 00000000..fc98c35d
Binary files /dev/null and b/airlines/airlines/VZ.png differ
diff --git a/airlines/airlines/W2.png b/airlines/airlines/W2.png
new file mode 100644
index 00000000..ad1ee44a
Binary files /dev/null and b/airlines/airlines/W2.png differ
diff --git a/airlines/airlines/W3.png b/airlines/airlines/W3.png
new file mode 100644
index 00000000..cdbdb38d
Binary files /dev/null and b/airlines/airlines/W3.png differ
diff --git a/airlines/airlines/W4.png b/airlines/airlines/W4.png
new file mode 100644
index 00000000..d31e21f3
Binary files /dev/null and b/airlines/airlines/W4.png differ
diff --git a/airlines/airlines/W5.png b/airlines/airlines/W5.png
new file mode 100644
index 00000000..42e733ab
Binary files /dev/null and b/airlines/airlines/W5.png differ
diff --git a/airlines/airlines/W6.png b/airlines/airlines/W6.png
new file mode 100644
index 00000000..d31e21f3
Binary files /dev/null and b/airlines/airlines/W6.png differ
diff --git a/airlines/airlines/W9.png b/airlines/airlines/W9.png
new file mode 100644
index 00000000..d31e21f3
Binary files /dev/null and b/airlines/airlines/W9.png differ
diff --git a/airlines/airlines/WA.png b/airlines/airlines/WA.png
new file mode 100644
index 00000000..fc818c22
Binary files /dev/null and b/airlines/airlines/WA.png differ
diff --git a/airlines/airlines/WB.png b/airlines/airlines/WB.png
new file mode 100644
index 00000000..cb9c4742
Binary files /dev/null and b/airlines/airlines/WB.png differ
diff --git a/airlines/airlines/WE.png b/airlines/airlines/WE.png
new file mode 100644
index 00000000..859de097
Binary files /dev/null and b/airlines/airlines/WE.png differ
diff --git a/airlines/airlines/WF.png b/airlines/airlines/WF.png
new file mode 100644
index 00000000..46e5c072
Binary files /dev/null and b/airlines/airlines/WF.png differ
diff --git a/airlines/airlines/WG.png b/airlines/airlines/WG.png
new file mode 100644
index 00000000..67085398
Binary files /dev/null and b/airlines/airlines/WG.png differ
diff --git a/airlines/airlines/WI.png b/airlines/airlines/WI.png
new file mode 100644
index 00000000..5e751493
Binary files /dev/null and b/airlines/airlines/WI.png differ
diff --git a/airlines/airlines/WK.png b/airlines/airlines/WK.png
new file mode 100644
index 00000000..0055b1a1
Binary files /dev/null and b/airlines/airlines/WK.png differ
diff --git a/airlines/airlines/WM.png b/airlines/airlines/WM.png
new file mode 100644
index 00000000..5686cf8d
Binary files /dev/null and b/airlines/airlines/WM.png differ
diff --git a/airlines/airlines/WN.png b/airlines/airlines/WN.png
new file mode 100644
index 00000000..5cf362ea
Binary files /dev/null and b/airlines/airlines/WN.png differ
diff --git a/airlines/airlines/WO.png b/airlines/airlines/WO.png
new file mode 100644
index 00000000..17e2e673
Binary files /dev/null and b/airlines/airlines/WO.png differ
diff --git a/airlines/airlines/WQ.png b/airlines/airlines/WQ.png
new file mode 100644
index 00000000..abd0d250
Binary files /dev/null and b/airlines/airlines/WQ.png differ
diff --git a/airlines/airlines/WS.png b/airlines/airlines/WS.png
new file mode 100644
index 00000000..4cab957d
Binary files /dev/null and b/airlines/airlines/WS.png differ
diff --git a/airlines/airlines/WT.png b/airlines/airlines/WT.png
new file mode 100644
index 00000000..f6e8002e
Binary files /dev/null and b/airlines/airlines/WT.png differ
diff --git a/airlines/airlines/WW.png b/airlines/airlines/WW.png
new file mode 100644
index 00000000..f0659c9b
Binary files /dev/null and b/airlines/airlines/WW.png differ
diff --git a/airlines/airlines/WX.png b/airlines/airlines/WX.png
new file mode 100644
index 00000000..31dbf5c6
Binary files /dev/null and b/airlines/airlines/WX.png differ
diff --git a/airlines/airlines/WY.png b/airlines/airlines/WY.png
new file mode 100644
index 00000000..2b448cd3
Binary files /dev/null and b/airlines/airlines/WY.png differ
diff --git a/airlines/airlines/X1(1).png b/airlines/airlines/X1(1).png
new file mode 100644
index 00000000..e42496d5
Binary files /dev/null and b/airlines/airlines/X1(1).png differ
diff --git a/airlines/airlines/X1.png b/airlines/airlines/X1.png
new file mode 100644
index 00000000..e42496d5
Binary files /dev/null and b/airlines/airlines/X1.png differ
diff --git a/airlines/airlines/X3.png b/airlines/airlines/X3.png
new file mode 100644
index 00000000..b323ccb1
Binary files /dev/null and b/airlines/airlines/X3.png differ
diff --git a/airlines/airlines/X9.png b/airlines/airlines/X9.png
new file mode 100644
index 00000000..f9d7a6e7
Binary files /dev/null and b/airlines/airlines/X9.png differ
diff --git a/airlines/airlines/XC.png b/airlines/airlines/XC.png
new file mode 100644
index 00000000..f659c006
Binary files /dev/null and b/airlines/airlines/XC.png differ
diff --git a/airlines/airlines/XE.png b/airlines/airlines/XE.png
new file mode 100644
index 00000000..6313537a
Binary files /dev/null and b/airlines/airlines/XE.png differ
diff --git a/airlines/airlines/XG.png b/airlines/airlines/XG.png
new file mode 100644
index 00000000..58640c50
Binary files /dev/null and b/airlines/airlines/XG.png differ
diff --git a/airlines/airlines/XJ.png b/airlines/airlines/XJ.png
new file mode 100644
index 00000000..c121c0e0
Binary files /dev/null and b/airlines/airlines/XJ.png differ
diff --git a/airlines/airlines/XK.png b/airlines/airlines/XK.png
new file mode 100644
index 00000000..f37c9399
Binary files /dev/null and b/airlines/airlines/XK.png differ
diff --git a/airlines/airlines/XL.png b/airlines/airlines/XL.png
new file mode 100644
index 00000000..b7addaab
Binary files /dev/null and b/airlines/airlines/XL.png differ
diff --git a/airlines/airlines/XO.png b/airlines/airlines/XO.png
new file mode 100644
index 00000000..e95d6460
Binary files /dev/null and b/airlines/airlines/XO.png differ
diff --git a/airlines/airlines/XP.png b/airlines/airlines/XP.png
new file mode 100644
index 00000000..e1f7fe0c
Binary files /dev/null and b/airlines/airlines/XP.png differ
diff --git a/airlines/airlines/XQ.png b/airlines/airlines/XQ.png
new file mode 100644
index 00000000..d30d5d2f
Binary files /dev/null and b/airlines/airlines/XQ.png differ
diff --git a/airlines/airlines/XR.png b/airlines/airlines/XR.png
new file mode 100644
index 00000000..f51d6b95
Binary files /dev/null and b/airlines/airlines/XR.png differ
diff --git a/airlines/airlines/XT.png b/airlines/airlines/XT.png
new file mode 100644
index 00000000..30eaf588
Binary files /dev/null and b/airlines/airlines/XT.png differ
diff --git a/airlines/airlines/XW.png b/airlines/airlines/XW.png
new file mode 100644
index 00000000..277b5f0e
Binary files /dev/null and b/airlines/airlines/XW.png differ
diff --git a/airlines/airlines/XY.png b/airlines/airlines/XY.png
new file mode 100644
index 00000000..fd6e3324
Binary files /dev/null and b/airlines/airlines/XY.png differ
diff --git a/airlines/airlines/XZ.png b/airlines/airlines/XZ.png
new file mode 100644
index 00000000..b3432e9e
Binary files /dev/null and b/airlines/airlines/XZ.png differ
diff --git a/airlines/airlines/Y0.png b/airlines/airlines/Y0.png
new file mode 100644
index 00000000..c4d91e38
Binary files /dev/null and b/airlines/airlines/Y0.png differ
diff --git a/airlines/airlines/Y4.png b/airlines/airlines/Y4.png
new file mode 100644
index 00000000..01f91d1f
Binary files /dev/null and b/airlines/airlines/Y4.png differ
diff --git a/airlines/airlines/Y7.png b/airlines/airlines/Y7.png
new file mode 100644
index 00000000..5886cbca
Binary files /dev/null and b/airlines/airlines/Y7.png differ
diff --git a/airlines/airlines/Y9.png b/airlines/airlines/Y9.png
new file mode 100644
index 00000000..25457a81
Binary files /dev/null and b/airlines/airlines/Y9.png differ
diff --git a/airlines/airlines/YC.png b/airlines/airlines/YC.png
new file mode 100644
index 00000000..9675f435
Binary files /dev/null and b/airlines/airlines/YC.png differ
diff --git a/airlines/airlines/YE.png b/airlines/airlines/YE.png
new file mode 100644
index 00000000..ac5b5392
Binary files /dev/null and b/airlines/airlines/YE.png differ
diff --git a/airlines/airlines/YK.png b/airlines/airlines/YK.png
new file mode 100644
index 00000000..9dfc4369
Binary files /dev/null and b/airlines/airlines/YK.png differ
diff --git a/airlines/airlines/YM.png b/airlines/airlines/YM.png
new file mode 100644
index 00000000..88779498
Binary files /dev/null and b/airlines/airlines/YM.png differ
diff --git a/airlines/airlines/YN.png b/airlines/airlines/YN.png
new file mode 100644
index 00000000..84c7e87e
Binary files /dev/null and b/airlines/airlines/YN.png differ
diff --git a/airlines/airlines/YO.png b/airlines/airlines/YO.png
new file mode 100644
index 00000000..eb1c8301
Binary files /dev/null and b/airlines/airlines/YO.png differ
diff --git a/airlines/airlines/YR.png b/airlines/airlines/YR.png
new file mode 100644
index 00000000..328b01fa
Binary files /dev/null and b/airlines/airlines/YR.png differ
diff --git a/airlines/airlines/YS.png b/airlines/airlines/YS.png
new file mode 100644
index 00000000..31dbf5c6
Binary files /dev/null and b/airlines/airlines/YS.png differ
diff --git a/airlines/airlines/YU.png b/airlines/airlines/YU.png
new file mode 100644
index 00000000..fd5c44e4
Binary files /dev/null and b/airlines/airlines/YU.png differ
diff --git a/airlines/airlines/YV.png b/airlines/airlines/YV.png
new file mode 100644
index 00000000..f35df84a
Binary files /dev/null and b/airlines/airlines/YV.png differ
diff --git a/airlines/airlines/YW.png b/airlines/airlines/YW.png
new file mode 100644
index 00000000..00b6dd99
Binary files /dev/null and b/airlines/airlines/YW.png differ
diff --git a/airlines/airlines/YX.png b/airlines/airlines/YX.png
new file mode 100644
index 00000000..d2767830
Binary files /dev/null and b/airlines/airlines/YX.png differ
diff --git a/airlines/airlines/Z0.png b/airlines/airlines/Z0.png
new file mode 100644
index 00000000..2aeaa7a1
Binary files /dev/null and b/airlines/airlines/Z0.png differ
diff --git a/airlines/airlines/Z2(1).png b/airlines/airlines/Z2(1).png
new file mode 100644
index 00000000..217f421f
Binary files /dev/null and b/airlines/airlines/Z2(1).png differ
diff --git a/airlines/airlines/Z2.png b/airlines/airlines/Z2.png
new file mode 100644
index 00000000..217f421f
Binary files /dev/null and b/airlines/airlines/Z2.png differ
diff --git a/airlines/airlines/Z4.png b/airlines/airlines/Z4.png
new file mode 100644
index 00000000..a998f09b
Binary files /dev/null and b/airlines/airlines/Z4.png differ
diff --git a/airlines/airlines/Z7.png b/airlines/airlines/Z7.png
new file mode 100644
index 00000000..6559516b
Binary files /dev/null and b/airlines/airlines/Z7.png differ
diff --git a/airlines/airlines/Z8.png b/airlines/airlines/Z8.png
new file mode 100644
index 00000000..03b19da8
Binary files /dev/null and b/airlines/airlines/Z8.png differ
diff --git a/airlines/airlines/Z9.png b/airlines/airlines/Z9.png
new file mode 100644
index 00000000..88ac6d29
Binary files /dev/null and b/airlines/airlines/Z9.png differ
diff --git a/airlines/airlines/ZA.png b/airlines/airlines/ZA.png
new file mode 100644
index 00000000..cb3ad8fa
Binary files /dev/null and b/airlines/airlines/ZA.png differ
diff --git a/airlines/airlines/ZE.png b/airlines/airlines/ZE.png
new file mode 100644
index 00000000..ff3f8639
Binary files /dev/null and b/airlines/airlines/ZE.png differ
diff --git a/airlines/airlines/ZG.png b/airlines/airlines/ZG.png
new file mode 100644
index 00000000..9a440029
Binary files /dev/null and b/airlines/airlines/ZG.png differ
diff --git a/airlines/airlines/ZH.png b/airlines/airlines/ZH.png
new file mode 100644
index 00000000..6e70614f
Binary files /dev/null and b/airlines/airlines/ZH.png differ
diff --git a/airlines/airlines/ZI.png b/airlines/airlines/ZI.png
new file mode 100644
index 00000000..e971de50
Binary files /dev/null and b/airlines/airlines/ZI.png differ
diff --git a/airlines/airlines/ZK.png b/airlines/airlines/ZK.png
new file mode 100644
index 00000000..007bc662
Binary files /dev/null and b/airlines/airlines/ZK.png differ
diff --git a/airlines/airlines/ZL.png b/airlines/airlines/ZL.png
new file mode 100644
index 00000000..f7f1f5d2
Binary files /dev/null and b/airlines/airlines/ZL.png differ
diff --git a/airlines/airlines/ZN.png b/airlines/airlines/ZN.png
new file mode 100644
index 00000000..80666ea2
Binary files /dev/null and b/airlines/airlines/ZN.png differ
diff --git a/airlines/airlines/ZR.png b/airlines/airlines/ZR.png
new file mode 100644
index 00000000..452c172e
Binary files /dev/null and b/airlines/airlines/ZR.png differ
diff --git a/airlines/airlines/ZT.png b/airlines/airlines/ZT.png
new file mode 100644
index 00000000..68738372
Binary files /dev/null and b/airlines/airlines/ZT.png differ
diff --git a/airlines/airlines/ZW.png b/airlines/airlines/ZW.png
new file mode 100644
index 00000000..0c27bedc
Binary files /dev/null and b/airlines/airlines/ZW.png differ
diff --git a/airlines/airlines/d3.png b/airlines/airlines/d3.png
new file mode 100644
index 00000000..f92c342d
Binary files /dev/null and b/airlines/airlines/d3.png differ
diff --git a/airlines/airlines/ui.png b/airlines/airlines/ui.png
new file mode 100644
index 00000000..321c4e3c
Binary files /dev/null and b/airlines/airlines/ui.png differ
diff --git a/airlines/d3.png b/airlines/d3.png
new file mode 100644
index 00000000..f92c342d
Binary files /dev/null and b/airlines/d3.png differ
diff --git a/airlines/ui.png b/airlines/ui.png
new file mode 100644
index 00000000..321c4e3c
Binary files /dev/null and b/airlines/ui.png differ
diff --git a/docs/WIDGET_I18N_GUIDE.md b/docs/WIDGET_I18N_GUIDE.md
new file mode 100644
index 00000000..a816be17
--- /dev/null
+++ b/docs/WIDGET_I18N_GUIDE.md
@@ -0,0 +1,283 @@
+# Widget Internationalization (i18n) Guide
+
+This guide provides comprehensive instructions for implementing internationalization in React widget components, adding new languages, and maintaining translations.
+
+## Overview
+
+The i18n system uses:
+- **Translation Hook**: `useTranslations` from `@/hooks/useTranslations`
+- **Translation Files**: JSON files organized by language in `src/locales/`
+- **Language Detection**: Automatic detection from URL pathname
+- **Supported Languages**: English (en), French (fr), Hindi (hi)
+
+## File Structure
+
+```
+src/
+├── locales/
+│ ├── english/
+│ │ ├── searchCriteriaWidget.json
+│ │ ├── flightOptionsWidget.json
+│ │ └── reviewWidget.json
+│ ├── french/
+│ │ ├── searchCriteriaWidget.json
+│ │ ├── flightOptionsWidget.json
+│ │ └── reviewWidget.json
+│ └── hindi/
+│ ├── searchCriteriaWidget.json
+│ ├── flightOptionsWidget.json
+│ └── reviewWidget.json
+├── hooks/
+│ └── useTranslations.ts
+└── utils/
+ └── i18n.ts
+```
+
+## Step 1: Adding i18n to a New Widget
+
+### 1.1 Import the Translation Hook
+
+```typescript
+import { useTranslations } from '@/hooks/useTranslations';
+```
+
+### 1.2 Initialize Translations in Component
+
+```typescript
+const YourWidget = (props) => {
+ // Initialize translations with widget name
+ const { t } = useTranslations('yourWidgetName');
+
+ // Rest of your component logic
+};
+```
+
+### 1.3 Replace Hardcoded Strings
+
+Replace hardcoded strings with translation keys:
+
+```typescript
+// Before
+
+
No flights available
+
+// After
+
+
{t('messages.noFlightsAvailable')}
+```
+
+### 1.4 Use Fallback Values
+
+Always provide fallback values for better development experience:
+
+```typescript
+// With fallback
+
+
+// For dynamic content
+{flightData.stops === 0
+ ? t('flightInfo.nonStop', 'Non-stop')
+ : `${flightData.stops} ${flightData.stops > 1
+ ? t('flightInfo.stops', 'stops')
+ : t('flightInfo.stop', 'stop')}`
+}
+```
+
+## Step 2: Creating Translation Files
+
+### 2.1 Create Translation Structure
+
+Create JSON files for each language following this structure:
+
+```json
+{
+ "button": {
+ "searchFlights": "Search flights",
+ "cancel": "Cancel"
+ },
+ "labels": {
+ "departure": "Departure",
+ "arrival": "Arrival"
+ },
+ "messages": {
+ "noFlightsAvailable": "No flights available",
+ "loading": "Loading..."
+ },
+ "validation": {
+ "required": "This field is required"
+ }
+}
+```
+
+### 2.2 Organize Keys Logically
+
+Group related translations:
+- `button.*` - Button text
+- `labels.*` - Form labels and field names
+- `messages.*` - User messages and notifications
+- `validation.*` - Validation error messages
+- `placeholders.*` - Input placeholders
+- `title.*` - Page and section titles
+
+### 2.3 Update Language Configuration
+
+Add your widget to the supported widgets list in `src/utils/i18n.ts`:
+
+```typescript
+export const LANGUAGE_CONFIG = {
+ SUPPORTED_WIDGETS: [
+ "searchCriteriaWidget",
+ "reviewWidget",
+ "flightOptionsWidget",
+ "yourWidgetName" // Add your widget here
+ ],
+ // ... rest of config
+};
+```
+
+## Step 3: Adding a New Language
+
+### 3.1 Update Language Configuration
+
+In `src/utils/i18n.ts`, add the new language:
+
+```typescript
+export type SupportedLanguage = "en" | "fr" | "hi" | "es"; // Add new language
+
+export const LANGUAGE_CONFIG = {
+ COMPLETE_LANGUAGES: ["en", "fr", "hi", "es"], // Add new language
+ LOCALE_DIRECTORIES: {
+ en: "english",
+ fr: "french",
+ hi: "hindi",
+ es: "spanish" // Add directory mapping
+ }
+};
+
+export const LANGUAGE_NAMES: Record = {
+ en: "English",
+ fr: "Français",
+ hi: "हिंदी",
+ es: "Español" // Add language name
+};
+```
+
+### 3.2 Create Translation Directory
+
+Create a new directory under `src/locales/` (e.g., `spanish/`) and copy all widget JSON files from the English directory.
+
+### 3.3 Translate Content
+
+Translate all strings in the JSON files while maintaining the same key structure:
+
+```json
+// spanish/searchCriteriaWidget.json
+{
+ "button": {
+ "searchFlights": "Buscar vuelos",
+ "oneWay": "Solo ida"
+ },
+ "labels": {
+ "departure": "Salida",
+ "arrival": "Llegada"
+ }
+}
+```
+
+## Step 4: Best Practices
+
+### 4.1 Key Naming Conventions
+
+- Use camelCase for keys: `departureTime`, `maxStops`
+- Use descriptive names: `fromAirportRequired` instead of `error1`
+- Group related keys: `button.search`, `button.cancel`
+
+### 4.2 Handling Dynamic Content
+
+For pluralization and dynamic content:
+
+```typescript
+// Handle plurals
+const getStopsText = (stops: number) => {
+ if (stops === 0) return t('flightInfo.nonStop');
+ return `${stops} ${stops === 1 ? t('flightInfo.stop') : t('flightInfo.stops')}`;
+};
+
+// Handle conditional text
+const getPassengerLabel = (type: string, index: number) => {
+ return `${t(`passengerType.${type}`)} ${index + 1}`;
+};
+```
+
+### 4.3 Child Component Translation
+
+For child components that need translations, pass the translation function or use the hook directly:
+
+```typescript
+// Option 1: Pass translation function
+
+
+// Option 2: Use hook in child component
+const ChildComponent = () => {
+ const { t } = useTranslations('parentWidgetName');
+ return
{t('child.message')}
;
+};
+```
+
+### 4.4 Testing Translations
+
+1. **Development Testing**: Use the I18nTest component at `/i18n-test`
+2. **Language Switching**: Test all languages using the LanguageSwitcher component
+3. **Missing Keys**: Check browser console for translation warnings
+4. **Fallbacks**: Ensure fallback values work when translations are missing
+
+## Step 5: Maintenance
+
+### 5.1 Adding New Translation Keys
+
+1. Add the key to the English translation file first
+2. Add the same key to all other language files
+3. Use the key in your component with a fallback value
+
+### 5.2 Updating Existing Translations
+
+1. Update the translation in all language files
+2. Test the changes in all supported languages
+3. Verify the UI layout works with different text lengths
+
+### 5.3 Removing Unused Keys
+
+1. Search the codebase for usage of the key
+2. Remove from all language files if unused
+3. Update any related documentation
+
+## Common Issues and Solutions
+
+### Issue: Translation Key Not Found
+**Solution**: Check the key path and ensure it exists in the translation file
+
+### Issue: Component Not Re-rendering
+**Solution**: Ensure the translation hook is called at the component level, not inside functions
+
+### Issue: Wrong Language Loading
+**Solution**: Check URL structure and language detection logic
+
+### Issue: Layout Breaking with Long Translations
+**Solution**: Use CSS text truncation and responsive design patterns
+
+## Example Implementation
+
+See the following files for complete examples:
+- `src/components/widgets/searchCriteria.widget.tsx`
+- `src/components/widgets/flight-options-v0.widget.tsx`
+- `src/components/widgets/flight-card.tsx`
+- `src/components/widgets/all-flights-sheet.tsx`
+
+## Testing Your Implementation
+
+1. Visit `/i18n-test` to test translations
+2. Switch between languages using the LanguageSwitcher
+3. Check browser console for any translation warnings
+4. Test with different URL patterns: `/`, `/fr`, `/hi`
+5. Verify all user-facing text is translated
+6. Test edge cases like empty states and error messages
diff --git a/documentation/INTERRUPT_WIDGETS_AUTHORING_GUIDE.md b/documentation/INTERRUPT_WIDGETS_AUTHORING_GUIDE.md
new file mode 100644
index 00000000..992046eb
--- /dev/null
+++ b/documentation/INTERRUPT_WIDGETS_AUTHORING_GUIDE.md
@@ -0,0 +1,208 @@
+## Interrupt Widgets: Authoring Guide
+
+This guide explains how to create new interrupt widgets that integrate with the unified stream timeline, support read-only freezing after submission, and hydrate correctly on refresh.
+
+### What every interrupt widget receives
+
+- `apiData`: normalized interrupt envelope.
+ - `apiData.value.widget.type`: widget type string you mapped
+ - `apiData.value.widget.args`: the live args sent from the backend
+ - `apiData.value.widget.args.submission`: the frozen snapshot (present only after submission)
+- `readOnly`: boolean indicating whether the widget has been completed and must render as read-only
+- `interruptId` (generic widgets): the stable interrupt id for completion helpers
+
+Notes:
+
+- `value` and `frozenValue` can differ. After submission, the renderer injects the frozen snapshot as `args.submission` alongside the original `args`.
+- Use `readOnly` to decide which set of values to render (or combination of value and frozenValue can also be used)
+
+---
+
+### Step-by-step: Create a new interrupt widget
+
+1. Create your component
+
+- Path: `src/components/widgets/YourWidget.widget.tsx`
+- Export a React component and mark it as a client component when needed.
+- Define props to include:
+ - `apiData?: any`
+ - `readOnly?: boolean`
+ - `interruptId?: string`
+ - Plus any widget-specific props you expect in `widget.args`.
+
+Example skeleton:
+
+```tsx
+"use client";
+
+import React from "react";
+import { useStreamContext } from "@/providers/Stream";
+import { submitInterruptResponse } from "./util";
+
+interface YourWidgetProps {
+ // Interrupt props
+ apiData?: any;
+ readOnly?: boolean;
+ interruptId?: string;
+ // Your own args (optional)
+ title?: string;
+}
+
+const YourWidget: React.FC = ({
+ apiData,
+ readOnly,
+ interruptId,
+ title,
+}) => {
+ // 1) Hydrate values
+ const liveArgs = apiData?.value?.widget?.args;
+ const frozenArgs = liveArgs?.submission; // present after submit
+ const effectiveArgs = readOnly && frozenArgs ? frozenArgs : liveArgs; // Or create effectiveArgs by combining frozenArgs
+
+ // 2) Local UI state can be initialized from effectiveArgs
+ // const [form, setForm] = React.useState(effectiveArgs?.initialField ?? "");
+
+ const thread = useStreamContext();
+
+ // 3) Submit handler
+ async function handleSubmit() {
+ const submission = {
+ // Build the compact snapshot you want to freeze
+ // e.g., fields from your local form state
+ };
+
+ // Provide a frozen snapshot so the UI can hydrate on reload in readOnly mode
+ const frozenValue = {
+ widget: { type: "YourWidget", args: submission },
+ value: {
+ type: "widget",
+ widget: { type: "YourWidget", args: submission },
+ },
+ };
+
+ await submitInterruptResponse(thread, "response", submission, {
+ interruptId, // pass-through if provided
+ frozenValue,
+ });
+ }
+
+ return (
+
+ );
+};
+
+export default YourWidget;
+```
+
+2. Map the widget type
+
+- Add your component to `src/components/widgets/index.ts` with the type your agent emits:
+
+```ts
+import YourWidget from "./YourWidget.widget";
+
+export const componentMap = {
+ // ...existing mappings
+ YourWidget,
+} as const;
+```
+
+3. Emit an interrupt from the backend
+
+- Your agent should emit a `widget` interrupt with `type: "YourWidget"` and an `args` payload you plan to render from:
+
+```ts
+// pseudo server-side shape
+{
+ value: {
+ type: "widget",
+ widget: {
+ type: "YourWidget",
+ args: {
+ title: "Fill the form",
+ // other inputs to render
+ },
+ },
+ },
+}
+```
+
+4. Hydrate correctly (live vs frozen)
+
+- In your component, compute:
+
+```ts
+const liveArgs = apiData?.value?.widget?.args; // original args
+const frozenArgs = liveArgs?.submission; // injected after submit
+const effectiveArgs = readOnly && frozenArgs ? frozenArgs : liveArgs; // choose by mode
+```
+
+- Render from `effectiveArgs` so that on reload (readOnly), the UI shows the frozen snapshot.
+
+5. Submit and freeze
+
+- On user submit, call the helper that resumes the graph and completes the interrupt locally with your frozen snapshot:
+
+```ts
+await submitInterruptResponse(thread, "response", submission, {
+ interruptId, // optional; when omitted, the helper finds the latest active interrupt
+ frozenValue: {
+ widget: { type: "YourWidget", args: submission },
+ value: { type: "widget", widget: { type: "YourWidget", args: submission } },
+ },
+});
+```
+
+- After success, the stream store marks the interrupt as completed and persists it. On refresh, `readOnly` will be true and `args.submission` will be present for hydration.
+
+---
+
+### Advanced
+
+- Rendering window: If your widget should render in the itinerary panel instead of chat, set `args.renderingWindow = "itinerary"`. The renderer will mount it in the itinerary window.
+- Visual read-only cues: A global read-only guard blocks pointer events while `readOnly` is true. You may add visual disabled styles using the `readOnly` prop.
+```
+const MyWidget = ({ readOnly, apiData }: { readOnly?: boolean; apiData?: any }) => {
+ const liveArgs = apiData?.value?.widget?.args;
+ const frozenArgs = liveArgs?.submission;
+ const effective = readOnly && frozenArgs ? frozenArgs : liveArgs;
+
+ return (
+
+
+
Traveler details
+ {readOnly ? Read-only : null}
+
+
+
+
+
+
+ );
+};
+```
+- Data model differences: It's expected that `value` and `frozenValue` differ. The renderer preserves original `args` and injects a frozen `args.submission`. Always prefer `submission` when `readOnly` is true.
+
+---
+
+### Quick checklist
+
+- [ ] Create `YourWidget.widget.tsx` with `apiData`, `readOnly`, `interruptId` props
+- [ ] Map it in `src/components/widgets/index.ts`
+- [ ] Hydrate using `liveArgs` vs `frozenArgs` per `readOnly`
+- [ ] Submit via `submitInterruptResponse(...)` with a compact `frozenValue`
+- [ ] Optionally set `args.renderingWindow = "itinerary"` for itinerary rendering
diff --git a/documentation/LANGGRAPH_STREAM_CACHING_BEHAVIOR.md b/documentation/LANGGRAPH_STREAM_CACHING_BEHAVIOR.md
new file mode 100644
index 00000000..48d4e40c
--- /dev/null
+++ b/documentation/LANGGRAPH_STREAM_CACHING_BEHAVIOR.md
@@ -0,0 +1,466 @@
+# LangGraph Stream Caching: Messages, UI Values, Interrupts
+
+This document explains how our custom stream caching handles messages, UI values (widgets), and interrupts: what we receive from LangGraph, how events flow through the system, how we cache partial/complete data, how ordering is maintained, and how this differs from `@langchain/langgraph-sdk/react`.
+
+## Architecture at a glance
+
+- Event normalization: `normalizeEvent(eventName, data)` converts raw stream events into `{ type, subtype?, payload, receivedAt }`.
+- Per-thread serialization: `ThreadActor.enqueue(threadId, op)` guarantees in-order application per thread.
+- Canonical store: `Store` keeps per-thread state with deterministic reducers and stable ordering for messages and UI.
+- Persistence: `Persistence.saveThread(threadId, snapshot)` writes through to `localStorage` after each reducer application.
+- Hook facade: `useStream` consumes all the above, exposes `{ values: { messages, ui }, messages, submit, joinStream, interrupt, … }`.
+
+---
+
+## Messages
+
+### What we receive from LangGraph
+
+- Event names: `messages`, `messages|`, optionally suffixed by `/partial` or `/metadata`.
+
+```3:20:src/lib/stream/core/event-router.js
+// Normalize LangGraph stream events …
+if (baseEvent === "messages" || name.startsWith("messages")) {
+ let subtype = "base";
+ if (name.includes("/partial")) subtype = "partial";
+ else if (name.includes("/metadata")) subtype = "metadata";
+ return { type: "message", subtype, payload: data, receivedAt };
+}
+```
+
+### Where it goes next in the flow
+
+- Normalized events are enqueued per thread; reducers, persistence, and snapshot emission happen inside the actor.
+
+```97:123:src/lib/stream/useStream.js
+const applyNormalized = useCallback((tid, normalized) => {
+ actorRef.current.enqueue(tid, async () => {
+ if (normalized.type === "message") {
+ storeRef.current.applyMessage(tid, normalized.payload, normalized.subtype);
+ }
+ const snap = storeRef.current.snapshot(tid);
+ persistRef.current.saveThread(tid, snap);
+ if (tid === threadId || threadId == null) setValues({ messages: snap.messages, ui: snap.ui });
+ });
+}, [threadId]);
+```
+
+### How it is cached (partial and complete)
+
+- Partial chunks replace the previous partial for the same message id (avoid double concatenation).
+- Base/metadata chunks concatenate using LangChain chunk rules. First-seen ordering is preserved.
+- Display gating: `partialDisplay` mode controls whether partials are immediately visible or held until non-partial.
+
+```44:79:src/lib/stream/core/store.js
+applyMessage(threadId, serializedOrArray, subtype = "base") {
+ …
+ if (chunk) {
+ if (subtype === "partial") {
+ state.messagesById.set(id, { chunk }); // replace partial
+ } else {
+ const prev = existing?.chunk;
+ const merged = (isBaseMessageChunk(prev) ? prev : null)?.concat(chunk) ?? chunk; // concat
+ state.messagesById.set(id, { chunk: merged });
+ }
+ } else {
+ state.messagesById.set(id, { chunk: message });
+ }
+ if (!state.messageOrder.includes(id)) state.messageOrder.push(id); // first-seen order
+
+ if (this.partialMode === "append" || subtype !== "partial") {
+ state.displayedMessageIds.add(id); // reveal gating
+ }
+ …
+}
+```
+
+- Snapshots only include messages marked for display and maintain stable first-seen order.
+
+```134:148:src/lib/stream/core/store.js
+const messages = state.messageOrder
+ .filter((id) => state.displayedMessageIds.has(id))
+ .map((id) => state.messagesById.get(id))
+ .filter(Boolean)
+ .map(({ chunk }) => toMessageDict(chunk));
+
+const ui = state.uiOrder
+ .map((id) => state.uiById.get(id))
+ .filter(Boolean)
+ .map(({ value }) => value);
+
+return { messages, ui, lastUpdatedAt: state.lastUpdatedAt };
+```
+
+- Write-through persistence per event:
+
+```26:43:src/lib/stream/core/persistence.js
+saveThread(threadId, snapshot) {
+ const current = this.loadAll();
+ current.threads[threadId] = {
+ messages: snapshot.messages ?? [],
+ ui: snapshot.ui ?? [],
+ lastUpdatedAt: snapshot.lastUpdatedAt ?? Date.now(),
+ };
+ window.localStorage.setItem("langgraph-stream-cache", JSON.stringify({ ...current, schemaVersion: 1 }));
+}
+```
+
+### How this differs from `@langchain/langgraph-sdk/react`
+
+- SDK uses an in-memory `MessageTupleManager` to merge chunks and updates a transient `streamValues` array; it does not persist messages and refreshes final values from thread history after the run.
+
+```410:427:node_modules/@langchain/langgraph-sdk/dist/react/stream.js
+if (event === "messages") {
+ const [serialized] = data;
+ const messageId = messageManagerRef.current.add(serialized);
+ setStreamValues((streamValues) => {
+ const values = { …historyValues, …streamValues };
+ const messages = getMessages(values).slice();
+ const { chunk, index } = messageManagerRef.current.get(messageId, messages.length) ?? {};
+ messages[index] = toMessageDict(chunk);
+ return { …values, [messagesKey]: messages };
+ });
+}
+```
+
+- SDK surfaces partials immediately (no hold mode); we provide `partialDisplay: "hold" | "append"` with proper visibility gating in snapshots.
+
+---
+
+## UI Values (widgets)
+
+### What we receive from LangGraph
+
+- Event names: `custom`, `custom|` that encode UI add/remove messages.
+- We normalize only UI-shaped custom events (others are ignored).
+
+```23:29:src/lib/stream/core/event-router.js
+if (baseEvent === "custom" || name.startsWith("custom")) {
+ if (isUIMessage(data) || isRemoveUIMessage(data)) {
+ return { type: "ui", payload: data, receivedAt };
+ }
+ return { type: "ignore", payload: data, receivedAt };
+}
+```
+
+### Where it goes next in the flow
+
+- Same per-thread actor path; UI reducer, persistence, and snapshot emission occur within the serialized op.
+
+### How it is cached (partial and complete)
+
+- We apply `uiMessageReducer` to compute the next UI array and then maintain a canonical id-map plus stable `uiOrder` for rendering and persistence.
+
+```81:100:src/lib/stream/core/store.js
+const prevArray = state.uiOrder.map((id) => state.uiById.get(id)).filter(Boolean).map((v) => v.value);
+const nextArray = uiMessageReducer(prevArray ?? [], uiEvent);
+
+const newById = new Map();
+const newOrder = [];
+for (const ui of nextArray) {
+ if (!newById.has(ui.id)) {
+ newById.set(ui.id, { value: ui });
+ newOrder.push(ui.id);
+ } else {
+ newById.set(ui.id, { value: ui });
+ }
+}
+state.uiById = newById;
+state.uiOrder = newOrder;
+state.lastUpdatedAt = Date.now();
+```
+
+### How this differs from `@langchain/langgraph-sdk/react`
+
+- SDK exposes `onCustomEvent` to let app code mutate `streamValues`; there is no built-in reducer, ordering map, or persistence for UI events if you don’t wire it.
+
+```389:401:node_modules/@langchain/langgraph-sdk/dist/react/stream.js
+if (event === "custom")
+ options.onCustomEvent?.(data, {
+ mutate: (update) => setStreamValues((prev) => ({
+ …prev,
+ …(typeof update === "function" ? update(prev) : update),
+ })),
+ });
+```
+
+- Our implementation always normalizes and reduces UI events deterministically, keeps a stable order, and persists per thread automatically.
+
+---
+
+## Interrupts
+
+### What we receive from LangGraph
+
+- Event name: `values` (may include `__interrupt__`).
+
+```31:33:src/lib/stream/core/event-router.js
+if (baseEvent === "values") {
+ return { type: "values", payload: data, receivedAt };
+}
+```
+
+### Where it goes next in the flow
+
+- Enqueued per-thread; we upsert any `messages`/`ui` present in `values` and update `interrupt` in the hook state.
+
+```102:131:src/lib/stream/core/store.js
+applyValues(threadId, values) {
+ if (Array.isArray(values?.messages)) {
+ for (const msg of values.messages) {
+ const id = msg?.id; if (!id) continue;
+ const wrapped = { toDict: () => ({ type: msg.type, data: msg }) };
+ state.messagesById.set(id, { chunk: wrapped });
+ if (!state.messageOrder.includes(id)) state.messageOrder.push(id);
+ state.displayedMessageIds.add(id); // reveal all on values
+ }
+ }
+ if (Array.isArray(values?.ui)) {
+ for (const u of values.ui) {
+ if (!u?.id) continue;
+ if (!state.uiById.has(u.id)) { state.uiById.set(u.id, { value: u }); state.uiOrder.push(u.id); }
+ else { state.uiById.set(u.id, { value: u }); }
+ }
+ }
+ state.lastUpdatedAt = Date.now();
+}
+```
+
+```108:113:src/lib/stream/useStream.js
+if (normalized.payload && typeof normalized.payload === "object" && "__interrupt__" in normalized.payload) {
+ setInterrupt({ value: normalized.payload.__interrupt__ });
+}
+```
+
+### How it is cached (partial and complete)
+
+- Any `messages`/`ui` from `values` are written into the canonical store, ordered, revealed, and persisted. The `interrupt` object itself is not persisted; it is exposed via `api.interrupt`.
+
+### How this differs from `@langchain/langgraph-sdk/react`
+
+- SDK derives `interrupt` from the thread head (history tasks/next), not from `values`; it isn’t cached locally.
+
+```471:485:node_modules/@langchain/langgraph-sdk/dist/react/stream.js
+get interrupt() {
+ if (isLoading) return undefined;
+ const interrupts = threadHead?.tasks?.at(-1)?.interrupts;
+ if (!interrupts?.length) {
+ const next = threadHead?.next ?? [];
+ if (!next.length || error != null) return undefined;
+ return { when: "breakpoint" };
+ }
+ return interrupts.at(-1);
+}
+```
+
+---
+
+## Ordering and Consistency Guarantees
+
+- Per-thread strict serialization: operations are chained by `ThreadActor` to prevent interleaving updates for the same thread.
+
+```12:28:src/lib/stream/core/thread-actor.js
+enqueue(threadId, op) {
+ const current = this.chains.get(threadId) ?? Promise.resolve();
+ const next = current
+ .then(async () => { this.lastStartedAt.set(threadId, Date.now()); await op(); })
+ .catch((err) => { console.warn("[ACTOR] op failed", threadId, err); })
+ .finally(() => { this.lastStartedAt.delete(threadId); });
+ this.chains.set(threadId, next);
+ this._armWatchdog(threadId);
+}
+```
+
+- Message ordering: first-seen order via `messageOrder`; subsequent updates never reorder; reveal is gated by `partialDisplay` policy.
+- UI ordering: the reducer determines the array; we normalize to `uiById` + `uiOrder` to preserve stable order based on first sight.
+- Cross-channel consistency: a later `values` event can upsert/reveal messages and UI so snapshots stay coherent across subgraphs and interrupts.
+- Persistence timing: write-through after each applied event ensures `localStorage` is at least as fresh as the UI snapshot; hydration restores state on mount and thread switch.
+
+```84:93:src/lib/stream/useStream.js
+// Hydrate on first mount
+const { threads } = persistRef.current.loadAll();
+if (threads && threadId && threads[threadId]) {
+ storeRef.current.hydrate(threadId, threads[threadId]);
+ const snap = storeRef.current.snapshot(threadId);
+ setValues({ messages: snap.messages, ui: snap.ui });
+}
+```
+
+---
+
+## Differences vs SDK (summary)
+
+- Messages: hold/append policy, deterministic merge, persisted per event vs. SDK’s in-memory tuple manager and post-run history refresh.
+- UI values: normalized and reduced with stable ordering and persistence vs. SDK’s callback-only mutation with no built-in persistence.
+- Interrupts: sourced from `values.__interrupt__` and not persisted vs. SDK’s history-derived interrupt state.
+- Ordering: per-thread actor + first-seen orders for both messages and UI vs. SDK’s per-stream tuple indexing and final server history order.
+
+---
+
+## Plan: Inline, persistent Interrupt widgets (ordering + read-only + refresh-safe)
+
+This plan extends the current message/UI caching to fully support interrupt widgets with strict inline ordering relative to messages and UI, automatic read-only freezing on submission, and localStorage-backed hydration.
+
+### 1) Unified blocks timeline (dev-only, breaking change)
+
+- Add a canonical, append-only timeline to the store, where each entry is a "block":
+ - `Block = { id: string; kind: "message" | "ui" | "interrupt"; receivedAt: number; anchorId?: string; }`
+ - Maintain `blocksById: Map` and `blockOrder: string[]` similar to messages/UI.
+ - `BlockData` for:
+ - `message`: `{ messageChunk }` (existing), `visible: boolean` (partial gating)
+ - `ui`: `{ uiValue }` (existing reduced item)
+ - `interrupt`: `{ value: any; completed: boolean; frozenValue?: any }`
+- Expose only `values.blocks` (aka unified timeline) for rendering. All chat UIs should render from blocks; message/UI specific selectors can be removed during dev.
+
+Persistence:
+
+- Bump schema to `schemaVersion: 2`. Persist `{ blocks, lastUpdatedAt }` (messages/ui no longer persisted in dev-only mode).
+- Hydration: No migration path needed in dev; clear old cache or ignore missing fields.
+
+### 2) Event normalization and insertion rules
+
+- Treat `values` events that include `__interrupt__` as an explicit interrupt insertion:
+ - Keep current normalization (`type: "values"`), but extend `Store.applyValues()` to call `Store.applyInterrupt(interruptValue, meta)` if `__interrupt__` is present.
+ - Alternatively, normalize to a new internal type `interrupt` at the router level; both approaches are equivalent internally.
+- `applyInterrupt(threadId, interrupt)`:
+ - Determine `interruptId`:
+ - Prefer `interrupt.interrupt_id` if present.
+ - Else generate a deterministic id (e.g., `hash(JSON.stringify(interrupt) + receivedAt)`), stored in `blocksById`.
+ - Determine anchor position:
+ - If `interrupt.value?.metadata?.attachmentId` references a known UI id, insert the interrupt block immediately after that UI block.
+ - Else, anchor to the most recent visible message block at the time of application (per-thread actor preserves order), inserting after it.
+ - Fallback: append to the end.
+ - Insert once: if a block with the same `interruptId` already exists, update its `value` but never reorder it.
+ - Mark `completed: false` by default.
+
+### 3) Read-only after submission (generic, minimal widget code)
+
+- Provide a single API on the stream hook to freeze an interrupt:
+ - `thread.completeInterrupt(interruptId: string, frozenValue?: any)` which sets `{ completed: true, frozenValue: frozenValue ?? currentValue }` in the store and persists.
+- Wire this generically at submission points:
+ - Wrap `thread.submit(...)` (or provide `submitInterruptResponse(...)`) so that on successful resume it calls `completeInterrupt` for the in-flight interrupt id.
+ - A small helper `useInterruptSubmission()` already exists; update it to call the new store method instead of an in-memory context.
+- Rendering contract for widgets (generic):
+ - `DynamicRenderer` (or equivalent) receives an `interrupt` object. We will pass-through a derived prop `readOnly = block.completed`.
+ - Widgets should honor `readOnly` by disabling inputs; no widget-specific code beyond checking this flag.
+ - For best UX, `frozenValue` (if provided) is passed instead of `value` to guarantee the UI shows the last visible state at submission time.
+
+### 4) Refresh-safe persistence and hydration
+
+- On every interrupt insert/update/complete, write-through to `localStorage` via `Persistence.saveThread` (v2 shape including `blocks`).
+- On mount or thread switch, `Store.hydrate` restores `blocks` and `useStream` sets `values.blocks` for inline renderers.
+- All renderers should be updated to use `values.blocks` exclusively during dev.
+
+### 5) Minimal changes to existing rendering
+
+- Provide a new helper for views that want inline rendering:
+ - `selectTimeline(snapshot): Array<{ kind, id, node }>` that:
+ - For `message` kinds: returns the toDict message as today.
+ - For `ui` kinds: returns the reduced UI value.
+ - For `interrupt` kinds: returns `{ type, props, readOnly }` suitable for `DynamicRenderer`.
+- Update chat thread to iterate `values.blocks` exclusively. Remove in-memory `InterruptPersistenceContext` usage in dev mode; ordering and persistence come from the timeline.
+
+### 6) Data model and API sketch
+
+Store additions:
+
+- `applyInterrupt(threadId, interruptValue, receivedAt, anchorId?)`
+- `completeInterrupt(threadId, interruptId, frozenValue?)`
+- `snapshot(threadId)` now returns `{ blocks, lastUpdatedAt }` (messages/ui derived only if explicitly needed).
+
+Hook additions:
+
+- `values.blocks` on `useStream`
+- `completeInterrupt(interruptId, frozenValue?)` exposed off the returned API
+
+Persistence:
+
+- `schemaVersion: 2`
+- Thread record: `{ blocks: BlockSnapshot[], lastUpdatedAt: number }`
+
+### 7) Edge cases
+
+- Duplicate interrupts (retries/subgraphs): de-dupe by `interrupt_id` when provided; otherwise, keep first seen and update the payload in place.
+- Out-of-order arrivals across subgraphs: per-thread actor guarantees the relative order we apply is stable; anchor rules ensure deterministic placement.
+- Partial UI/message visibility: interrupts anchored to a message hidden by hold-mode are still inserted after that message and will appear when the message becomes visible.
+
+### 8) SDK differences (updated)
+
+- We maintain a persisted, unified blocks timeline with explicit `interrupt` entries; the SDK does not provide ordering/persistence for interrupts or UI out of the box.
+- Post-submit freezing is handled locally via `completeInterrupt`, guaranteeing read-only widgets on reload.
+
+---
+
+## Implementation checklist (internal)
+
+- Store: add blocks timeline and interrupt APIs, integrate into `applyValues`.
+- Persistence: bump schema to v2, include blocks in snapshot, hydrate/upgrade from v1.
+- Hook: expose `values.blocks`, add `completeInterrupt` API, update hydration and save points.
+- Rendering: add a helper to render `values.blocks` and pass `readOnly` to widgets; migrate chat to use it.
+- Remove/retire in-memory `InterruptPersistenceContext` once blocks timeline is adopted.
+
+---
+
+## How to add a new interrupt widget (authoring guide)
+
+This repo now supports interrupt widgets with inline ordering, persistence, and automatic read-only after submission. To create a new widget that participates in this flow, follow this minimal checklist.
+
+1. Add component and map it
+
+- Create your widget React component under `src/components/widgets/YourWidget.widget.tsx`.
+- Export it in `src/components/widgets/index.ts` by adding a key to `componentMap`:
+ - Key is the widget type the agent emits (e.g., `YourWidget`), value is your component.
+
+2. Component props contract (kept generic)
+
+- Your component will automatically receive these props from the chat renderer:
+ - `apiData?: any` — the interrupt payload (or frozen payload after completion) for hydration.
+ - `readOnly?: boolean` — true when the interrupt block has been completed (or on reload after completion).
+ - `interruptId?: string` — the persisted interrupt id for explicit completion if needed.
+- Your component will also receive `widget.args` (anything the agent provided) as normal props because the renderer spreads them into the component.
+
+3. Hydrate initial values
+
+- Prefer values from `apiData` when present, then fall back to your normal `args` defaults:
+ - Common shapes (normalized by the renderer) that you can check:
+ - `apiData.value?.widget?.args`
+ - `apiData.widget?.args`
+ - `apiData.value?.value?.widget?.args`
+- If you do nothing, the widget will still render; hydrating from `apiData` is optional but recommended so values are shown after refresh.
+
+4. Read-only behavior
+
+- The chat renderer wraps all widgets in a `ReadOnlyGuard` that disables pointer events when `readOnly` is true. This guarantees a non-editable UI after submission or on reload.
+- Optional: You may additionally apply visual cues (disabled styles) based on the `readOnly` prop inside your widget. Functional disabling is already provided by the guard.
+
+5. Submit with freezing (one line)
+
+- On user submit, call the common helper which also completes the interrupt locally and persists a frozen snapshot:
+
+```ts
+await submitInterruptResponse(thread, "response", responseData, {
+ interruptId, // optional; auto-derived from the latest interrupt if omitted
+ frozenValue: {
+ widget: { type: "YourWidget", args: },
+ value: { type: "widget", widget: { type: "YourWidget", args: } },
+ },
+});
+```
+
+Guidelines for `frozenValue`:
+
+- Keep it compact and sufficient to re-render a read-only view of what the user submitted.
+- Use your widget type string as emitted by the agent and add just the args you want to preserve.
+
+6. That’s it — no widget-specific persistence code
+
+- The store marks the interrupt as completed and persists `{ blocks }` with `frozenValue` and `interrupt_id`.
+- On reload, the timeline is hydrated; `GenericInterruptView`/`DynamicRenderer` will:
+ - pass `apiData` and `readOnly` to your component,
+ - and wrap your component with `ReadOnlyGuard` for non-editability.
+
+7. Optional: Itinerary-only widgets
+
+- If your widget is intended for the itinerary panel (`widget.args.renderingWindow === "itinerary"`), the renderer mounts it in the itinerary window instead of inline chat. The `apiData`/`readOnly`/`interruptId` props are still passed; use them the same way.
+
+This contract keeps widget code minimal — implement UI, read `apiData` to prefill, and call `submitInterruptResponse(...)` with a small `frozenValue`. The stream layer takes care of ordering, persistence, and read-only state across refreshes.
diff --git a/documentation/LANGGRAPH_STREAM_CACHING_PLAN.md b/documentation/LANGGRAPH_STREAM_CACHING_PLAN.md
new file mode 100644
index 00000000..fedeaca7
--- /dev/null
+++ b/documentation/LANGGRAPH_STREAM_CACHING_PLAN.md
@@ -0,0 +1,384 @@
+# LangGraph Stream Caching Rewrite Plan
+
+## Goals
+
+- Provide consistent, thread-safe caching of messages and ui-values (ui-widgets) per `threadId`.
+- Eliminate race conditions caused by asynchronous stream events (including subgraph events and interrupts).
+- Recover reliably after reloads (localStorage-backed cache).
+- Keep the `useStream` API drop-in compatible and generic so the rest of the codebase remains abstracted from internals.
+- Maintain good separation of concerns and a simple extension path.
+
+## Constraints
+
+- LangGraph streams may emit incomplete or out-of-order event sequences, especially for subgraphs and during interrupts.
+- We must support events with prefixes (e.g., `messages|`, `custom|`) and normalize them.
+- Essential persisted state: messages and ui-values only. Interrupts will be handled as part of values but not persisted beyond what is required to reconstruct UI state.
+- Cache must be isolated by `threadId` and never leak data across threads.
+- All cache updates must be serialized per `threadId` (thread-safe at the application level).
+
+## Scope Decisions
+
+- No new public APIs beyond the `useStream` facade; internals are modular but private.
+- No extra testing or observability hooks in the initial implementation; focus on correctness. Migration steps retained.
+- 5-layer architecture kept: small modules, low overhead, clear responsibilities; suitable for race-free streams.
+- Use `uiMessageReducer` as the deterministic reducer for ui-values; we normalize to maps/order around it.
+- LocalStorage key will be non-versioned: `langgraph-stream-cache`. Optionally include `schemaVersion` in the payload for future-safe migrations.
+
+## High-Level Design
+
+We split the implementation into 5 layers. Each layer is independently testable and replaceable:
+
+1. Event Router: Normalizes raw LangGraph events and routes them to per-thread processors.
+2. Thread Actor: Serializes all per-thread operations (a single-flight queue with a microtask chain) to avoid race conditions.
+3. Store (In-Memory): Canonical per-thread store with deterministic merge reducers for messages and ui-values. Provides snapshots for the UI.
+4. Persistence: LocalStorage-backed persistence with versioning and bounded eviction; writes occur inside the thread actor for atomicity.
+5. Hook API: Public `useStream` that consumes the above, remains generic and compatible, and abstracts away concurrency and persistence.
+
+### 1) Event Router
+
+- Accepts async events from LangGraph run.stream/joinStream.
+- Normalizes event shapes into a small, typed set:
+ - MessageDelta, MessageComplete
+ - UIAdd/Remove (based on `uiMessageReducer` semantics)
+ - ValuesUpdate (for interrupts/other values)
+- Handles `custom` and `custom|` as UI events; `messages` and `messages|` as message events.
+- Adds a monotonic `receivedAt` timestamp to each event for ordering when needed.
+- Immediately enqueues the normalized event into the Thread Actor for the target `threadId`.
+
+### 2) Thread Actor (Per Thread)
+
+- A map `threadId -> ActorState` where each actor has:
+ - `queue`: an array of pending operations
+ - `chain`: a promise that resolves after the last op (the mutex)
+- `enqueue(op)` attaches to `chain = chain.then(() => op())`, guaranteeing strict in-order execution per thread.
+- Timeouts and watchdog logging protect against permanent stalls. If a stall is detected, the actor resets its chain safely.
+- No React state is accessed outside the actor; all reading and writing of shared state (cache, localStorage) and emit snapshots happen inside `enqueue`.
+
+### 3) Store (In-Memory Canonical State)
+
+Per thread we keep a single canonical state object:
+
+```
+ThreadState = {
+ messagesById: Map,
+ messageOrder: string[], // preserves order for UI rendering
+ uiById: Map, // keyed by ui.id
+ uiOrder: string[], // preserves order when needed
+ lastUpdatedAt: number
+}
+```
+
+- Deterministic reducers:
+ - `applyMessageChunk/Complete` merges by message `id` using LC chunk concat rules.
+ - `applyUIEvent` uses `uiMessageReducer` semantics but stores normalized (by id) and updates `uiOrder`.
+ - Reducers must be idempotent and commutative where possible; if the same item re-arrives, it updates-in-place.
+- Order: If a UI references a message not yet present, we still store UI. Later arrival of the message will not remove UI. Linking is best-effort by `metadata.message_id`.
+- Snapshots for React:
+ - `toValuesSnapshot()` returns `{ messages: Message[], ui: UIMessage[] }` preserving order from `messageOrder`/`uiOrder`.
+
+### 4) Persistence (LocalStorage)
+
+- `Storage Key`: `langgraph-stream-cache` (non-versioned). Optional `schemaVersion` field inside the persisted root object for future migrations.
+- Per-thread persistence: `cache[threadId] = { messages: Message[], ui: UIMessage[], lastUpdatedAt }`.
+- Writes happen inside the actor, immediately after the store mutation, to ensure the cache is always ahead of or equal to UI state.
+- Bounded size: keep the latest N threads (e.g., 50). Implement LRU by `lastUpdatedAt`.
+- On boot, load cache once and hydrate the in-memory store for threads on demand.
+- SSR-safe: guard `window` checks; no persistence on server.
+
+### 5) Hook API (`useStream`)
+
+- Public API remains close to `@langchain/langgraph-sdk/react` `useStream` but we own the internals.
+- Returns:
+ - `values`: `{ messages, ui }` produced from the canonical store snapshot for the active `threadId`.
+ - `messages`: convenience getter from `values.messages`.
+ - `submit`, `joinStream`, `stop`
+ - `isLoading`, `error`, `branch` and history helpers (as needed),
+ - `resetForThreadSwitch(threadId)`, `clearThreadCache(threadId)`.
+- Guarantees:
+ - All updates for the active `threadId` are serialized.
+ - Persistence is per-thread and atomic w.r.t in-memory store.
+ - Widgets (ui-values) are never dropped if their referenced message arrives late.
+
+## Detailed Flow
+
+1. Hook mounts:
+ - Load persisted cache (if any). Do not emit until the first snapshot is available for the active `threadId`.
+ - Create actor(s) on demand when a thread first receives an event or becomes active.
+
+2. Submitting/Joining a run:
+ - Consume the async iterator from LangGraph.
+ - For each event, normalize and `enqueue` into the appropriate thread actor.
+
+3. Actor processing loop (per event):
+ - Read and update the in-memory `ThreadState` via reducers.
+ - Persist updated `{ messages, ui }` to localStorage (per-thread) immediately.
+ - Compute a new snapshot and publish to React via `setState`.
+
+4. Thread switching:
+ - `resetForThreadSwitch(newThreadId)` moves active view; does not clear the cache.
+ - UI event queues in the previous thread actor are isolated; no leakage.
+
+5. Errors:
+ - If a stream error occurs, actor persists the last good snapshot then emits error.
+ - Actor chain has a timeout watchdog to reset blocked chains and log diagnostics.
+
+## API and Extension Points
+
+- `EventRouter` interface
+
+```
+route(rawEvent: { event: string; data: any; threadId?: string }): NormalizedEvent
+```
+
+- `ThreadActor` interface
+
+```
+enqueue(threadId: string, op: () => Promise): void
+flush(threadId: string): Promise // for testing
+reset(threadId: string): void // watchdog recovery
+```
+
+- `Store` operations
+
+```
+getState(threadId): ThreadState
+apply(threadId, event: NormalizedEvent): void
+snapshot(threadId): { messages: Message[]; ui: UIMessage[] }
+```
+
+- `Persistence` operations
+
+```
+loadAll(): Cache
+saveThread(threadId, snapshot): void
+prune(maxThreads): void
+```
+
+These interfaces make the system generic and easily replaceable (e.g., swap localStorage for IndexedDB without touching the hook API).
+
+## Reducer Rules (Deterministic Merge)
+
+- Messages
+ - Merge by `id`. For chunks, concat with LC `isBaseMessageChunk` semantics; for completes, replace.
+ - `messageOrder`: append on first sight; do not reorder on subsequent updates.
+
+- UI Values
+ - Use `uiMessageReducer` to compute the new array from the previous array plus the incoming UI event.
+ - Convert resulting array to `uiById` + `uiOrder` (preserve stable order based on first sight or explicit positions if provided later).
+ - Never drop UI entries just because the referenced message has not arrived yet.
+
+## Handling Subgraphs and Interrupts
+
+- Treat `custom|` events as UI events. Treat `messages|` as message events. Normalize them all the same way.
+- Values events carrying `__interrupt__` are applied to the store but not persisted beyond messages/ui, unless needed for consistency.
+- If interrupts are involved, we still persist any messages/ui that were derived from the event so the UI remains stable after reload.
+
+## Persistence Strategy
+
+- Write-through cache: after each successful reducer application in the actor, immediately write to localStorage for that `threadId`.
+- Debounce is optional; correctness first. If needed, a microtask batch (Promise.resolve().then) can reduce excessive writes but must not risk loss.
+- Evict older threads beyond a limit using LRU on `lastUpdatedAt`.
+
+## Error Recovery and Watchdog
+
+- Each actor tracks `lastOpStartedAt`. If an operation exceeds a timeout (e.g., 5s), log diagnostics and reset its chain to an empty resolved promise.
+- On reset, the actor does not discard state; it only ensures the queue is usable again.
+- Persistence writes are wrapped in try/catch; failures log warnings but do not interrupt the actor.
+
+## Testing Plan
+
+- Unit tests (targeting the 5 layers independently):
+ - Event normalization for all event types (`messages`, `messages|sub`, `custom`, `custom|sub`, `values` with interrupts).
+ - Deterministic reducers (idempotency, merge-by-id, order preservation).
+ - Actor serialization: ensure no interleaving writes occur for the same `threadId`.
+ - Persistence read/write; version migrations; eviction logic.
+
+- Integration tests:
+ - Simulate out-of-order event arrival (UI before message, vice versa) and verify snapshot consistency.
+ - Rapid-fire UI events (interrupts) and verify the UI array is correct, ordered, and persisted.
+ - Thread switching; ensure no leakage between threads and correct rehydration.
+
+- Manual validation (Console logs gated by `NODE_ENV === 'development'`):
+ - Event intake, actor enqueue/dequeue, snapshot sizes, persistence success/failure.
+
+## Migration Plan
+
+1. Introduce a new internal module layout (non-breaking to the rest of the app):
+ - `src/lib/stream/core/EventRouter.ts`
+ - `src/lib/stream/core/ThreadActor.ts`
+ - `src/lib/stream/core/Store.ts`
+ - `src/lib/stream/core/Persistence.ts`
+ - `src/lib/stream/useStream.ts` (public hook)
+
+2. Replace `src/lib/langgraph-stream.js` with a small façade that re-exports the new hook (keeps import paths stable for now).
+
+3. Ensure `src/lib/langgraph-index.js` continues to export `useStream` from the new module.
+
+4. Keep `GenericInterruptView` behavior unchanged; it will benefit from the stabilized snapshots.
+
+5. Add feature flags or an env var to toggle verbose debug logs during rollout.
+
+## Example Pseudocode Snippets
+
+- Thread Actor
+
+```ts
+class ThreadActor {
+ private chains = new Map>();
+ enqueue(threadId: string, op: () => Promise) {
+ const chain = this.chains.get(threadId) ?? Promise.resolve();
+ const next = chain.then(op).catch((err) => {
+ console.warn("[Actor] op failed", threadId, err);
+ });
+ this.chains.set(threadId, next);
+ }
+}
+```
+
+- Write-through after reducer
+
+```ts
+actor.enqueue(threadId, async () => {
+ store.apply(threadId, normalizedEvent);
+ const snapshot = store.snapshot(threadId);
+ persistence.saveThread(threadId, snapshot); // write-through
+ setReactState(threadId, snapshot); // emit to hook state
+});
+```
+
+## Observability
+
+- Add scoped, opt-in debug logs:
+ - `[ROUTER]` for normalized events
+ - `[ACTOR]` for enqueue/dequeue and watchdog resets
+ - `[STORE]` for reducer applications and sizes
+ - `[PERSIST]` for save/load/evict operations
+
+## Future Extensions
+
+- Swap localStorage for IndexedDB for larger caches.
+- Priority channels in the actor (e.g., UI removals before additions if needed).
+- Batching multiple events in a single actor tick when high throughput is detected.
+- Cross-tab synchronization via the `storage` event, if needed.
+
+## Acceptance Criteria
+
+- UI widgets (ui-values) never intermittently disappear when the referenced message arrives late or not at all.
+- Rapid interrupts and subgraph emissions do not cause lost updates.
+- After refresh, the last session’s messages and ui-values per-thread are present and consistent.
+- No data mixing across different `threadId`s.
+- Public `useStream` remains generic and abstract; no downstream code changes required.
+
+## Upcoming Tasks
+
+### Event Naming Strategy: Align and Harden
+
+- What to do
+ - Align on the authoritative SDK event names: `messages`, `values`, `custom`, `metadata`, `events`, `debug`, `updates`.
+ - Do not rely on event-name suffixes for partials or metadata (e.g., `messages/partial`, `messages/metadata`). Treat partialness based on payload chunk types (`*MessageChunk`) and merge via LangChain chunk rules.
+ - Keep defensive normalization so we gracefully handle server variants:
+ - Strip subgraph namespaces: treat `messages|…` and `custom|…` as `messages`/`custom`.
+ - If suffixes like `/partial` or `/metadata` appear, map to internal `subtype` hints only; behavior must not depend on them.
+ - Maintain dev logging of raw event names to detect unexpected variants without breaking behavior.
+
+- How to do it
+ 1. Router updates (`src/lib/stream/core/event-router.js`)
+ - Ensure base event extraction uses the portion before `|` and `/` to produce canonical names. Keep setting `subtype` as a non-authoritative hint when `/partial` or `/metadata` appears.
+ - Add/keep a small dev-only log for `[ROUTER]` showing the raw event and normalized type for observability.
+ 2. Store behavior (`src/lib/stream/core/store.js`)
+ - Continue determining partial vs. base via `convertToChunk` and `isBaseMessageChunk` concatenation. Treat `subtype === "partial"` as a hint to replace the prior partial but do not depend on its presence for correctness.
+ - Verify message/UI ordering remains first-seen and stable; no reordering on subsequent updates.
+ 3. Hook-level logging (`src/lib/stream/useStream.js`)
+ - Retain `[STREAM] event` logging in development to record raw names and payloads.
+ - Keep normalization + actor enqueue flow unchanged to preserve serialization semantics.
+ 4. Tests
+ - Add unit tests for the router covering: plain `messages`, `values`, `custom`; piped (`messages|subgraph`), and slashed (`messages/partial`, `messages/metadata`) names mapping to canonical types.
+ - Add store tests to confirm: partial replacement, base concat, idempotency, first-seen order, and visibility gating (`append` vs `hold`).
+ - Add integration test simulating mixed `custom` + `messages` + `values` events with subgraph and suffix variations to validate snapshots and persistence are consistent.
+ 5. Docs & notes
+ - Update developer docs to state the authoritative event set and the rationale for defensive normalization.
+ - Document how to enable verbose logs during rollout.
+
+- Why this is needed
+ - The SDK currently emits the base set of events and does not require suffixes; relying on suffixes is brittle.
+ - Defensive normalization makes us forward-compatible with server-side naming variations (subgraphs and suffixes) without breaking the UI.
+ - Payload-driven partial detection aligns with SDK semantics and ensures deterministic merges and stable ordering.
+ - Observability via dev logs shortens feedback loops when server behavior changes.
+
+- Acceptance
+ - Streams remain stable if the server includes `|subgraph` or `/partial`/`/metadata` in event names.
+ - Message/UI ordering and visibility are unchanged across variants.
+ - No regressions in persistence or hydration behavior; local cache reflects the same snapshots the UI sees.
+
+### Performance Mitigations for Persistence and Partials
+
+#### Throttle/Debounce Persistence Writes
+
+- Why
+ - Write-through on every event can cause main-thread jank on low-end devices when partial chunks arrive rapidly; JSON stringify + localStorage.setItem are synchronous.
+- What
+ - Introduce a short debounce (e.g., 50–100ms) or micro-batching so multiple quick mutations persist once per window without risking data loss.
+- How
+ - Buffer the latest snapshot per thread and schedule a write using `setTimeout(…, 50)` or `requestIdleCallback` (fallback to setTimeout). On subsequent events, replace the buffered snapshot and skip additional writes until the window elapses.
+ - Ensure a final flush on stream completion, unmount, or visibility change.
+- Where
+ - `src/lib/stream/core/persistence.js`: add a per-thread debounce map and `saveThreadDebounced(threadId, snapshot)`; keep `saveThread` for immediate writes (used by tests or critical paths).
+ - `src/lib/stream/useStream.js`: switch to debounced persistence after `store.snapshot()` in `applyNormalized`, gated by a flag.
+- Acceptance
+ - Noticeable reduction in write frequency under high-chunk streams with no stale UI; no lost updates across refresh.
+
+#### Persist on Meaningful Boundaries
+
+- Why
+ - Persisting every partial yields minimal recovery value and maximum write cost; persisting at logical milestones reduces overhead.
+- What
+ - Persist only when: a non-partial/base message arrives, a `values` event arrives, a UI array changes, or every N events (e.g., N=10) as a safety net.
+- How
+ - In `applyMessage`, mark partials vs non-partials. If subtype is `partial`, skip persistence; on base/metadata, persist.
+ - For `applyUI` and `applyValues`, persist immediately (UI changes are sparse; values are stateful milestones).
+ - Optionally, add a counter per thread; persist every N events regardless of type.
+- Where
+ - `src/lib/stream/useStream.js`: decide persistence policy based on normalized event type/subtype and a thread-local counter.
+- Acceptance
+ - Fewer writes during token streaming; identical recovery after refresh.
+
+#### Snapshot Size Management
+
+- Why
+ - Large snapshots increase stringify cost and storage size, compounding jank.
+- What
+ - Cap retained messages per thread (e.g., 200–500), drop oldest beyond cap; optionally compress long text fields (future).
+- How
+ - Before persisting, post-process snapshot to slice `messages` to last K by order and include all `ui`.
+ - Keep full in-memory state; apply cap only to the persisted payload.
+- Where
+ - `src/lib/stream/core/persistence.js`: add a shaping step before `setItem` to trim `messages` to K.
+- Acceptance
+ - Similar UI behavior; faster persistence and smaller localStorage footprint.
+
+#### Observability and A/B Toggle
+
+- Why
+ - Need to measure the trade-offs and guard for regressions.
+- What
+ - Add an env/config flag to enable/disable debouncing and boundary-based persistence; log metrics for time-to-first-visible-output and write frequency.
+- How
+ - Read a config from `useStream` options or `process.env.NEXT_PUBLIC_STREAM_PERSIST_MODE` with values: `immediate` | `debounced` | `milestones`.
+ - Add dev-only logs for `[PERSIST] scheduled`, `[PERSIST] flushed`, and counters.
+- Where
+ - `src/lib/stream/useStream.js` (option plumb-through), `src/lib/stream/core/persistence.js` (mode handling), and docs.
+- Acceptance
+ - Ability to switch modes without code changes; metrics confirm reduced writes with unchanged perceived latency (append) or intentional delay (hold).
+
+#### Partial Display Policy Notes
+
+- Why
+ - `hold` mode intentionally delays first visible output for smoother UX; needs clear guidance.
+- What
+ - Document the trade-off and default (`append`), and provide a per-hook option `partialDisplay: "hold" | "append"`.
+- How
+ - Already implemented via `Store.setPartialMode`; ensure docs and examples explain when to use each.
+- Where
+ - Docs: `documentation/LANGGRAPH_STREAM_CACHING_BEHAVIOR.md` and README usage snippets.
+- Acceptance
+ - Teams can pick mode per surface with predictable UX implications.
diff --git a/documentation/interrupt.md b/documentation/interrupt.md
new file mode 100644
index 00000000..b6553676
--- /dev/null
+++ b/documentation/interrupt.md
@@ -0,0 +1,132 @@
+# Handling Interrupts in LangGraph
+
+LangGraph provides a powerful way to manage interactive workflows by allowing the server to pause execution and wait for input from the client. This feature is called an **interrupt**.
+
+Below is a clear and simple guide to handling interrupts in LangGraph on both the server side and client side.
+
+---
+
+## 🚀 Server Side: Sending an Interrupt
+
+To send an interrupt from the server, use the `interrupt()` function. This will pause the flow and send a JSON object to the client.
+
+### ✅ Example:
+
+```ts
+const result = interrupt({
+ value: {
+ interrupt_id: "32835f20-f631-4f0d-9e8e-8b0018bedf50",
+ type: "SearchCriteriaWidget",
+ searchCriteria: searchCriteria,
+ selectedTravellers: selectedTravellers,
+ },
+});
+```
+
+- `interrupt_id`: A unique ID to track the interrupt.
+- `type`: The type of widget or component you want to render on the UI.
+- Additional fields (e.g., `searchCriteria`, `selectedTravellers`) can be passed as needed.
+
+Once the interrupt is sent, LangGraph will pause execution and wait for a response from the client.
+
+---
+
+## 🧑💻 Client Side: Handling the Interrupt
+
+When the client receives the interrupt, it will get a JSON object with the data sent from the server.
+
+### ✅ Step 1: Render the Interrupt Component
+
+Use the `type` from the JSON object to render the appropriate widget.
+
+```tsx
+const interruptType = interruptData.type;
+const interruptProps = interruptData;
+
+return (
+
+);
+```
+
+Use a `switch` statement or `componentMap` to map the type to the correct React component.
+
+### ✅ Step 2: Resume the Graph with a Response
+
+Once the user submits data from the UI, send it back to the server using:
+
+```ts
+const thread = useStreamContext();
+
+await thread.submit(
+ {},
+ {
+ command: {
+ type: "resume",
+ value: {
+ interrupt_id: "32835f20-f631-4f0d-9e8e-8b0018bedf50",
+ // Add any data that needs to be sent back to the server
+ userInput: "User's response",
+ },
+ },
+ },
+);
+```
+
+---
+
+## 🎯 New: interruptWidget Interrupt Type
+
+The `interruptWidget` interrupt type allows rendering UI widgets that are sent from the backend via the typed stream. This is useful for dynamic, configurable widgets.
+
+### ✅ Server Side: Sending interruptWidget Interrupt
+
+```ts
+const response = interrupt({
+ value: {
+ type: "interruptWidget",
+ metadata: {
+ attachmentId: uiWidget.id, // This should match a UI widget ID in the typed stream
+ },
+ },
+});
+```
+
+### ✅ Client Side: Handling interruptWidget Interrupt
+
+The system automatically:
+
+1. **Extracts the attachmentId** from `interrupt.value.metadata.attachmentId`
+2. **Finds the matching UI widget** in the typed stream (`stream.values.ui`)
+3. **Renders the widget** using `LoadExternalComponent` with the UI widget data
+
+The widget will be rendered on the chat screen using the UI data from the typed stream, making it fully configurable from the backend.
+
+### ✅ Example Flow
+
+1. Backend sends UI widget via typed stream with ID `"flight-options-123"`
+2. Backend sends interrupt with `attachmentId: "flight-options-123"`
+3. Frontend finds the UI widget with matching ID
+4. Frontend renders the widget using `LoadExternalComponent`
+5. User interacts with the widget
+6. User submits response to resume the graph
+
+This approach allows for completely dynamic and configurable UI widgets that can be defined and sent from the backend.
+
+---
+
+## ✅ Summary
+
+| Step | Server | Client |
+| ---- | -------------------------------------------------- | ------------------------------------------------ |
+| 1 | Call `interrupt()` to pause and send a widget type | Receive JSON object with `type` and other fields |
+| 2 | Wait for client response | Render component based on `type` |
+| 3 | Receive submitted data | Call `thread.submit()` to resume flow |
+
+This makes it easy to build interactive flows using LangGraph where the server can ask for input mid-execution and the client can respond with structured data.
+
+---
+
+Let us know if you want to add file upload, rich widgets, or conditional rendering next!
diff --git a/eslint.config.js b/eslint.config.js
deleted file mode 100644
index af6a2b56..00000000
--- a/eslint.config.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import js from "@eslint/js";
-import globals from "globals";
-import reactHooks from "eslint-plugin-react-hooks";
-import reactRefresh from "eslint-plugin-react-refresh";
-import tseslint from "typescript-eslint";
-
-export default tseslint.config(
- { ignores: ["dist"] },
- {
- extends: [js.configs.recommended, ...tseslint.configs.recommended],
- files: ["**/*.{ts,tsx}"],
- languageOptions: {
- ecmaVersion: 2020,
- globals: globals.browser,
- },
- plugins: {
- "react-hooks": reactHooks,
- "react-refresh": reactRefresh,
- },
- rules: {
- ...reactHooks.configs.recommended.rules,
- "@typescript-eslint/no-explicit-any": 0,
- "@typescript-eslint/no-unused-vars": [
- "warn",
- { args: "none", argsIgnorePattern: "^_", varsIgnorePattern: "^_" },
- ],
- "react-refresh/only-export-components": [
- "warn",
- { allowConstantExport: true },
- ],
- },
- },
-);
diff --git a/jsonExample.md b/jsonExample.md
new file mode 100644
index 00000000..75b53250
--- /dev/null
+++ b/jsonExample.md
@@ -0,0 +1,160 @@
+ const userDetails = {
+ "userDetails": {
+ "travellerId": 27002,
+ "firstName": "Mohd",
+ "lastName": "Khalid",
+ "dateOfBirth": "1990-01-15",
+ "gender": "Male",
+ "nationality": "Argentine",
+ "numberOfFlights": 53,
+ "email": "khalid@flyo.ai",
+ "phone": [
+ {
+ "countryCode": "91",
+ "number": "9760674679"
+ }
+ ],
+ "isPrimaryTraveller": true,
+ "documents": [
+ {
+ "documentId": 1,
+ "documentType": "passport",
+ "documentNumber": "PP3000000",
+ "nationality": "India",
+ "expiryDate": "2025-09-26",
+ "issuingDate": "2013-01-01",
+ "issuingCountry": "India",
+ "documentUrl": "https://hh-boarding-pass.s3.ap-south-1.amazonaws.com/user-documents/11972_1752813641023_Screenshot_2025_07_17_152705.png"
+ }
+ ]
+ }
+ }
+ const savedTravellers = [
+ {
+ "travellerId": 27002,
+ "firstName": "Mohd",
+ "lastName": "Khalid",
+ "dateOfBirth": "1990-01-15",
+ "gender": "Male",
+ "nationality": "Argentine",
+ "numberOfFlights": 53,
+ "email": "khalid@flyo.ai",
+ "phone": [
+ {
+ "countryCode": "91",
+ "number": "9760674679"
+ }
+ ],
+ "isPrimaryTraveller": true,
+ "documents": [
+ {
+ "documentId": 1,
+ "documentType": "passport",
+ "documentNumber": "PP3000000",
+ "nationality": "India",
+ "expiryDate": "2025-09-26",
+ "issuingDate": "2013-01-01",
+ "issuingCountry": "India",
+ "documentUrl": "https://hh-boarding-pass.s3.ap-south-1.amazonaws.com/user-documents/11972_1752813641023_Screenshot_2025_07_17_152705.png"
+ }
+ ]
+ }
+ ];
+ const contactDetails = {
+ "countryCode": "91",
+ "mobileNumber": "9760674679",
+ "email": "khalid@flyo.ai"
+ };
+ const selectedFlightOffers = [
+ {
+ "flightOfferId": "1",
+ "totalEmission": 0,
+ "totalEmissionUnit": "Kg",
+ "currency": "INR",
+ "totalAmount": 12231,
+ "tax": 0,
+ "baseAmount": 10551,
+ "serviceFee": 1680,
+ "convenienceFee": 400,
+ "journey": [
+ {
+ "id": "1-journey-0",
+ "duration": "PT2H5M",
+ "departure": {
+ "date": "2025-08-13T22:45:00",
+ "airportIata": "BLR",
+ "airportName": "",
+ "cityCode": "BLR",
+ "countryCode": "IN"
+ },
+ "arrival": {
+ "date": "2025-08-14T00:50:00",
+ "airportIata": "BOM",
+ "airportName": "",
+ "cityCode": "BOM",
+ "countryCode": "IN"
+ },
+ "segments": [
+ {
+ "id": "4",
+ "airlineIata": "AI",
+ "flightNumber": "2840",
+ "duration": "PT2H5M",
+ "aircraftType": "AIRBUS A320NEO",
+ "airlineName": "AIR INDIA",
+ "departure": {
+ "date": "2025-08-13T22:45:00",
+ "airportIata": "BLR",
+ "airportName": "",
+ "cityCode": "BLR",
+ "countryCode": "IN"
+ },
+ "arrival": {
+ "date": "2025-08-14T00:50:00",
+ "airportIata": "BOM",
+ "airportName": "",
+ "cityCode": "BOM",
+ "countryCode": "IN"
+ }
+ }
+ ]
+ }
+ ],
+ "offerRules": {
+ "isRefundable": false
+ },
+ "baggage": {
+ "check_in_baggage": {
+ "weight": 15,
+ "weightUnit": "KG"
+ },
+ "cabin_baggage": {
+ "weight": 5,
+ "weightUnit": "KG"
+ }
+ },
+ "rankingScore": 0,
+ "pros": [],
+ "cons": [],
+ "tags": [
+ "fastest",
+ "cheapest",
+ "recommended"
+ ]
+ }
+ ];
+ const bookingRequirements = {
+ "emailAddressRequired": true,
+ "invoiceAddressRequired": false,
+ "mailingAddressRequired": false,
+ "phoneCountryCodeRequired": false,
+ "mobilePhoneNumberRequired": true,
+ "phoneNumberRequired": false,
+ "postalCodeRequired": false,
+ "travelerRequirements": null
+ };
+ const numberOfTravellers = {
+ "adults": 1,
+ "children": 0,
+ "infants": 0
+ };
\ No newline at end of file
diff --git a/next.config.mjs b/next.config.mjs
index fc5e0f6d..d5d8a5f4 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -5,6 +5,16 @@ const nextConfig = {
bodySizeLimit: "10mb",
},
},
+ transpilePackages: ['react-phone-input-2'],
+ webpack: (config, { isServer }) => {
+ if (!isServer) {
+ config.resolve.fallback = {
+ ...config.resolve.fallback,
+ fs: false,
+ };
+ }
+ return config;
+ },
};
export default nextConfig;
diff --git a/package.json b/package.json
index 64910dda..cd4b5918 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,7 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "dev": "next dev",
+ "dev": "next dev -p 3000",
"build": "next build",
"start": "next start",
"lint": "next lint",
@@ -19,31 +19,47 @@
"format:check": "prettier --check ."
},
"dependencies": {
- "@langchain/core": "^0.3.44",
- "@langchain/langgraph": "^0.2.63",
+ "@langchain/core": "^0.3.66",
+ "@langchain/langgraph": "^0.4.3",
"@langchain/langgraph-sdk": "^0.0.73",
+ "@langchain/openai": "^0.6.3",
"@radix-ui/react-avatar": "^1.1.3",
- "@radix-ui/react-dialog": "^1.1.6",
+ "@radix-ui/react-checkbox": "^1.3.3",
+ "@radix-ui/react-dialog": "^1.1.14",
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-label": "^2.1.2",
- "@radix-ui/react-separator": "^1.1.2",
- "@radix-ui/react-slot": "^1.1.2",
+ "@radix-ui/react-popover": "^1.1.14",
+ "@radix-ui/react-select": "^2.2.5",
+ "@radix-ui/react-separator": "^1.1.7",
+ "@radix-ui/react-slider": "^1.3.6",
+ "@radix-ui/react-slot": "^1.2.2",
"@radix-ui/react-switch": "^1.1.3",
+ "@radix-ui/react-tabs": "^1.1.12",
"@radix-ui/react-tooltip": "^1.1.8",
+ "@types/mapbox-gl": "^3.4.1",
+ "city-timezones": "^1.3.1",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
+ "cmdk": "^1.1.1",
+ "country-list": "^2.4.1",
"date-fns": "^4.1.0",
"esbuild": "^0.25.0",
"esbuild-plugin-tailwindcss": "^2.0.1",
"framer-motion": "^12.4.9",
+ "i18n-iso-countries": "^7.14.0",
"katex": "^0.16.21",
"langgraph-nextjs-api-passthrough": "^0.0.4",
"lodash": "^4.17.21",
"lucide-react": "^0.476.0",
+ "mapbox-gl": "^3.14.0",
"next-themes": "^0.4.4",
"nuqs": "^2.4.1",
+ "razorpay": "^2.9.6",
"react": "^19.0.0",
+ "react-day-picker": "^9.9.0",
"react-dom": "^19.0.0",
"react-markdown": "^10.0.1",
+ "react-phone-input-2": "^2.15.1",
"react-syntax-highlighter": "^15.5.0",
"recharts": "^2.15.1",
"rehype-katex": "^7.0.1",
@@ -59,6 +75,7 @@
"devDependencies": {
"@eslint/js": "^9.19.0",
"@tailwindcss/postcss": "^4.0.13",
+ "@types/country-list": "^2.1.4",
"@types/lodash": "^4.17.16",
"@types/node": "^22.13.5",
"@types/react": "^19.0.8",
@@ -73,7 +90,9 @@
"eslint-plugin-react-refresh": "^0.4.18",
"globals": "^15.14.0",
"next": "^15.2.3",
+ "patch-package": "^8.0.0",
"postcss": "^8.5.3",
+ "postinstall-postinstall": "^2.1.0",
"prettier": "^3.5.3",
"prettier-plugin-tailwindcss": "^0.6.11",
"tailwind-scrollbar": "^4.0.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 030fd063..f26a7642 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,41 +9,74 @@ importers:
.:
dependencies:
'@langchain/core':
- specifier: ^0.3.44
- version: 0.3.56(openai@4.100.0(ws@8.18.2)(zod@3.24.4))
+ specifier: ^0.3.66
+ version: 0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4))
'@langchain/langgraph':
- specifier: ^0.2.63
- version: 0.2.72(@langchain/core@0.3.56(openai@4.100.0(ws@8.18.2)(zod@3.24.4)))(react@19.1.0)(zod-to-json-schema@3.24.5(zod@3.24.4))
+ specifier: ^0.4.3
+ version: 0.4.3(@langchain/core@0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(zod-to-json-schema@3.24.5(zod@3.24.4))
'@langchain/langgraph-sdk':
specifier: ^0.0.73
- version: 0.0.73(@langchain/core@0.3.56(openai@4.100.0(ws@8.18.2)(zod@3.24.4)))(react@19.1.0)
+ version: 0.0.73(@langchain/core@0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4)))(react@19.1.0)
+ '@langchain/openai':
+ specifier: ^0.6.3
+ version: 0.6.3(@langchain/core@0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4)))(ws@8.18.2)
'@radix-ui/react-avatar':
specifier: ^1.1.3
version: 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-checkbox':
+ specifier: ^1.3.3
+ version: 1.3.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-dialog':
- specifier: ^1.1.6
- version: 1.1.13(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ specifier: ^1.1.14
+ version: 1.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-dropdown-menu':
+ specifier: ^2.1.16
+ version: 2.1.16(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-label':
specifier: ^2.1.2
version: 2.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-popover':
+ specifier: ^1.1.14
+ version: 1.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-select':
+ specifier: ^2.2.5
+ version: 2.2.5(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-separator':
- specifier: ^1.1.2
- version: 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ specifier: ^1.1.7
+ version: 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-slider':
+ specifier: ^1.3.6
+ version: 1.3.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-slot':
- specifier: ^1.1.2
+ specifier: ^1.2.2
version: 1.2.2(@types/react@19.1.4)(react@19.1.0)
'@radix-ui/react-switch':
specifier: ^1.1.3
version: 1.2.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-tabs':
+ specifier: ^1.1.12
+ version: 1.1.12(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-tooltip':
specifier: ^1.1.8
version: 1.2.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@types/mapbox-gl':
+ specifier: ^3.4.1
+ version: 3.4.1
+ city-timezones:
+ specifier: ^1.3.1
+ version: 1.3.1
class-variance-authority:
specifier: ^0.7.1
version: 0.7.1
clsx:
specifier: ^2.1.1
version: 2.1.1
+ cmdk:
+ specifier: ^1.1.1
+ version: 1.1.1(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ country-list:
+ specifier: ^2.4.1
+ version: 2.4.1
date-fns:
specifier: ^4.1.0
version: 4.1.0
@@ -56,6 +89,9 @@ importers:
framer-motion:
specifier: ^12.4.9
version: 12.12.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ i18n-iso-countries:
+ specifier: ^7.14.0
+ version: 7.14.0
katex:
specifier: ^0.16.21
version: 0.16.22
@@ -68,21 +104,33 @@ importers:
lucide-react:
specifier: ^0.476.0
version: 0.476.0(react@19.1.0)
+ mapbox-gl:
+ specifier: ^3.14.0
+ version: 3.14.0
next-themes:
specifier: ^0.4.4
version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
nuqs:
specifier: ^2.4.1
version: 2.4.3(next@15.3.2(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)
+ razorpay:
+ specifier: ^2.9.6
+ version: 2.9.6
react:
specifier: ^19.0.0
version: 19.1.0
+ react-day-picker:
+ specifier: ^9.9.0
+ version: 9.9.0(react@19.1.0)
react-dom:
specifier: ^19.0.0
version: 19.1.0(react@19.1.0)
react-markdown:
specifier: ^10.0.1
version: 10.1.0(@types/react@19.1.4)(react@19.1.0)
+ react-phone-input-2:
+ specifier: ^2.15.1
+ version: 2.15.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react-syntax-highlighter:
specifier: ^15.5.0
version: 15.6.1(react@19.1.0)
@@ -123,6 +171,9 @@ importers:
'@tailwindcss/postcss':
specifier: ^4.0.13
version: 4.1.7
+ '@types/country-list':
+ specifier: ^2.1.4
+ version: 2.1.4
'@types/lodash':
specifier: ^4.17.16
version: 4.17.16
@@ -165,9 +216,15 @@ importers:
next:
specifier: ^15.2.3
version: 15.3.2(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ patch-package:
+ specifier: ^8.0.0
+ version: 8.0.0
postcss:
specifier: ^8.5.3
version: 8.5.3
+ postinstall-postinstall:
+ specifier: ^2.1.0
+ version: 2.1.0
prettier:
specifier: ^3.5.3
version: 3.5.3
@@ -204,6 +261,9 @@ packages:
'@cfworker/json-schema@4.1.1':
resolution: {integrity: sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==}
+ '@date-fns/tz@1.4.1':
+ resolution: {integrity: sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==}
+
'@emnapi/core@1.4.3':
resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==}
@@ -568,16 +628,30 @@ packages:
'@jridgewell/trace-mapping@0.3.25':
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
- '@langchain/core@0.3.56':
- resolution: {integrity: sha512-eF9MyInM9RLNisAygiCrzHnqzOnuzGWy4f1SAqAis+XIMhcA98WuZDNWxyX9pP3aKQGc47FAJ/9XWJwv5KiquA==}
+ '@langchain/core@0.3.66':
+ resolution: {integrity: sha512-d3SgSDOlgOjdIbReIXVQl9HaQzKqO/5+E+o3kJwoKXLGP9dxi7+lMyaII7yv7G8/aUxMWLwFES9zc1jFoeJEZw==}
engines: {node: '>=18'}
- '@langchain/langgraph-checkpoint@0.0.17':
- resolution: {integrity: sha512-6b3CuVVYx+7x0uWLG+7YXz9j2iBa+tn2AXvkLxzEvaAsLE6Sij++8PPbS2BZzC+S/FPJdWsz6I5bsrqL0BYrCA==}
+ '@langchain/langgraph-checkpoint@0.1.0':
+ resolution: {integrity: sha512-7oY5b0VQSxcV3DgoHdXiCgBhEzml/ZjZfKNeuq6oZ3ggcdUICa/fzrIBbFju6gxPU8ly93s0OsjF4yURnHw70Q==}
engines: {node: '>=18'}
peerDependencies:
'@langchain/core': '>=0.2.31 <0.4.0'
+ '@langchain/langgraph-sdk@0.0.105':
+ resolution: {integrity: sha512-3DD1W1wnbP48807qq+5gY248mFcwwNGqKdmZt05P3zeLpfP5Sfm6ELzVvqHGpr+qumP0yGRZs/7qArYGXRRfcQ==}
+ peerDependencies:
+ '@langchain/core': '>=0.2.31 <0.4.0'
+ react: ^18 || ^19
+ react-dom: ^18 || ^19
+ peerDependenciesMeta:
+ '@langchain/core':
+ optional: true
+ react:
+ optional: true
+ react-dom:
+ optional: true
+
'@langchain/langgraph-sdk@0.0.73':
resolution: {integrity: sha512-V3E7Bd1KNcTpnEglZqKpnQtth62WHf+Dxq5V+0CqMxbzPHnW9I4eynCO4c1/HSY/rHgEtvgj7fMvCAb6I5R+lQ==}
peerDependencies:
@@ -589,16 +663,45 @@ packages:
react:
optional: true
- '@langchain/langgraph@0.2.72':
- resolution: {integrity: sha512-2Rs79mLSx0Yxr/omiWOXBlaS+eywZ9KACe06pI6XkA3hT2hwqjMlXYMvbeD7mxZlKrPtLsQaHWvL9IO2VAa+lQ==}
+ '@langchain/langgraph@0.4.3':
+ resolution: {integrity: sha512-wYi0LsJ+VQMpOHradx0apZtDXR5iINLus9mtvaVwT2qS78wd9Ic/XWKHHpVUNGDpO2KalTkmJWWXVjYKW5C3Rw==}
engines: {node: '>=18'}
peerDependencies:
- '@langchain/core': '>=0.2.36 <0.3.0 || >=0.3.40 < 0.4.0'
+ '@langchain/core': '>=0.3.58 < 0.4.0'
zod-to-json-schema: ^3.x
peerDependenciesMeta:
zod-to-json-schema:
optional: true
+ '@langchain/openai@0.6.3':
+ resolution: {integrity: sha512-dSNuXDTJitDzN8D2wFNqWVELDbBRhMpJiFeiWpHjfPuq7R6wSjzNNY/Uk6x+FLpvbOs/zKNWy5+0q0p3KrCjRQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@langchain/core': '>=0.3.58 <0.4.0'
+
+ '@mapbox/jsonlint-lines-primitives@2.0.2':
+ resolution: {integrity: sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==}
+ engines: {node: '>= 0.6'}
+
+ '@mapbox/mapbox-gl-supported@3.0.0':
+ resolution: {integrity: sha512-2XghOwu16ZwPJLOFVuIOaLbN0iKMn867evzXFyf0P22dqugezfJwLmdanAgU25ITvz1TvOfVP4jsDImlDJzcWg==}
+
+ '@mapbox/point-geometry@1.1.0':
+ resolution: {integrity: sha512-YGcBz1cg4ATXDCM/71L9xveh4dynfGmcLDqufR+nQQy3fKwsAZsWd/x4621/6uJaeB9mwOHE6hPeDgXz9uViUQ==}
+
+ '@mapbox/tiny-sdf@2.0.7':
+ resolution: {integrity: sha512-25gQLQMcpivjOSA40g3gO6qgiFPDpWRoMfd+G/GoppPIeP6JDaMMkMrEJnMZhKyyS6iKwVt5YKu02vCUyJM3Ug==}
+
+ '@mapbox/unitbezier@0.0.1':
+ resolution: {integrity: sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==}
+
+ '@mapbox/vector-tile@2.0.4':
+ resolution: {integrity: sha512-AkOLcbgGTdXScosBWwmmD7cDlvOjkg/DetGva26pIRiZPdeJYjYKarIlb4uxVzi6bwHO6EWH82eZ5Nuv4T5DUg==}
+
+ '@mapbox/whoots-js@3.1.0':
+ resolution: {integrity: sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==}
+ engines: {node: '>=6.0.0'}
+
'@napi-rs/wasm-runtime@0.2.10':
resolution: {integrity: sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==}
@@ -677,9 +780,15 @@ packages:
engines: {node: '>=18'}
hasBin: true
+ '@radix-ui/number@1.1.1':
+ resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==}
+
'@radix-ui/primitive@1.1.2':
resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==}
+ '@radix-ui/primitive@1.1.3':
+ resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==}
+
'@radix-ui/react-arrow@1.1.6':
resolution: {integrity: sha512-2JMfHJf/eVnwq+2dewT3C0acmCWD3XiVA1Da+jTDqo342UlU13WvXtqHhG+yJw5JeQmu4ue2eMy6gcEArLBlcw==}
peerDependencies:
@@ -693,6 +802,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-arrow@1.1.7':
+ resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-avatar@1.1.9':
resolution: {integrity: sha512-10tQokfvZdFvnvDkcOJPjm2pWiP8A0R4T83MoD7tb15bC/k2GU7B1YBuzJi8lNQ8V1QqhP8ocNqp27ByZaNagQ==}
peerDependencies:
@@ -706,6 +828,32 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-checkbox@1.3.3':
+ resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-collection@1.1.7':
+ resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-compose-refs@1.1.2':
resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==}
peerDependencies:
@@ -724,8 +872,43 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-dialog@1.1.13':
- resolution: {integrity: sha512-ARFmqUyhIVS3+riWzwGTe7JLjqwqgnODBUZdqpWar/z1WFs9z76fuOs/2BOWCR+YboRn4/WN9aoaGVwqNRr8VA==}
+ '@radix-ui/react-dialog@1.1.14':
+ resolution: {integrity: sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-direction@1.1.1':
+ resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dismissable-layer@1.1.10':
+ resolution: {integrity: sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-dismissable-layer@1.1.11':
+ resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -750,6 +933,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-dropdown-menu@2.1.16':
+ resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-focus-guards@1.1.2':
resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==}
peerDependencies:
@@ -759,8 +955,17 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-focus-scope@1.1.6':
- resolution: {integrity: sha512-r9zpYNUQY+2jWHWZGyddQLL9YHkM/XvSFHVcWs7bdVuxMAnCwTAuy6Pf47Z4nw7dYcUou1vg/VgjjrrH03VeBw==}
+ '@radix-ui/react-focus-guards@1.1.3':
+ resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-focus-scope@1.1.7':
+ resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -794,6 +999,32 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-menu@2.1.16':
+ resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-popover@1.1.14':
+ resolution: {integrity: sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-popper@1.2.6':
resolution: {integrity: sha512-7iqXaOWIjDBfIG7aq8CUEeCSsQMLFdn7VEE8TaFz704DtEzpPHR7w/uuzRflvKgltqSAImgcmxQ7fFX3X7wasg==}
peerDependencies:
@@ -807,6 +1038,32 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-popper@1.2.7':
+ resolution: {integrity: sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-popper@1.2.8':
+ resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-portal@1.1.8':
resolution: {integrity: sha512-hQsTUIn7p7fxCPvao/q6wpbxmCwgLrlz+nOrJgC+RwfZqWY/WN+UMqkXzrtKbPrF82P43eCTl3ekeKuyAQbFeg==}
peerDependencies:
@@ -820,6 +1077,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-portal@1.1.9':
+ resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-presence@1.1.4':
resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==}
peerDependencies:
@@ -833,6 +1103,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-presence@1.1.5':
+ resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-primitive@2.1.2':
resolution: {integrity: sha512-uHa+l/lKfxuDD2zjN/0peM/RhhSmRjr5YWdk/37EnSv1nJ88uvG85DPexSm8HdFQROd2VdERJ6ynXbkCFi+APw==}
peerDependencies:
@@ -846,8 +1129,73 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-separator@1.1.6':
- resolution: {integrity: sha512-Izof3lPpbCfTM7WDta+LRkz31jem890VjEvpVRoWQNKpDUMMVffuyq854XPGP1KYGWWmjmYvHvPFeocWhFCy1w==}
+ '@radix-ui/react-primitive@2.1.3':
+ resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-roving-focus@1.1.10':
+ resolution: {integrity: sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-roving-focus@1.1.11':
+ resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-select@2.2.5':
+ resolution: {integrity: sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-separator@1.1.7':
+ resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-slider@1.3.6':
+ resolution: {integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
@@ -868,6 +1216,15 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-slot@1.2.3':
+ resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-switch@1.2.4':
resolution: {integrity: sha512-yZCky6XZFnR7pcGonJkr9VyNRu46KcYAbyg1v/gVVCZUr8UJ4x+RpncC27hHtiZ15jC+3WS8Yg/JSgyIHnYYsQ==}
peerDependencies:
@@ -881,6 +1238,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-tabs@1.1.12':
+ resolution: {integrity: sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-tooltip@1.2.6':
resolution: {integrity: sha512-zYb+9dc9tkoN2JjBDIIPLQtk3gGyz8FMKoqYTb8EMVQ5a5hBcdHPECrsZVI4NpPAUOixhkoqg7Hj5ry5USowfA==}
peerDependencies:
@@ -988,6 +1358,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-visually-hidden@1.2.3':
+ resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/rect@1.1.1':
resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==}
@@ -1094,6 +1477,9 @@ packages:
'@tybys/wasm-util@0.9.0':
resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==}
+ '@types/country-list@2.1.4':
+ resolution: {integrity: sha512-c4orjm0wT+BRt6Ynf2/QRRL+iMX4SdLT11jAjKqkJ7mQr/DLOmdz7qR8i04j9Y7wFSoP70cXJc18FN4YGNgGaA==}
+
'@types/d3-array@3.2.1':
resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==}
@@ -1130,6 +1516,12 @@ packages:
'@types/estree@1.0.7':
resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
+ '@types/geojson-vt@3.2.5':
+ resolution: {integrity: sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==}
+
+ '@types/geojson@7946.0.16':
+ resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
+
'@types/hast@2.3.10':
resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==}
@@ -1148,21 +1540,24 @@ packages:
'@types/lodash@4.17.16':
resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==}
+ '@types/mapbox-gl@3.4.1':
+ resolution: {integrity: sha512-NsGKKtgW93B+UaLPti6B7NwlxYlES5DpV5Gzj9F75rK5ALKsqSk15CiEHbOnTr09RGbr6ZYiCdI+59NNNcAImg==}
+
+ '@types/mapbox__point-geometry@0.1.4':
+ resolution: {integrity: sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==}
+
'@types/mdast@4.0.4':
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
'@types/ms@2.1.0':
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
- '@types/node-fetch@2.6.12':
- resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==}
-
- '@types/node@18.19.100':
- resolution: {integrity: sha512-ojmMP8SZBKprc3qGrGk8Ujpo80AXkrP7G2tOT4VWr5jlr5DHjsJF+emXJz+Wm0glmy4Js62oKMdZZ6B9Y+tEcA==}
-
'@types/node@22.15.18':
resolution: {integrity: sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==}
+ '@types/pbf@3.0.5':
+ resolution: {integrity: sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==}
+
'@types/prismjs@1.26.5':
resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==}
@@ -1180,6 +1575,9 @@ packages:
'@types/retry@0.12.0':
resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
+ '@types/supercluster@7.1.3':
+ resolution: {integrity: sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==}
+
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
@@ -1324,9 +1722,8 @@ packages:
cpu: [x64]
os: [win32]
- abort-controller@3.0.0:
- resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
- engines: {node: '>=6.5'}
+ '@yarnpkg/lockfile@1.1.0':
+ resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==}
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
@@ -1338,10 +1735,6 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
- agentkeepalive@4.6.0:
- resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==}
- engines: {node: '>= 8.0.0'}
-
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
@@ -1406,6 +1799,10 @@ packages:
asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+ at-least-node@1.0.0:
+ resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
+ engines: {node: '>= 4.0.0'}
+
autoprefixer@10.4.21:
resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==}
engines: {node: ^10 || ^12 || >=14}
@@ -1421,6 +1818,9 @@ packages:
resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==}
engines: {node: '>=4'}
+ axios@1.11.0:
+ resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==}
+
axobject-query@4.1.0:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines: {node: '>= 0.4'}
@@ -1504,13 +1904,26 @@ packages:
character-reference-invalid@2.0.1:
resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
+ cheap-ruler@4.0.0:
+ resolution: {integrity: sha512-0BJa8f4t141BYKQyn9NSQt1PguFQXMXwZiA5shfoaBYHAb2fFk2RAX+tiWMoQU+Agtzt3mdt0JtuyshAXqZ+Vw==}
+
chownr@3.0.0:
resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==}
engines: {node: '>=18'}
+ ci-info@3.9.0:
+ resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
+ engines: {node: '>=8'}
+
+ city-timezones@1.3.1:
+ resolution: {integrity: sha512-YCeJKGyw3DA+wV/oyuFuJlk4oqN9zkfLP+fz2nEXUBm9sW1xZaXQsKQoc8l8hP+vI45GPOq8OuGrlGXUcnLISA==}
+
class-variance-authority@0.7.1:
resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
+ classnames@2.5.1:
+ resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
+
client-only@0.0.1:
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
@@ -1518,6 +1931,12 @@ packages:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
+ cmdk@1.1.1:
+ resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==}
+ peerDependencies:
+ react: ^18 || ^19 || ^19.0.0-rc
+ react-dom: ^18 || ^19 || ^19.0.0-rc
+
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -1552,10 +1971,16 @@ packages:
console-table-printer@2.12.1:
resolution: {integrity: sha512-wKGOQRRvdnd89pCeH96e2Fn4wkbenSP6LMHfjfyNLMbGuHEFbMqQNuxXqd0oXG9caIOQ1FTvc5Uijp9/4jujnQ==}
+ country-list@2.4.1:
+ resolution: {integrity: sha512-KhVV/UfUV3dSNpsWIqHTQxLpYDKPKz1UwkRjadt+YbX2PRhyCEihEoS5XgB7J7AMXpkicvl+tRHvkNI5wbji/g==}
+
cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
+ csscolorparser@1.0.3:
+ resolution: {integrity: sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==}
+
cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
@@ -1623,6 +2048,9 @@ packages:
resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
engines: {node: '>= 0.4'}
+ date-fns-jalali@4.1.0-0:
+ resolution: {integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==}
+
date-fns@4.1.0:
resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==}
@@ -1682,6 +2110,9 @@ packages:
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+ diacritics@1.3.0:
+ resolution: {integrity: sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==}
+
doctrine@2.1.0:
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
engines: {node: '>=0.10.0'}
@@ -1697,6 +2128,9 @@ packages:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
+ earcut@3.0.2:
+ resolution: {integrity: sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==}
+
electron-to-chromium@1.5.155:
resolution: {integrity: sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==}
@@ -1887,10 +2321,6 @@ packages:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
- event-target-shim@5.0.1:
- resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
- engines: {node: '>=6'}
-
eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
@@ -1944,6 +2374,9 @@ packages:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
+ find-yarn-workspace-root@2.0.0:
+ resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==}
+
flat-cache@4.0.1:
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines: {node: '>=16'}
@@ -1951,25 +2384,27 @@ packages:
flatted@3.3.3:
resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
+ follow-redirects@1.15.11:
+ resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
for-each@0.3.5:
resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
engines: {node: '>= 0.4'}
- form-data-encoder@1.7.2:
- resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==}
-
- form-data@4.0.2:
- resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
+ form-data@4.0.4:
+ resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
engines: {node: '>= 6'}
format@0.2.2:
resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
engines: {node: '>=0.4.x'}
- formdata-node@4.4.1:
- resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
- engines: {node: '>= 12.20'}
-
fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
@@ -1987,6 +2422,13 @@ packages:
react-dom:
optional: true
+ fs-extra@9.1.0:
+ resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
+ engines: {node: '>=10'}
+
+ fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
fsevents@2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -2005,6 +2447,9 @@ packages:
generic-names@4.0.0:
resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==}
+ geojson-vt@4.0.2:
+ resolution: {integrity: sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==}
+
get-intrinsic@1.3.0:
resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
engines: {node: '>= 0.4'}
@@ -2024,6 +2469,9 @@ packages:
get-tsconfig@4.10.0:
resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==}
+ gl-matrix@3.4.3:
+ resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==}
+
glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -2032,6 +2480,10 @@ packages:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
+ glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ deprecated: Glob versions prior to v9 are no longer supported
+
globals@14.0.0:
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
engines: {node: '>=18'}
@@ -2054,6 +2506,9 @@ packages:
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+ grid-index@1.1.0:
+ resolution: {integrity: sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==}
+
has-bigints@1.1.0:
resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
engines: {node: '>= 0.4'}
@@ -2126,8 +2581,9 @@ packages:
html-url-attributes@3.0.1:
resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==}
- humanize-ms@1.2.1:
- resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
+ i18n-iso-countries@7.14.0:
+ resolution: {integrity: sha512-nXHJZYtNrfsi1UQbyRqm3Gou431elgLjKl//CYlnBGt5aTWdRPH1PiS2T/p/n8Q8LnqYqzQJik3Q7mkwvLokeg==}
+ engines: {node: '>= 12'}
icss-utils@5.1.0:
resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
@@ -2151,6 +2607,13 @@ packages:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
+ inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
+
+ inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
inline-style-parser@0.2.4:
resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
@@ -2218,6 +2681,11 @@ packages:
is-decimal@2.0.1:
resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
+ is-docker@2.2.1:
+ resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -2292,6 +2760,10 @@ packages:
resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
engines: {node: '>= 0.4'}
+ is-wsl@2.2.0:
+ resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
+ engines: {node: '>=8'}
+
isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
@@ -2325,10 +2797,20 @@ packages:
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+ json-stable-stringify@1.3.0:
+ resolution: {integrity: sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==}
+ engines: {node: '>= 0.4'}
+
json5@1.0.2:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
+ jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+
+ jsonify@0.0.1:
+ resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==}
+
jsx-ast-utils@3.3.5:
resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
engines: {node: '>=4.0'}
@@ -2337,19 +2819,34 @@ packages:
resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==}
hasBin: true
+ kdbush@4.0.2:
+ resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==}
+
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+ klaw-sync@6.0.0:
+ resolution: {integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==}
+
langgraph-nextjs-api-passthrough@0.0.4:
resolution: {integrity: sha512-Hhey2o7/hvbvr4t8qT+w/5YT2L6m381RJ1K6mBQPJt+W2fJJ1youS3EEtVkAHQDJcn1cdCccOc0GTPsqT6F9IQ==}
peerDependencies:
next: '*'
- langsmith@0.3.29:
- resolution: {integrity: sha512-JPF2B339qpYy9FyuY4Yz1aWYtgPlFc/a+VTj3L/JcFLHCiMP7+Ig8I9jO+o1QwVa+JU3iugL1RS0wwc+Glw0zA==}
+ langsmith@0.3.50:
+ resolution: {integrity: sha512-yosW6sR0EFnMnYKKyBmcqTNknDVOs+dUfcswWk80JoRxox6WEyel7hmSkSzabP/GmTs0hXbrtc+lZwpJWSnI0w==}
peerDependencies:
+ '@opentelemetry/api': '*'
+ '@opentelemetry/exporter-trace-otlp-proto': '*'
+ '@opentelemetry/sdk-trace-base': '*'
openai: '*'
peerDependenciesMeta:
+ '@opentelemetry/api':
+ optional: true
+ '@opentelemetry/exporter-trace-otlp-proto':
+ optional: true
+ '@opentelemetry/sdk-trace-base':
+ optional: true
openai:
optional: true
@@ -2439,9 +2936,21 @@ packages:
lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+ lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+
+ lodash.memoize@4.1.2:
+ resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
+
lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ lodash.reduce@4.6.0:
+ resolution: {integrity: sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==}
+
+ lodash.startswith@4.2.1:
+ resolution: {integrity: sha512-XClYR1h4/fJ7H+mmCKppbiBmljN/nGs73iq2SjCT9SF4CBPoUHzLvWmH1GtZMhMBZSiRkHXfeA2RY1eIlJ75ww==}
+
lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
@@ -2463,9 +2972,15 @@ packages:
magic-string@0.30.17:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
+ mapbox-gl@3.14.0:
+ resolution: {integrity: sha512-KYhi9ZOQL4BB0J061admPH8O5ZZhhxsyiJ6DQCOkCaps0JEB4HF3SbJwu8S0pJKaQUxNS33sSbzW8iDSSauHPQ==}
+
markdown-table@3.0.4:
resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
+ martinez-polygon-clipping@0.7.4:
+ resolution: {integrity: sha512-jBEwrKtA0jTagUZj2bnmb4Yg2s4KnJGRePStgI7bAVjtcipKiF39R4LZ2V/UT61jMYWrTcBhPazexeqd6JAVtw==}
+
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
@@ -2656,6 +3171,9 @@ packages:
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ murmurhash-js@1.0.0:
+ resolution: {integrity: sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==}
+
mustache@4.2.0:
resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
hasBin: true
@@ -2700,20 +3218,6 @@ packages:
sass:
optional: true
- node-domexception@1.0.0:
- resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
- engines: {node: '>=10.5.0'}
- deprecated: Use your platform's native DOMException instead
-
- node-fetch@2.7.0:
- resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
- engines: {node: 4.x || >=6.0.0}
- peerDependencies:
- encoding: ^0.1.0
- peerDependenciesMeta:
- encoding:
- optional: true
-
node-releases@2.0.19:
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
@@ -2771,8 +3275,15 @@ packages:
resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
engines: {node: '>= 0.4'}
- openai@4.100.0:
- resolution: {integrity: sha512-9soq/wukv3utxcuD7TWFqKdKp0INWdeyhUCvxwrne5KwnxaCp4eHL4GdT/tMFhYolxgNhxFzg5GFwM331Z5CZg==}
+ once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+
+ open@7.4.2:
+ resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==}
+ engines: {node: '>=8'}
+
+ openai@5.11.0:
+ resolution: {integrity: sha512-+AuTc5pVjlnTuA9zvn8rA/k+1RluPIx9AD4eDcnutv6JNwHHZxIhkFy+tmMKCvmMFDQzfA/r1ujvPWB19DQkYg==}
hasBin: true
peerDependencies:
ws: ^8.18.0
@@ -2787,6 +3298,10 @@ packages:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
+ os-tmpdir@1.0.2:
+ resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
+ engines: {node: '>=0.10.0'}
+
own-keys@1.0.1:
resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
engines: {node: '>= 0.4'}
@@ -2828,10 +3343,19 @@ packages:
parse5@7.3.0:
resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
+ patch-package@8.0.0:
+ resolution: {integrity: sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==}
+ engines: {node: '>=14', npm: '>5'}
+ hasBin: true
+
path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
+ path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+
path-key@3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
@@ -2839,6 +3363,10 @@ packages:
path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ pbf@4.0.1:
+ resolution: {integrity: sha512-SuLdBvS42z33m8ejRbInMapQe8n0D3vN/Xd5fmWM3tufNgRQFBpaW2YVJxQZV4iPNqb0vEFvssMEo5w9c6BTIA==}
+ hasBin: true
+
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -2908,6 +3436,12 @@ packages:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
+ postinstall-postinstall@2.1.0:
+ resolution: {integrity: sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ==}
+
+ potpack@2.1.0:
+ resolution: {integrity: sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==}
+
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -2994,6 +3528,12 @@ packages:
property-information@7.1.0:
resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
+ protocol-buffers-schema@3.6.0:
+ resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==}
+
+ proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+
punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
@@ -3001,6 +3541,18 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ quickselect@3.0.0:
+ resolution: {integrity: sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==}
+
+ razorpay@2.9.6:
+ resolution: {integrity: sha512-zsHAQzd6e1Cc6BNoCNZQaf65ElL6O6yw0wulxmoG5VQDr363fZC90Mp1V5EktVzG45yPyNomNXWlf4cQ3622gQ==}
+
+ react-day-picker@9.9.0:
+ resolution: {integrity: sha512-NtkJbuX6cl/VaGNb3sVVhmMA6LSMnL5G3xNL+61IyoZj0mUZFWTg4hmj7PHjIQ8MXN9dHWhUHFoJWG6y60DKSg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ react: '>=16.8.0'
+
react-dom@19.1.0:
resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==}
peerDependencies:
@@ -3018,6 +3570,12 @@ packages:
'@types/react': '>=18'
react: '>=18'
+ react-phone-input-2@2.15.1:
+ resolution: {integrity: sha512-W03abwhXcwUoq+vUFvC6ch2+LJYMN8qSOiO889UH6S7SyMCQvox/LF3QWt+cZagZrRdi5z2ON3omnjoCUmlaYw==}
+ peerDependencies:
+ react: ^16.12.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0
+ react-dom: ^16.12.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0
+
react-remove-scroll-bar@2.3.8:
resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
engines: {node: '>=10'}
@@ -3115,6 +3673,9 @@ packages:
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+ resolve-protobuf-schema@2.1.0:
+ resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==}
+
resolve@1.22.10:
resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
engines: {node: '>= 0.4'}
@@ -3132,6 +3693,14 @@ packages:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ rimraf@2.7.1:
+ resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ robust-predicates@2.0.4:
+ resolution: {integrity: sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==}
+
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
@@ -3159,6 +3728,10 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ serialize-to-js@3.1.2:
+ resolution: {integrity: sha512-owllqNuDDEimQat7EPG0tH7JjO090xKNzUtYz6X+Sk2BXDnOCilDdNLwjWeFywG9xkJul1ULvtUQa9O4pUaY0w==}
+ engines: {node: '>=4.0.0'}
+
set-function-length@1.2.2:
resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
engines: {node: '>= 0.4'}
@@ -3205,6 +3778,10 @@ packages:
simple-wcswidth@1.0.1:
resolution: {integrity: sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==}
+ slash@2.0.0:
+ resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==}
+ engines: {node: '>=6'}
+
sonner@2.0.3:
resolution: {integrity: sha512-njQ4Hht92m0sMqqHVDL32V2Oun9W1+PHO9NDv9FHfJjT3JT22IG4Jpo3FPQy+mouRKCXFWO+r67v6MrHX2zeIA==}
peerDependencies:
@@ -3221,6 +3798,9 @@ packages:
space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+ splaytree@0.1.4:
+ resolution: {integrity: sha512-D50hKrjZgBzqD3FT2Ek53f2dcDLAQT8SSGrzj3vidNH5ISRgceeGVJ2dQIthKOuayqFXfFjXheHNo4bbt9LhRQ==}
+
stable-hash@0.0.5:
resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==}
@@ -3284,6 +3864,9 @@ packages:
babel-plugin-macros:
optional: true
+ supercluster@8.0.1:
+ resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==}
+
supports-color@7.2.0:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
@@ -3324,13 +3907,20 @@ packages:
resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==}
engines: {node: '>=12.0.0'}
+ tinyqueue@1.2.3:
+ resolution: {integrity: sha512-Qz9RgWuO9l8lT+Y9xvbzhPT2efIUIFd69N7eF7tJ9lnQl0iLj1M7peK7IoUGZL9DJHw9XftqLreccfxcQgYLxA==}
+
+ tinyqueue@3.0.0:
+ resolution: {integrity: sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==}
+
+ tmp@0.0.33:
+ resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
+ engines: {node: '>=0.6.0'}
+
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
- tr46@0.0.3:
- resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
-
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
@@ -3385,9 +3975,6 @@ packages:
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
engines: {node: '>= 0.4'}
- undici-types@5.26.5:
- resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
-
undici-types@6.21.0:
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
@@ -3415,6 +4002,10 @@ packages:
unist-util-visit@5.0.0:
resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+ universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+
unrs-resolver@1.7.2:
resolution: {integrity: sha512-BBKpaylOW8KbHsu378Zky/dGh4ckT/4NW/0SHRABdqRLcQJ2dAOjDo9g97p04sWflm0kqPqpUatxReNV/dqI5A==}
@@ -3487,16 +4078,6 @@ packages:
web-namespaces@2.0.1:
resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
- web-streams-polyfill@4.0.0-beta.3:
- resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==}
- engines: {node: '>= 14'}
-
- webidl-conversions@3.0.1:
- resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
-
- whatwg-url@5.0.0:
- resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
-
which-boxed-primitive@1.1.1:
resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
engines: {node: '>= 0.4'}
@@ -3522,6 +4103,9 @@ packages:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines: {node: '>=0.10.0'}
+ wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
ws@8.18.2:
resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==}
engines: {node: '>=10.0.0'}
@@ -3542,6 +4126,11 @@ packages:
resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
engines: {node: '>=18'}
+ yaml@2.8.1:
+ resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==}
+ engines: {node: '>= 14.6'}
+ hasBin: true
+
yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
@@ -3554,6 +4143,9 @@ packages:
zod@3.24.4:
resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==}
+ zod@3.25.76:
+ resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
+
zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
@@ -3570,6 +4162,8 @@ snapshots:
'@cfworker/json-schema@4.1.1': {}
+ '@date-fns/tz@1.4.1': {}
+
'@emnapi/core@1.4.3':
dependencies:
'@emnapi/wasi-threads': 1.0.2
@@ -3834,49 +4428,91 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
- '@langchain/core@0.3.56(openai@4.100.0(ws@8.18.2)(zod@3.24.4))':
+ '@langchain/core@0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4))':
dependencies:
'@cfworker/json-schema': 4.1.1
ansi-styles: 5.2.0
camelcase: 6.3.0
decamelize: 1.2.0
js-tiktoken: 1.0.20
- langsmith: 0.3.29(openai@4.100.0(ws@8.18.2)(zod@3.24.4))
+ langsmith: 0.3.50(openai@5.11.0(ws@8.18.2)(zod@3.24.4))
mustache: 4.2.0
p-queue: 6.6.2
p-retry: 4.6.2
uuid: 10.0.0
- zod: 3.24.4
- zod-to-json-schema: 3.24.5(zod@3.24.4)
+ zod: 3.25.76
+ zod-to-json-schema: 3.24.5(zod@3.25.76)
transitivePeerDependencies:
+ - '@opentelemetry/api'
+ - '@opentelemetry/exporter-trace-otlp-proto'
+ - '@opentelemetry/sdk-trace-base'
- openai
- '@langchain/langgraph-checkpoint@0.0.17(@langchain/core@0.3.56(openai@4.100.0(ws@8.18.2)(zod@3.24.4)))':
+ '@langchain/langgraph-checkpoint@0.1.0(@langchain/core@0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4)))':
dependencies:
- '@langchain/core': 0.3.56(openai@4.100.0(ws@8.18.2)(zod@3.24.4))
+ '@langchain/core': 0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4))
uuid: 10.0.0
- '@langchain/langgraph-sdk@0.0.73(@langchain/core@0.3.56(openai@4.100.0(ws@8.18.2)(zod@3.24.4)))(react@19.1.0)':
+ '@langchain/langgraph-sdk@0.0.105(@langchain/core@0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@types/json-schema': 7.0.15
+ p-queue: 6.6.2
+ p-retry: 4.6.2
+ uuid: 9.0.1
+ optionalDependencies:
+ '@langchain/core': 0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4))
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+
+ '@langchain/langgraph-sdk@0.0.73(@langchain/core@0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4)))(react@19.1.0)':
dependencies:
'@types/json-schema': 7.0.15
p-queue: 6.6.2
p-retry: 4.6.2
uuid: 9.0.1
optionalDependencies:
- '@langchain/core': 0.3.56(openai@4.100.0(ws@8.18.2)(zod@3.24.4))
+ '@langchain/core': 0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4))
react: 19.1.0
- '@langchain/langgraph@0.2.72(@langchain/core@0.3.56(openai@4.100.0(ws@8.18.2)(zod@3.24.4)))(react@19.1.0)(zod-to-json-schema@3.24.5(zod@3.24.4))':
+ '@langchain/langgraph@0.4.3(@langchain/core@0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(zod-to-json-schema@3.24.5(zod@3.24.4))':
dependencies:
- '@langchain/core': 0.3.56(openai@4.100.0(ws@8.18.2)(zod@3.24.4))
- '@langchain/langgraph-checkpoint': 0.0.17(@langchain/core@0.3.56(openai@4.100.0(ws@8.18.2)(zod@3.24.4)))
- '@langchain/langgraph-sdk': 0.0.73(@langchain/core@0.3.56(openai@4.100.0(ws@8.18.2)(zod@3.24.4)))(react@19.1.0)
+ '@langchain/core': 0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4))
+ '@langchain/langgraph-checkpoint': 0.1.0(@langchain/core@0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4)))
+ '@langchain/langgraph-sdk': 0.0.105(@langchain/core@0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
uuid: 10.0.0
- zod: 3.24.4
+ zod: 3.25.76
optionalDependencies:
zod-to-json-schema: 3.24.5(zod@3.24.4)
transitivePeerDependencies:
- react
+ - react-dom
+
+ '@langchain/openai@0.6.3(@langchain/core@0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4)))(ws@8.18.2)':
+ dependencies:
+ '@langchain/core': 0.3.66(openai@5.11.0(ws@8.18.2)(zod@3.24.4))
+ js-tiktoken: 1.0.20
+ openai: 5.11.0(ws@8.18.2)(zod@3.25.76)
+ zod: 3.25.76
+ transitivePeerDependencies:
+ - ws
+
+ '@mapbox/jsonlint-lines-primitives@2.0.2': {}
+
+ '@mapbox/mapbox-gl-supported@3.0.0': {}
+
+ '@mapbox/point-geometry@1.1.0': {}
+
+ '@mapbox/tiny-sdf@2.0.7': {}
+
+ '@mapbox/unitbezier@0.0.1': {}
+
+ '@mapbox/vector-tile@2.0.4':
+ dependencies:
+ '@mapbox/point-geometry': 1.1.0
+ '@types/geojson': 7946.0.16
+ pbf: 4.0.1
+
+ '@mapbox/whoots-js@3.1.0': {}
'@napi-rs/wasm-runtime@0.2.10':
dependencies:
@@ -3934,8 +4570,12 @@ snapshots:
playwright: 1.52.0
optional: true
+ '@radix-ui/number@1.1.1': {}
+
'@radix-ui/primitive@1.1.2': {}
+ '@radix-ui/primitive@1.1.3': {}
+
'@radix-ui/react-arrow@1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
'@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
@@ -3945,6 +4585,15 @@ snapshots:
'@types/react': 19.1.4
'@types/react-dom': 19.1.5(@types/react@19.1.4)
+ '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
'@radix-ui/react-avatar@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
'@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
@@ -3958,6 +4607,34 @@ snapshots:
'@types/react': 19.1.4
'@types/react-dom': 19.1.5(@types/react@19.1.4)
+ '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
+ '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.1.4)(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
'@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.4)(react@19.1.0)':
dependencies:
react: 19.1.0
@@ -3970,19 +4647,19 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.4
- '@radix-ui/react-dialog@1.1.13(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
'@radix-ui/primitive': 1.1.2
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
'@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
- '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.4)(react@19.1.0)
- '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0)
- '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.1.4)(react@19.1.0)
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0)
aria-hidden: 1.2.4
react: 19.1.0
@@ -3992,6 +4669,38 @@ snapshots:
'@types/react': 19.1.4
'@types/react-dom': 19.1.5(@types/react@19.1.4)
+ '@radix-ui/react-direction@1.1.1(@types/react@19.1.4)(react@19.1.0)':
+ dependencies:
+ react: 19.1.0
+ optionalDependencies:
+ '@types/react': 19.1.4
+
+ '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.2
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
+ '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
'@radix-ui/react-dismissable-layer@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
'@radix-ui/primitive': 1.1.2
@@ -4005,89 +4714,306 @@ snapshots:
'@types/react': 19.1.4
'@types/react-dom': 19.1.5(@types/react@19.1.4)
- '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.4)(react@19.1.0)':
+ '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
+ '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.4)(react@19.1.0)':
+ dependencies:
+ react: 19.1.0
+ optionalDependencies:
+ '@types/react': 19.1.4
+
+ '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.4)(react@19.1.0)':
+ dependencies:
+ react: 19.1.0
+ optionalDependencies:
+ '@types/react': 19.1.4
+
+ '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
+ '@radix-ui/react-id@1.1.1(@types/react@19.1.4)(react@19.1.0)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ react: 19.1.0
+ optionalDependencies:
+ '@types/react': 19.1.4
+
+ '@radix-ui/react-label@2.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
+ '@radix-ui/react-menu@2.1.16(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ aria-hidden: 1.2.4
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ react-remove-scroll: 2.6.3(@types/react@19.1.4)(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
+ '@radix-ui/react-popover@1.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.2
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0)
+ aria-hidden: 1.2.4
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ react-remove-scroll: 2.6.3(@types/react@19.1.4)(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
+ '@radix-ui/react-popper@1.2.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-arrow': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/rect': 1.1.1
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
+ '@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/rect': 1.1.1
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
+ '@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/rect': 1.1.1
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
+ '@radix-ui/react-portal@1.1.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
+ '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
+ '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
optionalDependencies:
'@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
- '@radix-ui/react-focus-scope@1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
optionalDependencies:
'@types/react': 19.1.4
'@types/react-dom': 19.1.5(@types/react@19.1.4)
- '@radix-ui/react-id@1.1.1(@types/react@19.1.4)(react@19.1.0)':
+ '@radix-ui/react-primitive@2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0)
react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
optionalDependencies:
'@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
- '@radix-ui/react-label@2.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
- '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.1.4)(react@19.1.0)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
optionalDependencies:
'@types/react': 19.1.4
'@types/react-dom': 19.1.5(@types/react@19.1.4)
- '@radix-ui/react-popper@1.2.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
- '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-arrow': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/primitive': 1.1.2
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
'@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
- '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0)
- '@radix-ui/rect': 1.1.1
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
optionalDependencies:
'@types/react': 19.1.4
'@types/react-dom': 19.1.5(@types/react@19.1.4)
- '@radix-ui/react-portal@1.1.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
- '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
optionalDependencies:
'@types/react': 19.1.4
'@types/react-dom': 19.1.5(@types/react@19.1.4)
- '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-select@2.2.5(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
+ '@radix-ui/number': 1.1.1
+ '@radix-ui/primitive': 1.1.2
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0)
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ aria-hidden: 1.2.4
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
+ react-remove-scroll: 2.6.3(@types/react@19.1.4)(react@19.1.0)
optionalDependencies:
'@types/react': 19.1.4
'@types/react-dom': 19.1.5(@types/react@19.1.4)
- '@radix-ui/react-primitive@2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
- '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
optionalDependencies:
'@types/react': 19.1.4
'@types/react-dom': 19.1.5(@types/react@19.1.4)
- '@radix-ui/react-separator@1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-slider@1.3.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
- '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/number': 1.1.1
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
optionalDependencies:
@@ -4101,6 +5027,13 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.4
+ '@radix-ui/react-slot@1.2.3(@types/react@19.1.4)(react@19.1.0)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ react: 19.1.0
+ optionalDependencies:
+ '@types/react': 19.1.4
+
'@radix-ui/react-switch@1.2.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
'@radix-ui/primitive': 1.1.2
@@ -4116,6 +5049,22 @@ snapshots:
'@types/react': 19.1.4
'@types/react-dom': 19.1.5(@types/react@19.1.4)
+ '@radix-ui/react-tabs@1.1.12(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.2
+ '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
'@radix-ui/react-tooltip@1.2.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
'@radix-ui/primitive': 1.1.2
@@ -4206,6 +5155,15 @@ snapshots:
'@types/react': 19.1.4
'@types/react-dom': 19.1.5(@types/react@19.1.4)
+ '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ optionalDependencies:
+ '@types/react': 19.1.4
+ '@types/react-dom': 19.1.5(@types/react@19.1.4)
+
'@radix-ui/rect@1.1.1': {}
'@rtsao/scc@1.1.0': {}
@@ -4295,6 +5253,8 @@ snapshots:
tslib: 2.8.1
optional: true
+ '@types/country-list@2.1.4': {}
+
'@types/d3-array@3.2.1': {}
'@types/d3-color@3.1.3': {}
@@ -4329,6 +5289,12 @@ snapshots:
'@types/estree@1.0.7': {}
+ '@types/geojson-vt@3.2.5':
+ dependencies:
+ '@types/geojson': 7946.0.16
+
+ '@types/geojson@7946.0.16': {}
+
'@types/hast@2.3.10':
dependencies:
'@types/unist': 2.0.11
@@ -4345,27 +5311,24 @@ snapshots:
'@types/lodash@4.17.16': {}
- '@types/mdast@4.0.4':
+ '@types/mapbox-gl@3.4.1':
dependencies:
- '@types/unist': 3.0.3
+ '@types/geojson': 7946.0.16
- '@types/ms@2.1.0': {}
+ '@types/mapbox__point-geometry@0.1.4': {}
- '@types/node-fetch@2.6.12':
+ '@types/mdast@4.0.4':
dependencies:
- '@types/node': 22.15.18
- form-data: 4.0.2
- optional: true
+ '@types/unist': 3.0.3
- '@types/node@18.19.100':
- dependencies:
- undici-types: 5.26.5
- optional: true
+ '@types/ms@2.1.0': {}
'@types/node@22.15.18':
dependencies:
undici-types: 6.21.0
+ '@types/pbf@3.0.5': {}
+
'@types/prismjs@1.26.5': {}
'@types/react-dom@19.1.5(@types/react@19.1.4)':
@@ -4382,6 +5345,10 @@ snapshots:
'@types/retry@0.12.0': {}
+ '@types/supercluster@7.1.3':
+ dependencies:
+ '@types/geojson': 7946.0.16
+
'@types/unist@2.0.11': {}
'@types/unist@3.0.3': {}
@@ -4520,10 +5487,7 @@ snapshots:
'@unrs/resolver-binding-win32-x64-msvc@1.7.2':
optional: true
- abort-controller@3.0.0:
- dependencies:
- event-target-shim: 5.0.1
- optional: true
+ '@yarnpkg/lockfile@1.1.0': {}
acorn-jsx@5.3.2(acorn@8.14.1):
dependencies:
@@ -4531,11 +5495,6 @@ snapshots:
acorn@8.14.1: {}
- agentkeepalive@4.6.0:
- dependencies:
- humanize-ms: 1.2.1
- optional: true
-
ajv@6.12.6:
dependencies:
fast-deep-equal: 3.1.3
@@ -4626,8 +5585,9 @@ snapshots:
async-function@1.0.0: {}
- asynckit@0.4.0:
- optional: true
+ asynckit@0.4.0: {}
+
+ at-least-node@1.0.0: {}
autoprefixer@10.4.21(postcss@8.5.3):
dependencies:
@@ -4645,6 +5605,14 @@ snapshots:
axe-core@4.10.3: {}
+ axios@1.11.0:
+ dependencies:
+ follow-redirects: 1.15.11
+ form-data: 4.0.4
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+
axobject-query@4.1.0: {}
bail@2.0.2: {}
@@ -4721,16 +5689,38 @@ snapshots:
character-reference-invalid@2.0.1: {}
+ cheap-ruler@4.0.0: {}
+
chownr@3.0.0: {}
+ ci-info@3.9.0: {}
+
+ city-timezones@1.3.1:
+ dependencies:
+ lodash: 4.17.21
+
class-variance-authority@0.7.1:
dependencies:
clsx: 2.1.1
+ classnames@2.5.1: {}
+
client-only@0.0.1: {}
clsx@2.1.1: {}
+ cmdk@1.1.1(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-dialog': 1.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
@@ -4752,7 +5742,6 @@ snapshots:
combined-stream@1.0.8:
dependencies:
delayed-stream: 1.0.0
- optional: true
comma-separated-tokens@1.0.8: {}
@@ -4766,12 +5755,16 @@ snapshots:
dependencies:
simple-wcswidth: 1.0.1
+ country-list@2.4.1: {}
+
cross-spawn@7.0.6:
dependencies:
path-key: 3.1.1
shebang-command: 2.0.0
which: 2.0.2
+ csscolorparser@1.0.3: {}
+
cssesc@3.0.0: {}
csstype@3.1.3: {}
@@ -4834,6 +5827,8 @@ snapshots:
es-errors: 1.3.0
is-data-view: 1.0.2
+ date-fns-jalali@4.1.0-0: {}
+
date-fns@4.1.0: {}
debug@3.2.7:
@@ -4866,8 +5861,7 @@ snapshots:
has-property-descriptors: 1.0.2
object-keys: 1.1.1
- delayed-stream@1.0.0:
- optional: true
+ delayed-stream@1.0.0: {}
dequal@2.0.3: {}
@@ -4879,6 +5873,8 @@ snapshots:
dependencies:
dequal: 2.0.3
+ diacritics@1.3.0: {}
+
doctrine@2.1.0:
dependencies:
esutils: 2.0.3
@@ -4896,6 +5892,8 @@ snapshots:
es-errors: 1.3.0
gopd: 1.2.0
+ earcut@3.0.2: {}
+
electron-to-chromium@1.5.155: {}
emoji-regex@9.2.2: {}
@@ -5249,9 +6247,6 @@ snapshots:
esutils@2.0.3: {}
- event-target-shim@5.0.1:
- optional: true
-
eventemitter3@4.0.7: {}
extend@3.0.2: {}
@@ -5305,6 +6300,10 @@ snapshots:
locate-path: 6.0.0
path-exists: 4.0.0
+ find-yarn-workspace-root@2.0.0:
+ dependencies:
+ micromatch: 4.0.8
+
flat-cache@4.0.1:
dependencies:
flatted: 3.3.3
@@ -5312,29 +6311,22 @@ snapshots:
flatted@3.3.3: {}
+ follow-redirects@1.15.11: {}
+
for-each@0.3.5:
dependencies:
is-callable: 1.2.7
- form-data-encoder@1.7.2:
- optional: true
-
- form-data@4.0.2:
+ form-data@4.0.4:
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
es-set-tostringtag: 2.1.0
+ hasown: 2.0.2
mime-types: 2.1.35
- optional: true
format@0.2.2: {}
- formdata-node@4.4.1:
- dependencies:
- node-domexception: 1.0.0
- web-streams-polyfill: 4.0.0-beta.3
- optional: true
-
fraction.js@4.3.7: {}
framer-motion@12.12.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
@@ -5346,6 +6338,15 @@ snapshots:
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
+ fs-extra@9.1.0:
+ dependencies:
+ at-least-node: 1.0.0
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs.realpath@1.0.0: {}
+
fsevents@2.3.2:
optional: true
@@ -5366,6 +6367,8 @@ snapshots:
dependencies:
loader-utils: 3.3.1
+ geojson-vt@4.0.2: {}
+
get-intrinsic@1.3.0:
dependencies:
call-bind-apply-helpers: 1.0.2
@@ -5396,6 +6399,8 @@ snapshots:
dependencies:
resolve-pkg-maps: 1.0.0
+ gl-matrix@3.4.3: {}
+
glob-parent@5.1.2:
dependencies:
is-glob: 4.0.3
@@ -5404,6 +6409,15 @@ snapshots:
dependencies:
is-glob: 4.0.3
+ glob@7.2.3:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
globals@14.0.0: {}
globals@15.15.0: {}
@@ -5419,6 +6433,8 @@ snapshots:
graphemer@1.4.0: {}
+ grid-index@1.1.0: {}
+
has-bigints@1.1.0: {}
has-flag@4.0.0: {}
@@ -5537,10 +6553,9 @@ snapshots:
html-url-attributes@3.0.1: {}
- humanize-ms@1.2.1:
+ i18n-iso-countries@7.14.0:
dependencies:
- ms: 2.1.3
- optional: true
+ diacritics: 1.3.0
icss-utils@5.1.0(postcss@8.5.3):
dependencies:
@@ -5557,6 +6572,13 @@ snapshots:
imurmurhash@0.1.4: {}
+ inflight@1.0.6:
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ inherits@2.0.4: {}
+
inline-style-parser@0.2.4: {}
internal-slot@1.1.0:
@@ -5632,6 +6654,8 @@ snapshots:
is-decimal@2.0.1: {}
+ is-docker@2.2.1: {}
+
is-extglob@2.1.1: {}
is-finalizationregistry@1.1.1:
@@ -5703,6 +6727,10 @@ snapshots:
call-bound: 1.0.4
get-intrinsic: 1.3.0
+ is-wsl@2.2.0:
+ dependencies:
+ is-docker: 2.2.1
+
isarray@2.0.5: {}
isexe@2.0.0: {}
@@ -5734,10 +6762,26 @@ snapshots:
json-stable-stringify-without-jsonify@1.0.1: {}
+ json-stable-stringify@1.3.0:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ isarray: 2.0.5
+ jsonify: 0.0.1
+ object-keys: 1.1.1
+
json5@1.0.2:
dependencies:
minimist: 1.2.8
+ jsonfile@6.1.0:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ jsonify@0.0.1: {}
+
jsx-ast-utils@3.3.5:
dependencies:
array-includes: 3.1.8
@@ -5749,15 +6793,21 @@ snapshots:
dependencies:
commander: 8.3.0
+ kdbush@4.0.2: {}
+
keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
+ klaw-sync@6.0.0:
+ dependencies:
+ graceful-fs: 4.2.11
+
langgraph-nextjs-api-passthrough@0.0.4(next@15.3.2(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)):
dependencies:
next: 15.3.2(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- langsmith@0.3.29(openai@4.100.0(ws@8.18.2)(zod@3.24.4)):
+ langsmith@0.3.50(openai@5.11.0(ws@8.18.2)(zod@3.24.4)):
dependencies:
'@types/uuid': 10.0.0
chalk: 4.1.2
@@ -5767,7 +6817,7 @@ snapshots:
semver: 7.7.2
uuid: 10.0.0
optionalDependencies:
- openai: 4.100.0(ws@8.18.2)(zod@3.24.4)
+ openai: 5.11.0(ws@8.18.2)(zod@3.24.4)
language-subtag-registry@0.3.23: {}
@@ -5833,8 +6883,16 @@ snapshots:
lodash.camelcase@4.3.0: {}
+ lodash.debounce@4.0.8: {}
+
+ lodash.memoize@4.1.2: {}
+
lodash.merge@4.6.2: {}
+ lodash.reduce@4.6.0: {}
+
+ lodash.startswith@4.2.1: {}
+
lodash@4.17.21: {}
longest-streak@3.1.0: {}
@@ -5856,8 +6914,44 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
+ mapbox-gl@3.14.0:
+ dependencies:
+ '@mapbox/jsonlint-lines-primitives': 2.0.2
+ '@mapbox/mapbox-gl-supported': 3.0.0
+ '@mapbox/point-geometry': 1.1.0
+ '@mapbox/tiny-sdf': 2.0.7
+ '@mapbox/unitbezier': 0.0.1
+ '@mapbox/vector-tile': 2.0.4
+ '@mapbox/whoots-js': 3.1.0
+ '@types/geojson': 7946.0.16
+ '@types/geojson-vt': 3.2.5
+ '@types/mapbox__point-geometry': 0.1.4
+ '@types/pbf': 3.0.5
+ '@types/supercluster': 7.1.3
+ cheap-ruler: 4.0.0
+ csscolorparser: 1.0.3
+ earcut: 3.0.2
+ geojson-vt: 4.0.2
+ gl-matrix: 3.4.3
+ grid-index: 1.1.0
+ kdbush: 4.0.2
+ martinez-polygon-clipping: 0.7.4
+ murmurhash-js: 1.0.0
+ pbf: 4.0.1
+ potpack: 2.1.0
+ quickselect: 3.0.0
+ serialize-to-js: 3.1.2
+ supercluster: 8.0.1
+ tinyqueue: 3.0.0
+
markdown-table@3.0.4: {}
+ martinez-polygon-clipping@0.7.4:
+ dependencies:
+ robust-predicates: 2.0.4
+ splaytree: 0.1.4
+ tinyqueue: 1.2.3
+
math-intrinsics@1.1.0: {}
mdast-util-find-and-replace@3.0.2:
@@ -6233,13 +7327,11 @@ snapshots:
braces: 3.0.3
picomatch: 2.3.1
- mime-db@1.52.0:
- optional: true
+ mime-db@1.52.0: {}
mime-types@2.1.35:
dependencies:
mime-db: 1.52.0
- optional: true
minimatch@3.1.2:
dependencies:
@@ -6269,6 +7361,8 @@ snapshots:
ms@2.1.3: {}
+ murmurhash-js@1.0.0: {}
+
mustache@4.2.0: {}
nanoid@3.3.11: {}
@@ -6308,14 +7402,6 @@ snapshots:
- '@babel/core'
- babel-plugin-macros
- node-domexception@1.0.0:
- optional: true
-
- node-fetch@2.7.0:
- dependencies:
- whatwg-url: 5.0.0
- optional: true
-
node-releases@2.0.19: {}
normalize-range@0.1.2: {}
@@ -6369,22 +7455,26 @@ snapshots:
define-properties: 1.2.1
es-object-atoms: 1.1.1
- openai@4.100.0(ws@8.18.2)(zod@3.24.4):
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ open@7.4.2:
dependencies:
- '@types/node': 18.19.100
- '@types/node-fetch': 2.6.12
- abort-controller: 3.0.0
- agentkeepalive: 4.6.0
- form-data-encoder: 1.7.2
- formdata-node: 4.4.1
- node-fetch: 2.7.0
+ is-docker: 2.2.1
+ is-wsl: 2.2.0
+
+ openai@5.11.0(ws@8.18.2)(zod@3.24.4):
optionalDependencies:
ws: 8.18.2
zod: 3.24.4
- transitivePeerDependencies:
- - encoding
optional: true
+ openai@5.11.0(ws@8.18.2)(zod@3.25.76):
+ optionalDependencies:
+ ws: 8.18.2
+ zod: 3.25.76
+
optionator@0.9.4:
dependencies:
deep-is: 0.1.4
@@ -6394,6 +7484,8 @@ snapshots:
type-check: 0.4.0
word-wrap: 1.2.5
+ os-tmpdir@1.0.2: {}
+
own-keys@1.0.1:
dependencies:
get-intrinsic: 1.3.0
@@ -6451,12 +7543,36 @@ snapshots:
dependencies:
entities: 6.0.0
+ patch-package@8.0.0:
+ dependencies:
+ '@yarnpkg/lockfile': 1.1.0
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ cross-spawn: 7.0.6
+ find-yarn-workspace-root: 2.0.0
+ fs-extra: 9.1.0
+ json-stable-stringify: 1.3.0
+ klaw-sync: 6.0.0
+ minimist: 1.2.8
+ open: 7.4.2
+ rimraf: 2.7.1
+ semver: 7.7.2
+ slash: 2.0.0
+ tmp: 0.0.33
+ yaml: 2.8.1
+
path-exists@4.0.0: {}
+ path-is-absolute@1.0.1: {}
+
path-key@3.1.1: {}
path-parse@1.0.7: {}
+ pbf@4.0.1:
+ dependencies:
+ resolve-protobuf-schema: 2.1.0
+
picocolors@1.1.1: {}
picomatch@2.3.1: {}
@@ -6527,6 +7643,10 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
+ postinstall-postinstall@2.1.0: {}
+
+ potpack@2.1.0: {}
+
prelude-ls@1.2.1: {}
prettier-plugin-tailwindcss@0.6.11(prettier@3.5.3):
@@ -6557,10 +7677,29 @@ snapshots:
property-information@7.1.0: {}
+ protocol-buffers-schema@3.6.0: {}
+
+ proxy-from-env@1.1.0: {}
+
punycode@2.3.1: {}
queue-microtask@1.2.3: {}
+ quickselect@3.0.0: {}
+
+ razorpay@2.9.6:
+ dependencies:
+ axios: 1.11.0
+ transitivePeerDependencies:
+ - debug
+
+ react-day-picker@9.9.0(react@19.1.0):
+ dependencies:
+ '@date-fns/tz': 1.4.1
+ date-fns: 4.1.0
+ date-fns-jalali: 4.1.0-0
+ react: 19.1.0
+
react-dom@19.1.0(react@19.1.0):
dependencies:
react: 19.1.0
@@ -6588,6 +7727,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ react-phone-input-2@2.15.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
+ dependencies:
+ classnames: 2.5.1
+ lodash.debounce: 4.0.8
+ lodash.memoize: 4.1.2
+ lodash.reduce: 4.6.0
+ lodash.startswith: 4.2.1
+ prop-types: 15.8.1
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+
react-remove-scroll-bar@2.3.8(@types/react@19.1.4)(react@19.1.0):
dependencies:
react: 19.1.0
@@ -6744,6 +7894,10 @@ snapshots:
resolve-pkg-maps@1.0.0: {}
+ resolve-protobuf-schema@2.1.0:
+ dependencies:
+ protocol-buffers-schema: 3.6.0
+
resolve@1.22.10:
dependencies:
is-core-module: 2.16.1
@@ -6760,6 +7914,12 @@ snapshots:
reusify@1.1.0: {}
+ rimraf@2.7.1:
+ dependencies:
+ glob: 7.2.3
+
+ robust-predicates@2.0.4: {}
+
run-parallel@1.2.0:
dependencies:
queue-microtask: 1.2.3
@@ -6789,6 +7949,8 @@ snapshots:
semver@7.7.2: {}
+ serialize-to-js@3.1.2: {}
+
set-function-length@1.2.2:
dependencies:
define-data-property: 1.1.4
@@ -6880,6 +8042,8 @@ snapshots:
simple-wcswidth@1.0.1: {}
+ slash@2.0.0: {}
+
sonner@2.0.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies:
react: 19.1.0
@@ -6891,6 +8055,8 @@ snapshots:
space-separated-tokens@2.0.2: {}
+ splaytree@0.1.4: {}
+
stable-hash@0.0.5: {}
streamsearch@1.1.0: {}
@@ -6969,6 +8135,10 @@ snapshots:
client-only: 0.0.1
react: 19.1.0
+ supercluster@8.0.1:
+ dependencies:
+ kdbush: 4.0.2
+
supports-color@7.2.0:
dependencies:
has-flag: 4.0.0
@@ -7008,13 +8178,18 @@ snapshots:
fdir: 6.4.4(picomatch@4.0.2)
picomatch: 4.0.2
+ tinyqueue@1.2.3: {}
+
+ tinyqueue@3.0.0: {}
+
+ tmp@0.0.33:
+ dependencies:
+ os-tmpdir: 1.0.2
+
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
- tr46@0.0.3:
- optional: true
-
trim-lines@3.0.1: {}
trough@2.2.0: {}
@@ -7088,9 +8263,6 @@ snapshots:
has-symbols: 1.1.0
which-boxed-primitive: 1.1.1
- undici-types@5.26.5:
- optional: true
-
undici-types@6.21.0: {}
unified@11.0.5:
@@ -7136,6 +8308,8 @@ snapshots:
unist-util-is: 6.0.0
unist-util-visit-parents: 6.0.1
+ universalify@2.0.1: {}
+
unrs-resolver@1.7.2:
dependencies:
napi-postinstall: 0.2.4
@@ -7233,18 +8407,6 @@ snapshots:
web-namespaces@2.0.1: {}
- web-streams-polyfill@4.0.0-beta.3:
- optional: true
-
- webidl-conversions@3.0.1:
- optional: true
-
- whatwg-url@5.0.0:
- dependencies:
- tr46: 0.0.3
- webidl-conversions: 3.0.1
- optional: true
-
which-boxed-primitive@1.1.1:
dependencies:
is-bigint: 1.1.0
@@ -7292,6 +8454,8 @@ snapshots:
word-wrap@1.2.5: {}
+ wrappy@1.0.2: {}
+
ws@8.18.2:
optional: true
@@ -7299,12 +8463,21 @@ snapshots:
yallist@5.0.0: {}
+ yaml@2.8.1: {}
+
yocto-queue@0.1.0: {}
zod-to-json-schema@3.24.5(zod@3.24.4):
dependencies:
zod: 3.24.4
+ optional: true
+
+ zod-to-json-schema@3.24.5(zod@3.25.76):
+ dependencies:
+ zod: 3.25.76
zod@3.24.4: {}
+ zod@3.25.76: {}
+
zwitch@2.0.4: {}
diff --git a/public/ai-info.json b/public/ai-info.json
new file mode 100644
index 00000000..6248af32
--- /dev/null
+++ b/public/ai-info.json
@@ -0,0 +1,187 @@
+{
+ "application": {
+ "name": "Flyo",
+ "fullName": "Flyo - Your personal travel assistant",
+ "description": "Flyo is your personal travel assistant powered by AI that revolutionizes flight booking through conversational interfaces. Users can chat naturally with their personal assistant to search, compare, and book flights while receiving personalized recommendations.",
+ "version": "1.0.0",
+ "type": "Web Application",
+ "category": "Travel & Transportation",
+ "url": "https://flyo.ai",
+ "developer": "HavaHavai",
+ "launched": "2024"
+ },
+ "core_features": [
+ {
+ "name": "Personal Travel Assistant",
+ "description": "Your dedicated AI-powered personal assistant for all travel needs"
+ },
+ {
+ "name": "Conversational Flight Booking",
+ "description": "Chat naturally with your personal assistant to search and book flights without complex forms"
+ },
+ {
+ "name": "Intelligent Flight Search",
+ "description": "AI-powered search that understands context and personal preferences"
+ },
+ {
+ "name": "Personalized Recommendations",
+ "description": "Tailored flight suggestions based on your preferences and travel history"
+ },
+ {
+ "name": "Multi-language Support",
+ "description": "Available in English and Arabic - serving users in their preferred language"
+ },
+ {
+ "name": "Real-time Flight Information",
+ "description": "Live flight status, pricing, and availability updates"
+ },
+ {
+ "name": "Smart Travel Planning",
+ "description": "Comprehensive trip planning with personal itinerary management"
+ }
+ ],
+ "pages": [
+ {
+ "path": "/",
+ "name": "Home",
+ "description": "Main chat interface for interacting with your personal travel assistant",
+ "purpose": "Primary user interaction point for flight booking and personal travel planning",
+ "features": ["Chat interface", "Flight search", "Booking management", "Travel recommendations"]
+ },
+ {
+ "path": "/en",
+ "name": "English Version",
+ "description": "English localized version of the main application",
+ "purpose": "Serve English-speaking users with optimized content and interface"
+ },
+ {
+ "path": "/ar",
+ "name": "Arabic Version",
+ "description": "Arabic localized version with RTL support",
+ "purpose": "Serve Arabic-speaking users with culturally appropriate interface"
+ },
+ {
+ "path": "/login",
+ "name": "Authentication",
+ "description": "Google OAuth-based login system",
+ "purpose": "Secure user authentication and account access"
+ },
+ {
+ "path": "/profile-confirmation",
+ "name": "Profile Setup",
+ "description": "User profile confirmation and setup process",
+ "purpose": "Complete user onboarding and profile verification"
+ },
+ {
+ "path": "/onboarding-quiz",
+ "name": "Travel Preferences Quiz",
+ "description": "Interactive quiz to understand user travel preferences",
+ "purpose": "Personalize your personal travel assistant recommendations based on your preferences"
+ },
+ {
+ "path": "/personalize-travel",
+ "name": "Travel Personalization",
+ "description": "Advanced personalization settings for your personal travel assistant",
+ "purpose": "Fine-tune your personal assistant's behavior and recommendations"
+ }
+ ],
+ "technology_stack": {
+ "frontend": "Next.js 15.2.3 with React 19",
+ "styling": "Tailwind CSS 4.0",
+ "language": "TypeScript",
+ "ai_integration": "LangGraph with custom AI agents",
+ "authentication": "Google OAuth 2.0",
+ "analytics": "Google Analytics 4",
+ "deployment": "Vercel",
+ "architecture": "Server-side rendering with client-side interactivity"
+ },
+ "user_journey": [
+ {
+ "step": 1,
+ "action": "User visits Flyo",
+ "description": "Landing on the main chat interface"
+ },
+ {
+ "step": 2,
+ "action": "Authentication",
+ "description": "Sign in with Google for personalized experience"
+ },
+ {
+ "step": 3,
+ "action": "Onboarding",
+ "description": "Complete travel preferences quiz and personalization"
+ },
+ {
+ "step": 4,
+ "action": "Flight Search",
+ "description": "Chat with AI to express travel needs and search flights"
+ },
+ {
+ "step": 5,
+ "action": "Flight Selection",
+ "description": "Review AI recommendations and select preferred flights"
+ },
+ {
+ "step": 6,
+ "action": "Booking Process",
+ "description": "Complete passenger details and payment"
+ },
+ {
+ "step": 7,
+ "action": "Trip Management",
+ "description": "Manage bookings and receive travel updates"
+ }
+ ],
+ "ai_capabilities": [
+ "Natural language understanding for travel queries",
+ "Context-aware flight search and filtering",
+ "Personalized recommendation engine",
+ "Multi-turn conversation handling",
+ "Travel preference learning and adaptation",
+ "Real-time data integration",
+ "Multi-language processing"
+ ],
+ "target_audience": [
+ "Frequent business travelers",
+ "Leisure travelers seeking convenience",
+ "Tech-savvy users who prefer conversational interfaces",
+ "International travelers needing multi-language support",
+ "Users who value personalized travel recommendations"
+ ],
+ "competitive_advantages": [
+ "Conversational AI interface eliminates complex booking forms",
+ "Personalized recommendations improve over time",
+ "Multi-language support for global accessibility",
+ "Real-time integration with flight data",
+ "Seamless mobile and desktop experience"
+ ],
+ "seo_keywords": [
+ "personal travel assistant",
+ "AI travel assistant",
+ "conversational flight booking",
+ "intelligent travel planning",
+ "AI flight search",
+ "personalized travel recommendations",
+ "chat-based booking",
+ "smart travel assistant",
+ "AI-powered travel app",
+ "personal travel planner"
+ ],
+ "contact": {
+ "website": "https://flyo.ai",
+ "support": "https://flyo.ai/support",
+ "company": "HavaHavai"
+ },
+ "last_updated": "2024-12-09",
+ "ai_agent_instructions": {
+ "purpose": "This file provides comprehensive information about Flyo for AI agents and LLMs to understand the application's functionality, features, and user experience.",
+ "usage": "AI agents can reference this information to provide accurate responses about Flyo's capabilities, help users understand the platform, and assist with travel-related queries.",
+ "key_points": [
+ "Flyo is your personal travel assistant powered by conversational AI",
+ "The main interaction is through chat with your personal assistant, not traditional forms",
+ "Personalization is a core feature that improves with usage",
+ "Multi-language support (English & Arabic) makes it accessible to primary user base",
+ "The platform focuses on providing a personal, simplified flight booking experience"
+ ]
+ }
+}
diff --git a/public/airlines/0V.png b/public/airlines/0V.png
new file mode 100644
index 00000000..0abf6574
Binary files /dev/null and b/public/airlines/0V.png differ
diff --git a/public/airlines/1I.png b/public/airlines/1I.png
new file mode 100644
index 00000000..10289e97
Binary files /dev/null and b/public/airlines/1I.png differ
diff --git a/public/airlines/1L.png b/public/airlines/1L.png
new file mode 100644
index 00000000..5eafe1fa
Binary files /dev/null and b/public/airlines/1L.png differ
diff --git a/public/airlines/2A.png b/public/airlines/2A.png
new file mode 100644
index 00000000..2f6e709d
Binary files /dev/null and b/public/airlines/2A.png differ
diff --git a/public/airlines/2C(1).png b/public/airlines/2C(1).png
new file mode 100644
index 00000000..0e01dbe5
Binary files /dev/null and b/public/airlines/2C(1).png differ
diff --git a/public/airlines/2C.png b/public/airlines/2C.png
new file mode 100644
index 00000000..0e01dbe5
Binary files /dev/null and b/public/airlines/2C.png differ
diff --git a/public/airlines/2G.png b/public/airlines/2G.png
new file mode 100644
index 00000000..2f91c03a
Binary files /dev/null and b/public/airlines/2G.png differ
diff --git a/public/airlines/2H.png b/public/airlines/2H.png
new file mode 100644
index 00000000..45001068
Binary files /dev/null and b/public/airlines/2H.png differ
diff --git a/public/airlines/2I.png b/public/airlines/2I.png
new file mode 100644
index 00000000..bea2eadc
Binary files /dev/null and b/public/airlines/2I.png differ
diff --git a/public/airlines/2J.png b/public/airlines/2J.png
new file mode 100644
index 00000000..ce06aa5d
Binary files /dev/null and b/public/airlines/2J.png differ
diff --git a/public/airlines/2K.png b/public/airlines/2K.png
new file mode 100644
index 00000000..49c8911f
Binary files /dev/null and b/public/airlines/2K.png differ
diff --git a/public/airlines/2L.png b/public/airlines/2L.png
new file mode 100644
index 00000000..df2d3559
Binary files /dev/null and b/public/airlines/2L.png differ
diff --git a/public/airlines/2M.png b/public/airlines/2M.png
new file mode 100644
index 00000000..fcd679ae
Binary files /dev/null and b/public/airlines/2M.png differ
diff --git a/public/airlines/2N.png b/public/airlines/2N.png
new file mode 100644
index 00000000..67115451
Binary files /dev/null and b/public/airlines/2N.png differ
diff --git a/public/airlines/2P.png b/public/airlines/2P.png
new file mode 100644
index 00000000..10a8d793
Binary files /dev/null and b/public/airlines/2P.png differ
diff --git a/public/airlines/2W.png b/public/airlines/2W.png
new file mode 100644
index 00000000..04c26e6f
Binary files /dev/null and b/public/airlines/2W.png differ
diff --git a/public/airlines/2Z.png b/public/airlines/2Z.png
new file mode 100644
index 00000000..9cbce794
Binary files /dev/null and b/public/airlines/2Z.png differ
diff --git a/public/airlines/3H.png b/public/airlines/3H.png
new file mode 100644
index 00000000..61392f1d
Binary files /dev/null and b/public/airlines/3H.png differ
diff --git a/public/airlines/3K.png b/public/airlines/3K.png
new file mode 100644
index 00000000..d01e4938
Binary files /dev/null and b/public/airlines/3K.png differ
diff --git a/public/airlines/3L(1).png b/public/airlines/3L(1).png
new file mode 100644
index 00000000..5d8a50f7
Binary files /dev/null and b/public/airlines/3L(1).png differ
diff --git a/public/airlines/3L.png b/public/airlines/3L.png
new file mode 100644
index 00000000..5d8a50f7
Binary files /dev/null and b/public/airlines/3L.png differ
diff --git a/public/airlines/3M.png b/public/airlines/3M.png
new file mode 100644
index 00000000..57798caa
Binary files /dev/null and b/public/airlines/3M.png differ
diff --git a/public/airlines/3O.png b/public/airlines/3O.png
new file mode 100644
index 00000000..559dce38
Binary files /dev/null and b/public/airlines/3O.png differ
diff --git a/public/airlines/3S.png b/public/airlines/3S.png
new file mode 100644
index 00000000..4b785d28
Binary files /dev/null and b/public/airlines/3S.png differ
diff --git a/public/airlines/3U.png b/public/airlines/3U.png
new file mode 100644
index 00000000..311ce53c
Binary files /dev/null and b/public/airlines/3U.png differ
diff --git a/public/airlines/3W.png b/public/airlines/3W.png
new file mode 100644
index 00000000..1f8d3c19
Binary files /dev/null and b/public/airlines/3W.png differ
diff --git a/public/airlines/4B.png b/public/airlines/4B.png
new file mode 100644
index 00000000..58a80c87
Binary files /dev/null and b/public/airlines/4B.png differ
diff --git a/public/airlines/4C.png b/public/airlines/4C.png
new file mode 100644
index 00000000..46eecbdb
Binary files /dev/null and b/public/airlines/4C.png differ
diff --git a/public/airlines/4D.png b/public/airlines/4D.png
new file mode 100644
index 00000000..8828d00a
Binary files /dev/null and b/public/airlines/4D.png differ
diff --git a/public/airlines/4G.png b/public/airlines/4G.png
new file mode 100644
index 00000000..3fefadb9
Binary files /dev/null and b/public/airlines/4G.png differ
diff --git a/public/airlines/4J.png b/public/airlines/4J.png
new file mode 100644
index 00000000..f2df3e85
Binary files /dev/null and b/public/airlines/4J.png differ
diff --git a/public/airlines/4M.png b/public/airlines/4M.png
new file mode 100644
index 00000000..8f5999ed
Binary files /dev/null and b/public/airlines/4M.png differ
diff --git a/public/airlines/4N.png b/public/airlines/4N.png
new file mode 100644
index 00000000..cc3dfc57
Binary files /dev/null and b/public/airlines/4N.png differ
diff --git a/public/airlines/4O.png b/public/airlines/4O.png
new file mode 100644
index 00000000..fdf4d3ea
Binary files /dev/null and b/public/airlines/4O.png differ
diff --git a/public/airlines/4Q.png b/public/airlines/4Q.png
new file mode 100644
index 00000000..65fb7fc4
Binary files /dev/null and b/public/airlines/4Q.png differ
diff --git a/public/airlines/4T.png b/public/airlines/4T.png
new file mode 100644
index 00000000..b45ef76e
Binary files /dev/null and b/public/airlines/4T.png differ
diff --git a/public/airlines/4U.png b/public/airlines/4U.png
new file mode 100644
index 00000000..eb4af76a
Binary files /dev/null and b/public/airlines/4U.png differ
diff --git a/public/airlines/4Z.png b/public/airlines/4Z.png
new file mode 100644
index 00000000..b8d88b36
Binary files /dev/null and b/public/airlines/4Z.png differ
diff --git a/public/airlines/5B.png b/public/airlines/5B.png
new file mode 100644
index 00000000..ae9f3e3c
Binary files /dev/null and b/public/airlines/5B.png differ
diff --git a/public/airlines/5C.png b/public/airlines/5C.png
new file mode 100644
index 00000000..d910e4b8
Binary files /dev/null and b/public/airlines/5C.png differ
diff --git a/public/airlines/5D.png b/public/airlines/5D.png
new file mode 100644
index 00000000..c0d9c1e0
Binary files /dev/null and b/public/airlines/5D.png differ
diff --git a/public/airlines/5F(1).png b/public/airlines/5F(1).png
new file mode 100644
index 00000000..0616c461
Binary files /dev/null and b/public/airlines/5F(1).png differ
diff --git a/public/airlines/5F.png b/public/airlines/5F.png
new file mode 100644
index 00000000..0616c461
Binary files /dev/null and b/public/airlines/5F.png differ
diff --git a/public/airlines/5H.png b/public/airlines/5H.png
new file mode 100644
index 00000000..0e1e5fc0
Binary files /dev/null and b/public/airlines/5H.png differ
diff --git a/public/airlines/5J.png b/public/airlines/5J.png
new file mode 100644
index 00000000..efcc3377
Binary files /dev/null and b/public/airlines/5J.png differ
diff --git a/public/airlines/5N.png b/public/airlines/5N.png
new file mode 100644
index 00000000..ab2f8506
Binary files /dev/null and b/public/airlines/5N.png differ
diff --git a/public/airlines/5O.png b/public/airlines/5O.png
new file mode 100644
index 00000000..b5cfdf50
Binary files /dev/null and b/public/airlines/5O.png differ
diff --git a/public/airlines/5T.png b/public/airlines/5T.png
new file mode 100644
index 00000000..e6bbc10f
Binary files /dev/null and b/public/airlines/5T.png differ
diff --git a/public/airlines/5U.png b/public/airlines/5U.png
new file mode 100644
index 00000000..822f7093
Binary files /dev/null and b/public/airlines/5U.png differ
diff --git a/public/airlines/5W(1).png b/public/airlines/5W(1).png
new file mode 100644
index 00000000..0d79adac
Binary files /dev/null and b/public/airlines/5W(1).png differ
diff --git a/public/airlines/5W.png b/public/airlines/5W.png
new file mode 100644
index 00000000..0d79adac
Binary files /dev/null and b/public/airlines/5W.png differ
diff --git a/public/airlines/5Z.png b/public/airlines/5Z.png
new file mode 100644
index 00000000..b37eb68e
Binary files /dev/null and b/public/airlines/5Z.png differ
diff --git a/public/airlines/6E.png b/public/airlines/6E.png
new file mode 100644
index 00000000..8f457716
Binary files /dev/null and b/public/airlines/6E.png differ
diff --git a/public/airlines/6H(1).png b/public/airlines/6H(1).png
new file mode 100644
index 00000000..61272ba5
Binary files /dev/null and b/public/airlines/6H(1).png differ
diff --git a/public/airlines/6H.png b/public/airlines/6H.png
new file mode 100644
index 00000000..61272ba5
Binary files /dev/null and b/public/airlines/6H.png differ
diff --git a/public/airlines/6J.png b/public/airlines/6J.png
new file mode 100644
index 00000000..5ae28864
Binary files /dev/null and b/public/airlines/6J.png differ
diff --git a/public/airlines/6S.png b/public/airlines/6S.png
new file mode 100644
index 00000000..1dd9561d
Binary files /dev/null and b/public/airlines/6S.png differ
diff --git a/public/airlines/6Y.png b/public/airlines/6Y.png
new file mode 100644
index 00000000..870346ee
Binary files /dev/null and b/public/airlines/6Y.png differ
diff --git a/public/airlines/6Z.png b/public/airlines/6Z.png
new file mode 100644
index 00000000..205afd8e
Binary files /dev/null and b/public/airlines/6Z.png differ
diff --git a/public/airlines/7C.png b/public/airlines/7C.png
new file mode 100644
index 00000000..7cd76f67
Binary files /dev/null and b/public/airlines/7C.png differ
diff --git a/public/airlines/7E.png b/public/airlines/7E.png
new file mode 100644
index 00000000..2bfbb961
Binary files /dev/null and b/public/airlines/7E.png differ
diff --git a/public/airlines/7F.png b/public/airlines/7F.png
new file mode 100644
index 00000000..3535e3d6
Binary files /dev/null and b/public/airlines/7F.png differ
diff --git a/public/airlines/7G.png b/public/airlines/7G.png
new file mode 100644
index 00000000..2ef915e1
Binary files /dev/null and b/public/airlines/7G.png differ
diff --git a/public/airlines/7H.png b/public/airlines/7H.png
new file mode 100644
index 00000000..223760a6
Binary files /dev/null and b/public/airlines/7H.png differ
diff --git a/public/airlines/7I(1).png b/public/airlines/7I(1).png
new file mode 100644
index 00000000..b8754cb7
Binary files /dev/null and b/public/airlines/7I(1).png differ
diff --git a/public/airlines/7I.png b/public/airlines/7I.png
new file mode 100644
index 00000000..b8754cb7
Binary files /dev/null and b/public/airlines/7I.png differ
diff --git a/public/airlines/7J.png b/public/airlines/7J.png
new file mode 100644
index 00000000..01c782b1
Binary files /dev/null and b/public/airlines/7J.png differ
diff --git a/public/airlines/7M.png b/public/airlines/7M.png
new file mode 100644
index 00000000..1d84b7d9
Binary files /dev/null and b/public/airlines/7M.png differ
diff --git a/public/airlines/7Q.png b/public/airlines/7Q.png
new file mode 100644
index 00000000..7ddb1a2a
Binary files /dev/null and b/public/airlines/7Q.png differ
diff --git a/public/airlines/7R.png b/public/airlines/7R.png
new file mode 100644
index 00000000..9999bf34
Binary files /dev/null and b/public/airlines/7R.png differ
diff --git a/public/airlines/7W.png b/public/airlines/7W.png
new file mode 100644
index 00000000..5f529de3
Binary files /dev/null and b/public/airlines/7W.png differ
diff --git a/public/airlines/8H.png b/public/airlines/8H.png
new file mode 100644
index 00000000..b3a3989b
Binary files /dev/null and b/public/airlines/8H.png differ
diff --git a/public/airlines/8J.png b/public/airlines/8J.png
new file mode 100644
index 00000000..2083a744
Binary files /dev/null and b/public/airlines/8J.png differ
diff --git a/public/airlines/8L(1).png b/public/airlines/8L(1).png
new file mode 100644
index 00000000..413e1e80
Binary files /dev/null and b/public/airlines/8L(1).png differ
diff --git a/public/airlines/8L.png b/public/airlines/8L.png
new file mode 100644
index 00000000..413e1e80
Binary files /dev/null and b/public/airlines/8L.png differ
diff --git a/public/airlines/8M.png b/public/airlines/8M.png
new file mode 100644
index 00000000..c7bb4d75
Binary files /dev/null and b/public/airlines/8M.png differ
diff --git a/public/airlines/8P.png b/public/airlines/8P.png
new file mode 100644
index 00000000..0cf7a245
Binary files /dev/null and b/public/airlines/8P.png differ
diff --git a/public/airlines/8Q.png b/public/airlines/8Q.png
new file mode 100644
index 00000000..65bae868
Binary files /dev/null and b/public/airlines/8Q.png differ
diff --git a/public/airlines/8U.png b/public/airlines/8U.png
new file mode 100644
index 00000000..4f07790c
Binary files /dev/null and b/public/airlines/8U.png differ
diff --git a/public/airlines/9B(1).png b/public/airlines/9B(1).png
new file mode 100644
index 00000000..6808110b
Binary files /dev/null and b/public/airlines/9B(1).png differ
diff --git a/public/airlines/9B.png b/public/airlines/9B.png
new file mode 100644
index 00000000..6808110b
Binary files /dev/null and b/public/airlines/9B.png differ
diff --git a/public/airlines/9E.png b/public/airlines/9E.png
new file mode 100644
index 00000000..36a62500
Binary files /dev/null and b/public/airlines/9E.png differ
diff --git a/public/airlines/9F(1).png b/public/airlines/9F(1).png
new file mode 100644
index 00000000..72c686d2
Binary files /dev/null and b/public/airlines/9F(1).png differ
diff --git a/public/airlines/9F.png b/public/airlines/9F.png
new file mode 100644
index 00000000..72c686d2
Binary files /dev/null and b/public/airlines/9F.png differ
diff --git a/public/airlines/9I.png b/public/airlines/9I.png
new file mode 100644
index 00000000..66d67d20
Binary files /dev/null and b/public/airlines/9I.png differ
diff --git a/public/airlines/9K.png b/public/airlines/9K.png
new file mode 100644
index 00000000..16376928
Binary files /dev/null and b/public/airlines/9K.png differ
diff --git a/public/airlines/9M.png b/public/airlines/9M.png
new file mode 100644
index 00000000..cbd6d6d5
Binary files /dev/null and b/public/airlines/9M.png differ
diff --git a/public/airlines/9N.png b/public/airlines/9N.png
new file mode 100644
index 00000000..c856bf9a
Binary files /dev/null and b/public/airlines/9N.png differ
diff --git a/public/airlines/9P.png b/public/airlines/9P.png
new file mode 100644
index 00000000..654bf187
Binary files /dev/null and b/public/airlines/9P.png differ
diff --git a/public/airlines/9R.png b/public/airlines/9R.png
new file mode 100644
index 00000000..43b59872
Binary files /dev/null and b/public/airlines/9R.png differ
diff --git a/public/airlines/9U.png b/public/airlines/9U.png
new file mode 100644
index 00000000..c302754d
Binary files /dev/null and b/public/airlines/9U.png differ
diff --git a/public/airlines/9V.png b/public/airlines/9V.png
new file mode 100644
index 00000000..55a3db72
Binary files /dev/null and b/public/airlines/9V.png differ
diff --git a/public/airlines/9W.png b/public/airlines/9W.png
new file mode 100644
index 00000000..db15541e
Binary files /dev/null and b/public/airlines/9W.png differ
diff --git a/public/airlines/9X.png b/public/airlines/9X.png
new file mode 100644
index 00000000..76dcf061
Binary files /dev/null and b/public/airlines/9X.png differ
diff --git a/public/airlines/A3.png b/public/airlines/A3.png
new file mode 100644
index 00000000..009103cd
Binary files /dev/null and b/public/airlines/A3.png differ
diff --git a/public/airlines/A4.png b/public/airlines/A4.png
new file mode 100644
index 00000000..46f37184
Binary files /dev/null and b/public/airlines/A4.png differ
diff --git a/public/airlines/A5.png b/public/airlines/A5.png
new file mode 100644
index 00000000..fef2abf4
Binary files /dev/null and b/public/airlines/A5.png differ
diff --git a/public/airlines/A9.png b/public/airlines/A9.png
new file mode 100644
index 00000000..736922c0
Binary files /dev/null and b/public/airlines/A9.png differ
diff --git a/public/airlines/AA.png b/public/airlines/AA.png
new file mode 100644
index 00000000..443454a6
Binary files /dev/null and b/public/airlines/AA.png differ
diff --git a/public/airlines/AB(1).png b/public/airlines/AB(1).png
new file mode 100644
index 00000000..26cfefa0
Binary files /dev/null and b/public/airlines/AB(1).png differ
diff --git a/public/airlines/AB.png b/public/airlines/AB.png
new file mode 100644
index 00000000..26cfefa0
Binary files /dev/null and b/public/airlines/AB.png differ
diff --git a/public/airlines/AC.png b/public/airlines/AC.png
new file mode 100644
index 00000000..a920b3b5
Binary files /dev/null and b/public/airlines/AC.png differ
diff --git a/public/airlines/AD.png b/public/airlines/AD.png
new file mode 100644
index 00000000..b22588d8
Binary files /dev/null and b/public/airlines/AD.png differ
diff --git a/public/airlines/AE.png b/public/airlines/AE.png
new file mode 100644
index 00000000..ac02885b
Binary files /dev/null and b/public/airlines/AE.png differ
diff --git a/public/airlines/AF.png b/public/airlines/AF.png
new file mode 100644
index 00000000..958ce195
Binary files /dev/null and b/public/airlines/AF.png differ
diff --git a/public/airlines/AH.png b/public/airlines/AH.png
new file mode 100644
index 00000000..24e03e80
Binary files /dev/null and b/public/airlines/AH.png differ
diff --git a/public/airlines/AI.png b/public/airlines/AI.png
new file mode 100644
index 00000000..cbb3a21a
Binary files /dev/null and b/public/airlines/AI.png differ
diff --git a/public/airlines/AJ(1).png b/public/airlines/AJ(1).png
new file mode 100644
index 00000000..c7b2d3c8
Binary files /dev/null and b/public/airlines/AJ(1).png differ
diff --git a/public/airlines/AJ.png b/public/airlines/AJ.png
new file mode 100644
index 00000000..c7b2d3c8
Binary files /dev/null and b/public/airlines/AJ.png differ
diff --git a/public/airlines/AK.png b/public/airlines/AK.png
new file mode 100644
index 00000000..b262172c
Binary files /dev/null and b/public/airlines/AK.png differ
diff --git a/public/airlines/AL.png b/public/airlines/AL.png
new file mode 100644
index 00000000..b31dd89a
Binary files /dev/null and b/public/airlines/AL.png differ
diff --git a/public/airlines/AM.png b/public/airlines/AM.png
new file mode 100644
index 00000000..bcf4c0b1
Binary files /dev/null and b/public/airlines/AM.png differ
diff --git a/public/airlines/AQ.png b/public/airlines/AQ.png
new file mode 100644
index 00000000..4e13578d
Binary files /dev/null and b/public/airlines/AQ.png differ
diff --git a/public/airlines/AR.png b/public/airlines/AR.png
new file mode 100644
index 00000000..e110c7f3
Binary files /dev/null and b/public/airlines/AR.png differ
diff --git a/public/airlines/AS.png b/public/airlines/AS.png
new file mode 100644
index 00000000..ecafe41f
Binary files /dev/null and b/public/airlines/AS.png differ
diff --git a/public/airlines/AT.png b/public/airlines/AT.png
new file mode 100644
index 00000000..fb1b5fd1
Binary files /dev/null and b/public/airlines/AT.png differ
diff --git a/public/airlines/AU.png b/public/airlines/AU.png
new file mode 100644
index 00000000..4fef9ac5
Binary files /dev/null and b/public/airlines/AU.png differ
diff --git a/public/airlines/AV.png b/public/airlines/AV.png
new file mode 100644
index 00000000..0c322749
Binary files /dev/null and b/public/airlines/AV.png differ
diff --git a/public/airlines/AW.png b/public/airlines/AW.png
new file mode 100644
index 00000000..443a127e
Binary files /dev/null and b/public/airlines/AW.png differ
diff --git a/public/airlines/AX.png b/public/airlines/AX.png
new file mode 100644
index 00000000..aed08b42
Binary files /dev/null and b/public/airlines/AX.png differ
diff --git a/public/airlines/AY.png b/public/airlines/AY.png
new file mode 100644
index 00000000..57419ec2
Binary files /dev/null and b/public/airlines/AY.png differ
diff --git a/public/airlines/AZ.png b/public/airlines/AZ.png
new file mode 100644
index 00000000..fd4bf8eb
Binary files /dev/null and b/public/airlines/AZ.png differ
diff --git a/public/airlines/B2.png b/public/airlines/B2.png
new file mode 100644
index 00000000..c4822ab7
Binary files /dev/null and b/public/airlines/B2.png differ
diff --git a/public/airlines/B3.png b/public/airlines/B3.png
new file mode 100644
index 00000000..b7a51007
Binary files /dev/null and b/public/airlines/B3.png differ
diff --git a/public/airlines/B5.png b/public/airlines/B5.png
new file mode 100644
index 00000000..da1545ba
Binary files /dev/null and b/public/airlines/B5.png differ
diff --git a/public/airlines/B6.png b/public/airlines/B6.png
new file mode 100644
index 00000000..c63d2590
Binary files /dev/null and b/public/airlines/B6.png differ
diff --git a/public/airlines/B7.png b/public/airlines/B7.png
new file mode 100644
index 00000000..040573e0
Binary files /dev/null and b/public/airlines/B7.png differ
diff --git a/public/airlines/B8.png b/public/airlines/B8.png
new file mode 100644
index 00000000..c4cb9559
Binary files /dev/null and b/public/airlines/B8.png differ
diff --git a/public/airlines/BA.png b/public/airlines/BA.png
new file mode 100644
index 00000000..19511726
Binary files /dev/null and b/public/airlines/BA.png differ
diff --git a/public/airlines/BB.png b/public/airlines/BB.png
new file mode 100644
index 00000000..d965571f
Binary files /dev/null and b/public/airlines/BB.png differ
diff --git a/public/airlines/BC.png b/public/airlines/BC.png
new file mode 100644
index 00000000..bb6a60fc
Binary files /dev/null and b/public/airlines/BC.png differ
diff --git a/public/airlines/BD(1).png b/public/airlines/BD(1).png
new file mode 100644
index 00000000..39e00476
Binary files /dev/null and b/public/airlines/BD(1).png differ
diff --git a/public/airlines/BD.png b/public/airlines/BD.png
new file mode 100644
index 00000000..39e00476
Binary files /dev/null and b/public/airlines/BD.png differ
diff --git a/public/airlines/BE.png b/public/airlines/BE.png
new file mode 100644
index 00000000..ee4f3af6
Binary files /dev/null and b/public/airlines/BE.png differ
diff --git a/public/airlines/BF.png b/public/airlines/BF.png
new file mode 100644
index 00000000..42ecf6ad
Binary files /dev/null and b/public/airlines/BF.png differ
diff --git a/public/airlines/BG.png b/public/airlines/BG.png
new file mode 100644
index 00000000..46c4c5b7
Binary files /dev/null and b/public/airlines/BG.png differ
diff --git a/public/airlines/BI.png b/public/airlines/BI.png
new file mode 100644
index 00000000..97af1d45
Binary files /dev/null and b/public/airlines/BI.png differ
diff --git a/public/airlines/BJ.png b/public/airlines/BJ.png
new file mode 100644
index 00000000..da1b2c76
Binary files /dev/null and b/public/airlines/BJ.png differ
diff --git a/public/airlines/BK.png b/public/airlines/BK.png
new file mode 100644
index 00000000..f7aa54a0
Binary files /dev/null and b/public/airlines/BK.png differ
diff --git a/public/airlines/BL.png b/public/airlines/BL.png
new file mode 100644
index 00000000..d1f72fb4
Binary files /dev/null and b/public/airlines/BL.png differ
diff --git a/public/airlines/BM.png b/public/airlines/BM.png
new file mode 100644
index 00000000..ab516df0
Binary files /dev/null and b/public/airlines/BM.png differ
diff --git a/public/airlines/BP.png b/public/airlines/BP.png
new file mode 100644
index 00000000..8cc0e143
Binary files /dev/null and b/public/airlines/BP.png differ
diff --git a/public/airlines/BR.png b/public/airlines/BR.png
new file mode 100644
index 00000000..ecfb7c44
Binary files /dev/null and b/public/airlines/BR.png differ
diff --git a/public/airlines/BS(1).png b/public/airlines/BS(1).png
new file mode 100644
index 00000000..19511726
Binary files /dev/null and b/public/airlines/BS(1).png differ
diff --git a/public/airlines/BS.png b/public/airlines/BS.png
new file mode 100644
index 00000000..19511726
Binary files /dev/null and b/public/airlines/BS.png differ
diff --git a/public/airlines/BT.png b/public/airlines/BT.png
new file mode 100644
index 00000000..b774bbc7
Binary files /dev/null and b/public/airlines/BT.png differ
diff --git a/public/airlines/BU.png b/public/airlines/BU.png
new file mode 100644
index 00000000..42ecd8d8
Binary files /dev/null and b/public/airlines/BU.png differ
diff --git a/public/airlines/BV.png b/public/airlines/BV.png
new file mode 100644
index 00000000..dd6ea3b4
Binary files /dev/null and b/public/airlines/BV.png differ
diff --git a/public/airlines/BW.png b/public/airlines/BW.png
new file mode 100644
index 00000000..9957e07d
Binary files /dev/null and b/public/airlines/BW.png differ
diff --git a/public/airlines/BX.png b/public/airlines/BX.png
new file mode 100644
index 00000000..3f82b11d
Binary files /dev/null and b/public/airlines/BX.png differ
diff --git a/public/airlines/BY.png b/public/airlines/BY.png
new file mode 100644
index 00000000..df560809
Binary files /dev/null and b/public/airlines/BY.png differ
diff --git a/public/airlines/BZ.png b/public/airlines/BZ.png
new file mode 100644
index 00000000..ca16350a
Binary files /dev/null and b/public/airlines/BZ.png differ
diff --git a/public/airlines/C2.png b/public/airlines/C2.png
new file mode 100644
index 00000000..45121726
Binary files /dev/null and b/public/airlines/C2.png differ
diff --git a/public/airlines/C3.png b/public/airlines/C3.png
new file mode 100644
index 00000000..0b7ce248
Binary files /dev/null and b/public/airlines/C3.png differ
diff --git a/public/airlines/C5.png b/public/airlines/C5.png
new file mode 100644
index 00000000..bb857b99
Binary files /dev/null and b/public/airlines/C5.png differ
diff --git a/public/airlines/CA.png b/public/airlines/CA.png
new file mode 100644
index 00000000..5e0ecb20
Binary files /dev/null and b/public/airlines/CA.png differ
diff --git a/public/airlines/CC(1).png b/public/airlines/CC(1).png
new file mode 100644
index 00000000..2953a4c4
Binary files /dev/null and b/public/airlines/CC(1).png differ
diff --git a/public/airlines/CC.png b/public/airlines/CC.png
new file mode 100644
index 00000000..2953a4c4
Binary files /dev/null and b/public/airlines/CC.png differ
diff --git a/public/airlines/CD.png b/public/airlines/CD.png
new file mode 100644
index 00000000..05189860
Binary files /dev/null and b/public/airlines/CD.png differ
diff --git a/public/airlines/CE.png b/public/airlines/CE.png
new file mode 100644
index 00000000..fe2ca983
Binary files /dev/null and b/public/airlines/CE.png differ
diff --git a/public/airlines/CF.png b/public/airlines/CF.png
new file mode 100644
index 00000000..b4588e0a
Binary files /dev/null and b/public/airlines/CF.png differ
diff --git a/public/airlines/CG.png b/public/airlines/CG.png
new file mode 100644
index 00000000..ab56b5c7
Binary files /dev/null and b/public/airlines/CG.png differ
diff --git a/public/airlines/CI.png b/public/airlines/CI.png
new file mode 100644
index 00000000..b8ade0b8
Binary files /dev/null and b/public/airlines/CI.png differ
diff --git a/public/airlines/CJ.png b/public/airlines/CJ.png
new file mode 100644
index 00000000..2e76d8b8
Binary files /dev/null and b/public/airlines/CJ.png differ
diff --git a/public/airlines/CL.png b/public/airlines/CL.png
new file mode 100644
index 00000000..9db14a45
Binary files /dev/null and b/public/airlines/CL.png differ
diff --git a/public/airlines/CM.png b/public/airlines/CM.png
new file mode 100644
index 00000000..4c3ead51
Binary files /dev/null and b/public/airlines/CM.png differ
diff --git a/public/airlines/CN.png b/public/airlines/CN.png
new file mode 100644
index 00000000..a38ba919
Binary files /dev/null and b/public/airlines/CN.png differ
diff --git a/public/airlines/CO(1).png b/public/airlines/CO(1).png
new file mode 100644
index 00000000..69dc1746
Binary files /dev/null and b/public/airlines/CO(1).png differ
diff --git a/public/airlines/CO.png b/public/airlines/CO.png
new file mode 100644
index 00000000..69dc1746
Binary files /dev/null and b/public/airlines/CO.png differ
diff --git a/public/airlines/CQ.png b/public/airlines/CQ.png
new file mode 100644
index 00000000..ee23bdd9
Binary files /dev/null and b/public/airlines/CQ.png differ
diff --git a/public/airlines/CR.png b/public/airlines/CR.png
new file mode 100644
index 00000000..0d298145
Binary files /dev/null and b/public/airlines/CR.png differ
diff --git a/public/airlines/CT.png b/public/airlines/CT.png
new file mode 100644
index 00000000..47019381
Binary files /dev/null and b/public/airlines/CT.png differ
diff --git a/public/airlines/CU.png b/public/airlines/CU.png
new file mode 100644
index 00000000..0b61e723
Binary files /dev/null and b/public/airlines/CU.png differ
diff --git a/public/airlines/CV.png b/public/airlines/CV.png
new file mode 100644
index 00000000..b3220390
Binary files /dev/null and b/public/airlines/CV.png differ
diff --git a/public/airlines/CW.png b/public/airlines/CW.png
new file mode 100644
index 00000000..dc485f46
Binary files /dev/null and b/public/airlines/CW.png differ
diff --git a/public/airlines/CX.png b/public/airlines/CX.png
new file mode 100644
index 00000000..32e8113d
Binary files /dev/null and b/public/airlines/CX.png differ
diff --git a/public/airlines/CZ.png b/public/airlines/CZ.png
new file mode 100644
index 00000000..27f9b9ed
Binary files /dev/null and b/public/airlines/CZ.png differ
diff --git a/public/airlines/D7.png b/public/airlines/D7.png
new file mode 100644
index 00000000..98a4ea81
Binary files /dev/null and b/public/airlines/D7.png differ
diff --git a/public/airlines/D8.png b/public/airlines/D8.png
new file mode 100644
index 00000000..89046c71
Binary files /dev/null and b/public/airlines/D8.png differ
diff --git a/public/airlines/DB.png b/public/airlines/DB.png
new file mode 100644
index 00000000..31dbf5c6
Binary files /dev/null and b/public/airlines/DB.png differ
diff --git a/public/airlines/DC.png b/public/airlines/DC.png
new file mode 100644
index 00000000..54274270
Binary files /dev/null and b/public/airlines/DC.png differ
diff --git a/public/airlines/DD.png b/public/airlines/DD.png
new file mode 100644
index 00000000..efa6c276
Binary files /dev/null and b/public/airlines/DD.png differ
diff --git a/public/airlines/DE.png b/public/airlines/DE.png
new file mode 100644
index 00000000..37b6cfb6
Binary files /dev/null and b/public/airlines/DE.png differ
diff --git a/public/airlines/DG.png b/public/airlines/DG.png
new file mode 100644
index 00000000..8b1b6f03
Binary files /dev/null and b/public/airlines/DG.png differ
diff --git a/public/airlines/DK.png b/public/airlines/DK.png
new file mode 100644
index 00000000..6e5dd02f
Binary files /dev/null and b/public/airlines/DK.png differ
diff --git a/public/airlines/DL.png b/public/airlines/DL.png
new file mode 100644
index 00000000..a22bb894
Binary files /dev/null and b/public/airlines/DL.png differ
diff --git a/public/airlines/DO.png b/public/airlines/DO.png
new file mode 100644
index 00000000..43095975
Binary files /dev/null and b/public/airlines/DO.png differ
diff --git a/public/airlines/DQ.png b/public/airlines/DQ.png
new file mode 100644
index 00000000..920eb528
Binary files /dev/null and b/public/airlines/DQ.png differ
diff --git a/public/airlines/DS.png b/public/airlines/DS.png
new file mode 100644
index 00000000..6c8d1c74
Binary files /dev/null and b/public/airlines/DS.png differ
diff --git a/public/airlines/DT.png b/public/airlines/DT.png
new file mode 100644
index 00000000..af06fa48
Binary files /dev/null and b/public/airlines/DT.png differ
diff --git a/public/airlines/DV.png b/public/airlines/DV.png
new file mode 100644
index 00000000..0e1daa88
Binary files /dev/null and b/public/airlines/DV.png differ
diff --git a/public/airlines/DX.png b/public/airlines/DX.png
new file mode 100644
index 00000000..8876b71c
Binary files /dev/null and b/public/airlines/DX.png differ
diff --git a/public/airlines/DY.png b/public/airlines/DY.png
new file mode 100644
index 00000000..cc5e04a0
Binary files /dev/null and b/public/airlines/DY.png differ
diff --git a/public/airlines/E4.png b/public/airlines/E4.png
new file mode 100644
index 00000000..a159fb23
Binary files /dev/null and b/public/airlines/E4.png differ
diff --git a/public/airlines/E5.png b/public/airlines/E5.png
new file mode 100644
index 00000000..09cd80d6
Binary files /dev/null and b/public/airlines/E5.png differ
diff --git a/public/airlines/E8.png b/public/airlines/E8.png
new file mode 100644
index 00000000..cda4ab33
Binary files /dev/null and b/public/airlines/E8.png differ
diff --git a/public/airlines/E9.png b/public/airlines/E9.png
new file mode 100644
index 00000000..9747ee07
Binary files /dev/null and b/public/airlines/E9.png differ
diff --git a/public/airlines/EB.png b/public/airlines/EB.png
new file mode 100644
index 00000000..05005661
Binary files /dev/null and b/public/airlines/EB.png differ
diff --git a/public/airlines/EC.png b/public/airlines/EC.png
new file mode 100644
index 00000000..212dbee1
Binary files /dev/null and b/public/airlines/EC.png differ
diff --git a/public/airlines/EG.png b/public/airlines/EG.png
new file mode 100644
index 00000000..26339183
Binary files /dev/null and b/public/airlines/EG.png differ
diff --git a/public/airlines/EH.png b/public/airlines/EH.png
new file mode 100644
index 00000000..e4a53843
Binary files /dev/null and b/public/airlines/EH.png differ
diff --git a/public/airlines/EI.png b/public/airlines/EI.png
new file mode 100644
index 00000000..21ea4bcc
Binary files /dev/null and b/public/airlines/EI.png differ
diff --git a/public/airlines/EJ.png b/public/airlines/EJ.png
new file mode 100644
index 00000000..dabb408e
Binary files /dev/null and b/public/airlines/EJ.png differ
diff --git a/public/airlines/EK.png b/public/airlines/EK.png
new file mode 100644
index 00000000..258f59d4
Binary files /dev/null and b/public/airlines/EK.png differ
diff --git a/public/airlines/EL.png b/public/airlines/EL.png
new file mode 100644
index 00000000..f65b949d
Binary files /dev/null and b/public/airlines/EL.png differ
diff --git a/public/airlines/EN.png b/public/airlines/EN.png
new file mode 100644
index 00000000..2c18f1fa
Binary files /dev/null and b/public/airlines/EN.png differ
diff --git a/public/airlines/EO.png b/public/airlines/EO.png
new file mode 100644
index 00000000..89d441e7
Binary files /dev/null and b/public/airlines/EO.png differ
diff --git a/public/airlines/EQ.png b/public/airlines/EQ.png
new file mode 100644
index 00000000..7e345bc0
Binary files /dev/null and b/public/airlines/EQ.png differ
diff --git a/public/airlines/ER.png b/public/airlines/ER.png
new file mode 100644
index 00000000..b3c58593
Binary files /dev/null and b/public/airlines/ER.png differ
diff --git a/public/airlines/ET.png b/public/airlines/ET.png
new file mode 100644
index 00000000..91e6f71b
Binary files /dev/null and b/public/airlines/ET.png differ
diff --git a/public/airlines/EU.png b/public/airlines/EU.png
new file mode 100644
index 00000000..13c3fde1
Binary files /dev/null and b/public/airlines/EU.png differ
diff --git a/public/airlines/EV.png b/public/airlines/EV.png
new file mode 100644
index 00000000..f183e43e
Binary files /dev/null and b/public/airlines/EV.png differ
diff --git a/public/airlines/EW.png b/public/airlines/EW.png
new file mode 100644
index 00000000..75a78866
Binary files /dev/null and b/public/airlines/EW.png differ
diff --git a/public/airlines/EY.png b/public/airlines/EY.png
new file mode 100644
index 00000000..0c4f74c6
Binary files /dev/null and b/public/airlines/EY.png differ
diff --git a/public/airlines/EZ.png b/public/airlines/EZ.png
new file mode 100644
index 00000000..4bf2727e
Binary files /dev/null and b/public/airlines/EZ.png differ
diff --git a/public/airlines/F3.png b/public/airlines/F3.png
new file mode 100644
index 00000000..ec3df86c
Binary files /dev/null and b/public/airlines/F3.png differ
diff --git a/public/airlines/F7(1).png b/public/airlines/F7(1).png
new file mode 100644
index 00000000..91decadd
Binary files /dev/null and b/public/airlines/F7(1).png differ
diff --git a/public/airlines/F7.png b/public/airlines/F7.png
new file mode 100644
index 00000000..91decadd
Binary files /dev/null and b/public/airlines/F7.png differ
diff --git a/public/airlines/F8.png b/public/airlines/F8.png
new file mode 100644
index 00000000..8dcac984
Binary files /dev/null and b/public/airlines/F8.png differ
diff --git a/public/airlines/F9.png b/public/airlines/F9.png
new file mode 100644
index 00000000..ae0adbd3
Binary files /dev/null and b/public/airlines/F9.png differ
diff --git a/public/airlines/FA.png b/public/airlines/FA.png
new file mode 100644
index 00000000..d078123a
Binary files /dev/null and b/public/airlines/FA.png differ
diff --git a/public/airlines/FB.png b/public/airlines/FB.png
new file mode 100644
index 00000000..4ac13f55
Binary files /dev/null and b/public/airlines/FB.png differ
diff --git a/public/airlines/FC.png b/public/airlines/FC.png
new file mode 100644
index 00000000..578b27ca
Binary files /dev/null and b/public/airlines/FC.png differ
diff --git a/public/airlines/FD.png b/public/airlines/FD.png
new file mode 100644
index 00000000..9028b828
Binary files /dev/null and b/public/airlines/FD.png differ
diff --git a/public/airlines/FH.png b/public/airlines/FH.png
new file mode 100644
index 00000000..d1f98bc8
Binary files /dev/null and b/public/airlines/FH.png differ
diff --git a/public/airlines/FI.png b/public/airlines/FI.png
new file mode 100644
index 00000000..23cf948a
Binary files /dev/null and b/public/airlines/FI.png differ
diff --git a/public/airlines/FJ.png b/public/airlines/FJ.png
new file mode 100644
index 00000000..8bccdf91
Binary files /dev/null and b/public/airlines/FJ.png differ
diff --git a/public/airlines/FM.png b/public/airlines/FM.png
new file mode 100644
index 00000000..ebd624fa
Binary files /dev/null and b/public/airlines/FM.png differ
diff --git a/public/airlines/FN.png b/public/airlines/FN.png
new file mode 100644
index 00000000..0a35c3c3
Binary files /dev/null and b/public/airlines/FN.png differ
diff --git a/public/airlines/FR.png b/public/airlines/FR.png
new file mode 100644
index 00000000..ecff368b
Binary files /dev/null and b/public/airlines/FR.png differ
diff --git a/public/airlines/FT.png b/public/airlines/FT.png
new file mode 100644
index 00000000..d008fd84
Binary files /dev/null and b/public/airlines/FT.png differ
diff --git a/public/airlines/FV.png b/public/airlines/FV.png
new file mode 100644
index 00000000..d797d30f
Binary files /dev/null and b/public/airlines/FV.png differ
diff --git a/public/airlines/FW.png b/public/airlines/FW.png
new file mode 100644
index 00000000..1c64d1a7
Binary files /dev/null and b/public/airlines/FW.png differ
diff --git a/public/airlines/FY.png b/public/airlines/FY.png
new file mode 100644
index 00000000..c884b818
Binary files /dev/null and b/public/airlines/FY.png differ
diff --git a/public/airlines/FZ.png b/public/airlines/FZ.png
new file mode 100644
index 00000000..7749bb66
Binary files /dev/null and b/public/airlines/FZ.png differ
diff --git a/public/airlines/G2.png b/public/airlines/G2.png
new file mode 100644
index 00000000..b0b9041a
Binary files /dev/null and b/public/airlines/G2.png differ
diff --git a/public/airlines/G3.png b/public/airlines/G3.png
new file mode 100644
index 00000000..0411b7cf
Binary files /dev/null and b/public/airlines/G3.png differ
diff --git a/public/airlines/G4.png b/public/airlines/G4.png
new file mode 100644
index 00000000..04b7f013
Binary files /dev/null and b/public/airlines/G4.png differ
diff --git a/public/airlines/G5.png b/public/airlines/G5.png
new file mode 100644
index 00000000..e4fc1100
Binary files /dev/null and b/public/airlines/G5.png differ
diff --git a/public/airlines/G7.png b/public/airlines/G7.png
new file mode 100644
index 00000000..8c769a26
Binary files /dev/null and b/public/airlines/G7.png differ
diff --git a/public/airlines/G8.png b/public/airlines/G8.png
new file mode 100644
index 00000000..396ccccb
Binary files /dev/null and b/public/airlines/G8.png differ
diff --git a/public/airlines/G9.png b/public/airlines/G9.png
new file mode 100644
index 00000000..5d8a50f7
Binary files /dev/null and b/public/airlines/G9.png differ
diff --git a/public/airlines/GA.png b/public/airlines/GA.png
new file mode 100644
index 00000000..9ff3203c
Binary files /dev/null and b/public/airlines/GA.png differ
diff --git a/public/airlines/GE.png b/public/airlines/GE.png
new file mode 100644
index 00000000..2f3b09da
Binary files /dev/null and b/public/airlines/GE.png differ
diff --git a/public/airlines/GF.png b/public/airlines/GF.png
new file mode 100644
index 00000000..bc594c7a
Binary files /dev/null and b/public/airlines/GF.png differ
diff --git a/public/airlines/GH.png b/public/airlines/GH.png
new file mode 100644
index 00000000..693a18b7
Binary files /dev/null and b/public/airlines/GH.png differ
diff --git a/public/airlines/GJ.png b/public/airlines/GJ.png
new file mode 100644
index 00000000..9f3de796
Binary files /dev/null and b/public/airlines/GJ.png differ
diff --git a/public/airlines/GK.png b/public/airlines/GK.png
new file mode 100644
index 00000000..371b95c1
Binary files /dev/null and b/public/airlines/GK.png differ
diff --git a/public/airlines/GL.png b/public/airlines/GL.png
new file mode 100644
index 00000000..5b5b19bd
Binary files /dev/null and b/public/airlines/GL.png differ
diff --git a/public/airlines/GM(1).png b/public/airlines/GM(1).png
new file mode 100644
index 00000000..c7c1ccc2
Binary files /dev/null and b/public/airlines/GM(1).png differ
diff --git a/public/airlines/GM.png b/public/airlines/GM.png
new file mode 100644
index 00000000..c7c1ccc2
Binary files /dev/null and b/public/airlines/GM.png differ
diff --git a/public/airlines/GP(1).png b/public/airlines/GP(1).png
new file mode 100644
index 00000000..70017688
Binary files /dev/null and b/public/airlines/GP(1).png differ
diff --git a/public/airlines/GP.png b/public/airlines/GP.png
new file mode 100644
index 00000000..70017688
Binary files /dev/null and b/public/airlines/GP.png differ
diff --git a/public/airlines/GQ.png b/public/airlines/GQ.png
new file mode 100644
index 00000000..4f5efbeb
Binary files /dev/null and b/public/airlines/GQ.png differ
diff --git a/public/airlines/GR.png b/public/airlines/GR.png
new file mode 100644
index 00000000..9e6ec649
Binary files /dev/null and b/public/airlines/GR.png differ
diff --git a/public/airlines/GS(1).png b/public/airlines/GS(1).png
new file mode 100644
index 00000000..5d3720cd
Binary files /dev/null and b/public/airlines/GS(1).png differ
diff --git a/public/airlines/GS.png b/public/airlines/GS.png
new file mode 100644
index 00000000..5d3720cd
Binary files /dev/null and b/public/airlines/GS.png differ
diff --git a/public/airlines/GV.png b/public/airlines/GV.png
new file mode 100644
index 00000000..ed9e6140
Binary files /dev/null and b/public/airlines/GV.png differ
diff --git a/public/airlines/GZ.png b/public/airlines/GZ.png
new file mode 100644
index 00000000..df1a344b
Binary files /dev/null and b/public/airlines/GZ.png differ
diff --git a/public/airlines/H1(1).png b/public/airlines/H1(1).png
new file mode 100644
index 00000000..9f044f03
Binary files /dev/null and b/public/airlines/H1(1).png differ
diff --git a/public/airlines/H1.png b/public/airlines/H1.png
new file mode 100644
index 00000000..9f044f03
Binary files /dev/null and b/public/airlines/H1.png differ
diff --git a/public/airlines/H2.png b/public/airlines/H2.png
new file mode 100644
index 00000000..9ddc4a01
Binary files /dev/null and b/public/airlines/H2.png differ
diff --git a/public/airlines/H9.png b/public/airlines/H9.png
new file mode 100644
index 00000000..77aa2ffb
Binary files /dev/null and b/public/airlines/H9.png differ
diff --git a/public/airlines/HA.png b/public/airlines/HA.png
new file mode 100644
index 00000000..5cf9a1b6
Binary files /dev/null and b/public/airlines/HA.png differ
diff --git a/public/airlines/HC(1).png b/public/airlines/HC(1).png
new file mode 100644
index 00000000..93eaa1ba
Binary files /dev/null and b/public/airlines/HC(1).png differ
diff --git a/public/airlines/HC.png b/public/airlines/HC.png
new file mode 100644
index 00000000..93eaa1ba
Binary files /dev/null and b/public/airlines/HC.png differ
diff --git a/public/airlines/HD.png b/public/airlines/HD.png
new file mode 100644
index 00000000..0b75954c
Binary files /dev/null and b/public/airlines/HD.png differ
diff --git a/public/airlines/HE.png b/public/airlines/HE.png
new file mode 100644
index 00000000..6b14656e
Binary files /dev/null and b/public/airlines/HE.png differ
diff --git a/public/airlines/HF.png b/public/airlines/HF.png
new file mode 100644
index 00000000..16fe54b7
Binary files /dev/null and b/public/airlines/HF.png differ
diff --git a/public/airlines/HG.png b/public/airlines/HG.png
new file mode 100644
index 00000000..af82b2e6
Binary files /dev/null and b/public/airlines/HG.png differ
diff --git a/public/airlines/HI.png b/public/airlines/HI.png
new file mode 100644
index 00000000..6783a58d
Binary files /dev/null and b/public/airlines/HI.png differ
diff --git a/public/airlines/HM.png b/public/airlines/HM.png
new file mode 100644
index 00000000..73df5bb5
Binary files /dev/null and b/public/airlines/HM.png differ
diff --git a/public/airlines/HO.png b/public/airlines/HO.png
new file mode 100644
index 00000000..0237be30
Binary files /dev/null and b/public/airlines/HO.png differ
diff --git a/public/airlines/HP.png b/public/airlines/HP.png
new file mode 100644
index 00000000..2b4c9b7b
Binary files /dev/null and b/public/airlines/HP.png differ
diff --git a/public/airlines/HQ.png b/public/airlines/HQ.png
new file mode 100644
index 00000000..414479d2
Binary files /dev/null and b/public/airlines/HQ.png differ
diff --git a/public/airlines/HR.png b/public/airlines/HR.png
new file mode 100644
index 00000000..6cfa270c
Binary files /dev/null and b/public/airlines/HR.png differ
diff --git a/public/airlines/HS.png b/public/airlines/HS.png
new file mode 100644
index 00000000..8f5c7c02
Binary files /dev/null and b/public/airlines/HS.png differ
diff --git a/public/airlines/HU.png b/public/airlines/HU.png
new file mode 100644
index 00000000..98400bc7
Binary files /dev/null and b/public/airlines/HU.png differ
diff --git a/public/airlines/HV.png b/public/airlines/HV.png
new file mode 100644
index 00000000..21ca8608
Binary files /dev/null and b/public/airlines/HV.png differ
diff --git a/public/airlines/HX.png b/public/airlines/HX.png
new file mode 100644
index 00000000..1699a345
Binary files /dev/null and b/public/airlines/HX.png differ
diff --git a/public/airlines/HY.png b/public/airlines/HY.png
new file mode 100644
index 00000000..f610e60f
Binary files /dev/null and b/public/airlines/HY.png differ
diff --git a/public/airlines/HZ.png b/public/airlines/HZ.png
new file mode 100644
index 00000000..1abda8bd
Binary files /dev/null and b/public/airlines/HZ.png differ
diff --git a/public/airlines/I2.png b/public/airlines/I2.png
new file mode 100644
index 00000000..4c7f0752
Binary files /dev/null and b/public/airlines/I2.png differ
diff --git a/public/airlines/I5.png b/public/airlines/I5.png
new file mode 100644
index 00000000..b3ca2650
Binary files /dev/null and b/public/airlines/I5.png differ
diff --git a/public/airlines/I9.png b/public/airlines/I9.png
new file mode 100644
index 00000000..db37c6e7
Binary files /dev/null and b/public/airlines/I9.png differ
diff --git a/public/airlines/IA.png b/public/airlines/IA.png
new file mode 100644
index 00000000..231e5fa3
Binary files /dev/null and b/public/airlines/IA.png differ
diff --git a/public/airlines/IB.png b/public/airlines/IB.png
new file mode 100644
index 00000000..536d42d5
Binary files /dev/null and b/public/airlines/IB.png differ
diff --git a/public/airlines/ID.png b/public/airlines/ID.png
new file mode 100644
index 00000000..70428eaa
Binary files /dev/null and b/public/airlines/ID.png differ
diff --git a/public/airlines/IE.png b/public/airlines/IE.png
new file mode 100644
index 00000000..eb3504a8
Binary files /dev/null and b/public/airlines/IE.png differ
diff --git a/public/airlines/IF.png b/public/airlines/IF.png
new file mode 100644
index 00000000..085991df
Binary files /dev/null and b/public/airlines/IF.png differ
diff --git a/public/airlines/IG.png b/public/airlines/IG.png
new file mode 100644
index 00000000..0dbd7100
Binary files /dev/null and b/public/airlines/IG.png differ
diff --git a/public/airlines/IL.png b/public/airlines/IL.png
new file mode 100644
index 00000000..501d1c8a
Binary files /dev/null and b/public/airlines/IL.png differ
diff --git a/public/airlines/IN.png b/public/airlines/IN.png
new file mode 100644
index 00000000..8a766de6
Binary files /dev/null and b/public/airlines/IN.png differ
diff --git a/public/airlines/IO.png b/public/airlines/IO.png
new file mode 100644
index 00000000..19cd49a5
Binary files /dev/null and b/public/airlines/IO.png differ
diff --git a/public/airlines/IR.png b/public/airlines/IR.png
new file mode 100644
index 00000000..64049459
Binary files /dev/null and b/public/airlines/IR.png differ
diff --git a/public/airlines/IT.png b/public/airlines/IT.png
new file mode 100644
index 00000000..32e14d26
Binary files /dev/null and b/public/airlines/IT.png differ
diff --git a/public/airlines/IU.png b/public/airlines/IU.png
new file mode 100644
index 00000000..82bb0f0f
Binary files /dev/null and b/public/airlines/IU.png differ
diff --git a/public/airlines/IW.png b/public/airlines/IW.png
new file mode 100644
index 00000000..04840c9e
Binary files /dev/null and b/public/airlines/IW.png differ
diff --git a/public/airlines/IX.png b/public/airlines/IX.png
new file mode 100644
index 00000000..afc6dc97
Binary files /dev/null and b/public/airlines/IX.png differ
diff --git a/public/airlines/IY.png b/public/airlines/IY.png
new file mode 100644
index 00000000..8d5d4c49
Binary files /dev/null and b/public/airlines/IY.png differ
diff --git a/public/airlines/IZ.png b/public/airlines/IZ.png
new file mode 100644
index 00000000..f1722f8f
Binary files /dev/null and b/public/airlines/IZ.png differ
diff --git a/public/airlines/J2.png b/public/airlines/J2.png
new file mode 100644
index 00000000..30c71265
Binary files /dev/null and b/public/airlines/J2.png differ
diff --git a/public/airlines/J8.png b/public/airlines/J8.png
new file mode 100644
index 00000000..35da3a2a
Binary files /dev/null and b/public/airlines/J8.png differ
diff --git a/public/airlines/J9.png b/public/airlines/J9.png
new file mode 100644
index 00000000..92498487
Binary files /dev/null and b/public/airlines/J9.png differ
diff --git a/public/airlines/JD.png b/public/airlines/JD.png
new file mode 100644
index 00000000..0a5dfb5e
Binary files /dev/null and b/public/airlines/JD.png differ
diff --git a/public/airlines/JE.png b/public/airlines/JE.png
new file mode 100644
index 00000000..0e25c684
Binary files /dev/null and b/public/airlines/JE.png differ
diff --git a/public/airlines/JF.png b/public/airlines/JF.png
new file mode 100644
index 00000000..199ee5aa
Binary files /dev/null and b/public/airlines/JF.png differ
diff --git a/public/airlines/JH.png b/public/airlines/JH.png
new file mode 100644
index 00000000..5fc971fd
Binary files /dev/null and b/public/airlines/JH.png differ
diff --git a/public/airlines/JI.png b/public/airlines/JI.png
new file mode 100644
index 00000000..ead1b327
Binary files /dev/null and b/public/airlines/JI.png differ
diff --git a/public/airlines/JJ.png b/public/airlines/JJ.png
new file mode 100644
index 00000000..0b3cfc68
Binary files /dev/null and b/public/airlines/JJ.png differ
diff --git a/public/airlines/JL.png b/public/airlines/JL.png
new file mode 100644
index 00000000..72d5d302
Binary files /dev/null and b/public/airlines/JL.png differ
diff --git a/public/airlines/JO.png b/public/airlines/JO.png
new file mode 100644
index 00000000..8b8b428d
Binary files /dev/null and b/public/airlines/JO.png differ
diff --git a/public/airlines/JP.png b/public/airlines/JP.png
new file mode 100644
index 00000000..6c76fe5a
Binary files /dev/null and b/public/airlines/JP.png differ
diff --git a/public/airlines/JQ.png b/public/airlines/JQ.png
new file mode 100644
index 00000000..66f5319a
Binary files /dev/null and b/public/airlines/JQ.png differ
diff --git a/public/airlines/JR.png b/public/airlines/JR.png
new file mode 100644
index 00000000..ca61d74b
Binary files /dev/null and b/public/airlines/JR.png differ
diff --git a/public/airlines/JT.png b/public/airlines/JT.png
new file mode 100644
index 00000000..49652a26
Binary files /dev/null and b/public/airlines/JT.png differ
diff --git a/public/airlines/JU.png b/public/airlines/JU.png
new file mode 100644
index 00000000..23f8f9a0
Binary files /dev/null and b/public/airlines/JU.png differ
diff --git a/public/airlines/JV.png b/public/airlines/JV.png
new file mode 100644
index 00000000..2973f122
Binary files /dev/null and b/public/airlines/JV.png differ
diff --git a/public/airlines/JW.png b/public/airlines/JW.png
new file mode 100644
index 00000000..e8f788f9
Binary files /dev/null and b/public/airlines/JW.png differ
diff --git a/public/airlines/JY.png b/public/airlines/JY.png
new file mode 100644
index 00000000..7449bf33
Binary files /dev/null and b/public/airlines/JY.png differ
diff --git a/public/airlines/JZ.png b/public/airlines/JZ.png
new file mode 100644
index 00000000..09d5b371
Binary files /dev/null and b/public/airlines/JZ.png differ
diff --git a/public/airlines/K4.png b/public/airlines/K4.png
new file mode 100644
index 00000000..a034b768
Binary files /dev/null and b/public/airlines/K4.png differ
diff --git a/public/airlines/K6.png b/public/airlines/K6.png
new file mode 100644
index 00000000..29c4287e
Binary files /dev/null and b/public/airlines/K6.png differ
diff --git a/public/airlines/K9.png b/public/airlines/K9.png
new file mode 100644
index 00000000..65fa950b
Binary files /dev/null and b/public/airlines/K9.png differ
diff --git a/public/airlines/KA.png b/public/airlines/KA.png
new file mode 100644
index 00000000..c89ff36a
Binary files /dev/null and b/public/airlines/KA.png differ
diff --git a/public/airlines/KB.png b/public/airlines/KB.png
new file mode 100644
index 00000000..2da11e0d
Binary files /dev/null and b/public/airlines/KB.png differ
diff --git a/public/airlines/KC.png b/public/airlines/KC.png
new file mode 100644
index 00000000..4d3e9fd5
Binary files /dev/null and b/public/airlines/KC.png differ
diff --git a/public/airlines/KD.png b/public/airlines/KD.png
new file mode 100644
index 00000000..8c6a7c92
Binary files /dev/null and b/public/airlines/KD.png differ
diff --git a/public/airlines/KE.png b/public/airlines/KE.png
new file mode 100644
index 00000000..3f1c65da
Binary files /dev/null and b/public/airlines/KE.png differ
diff --git a/public/airlines/KK.png b/public/airlines/KK.png
new file mode 100644
index 00000000..967a0812
Binary files /dev/null and b/public/airlines/KK.png differ
diff --git a/public/airlines/KL.png b/public/airlines/KL.png
new file mode 100644
index 00000000..aee0783b
Binary files /dev/null and b/public/airlines/KL.png differ
diff --git a/public/airlines/KM.png b/public/airlines/KM.png
new file mode 100644
index 00000000..92d5954c
Binary files /dev/null and b/public/airlines/KM.png differ
diff --git a/public/airlines/KN.png b/public/airlines/KN.png
new file mode 100644
index 00000000..37e37b12
Binary files /dev/null and b/public/airlines/KN.png differ
diff --git a/public/airlines/KO.png b/public/airlines/KO.png
new file mode 100644
index 00000000..cc5058e6
Binary files /dev/null and b/public/airlines/KO.png differ
diff --git a/public/airlines/KP.png b/public/airlines/KP.png
new file mode 100644
index 00000000..ccdc08ff
Binary files /dev/null and b/public/airlines/KP.png differ
diff --git a/public/airlines/KQ.png b/public/airlines/KQ.png
new file mode 100644
index 00000000..2a0f97e5
Binary files /dev/null and b/public/airlines/KQ.png differ
diff --git a/public/airlines/KS.png b/public/airlines/KS.png
new file mode 100644
index 00000000..b7cf1fc3
Binary files /dev/null and b/public/airlines/KS.png differ
diff --git a/public/airlines/KU.png b/public/airlines/KU.png
new file mode 100644
index 00000000..68526604
Binary files /dev/null and b/public/airlines/KU.png differ
diff --git a/public/airlines/KX.png b/public/airlines/KX.png
new file mode 100644
index 00000000..c414c801
Binary files /dev/null and b/public/airlines/KX.png differ
diff --git a/public/airlines/KY.png b/public/airlines/KY.png
new file mode 100644
index 00000000..cbc25d4b
Binary files /dev/null and b/public/airlines/KY.png differ
diff --git a/public/airlines/L6(1).png b/public/airlines/L6(1).png
new file mode 100644
index 00000000..22c10629
Binary files /dev/null and b/public/airlines/L6(1).png differ
diff --git a/public/airlines/L6.png b/public/airlines/L6.png
new file mode 100644
index 00000000..22c10629
Binary files /dev/null and b/public/airlines/L6.png differ
diff --git a/public/airlines/LA.png b/public/airlines/LA.png
new file mode 100644
index 00000000..bd8b3278
Binary files /dev/null and b/public/airlines/LA.png differ
diff --git a/public/airlines/LG.png b/public/airlines/LG.png
new file mode 100644
index 00000000..ab318bf4
Binary files /dev/null and b/public/airlines/LG.png differ
diff --git a/public/airlines/LH.png b/public/airlines/LH.png
new file mode 100644
index 00000000..9db14a45
Binary files /dev/null and b/public/airlines/LH.png differ
diff --git a/public/airlines/LI.png b/public/airlines/LI.png
new file mode 100644
index 00000000..46041afa
Binary files /dev/null and b/public/airlines/LI.png differ
diff --git a/public/airlines/LJ.png b/public/airlines/LJ.png
new file mode 100644
index 00000000..26067515
Binary files /dev/null and b/public/airlines/LJ.png differ
diff --git a/public/airlines/LM.png b/public/airlines/LM.png
new file mode 100644
index 00000000..f4dab3bb
Binary files /dev/null and b/public/airlines/LM.png differ
diff --git a/public/airlines/LN.png b/public/airlines/LN.png
new file mode 100644
index 00000000..5638e4f2
Binary files /dev/null and b/public/airlines/LN.png differ
diff --git a/public/airlines/LO.png b/public/airlines/LO.png
new file mode 100644
index 00000000..3f6ecb8f
Binary files /dev/null and b/public/airlines/LO.png differ
diff --git a/public/airlines/LP.png b/public/airlines/LP.png
new file mode 100644
index 00000000..b7addaab
Binary files /dev/null and b/public/airlines/LP.png differ
diff --git a/public/airlines/LQ(1).png b/public/airlines/LQ(1).png
new file mode 100644
index 00000000..7cc879ad
Binary files /dev/null and b/public/airlines/LQ(1).png differ
diff --git a/public/airlines/LQ.png b/public/airlines/LQ.png
new file mode 100644
index 00000000..7cc879ad
Binary files /dev/null and b/public/airlines/LQ.png differ
diff --git a/public/airlines/LR.png b/public/airlines/LR.png
new file mode 100644
index 00000000..fd886b62
Binary files /dev/null and b/public/airlines/LR.png differ
diff --git a/public/airlines/LS.png b/public/airlines/LS.png
new file mode 100644
index 00000000..7b61ccea
Binary files /dev/null and b/public/airlines/LS.png differ
diff --git a/public/airlines/LU.png b/public/airlines/LU.png
new file mode 100644
index 00000000..19480396
Binary files /dev/null and b/public/airlines/LU.png differ
diff --git a/public/airlines/LW.png b/public/airlines/LW.png
new file mode 100644
index 00000000..4d81552f
Binary files /dev/null and b/public/airlines/LW.png differ
diff --git a/public/airlines/LX.png b/public/airlines/LX.png
new file mode 100644
index 00000000..a93f428f
Binary files /dev/null and b/public/airlines/LX.png differ
diff --git a/public/airlines/LY(1).png b/public/airlines/LY(1).png
new file mode 100644
index 00000000..0e8bf05b
Binary files /dev/null and b/public/airlines/LY(1).png differ
diff --git a/public/airlines/LY.png b/public/airlines/LY.png
new file mode 100644
index 00000000..0e8bf05b
Binary files /dev/null and b/public/airlines/LY.png differ
diff --git a/public/airlines/M9(1).png b/public/airlines/M9(1).png
new file mode 100644
index 00000000..df12f872
Binary files /dev/null and b/public/airlines/M9(1).png differ
diff --git a/public/airlines/M9.png b/public/airlines/M9.png
new file mode 100644
index 00000000..df12f872
Binary files /dev/null and b/public/airlines/M9.png differ
diff --git a/public/airlines/MD.png b/public/airlines/MD.png
new file mode 100644
index 00000000..20796e8e
Binary files /dev/null and b/public/airlines/MD.png differ
diff --git a/public/airlines/ME.png b/public/airlines/ME.png
new file mode 100644
index 00000000..6a24397e
Binary files /dev/null and b/public/airlines/ME.png differ
diff --git a/public/airlines/MF.png b/public/airlines/MF.png
new file mode 100644
index 00000000..5ecd4173
Binary files /dev/null and b/public/airlines/MF.png differ
diff --git a/public/airlines/MH.png b/public/airlines/MH.png
new file mode 100644
index 00000000..48fdb48c
Binary files /dev/null and b/public/airlines/MH.png differ
diff --git a/public/airlines/MI.png b/public/airlines/MI.png
new file mode 100644
index 00000000..fa8dabd6
Binary files /dev/null and b/public/airlines/MI.png differ
diff --git a/public/airlines/MJ(1).png b/public/airlines/MJ(1).png
new file mode 100644
index 00000000..31a8e124
Binary files /dev/null and b/public/airlines/MJ(1).png differ
diff --git a/public/airlines/MJ.png b/public/airlines/MJ.png
new file mode 100644
index 00000000..31a8e124
Binary files /dev/null and b/public/airlines/MJ.png differ
diff --git a/public/airlines/MK.png b/public/airlines/MK.png
new file mode 100644
index 00000000..1365fbff
Binary files /dev/null and b/public/airlines/MK.png differ
diff --git a/public/airlines/MM.png b/public/airlines/MM.png
new file mode 100644
index 00000000..27ce34b1
Binary files /dev/null and b/public/airlines/MM.png differ
diff --git a/public/airlines/MN.png b/public/airlines/MN.png
new file mode 100644
index 00000000..994287ca
Binary files /dev/null and b/public/airlines/MN.png differ
diff --git a/public/airlines/MO.png b/public/airlines/MO.png
new file mode 100644
index 00000000..4fdb28bb
Binary files /dev/null and b/public/airlines/MO.png differ
diff --git a/public/airlines/MP.png b/public/airlines/MP.png
new file mode 100644
index 00000000..c071230c
Binary files /dev/null and b/public/airlines/MP.png differ
diff --git a/public/airlines/MR.png b/public/airlines/MR.png
new file mode 100644
index 00000000..fce9ed7f
Binary files /dev/null and b/public/airlines/MR.png differ
diff --git a/public/airlines/MS.png b/public/airlines/MS.png
new file mode 100644
index 00000000..198161ba
Binary files /dev/null and b/public/airlines/MS.png differ
diff --git a/public/airlines/MT.png b/public/airlines/MT.png
new file mode 100644
index 00000000..c0c415c7
Binary files /dev/null and b/public/airlines/MT.png differ
diff --git a/public/airlines/MU.png b/public/airlines/MU.png
new file mode 100644
index 00000000..5371ed6b
Binary files /dev/null and b/public/airlines/MU.png differ
diff --git a/public/airlines/MW.png b/public/airlines/MW.png
new file mode 100644
index 00000000..bbecd931
Binary files /dev/null and b/public/airlines/MW.png differ
diff --git a/public/airlines/MX.png b/public/airlines/MX.png
new file mode 100644
index 00000000..eb07a5c8
Binary files /dev/null and b/public/airlines/MX.png differ
diff --git a/public/airlines/MY.png b/public/airlines/MY.png
new file mode 100644
index 00000000..fea5a28d
Binary files /dev/null and b/public/airlines/MY.png differ
diff --git a/public/airlines/N4.png b/public/airlines/N4.png
new file mode 100644
index 00000000..701477c9
Binary files /dev/null and b/public/airlines/N4.png differ
diff --git a/public/airlines/NE.png b/public/airlines/NE.png
new file mode 100644
index 00000000..d5d623cd
Binary files /dev/null and b/public/airlines/NE.png differ
diff --git a/public/airlines/NF.png b/public/airlines/NF.png
new file mode 100644
index 00000000..1a3d518c
Binary files /dev/null and b/public/airlines/NF.png differ
diff --git a/public/airlines/NG.png b/public/airlines/NG.png
new file mode 100644
index 00000000..62e5d875
Binary files /dev/null and b/public/airlines/NG.png differ
diff --git a/public/airlines/NH.png b/public/airlines/NH.png
new file mode 100644
index 00000000..f3e110f4
Binary files /dev/null and b/public/airlines/NH.png differ
diff --git a/public/airlines/NI.png b/public/airlines/NI.png
new file mode 100644
index 00000000..bc4074c6
Binary files /dev/null and b/public/airlines/NI.png differ
diff --git a/public/airlines/NK.png b/public/airlines/NK.png
new file mode 100644
index 00000000..b6e7d70c
Binary files /dev/null and b/public/airlines/NK.png differ
diff --git a/public/airlines/NM.png b/public/airlines/NM.png
new file mode 100644
index 00000000..47ae98fd
Binary files /dev/null and b/public/airlines/NM.png differ
diff --git a/public/airlines/NO.png b/public/airlines/NO.png
new file mode 100644
index 00000000..5962be6c
Binary files /dev/null and b/public/airlines/NO.png differ
diff --git a/public/airlines/NP.png b/public/airlines/NP.png
new file mode 100644
index 00000000..5a5b6f5e
Binary files /dev/null and b/public/airlines/NP.png differ
diff --git a/public/airlines/NQ.png b/public/airlines/NQ.png
new file mode 100644
index 00000000..924e415a
Binary files /dev/null and b/public/airlines/NQ.png differ
diff --git a/public/airlines/NR.png b/public/airlines/NR.png
new file mode 100644
index 00000000..28c45be6
Binary files /dev/null and b/public/airlines/NR.png differ
diff --git a/public/airlines/NS.png b/public/airlines/NS.png
new file mode 100644
index 00000000..3163be58
Binary files /dev/null and b/public/airlines/NS.png differ
diff --git a/public/airlines/NT.png b/public/airlines/NT.png
new file mode 100644
index 00000000..dbbeeb6a
Binary files /dev/null and b/public/airlines/NT.png differ
diff --git a/public/airlines/NU.png b/public/airlines/NU.png
new file mode 100644
index 00000000..1e125852
Binary files /dev/null and b/public/airlines/NU.png differ
diff --git a/public/airlines/NX.png b/public/airlines/NX.png
new file mode 100644
index 00000000..c5bd551c
Binary files /dev/null and b/public/airlines/NX.png differ
diff --git a/public/airlines/NY.png b/public/airlines/NY.png
new file mode 100644
index 00000000..ebe8fcec
Binary files /dev/null and b/public/airlines/NY.png differ
diff --git a/public/airlines/NZ.png b/public/airlines/NZ.png
new file mode 100644
index 00000000..a8466d41
Binary files /dev/null and b/public/airlines/NZ.png differ
diff --git a/public/airlines/O8.png b/public/airlines/O8.png
new file mode 100644
index 00000000..ae97c3c2
Binary files /dev/null and b/public/airlines/O8.png differ
diff --git a/public/airlines/OA.png b/public/airlines/OA.png
new file mode 100644
index 00000000..621d0dd1
Binary files /dev/null and b/public/airlines/OA.png differ
diff --git a/public/airlines/OB.png b/public/airlines/OB.png
new file mode 100644
index 00000000..1a1e5bea
Binary files /dev/null and b/public/airlines/OB.png differ
diff --git a/public/airlines/OD.png b/public/airlines/OD.png
new file mode 100644
index 00000000..df91b6a7
Binary files /dev/null and b/public/airlines/OD.png differ
diff --git a/public/airlines/OH.png b/public/airlines/OH.png
new file mode 100644
index 00000000..6f6938c0
Binary files /dev/null and b/public/airlines/OH.png differ
diff --git a/public/airlines/OJ.png b/public/airlines/OJ.png
new file mode 100644
index 00000000..569fa729
Binary files /dev/null and b/public/airlines/OJ.png differ
diff --git a/public/airlines/OK.png b/public/airlines/OK.png
new file mode 100644
index 00000000..37537246
Binary files /dev/null and b/public/airlines/OK.png differ
diff --git a/public/airlines/OM.png b/public/airlines/OM.png
new file mode 100644
index 00000000..f27497bc
Binary files /dev/null and b/public/airlines/OM.png differ
diff --git a/public/airlines/OO.png b/public/airlines/OO.png
new file mode 100644
index 00000000..dae50d39
Binary files /dev/null and b/public/airlines/OO.png differ
diff --git a/public/airlines/OR.png b/public/airlines/OR.png
new file mode 100644
index 00000000..0c928849
Binary files /dev/null and b/public/airlines/OR.png differ
diff --git a/public/airlines/OS.png b/public/airlines/OS.png
new file mode 100644
index 00000000..042da7c7
Binary files /dev/null and b/public/airlines/OS.png differ
diff --git a/public/airlines/OU.png b/public/airlines/OU.png
new file mode 100644
index 00000000..778ef940
Binary files /dev/null and b/public/airlines/OU.png differ
diff --git a/public/airlines/OV.png b/public/airlines/OV.png
new file mode 100644
index 00000000..c5914b84
Binary files /dev/null and b/public/airlines/OV.png differ
diff --git a/public/airlines/OX.png b/public/airlines/OX.png
new file mode 100644
index 00000000..97c06c87
Binary files /dev/null and b/public/airlines/OX.png differ
diff --git a/public/airlines/OY.png b/public/airlines/OY.png
new file mode 100644
index 00000000..aea348c3
Binary files /dev/null and b/public/airlines/OY.png differ
diff --git a/public/airlines/OZ.png b/public/airlines/OZ.png
new file mode 100644
index 00000000..582e14ef
Binary files /dev/null and b/public/airlines/OZ.png differ
diff --git a/public/airlines/P0.png b/public/airlines/P0.png
new file mode 100644
index 00000000..72fd51ef
Binary files /dev/null and b/public/airlines/P0.png differ
diff --git a/public/airlines/P4.png b/public/airlines/P4.png
new file mode 100644
index 00000000..9d7db097
Binary files /dev/null and b/public/airlines/P4.png differ
diff --git a/public/airlines/P5.png b/public/airlines/P5.png
new file mode 100644
index 00000000..e35bfdfb
Binary files /dev/null and b/public/airlines/P5.png differ
diff --git a/public/airlines/P6.png b/public/airlines/P6.png
new file mode 100644
index 00000000..509737d3
Binary files /dev/null and b/public/airlines/P6.png differ
diff --git a/public/airlines/P7.png b/public/airlines/P7.png
new file mode 100644
index 00000000..8cbf4e20
Binary files /dev/null and b/public/airlines/P7.png differ
diff --git a/public/airlines/P9.png b/public/airlines/P9.png
new file mode 100644
index 00000000..d207ae84
Binary files /dev/null and b/public/airlines/P9.png differ
diff --git a/public/airlines/PA.png b/public/airlines/PA.png
new file mode 100644
index 00000000..8971c7b3
Binary files /dev/null and b/public/airlines/PA.png differ
diff --git a/public/airlines/PB.png b/public/airlines/PB.png
new file mode 100644
index 00000000..7fcd750c
Binary files /dev/null and b/public/airlines/PB.png differ
diff --git a/public/airlines/PC.png b/public/airlines/PC.png
new file mode 100644
index 00000000..b6968c38
Binary files /dev/null and b/public/airlines/PC.png differ
diff --git a/public/airlines/PD.png b/public/airlines/PD.png
new file mode 100644
index 00000000..be18d024
Binary files /dev/null and b/public/airlines/PD.png differ
diff --git a/public/airlines/PE.png b/public/airlines/PE.png
new file mode 100644
index 00000000..cc269035
Binary files /dev/null and b/public/airlines/PE.png differ
diff --git a/public/airlines/PG.png b/public/airlines/PG.png
new file mode 100644
index 00000000..11cd78e2
Binary files /dev/null and b/public/airlines/PG.png differ
diff --git a/public/airlines/PI.png b/public/airlines/PI.png
new file mode 100644
index 00000000..b13d8d09
Binary files /dev/null and b/public/airlines/PI.png differ
diff --git a/public/airlines/PK.png b/public/airlines/PK.png
new file mode 100644
index 00000000..26eb854d
Binary files /dev/null and b/public/airlines/PK.png differ
diff --git a/public/airlines/PL.png b/public/airlines/PL.png
new file mode 100644
index 00000000..9b452b7d
Binary files /dev/null and b/public/airlines/PL.png differ
diff --git a/public/airlines/PN.png b/public/airlines/PN.png
new file mode 100644
index 00000000..ec60e9d3
Binary files /dev/null and b/public/airlines/PN.png differ
diff --git a/public/airlines/PQ.png b/public/airlines/PQ.png
new file mode 100644
index 00000000..de0f9523
Binary files /dev/null and b/public/airlines/PQ.png differ
diff --git a/public/airlines/PR.png b/public/airlines/PR.png
new file mode 100644
index 00000000..188da9df
Binary files /dev/null and b/public/airlines/PR.png differ
diff --git a/public/airlines/PS.png b/public/airlines/PS.png
new file mode 100644
index 00000000..ca670ee2
Binary files /dev/null and b/public/airlines/PS.png differ
diff --git a/public/airlines/PU(1).png b/public/airlines/PU(1).png
new file mode 100644
index 00000000..f2c84aeb
Binary files /dev/null and b/public/airlines/PU(1).png differ
diff --git a/public/airlines/PU.png b/public/airlines/PU.png
new file mode 100644
index 00000000..f2c84aeb
Binary files /dev/null and b/public/airlines/PU.png differ
diff --git a/public/airlines/PV.png b/public/airlines/PV.png
new file mode 100644
index 00000000..2c0d28ba
Binary files /dev/null and b/public/airlines/PV.png differ
diff --git a/public/airlines/PW.png b/public/airlines/PW.png
new file mode 100644
index 00000000..fad0dc27
Binary files /dev/null and b/public/airlines/PW.png differ
diff --git a/public/airlines/PX.png b/public/airlines/PX.png
new file mode 100644
index 00000000..d80f9698
Binary files /dev/null and b/public/airlines/PX.png differ
diff --git a/public/airlines/PY.png b/public/airlines/PY.png
new file mode 100644
index 00000000..0902b350
Binary files /dev/null and b/public/airlines/PY.png differ
diff --git a/public/airlines/PZ.png b/public/airlines/PZ.png
new file mode 100644
index 00000000..5fd665c1
Binary files /dev/null and b/public/airlines/PZ.png differ
diff --git a/public/airlines/Q4.png b/public/airlines/Q4.png
new file mode 100644
index 00000000..20e5664a
Binary files /dev/null and b/public/airlines/Q4.png differ
diff --git a/public/airlines/Q6.png b/public/airlines/Q6.png
new file mode 100644
index 00000000..ba6c7026
Binary files /dev/null and b/public/airlines/Q6.png differ
diff --git a/public/airlines/Q7.png b/public/airlines/Q7.png
new file mode 100644
index 00000000..43ed2b40
Binary files /dev/null and b/public/airlines/Q7.png differ
diff --git a/public/airlines/Q8.png b/public/airlines/Q8.png
new file mode 100644
index 00000000..602b92ab
Binary files /dev/null and b/public/airlines/Q8.png differ
diff --git a/public/airlines/Q9.png b/public/airlines/Q9.png
new file mode 100644
index 00000000..408c9ef5
Binary files /dev/null and b/public/airlines/Q9.png differ
diff --git a/public/airlines/QA.png b/public/airlines/QA.png
new file mode 100644
index 00000000..37792308
Binary files /dev/null and b/public/airlines/QA.png differ
diff --git a/public/airlines/QB.png b/public/airlines/QB.png
new file mode 100644
index 00000000..73257ab2
Binary files /dev/null and b/public/airlines/QB.png differ
diff --git a/public/airlines/QC.png b/public/airlines/QC.png
new file mode 100644
index 00000000..3883dcfd
Binary files /dev/null and b/public/airlines/QC.png differ
diff --git a/public/airlines/QD(1).png b/public/airlines/QD(1).png
new file mode 100644
index 00000000..b4632a10
Binary files /dev/null and b/public/airlines/QD(1).png differ
diff --git a/public/airlines/QD.png b/public/airlines/QD.png
new file mode 100644
index 00000000..b4632a10
Binary files /dev/null and b/public/airlines/QD.png differ
diff --git a/public/airlines/QF.png b/public/airlines/QF.png
new file mode 100644
index 00000000..5f54b214
Binary files /dev/null and b/public/airlines/QF.png differ
diff --git a/public/airlines/QG.png b/public/airlines/QG.png
new file mode 100644
index 00000000..4a9809ae
Binary files /dev/null and b/public/airlines/QG.png differ
diff --git a/public/airlines/QH.png b/public/airlines/QH.png
new file mode 100644
index 00000000..826efe53
Binary files /dev/null and b/public/airlines/QH.png differ
diff --git a/public/airlines/QK.png b/public/airlines/QK.png
new file mode 100644
index 00000000..29e94ee2
Binary files /dev/null and b/public/airlines/QK.png differ
diff --git a/public/airlines/QL.png b/public/airlines/QL.png
new file mode 100644
index 00000000..87c0629f
Binary files /dev/null and b/public/airlines/QL.png differ
diff --git a/public/airlines/QP.png b/public/airlines/QP.png
new file mode 100644
index 00000000..d0ae21cd
Binary files /dev/null and b/public/airlines/QP.png differ
diff --git a/public/airlines/QQ.png b/public/airlines/QQ.png
new file mode 100644
index 00000000..4b8afab3
Binary files /dev/null and b/public/airlines/QQ.png differ
diff --git a/public/airlines/QR.png b/public/airlines/QR.png
new file mode 100644
index 00000000..b878456c
Binary files /dev/null and b/public/airlines/QR.png differ
diff --git a/public/airlines/QS.png b/public/airlines/QS.png
new file mode 100644
index 00000000..17e03a21
Binary files /dev/null and b/public/airlines/QS.png differ
diff --git a/public/airlines/QU.png b/public/airlines/QU.png
new file mode 100644
index 00000000..6b8492dd
Binary files /dev/null and b/public/airlines/QU.png differ
diff --git a/public/airlines/QV.png b/public/airlines/QV.png
new file mode 100644
index 00000000..823f625f
Binary files /dev/null and b/public/airlines/QV.png differ
diff --git a/public/airlines/QW.png b/public/airlines/QW.png
new file mode 100644
index 00000000..67591cab
Binary files /dev/null and b/public/airlines/QW.png differ
diff --git a/public/airlines/QX.png b/public/airlines/QX.png
new file mode 100644
index 00000000..0b80db21
Binary files /dev/null and b/public/airlines/QX.png differ
diff --git a/public/airlines/QZ.png b/public/airlines/QZ.png
new file mode 100644
index 00000000..15e6451a
Binary files /dev/null and b/public/airlines/QZ.png differ
diff --git a/public/airlines/R3.png b/public/airlines/R3.png
new file mode 100644
index 00000000..3ef1b0a6
Binary files /dev/null and b/public/airlines/R3.png differ
diff --git a/public/airlines/R5.png b/public/airlines/R5.png
new file mode 100644
index 00000000..c786386c
Binary files /dev/null and b/public/airlines/R5.png differ
diff --git a/public/airlines/R6.png b/public/airlines/R6.png
new file mode 100644
index 00000000..642b4635
Binary files /dev/null and b/public/airlines/R6.png differ
diff --git a/public/airlines/R7.png b/public/airlines/R7.png
new file mode 100644
index 00000000..b19238ef
Binary files /dev/null and b/public/airlines/R7.png differ
diff --git a/public/airlines/RA.png b/public/airlines/RA.png
new file mode 100644
index 00000000..3130001e
Binary files /dev/null and b/public/airlines/RA.png differ
diff --git a/public/airlines/RB.png b/public/airlines/RB.png
new file mode 100644
index 00000000..03c71712
Binary files /dev/null and b/public/airlines/RB.png differ
diff --git a/public/airlines/RC.png b/public/airlines/RC.png
new file mode 100644
index 00000000..7f61f7ab
Binary files /dev/null and b/public/airlines/RC.png differ
diff --git a/public/airlines/RE.png b/public/airlines/RE.png
new file mode 100644
index 00000000..4eed78fe
Binary files /dev/null and b/public/airlines/RE.png differ
diff --git a/public/airlines/RG.png b/public/airlines/RG.png
new file mode 100644
index 00000000..ea2e7dbd
Binary files /dev/null and b/public/airlines/RG.png differ
diff --git a/public/airlines/RJ.png b/public/airlines/RJ.png
new file mode 100644
index 00000000..20aa8953
Binary files /dev/null and b/public/airlines/RJ.png differ
diff --git a/public/airlines/RK.png b/public/airlines/RK.png
new file mode 100644
index 00000000..57e45387
Binary files /dev/null and b/public/airlines/RK.png differ
diff --git a/public/airlines/RO.png b/public/airlines/RO.png
new file mode 100644
index 00000000..1ab98d1d
Binary files /dev/null and b/public/airlines/RO.png differ
diff --git a/public/airlines/RQ.png b/public/airlines/RQ.png
new file mode 100644
index 00000000..5ffae7d1
Binary files /dev/null and b/public/airlines/RQ.png differ
diff --git a/public/airlines/RY.png b/public/airlines/RY.png
new file mode 100644
index 00000000..7a00713d
Binary files /dev/null and b/public/airlines/RY.png differ
diff --git a/public/airlines/S2.png b/public/airlines/S2.png
new file mode 100644
index 00000000..915d6298
Binary files /dev/null and b/public/airlines/S2.png differ
diff --git a/public/airlines/S3.png b/public/airlines/S3.png
new file mode 100644
index 00000000..b4012023
Binary files /dev/null and b/public/airlines/S3.png differ
diff --git a/public/airlines/S4.png b/public/airlines/S4.png
new file mode 100644
index 00000000..9b8a84fa
Binary files /dev/null and b/public/airlines/S4.png differ
diff --git a/public/airlines/S7.png b/public/airlines/S7.png
new file mode 100644
index 00000000..9f3ee5a5
Binary files /dev/null and b/public/airlines/S7.png differ
diff --git a/public/airlines/S9.png b/public/airlines/S9.png
new file mode 100644
index 00000000..7be5c0eb
Binary files /dev/null and b/public/airlines/S9.png differ
diff --git a/public/airlines/SA.png b/public/airlines/SA.png
new file mode 100644
index 00000000..d6da3a47
Binary files /dev/null and b/public/airlines/SA.png differ
diff --git a/public/airlines/SB.png b/public/airlines/SB.png
new file mode 100644
index 00000000..99901c77
Binary files /dev/null and b/public/airlines/SB.png differ
diff --git a/public/airlines/SC.png b/public/airlines/SC.png
new file mode 100644
index 00000000..73732353
Binary files /dev/null and b/public/airlines/SC.png differ
diff --git a/public/airlines/SD.png b/public/airlines/SD.png
new file mode 100644
index 00000000..83d5a79e
Binary files /dev/null and b/public/airlines/SD.png differ
diff --git a/public/airlines/SE.png b/public/airlines/SE.png
new file mode 100644
index 00000000..ee788310
Binary files /dev/null and b/public/airlines/SE.png differ
diff --git a/public/airlines/SF.png b/public/airlines/SF.png
new file mode 100644
index 00000000..e7ec988f
Binary files /dev/null and b/public/airlines/SF.png differ
diff --git a/public/airlines/SG.png b/public/airlines/SG.png
new file mode 100644
index 00000000..1f89480a
Binary files /dev/null and b/public/airlines/SG.png differ
diff --git a/public/airlines/SH.png b/public/airlines/SH.png
new file mode 100644
index 00000000..855c80fb
Binary files /dev/null and b/public/airlines/SH.png differ
diff --git a/public/airlines/SI.png b/public/airlines/SI.png
new file mode 100644
index 00000000..1bfb1085
Binary files /dev/null and b/public/airlines/SI.png differ
diff --git a/public/airlines/SJ.png b/public/airlines/SJ.png
new file mode 100644
index 00000000..0678a54d
Binary files /dev/null and b/public/airlines/SJ.png differ
diff --git a/public/airlines/SK.png b/public/airlines/SK.png
new file mode 100644
index 00000000..2803313f
Binary files /dev/null and b/public/airlines/SK.png differ
diff --git a/public/airlines/SL.png b/public/airlines/SL.png
new file mode 100644
index 00000000..c6902488
Binary files /dev/null and b/public/airlines/SL.png differ
diff --git a/public/airlines/SM.png b/public/airlines/SM.png
new file mode 100644
index 00000000..dfdf38c0
Binary files /dev/null and b/public/airlines/SM.png differ
diff --git a/public/airlines/SN.png b/public/airlines/SN.png
new file mode 100644
index 00000000..78a5db42
Binary files /dev/null and b/public/airlines/SN.png differ
diff --git a/public/airlines/SO.png b/public/airlines/SO.png
new file mode 100644
index 00000000..d040911f
Binary files /dev/null and b/public/airlines/SO.png differ
diff --git a/public/airlines/SP.png b/public/airlines/SP.png
new file mode 100644
index 00000000..662cf3bc
Binary files /dev/null and b/public/airlines/SP.png differ
diff --git a/public/airlines/SQ.png b/public/airlines/SQ.png
new file mode 100644
index 00000000..223dc8c9
Binary files /dev/null and b/public/airlines/SQ.png differ
diff --git a/public/airlines/SS.png b/public/airlines/SS.png
new file mode 100644
index 00000000..96528cd0
Binary files /dev/null and b/public/airlines/SS.png differ
diff --git a/public/airlines/ST.png b/public/airlines/ST.png
new file mode 100644
index 00000000..2cebbd6c
Binary files /dev/null and b/public/airlines/ST.png differ
diff --git a/public/airlines/SU.png b/public/airlines/SU.png
new file mode 100644
index 00000000..59464547
Binary files /dev/null and b/public/airlines/SU.png differ
diff --git a/public/airlines/SV.png b/public/airlines/SV.png
new file mode 100644
index 00000000..a55797b8
Binary files /dev/null and b/public/airlines/SV.png differ
diff --git a/public/airlines/SW.png b/public/airlines/SW.png
new file mode 100644
index 00000000..3f07f874
Binary files /dev/null and b/public/airlines/SW.png differ
diff --git a/public/airlines/SX.png b/public/airlines/SX.png
new file mode 100644
index 00000000..8acd01d2
Binary files /dev/null and b/public/airlines/SX.png differ
diff --git a/public/airlines/SY.png b/public/airlines/SY.png
new file mode 100644
index 00000000..82694a00
Binary files /dev/null and b/public/airlines/SY.png differ
diff --git a/public/airlines/SZ.png b/public/airlines/SZ.png
new file mode 100644
index 00000000..6da19d55
Binary files /dev/null and b/public/airlines/SZ.png differ
diff --git a/public/airlines/T0.png b/public/airlines/T0.png
new file mode 100644
index 00000000..809f03bb
Binary files /dev/null and b/public/airlines/T0.png differ
diff --git a/public/airlines/T3.png b/public/airlines/T3.png
new file mode 100644
index 00000000..e8092f18
Binary files /dev/null and b/public/airlines/T3.png differ
diff --git a/public/airlines/T5.png b/public/airlines/T5.png
new file mode 100644
index 00000000..7b682565
Binary files /dev/null and b/public/airlines/T5.png differ
diff --git a/public/airlines/T7.png b/public/airlines/T7.png
new file mode 100644
index 00000000..0309afd9
Binary files /dev/null and b/public/airlines/T7.png differ
diff --git a/public/airlines/TA.png b/public/airlines/TA.png
new file mode 100644
index 00000000..fd886b62
Binary files /dev/null and b/public/airlines/TA.png differ
diff --git a/public/airlines/TB.png b/public/airlines/TB.png
new file mode 100644
index 00000000..df560809
Binary files /dev/null and b/public/airlines/TB.png differ
diff --git a/public/airlines/TC.png b/public/airlines/TC.png
new file mode 100644
index 00000000..edfd9a50
Binary files /dev/null and b/public/airlines/TC.png differ
diff --git a/public/airlines/TF.png b/public/airlines/TF.png
new file mode 100644
index 00000000..250c064b
Binary files /dev/null and b/public/airlines/TF.png differ
diff --git a/public/airlines/TG.png b/public/airlines/TG.png
new file mode 100644
index 00000000..f4e201dc
Binary files /dev/null and b/public/airlines/TG.png differ
diff --git a/public/airlines/TI.png b/public/airlines/TI.png
new file mode 100644
index 00000000..14ed376f
Binary files /dev/null and b/public/airlines/TI.png differ
diff --git a/public/airlines/TJ.png b/public/airlines/TJ.png
new file mode 100644
index 00000000..58a537c9
Binary files /dev/null and b/public/airlines/TJ.png differ
diff --git a/public/airlines/TK.png b/public/airlines/TK.png
new file mode 100644
index 00000000..ccaa4259
Binary files /dev/null and b/public/airlines/TK.png differ
diff --git a/public/airlines/TL.png b/public/airlines/TL.png
new file mode 100644
index 00000000..a71c604c
Binary files /dev/null and b/public/airlines/TL.png differ
diff --git a/public/airlines/TM.png b/public/airlines/TM.png
new file mode 100644
index 00000000..c3bd91d1
Binary files /dev/null and b/public/airlines/TM.png differ
diff --git a/public/airlines/TN.png b/public/airlines/TN.png
new file mode 100644
index 00000000..3931ceb9
Binary files /dev/null and b/public/airlines/TN.png differ
diff --git a/public/airlines/TO.png b/public/airlines/TO.png
new file mode 100644
index 00000000..91ecd6b2
Binary files /dev/null and b/public/airlines/TO.png differ
diff --git a/public/airlines/TP.png b/public/airlines/TP.png
new file mode 100644
index 00000000..152c95cb
Binary files /dev/null and b/public/airlines/TP.png differ
diff --git a/public/airlines/TQ.png b/public/airlines/TQ.png
new file mode 100644
index 00000000..7eaaa868
Binary files /dev/null and b/public/airlines/TQ.png differ
diff --git a/public/airlines/TR.png b/public/airlines/TR.png
new file mode 100644
index 00000000..bc52203d
Binary files /dev/null and b/public/airlines/TR.png differ
diff --git a/public/airlines/TS.png b/public/airlines/TS.png
new file mode 100644
index 00000000..4d305653
Binary files /dev/null and b/public/airlines/TS.png differ
diff --git a/public/airlines/TT.png b/public/airlines/TT.png
new file mode 100644
index 00000000..fe6e731d
Binary files /dev/null and b/public/airlines/TT.png differ
diff --git a/public/airlines/TU.png b/public/airlines/TU.png
new file mode 100644
index 00000000..fe6e731d
Binary files /dev/null and b/public/airlines/TU.png differ
diff --git a/public/airlines/TW.png b/public/airlines/TW.png
new file mode 100644
index 00000000..0ff61d33
Binary files /dev/null and b/public/airlines/TW.png differ
diff --git a/public/airlines/TX.png b/public/airlines/TX.png
new file mode 100644
index 00000000..25f0dd3c
Binary files /dev/null and b/public/airlines/TX.png differ
diff --git a/public/airlines/TY.png b/public/airlines/TY.png
new file mode 100644
index 00000000..4fcb1864
Binary files /dev/null and b/public/airlines/TY.png differ
diff --git a/public/airlines/TZ.png b/public/airlines/TZ.png
new file mode 100644
index 00000000..40ad74a4
Binary files /dev/null and b/public/airlines/TZ.png differ
diff --git a/public/airlines/U2.png b/public/airlines/U2.png
new file mode 100644
index 00000000..cf399aa4
Binary files /dev/null and b/public/airlines/U2.png differ
diff --git a/public/airlines/U6.png b/public/airlines/U6.png
new file mode 100644
index 00000000..fd3d1374
Binary files /dev/null and b/public/airlines/U6.png differ
diff --git a/public/airlines/UA.png b/public/airlines/UA.png
new file mode 100644
index 00000000..69dc1746
Binary files /dev/null and b/public/airlines/UA.png differ
diff --git a/public/airlines/UB(1).png b/public/airlines/UB(1).png
new file mode 100644
index 00000000..57ac2f73
Binary files /dev/null and b/public/airlines/UB(1).png differ
diff --git a/public/airlines/UB.png b/public/airlines/UB.png
new file mode 100644
index 00000000..57ac2f73
Binary files /dev/null and b/public/airlines/UB.png differ
diff --git a/public/airlines/UD.png b/public/airlines/UD.png
new file mode 100644
index 00000000..127df297
Binary files /dev/null and b/public/airlines/UD.png differ
diff --git a/public/airlines/UF.png b/public/airlines/UF.png
new file mode 100644
index 00000000..e8b8eff2
Binary files /dev/null and b/public/airlines/UF.png differ
diff --git a/public/airlines/UG.png b/public/airlines/UG.png
new file mode 100644
index 00000000..394866df
Binary files /dev/null and b/public/airlines/UG.png differ
diff --git a/public/airlines/UH.png b/public/airlines/UH.png
new file mode 100644
index 00000000..d1e1e539
Binary files /dev/null and b/public/airlines/UH.png differ
diff --git a/public/airlines/UJ.png b/public/airlines/UJ.png
new file mode 100644
index 00000000..cec5a97a
Binary files /dev/null and b/public/airlines/UJ.png differ
diff --git a/public/airlines/UK.png b/public/airlines/UK.png
new file mode 100644
index 00000000..9deda6af
Binary files /dev/null and b/public/airlines/UK.png differ
diff --git a/public/airlines/UL.png b/public/airlines/UL.png
new file mode 100644
index 00000000..11b85c5e
Binary files /dev/null and b/public/airlines/UL.png differ
diff --git a/public/airlines/UM.png b/public/airlines/UM.png
new file mode 100644
index 00000000..c33fad0c
Binary files /dev/null and b/public/airlines/UM.png differ
diff --git a/public/airlines/UN.png b/public/airlines/UN.png
new file mode 100644
index 00000000..2c7eb2b9
Binary files /dev/null and b/public/airlines/UN.png differ
diff --git a/public/airlines/UO.png b/public/airlines/UO.png
new file mode 100644
index 00000000..f21694c9
Binary files /dev/null and b/public/airlines/UO.png differ
diff --git a/public/airlines/UP.png b/public/airlines/UP.png
new file mode 100644
index 00000000..01eb9619
Binary files /dev/null and b/public/airlines/UP.png differ
diff --git a/public/airlines/US.png b/public/airlines/US.png
new file mode 100644
index 00000000..2b4c9b7b
Binary files /dev/null and b/public/airlines/US.png differ
diff --git a/public/airlines/UT.png b/public/airlines/UT.png
new file mode 100644
index 00000000..34d9aeb6
Binary files /dev/null and b/public/airlines/UT.png differ
diff --git a/public/airlines/UU.png b/public/airlines/UU.png
new file mode 100644
index 00000000..ff1ef2e3
Binary files /dev/null and b/public/airlines/UU.png differ
diff --git a/public/airlines/UX.png b/public/airlines/UX.png
new file mode 100644
index 00000000..9fe5f3cc
Binary files /dev/null and b/public/airlines/UX.png differ
diff --git a/public/airlines/V3.png b/public/airlines/V3.png
new file mode 100644
index 00000000..c395147d
Binary files /dev/null and b/public/airlines/V3.png differ
diff --git a/public/airlines/V5.png b/public/airlines/V5.png
new file mode 100644
index 00000000..08116076
Binary files /dev/null and b/public/airlines/V5.png differ
diff --git a/public/airlines/V7.png b/public/airlines/V7.png
new file mode 100644
index 00000000..efecdf7b
Binary files /dev/null and b/public/airlines/V7.png differ
diff --git a/public/airlines/VA.png b/public/airlines/VA.png
new file mode 100644
index 00000000..8bb9752b
Binary files /dev/null and b/public/airlines/VA.png differ
diff --git a/public/airlines/VB.png b/public/airlines/VB.png
new file mode 100644
index 00000000..a0e15d92
Binary files /dev/null and b/public/airlines/VB.png differ
diff --git a/public/airlines/VD.png b/public/airlines/VD.png
new file mode 100644
index 00000000..ee964b74
Binary files /dev/null and b/public/airlines/VD.png differ
diff --git a/public/airlines/VG.png b/public/airlines/VG.png
new file mode 100644
index 00000000..e06aa718
Binary files /dev/null and b/public/airlines/VG.png differ
diff --git a/public/airlines/VH.png b/public/airlines/VH.png
new file mode 100644
index 00000000..e608dc45
Binary files /dev/null and b/public/airlines/VH.png differ
diff --git a/public/airlines/VI.png b/public/airlines/VI.png
new file mode 100644
index 00000000..2e28785a
Binary files /dev/null and b/public/airlines/VI.png differ
diff --git a/public/airlines/VJ.png b/public/airlines/VJ.png
new file mode 100644
index 00000000..d0312f43
Binary files /dev/null and b/public/airlines/VJ.png differ
diff --git a/public/airlines/VL.png b/public/airlines/VL.png
new file mode 100644
index 00000000..9e973135
Binary files /dev/null and b/public/airlines/VL.png differ
diff --git a/public/airlines/VM.png b/public/airlines/VM.png
new file mode 100644
index 00000000..e0b0cc67
Binary files /dev/null and b/public/airlines/VM.png differ
diff --git a/public/airlines/VN.png b/public/airlines/VN.png
new file mode 100644
index 00000000..0b54b089
Binary files /dev/null and b/public/airlines/VN.png differ
diff --git a/public/airlines/VO.png b/public/airlines/VO.png
new file mode 100644
index 00000000..c442b658
Binary files /dev/null and b/public/airlines/VO.png differ
diff --git a/public/airlines/VP.png b/public/airlines/VP.png
new file mode 100644
index 00000000..41ef5cdd
Binary files /dev/null and b/public/airlines/VP.png differ
diff --git a/public/airlines/VQ.png b/public/airlines/VQ.png
new file mode 100644
index 00000000..9df1df17
Binary files /dev/null and b/public/airlines/VQ.png differ
diff --git a/public/airlines/VR.png b/public/airlines/VR.png
new file mode 100644
index 00000000..048b8352
Binary files /dev/null and b/public/airlines/VR.png differ
diff --git a/public/airlines/VS.png b/public/airlines/VS.png
new file mode 100644
index 00000000..8bb9752b
Binary files /dev/null and b/public/airlines/VS.png differ
diff --git a/public/airlines/VT.png b/public/airlines/VT.png
new file mode 100644
index 00000000..d811042f
Binary files /dev/null and b/public/airlines/VT.png differ
diff --git a/public/airlines/VW.png b/public/airlines/VW.png
new file mode 100644
index 00000000..9f6ab651
Binary files /dev/null and b/public/airlines/VW.png differ
diff --git a/public/airlines/VX.png b/public/airlines/VX.png
new file mode 100644
index 00000000..acef8b78
Binary files /dev/null and b/public/airlines/VX.png differ
diff --git a/public/airlines/VY.png b/public/airlines/VY.png
new file mode 100644
index 00000000..1c149302
Binary files /dev/null and b/public/airlines/VY.png differ
diff --git a/public/airlines/VZ.png b/public/airlines/VZ.png
new file mode 100644
index 00000000..fc98c35d
Binary files /dev/null and b/public/airlines/VZ.png differ
diff --git a/public/airlines/W2.png b/public/airlines/W2.png
new file mode 100644
index 00000000..ad1ee44a
Binary files /dev/null and b/public/airlines/W2.png differ
diff --git a/public/airlines/W3.png b/public/airlines/W3.png
new file mode 100644
index 00000000..cdbdb38d
Binary files /dev/null and b/public/airlines/W3.png differ
diff --git a/public/airlines/W4.png b/public/airlines/W4.png
new file mode 100644
index 00000000..d31e21f3
Binary files /dev/null and b/public/airlines/W4.png differ
diff --git a/public/airlines/W5.png b/public/airlines/W5.png
new file mode 100644
index 00000000..42e733ab
Binary files /dev/null and b/public/airlines/W5.png differ
diff --git a/public/airlines/W6.png b/public/airlines/W6.png
new file mode 100644
index 00000000..d31e21f3
Binary files /dev/null and b/public/airlines/W6.png differ
diff --git a/public/airlines/W9.png b/public/airlines/W9.png
new file mode 100644
index 00000000..d31e21f3
Binary files /dev/null and b/public/airlines/W9.png differ
diff --git a/public/airlines/WA.png b/public/airlines/WA.png
new file mode 100644
index 00000000..fc818c22
Binary files /dev/null and b/public/airlines/WA.png differ
diff --git a/public/airlines/WB.png b/public/airlines/WB.png
new file mode 100644
index 00000000..cb9c4742
Binary files /dev/null and b/public/airlines/WB.png differ
diff --git a/public/airlines/WE.png b/public/airlines/WE.png
new file mode 100644
index 00000000..859de097
Binary files /dev/null and b/public/airlines/WE.png differ
diff --git a/public/airlines/WF.png b/public/airlines/WF.png
new file mode 100644
index 00000000..46e5c072
Binary files /dev/null and b/public/airlines/WF.png differ
diff --git a/public/airlines/WG.png b/public/airlines/WG.png
new file mode 100644
index 00000000..67085398
Binary files /dev/null and b/public/airlines/WG.png differ
diff --git a/public/airlines/WI.png b/public/airlines/WI.png
new file mode 100644
index 00000000..5e751493
Binary files /dev/null and b/public/airlines/WI.png differ
diff --git a/public/airlines/WK.png b/public/airlines/WK.png
new file mode 100644
index 00000000..0055b1a1
Binary files /dev/null and b/public/airlines/WK.png differ
diff --git a/public/airlines/WM.png b/public/airlines/WM.png
new file mode 100644
index 00000000..5686cf8d
Binary files /dev/null and b/public/airlines/WM.png differ
diff --git a/public/airlines/WN.png b/public/airlines/WN.png
new file mode 100644
index 00000000..5cf362ea
Binary files /dev/null and b/public/airlines/WN.png differ
diff --git a/public/airlines/WO.png b/public/airlines/WO.png
new file mode 100644
index 00000000..17e2e673
Binary files /dev/null and b/public/airlines/WO.png differ
diff --git a/public/airlines/WQ.png b/public/airlines/WQ.png
new file mode 100644
index 00000000..abd0d250
Binary files /dev/null and b/public/airlines/WQ.png differ
diff --git a/public/airlines/WS.png b/public/airlines/WS.png
new file mode 100644
index 00000000..4cab957d
Binary files /dev/null and b/public/airlines/WS.png differ
diff --git a/public/airlines/WT.png b/public/airlines/WT.png
new file mode 100644
index 00000000..f6e8002e
Binary files /dev/null and b/public/airlines/WT.png differ
diff --git a/public/airlines/WW.png b/public/airlines/WW.png
new file mode 100644
index 00000000..f0659c9b
Binary files /dev/null and b/public/airlines/WW.png differ
diff --git a/public/airlines/WX.png b/public/airlines/WX.png
new file mode 100644
index 00000000..31dbf5c6
Binary files /dev/null and b/public/airlines/WX.png differ
diff --git a/public/airlines/WY.png b/public/airlines/WY.png
new file mode 100644
index 00000000..2b448cd3
Binary files /dev/null and b/public/airlines/WY.png differ
diff --git a/public/airlines/X1(1).png b/public/airlines/X1(1).png
new file mode 100644
index 00000000..e42496d5
Binary files /dev/null and b/public/airlines/X1(1).png differ
diff --git a/public/airlines/X1.png b/public/airlines/X1.png
new file mode 100644
index 00000000..e42496d5
Binary files /dev/null and b/public/airlines/X1.png differ
diff --git a/public/airlines/X3.png b/public/airlines/X3.png
new file mode 100644
index 00000000..b323ccb1
Binary files /dev/null and b/public/airlines/X3.png differ
diff --git a/public/airlines/X9.png b/public/airlines/X9.png
new file mode 100644
index 00000000..f9d7a6e7
Binary files /dev/null and b/public/airlines/X9.png differ
diff --git a/public/airlines/XC.png b/public/airlines/XC.png
new file mode 100644
index 00000000..f659c006
Binary files /dev/null and b/public/airlines/XC.png differ
diff --git a/public/airlines/XE.png b/public/airlines/XE.png
new file mode 100644
index 00000000..6313537a
Binary files /dev/null and b/public/airlines/XE.png differ
diff --git a/public/airlines/XG.png b/public/airlines/XG.png
new file mode 100644
index 00000000..58640c50
Binary files /dev/null and b/public/airlines/XG.png differ
diff --git a/public/airlines/XJ.png b/public/airlines/XJ.png
new file mode 100644
index 00000000..c121c0e0
Binary files /dev/null and b/public/airlines/XJ.png differ
diff --git a/public/airlines/XK.png b/public/airlines/XK.png
new file mode 100644
index 00000000..f37c9399
Binary files /dev/null and b/public/airlines/XK.png differ
diff --git a/public/airlines/XL.png b/public/airlines/XL.png
new file mode 100644
index 00000000..b7addaab
Binary files /dev/null and b/public/airlines/XL.png differ
diff --git a/public/airlines/XO.png b/public/airlines/XO.png
new file mode 100644
index 00000000..e95d6460
Binary files /dev/null and b/public/airlines/XO.png differ
diff --git a/public/airlines/XP.png b/public/airlines/XP.png
new file mode 100644
index 00000000..e1f7fe0c
Binary files /dev/null and b/public/airlines/XP.png differ
diff --git a/public/airlines/XQ.png b/public/airlines/XQ.png
new file mode 100644
index 00000000..d30d5d2f
Binary files /dev/null and b/public/airlines/XQ.png differ
diff --git a/public/airlines/XR.png b/public/airlines/XR.png
new file mode 100644
index 00000000..f51d6b95
Binary files /dev/null and b/public/airlines/XR.png differ
diff --git a/public/airlines/XT.png b/public/airlines/XT.png
new file mode 100644
index 00000000..30eaf588
Binary files /dev/null and b/public/airlines/XT.png differ
diff --git a/public/airlines/XW.png b/public/airlines/XW.png
new file mode 100644
index 00000000..277b5f0e
Binary files /dev/null and b/public/airlines/XW.png differ
diff --git a/public/airlines/XY.png b/public/airlines/XY.png
new file mode 100644
index 00000000..fd6e3324
Binary files /dev/null and b/public/airlines/XY.png differ
diff --git a/public/airlines/XZ.png b/public/airlines/XZ.png
new file mode 100644
index 00000000..b3432e9e
Binary files /dev/null and b/public/airlines/XZ.png differ
diff --git a/public/airlines/Y0.png b/public/airlines/Y0.png
new file mode 100644
index 00000000..c4d91e38
Binary files /dev/null and b/public/airlines/Y0.png differ
diff --git a/public/airlines/Y4.png b/public/airlines/Y4.png
new file mode 100644
index 00000000..01f91d1f
Binary files /dev/null and b/public/airlines/Y4.png differ
diff --git a/public/airlines/Y7.png b/public/airlines/Y7.png
new file mode 100644
index 00000000..5886cbca
Binary files /dev/null and b/public/airlines/Y7.png differ
diff --git a/public/airlines/Y9.png b/public/airlines/Y9.png
new file mode 100644
index 00000000..25457a81
Binary files /dev/null and b/public/airlines/Y9.png differ
diff --git a/public/airlines/YC.png b/public/airlines/YC.png
new file mode 100644
index 00000000..9675f435
Binary files /dev/null and b/public/airlines/YC.png differ
diff --git a/public/airlines/YE.png b/public/airlines/YE.png
new file mode 100644
index 00000000..ac5b5392
Binary files /dev/null and b/public/airlines/YE.png differ
diff --git a/public/airlines/YK.png b/public/airlines/YK.png
new file mode 100644
index 00000000..9dfc4369
Binary files /dev/null and b/public/airlines/YK.png differ
diff --git a/public/airlines/YM.png b/public/airlines/YM.png
new file mode 100644
index 00000000..88779498
Binary files /dev/null and b/public/airlines/YM.png differ
diff --git a/public/airlines/YN.png b/public/airlines/YN.png
new file mode 100644
index 00000000..84c7e87e
Binary files /dev/null and b/public/airlines/YN.png differ
diff --git a/public/airlines/YO.png b/public/airlines/YO.png
new file mode 100644
index 00000000..eb1c8301
Binary files /dev/null and b/public/airlines/YO.png differ
diff --git a/public/airlines/YR.png b/public/airlines/YR.png
new file mode 100644
index 00000000..328b01fa
Binary files /dev/null and b/public/airlines/YR.png differ
diff --git a/public/airlines/YS.png b/public/airlines/YS.png
new file mode 100644
index 00000000..31dbf5c6
Binary files /dev/null and b/public/airlines/YS.png differ
diff --git a/public/airlines/YU.png b/public/airlines/YU.png
new file mode 100644
index 00000000..fd5c44e4
Binary files /dev/null and b/public/airlines/YU.png differ
diff --git a/public/airlines/YV.png b/public/airlines/YV.png
new file mode 100644
index 00000000..f35df84a
Binary files /dev/null and b/public/airlines/YV.png differ
diff --git a/public/airlines/YW.png b/public/airlines/YW.png
new file mode 100644
index 00000000..00b6dd99
Binary files /dev/null and b/public/airlines/YW.png differ
diff --git a/public/airlines/YX.png b/public/airlines/YX.png
new file mode 100644
index 00000000..d2767830
Binary files /dev/null and b/public/airlines/YX.png differ
diff --git a/public/airlines/Z0.png b/public/airlines/Z0.png
new file mode 100644
index 00000000..2aeaa7a1
Binary files /dev/null and b/public/airlines/Z0.png differ
diff --git a/public/airlines/Z2(1).png b/public/airlines/Z2(1).png
new file mode 100644
index 00000000..217f421f
Binary files /dev/null and b/public/airlines/Z2(1).png differ
diff --git a/public/airlines/Z2.png b/public/airlines/Z2.png
new file mode 100644
index 00000000..217f421f
Binary files /dev/null and b/public/airlines/Z2.png differ
diff --git a/public/airlines/Z4.png b/public/airlines/Z4.png
new file mode 100644
index 00000000..a998f09b
Binary files /dev/null and b/public/airlines/Z4.png differ
diff --git a/public/airlines/Z7.png b/public/airlines/Z7.png
new file mode 100644
index 00000000..6559516b
Binary files /dev/null and b/public/airlines/Z7.png differ
diff --git a/public/airlines/Z8.png b/public/airlines/Z8.png
new file mode 100644
index 00000000..03b19da8
Binary files /dev/null and b/public/airlines/Z8.png differ
diff --git a/public/airlines/Z9.png b/public/airlines/Z9.png
new file mode 100644
index 00000000..88ac6d29
Binary files /dev/null and b/public/airlines/Z9.png differ
diff --git a/public/airlines/ZA.png b/public/airlines/ZA.png
new file mode 100644
index 00000000..cb3ad8fa
Binary files /dev/null and b/public/airlines/ZA.png differ
diff --git a/public/airlines/ZE.png b/public/airlines/ZE.png
new file mode 100644
index 00000000..ff3f8639
Binary files /dev/null and b/public/airlines/ZE.png differ
diff --git a/public/airlines/ZG.png b/public/airlines/ZG.png
new file mode 100644
index 00000000..9a440029
Binary files /dev/null and b/public/airlines/ZG.png differ
diff --git a/public/airlines/ZH.png b/public/airlines/ZH.png
new file mode 100644
index 00000000..6e70614f
Binary files /dev/null and b/public/airlines/ZH.png differ
diff --git a/public/airlines/ZI.png b/public/airlines/ZI.png
new file mode 100644
index 00000000..e971de50
Binary files /dev/null and b/public/airlines/ZI.png differ
diff --git a/public/airlines/ZK.png b/public/airlines/ZK.png
new file mode 100644
index 00000000..007bc662
Binary files /dev/null and b/public/airlines/ZK.png differ
diff --git a/public/airlines/ZL.png b/public/airlines/ZL.png
new file mode 100644
index 00000000..f7f1f5d2
Binary files /dev/null and b/public/airlines/ZL.png differ
diff --git a/public/airlines/ZN.png b/public/airlines/ZN.png
new file mode 100644
index 00000000..80666ea2
Binary files /dev/null and b/public/airlines/ZN.png differ
diff --git a/public/airlines/ZR.png b/public/airlines/ZR.png
new file mode 100644
index 00000000..452c172e
Binary files /dev/null and b/public/airlines/ZR.png differ
diff --git a/public/airlines/ZT.png b/public/airlines/ZT.png
new file mode 100644
index 00000000..68738372
Binary files /dev/null and b/public/airlines/ZT.png differ
diff --git a/public/airlines/ZW.png b/public/airlines/ZW.png
new file mode 100644
index 00000000..0c27bedc
Binary files /dev/null and b/public/airlines/ZW.png differ
diff --git a/public/airlines/__MACOSX/._airlines b/public/airlines/__MACOSX/._airlines
new file mode 100644
index 00000000..a34b003c
Binary files /dev/null and b/public/airlines/__MACOSX/._airlines differ
diff --git a/public/airlines/airlines/0V.png b/public/airlines/airlines/0V.png
new file mode 100644
index 00000000..0abf6574
Binary files /dev/null and b/public/airlines/airlines/0V.png differ
diff --git a/public/airlines/airlines/1I.png b/public/airlines/airlines/1I.png
new file mode 100644
index 00000000..10289e97
Binary files /dev/null and b/public/airlines/airlines/1I.png differ
diff --git a/public/airlines/airlines/1L.png b/public/airlines/airlines/1L.png
new file mode 100644
index 00000000..5eafe1fa
Binary files /dev/null and b/public/airlines/airlines/1L.png differ
diff --git a/public/airlines/airlines/2A.png b/public/airlines/airlines/2A.png
new file mode 100644
index 00000000..2f6e709d
Binary files /dev/null and b/public/airlines/airlines/2A.png differ
diff --git a/public/airlines/airlines/2C(1).png b/public/airlines/airlines/2C(1).png
new file mode 100644
index 00000000..0e01dbe5
Binary files /dev/null and b/public/airlines/airlines/2C(1).png differ
diff --git a/public/airlines/airlines/2C.png b/public/airlines/airlines/2C.png
new file mode 100644
index 00000000..0e01dbe5
Binary files /dev/null and b/public/airlines/airlines/2C.png differ
diff --git a/public/airlines/airlines/2G.png b/public/airlines/airlines/2G.png
new file mode 100644
index 00000000..2f91c03a
Binary files /dev/null and b/public/airlines/airlines/2G.png differ
diff --git a/public/airlines/airlines/2H.png b/public/airlines/airlines/2H.png
new file mode 100644
index 00000000..45001068
Binary files /dev/null and b/public/airlines/airlines/2H.png differ
diff --git a/public/airlines/airlines/2I.png b/public/airlines/airlines/2I.png
new file mode 100644
index 00000000..bea2eadc
Binary files /dev/null and b/public/airlines/airlines/2I.png differ
diff --git a/public/airlines/airlines/2J.png b/public/airlines/airlines/2J.png
new file mode 100644
index 00000000..ce06aa5d
Binary files /dev/null and b/public/airlines/airlines/2J.png differ
diff --git a/public/airlines/airlines/2K.png b/public/airlines/airlines/2K.png
new file mode 100644
index 00000000..49c8911f
Binary files /dev/null and b/public/airlines/airlines/2K.png differ
diff --git a/public/airlines/airlines/2L.png b/public/airlines/airlines/2L.png
new file mode 100644
index 00000000..df2d3559
Binary files /dev/null and b/public/airlines/airlines/2L.png differ
diff --git a/public/airlines/airlines/2M.png b/public/airlines/airlines/2M.png
new file mode 100644
index 00000000..fcd679ae
Binary files /dev/null and b/public/airlines/airlines/2M.png differ
diff --git a/public/airlines/airlines/2N.png b/public/airlines/airlines/2N.png
new file mode 100644
index 00000000..67115451
Binary files /dev/null and b/public/airlines/airlines/2N.png differ
diff --git a/public/airlines/airlines/2P.png b/public/airlines/airlines/2P.png
new file mode 100644
index 00000000..10a8d793
Binary files /dev/null and b/public/airlines/airlines/2P.png differ
diff --git a/public/airlines/airlines/2W.png b/public/airlines/airlines/2W.png
new file mode 100644
index 00000000..04c26e6f
Binary files /dev/null and b/public/airlines/airlines/2W.png differ
diff --git a/public/airlines/airlines/2Z.png b/public/airlines/airlines/2Z.png
new file mode 100644
index 00000000..9cbce794
Binary files /dev/null and b/public/airlines/airlines/2Z.png differ
diff --git a/public/airlines/airlines/3H.png b/public/airlines/airlines/3H.png
new file mode 100644
index 00000000..61392f1d
Binary files /dev/null and b/public/airlines/airlines/3H.png differ
diff --git a/public/airlines/airlines/3K.png b/public/airlines/airlines/3K.png
new file mode 100644
index 00000000..d01e4938
Binary files /dev/null and b/public/airlines/airlines/3K.png differ
diff --git a/public/airlines/airlines/3L(1).png b/public/airlines/airlines/3L(1).png
new file mode 100644
index 00000000..5d8a50f7
Binary files /dev/null and b/public/airlines/airlines/3L(1).png differ
diff --git a/public/airlines/airlines/3L.png b/public/airlines/airlines/3L.png
new file mode 100644
index 00000000..5d8a50f7
Binary files /dev/null and b/public/airlines/airlines/3L.png differ
diff --git a/public/airlines/airlines/3M.png b/public/airlines/airlines/3M.png
new file mode 100644
index 00000000..57798caa
Binary files /dev/null and b/public/airlines/airlines/3M.png differ
diff --git a/public/airlines/airlines/3O.png b/public/airlines/airlines/3O.png
new file mode 100644
index 00000000..559dce38
Binary files /dev/null and b/public/airlines/airlines/3O.png differ
diff --git a/public/airlines/airlines/3S.png b/public/airlines/airlines/3S.png
new file mode 100644
index 00000000..4b785d28
Binary files /dev/null and b/public/airlines/airlines/3S.png differ
diff --git a/public/airlines/airlines/3U.png b/public/airlines/airlines/3U.png
new file mode 100644
index 00000000..311ce53c
Binary files /dev/null and b/public/airlines/airlines/3U.png differ
diff --git a/public/airlines/airlines/3W.png b/public/airlines/airlines/3W.png
new file mode 100644
index 00000000..1f8d3c19
Binary files /dev/null and b/public/airlines/airlines/3W.png differ
diff --git a/public/airlines/airlines/4B.png b/public/airlines/airlines/4B.png
new file mode 100644
index 00000000..58a80c87
Binary files /dev/null and b/public/airlines/airlines/4B.png differ
diff --git a/public/airlines/airlines/4C.png b/public/airlines/airlines/4C.png
new file mode 100644
index 00000000..46eecbdb
Binary files /dev/null and b/public/airlines/airlines/4C.png differ
diff --git a/public/airlines/airlines/4D.png b/public/airlines/airlines/4D.png
new file mode 100644
index 00000000..8828d00a
Binary files /dev/null and b/public/airlines/airlines/4D.png differ
diff --git a/public/airlines/airlines/4G.png b/public/airlines/airlines/4G.png
new file mode 100644
index 00000000..3fefadb9
Binary files /dev/null and b/public/airlines/airlines/4G.png differ
diff --git a/public/airlines/airlines/4J.png b/public/airlines/airlines/4J.png
new file mode 100644
index 00000000..f2df3e85
Binary files /dev/null and b/public/airlines/airlines/4J.png differ
diff --git a/public/airlines/airlines/4M.png b/public/airlines/airlines/4M.png
new file mode 100644
index 00000000..8f5999ed
Binary files /dev/null and b/public/airlines/airlines/4M.png differ
diff --git a/public/airlines/airlines/4N.png b/public/airlines/airlines/4N.png
new file mode 100644
index 00000000..cc3dfc57
Binary files /dev/null and b/public/airlines/airlines/4N.png differ
diff --git a/public/airlines/airlines/4O.png b/public/airlines/airlines/4O.png
new file mode 100644
index 00000000..fdf4d3ea
Binary files /dev/null and b/public/airlines/airlines/4O.png differ
diff --git a/public/airlines/airlines/4Q.png b/public/airlines/airlines/4Q.png
new file mode 100644
index 00000000..65fb7fc4
Binary files /dev/null and b/public/airlines/airlines/4Q.png differ
diff --git a/public/airlines/airlines/4T.png b/public/airlines/airlines/4T.png
new file mode 100644
index 00000000..b45ef76e
Binary files /dev/null and b/public/airlines/airlines/4T.png differ
diff --git a/public/airlines/airlines/4U.png b/public/airlines/airlines/4U.png
new file mode 100644
index 00000000..eb4af76a
Binary files /dev/null and b/public/airlines/airlines/4U.png differ
diff --git a/public/airlines/airlines/4Z.png b/public/airlines/airlines/4Z.png
new file mode 100644
index 00000000..b8d88b36
Binary files /dev/null and b/public/airlines/airlines/4Z.png differ
diff --git a/public/airlines/airlines/5B.png b/public/airlines/airlines/5B.png
new file mode 100644
index 00000000..ae9f3e3c
Binary files /dev/null and b/public/airlines/airlines/5B.png differ
diff --git a/public/airlines/airlines/5C.png b/public/airlines/airlines/5C.png
new file mode 100644
index 00000000..d910e4b8
Binary files /dev/null and b/public/airlines/airlines/5C.png differ
diff --git a/public/airlines/airlines/5D.png b/public/airlines/airlines/5D.png
new file mode 100644
index 00000000..c0d9c1e0
Binary files /dev/null and b/public/airlines/airlines/5D.png differ
diff --git a/public/airlines/airlines/5F(1).png b/public/airlines/airlines/5F(1).png
new file mode 100644
index 00000000..0616c461
Binary files /dev/null and b/public/airlines/airlines/5F(1).png differ
diff --git a/public/airlines/airlines/5F.png b/public/airlines/airlines/5F.png
new file mode 100644
index 00000000..0616c461
Binary files /dev/null and b/public/airlines/airlines/5F.png differ
diff --git a/public/airlines/airlines/5H.png b/public/airlines/airlines/5H.png
new file mode 100644
index 00000000..0e1e5fc0
Binary files /dev/null and b/public/airlines/airlines/5H.png differ
diff --git a/public/airlines/airlines/5J.png b/public/airlines/airlines/5J.png
new file mode 100644
index 00000000..efcc3377
Binary files /dev/null and b/public/airlines/airlines/5J.png differ
diff --git a/public/airlines/airlines/5N.png b/public/airlines/airlines/5N.png
new file mode 100644
index 00000000..ab2f8506
Binary files /dev/null and b/public/airlines/airlines/5N.png differ
diff --git a/public/airlines/airlines/5O.png b/public/airlines/airlines/5O.png
new file mode 100644
index 00000000..b5cfdf50
Binary files /dev/null and b/public/airlines/airlines/5O.png differ
diff --git a/public/airlines/airlines/5T.png b/public/airlines/airlines/5T.png
new file mode 100644
index 00000000..e6bbc10f
Binary files /dev/null and b/public/airlines/airlines/5T.png differ
diff --git a/public/airlines/airlines/5U.png b/public/airlines/airlines/5U.png
new file mode 100644
index 00000000..822f7093
Binary files /dev/null and b/public/airlines/airlines/5U.png differ
diff --git a/public/airlines/airlines/5W(1).png b/public/airlines/airlines/5W(1).png
new file mode 100644
index 00000000..0d79adac
Binary files /dev/null and b/public/airlines/airlines/5W(1).png differ
diff --git a/public/airlines/airlines/5W.png b/public/airlines/airlines/5W.png
new file mode 100644
index 00000000..0d79adac
Binary files /dev/null and b/public/airlines/airlines/5W.png differ
diff --git a/public/airlines/airlines/5Z.png b/public/airlines/airlines/5Z.png
new file mode 100644
index 00000000..b37eb68e
Binary files /dev/null and b/public/airlines/airlines/5Z.png differ
diff --git a/public/airlines/airlines/6E.png b/public/airlines/airlines/6E.png
new file mode 100644
index 00000000..8f457716
Binary files /dev/null and b/public/airlines/airlines/6E.png differ
diff --git a/public/airlines/airlines/6H(1).png b/public/airlines/airlines/6H(1).png
new file mode 100644
index 00000000..61272ba5
Binary files /dev/null and b/public/airlines/airlines/6H(1).png differ
diff --git a/public/airlines/airlines/6H.png b/public/airlines/airlines/6H.png
new file mode 100644
index 00000000..61272ba5
Binary files /dev/null and b/public/airlines/airlines/6H.png differ
diff --git a/public/airlines/airlines/6J.png b/public/airlines/airlines/6J.png
new file mode 100644
index 00000000..5ae28864
Binary files /dev/null and b/public/airlines/airlines/6J.png differ
diff --git a/public/airlines/airlines/6S.png b/public/airlines/airlines/6S.png
new file mode 100644
index 00000000..1dd9561d
Binary files /dev/null and b/public/airlines/airlines/6S.png differ
diff --git a/public/airlines/airlines/6Y.png b/public/airlines/airlines/6Y.png
new file mode 100644
index 00000000..870346ee
Binary files /dev/null and b/public/airlines/airlines/6Y.png differ
diff --git a/public/airlines/airlines/6Z.png b/public/airlines/airlines/6Z.png
new file mode 100644
index 00000000..205afd8e
Binary files /dev/null and b/public/airlines/airlines/6Z.png differ
diff --git a/public/airlines/airlines/7C.png b/public/airlines/airlines/7C.png
new file mode 100644
index 00000000..7cd76f67
Binary files /dev/null and b/public/airlines/airlines/7C.png differ
diff --git a/public/airlines/airlines/7E.png b/public/airlines/airlines/7E.png
new file mode 100644
index 00000000..2bfbb961
Binary files /dev/null and b/public/airlines/airlines/7E.png differ
diff --git a/public/airlines/airlines/7F.png b/public/airlines/airlines/7F.png
new file mode 100644
index 00000000..3535e3d6
Binary files /dev/null and b/public/airlines/airlines/7F.png differ
diff --git a/public/airlines/airlines/7G.png b/public/airlines/airlines/7G.png
new file mode 100644
index 00000000..2ef915e1
Binary files /dev/null and b/public/airlines/airlines/7G.png differ
diff --git a/public/airlines/airlines/7H.png b/public/airlines/airlines/7H.png
new file mode 100644
index 00000000..223760a6
Binary files /dev/null and b/public/airlines/airlines/7H.png differ
diff --git a/public/airlines/airlines/7I(1).png b/public/airlines/airlines/7I(1).png
new file mode 100644
index 00000000..b8754cb7
Binary files /dev/null and b/public/airlines/airlines/7I(1).png differ
diff --git a/public/airlines/airlines/7I.png b/public/airlines/airlines/7I.png
new file mode 100644
index 00000000..b8754cb7
Binary files /dev/null and b/public/airlines/airlines/7I.png differ
diff --git a/public/airlines/airlines/7J.png b/public/airlines/airlines/7J.png
new file mode 100644
index 00000000..01c782b1
Binary files /dev/null and b/public/airlines/airlines/7J.png differ
diff --git a/public/airlines/airlines/7M.png b/public/airlines/airlines/7M.png
new file mode 100644
index 00000000..1d84b7d9
Binary files /dev/null and b/public/airlines/airlines/7M.png differ
diff --git a/public/airlines/airlines/7Q.png b/public/airlines/airlines/7Q.png
new file mode 100644
index 00000000..7ddb1a2a
Binary files /dev/null and b/public/airlines/airlines/7Q.png differ
diff --git a/public/airlines/airlines/7R.png b/public/airlines/airlines/7R.png
new file mode 100644
index 00000000..9999bf34
Binary files /dev/null and b/public/airlines/airlines/7R.png differ
diff --git a/public/airlines/airlines/7W.png b/public/airlines/airlines/7W.png
new file mode 100644
index 00000000..5f529de3
Binary files /dev/null and b/public/airlines/airlines/7W.png differ
diff --git a/public/airlines/airlines/8H.png b/public/airlines/airlines/8H.png
new file mode 100644
index 00000000..b3a3989b
Binary files /dev/null and b/public/airlines/airlines/8H.png differ
diff --git a/public/airlines/airlines/8J.png b/public/airlines/airlines/8J.png
new file mode 100644
index 00000000..2083a744
Binary files /dev/null and b/public/airlines/airlines/8J.png differ
diff --git a/public/airlines/airlines/8L(1).png b/public/airlines/airlines/8L(1).png
new file mode 100644
index 00000000..413e1e80
Binary files /dev/null and b/public/airlines/airlines/8L(1).png differ
diff --git a/public/airlines/airlines/8L.png b/public/airlines/airlines/8L.png
new file mode 100644
index 00000000..413e1e80
Binary files /dev/null and b/public/airlines/airlines/8L.png differ
diff --git a/public/airlines/airlines/8M.png b/public/airlines/airlines/8M.png
new file mode 100644
index 00000000..c7bb4d75
Binary files /dev/null and b/public/airlines/airlines/8M.png differ
diff --git a/public/airlines/airlines/8P.png b/public/airlines/airlines/8P.png
new file mode 100644
index 00000000..0cf7a245
Binary files /dev/null and b/public/airlines/airlines/8P.png differ
diff --git a/public/airlines/airlines/8Q.png b/public/airlines/airlines/8Q.png
new file mode 100644
index 00000000..65bae868
Binary files /dev/null and b/public/airlines/airlines/8Q.png differ
diff --git a/public/airlines/airlines/8U.png b/public/airlines/airlines/8U.png
new file mode 100644
index 00000000..4f07790c
Binary files /dev/null and b/public/airlines/airlines/8U.png differ
diff --git a/public/airlines/airlines/9B(1).png b/public/airlines/airlines/9B(1).png
new file mode 100644
index 00000000..6808110b
Binary files /dev/null and b/public/airlines/airlines/9B(1).png differ
diff --git a/public/airlines/airlines/9B.png b/public/airlines/airlines/9B.png
new file mode 100644
index 00000000..6808110b
Binary files /dev/null and b/public/airlines/airlines/9B.png differ
diff --git a/public/airlines/airlines/9E.png b/public/airlines/airlines/9E.png
new file mode 100644
index 00000000..36a62500
Binary files /dev/null and b/public/airlines/airlines/9E.png differ
diff --git a/public/airlines/airlines/9F(1).png b/public/airlines/airlines/9F(1).png
new file mode 100644
index 00000000..72c686d2
Binary files /dev/null and b/public/airlines/airlines/9F(1).png differ
diff --git a/public/airlines/airlines/9F.png b/public/airlines/airlines/9F.png
new file mode 100644
index 00000000..72c686d2
Binary files /dev/null and b/public/airlines/airlines/9F.png differ
diff --git a/public/airlines/airlines/9I.png b/public/airlines/airlines/9I.png
new file mode 100644
index 00000000..66d67d20
Binary files /dev/null and b/public/airlines/airlines/9I.png differ
diff --git a/public/airlines/airlines/9K.png b/public/airlines/airlines/9K.png
new file mode 100644
index 00000000..16376928
Binary files /dev/null and b/public/airlines/airlines/9K.png differ
diff --git a/public/airlines/airlines/9M.png b/public/airlines/airlines/9M.png
new file mode 100644
index 00000000..cbd6d6d5
Binary files /dev/null and b/public/airlines/airlines/9M.png differ
diff --git a/public/airlines/airlines/9N.png b/public/airlines/airlines/9N.png
new file mode 100644
index 00000000..c856bf9a
Binary files /dev/null and b/public/airlines/airlines/9N.png differ
diff --git a/public/airlines/airlines/9P.png b/public/airlines/airlines/9P.png
new file mode 100644
index 00000000..654bf187
Binary files /dev/null and b/public/airlines/airlines/9P.png differ
diff --git a/public/airlines/airlines/9R.png b/public/airlines/airlines/9R.png
new file mode 100644
index 00000000..43b59872
Binary files /dev/null and b/public/airlines/airlines/9R.png differ
diff --git a/public/airlines/airlines/9U.png b/public/airlines/airlines/9U.png
new file mode 100644
index 00000000..c302754d
Binary files /dev/null and b/public/airlines/airlines/9U.png differ
diff --git a/public/airlines/airlines/9V.png b/public/airlines/airlines/9V.png
new file mode 100644
index 00000000..55a3db72
Binary files /dev/null and b/public/airlines/airlines/9V.png differ
diff --git a/public/airlines/airlines/9W.png b/public/airlines/airlines/9W.png
new file mode 100644
index 00000000..db15541e
Binary files /dev/null and b/public/airlines/airlines/9W.png differ
diff --git a/public/airlines/airlines/9X.png b/public/airlines/airlines/9X.png
new file mode 100644
index 00000000..76dcf061
Binary files /dev/null and b/public/airlines/airlines/9X.png differ
diff --git a/public/airlines/airlines/A3.png b/public/airlines/airlines/A3.png
new file mode 100644
index 00000000..009103cd
Binary files /dev/null and b/public/airlines/airlines/A3.png differ
diff --git a/public/airlines/airlines/A4.png b/public/airlines/airlines/A4.png
new file mode 100644
index 00000000..46f37184
Binary files /dev/null and b/public/airlines/airlines/A4.png differ
diff --git a/public/airlines/airlines/A5.png b/public/airlines/airlines/A5.png
new file mode 100644
index 00000000..fef2abf4
Binary files /dev/null and b/public/airlines/airlines/A5.png differ
diff --git a/public/airlines/airlines/A9.png b/public/airlines/airlines/A9.png
new file mode 100644
index 00000000..736922c0
Binary files /dev/null and b/public/airlines/airlines/A9.png differ
diff --git a/public/airlines/airlines/AA.png b/public/airlines/airlines/AA.png
new file mode 100644
index 00000000..443454a6
Binary files /dev/null and b/public/airlines/airlines/AA.png differ
diff --git a/public/airlines/airlines/AB(1).png b/public/airlines/airlines/AB(1).png
new file mode 100644
index 00000000..26cfefa0
Binary files /dev/null and b/public/airlines/airlines/AB(1).png differ
diff --git a/public/airlines/airlines/AB.png b/public/airlines/airlines/AB.png
new file mode 100644
index 00000000..26cfefa0
Binary files /dev/null and b/public/airlines/airlines/AB.png differ
diff --git a/public/airlines/airlines/AC.png b/public/airlines/airlines/AC.png
new file mode 100644
index 00000000..a920b3b5
Binary files /dev/null and b/public/airlines/airlines/AC.png differ
diff --git a/public/airlines/airlines/AD.png b/public/airlines/airlines/AD.png
new file mode 100644
index 00000000..b22588d8
Binary files /dev/null and b/public/airlines/airlines/AD.png differ
diff --git a/public/airlines/airlines/AE.png b/public/airlines/airlines/AE.png
new file mode 100644
index 00000000..ac02885b
Binary files /dev/null and b/public/airlines/airlines/AE.png differ
diff --git a/public/airlines/airlines/AF.png b/public/airlines/airlines/AF.png
new file mode 100644
index 00000000..958ce195
Binary files /dev/null and b/public/airlines/airlines/AF.png differ
diff --git a/public/airlines/airlines/AH.png b/public/airlines/airlines/AH.png
new file mode 100644
index 00000000..24e03e80
Binary files /dev/null and b/public/airlines/airlines/AH.png differ
diff --git a/public/airlines/airlines/AI.png b/public/airlines/airlines/AI.png
new file mode 100644
index 00000000..cbb3a21a
Binary files /dev/null and b/public/airlines/airlines/AI.png differ
diff --git a/public/airlines/airlines/AJ(1).png b/public/airlines/airlines/AJ(1).png
new file mode 100644
index 00000000..c7b2d3c8
Binary files /dev/null and b/public/airlines/airlines/AJ(1).png differ
diff --git a/public/airlines/airlines/AJ.png b/public/airlines/airlines/AJ.png
new file mode 100644
index 00000000..c7b2d3c8
Binary files /dev/null and b/public/airlines/airlines/AJ.png differ
diff --git a/public/airlines/airlines/AK.png b/public/airlines/airlines/AK.png
new file mode 100644
index 00000000..b262172c
Binary files /dev/null and b/public/airlines/airlines/AK.png differ
diff --git a/public/airlines/airlines/AL.png b/public/airlines/airlines/AL.png
new file mode 100644
index 00000000..b31dd89a
Binary files /dev/null and b/public/airlines/airlines/AL.png differ
diff --git a/public/airlines/airlines/AM.png b/public/airlines/airlines/AM.png
new file mode 100644
index 00000000..bcf4c0b1
Binary files /dev/null and b/public/airlines/airlines/AM.png differ
diff --git a/public/airlines/airlines/AQ.png b/public/airlines/airlines/AQ.png
new file mode 100644
index 00000000..4e13578d
Binary files /dev/null and b/public/airlines/airlines/AQ.png differ
diff --git a/public/airlines/airlines/AR.png b/public/airlines/airlines/AR.png
new file mode 100644
index 00000000..e110c7f3
Binary files /dev/null and b/public/airlines/airlines/AR.png differ
diff --git a/public/airlines/airlines/AS.png b/public/airlines/airlines/AS.png
new file mode 100644
index 00000000..ecafe41f
Binary files /dev/null and b/public/airlines/airlines/AS.png differ
diff --git a/public/airlines/airlines/AT.png b/public/airlines/airlines/AT.png
new file mode 100644
index 00000000..fb1b5fd1
Binary files /dev/null and b/public/airlines/airlines/AT.png differ
diff --git a/public/airlines/airlines/AU.png b/public/airlines/airlines/AU.png
new file mode 100644
index 00000000..4fef9ac5
Binary files /dev/null and b/public/airlines/airlines/AU.png differ
diff --git a/public/airlines/airlines/AV.png b/public/airlines/airlines/AV.png
new file mode 100644
index 00000000..0c322749
Binary files /dev/null and b/public/airlines/airlines/AV.png differ
diff --git a/public/airlines/airlines/AW.png b/public/airlines/airlines/AW.png
new file mode 100644
index 00000000..443a127e
Binary files /dev/null and b/public/airlines/airlines/AW.png differ
diff --git a/public/airlines/airlines/AX.png b/public/airlines/airlines/AX.png
new file mode 100644
index 00000000..aed08b42
Binary files /dev/null and b/public/airlines/airlines/AX.png differ
diff --git a/public/airlines/airlines/AY.png b/public/airlines/airlines/AY.png
new file mode 100644
index 00000000..57419ec2
Binary files /dev/null and b/public/airlines/airlines/AY.png differ
diff --git a/public/airlines/airlines/AZ.png b/public/airlines/airlines/AZ.png
new file mode 100644
index 00000000..fd4bf8eb
Binary files /dev/null and b/public/airlines/airlines/AZ.png differ
diff --git a/public/airlines/airlines/B2.png b/public/airlines/airlines/B2.png
new file mode 100644
index 00000000..c4822ab7
Binary files /dev/null and b/public/airlines/airlines/B2.png differ
diff --git a/public/airlines/airlines/B3.png b/public/airlines/airlines/B3.png
new file mode 100644
index 00000000..b7a51007
Binary files /dev/null and b/public/airlines/airlines/B3.png differ
diff --git a/public/airlines/airlines/B5.png b/public/airlines/airlines/B5.png
new file mode 100644
index 00000000..da1545ba
Binary files /dev/null and b/public/airlines/airlines/B5.png differ
diff --git a/public/airlines/airlines/B6.png b/public/airlines/airlines/B6.png
new file mode 100644
index 00000000..c63d2590
Binary files /dev/null and b/public/airlines/airlines/B6.png differ
diff --git a/public/airlines/airlines/B7.png b/public/airlines/airlines/B7.png
new file mode 100644
index 00000000..040573e0
Binary files /dev/null and b/public/airlines/airlines/B7.png differ
diff --git a/public/airlines/airlines/B8.png b/public/airlines/airlines/B8.png
new file mode 100644
index 00000000..c4cb9559
Binary files /dev/null and b/public/airlines/airlines/B8.png differ
diff --git a/public/airlines/airlines/BA.png b/public/airlines/airlines/BA.png
new file mode 100644
index 00000000..19511726
Binary files /dev/null and b/public/airlines/airlines/BA.png differ
diff --git a/public/airlines/airlines/BB.png b/public/airlines/airlines/BB.png
new file mode 100644
index 00000000..d965571f
Binary files /dev/null and b/public/airlines/airlines/BB.png differ
diff --git a/public/airlines/airlines/BC.png b/public/airlines/airlines/BC.png
new file mode 100644
index 00000000..bb6a60fc
Binary files /dev/null and b/public/airlines/airlines/BC.png differ
diff --git a/public/airlines/airlines/BD(1).png b/public/airlines/airlines/BD(1).png
new file mode 100644
index 00000000..39e00476
Binary files /dev/null and b/public/airlines/airlines/BD(1).png differ
diff --git a/public/airlines/airlines/BD.png b/public/airlines/airlines/BD.png
new file mode 100644
index 00000000..39e00476
Binary files /dev/null and b/public/airlines/airlines/BD.png differ
diff --git a/public/airlines/airlines/BE.png b/public/airlines/airlines/BE.png
new file mode 100644
index 00000000..ee4f3af6
Binary files /dev/null and b/public/airlines/airlines/BE.png differ
diff --git a/public/airlines/airlines/BF.png b/public/airlines/airlines/BF.png
new file mode 100644
index 00000000..42ecf6ad
Binary files /dev/null and b/public/airlines/airlines/BF.png differ
diff --git a/public/airlines/airlines/BG.png b/public/airlines/airlines/BG.png
new file mode 100644
index 00000000..46c4c5b7
Binary files /dev/null and b/public/airlines/airlines/BG.png differ
diff --git a/public/airlines/airlines/BI.png b/public/airlines/airlines/BI.png
new file mode 100644
index 00000000..97af1d45
Binary files /dev/null and b/public/airlines/airlines/BI.png differ
diff --git a/public/airlines/airlines/BJ.png b/public/airlines/airlines/BJ.png
new file mode 100644
index 00000000..da1b2c76
Binary files /dev/null and b/public/airlines/airlines/BJ.png differ
diff --git a/public/airlines/airlines/BK.png b/public/airlines/airlines/BK.png
new file mode 100644
index 00000000..f7aa54a0
Binary files /dev/null and b/public/airlines/airlines/BK.png differ
diff --git a/public/airlines/airlines/BL.png b/public/airlines/airlines/BL.png
new file mode 100644
index 00000000..d1f72fb4
Binary files /dev/null and b/public/airlines/airlines/BL.png differ
diff --git a/public/airlines/airlines/BM.png b/public/airlines/airlines/BM.png
new file mode 100644
index 00000000..ab516df0
Binary files /dev/null and b/public/airlines/airlines/BM.png differ
diff --git a/public/airlines/airlines/BP.png b/public/airlines/airlines/BP.png
new file mode 100644
index 00000000..8cc0e143
Binary files /dev/null and b/public/airlines/airlines/BP.png differ
diff --git a/public/airlines/airlines/BR.png b/public/airlines/airlines/BR.png
new file mode 100644
index 00000000..ecfb7c44
Binary files /dev/null and b/public/airlines/airlines/BR.png differ
diff --git a/public/airlines/airlines/BS(1).png b/public/airlines/airlines/BS(1).png
new file mode 100644
index 00000000..19511726
Binary files /dev/null and b/public/airlines/airlines/BS(1).png differ
diff --git a/public/airlines/airlines/BS.png b/public/airlines/airlines/BS.png
new file mode 100644
index 00000000..19511726
Binary files /dev/null and b/public/airlines/airlines/BS.png differ
diff --git a/public/airlines/airlines/BT.png b/public/airlines/airlines/BT.png
new file mode 100644
index 00000000..b774bbc7
Binary files /dev/null and b/public/airlines/airlines/BT.png differ
diff --git a/public/airlines/airlines/BU.png b/public/airlines/airlines/BU.png
new file mode 100644
index 00000000..42ecd8d8
Binary files /dev/null and b/public/airlines/airlines/BU.png differ
diff --git a/public/airlines/airlines/BV.png b/public/airlines/airlines/BV.png
new file mode 100644
index 00000000..dd6ea3b4
Binary files /dev/null and b/public/airlines/airlines/BV.png differ
diff --git a/public/airlines/airlines/BW.png b/public/airlines/airlines/BW.png
new file mode 100644
index 00000000..9957e07d
Binary files /dev/null and b/public/airlines/airlines/BW.png differ
diff --git a/public/airlines/airlines/BX.png b/public/airlines/airlines/BX.png
new file mode 100644
index 00000000..3f82b11d
Binary files /dev/null and b/public/airlines/airlines/BX.png differ
diff --git a/public/airlines/airlines/BY.png b/public/airlines/airlines/BY.png
new file mode 100644
index 00000000..df560809
Binary files /dev/null and b/public/airlines/airlines/BY.png differ
diff --git a/public/airlines/airlines/BZ.png b/public/airlines/airlines/BZ.png
new file mode 100644
index 00000000..ca16350a
Binary files /dev/null and b/public/airlines/airlines/BZ.png differ
diff --git a/public/airlines/airlines/C2.png b/public/airlines/airlines/C2.png
new file mode 100644
index 00000000..45121726
Binary files /dev/null and b/public/airlines/airlines/C2.png differ
diff --git a/public/airlines/airlines/C3.png b/public/airlines/airlines/C3.png
new file mode 100644
index 00000000..0b7ce248
Binary files /dev/null and b/public/airlines/airlines/C3.png differ
diff --git a/public/airlines/airlines/C5.png b/public/airlines/airlines/C5.png
new file mode 100644
index 00000000..bb857b99
Binary files /dev/null and b/public/airlines/airlines/C5.png differ
diff --git a/public/airlines/airlines/CA.png b/public/airlines/airlines/CA.png
new file mode 100644
index 00000000..5e0ecb20
Binary files /dev/null and b/public/airlines/airlines/CA.png differ
diff --git a/public/airlines/airlines/CC(1).png b/public/airlines/airlines/CC(1).png
new file mode 100644
index 00000000..2953a4c4
Binary files /dev/null and b/public/airlines/airlines/CC(1).png differ
diff --git a/public/airlines/airlines/CC.png b/public/airlines/airlines/CC.png
new file mode 100644
index 00000000..2953a4c4
Binary files /dev/null and b/public/airlines/airlines/CC.png differ
diff --git a/public/airlines/airlines/CD.png b/public/airlines/airlines/CD.png
new file mode 100644
index 00000000..05189860
Binary files /dev/null and b/public/airlines/airlines/CD.png differ
diff --git a/public/airlines/airlines/CE.png b/public/airlines/airlines/CE.png
new file mode 100644
index 00000000..fe2ca983
Binary files /dev/null and b/public/airlines/airlines/CE.png differ
diff --git a/public/airlines/airlines/CF.png b/public/airlines/airlines/CF.png
new file mode 100644
index 00000000..b4588e0a
Binary files /dev/null and b/public/airlines/airlines/CF.png differ
diff --git a/public/airlines/airlines/CG.png b/public/airlines/airlines/CG.png
new file mode 100644
index 00000000..ab56b5c7
Binary files /dev/null and b/public/airlines/airlines/CG.png differ
diff --git a/public/airlines/airlines/CI.png b/public/airlines/airlines/CI.png
new file mode 100644
index 00000000..b8ade0b8
Binary files /dev/null and b/public/airlines/airlines/CI.png differ
diff --git a/public/airlines/airlines/CJ.png b/public/airlines/airlines/CJ.png
new file mode 100644
index 00000000..2e76d8b8
Binary files /dev/null and b/public/airlines/airlines/CJ.png differ
diff --git a/public/airlines/airlines/CL.png b/public/airlines/airlines/CL.png
new file mode 100644
index 00000000..9db14a45
Binary files /dev/null and b/public/airlines/airlines/CL.png differ
diff --git a/public/airlines/airlines/CM.png b/public/airlines/airlines/CM.png
new file mode 100644
index 00000000..4c3ead51
Binary files /dev/null and b/public/airlines/airlines/CM.png differ
diff --git a/public/airlines/airlines/CN.png b/public/airlines/airlines/CN.png
new file mode 100644
index 00000000..a38ba919
Binary files /dev/null and b/public/airlines/airlines/CN.png differ
diff --git a/public/airlines/airlines/CO(1).png b/public/airlines/airlines/CO(1).png
new file mode 100644
index 00000000..69dc1746
Binary files /dev/null and b/public/airlines/airlines/CO(1).png differ
diff --git a/public/airlines/airlines/CO.png b/public/airlines/airlines/CO.png
new file mode 100644
index 00000000..69dc1746
Binary files /dev/null and b/public/airlines/airlines/CO.png differ
diff --git a/public/airlines/airlines/CQ.png b/public/airlines/airlines/CQ.png
new file mode 100644
index 00000000..ee23bdd9
Binary files /dev/null and b/public/airlines/airlines/CQ.png differ
diff --git a/public/airlines/airlines/CR.png b/public/airlines/airlines/CR.png
new file mode 100644
index 00000000..0d298145
Binary files /dev/null and b/public/airlines/airlines/CR.png differ
diff --git a/public/airlines/airlines/CT.png b/public/airlines/airlines/CT.png
new file mode 100644
index 00000000..47019381
Binary files /dev/null and b/public/airlines/airlines/CT.png differ
diff --git a/public/airlines/airlines/CU.png b/public/airlines/airlines/CU.png
new file mode 100644
index 00000000..0b61e723
Binary files /dev/null and b/public/airlines/airlines/CU.png differ
diff --git a/public/airlines/airlines/CV.png b/public/airlines/airlines/CV.png
new file mode 100644
index 00000000..b3220390
Binary files /dev/null and b/public/airlines/airlines/CV.png differ
diff --git a/public/airlines/airlines/CW.png b/public/airlines/airlines/CW.png
new file mode 100644
index 00000000..dc485f46
Binary files /dev/null and b/public/airlines/airlines/CW.png differ
diff --git a/public/airlines/airlines/CX.png b/public/airlines/airlines/CX.png
new file mode 100644
index 00000000..32e8113d
Binary files /dev/null and b/public/airlines/airlines/CX.png differ
diff --git a/public/airlines/airlines/CZ.png b/public/airlines/airlines/CZ.png
new file mode 100644
index 00000000..27f9b9ed
Binary files /dev/null and b/public/airlines/airlines/CZ.png differ
diff --git a/public/airlines/airlines/D7.png b/public/airlines/airlines/D7.png
new file mode 100644
index 00000000..98a4ea81
Binary files /dev/null and b/public/airlines/airlines/D7.png differ
diff --git a/public/airlines/airlines/D8.png b/public/airlines/airlines/D8.png
new file mode 100644
index 00000000..89046c71
Binary files /dev/null and b/public/airlines/airlines/D8.png differ
diff --git a/public/airlines/airlines/DB.png b/public/airlines/airlines/DB.png
new file mode 100644
index 00000000..31dbf5c6
Binary files /dev/null and b/public/airlines/airlines/DB.png differ
diff --git a/public/airlines/airlines/DC.png b/public/airlines/airlines/DC.png
new file mode 100644
index 00000000..54274270
Binary files /dev/null and b/public/airlines/airlines/DC.png differ
diff --git a/public/airlines/airlines/DD.png b/public/airlines/airlines/DD.png
new file mode 100644
index 00000000..efa6c276
Binary files /dev/null and b/public/airlines/airlines/DD.png differ
diff --git a/public/airlines/airlines/DE.png b/public/airlines/airlines/DE.png
new file mode 100644
index 00000000..37b6cfb6
Binary files /dev/null and b/public/airlines/airlines/DE.png differ
diff --git a/public/airlines/airlines/DG.png b/public/airlines/airlines/DG.png
new file mode 100644
index 00000000..8b1b6f03
Binary files /dev/null and b/public/airlines/airlines/DG.png differ
diff --git a/public/airlines/airlines/DK.png b/public/airlines/airlines/DK.png
new file mode 100644
index 00000000..6e5dd02f
Binary files /dev/null and b/public/airlines/airlines/DK.png differ
diff --git a/public/airlines/airlines/DL.png b/public/airlines/airlines/DL.png
new file mode 100644
index 00000000..a22bb894
Binary files /dev/null and b/public/airlines/airlines/DL.png differ
diff --git a/public/airlines/airlines/DO.png b/public/airlines/airlines/DO.png
new file mode 100644
index 00000000..43095975
Binary files /dev/null and b/public/airlines/airlines/DO.png differ
diff --git a/public/airlines/airlines/DQ.png b/public/airlines/airlines/DQ.png
new file mode 100644
index 00000000..920eb528
Binary files /dev/null and b/public/airlines/airlines/DQ.png differ
diff --git a/public/airlines/airlines/DS.png b/public/airlines/airlines/DS.png
new file mode 100644
index 00000000..6c8d1c74
Binary files /dev/null and b/public/airlines/airlines/DS.png differ
diff --git a/public/airlines/airlines/DT.png b/public/airlines/airlines/DT.png
new file mode 100644
index 00000000..af06fa48
Binary files /dev/null and b/public/airlines/airlines/DT.png differ
diff --git a/public/airlines/airlines/DV.png b/public/airlines/airlines/DV.png
new file mode 100644
index 00000000..0e1daa88
Binary files /dev/null and b/public/airlines/airlines/DV.png differ
diff --git a/public/airlines/airlines/DX.png b/public/airlines/airlines/DX.png
new file mode 100644
index 00000000..8876b71c
Binary files /dev/null and b/public/airlines/airlines/DX.png differ
diff --git a/public/airlines/airlines/DY.png b/public/airlines/airlines/DY.png
new file mode 100644
index 00000000..cc5e04a0
Binary files /dev/null and b/public/airlines/airlines/DY.png differ
diff --git a/public/airlines/airlines/E4.png b/public/airlines/airlines/E4.png
new file mode 100644
index 00000000..a159fb23
Binary files /dev/null and b/public/airlines/airlines/E4.png differ
diff --git a/public/airlines/airlines/E5.png b/public/airlines/airlines/E5.png
new file mode 100644
index 00000000..09cd80d6
Binary files /dev/null and b/public/airlines/airlines/E5.png differ
diff --git a/public/airlines/airlines/E8.png b/public/airlines/airlines/E8.png
new file mode 100644
index 00000000..cda4ab33
Binary files /dev/null and b/public/airlines/airlines/E8.png differ
diff --git a/public/airlines/airlines/E9.png b/public/airlines/airlines/E9.png
new file mode 100644
index 00000000..9747ee07
Binary files /dev/null and b/public/airlines/airlines/E9.png differ
diff --git a/public/airlines/airlines/EB.png b/public/airlines/airlines/EB.png
new file mode 100644
index 00000000..05005661
Binary files /dev/null and b/public/airlines/airlines/EB.png differ
diff --git a/public/airlines/airlines/EC.png b/public/airlines/airlines/EC.png
new file mode 100644
index 00000000..212dbee1
Binary files /dev/null and b/public/airlines/airlines/EC.png differ
diff --git a/public/airlines/airlines/EG.png b/public/airlines/airlines/EG.png
new file mode 100644
index 00000000..26339183
Binary files /dev/null and b/public/airlines/airlines/EG.png differ
diff --git a/public/airlines/airlines/EH.png b/public/airlines/airlines/EH.png
new file mode 100644
index 00000000..e4a53843
Binary files /dev/null and b/public/airlines/airlines/EH.png differ
diff --git a/public/airlines/airlines/EI.png b/public/airlines/airlines/EI.png
new file mode 100644
index 00000000..21ea4bcc
Binary files /dev/null and b/public/airlines/airlines/EI.png differ
diff --git a/public/airlines/airlines/EJ.png b/public/airlines/airlines/EJ.png
new file mode 100644
index 00000000..dabb408e
Binary files /dev/null and b/public/airlines/airlines/EJ.png differ
diff --git a/public/airlines/airlines/EK.png b/public/airlines/airlines/EK.png
new file mode 100644
index 00000000..258f59d4
Binary files /dev/null and b/public/airlines/airlines/EK.png differ
diff --git a/public/airlines/airlines/EL.png b/public/airlines/airlines/EL.png
new file mode 100644
index 00000000..f65b949d
Binary files /dev/null and b/public/airlines/airlines/EL.png differ
diff --git a/public/airlines/airlines/EN.png b/public/airlines/airlines/EN.png
new file mode 100644
index 00000000..2c18f1fa
Binary files /dev/null and b/public/airlines/airlines/EN.png differ
diff --git a/public/airlines/airlines/EO.png b/public/airlines/airlines/EO.png
new file mode 100644
index 00000000..89d441e7
Binary files /dev/null and b/public/airlines/airlines/EO.png differ
diff --git a/public/airlines/airlines/EQ.png b/public/airlines/airlines/EQ.png
new file mode 100644
index 00000000..7e345bc0
Binary files /dev/null and b/public/airlines/airlines/EQ.png differ
diff --git a/public/airlines/airlines/ER.png b/public/airlines/airlines/ER.png
new file mode 100644
index 00000000..b3c58593
Binary files /dev/null and b/public/airlines/airlines/ER.png differ
diff --git a/public/airlines/airlines/ET.png b/public/airlines/airlines/ET.png
new file mode 100644
index 00000000..91e6f71b
Binary files /dev/null and b/public/airlines/airlines/ET.png differ
diff --git a/public/airlines/airlines/EU.png b/public/airlines/airlines/EU.png
new file mode 100644
index 00000000..13c3fde1
Binary files /dev/null and b/public/airlines/airlines/EU.png differ
diff --git a/public/airlines/airlines/EV.png b/public/airlines/airlines/EV.png
new file mode 100644
index 00000000..f183e43e
Binary files /dev/null and b/public/airlines/airlines/EV.png differ
diff --git a/public/airlines/airlines/EW.png b/public/airlines/airlines/EW.png
new file mode 100644
index 00000000..75a78866
Binary files /dev/null and b/public/airlines/airlines/EW.png differ
diff --git a/public/airlines/airlines/EY.png b/public/airlines/airlines/EY.png
new file mode 100644
index 00000000..0c4f74c6
Binary files /dev/null and b/public/airlines/airlines/EY.png differ
diff --git a/public/airlines/airlines/EZ.png b/public/airlines/airlines/EZ.png
new file mode 100644
index 00000000..4bf2727e
Binary files /dev/null and b/public/airlines/airlines/EZ.png differ
diff --git a/public/airlines/airlines/F3.png b/public/airlines/airlines/F3.png
new file mode 100644
index 00000000..ec3df86c
Binary files /dev/null and b/public/airlines/airlines/F3.png differ
diff --git a/public/airlines/airlines/F7(1).png b/public/airlines/airlines/F7(1).png
new file mode 100644
index 00000000..91decadd
Binary files /dev/null and b/public/airlines/airlines/F7(1).png differ
diff --git a/public/airlines/airlines/F7.png b/public/airlines/airlines/F7.png
new file mode 100644
index 00000000..91decadd
Binary files /dev/null and b/public/airlines/airlines/F7.png differ
diff --git a/public/airlines/airlines/F8.png b/public/airlines/airlines/F8.png
new file mode 100644
index 00000000..8dcac984
Binary files /dev/null and b/public/airlines/airlines/F8.png differ
diff --git a/public/airlines/airlines/F9.png b/public/airlines/airlines/F9.png
new file mode 100644
index 00000000..ae0adbd3
Binary files /dev/null and b/public/airlines/airlines/F9.png differ
diff --git a/public/airlines/airlines/FA.png b/public/airlines/airlines/FA.png
new file mode 100644
index 00000000..d078123a
Binary files /dev/null and b/public/airlines/airlines/FA.png differ
diff --git a/public/airlines/airlines/FB.png b/public/airlines/airlines/FB.png
new file mode 100644
index 00000000..4ac13f55
Binary files /dev/null and b/public/airlines/airlines/FB.png differ
diff --git a/public/airlines/airlines/FC.png b/public/airlines/airlines/FC.png
new file mode 100644
index 00000000..578b27ca
Binary files /dev/null and b/public/airlines/airlines/FC.png differ
diff --git a/public/airlines/airlines/FD.png b/public/airlines/airlines/FD.png
new file mode 100644
index 00000000..9028b828
Binary files /dev/null and b/public/airlines/airlines/FD.png differ
diff --git a/public/airlines/airlines/FH.png b/public/airlines/airlines/FH.png
new file mode 100644
index 00000000..d1f98bc8
Binary files /dev/null and b/public/airlines/airlines/FH.png differ
diff --git a/public/airlines/airlines/FI.png b/public/airlines/airlines/FI.png
new file mode 100644
index 00000000..23cf948a
Binary files /dev/null and b/public/airlines/airlines/FI.png differ
diff --git a/public/airlines/airlines/FJ.png b/public/airlines/airlines/FJ.png
new file mode 100644
index 00000000..8bccdf91
Binary files /dev/null and b/public/airlines/airlines/FJ.png differ
diff --git a/public/airlines/airlines/FM.png b/public/airlines/airlines/FM.png
new file mode 100644
index 00000000..ebd624fa
Binary files /dev/null and b/public/airlines/airlines/FM.png differ
diff --git a/public/airlines/airlines/FN.png b/public/airlines/airlines/FN.png
new file mode 100644
index 00000000..0a35c3c3
Binary files /dev/null and b/public/airlines/airlines/FN.png differ
diff --git a/public/airlines/airlines/FR.png b/public/airlines/airlines/FR.png
new file mode 100644
index 00000000..ecff368b
Binary files /dev/null and b/public/airlines/airlines/FR.png differ
diff --git a/public/airlines/airlines/FT.png b/public/airlines/airlines/FT.png
new file mode 100644
index 00000000..d008fd84
Binary files /dev/null and b/public/airlines/airlines/FT.png differ
diff --git a/public/airlines/airlines/FV.png b/public/airlines/airlines/FV.png
new file mode 100644
index 00000000..d797d30f
Binary files /dev/null and b/public/airlines/airlines/FV.png differ
diff --git a/public/airlines/airlines/FW.png b/public/airlines/airlines/FW.png
new file mode 100644
index 00000000..1c64d1a7
Binary files /dev/null and b/public/airlines/airlines/FW.png differ
diff --git a/public/airlines/airlines/FY.png b/public/airlines/airlines/FY.png
new file mode 100644
index 00000000..c884b818
Binary files /dev/null and b/public/airlines/airlines/FY.png differ
diff --git a/public/airlines/airlines/FZ.png b/public/airlines/airlines/FZ.png
new file mode 100644
index 00000000..7749bb66
Binary files /dev/null and b/public/airlines/airlines/FZ.png differ
diff --git a/public/airlines/airlines/G2.png b/public/airlines/airlines/G2.png
new file mode 100644
index 00000000..b0b9041a
Binary files /dev/null and b/public/airlines/airlines/G2.png differ
diff --git a/public/airlines/airlines/G3.png b/public/airlines/airlines/G3.png
new file mode 100644
index 00000000..0411b7cf
Binary files /dev/null and b/public/airlines/airlines/G3.png differ
diff --git a/public/airlines/airlines/G4.png b/public/airlines/airlines/G4.png
new file mode 100644
index 00000000..04b7f013
Binary files /dev/null and b/public/airlines/airlines/G4.png differ
diff --git a/public/airlines/airlines/G5.png b/public/airlines/airlines/G5.png
new file mode 100644
index 00000000..e4fc1100
Binary files /dev/null and b/public/airlines/airlines/G5.png differ
diff --git a/public/airlines/airlines/G7.png b/public/airlines/airlines/G7.png
new file mode 100644
index 00000000..8c769a26
Binary files /dev/null and b/public/airlines/airlines/G7.png differ
diff --git a/public/airlines/airlines/G8.png b/public/airlines/airlines/G8.png
new file mode 100644
index 00000000..396ccccb
Binary files /dev/null and b/public/airlines/airlines/G8.png differ
diff --git a/public/airlines/airlines/G9.png b/public/airlines/airlines/G9.png
new file mode 100644
index 00000000..5d8a50f7
Binary files /dev/null and b/public/airlines/airlines/G9.png differ
diff --git a/public/airlines/airlines/GA.png b/public/airlines/airlines/GA.png
new file mode 100644
index 00000000..9ff3203c
Binary files /dev/null and b/public/airlines/airlines/GA.png differ
diff --git a/public/airlines/airlines/GE.png b/public/airlines/airlines/GE.png
new file mode 100644
index 00000000..2f3b09da
Binary files /dev/null and b/public/airlines/airlines/GE.png differ
diff --git a/public/airlines/airlines/GF.png b/public/airlines/airlines/GF.png
new file mode 100644
index 00000000..bc594c7a
Binary files /dev/null and b/public/airlines/airlines/GF.png differ
diff --git a/public/airlines/airlines/GH.png b/public/airlines/airlines/GH.png
new file mode 100644
index 00000000..693a18b7
Binary files /dev/null and b/public/airlines/airlines/GH.png differ
diff --git a/public/airlines/airlines/GJ.png b/public/airlines/airlines/GJ.png
new file mode 100644
index 00000000..9f3de796
Binary files /dev/null and b/public/airlines/airlines/GJ.png differ
diff --git a/public/airlines/airlines/GK.png b/public/airlines/airlines/GK.png
new file mode 100644
index 00000000..371b95c1
Binary files /dev/null and b/public/airlines/airlines/GK.png differ
diff --git a/public/airlines/airlines/GL.png b/public/airlines/airlines/GL.png
new file mode 100644
index 00000000..5b5b19bd
Binary files /dev/null and b/public/airlines/airlines/GL.png differ
diff --git a/public/airlines/airlines/GM(1).png b/public/airlines/airlines/GM(1).png
new file mode 100644
index 00000000..c7c1ccc2
Binary files /dev/null and b/public/airlines/airlines/GM(1).png differ
diff --git a/public/airlines/airlines/GM.png b/public/airlines/airlines/GM.png
new file mode 100644
index 00000000..c7c1ccc2
Binary files /dev/null and b/public/airlines/airlines/GM.png differ
diff --git a/public/airlines/airlines/GP(1).png b/public/airlines/airlines/GP(1).png
new file mode 100644
index 00000000..70017688
Binary files /dev/null and b/public/airlines/airlines/GP(1).png differ
diff --git a/public/airlines/airlines/GP.png b/public/airlines/airlines/GP.png
new file mode 100644
index 00000000..70017688
Binary files /dev/null and b/public/airlines/airlines/GP.png differ
diff --git a/public/airlines/airlines/GQ.png b/public/airlines/airlines/GQ.png
new file mode 100644
index 00000000..4f5efbeb
Binary files /dev/null and b/public/airlines/airlines/GQ.png differ
diff --git a/public/airlines/airlines/GR.png b/public/airlines/airlines/GR.png
new file mode 100644
index 00000000..9e6ec649
Binary files /dev/null and b/public/airlines/airlines/GR.png differ
diff --git a/public/airlines/airlines/GS(1).png b/public/airlines/airlines/GS(1).png
new file mode 100644
index 00000000..5d3720cd
Binary files /dev/null and b/public/airlines/airlines/GS(1).png differ
diff --git a/public/airlines/airlines/GS.png b/public/airlines/airlines/GS.png
new file mode 100644
index 00000000..5d3720cd
Binary files /dev/null and b/public/airlines/airlines/GS.png differ
diff --git a/public/airlines/airlines/GV.png b/public/airlines/airlines/GV.png
new file mode 100644
index 00000000..ed9e6140
Binary files /dev/null and b/public/airlines/airlines/GV.png differ
diff --git a/public/airlines/airlines/GZ.png b/public/airlines/airlines/GZ.png
new file mode 100644
index 00000000..df1a344b
Binary files /dev/null and b/public/airlines/airlines/GZ.png differ
diff --git a/public/airlines/airlines/H1(1).png b/public/airlines/airlines/H1(1).png
new file mode 100644
index 00000000..9f044f03
Binary files /dev/null and b/public/airlines/airlines/H1(1).png differ
diff --git a/public/airlines/airlines/H1.png b/public/airlines/airlines/H1.png
new file mode 100644
index 00000000..9f044f03
Binary files /dev/null and b/public/airlines/airlines/H1.png differ
diff --git a/public/airlines/airlines/H2.png b/public/airlines/airlines/H2.png
new file mode 100644
index 00000000..9ddc4a01
Binary files /dev/null and b/public/airlines/airlines/H2.png differ
diff --git a/public/airlines/airlines/H9.png b/public/airlines/airlines/H9.png
new file mode 100644
index 00000000..77aa2ffb
Binary files /dev/null and b/public/airlines/airlines/H9.png differ
diff --git a/public/airlines/airlines/HA.png b/public/airlines/airlines/HA.png
new file mode 100644
index 00000000..5cf9a1b6
Binary files /dev/null and b/public/airlines/airlines/HA.png differ
diff --git a/public/airlines/airlines/HC(1).png b/public/airlines/airlines/HC(1).png
new file mode 100644
index 00000000..93eaa1ba
Binary files /dev/null and b/public/airlines/airlines/HC(1).png differ
diff --git a/public/airlines/airlines/HC.png b/public/airlines/airlines/HC.png
new file mode 100644
index 00000000..93eaa1ba
Binary files /dev/null and b/public/airlines/airlines/HC.png differ
diff --git a/public/airlines/airlines/HD.png b/public/airlines/airlines/HD.png
new file mode 100644
index 00000000..0b75954c
Binary files /dev/null and b/public/airlines/airlines/HD.png differ
diff --git a/public/airlines/airlines/HE.png b/public/airlines/airlines/HE.png
new file mode 100644
index 00000000..6b14656e
Binary files /dev/null and b/public/airlines/airlines/HE.png differ
diff --git a/public/airlines/airlines/HF.png b/public/airlines/airlines/HF.png
new file mode 100644
index 00000000..16fe54b7
Binary files /dev/null and b/public/airlines/airlines/HF.png differ
diff --git a/public/airlines/airlines/HG.png b/public/airlines/airlines/HG.png
new file mode 100644
index 00000000..af82b2e6
Binary files /dev/null and b/public/airlines/airlines/HG.png differ
diff --git a/public/airlines/airlines/HI.png b/public/airlines/airlines/HI.png
new file mode 100644
index 00000000..6783a58d
Binary files /dev/null and b/public/airlines/airlines/HI.png differ
diff --git a/public/airlines/airlines/HM.png b/public/airlines/airlines/HM.png
new file mode 100644
index 00000000..73df5bb5
Binary files /dev/null and b/public/airlines/airlines/HM.png differ
diff --git a/public/airlines/airlines/HO.png b/public/airlines/airlines/HO.png
new file mode 100644
index 00000000..0237be30
Binary files /dev/null and b/public/airlines/airlines/HO.png differ
diff --git a/public/airlines/airlines/HP.png b/public/airlines/airlines/HP.png
new file mode 100644
index 00000000..2b4c9b7b
Binary files /dev/null and b/public/airlines/airlines/HP.png differ
diff --git a/public/airlines/airlines/HQ.png b/public/airlines/airlines/HQ.png
new file mode 100644
index 00000000..414479d2
Binary files /dev/null and b/public/airlines/airlines/HQ.png differ
diff --git a/public/airlines/airlines/HR.png b/public/airlines/airlines/HR.png
new file mode 100644
index 00000000..6cfa270c
Binary files /dev/null and b/public/airlines/airlines/HR.png differ
diff --git a/public/airlines/airlines/HS.png b/public/airlines/airlines/HS.png
new file mode 100644
index 00000000..8f5c7c02
Binary files /dev/null and b/public/airlines/airlines/HS.png differ
diff --git a/public/airlines/airlines/HU.png b/public/airlines/airlines/HU.png
new file mode 100644
index 00000000..98400bc7
Binary files /dev/null and b/public/airlines/airlines/HU.png differ
diff --git a/public/airlines/airlines/HV.png b/public/airlines/airlines/HV.png
new file mode 100644
index 00000000..21ca8608
Binary files /dev/null and b/public/airlines/airlines/HV.png differ
diff --git a/public/airlines/airlines/HX.png b/public/airlines/airlines/HX.png
new file mode 100644
index 00000000..1699a345
Binary files /dev/null and b/public/airlines/airlines/HX.png differ
diff --git a/public/airlines/airlines/HY.png b/public/airlines/airlines/HY.png
new file mode 100644
index 00000000..f610e60f
Binary files /dev/null and b/public/airlines/airlines/HY.png differ
diff --git a/public/airlines/airlines/HZ.png b/public/airlines/airlines/HZ.png
new file mode 100644
index 00000000..1abda8bd
Binary files /dev/null and b/public/airlines/airlines/HZ.png differ
diff --git a/public/airlines/airlines/I2.png b/public/airlines/airlines/I2.png
new file mode 100644
index 00000000..4c7f0752
Binary files /dev/null and b/public/airlines/airlines/I2.png differ
diff --git a/public/airlines/airlines/I5.png b/public/airlines/airlines/I5.png
new file mode 100644
index 00000000..b3ca2650
Binary files /dev/null and b/public/airlines/airlines/I5.png differ
diff --git a/public/airlines/airlines/I9.png b/public/airlines/airlines/I9.png
new file mode 100644
index 00000000..db37c6e7
Binary files /dev/null and b/public/airlines/airlines/I9.png differ
diff --git a/public/airlines/airlines/IA.png b/public/airlines/airlines/IA.png
new file mode 100644
index 00000000..231e5fa3
Binary files /dev/null and b/public/airlines/airlines/IA.png differ
diff --git a/public/airlines/airlines/IB.png b/public/airlines/airlines/IB.png
new file mode 100644
index 00000000..536d42d5
Binary files /dev/null and b/public/airlines/airlines/IB.png differ
diff --git a/public/airlines/airlines/ID.png b/public/airlines/airlines/ID.png
new file mode 100644
index 00000000..70428eaa
Binary files /dev/null and b/public/airlines/airlines/ID.png differ
diff --git a/public/airlines/airlines/IE.png b/public/airlines/airlines/IE.png
new file mode 100644
index 00000000..eb3504a8
Binary files /dev/null and b/public/airlines/airlines/IE.png differ
diff --git a/public/airlines/airlines/IF.png b/public/airlines/airlines/IF.png
new file mode 100644
index 00000000..085991df
Binary files /dev/null and b/public/airlines/airlines/IF.png differ
diff --git a/public/airlines/airlines/IG.png b/public/airlines/airlines/IG.png
new file mode 100644
index 00000000..0dbd7100
Binary files /dev/null and b/public/airlines/airlines/IG.png differ
diff --git a/public/airlines/airlines/IL.png b/public/airlines/airlines/IL.png
new file mode 100644
index 00000000..501d1c8a
Binary files /dev/null and b/public/airlines/airlines/IL.png differ
diff --git a/public/airlines/airlines/IN.png b/public/airlines/airlines/IN.png
new file mode 100644
index 00000000..8a766de6
Binary files /dev/null and b/public/airlines/airlines/IN.png differ
diff --git a/public/airlines/airlines/IO.png b/public/airlines/airlines/IO.png
new file mode 100644
index 00000000..19cd49a5
Binary files /dev/null and b/public/airlines/airlines/IO.png differ
diff --git a/public/airlines/airlines/IR.png b/public/airlines/airlines/IR.png
new file mode 100644
index 00000000..64049459
Binary files /dev/null and b/public/airlines/airlines/IR.png differ
diff --git a/public/airlines/airlines/IT.png b/public/airlines/airlines/IT.png
new file mode 100644
index 00000000..32e14d26
Binary files /dev/null and b/public/airlines/airlines/IT.png differ
diff --git a/public/airlines/airlines/IU.png b/public/airlines/airlines/IU.png
new file mode 100644
index 00000000..82bb0f0f
Binary files /dev/null and b/public/airlines/airlines/IU.png differ
diff --git a/public/airlines/airlines/IW.png b/public/airlines/airlines/IW.png
new file mode 100644
index 00000000..04840c9e
Binary files /dev/null and b/public/airlines/airlines/IW.png differ
diff --git a/public/airlines/airlines/IX.png b/public/airlines/airlines/IX.png
new file mode 100644
index 00000000..afc6dc97
Binary files /dev/null and b/public/airlines/airlines/IX.png differ
diff --git a/public/airlines/airlines/IY.png b/public/airlines/airlines/IY.png
new file mode 100644
index 00000000..8d5d4c49
Binary files /dev/null and b/public/airlines/airlines/IY.png differ
diff --git a/public/airlines/airlines/IZ.png b/public/airlines/airlines/IZ.png
new file mode 100644
index 00000000..f1722f8f
Binary files /dev/null and b/public/airlines/airlines/IZ.png differ
diff --git a/public/airlines/airlines/J2.png b/public/airlines/airlines/J2.png
new file mode 100644
index 00000000..30c71265
Binary files /dev/null and b/public/airlines/airlines/J2.png differ
diff --git a/public/airlines/airlines/J8.png b/public/airlines/airlines/J8.png
new file mode 100644
index 00000000..35da3a2a
Binary files /dev/null and b/public/airlines/airlines/J8.png differ
diff --git a/public/airlines/airlines/J9.png b/public/airlines/airlines/J9.png
new file mode 100644
index 00000000..92498487
Binary files /dev/null and b/public/airlines/airlines/J9.png differ
diff --git a/public/airlines/airlines/JD.png b/public/airlines/airlines/JD.png
new file mode 100644
index 00000000..0a5dfb5e
Binary files /dev/null and b/public/airlines/airlines/JD.png differ
diff --git a/public/airlines/airlines/JE.png b/public/airlines/airlines/JE.png
new file mode 100644
index 00000000..0e25c684
Binary files /dev/null and b/public/airlines/airlines/JE.png differ
diff --git a/public/airlines/airlines/JF.png b/public/airlines/airlines/JF.png
new file mode 100644
index 00000000..199ee5aa
Binary files /dev/null and b/public/airlines/airlines/JF.png differ
diff --git a/public/airlines/airlines/JH.png b/public/airlines/airlines/JH.png
new file mode 100644
index 00000000..5fc971fd
Binary files /dev/null and b/public/airlines/airlines/JH.png differ
diff --git a/public/airlines/airlines/JI.png b/public/airlines/airlines/JI.png
new file mode 100644
index 00000000..ead1b327
Binary files /dev/null and b/public/airlines/airlines/JI.png differ
diff --git a/public/airlines/airlines/JJ.png b/public/airlines/airlines/JJ.png
new file mode 100644
index 00000000..0b3cfc68
Binary files /dev/null and b/public/airlines/airlines/JJ.png differ
diff --git a/public/airlines/airlines/JL.png b/public/airlines/airlines/JL.png
new file mode 100644
index 00000000..72d5d302
Binary files /dev/null and b/public/airlines/airlines/JL.png differ
diff --git a/public/airlines/airlines/JO.png b/public/airlines/airlines/JO.png
new file mode 100644
index 00000000..8b8b428d
Binary files /dev/null and b/public/airlines/airlines/JO.png differ
diff --git a/public/airlines/airlines/JP.png b/public/airlines/airlines/JP.png
new file mode 100644
index 00000000..6c76fe5a
Binary files /dev/null and b/public/airlines/airlines/JP.png differ
diff --git a/public/airlines/airlines/JQ.png b/public/airlines/airlines/JQ.png
new file mode 100644
index 00000000..66f5319a
Binary files /dev/null and b/public/airlines/airlines/JQ.png differ
diff --git a/public/airlines/airlines/JR.png b/public/airlines/airlines/JR.png
new file mode 100644
index 00000000..ca61d74b
Binary files /dev/null and b/public/airlines/airlines/JR.png differ
diff --git a/public/airlines/airlines/JT.png b/public/airlines/airlines/JT.png
new file mode 100644
index 00000000..49652a26
Binary files /dev/null and b/public/airlines/airlines/JT.png differ
diff --git a/public/airlines/airlines/JU.png b/public/airlines/airlines/JU.png
new file mode 100644
index 00000000..23f8f9a0
Binary files /dev/null and b/public/airlines/airlines/JU.png differ
diff --git a/public/airlines/airlines/JV.png b/public/airlines/airlines/JV.png
new file mode 100644
index 00000000..2973f122
Binary files /dev/null and b/public/airlines/airlines/JV.png differ
diff --git a/public/airlines/airlines/JW.png b/public/airlines/airlines/JW.png
new file mode 100644
index 00000000..e8f788f9
Binary files /dev/null and b/public/airlines/airlines/JW.png differ
diff --git a/public/airlines/airlines/JY.png b/public/airlines/airlines/JY.png
new file mode 100644
index 00000000..7449bf33
Binary files /dev/null and b/public/airlines/airlines/JY.png differ
diff --git a/public/airlines/airlines/JZ.png b/public/airlines/airlines/JZ.png
new file mode 100644
index 00000000..09d5b371
Binary files /dev/null and b/public/airlines/airlines/JZ.png differ
diff --git a/public/airlines/airlines/K4.png b/public/airlines/airlines/K4.png
new file mode 100644
index 00000000..a034b768
Binary files /dev/null and b/public/airlines/airlines/K4.png differ
diff --git a/public/airlines/airlines/K6.png b/public/airlines/airlines/K6.png
new file mode 100644
index 00000000..29c4287e
Binary files /dev/null and b/public/airlines/airlines/K6.png differ
diff --git a/public/airlines/airlines/K9.png b/public/airlines/airlines/K9.png
new file mode 100644
index 00000000..65fa950b
Binary files /dev/null and b/public/airlines/airlines/K9.png differ
diff --git a/public/airlines/airlines/KA.png b/public/airlines/airlines/KA.png
new file mode 100644
index 00000000..c89ff36a
Binary files /dev/null and b/public/airlines/airlines/KA.png differ
diff --git a/public/airlines/airlines/KB.png b/public/airlines/airlines/KB.png
new file mode 100644
index 00000000..2da11e0d
Binary files /dev/null and b/public/airlines/airlines/KB.png differ
diff --git a/public/airlines/airlines/KC.png b/public/airlines/airlines/KC.png
new file mode 100644
index 00000000..4d3e9fd5
Binary files /dev/null and b/public/airlines/airlines/KC.png differ
diff --git a/public/airlines/airlines/KD.png b/public/airlines/airlines/KD.png
new file mode 100644
index 00000000..8c6a7c92
Binary files /dev/null and b/public/airlines/airlines/KD.png differ
diff --git a/public/airlines/airlines/KE.png b/public/airlines/airlines/KE.png
new file mode 100644
index 00000000..3f1c65da
Binary files /dev/null and b/public/airlines/airlines/KE.png differ
diff --git a/public/airlines/airlines/KK.png b/public/airlines/airlines/KK.png
new file mode 100644
index 00000000..967a0812
Binary files /dev/null and b/public/airlines/airlines/KK.png differ
diff --git a/public/airlines/airlines/KL.png b/public/airlines/airlines/KL.png
new file mode 100644
index 00000000..aee0783b
Binary files /dev/null and b/public/airlines/airlines/KL.png differ
diff --git a/public/airlines/airlines/KM.png b/public/airlines/airlines/KM.png
new file mode 100644
index 00000000..92d5954c
Binary files /dev/null and b/public/airlines/airlines/KM.png differ
diff --git a/public/airlines/airlines/KN.png b/public/airlines/airlines/KN.png
new file mode 100644
index 00000000..37e37b12
Binary files /dev/null and b/public/airlines/airlines/KN.png differ
diff --git a/public/airlines/airlines/KO.png b/public/airlines/airlines/KO.png
new file mode 100644
index 00000000..cc5058e6
Binary files /dev/null and b/public/airlines/airlines/KO.png differ
diff --git a/public/airlines/airlines/KP.png b/public/airlines/airlines/KP.png
new file mode 100644
index 00000000..ccdc08ff
Binary files /dev/null and b/public/airlines/airlines/KP.png differ
diff --git a/public/airlines/airlines/KQ.png b/public/airlines/airlines/KQ.png
new file mode 100644
index 00000000..2a0f97e5
Binary files /dev/null and b/public/airlines/airlines/KQ.png differ
diff --git a/public/airlines/airlines/KS.png b/public/airlines/airlines/KS.png
new file mode 100644
index 00000000..b7cf1fc3
Binary files /dev/null and b/public/airlines/airlines/KS.png differ
diff --git a/public/airlines/airlines/KU.png b/public/airlines/airlines/KU.png
new file mode 100644
index 00000000..68526604
Binary files /dev/null and b/public/airlines/airlines/KU.png differ
diff --git a/public/airlines/airlines/KX.png b/public/airlines/airlines/KX.png
new file mode 100644
index 00000000..c414c801
Binary files /dev/null and b/public/airlines/airlines/KX.png differ
diff --git a/public/airlines/airlines/KY.png b/public/airlines/airlines/KY.png
new file mode 100644
index 00000000..cbc25d4b
Binary files /dev/null and b/public/airlines/airlines/KY.png differ
diff --git a/public/airlines/airlines/L6(1).png b/public/airlines/airlines/L6(1).png
new file mode 100644
index 00000000..22c10629
Binary files /dev/null and b/public/airlines/airlines/L6(1).png differ
diff --git a/public/airlines/airlines/L6.png b/public/airlines/airlines/L6.png
new file mode 100644
index 00000000..22c10629
Binary files /dev/null and b/public/airlines/airlines/L6.png differ
diff --git a/public/airlines/airlines/LA.png b/public/airlines/airlines/LA.png
new file mode 100644
index 00000000..bd8b3278
Binary files /dev/null and b/public/airlines/airlines/LA.png differ
diff --git a/public/airlines/airlines/LG.png b/public/airlines/airlines/LG.png
new file mode 100644
index 00000000..ab318bf4
Binary files /dev/null and b/public/airlines/airlines/LG.png differ
diff --git a/public/airlines/airlines/LH.png b/public/airlines/airlines/LH.png
new file mode 100644
index 00000000..9db14a45
Binary files /dev/null and b/public/airlines/airlines/LH.png differ
diff --git a/public/airlines/airlines/LI.png b/public/airlines/airlines/LI.png
new file mode 100644
index 00000000..46041afa
Binary files /dev/null and b/public/airlines/airlines/LI.png differ
diff --git a/public/airlines/airlines/LJ.png b/public/airlines/airlines/LJ.png
new file mode 100644
index 00000000..26067515
Binary files /dev/null and b/public/airlines/airlines/LJ.png differ
diff --git a/public/airlines/airlines/LM.png b/public/airlines/airlines/LM.png
new file mode 100644
index 00000000..f4dab3bb
Binary files /dev/null and b/public/airlines/airlines/LM.png differ
diff --git a/public/airlines/airlines/LN.png b/public/airlines/airlines/LN.png
new file mode 100644
index 00000000..5638e4f2
Binary files /dev/null and b/public/airlines/airlines/LN.png differ
diff --git a/public/airlines/airlines/LO.png b/public/airlines/airlines/LO.png
new file mode 100644
index 00000000..3f6ecb8f
Binary files /dev/null and b/public/airlines/airlines/LO.png differ
diff --git a/public/airlines/airlines/LP.png b/public/airlines/airlines/LP.png
new file mode 100644
index 00000000..b7addaab
Binary files /dev/null and b/public/airlines/airlines/LP.png differ
diff --git a/public/airlines/airlines/LQ(1).png b/public/airlines/airlines/LQ(1).png
new file mode 100644
index 00000000..7cc879ad
Binary files /dev/null and b/public/airlines/airlines/LQ(1).png differ
diff --git a/public/airlines/airlines/LQ.png b/public/airlines/airlines/LQ.png
new file mode 100644
index 00000000..7cc879ad
Binary files /dev/null and b/public/airlines/airlines/LQ.png differ
diff --git a/public/airlines/airlines/LR.png b/public/airlines/airlines/LR.png
new file mode 100644
index 00000000..fd886b62
Binary files /dev/null and b/public/airlines/airlines/LR.png differ
diff --git a/public/airlines/airlines/LS.png b/public/airlines/airlines/LS.png
new file mode 100644
index 00000000..7b61ccea
Binary files /dev/null and b/public/airlines/airlines/LS.png differ
diff --git a/public/airlines/airlines/LU.png b/public/airlines/airlines/LU.png
new file mode 100644
index 00000000..19480396
Binary files /dev/null and b/public/airlines/airlines/LU.png differ
diff --git a/public/airlines/airlines/LW.png b/public/airlines/airlines/LW.png
new file mode 100644
index 00000000..4d81552f
Binary files /dev/null and b/public/airlines/airlines/LW.png differ
diff --git a/public/airlines/airlines/LX.png b/public/airlines/airlines/LX.png
new file mode 100644
index 00000000..a93f428f
Binary files /dev/null and b/public/airlines/airlines/LX.png differ
diff --git a/public/airlines/airlines/LY(1).png b/public/airlines/airlines/LY(1).png
new file mode 100644
index 00000000..0e8bf05b
Binary files /dev/null and b/public/airlines/airlines/LY(1).png differ
diff --git a/public/airlines/airlines/LY.png b/public/airlines/airlines/LY.png
new file mode 100644
index 00000000..0e8bf05b
Binary files /dev/null and b/public/airlines/airlines/LY.png differ
diff --git a/public/airlines/airlines/M9(1).png b/public/airlines/airlines/M9(1).png
new file mode 100644
index 00000000..df12f872
Binary files /dev/null and b/public/airlines/airlines/M9(1).png differ
diff --git a/public/airlines/airlines/M9.png b/public/airlines/airlines/M9.png
new file mode 100644
index 00000000..df12f872
Binary files /dev/null and b/public/airlines/airlines/M9.png differ
diff --git a/public/airlines/airlines/MD.png b/public/airlines/airlines/MD.png
new file mode 100644
index 00000000..20796e8e
Binary files /dev/null and b/public/airlines/airlines/MD.png differ
diff --git a/public/airlines/airlines/ME.png b/public/airlines/airlines/ME.png
new file mode 100644
index 00000000..6a24397e
Binary files /dev/null and b/public/airlines/airlines/ME.png differ
diff --git a/public/airlines/airlines/MF.png b/public/airlines/airlines/MF.png
new file mode 100644
index 00000000..5ecd4173
Binary files /dev/null and b/public/airlines/airlines/MF.png differ
diff --git a/public/airlines/airlines/MH.png b/public/airlines/airlines/MH.png
new file mode 100644
index 00000000..48fdb48c
Binary files /dev/null and b/public/airlines/airlines/MH.png differ
diff --git a/public/airlines/airlines/MI.png b/public/airlines/airlines/MI.png
new file mode 100644
index 00000000..fa8dabd6
Binary files /dev/null and b/public/airlines/airlines/MI.png differ
diff --git a/public/airlines/airlines/MJ(1).png b/public/airlines/airlines/MJ(1).png
new file mode 100644
index 00000000..31a8e124
Binary files /dev/null and b/public/airlines/airlines/MJ(1).png differ
diff --git a/public/airlines/airlines/MJ.png b/public/airlines/airlines/MJ.png
new file mode 100644
index 00000000..31a8e124
Binary files /dev/null and b/public/airlines/airlines/MJ.png differ
diff --git a/public/airlines/airlines/MK.png b/public/airlines/airlines/MK.png
new file mode 100644
index 00000000..1365fbff
Binary files /dev/null and b/public/airlines/airlines/MK.png differ
diff --git a/public/airlines/airlines/MM.png b/public/airlines/airlines/MM.png
new file mode 100644
index 00000000..27ce34b1
Binary files /dev/null and b/public/airlines/airlines/MM.png differ
diff --git a/public/airlines/airlines/MN.png b/public/airlines/airlines/MN.png
new file mode 100644
index 00000000..994287ca
Binary files /dev/null and b/public/airlines/airlines/MN.png differ
diff --git a/public/airlines/airlines/MO.png b/public/airlines/airlines/MO.png
new file mode 100644
index 00000000..4fdb28bb
Binary files /dev/null and b/public/airlines/airlines/MO.png differ
diff --git a/public/airlines/airlines/MP.png b/public/airlines/airlines/MP.png
new file mode 100644
index 00000000..c071230c
Binary files /dev/null and b/public/airlines/airlines/MP.png differ
diff --git a/public/airlines/airlines/MR.png b/public/airlines/airlines/MR.png
new file mode 100644
index 00000000..fce9ed7f
Binary files /dev/null and b/public/airlines/airlines/MR.png differ
diff --git a/public/airlines/airlines/MS.png b/public/airlines/airlines/MS.png
new file mode 100644
index 00000000..198161ba
Binary files /dev/null and b/public/airlines/airlines/MS.png differ
diff --git a/public/airlines/airlines/MT.png b/public/airlines/airlines/MT.png
new file mode 100644
index 00000000..c0c415c7
Binary files /dev/null and b/public/airlines/airlines/MT.png differ
diff --git a/public/airlines/airlines/MU.png b/public/airlines/airlines/MU.png
new file mode 100644
index 00000000..5371ed6b
Binary files /dev/null and b/public/airlines/airlines/MU.png differ
diff --git a/public/airlines/airlines/MW.png b/public/airlines/airlines/MW.png
new file mode 100644
index 00000000..bbecd931
Binary files /dev/null and b/public/airlines/airlines/MW.png differ
diff --git a/public/airlines/airlines/MX.png b/public/airlines/airlines/MX.png
new file mode 100644
index 00000000..eb07a5c8
Binary files /dev/null and b/public/airlines/airlines/MX.png differ
diff --git a/public/airlines/airlines/MY.png b/public/airlines/airlines/MY.png
new file mode 100644
index 00000000..fea5a28d
Binary files /dev/null and b/public/airlines/airlines/MY.png differ
diff --git a/public/airlines/airlines/N4.png b/public/airlines/airlines/N4.png
new file mode 100644
index 00000000..701477c9
Binary files /dev/null and b/public/airlines/airlines/N4.png differ
diff --git a/public/airlines/airlines/NE.png b/public/airlines/airlines/NE.png
new file mode 100644
index 00000000..d5d623cd
Binary files /dev/null and b/public/airlines/airlines/NE.png differ
diff --git a/public/airlines/airlines/NF.png b/public/airlines/airlines/NF.png
new file mode 100644
index 00000000..1a3d518c
Binary files /dev/null and b/public/airlines/airlines/NF.png differ
diff --git a/public/airlines/airlines/NG.png b/public/airlines/airlines/NG.png
new file mode 100644
index 00000000..62e5d875
Binary files /dev/null and b/public/airlines/airlines/NG.png differ
diff --git a/public/airlines/airlines/NH.png b/public/airlines/airlines/NH.png
new file mode 100644
index 00000000..f3e110f4
Binary files /dev/null and b/public/airlines/airlines/NH.png differ
diff --git a/public/airlines/airlines/NI.png b/public/airlines/airlines/NI.png
new file mode 100644
index 00000000..bc4074c6
Binary files /dev/null and b/public/airlines/airlines/NI.png differ
diff --git a/public/airlines/airlines/NK.png b/public/airlines/airlines/NK.png
new file mode 100644
index 00000000..b6e7d70c
Binary files /dev/null and b/public/airlines/airlines/NK.png differ
diff --git a/public/airlines/airlines/NM.png b/public/airlines/airlines/NM.png
new file mode 100644
index 00000000..47ae98fd
Binary files /dev/null and b/public/airlines/airlines/NM.png differ
diff --git a/public/airlines/airlines/NO.png b/public/airlines/airlines/NO.png
new file mode 100644
index 00000000..5962be6c
Binary files /dev/null and b/public/airlines/airlines/NO.png differ
diff --git a/public/airlines/airlines/NP.png b/public/airlines/airlines/NP.png
new file mode 100644
index 00000000..5a5b6f5e
Binary files /dev/null and b/public/airlines/airlines/NP.png differ
diff --git a/public/airlines/airlines/NQ.png b/public/airlines/airlines/NQ.png
new file mode 100644
index 00000000..924e415a
Binary files /dev/null and b/public/airlines/airlines/NQ.png differ
diff --git a/public/airlines/airlines/NR.png b/public/airlines/airlines/NR.png
new file mode 100644
index 00000000..28c45be6
Binary files /dev/null and b/public/airlines/airlines/NR.png differ
diff --git a/public/airlines/airlines/NS.png b/public/airlines/airlines/NS.png
new file mode 100644
index 00000000..3163be58
Binary files /dev/null and b/public/airlines/airlines/NS.png differ
diff --git a/public/airlines/airlines/NT.png b/public/airlines/airlines/NT.png
new file mode 100644
index 00000000..dbbeeb6a
Binary files /dev/null and b/public/airlines/airlines/NT.png differ
diff --git a/public/airlines/airlines/NU.png b/public/airlines/airlines/NU.png
new file mode 100644
index 00000000..1e125852
Binary files /dev/null and b/public/airlines/airlines/NU.png differ
diff --git a/public/airlines/airlines/NX.png b/public/airlines/airlines/NX.png
new file mode 100644
index 00000000..c5bd551c
Binary files /dev/null and b/public/airlines/airlines/NX.png differ
diff --git a/public/airlines/airlines/NY.png b/public/airlines/airlines/NY.png
new file mode 100644
index 00000000..ebe8fcec
Binary files /dev/null and b/public/airlines/airlines/NY.png differ
diff --git a/public/airlines/airlines/NZ.png b/public/airlines/airlines/NZ.png
new file mode 100644
index 00000000..a8466d41
Binary files /dev/null and b/public/airlines/airlines/NZ.png differ
diff --git a/public/airlines/airlines/O8.png b/public/airlines/airlines/O8.png
new file mode 100644
index 00000000..ae97c3c2
Binary files /dev/null and b/public/airlines/airlines/O8.png differ
diff --git a/public/airlines/airlines/OA.png b/public/airlines/airlines/OA.png
new file mode 100644
index 00000000..621d0dd1
Binary files /dev/null and b/public/airlines/airlines/OA.png differ
diff --git a/public/airlines/airlines/OB.png b/public/airlines/airlines/OB.png
new file mode 100644
index 00000000..1a1e5bea
Binary files /dev/null and b/public/airlines/airlines/OB.png differ
diff --git a/public/airlines/airlines/OD.png b/public/airlines/airlines/OD.png
new file mode 100644
index 00000000..df91b6a7
Binary files /dev/null and b/public/airlines/airlines/OD.png differ
diff --git a/public/airlines/airlines/OH.png b/public/airlines/airlines/OH.png
new file mode 100644
index 00000000..6f6938c0
Binary files /dev/null and b/public/airlines/airlines/OH.png differ
diff --git a/public/airlines/airlines/OJ.png b/public/airlines/airlines/OJ.png
new file mode 100644
index 00000000..569fa729
Binary files /dev/null and b/public/airlines/airlines/OJ.png differ
diff --git a/public/airlines/airlines/OK.png b/public/airlines/airlines/OK.png
new file mode 100644
index 00000000..37537246
Binary files /dev/null and b/public/airlines/airlines/OK.png differ
diff --git a/public/airlines/airlines/OM.png b/public/airlines/airlines/OM.png
new file mode 100644
index 00000000..f27497bc
Binary files /dev/null and b/public/airlines/airlines/OM.png differ
diff --git a/public/airlines/airlines/OO.png b/public/airlines/airlines/OO.png
new file mode 100644
index 00000000..dae50d39
Binary files /dev/null and b/public/airlines/airlines/OO.png differ
diff --git a/public/airlines/airlines/OR.png b/public/airlines/airlines/OR.png
new file mode 100644
index 00000000..0c928849
Binary files /dev/null and b/public/airlines/airlines/OR.png differ
diff --git a/public/airlines/airlines/OS.png b/public/airlines/airlines/OS.png
new file mode 100644
index 00000000..042da7c7
Binary files /dev/null and b/public/airlines/airlines/OS.png differ
diff --git a/public/airlines/airlines/OU.png b/public/airlines/airlines/OU.png
new file mode 100644
index 00000000..778ef940
Binary files /dev/null and b/public/airlines/airlines/OU.png differ
diff --git a/public/airlines/airlines/OV.png b/public/airlines/airlines/OV.png
new file mode 100644
index 00000000..c5914b84
Binary files /dev/null and b/public/airlines/airlines/OV.png differ
diff --git a/public/airlines/airlines/OX.png b/public/airlines/airlines/OX.png
new file mode 100644
index 00000000..97c06c87
Binary files /dev/null and b/public/airlines/airlines/OX.png differ
diff --git a/public/airlines/airlines/OY.png b/public/airlines/airlines/OY.png
new file mode 100644
index 00000000..aea348c3
Binary files /dev/null and b/public/airlines/airlines/OY.png differ
diff --git a/public/airlines/airlines/OZ.png b/public/airlines/airlines/OZ.png
new file mode 100644
index 00000000..582e14ef
Binary files /dev/null and b/public/airlines/airlines/OZ.png differ
diff --git a/public/airlines/airlines/P0.png b/public/airlines/airlines/P0.png
new file mode 100644
index 00000000..72fd51ef
Binary files /dev/null and b/public/airlines/airlines/P0.png differ
diff --git a/public/airlines/airlines/P4.png b/public/airlines/airlines/P4.png
new file mode 100644
index 00000000..9d7db097
Binary files /dev/null and b/public/airlines/airlines/P4.png differ
diff --git a/public/airlines/airlines/P5.png b/public/airlines/airlines/P5.png
new file mode 100644
index 00000000..e35bfdfb
Binary files /dev/null and b/public/airlines/airlines/P5.png differ
diff --git a/public/airlines/airlines/P6.png b/public/airlines/airlines/P6.png
new file mode 100644
index 00000000..509737d3
Binary files /dev/null and b/public/airlines/airlines/P6.png differ
diff --git a/public/airlines/airlines/P7.png b/public/airlines/airlines/P7.png
new file mode 100644
index 00000000..8cbf4e20
Binary files /dev/null and b/public/airlines/airlines/P7.png differ
diff --git a/public/airlines/airlines/P9.png b/public/airlines/airlines/P9.png
new file mode 100644
index 00000000..d207ae84
Binary files /dev/null and b/public/airlines/airlines/P9.png differ
diff --git a/public/airlines/airlines/PA.png b/public/airlines/airlines/PA.png
new file mode 100644
index 00000000..8971c7b3
Binary files /dev/null and b/public/airlines/airlines/PA.png differ
diff --git a/public/airlines/airlines/PB.png b/public/airlines/airlines/PB.png
new file mode 100644
index 00000000..7fcd750c
Binary files /dev/null and b/public/airlines/airlines/PB.png differ
diff --git a/public/airlines/airlines/PC.png b/public/airlines/airlines/PC.png
new file mode 100644
index 00000000..b6968c38
Binary files /dev/null and b/public/airlines/airlines/PC.png differ
diff --git a/public/airlines/airlines/PD.png b/public/airlines/airlines/PD.png
new file mode 100644
index 00000000..be18d024
Binary files /dev/null and b/public/airlines/airlines/PD.png differ
diff --git a/public/airlines/airlines/PE.png b/public/airlines/airlines/PE.png
new file mode 100644
index 00000000..cc269035
Binary files /dev/null and b/public/airlines/airlines/PE.png differ
diff --git a/public/airlines/airlines/PG.png b/public/airlines/airlines/PG.png
new file mode 100644
index 00000000..11cd78e2
Binary files /dev/null and b/public/airlines/airlines/PG.png differ
diff --git a/public/airlines/airlines/PI.png b/public/airlines/airlines/PI.png
new file mode 100644
index 00000000..b13d8d09
Binary files /dev/null and b/public/airlines/airlines/PI.png differ
diff --git a/public/airlines/airlines/PK.png b/public/airlines/airlines/PK.png
new file mode 100644
index 00000000..26eb854d
Binary files /dev/null and b/public/airlines/airlines/PK.png differ
diff --git a/public/airlines/airlines/PL.png b/public/airlines/airlines/PL.png
new file mode 100644
index 00000000..9b452b7d
Binary files /dev/null and b/public/airlines/airlines/PL.png differ
diff --git a/public/airlines/airlines/PN.png b/public/airlines/airlines/PN.png
new file mode 100644
index 00000000..ec60e9d3
Binary files /dev/null and b/public/airlines/airlines/PN.png differ
diff --git a/public/airlines/airlines/PQ.png b/public/airlines/airlines/PQ.png
new file mode 100644
index 00000000..de0f9523
Binary files /dev/null and b/public/airlines/airlines/PQ.png differ
diff --git a/public/airlines/airlines/PR.png b/public/airlines/airlines/PR.png
new file mode 100644
index 00000000..188da9df
Binary files /dev/null and b/public/airlines/airlines/PR.png differ
diff --git a/public/airlines/airlines/PS.png b/public/airlines/airlines/PS.png
new file mode 100644
index 00000000..ca670ee2
Binary files /dev/null and b/public/airlines/airlines/PS.png differ
diff --git a/public/airlines/airlines/PU(1).png b/public/airlines/airlines/PU(1).png
new file mode 100644
index 00000000..f2c84aeb
Binary files /dev/null and b/public/airlines/airlines/PU(1).png differ
diff --git a/public/airlines/airlines/PU.png b/public/airlines/airlines/PU.png
new file mode 100644
index 00000000..f2c84aeb
Binary files /dev/null and b/public/airlines/airlines/PU.png differ
diff --git a/public/airlines/airlines/PV.png b/public/airlines/airlines/PV.png
new file mode 100644
index 00000000..2c0d28ba
Binary files /dev/null and b/public/airlines/airlines/PV.png differ
diff --git a/public/airlines/airlines/PW.png b/public/airlines/airlines/PW.png
new file mode 100644
index 00000000..fad0dc27
Binary files /dev/null and b/public/airlines/airlines/PW.png differ
diff --git a/public/airlines/airlines/PX.png b/public/airlines/airlines/PX.png
new file mode 100644
index 00000000..d80f9698
Binary files /dev/null and b/public/airlines/airlines/PX.png differ
diff --git a/public/airlines/airlines/PY.png b/public/airlines/airlines/PY.png
new file mode 100644
index 00000000..0902b350
Binary files /dev/null and b/public/airlines/airlines/PY.png differ
diff --git a/public/airlines/airlines/PZ.png b/public/airlines/airlines/PZ.png
new file mode 100644
index 00000000..5fd665c1
Binary files /dev/null and b/public/airlines/airlines/PZ.png differ
diff --git a/public/airlines/airlines/Q4.png b/public/airlines/airlines/Q4.png
new file mode 100644
index 00000000..20e5664a
Binary files /dev/null and b/public/airlines/airlines/Q4.png differ
diff --git a/public/airlines/airlines/Q6.png b/public/airlines/airlines/Q6.png
new file mode 100644
index 00000000..ba6c7026
Binary files /dev/null and b/public/airlines/airlines/Q6.png differ
diff --git a/public/airlines/airlines/Q7.png b/public/airlines/airlines/Q7.png
new file mode 100644
index 00000000..43ed2b40
Binary files /dev/null and b/public/airlines/airlines/Q7.png differ
diff --git a/public/airlines/airlines/Q8.png b/public/airlines/airlines/Q8.png
new file mode 100644
index 00000000..602b92ab
Binary files /dev/null and b/public/airlines/airlines/Q8.png differ
diff --git a/public/airlines/airlines/Q9.png b/public/airlines/airlines/Q9.png
new file mode 100644
index 00000000..408c9ef5
Binary files /dev/null and b/public/airlines/airlines/Q9.png differ
diff --git a/public/airlines/airlines/QA.png b/public/airlines/airlines/QA.png
new file mode 100644
index 00000000..37792308
Binary files /dev/null and b/public/airlines/airlines/QA.png differ
diff --git a/public/airlines/airlines/QB.png b/public/airlines/airlines/QB.png
new file mode 100644
index 00000000..73257ab2
Binary files /dev/null and b/public/airlines/airlines/QB.png differ
diff --git a/public/airlines/airlines/QC.png b/public/airlines/airlines/QC.png
new file mode 100644
index 00000000..3883dcfd
Binary files /dev/null and b/public/airlines/airlines/QC.png differ
diff --git a/public/airlines/airlines/QD(1).png b/public/airlines/airlines/QD(1).png
new file mode 100644
index 00000000..b4632a10
Binary files /dev/null and b/public/airlines/airlines/QD(1).png differ
diff --git a/public/airlines/airlines/QD.png b/public/airlines/airlines/QD.png
new file mode 100644
index 00000000..b4632a10
Binary files /dev/null and b/public/airlines/airlines/QD.png differ
diff --git a/public/airlines/airlines/QF.png b/public/airlines/airlines/QF.png
new file mode 100644
index 00000000..5f54b214
Binary files /dev/null and b/public/airlines/airlines/QF.png differ
diff --git a/public/airlines/airlines/QG.png b/public/airlines/airlines/QG.png
new file mode 100644
index 00000000..4a9809ae
Binary files /dev/null and b/public/airlines/airlines/QG.png differ
diff --git a/public/airlines/airlines/QH.png b/public/airlines/airlines/QH.png
new file mode 100644
index 00000000..826efe53
Binary files /dev/null and b/public/airlines/airlines/QH.png differ
diff --git a/public/airlines/airlines/QK.png b/public/airlines/airlines/QK.png
new file mode 100644
index 00000000..29e94ee2
Binary files /dev/null and b/public/airlines/airlines/QK.png differ
diff --git a/public/airlines/airlines/QL.png b/public/airlines/airlines/QL.png
new file mode 100644
index 00000000..87c0629f
Binary files /dev/null and b/public/airlines/airlines/QL.png differ
diff --git a/public/airlines/airlines/QP.png b/public/airlines/airlines/QP.png
new file mode 100644
index 00000000..d0ae21cd
Binary files /dev/null and b/public/airlines/airlines/QP.png differ
diff --git a/public/airlines/airlines/QQ.png b/public/airlines/airlines/QQ.png
new file mode 100644
index 00000000..4b8afab3
Binary files /dev/null and b/public/airlines/airlines/QQ.png differ
diff --git a/public/airlines/airlines/QR.png b/public/airlines/airlines/QR.png
new file mode 100644
index 00000000..b878456c
Binary files /dev/null and b/public/airlines/airlines/QR.png differ
diff --git a/public/airlines/airlines/QS.png b/public/airlines/airlines/QS.png
new file mode 100644
index 00000000..17e03a21
Binary files /dev/null and b/public/airlines/airlines/QS.png differ
diff --git a/public/airlines/airlines/QU.png b/public/airlines/airlines/QU.png
new file mode 100644
index 00000000..6b8492dd
Binary files /dev/null and b/public/airlines/airlines/QU.png differ
diff --git a/public/airlines/airlines/QV.png b/public/airlines/airlines/QV.png
new file mode 100644
index 00000000..823f625f
Binary files /dev/null and b/public/airlines/airlines/QV.png differ
diff --git a/public/airlines/airlines/QW.png b/public/airlines/airlines/QW.png
new file mode 100644
index 00000000..67591cab
Binary files /dev/null and b/public/airlines/airlines/QW.png differ
diff --git a/public/airlines/airlines/QX.png b/public/airlines/airlines/QX.png
new file mode 100644
index 00000000..0b80db21
Binary files /dev/null and b/public/airlines/airlines/QX.png differ
diff --git a/public/airlines/airlines/QZ.png b/public/airlines/airlines/QZ.png
new file mode 100644
index 00000000..15e6451a
Binary files /dev/null and b/public/airlines/airlines/QZ.png differ
diff --git a/public/airlines/airlines/R3.png b/public/airlines/airlines/R3.png
new file mode 100644
index 00000000..3ef1b0a6
Binary files /dev/null and b/public/airlines/airlines/R3.png differ
diff --git a/public/airlines/airlines/R5.png b/public/airlines/airlines/R5.png
new file mode 100644
index 00000000..c786386c
Binary files /dev/null and b/public/airlines/airlines/R5.png differ
diff --git a/public/airlines/airlines/R6.png b/public/airlines/airlines/R6.png
new file mode 100644
index 00000000..642b4635
Binary files /dev/null and b/public/airlines/airlines/R6.png differ
diff --git a/public/airlines/airlines/R7.png b/public/airlines/airlines/R7.png
new file mode 100644
index 00000000..b19238ef
Binary files /dev/null and b/public/airlines/airlines/R7.png differ
diff --git a/public/airlines/airlines/RA.png b/public/airlines/airlines/RA.png
new file mode 100644
index 00000000..3130001e
Binary files /dev/null and b/public/airlines/airlines/RA.png differ
diff --git a/public/airlines/airlines/RB.png b/public/airlines/airlines/RB.png
new file mode 100644
index 00000000..03c71712
Binary files /dev/null and b/public/airlines/airlines/RB.png differ
diff --git a/public/airlines/airlines/RC.png b/public/airlines/airlines/RC.png
new file mode 100644
index 00000000..7f61f7ab
Binary files /dev/null and b/public/airlines/airlines/RC.png differ
diff --git a/public/airlines/airlines/RE.png b/public/airlines/airlines/RE.png
new file mode 100644
index 00000000..4eed78fe
Binary files /dev/null and b/public/airlines/airlines/RE.png differ
diff --git a/public/airlines/airlines/RG.png b/public/airlines/airlines/RG.png
new file mode 100644
index 00000000..ea2e7dbd
Binary files /dev/null and b/public/airlines/airlines/RG.png differ
diff --git a/public/airlines/airlines/RJ.png b/public/airlines/airlines/RJ.png
new file mode 100644
index 00000000..20aa8953
Binary files /dev/null and b/public/airlines/airlines/RJ.png differ
diff --git a/public/airlines/airlines/RK.png b/public/airlines/airlines/RK.png
new file mode 100644
index 00000000..57e45387
Binary files /dev/null and b/public/airlines/airlines/RK.png differ
diff --git a/public/airlines/airlines/RO.png b/public/airlines/airlines/RO.png
new file mode 100644
index 00000000..1ab98d1d
Binary files /dev/null and b/public/airlines/airlines/RO.png differ
diff --git a/public/airlines/airlines/RQ.png b/public/airlines/airlines/RQ.png
new file mode 100644
index 00000000..5ffae7d1
Binary files /dev/null and b/public/airlines/airlines/RQ.png differ
diff --git a/public/airlines/airlines/RY.png b/public/airlines/airlines/RY.png
new file mode 100644
index 00000000..7a00713d
Binary files /dev/null and b/public/airlines/airlines/RY.png differ
diff --git a/public/airlines/airlines/S2.png b/public/airlines/airlines/S2.png
new file mode 100644
index 00000000..915d6298
Binary files /dev/null and b/public/airlines/airlines/S2.png differ
diff --git a/public/airlines/airlines/S3.png b/public/airlines/airlines/S3.png
new file mode 100644
index 00000000..b4012023
Binary files /dev/null and b/public/airlines/airlines/S3.png differ
diff --git a/public/airlines/airlines/S4.png b/public/airlines/airlines/S4.png
new file mode 100644
index 00000000..9b8a84fa
Binary files /dev/null and b/public/airlines/airlines/S4.png differ
diff --git a/public/airlines/airlines/S7.png b/public/airlines/airlines/S7.png
new file mode 100644
index 00000000..9f3ee5a5
Binary files /dev/null and b/public/airlines/airlines/S7.png differ
diff --git a/public/airlines/airlines/S9.png b/public/airlines/airlines/S9.png
new file mode 100644
index 00000000..7be5c0eb
Binary files /dev/null and b/public/airlines/airlines/S9.png differ
diff --git a/public/airlines/airlines/SA.png b/public/airlines/airlines/SA.png
new file mode 100644
index 00000000..d6da3a47
Binary files /dev/null and b/public/airlines/airlines/SA.png differ
diff --git a/public/airlines/airlines/SB.png b/public/airlines/airlines/SB.png
new file mode 100644
index 00000000..99901c77
Binary files /dev/null and b/public/airlines/airlines/SB.png differ
diff --git a/public/airlines/airlines/SC.png b/public/airlines/airlines/SC.png
new file mode 100644
index 00000000..73732353
Binary files /dev/null and b/public/airlines/airlines/SC.png differ
diff --git a/public/airlines/airlines/SD.png b/public/airlines/airlines/SD.png
new file mode 100644
index 00000000..83d5a79e
Binary files /dev/null and b/public/airlines/airlines/SD.png differ
diff --git a/public/airlines/airlines/SE.png b/public/airlines/airlines/SE.png
new file mode 100644
index 00000000..ee788310
Binary files /dev/null and b/public/airlines/airlines/SE.png differ
diff --git a/public/airlines/airlines/SF.png b/public/airlines/airlines/SF.png
new file mode 100644
index 00000000..e7ec988f
Binary files /dev/null and b/public/airlines/airlines/SF.png differ
diff --git a/public/airlines/airlines/SG.png b/public/airlines/airlines/SG.png
new file mode 100644
index 00000000..1f89480a
Binary files /dev/null and b/public/airlines/airlines/SG.png differ
diff --git a/public/airlines/airlines/SH.png b/public/airlines/airlines/SH.png
new file mode 100644
index 00000000..855c80fb
Binary files /dev/null and b/public/airlines/airlines/SH.png differ
diff --git a/public/airlines/airlines/SI.png b/public/airlines/airlines/SI.png
new file mode 100644
index 00000000..1bfb1085
Binary files /dev/null and b/public/airlines/airlines/SI.png differ
diff --git a/public/airlines/airlines/SJ.png b/public/airlines/airlines/SJ.png
new file mode 100644
index 00000000..0678a54d
Binary files /dev/null and b/public/airlines/airlines/SJ.png differ
diff --git a/public/airlines/airlines/SK.png b/public/airlines/airlines/SK.png
new file mode 100644
index 00000000..2803313f
Binary files /dev/null and b/public/airlines/airlines/SK.png differ
diff --git a/public/airlines/airlines/SL.png b/public/airlines/airlines/SL.png
new file mode 100644
index 00000000..c6902488
Binary files /dev/null and b/public/airlines/airlines/SL.png differ
diff --git a/public/airlines/airlines/SM.png b/public/airlines/airlines/SM.png
new file mode 100644
index 00000000..dfdf38c0
Binary files /dev/null and b/public/airlines/airlines/SM.png differ
diff --git a/public/airlines/airlines/SN.png b/public/airlines/airlines/SN.png
new file mode 100644
index 00000000..78a5db42
Binary files /dev/null and b/public/airlines/airlines/SN.png differ
diff --git a/public/airlines/airlines/SO.png b/public/airlines/airlines/SO.png
new file mode 100644
index 00000000..d040911f
Binary files /dev/null and b/public/airlines/airlines/SO.png differ
diff --git a/public/airlines/airlines/SP.png b/public/airlines/airlines/SP.png
new file mode 100644
index 00000000..662cf3bc
Binary files /dev/null and b/public/airlines/airlines/SP.png differ
diff --git a/public/airlines/airlines/SQ.png b/public/airlines/airlines/SQ.png
new file mode 100644
index 00000000..223dc8c9
Binary files /dev/null and b/public/airlines/airlines/SQ.png differ
diff --git a/public/airlines/airlines/SS.png b/public/airlines/airlines/SS.png
new file mode 100644
index 00000000..96528cd0
Binary files /dev/null and b/public/airlines/airlines/SS.png differ
diff --git a/public/airlines/airlines/ST.png b/public/airlines/airlines/ST.png
new file mode 100644
index 00000000..2cebbd6c
Binary files /dev/null and b/public/airlines/airlines/ST.png differ
diff --git a/public/airlines/airlines/SU.png b/public/airlines/airlines/SU.png
new file mode 100644
index 00000000..59464547
Binary files /dev/null and b/public/airlines/airlines/SU.png differ
diff --git a/public/airlines/airlines/SV.png b/public/airlines/airlines/SV.png
new file mode 100644
index 00000000..a55797b8
Binary files /dev/null and b/public/airlines/airlines/SV.png differ
diff --git a/public/airlines/airlines/SW.png b/public/airlines/airlines/SW.png
new file mode 100644
index 00000000..3f07f874
Binary files /dev/null and b/public/airlines/airlines/SW.png differ
diff --git a/public/airlines/airlines/SX.png b/public/airlines/airlines/SX.png
new file mode 100644
index 00000000..8acd01d2
Binary files /dev/null and b/public/airlines/airlines/SX.png differ
diff --git a/public/airlines/airlines/SY.png b/public/airlines/airlines/SY.png
new file mode 100644
index 00000000..82694a00
Binary files /dev/null and b/public/airlines/airlines/SY.png differ
diff --git a/public/airlines/airlines/SZ.png b/public/airlines/airlines/SZ.png
new file mode 100644
index 00000000..6da19d55
Binary files /dev/null and b/public/airlines/airlines/SZ.png differ
diff --git a/public/airlines/airlines/T0.png b/public/airlines/airlines/T0.png
new file mode 100644
index 00000000..809f03bb
Binary files /dev/null and b/public/airlines/airlines/T0.png differ
diff --git a/public/airlines/airlines/T3.png b/public/airlines/airlines/T3.png
new file mode 100644
index 00000000..e8092f18
Binary files /dev/null and b/public/airlines/airlines/T3.png differ
diff --git a/public/airlines/airlines/T5.png b/public/airlines/airlines/T5.png
new file mode 100644
index 00000000..7b682565
Binary files /dev/null and b/public/airlines/airlines/T5.png differ
diff --git a/public/airlines/airlines/T7.png b/public/airlines/airlines/T7.png
new file mode 100644
index 00000000..0309afd9
Binary files /dev/null and b/public/airlines/airlines/T7.png differ
diff --git a/public/airlines/airlines/TA.png b/public/airlines/airlines/TA.png
new file mode 100644
index 00000000..fd886b62
Binary files /dev/null and b/public/airlines/airlines/TA.png differ
diff --git a/public/airlines/airlines/TB.png b/public/airlines/airlines/TB.png
new file mode 100644
index 00000000..df560809
Binary files /dev/null and b/public/airlines/airlines/TB.png differ
diff --git a/public/airlines/airlines/TC.png b/public/airlines/airlines/TC.png
new file mode 100644
index 00000000..edfd9a50
Binary files /dev/null and b/public/airlines/airlines/TC.png differ
diff --git a/public/airlines/airlines/TF.png b/public/airlines/airlines/TF.png
new file mode 100644
index 00000000..250c064b
Binary files /dev/null and b/public/airlines/airlines/TF.png differ
diff --git a/public/airlines/airlines/TG.png b/public/airlines/airlines/TG.png
new file mode 100644
index 00000000..f4e201dc
Binary files /dev/null and b/public/airlines/airlines/TG.png differ
diff --git a/public/airlines/airlines/TI.png b/public/airlines/airlines/TI.png
new file mode 100644
index 00000000..14ed376f
Binary files /dev/null and b/public/airlines/airlines/TI.png differ
diff --git a/public/airlines/airlines/TJ.png b/public/airlines/airlines/TJ.png
new file mode 100644
index 00000000..58a537c9
Binary files /dev/null and b/public/airlines/airlines/TJ.png differ
diff --git a/public/airlines/airlines/TK.png b/public/airlines/airlines/TK.png
new file mode 100644
index 00000000..ccaa4259
Binary files /dev/null and b/public/airlines/airlines/TK.png differ
diff --git a/public/airlines/airlines/TL.png b/public/airlines/airlines/TL.png
new file mode 100644
index 00000000..a71c604c
Binary files /dev/null and b/public/airlines/airlines/TL.png differ
diff --git a/public/airlines/airlines/TM.png b/public/airlines/airlines/TM.png
new file mode 100644
index 00000000..c3bd91d1
Binary files /dev/null and b/public/airlines/airlines/TM.png differ
diff --git a/public/airlines/airlines/TN.png b/public/airlines/airlines/TN.png
new file mode 100644
index 00000000..3931ceb9
Binary files /dev/null and b/public/airlines/airlines/TN.png differ
diff --git a/public/airlines/airlines/TO.png b/public/airlines/airlines/TO.png
new file mode 100644
index 00000000..91ecd6b2
Binary files /dev/null and b/public/airlines/airlines/TO.png differ
diff --git a/public/airlines/airlines/TP.png b/public/airlines/airlines/TP.png
new file mode 100644
index 00000000..152c95cb
Binary files /dev/null and b/public/airlines/airlines/TP.png differ
diff --git a/public/airlines/airlines/TQ.png b/public/airlines/airlines/TQ.png
new file mode 100644
index 00000000..7eaaa868
Binary files /dev/null and b/public/airlines/airlines/TQ.png differ
diff --git a/public/airlines/airlines/TR.png b/public/airlines/airlines/TR.png
new file mode 100644
index 00000000..bc52203d
Binary files /dev/null and b/public/airlines/airlines/TR.png differ
diff --git a/public/airlines/airlines/TS.png b/public/airlines/airlines/TS.png
new file mode 100644
index 00000000..4d305653
Binary files /dev/null and b/public/airlines/airlines/TS.png differ
diff --git a/public/airlines/airlines/TT.png b/public/airlines/airlines/TT.png
new file mode 100644
index 00000000..fe6e731d
Binary files /dev/null and b/public/airlines/airlines/TT.png differ
diff --git a/public/airlines/airlines/TU.png b/public/airlines/airlines/TU.png
new file mode 100644
index 00000000..fe6e731d
Binary files /dev/null and b/public/airlines/airlines/TU.png differ
diff --git a/public/airlines/airlines/TW.png b/public/airlines/airlines/TW.png
new file mode 100644
index 00000000..0ff61d33
Binary files /dev/null and b/public/airlines/airlines/TW.png differ
diff --git a/public/airlines/airlines/TX.png b/public/airlines/airlines/TX.png
new file mode 100644
index 00000000..25f0dd3c
Binary files /dev/null and b/public/airlines/airlines/TX.png differ
diff --git a/public/airlines/airlines/TY.png b/public/airlines/airlines/TY.png
new file mode 100644
index 00000000..4fcb1864
Binary files /dev/null and b/public/airlines/airlines/TY.png differ
diff --git a/public/airlines/airlines/TZ.png b/public/airlines/airlines/TZ.png
new file mode 100644
index 00000000..40ad74a4
Binary files /dev/null and b/public/airlines/airlines/TZ.png differ
diff --git a/public/airlines/airlines/U2.png b/public/airlines/airlines/U2.png
new file mode 100644
index 00000000..cf399aa4
Binary files /dev/null and b/public/airlines/airlines/U2.png differ
diff --git a/public/airlines/airlines/U6.png b/public/airlines/airlines/U6.png
new file mode 100644
index 00000000..fd3d1374
Binary files /dev/null and b/public/airlines/airlines/U6.png differ
diff --git a/public/airlines/airlines/UA.png b/public/airlines/airlines/UA.png
new file mode 100644
index 00000000..69dc1746
Binary files /dev/null and b/public/airlines/airlines/UA.png differ
diff --git a/public/airlines/airlines/UB(1).png b/public/airlines/airlines/UB(1).png
new file mode 100644
index 00000000..57ac2f73
Binary files /dev/null and b/public/airlines/airlines/UB(1).png differ
diff --git a/public/airlines/airlines/UB.png b/public/airlines/airlines/UB.png
new file mode 100644
index 00000000..57ac2f73
Binary files /dev/null and b/public/airlines/airlines/UB.png differ
diff --git a/public/airlines/airlines/UD.png b/public/airlines/airlines/UD.png
new file mode 100644
index 00000000..127df297
Binary files /dev/null and b/public/airlines/airlines/UD.png differ
diff --git a/public/airlines/airlines/UF.png b/public/airlines/airlines/UF.png
new file mode 100644
index 00000000..e8b8eff2
Binary files /dev/null and b/public/airlines/airlines/UF.png differ
diff --git a/public/airlines/airlines/UG.png b/public/airlines/airlines/UG.png
new file mode 100644
index 00000000..394866df
Binary files /dev/null and b/public/airlines/airlines/UG.png differ
diff --git a/public/airlines/airlines/UH.png b/public/airlines/airlines/UH.png
new file mode 100644
index 00000000..d1e1e539
Binary files /dev/null and b/public/airlines/airlines/UH.png differ
diff --git a/public/airlines/airlines/UJ.png b/public/airlines/airlines/UJ.png
new file mode 100644
index 00000000..cec5a97a
Binary files /dev/null and b/public/airlines/airlines/UJ.png differ
diff --git a/public/airlines/airlines/UK.png b/public/airlines/airlines/UK.png
new file mode 100644
index 00000000..9deda6af
Binary files /dev/null and b/public/airlines/airlines/UK.png differ
diff --git a/public/airlines/airlines/UL.png b/public/airlines/airlines/UL.png
new file mode 100644
index 00000000..11b85c5e
Binary files /dev/null and b/public/airlines/airlines/UL.png differ
diff --git a/public/airlines/airlines/UM.png b/public/airlines/airlines/UM.png
new file mode 100644
index 00000000..c33fad0c
Binary files /dev/null and b/public/airlines/airlines/UM.png differ
diff --git a/public/airlines/airlines/UN.png b/public/airlines/airlines/UN.png
new file mode 100644
index 00000000..2c7eb2b9
Binary files /dev/null and b/public/airlines/airlines/UN.png differ
diff --git a/public/airlines/airlines/UO.png b/public/airlines/airlines/UO.png
new file mode 100644
index 00000000..f21694c9
Binary files /dev/null and b/public/airlines/airlines/UO.png differ
diff --git a/public/airlines/airlines/UP.png b/public/airlines/airlines/UP.png
new file mode 100644
index 00000000..01eb9619
Binary files /dev/null and b/public/airlines/airlines/UP.png differ
diff --git a/public/airlines/airlines/US.png b/public/airlines/airlines/US.png
new file mode 100644
index 00000000..2b4c9b7b
Binary files /dev/null and b/public/airlines/airlines/US.png differ
diff --git a/public/airlines/airlines/UT.png b/public/airlines/airlines/UT.png
new file mode 100644
index 00000000..34d9aeb6
Binary files /dev/null and b/public/airlines/airlines/UT.png differ
diff --git a/public/airlines/airlines/UU.png b/public/airlines/airlines/UU.png
new file mode 100644
index 00000000..ff1ef2e3
Binary files /dev/null and b/public/airlines/airlines/UU.png differ
diff --git a/public/airlines/airlines/UX.png b/public/airlines/airlines/UX.png
new file mode 100644
index 00000000..9fe5f3cc
Binary files /dev/null and b/public/airlines/airlines/UX.png differ
diff --git a/public/airlines/airlines/V3.png b/public/airlines/airlines/V3.png
new file mode 100644
index 00000000..c395147d
Binary files /dev/null and b/public/airlines/airlines/V3.png differ
diff --git a/public/airlines/airlines/V5.png b/public/airlines/airlines/V5.png
new file mode 100644
index 00000000..08116076
Binary files /dev/null and b/public/airlines/airlines/V5.png differ
diff --git a/public/airlines/airlines/V7.png b/public/airlines/airlines/V7.png
new file mode 100644
index 00000000..efecdf7b
Binary files /dev/null and b/public/airlines/airlines/V7.png differ
diff --git a/public/airlines/airlines/VA.png b/public/airlines/airlines/VA.png
new file mode 100644
index 00000000..8bb9752b
Binary files /dev/null and b/public/airlines/airlines/VA.png differ
diff --git a/public/airlines/airlines/VB.png b/public/airlines/airlines/VB.png
new file mode 100644
index 00000000..a0e15d92
Binary files /dev/null and b/public/airlines/airlines/VB.png differ
diff --git a/public/airlines/airlines/VD.png b/public/airlines/airlines/VD.png
new file mode 100644
index 00000000..ee964b74
Binary files /dev/null and b/public/airlines/airlines/VD.png differ
diff --git a/public/airlines/airlines/VG.png b/public/airlines/airlines/VG.png
new file mode 100644
index 00000000..e06aa718
Binary files /dev/null and b/public/airlines/airlines/VG.png differ
diff --git a/public/airlines/airlines/VH.png b/public/airlines/airlines/VH.png
new file mode 100644
index 00000000..e608dc45
Binary files /dev/null and b/public/airlines/airlines/VH.png differ
diff --git a/public/airlines/airlines/VI.png b/public/airlines/airlines/VI.png
new file mode 100644
index 00000000..2e28785a
Binary files /dev/null and b/public/airlines/airlines/VI.png differ
diff --git a/public/airlines/airlines/VJ.png b/public/airlines/airlines/VJ.png
new file mode 100644
index 00000000..d0312f43
Binary files /dev/null and b/public/airlines/airlines/VJ.png differ
diff --git a/public/airlines/airlines/VL.png b/public/airlines/airlines/VL.png
new file mode 100644
index 00000000..9e973135
Binary files /dev/null and b/public/airlines/airlines/VL.png differ
diff --git a/public/airlines/airlines/VM.png b/public/airlines/airlines/VM.png
new file mode 100644
index 00000000..e0b0cc67
Binary files /dev/null and b/public/airlines/airlines/VM.png differ
diff --git a/public/airlines/airlines/VN.png b/public/airlines/airlines/VN.png
new file mode 100644
index 00000000..0b54b089
Binary files /dev/null and b/public/airlines/airlines/VN.png differ
diff --git a/public/airlines/airlines/VO.png b/public/airlines/airlines/VO.png
new file mode 100644
index 00000000..c442b658
Binary files /dev/null and b/public/airlines/airlines/VO.png differ
diff --git a/public/airlines/airlines/VP.png b/public/airlines/airlines/VP.png
new file mode 100644
index 00000000..41ef5cdd
Binary files /dev/null and b/public/airlines/airlines/VP.png differ
diff --git a/public/airlines/airlines/VQ.png b/public/airlines/airlines/VQ.png
new file mode 100644
index 00000000..9df1df17
Binary files /dev/null and b/public/airlines/airlines/VQ.png differ
diff --git a/public/airlines/airlines/VR.png b/public/airlines/airlines/VR.png
new file mode 100644
index 00000000..048b8352
Binary files /dev/null and b/public/airlines/airlines/VR.png differ
diff --git a/public/airlines/airlines/VS.png b/public/airlines/airlines/VS.png
new file mode 100644
index 00000000..8bb9752b
Binary files /dev/null and b/public/airlines/airlines/VS.png differ
diff --git a/public/airlines/airlines/VT.png b/public/airlines/airlines/VT.png
new file mode 100644
index 00000000..d811042f
Binary files /dev/null and b/public/airlines/airlines/VT.png differ
diff --git a/public/airlines/airlines/VW.png b/public/airlines/airlines/VW.png
new file mode 100644
index 00000000..9f6ab651
Binary files /dev/null and b/public/airlines/airlines/VW.png differ
diff --git a/public/airlines/airlines/VX.png b/public/airlines/airlines/VX.png
new file mode 100644
index 00000000..acef8b78
Binary files /dev/null and b/public/airlines/airlines/VX.png differ
diff --git a/public/airlines/airlines/VY.png b/public/airlines/airlines/VY.png
new file mode 100644
index 00000000..1c149302
Binary files /dev/null and b/public/airlines/airlines/VY.png differ
diff --git a/public/airlines/airlines/VZ.png b/public/airlines/airlines/VZ.png
new file mode 100644
index 00000000..fc98c35d
Binary files /dev/null and b/public/airlines/airlines/VZ.png differ
diff --git a/public/airlines/airlines/W2.png b/public/airlines/airlines/W2.png
new file mode 100644
index 00000000..ad1ee44a
Binary files /dev/null and b/public/airlines/airlines/W2.png differ
diff --git a/public/airlines/airlines/W3.png b/public/airlines/airlines/W3.png
new file mode 100644
index 00000000..cdbdb38d
Binary files /dev/null and b/public/airlines/airlines/W3.png differ
diff --git a/public/airlines/airlines/W4.png b/public/airlines/airlines/W4.png
new file mode 100644
index 00000000..d31e21f3
Binary files /dev/null and b/public/airlines/airlines/W4.png differ
diff --git a/public/airlines/airlines/W5.png b/public/airlines/airlines/W5.png
new file mode 100644
index 00000000..42e733ab
Binary files /dev/null and b/public/airlines/airlines/W5.png differ
diff --git a/public/airlines/airlines/W6.png b/public/airlines/airlines/W6.png
new file mode 100644
index 00000000..d31e21f3
Binary files /dev/null and b/public/airlines/airlines/W6.png differ
diff --git a/public/airlines/airlines/W9.png b/public/airlines/airlines/W9.png
new file mode 100644
index 00000000..d31e21f3
Binary files /dev/null and b/public/airlines/airlines/W9.png differ
diff --git a/public/airlines/airlines/WA.png b/public/airlines/airlines/WA.png
new file mode 100644
index 00000000..fc818c22
Binary files /dev/null and b/public/airlines/airlines/WA.png differ
diff --git a/public/airlines/airlines/WB.png b/public/airlines/airlines/WB.png
new file mode 100644
index 00000000..cb9c4742
Binary files /dev/null and b/public/airlines/airlines/WB.png differ
diff --git a/public/airlines/airlines/WE.png b/public/airlines/airlines/WE.png
new file mode 100644
index 00000000..859de097
Binary files /dev/null and b/public/airlines/airlines/WE.png differ
diff --git a/public/airlines/airlines/WF.png b/public/airlines/airlines/WF.png
new file mode 100644
index 00000000..46e5c072
Binary files /dev/null and b/public/airlines/airlines/WF.png differ
diff --git a/public/airlines/airlines/WG.png b/public/airlines/airlines/WG.png
new file mode 100644
index 00000000..67085398
Binary files /dev/null and b/public/airlines/airlines/WG.png differ
diff --git a/public/airlines/airlines/WI.png b/public/airlines/airlines/WI.png
new file mode 100644
index 00000000..5e751493
Binary files /dev/null and b/public/airlines/airlines/WI.png differ
diff --git a/public/airlines/airlines/WK.png b/public/airlines/airlines/WK.png
new file mode 100644
index 00000000..0055b1a1
Binary files /dev/null and b/public/airlines/airlines/WK.png differ
diff --git a/public/airlines/airlines/WM.png b/public/airlines/airlines/WM.png
new file mode 100644
index 00000000..5686cf8d
Binary files /dev/null and b/public/airlines/airlines/WM.png differ
diff --git a/public/airlines/airlines/WN.png b/public/airlines/airlines/WN.png
new file mode 100644
index 00000000..5cf362ea
Binary files /dev/null and b/public/airlines/airlines/WN.png differ
diff --git a/public/airlines/airlines/WO.png b/public/airlines/airlines/WO.png
new file mode 100644
index 00000000..17e2e673
Binary files /dev/null and b/public/airlines/airlines/WO.png differ
diff --git a/public/airlines/airlines/WQ.png b/public/airlines/airlines/WQ.png
new file mode 100644
index 00000000..abd0d250
Binary files /dev/null and b/public/airlines/airlines/WQ.png differ
diff --git a/public/airlines/airlines/WS.png b/public/airlines/airlines/WS.png
new file mode 100644
index 00000000..4cab957d
Binary files /dev/null and b/public/airlines/airlines/WS.png differ
diff --git a/public/airlines/airlines/WT.png b/public/airlines/airlines/WT.png
new file mode 100644
index 00000000..f6e8002e
Binary files /dev/null and b/public/airlines/airlines/WT.png differ
diff --git a/public/airlines/airlines/WW.png b/public/airlines/airlines/WW.png
new file mode 100644
index 00000000..f0659c9b
Binary files /dev/null and b/public/airlines/airlines/WW.png differ
diff --git a/public/airlines/airlines/WX.png b/public/airlines/airlines/WX.png
new file mode 100644
index 00000000..31dbf5c6
Binary files /dev/null and b/public/airlines/airlines/WX.png differ
diff --git a/public/airlines/airlines/WY.png b/public/airlines/airlines/WY.png
new file mode 100644
index 00000000..2b448cd3
Binary files /dev/null and b/public/airlines/airlines/WY.png differ
diff --git a/public/airlines/airlines/X1(1).png b/public/airlines/airlines/X1(1).png
new file mode 100644
index 00000000..e42496d5
Binary files /dev/null and b/public/airlines/airlines/X1(1).png differ
diff --git a/public/airlines/airlines/X1.png b/public/airlines/airlines/X1.png
new file mode 100644
index 00000000..e42496d5
Binary files /dev/null and b/public/airlines/airlines/X1.png differ
diff --git a/public/airlines/airlines/X3.png b/public/airlines/airlines/X3.png
new file mode 100644
index 00000000..b323ccb1
Binary files /dev/null and b/public/airlines/airlines/X3.png differ
diff --git a/public/airlines/airlines/X9.png b/public/airlines/airlines/X9.png
new file mode 100644
index 00000000..f9d7a6e7
Binary files /dev/null and b/public/airlines/airlines/X9.png differ
diff --git a/public/airlines/airlines/XC.png b/public/airlines/airlines/XC.png
new file mode 100644
index 00000000..f659c006
Binary files /dev/null and b/public/airlines/airlines/XC.png differ
diff --git a/public/airlines/airlines/XE.png b/public/airlines/airlines/XE.png
new file mode 100644
index 00000000..6313537a
Binary files /dev/null and b/public/airlines/airlines/XE.png differ
diff --git a/public/airlines/airlines/XG.png b/public/airlines/airlines/XG.png
new file mode 100644
index 00000000..58640c50
Binary files /dev/null and b/public/airlines/airlines/XG.png differ
diff --git a/public/airlines/airlines/XJ.png b/public/airlines/airlines/XJ.png
new file mode 100644
index 00000000..c121c0e0
Binary files /dev/null and b/public/airlines/airlines/XJ.png differ
diff --git a/public/airlines/airlines/XK.png b/public/airlines/airlines/XK.png
new file mode 100644
index 00000000..f37c9399
Binary files /dev/null and b/public/airlines/airlines/XK.png differ
diff --git a/public/airlines/airlines/XL.png b/public/airlines/airlines/XL.png
new file mode 100644
index 00000000..b7addaab
Binary files /dev/null and b/public/airlines/airlines/XL.png differ
diff --git a/public/airlines/airlines/XO.png b/public/airlines/airlines/XO.png
new file mode 100644
index 00000000..e95d6460
Binary files /dev/null and b/public/airlines/airlines/XO.png differ
diff --git a/public/airlines/airlines/XP.png b/public/airlines/airlines/XP.png
new file mode 100644
index 00000000..e1f7fe0c
Binary files /dev/null and b/public/airlines/airlines/XP.png differ
diff --git a/public/airlines/airlines/XQ.png b/public/airlines/airlines/XQ.png
new file mode 100644
index 00000000..d30d5d2f
Binary files /dev/null and b/public/airlines/airlines/XQ.png differ
diff --git a/public/airlines/airlines/XR.png b/public/airlines/airlines/XR.png
new file mode 100644
index 00000000..f51d6b95
Binary files /dev/null and b/public/airlines/airlines/XR.png differ
diff --git a/public/airlines/airlines/XT.png b/public/airlines/airlines/XT.png
new file mode 100644
index 00000000..30eaf588
Binary files /dev/null and b/public/airlines/airlines/XT.png differ
diff --git a/public/airlines/airlines/XW.png b/public/airlines/airlines/XW.png
new file mode 100644
index 00000000..277b5f0e
Binary files /dev/null and b/public/airlines/airlines/XW.png differ
diff --git a/public/airlines/airlines/XY.png b/public/airlines/airlines/XY.png
new file mode 100644
index 00000000..fd6e3324
Binary files /dev/null and b/public/airlines/airlines/XY.png differ
diff --git a/public/airlines/airlines/XZ.png b/public/airlines/airlines/XZ.png
new file mode 100644
index 00000000..b3432e9e
Binary files /dev/null and b/public/airlines/airlines/XZ.png differ
diff --git a/public/airlines/airlines/Y0.png b/public/airlines/airlines/Y0.png
new file mode 100644
index 00000000..c4d91e38
Binary files /dev/null and b/public/airlines/airlines/Y0.png differ
diff --git a/public/airlines/airlines/Y4.png b/public/airlines/airlines/Y4.png
new file mode 100644
index 00000000..01f91d1f
Binary files /dev/null and b/public/airlines/airlines/Y4.png differ
diff --git a/public/airlines/airlines/Y7.png b/public/airlines/airlines/Y7.png
new file mode 100644
index 00000000..5886cbca
Binary files /dev/null and b/public/airlines/airlines/Y7.png differ
diff --git a/public/airlines/airlines/Y9.png b/public/airlines/airlines/Y9.png
new file mode 100644
index 00000000..25457a81
Binary files /dev/null and b/public/airlines/airlines/Y9.png differ
diff --git a/public/airlines/airlines/YC.png b/public/airlines/airlines/YC.png
new file mode 100644
index 00000000..9675f435
Binary files /dev/null and b/public/airlines/airlines/YC.png differ
diff --git a/public/airlines/airlines/YE.png b/public/airlines/airlines/YE.png
new file mode 100644
index 00000000..ac5b5392
Binary files /dev/null and b/public/airlines/airlines/YE.png differ
diff --git a/public/airlines/airlines/YK.png b/public/airlines/airlines/YK.png
new file mode 100644
index 00000000..9dfc4369
Binary files /dev/null and b/public/airlines/airlines/YK.png differ
diff --git a/public/airlines/airlines/YM.png b/public/airlines/airlines/YM.png
new file mode 100644
index 00000000..88779498
Binary files /dev/null and b/public/airlines/airlines/YM.png differ
diff --git a/public/airlines/airlines/YN.png b/public/airlines/airlines/YN.png
new file mode 100644
index 00000000..84c7e87e
Binary files /dev/null and b/public/airlines/airlines/YN.png differ
diff --git a/public/airlines/airlines/YO.png b/public/airlines/airlines/YO.png
new file mode 100644
index 00000000..eb1c8301
Binary files /dev/null and b/public/airlines/airlines/YO.png differ
diff --git a/public/airlines/airlines/YR.png b/public/airlines/airlines/YR.png
new file mode 100644
index 00000000..328b01fa
Binary files /dev/null and b/public/airlines/airlines/YR.png differ
diff --git a/public/airlines/airlines/YS.png b/public/airlines/airlines/YS.png
new file mode 100644
index 00000000..31dbf5c6
Binary files /dev/null and b/public/airlines/airlines/YS.png differ
diff --git a/public/airlines/airlines/YU.png b/public/airlines/airlines/YU.png
new file mode 100644
index 00000000..fd5c44e4
Binary files /dev/null and b/public/airlines/airlines/YU.png differ
diff --git a/public/airlines/airlines/YV.png b/public/airlines/airlines/YV.png
new file mode 100644
index 00000000..f35df84a
Binary files /dev/null and b/public/airlines/airlines/YV.png differ
diff --git a/public/airlines/airlines/YW.png b/public/airlines/airlines/YW.png
new file mode 100644
index 00000000..00b6dd99
Binary files /dev/null and b/public/airlines/airlines/YW.png differ
diff --git a/public/airlines/airlines/YX.png b/public/airlines/airlines/YX.png
new file mode 100644
index 00000000..d2767830
Binary files /dev/null and b/public/airlines/airlines/YX.png differ
diff --git a/public/airlines/airlines/Z0.png b/public/airlines/airlines/Z0.png
new file mode 100644
index 00000000..2aeaa7a1
Binary files /dev/null and b/public/airlines/airlines/Z0.png differ
diff --git a/public/airlines/airlines/Z2(1).png b/public/airlines/airlines/Z2(1).png
new file mode 100644
index 00000000..217f421f
Binary files /dev/null and b/public/airlines/airlines/Z2(1).png differ
diff --git a/public/airlines/airlines/Z2.png b/public/airlines/airlines/Z2.png
new file mode 100644
index 00000000..217f421f
Binary files /dev/null and b/public/airlines/airlines/Z2.png differ
diff --git a/public/airlines/airlines/Z4.png b/public/airlines/airlines/Z4.png
new file mode 100644
index 00000000..a998f09b
Binary files /dev/null and b/public/airlines/airlines/Z4.png differ
diff --git a/public/airlines/airlines/Z7.png b/public/airlines/airlines/Z7.png
new file mode 100644
index 00000000..6559516b
Binary files /dev/null and b/public/airlines/airlines/Z7.png differ
diff --git a/public/airlines/airlines/Z8.png b/public/airlines/airlines/Z8.png
new file mode 100644
index 00000000..03b19da8
Binary files /dev/null and b/public/airlines/airlines/Z8.png differ
diff --git a/public/airlines/airlines/Z9.png b/public/airlines/airlines/Z9.png
new file mode 100644
index 00000000..88ac6d29
Binary files /dev/null and b/public/airlines/airlines/Z9.png differ
diff --git a/public/airlines/airlines/ZA.png b/public/airlines/airlines/ZA.png
new file mode 100644
index 00000000..cb3ad8fa
Binary files /dev/null and b/public/airlines/airlines/ZA.png differ
diff --git a/public/airlines/airlines/ZE.png b/public/airlines/airlines/ZE.png
new file mode 100644
index 00000000..ff3f8639
Binary files /dev/null and b/public/airlines/airlines/ZE.png differ
diff --git a/public/airlines/airlines/ZG.png b/public/airlines/airlines/ZG.png
new file mode 100644
index 00000000..9a440029
Binary files /dev/null and b/public/airlines/airlines/ZG.png differ
diff --git a/public/airlines/airlines/ZH.png b/public/airlines/airlines/ZH.png
new file mode 100644
index 00000000..6e70614f
Binary files /dev/null and b/public/airlines/airlines/ZH.png differ
diff --git a/public/airlines/airlines/ZI.png b/public/airlines/airlines/ZI.png
new file mode 100644
index 00000000..e971de50
Binary files /dev/null and b/public/airlines/airlines/ZI.png differ
diff --git a/public/airlines/airlines/ZK.png b/public/airlines/airlines/ZK.png
new file mode 100644
index 00000000..007bc662
Binary files /dev/null and b/public/airlines/airlines/ZK.png differ
diff --git a/public/airlines/airlines/ZL.png b/public/airlines/airlines/ZL.png
new file mode 100644
index 00000000..f7f1f5d2
Binary files /dev/null and b/public/airlines/airlines/ZL.png differ
diff --git a/public/airlines/airlines/ZN.png b/public/airlines/airlines/ZN.png
new file mode 100644
index 00000000..80666ea2
Binary files /dev/null and b/public/airlines/airlines/ZN.png differ
diff --git a/public/airlines/airlines/ZR.png b/public/airlines/airlines/ZR.png
new file mode 100644
index 00000000..452c172e
Binary files /dev/null and b/public/airlines/airlines/ZR.png differ
diff --git a/public/airlines/airlines/ZT.png b/public/airlines/airlines/ZT.png
new file mode 100644
index 00000000..68738372
Binary files /dev/null and b/public/airlines/airlines/ZT.png differ
diff --git a/public/airlines/airlines/ZW.png b/public/airlines/airlines/ZW.png
new file mode 100644
index 00000000..0c27bedc
Binary files /dev/null and b/public/airlines/airlines/ZW.png differ
diff --git a/public/airlines/airlines/d3.png b/public/airlines/airlines/d3.png
new file mode 100644
index 00000000..f92c342d
Binary files /dev/null and b/public/airlines/airlines/d3.png differ
diff --git a/public/airlines/airlines/ui.png b/public/airlines/airlines/ui.png
new file mode 100644
index 00000000..321c4e3c
Binary files /dev/null and b/public/airlines/airlines/ui.png differ
diff --git a/public/airlines/d3.png b/public/airlines/d3.png
new file mode 100644
index 00000000..f92c342d
Binary files /dev/null and b/public/airlines/d3.png differ
diff --git a/public/airlines/ui.png b/public/airlines/ui.png
new file mode 100644
index 00000000..321c4e3c
Binary files /dev/null and b/public/airlines/ui.png differ
diff --git a/public/favicon.svg b/public/favicon.svg
new file mode 100644
index 00000000..3dfa2ba9
--- /dev/null
+++ b/public/favicon.svg
@@ -0,0 +1,14 @@
+
diff --git a/public/fonts/UberMove-Bold.ttf b/public/fonts/UberMove-Bold.ttf
new file mode 100644
index 00000000..181e6f7e
Binary files /dev/null and b/public/fonts/UberMove-Bold.ttf differ
diff --git a/public/fonts/UberMove-Light.ttf b/public/fonts/UberMove-Light.ttf
new file mode 100644
index 00000000..177db75c
Binary files /dev/null and b/public/fonts/UberMove-Light.ttf differ
diff --git a/public/fonts/UberMove-Medium.ttf b/public/fonts/UberMove-Medium.ttf
new file mode 100644
index 00000000..d785295e
Binary files /dev/null and b/public/fonts/UberMove-Medium.ttf differ
diff --git a/public/fonts/UberMove-Regular.ttf b/public/fonts/UberMove-Regular.ttf
new file mode 100644
index 00000000..e074026d
Binary files /dev/null and b/public/fonts/UberMove-Regular.ttf differ
diff --git a/public/logo.svg b/public/logo.svg
index 5d168a94..93672adf 100644
--- a/public/logo.svg
+++ b/public/logo.svg
@@ -1,8 +1,4 @@
-